:root{--bg: #17120e;--bg-elevated: #221a14;--bg-card: #2a2018;--border: #4a3826;--text: #ece1cf;--text-dim: #b3a58e;--gold: #d4af37;--gold-dim: #a5872b;--crimson: #a3312a;--green: #4c7c3f;--radius: 6px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Georgia,Iowan Old Style,serif;-webkit-font-smoothing:antialiased}h1,h2,h3{color:var(--gold);font-weight:600;margin:0 0 .5em}h1{font-size:1.5rem}h2{font-size:1.1rem;margin-top:1.5em}p{color:var(--text-dim);line-height:1.5}a{color:var(--gold)}button{font-family:inherit}input,select{font-family:inherit;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:.55em .7em;font-size:1rem;width:100%}input:focus,select:focus{outline:2px solid var(--gold-dim)}label{display:flex;flex-direction:column;gap:.3em;margin-bottom:1em;color:var(--text-dim);font-size:.9rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);padding:.6em 1.1em;font-size:.95rem;cursor:pointer;text-decoration:none;background:var(--bg-elevated);color:var(--text);transition:background .15s,opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#c79a2f,var(--gold-dim));color:#1a1410;border-color:var(--gold-dim);font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{background:transparent}.btn-ghost.active{border-color:var(--gold);color:var(--gold)}.app-shell{min-height:100%;display:flex;flex-direction:column}.navbar{background:var(--bg-elevated);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.navbar-top{display:flex;align-items:center;justify-content:space-between;padding:.7em 1em}.brand{font-size:1.2rem;color:var(--gold);font-weight:700;letter-spacing:.05em}.navbar-user{display:flex;align-items:center;gap:.7em;font-size:.85rem;color:var(--text-dim)}.active-character{color:var(--gold)}.navbar-links{display:flex;overflow-x:auto;gap:.2em;padding:0 .5em .5em}.nav-link{flex:none;padding:.5em .9em;border-radius:var(--radius);color:var(--text-dim);text-decoration:none;font-size:.9rem;white-space:nowrap}.nav-link.active{background:var(--bg-card);color:var(--gold)}.app-content{flex:1;padding:1em;max-width:720px;width:100%;margin:0 auto}.page-loading{padding:2em;text-align:center;color:var(--text-dim)}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5em}.auth-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2em;width:100%;max-width:380px}.auth-subtitle{margin-top:-.5em}.auth-switch{text-align:center;font-size:.9rem}.form-error{background:#a3312a26;border:1px solid var(--crimson);color:#e8a39d;border-radius:var(--radius);padding:.6em .8em;margin-bottom:1em;font-size:.9rem}.form-success{background:#4c7c3f26;border:1px solid var(--green);color:#b6d6a9;border-radius:var(--radius);padding:.6em .8em;margin-bottom:1em;font-size:.9rem}.option-group,.profession-picker{margin-bottom:1.2em}.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6em}.option-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.7em;text-align:left;cursor:pointer;color:var(--text);display:flex;flex-direction:column;gap:.2em}.option-card span{font-size:.78rem;color:var(--text-dim)}.option-card.selected{border-color:var(--gold);background:var(--bg-card)}.stat-preview{margin-bottom:1.2em}.stat-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5em;text-align:center;font-size:.85rem}.stat-preview-grid div{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.4em}.character-switcher{display:flex;gap:.6em;overflow-x:auto;margin-bottom:1.2em;padding-bottom:.3em}.character-chip{flex:none;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.5em .8em;color:var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:.15em}.character-chip.active{border-color:var(--gold)}.character-chip-sub{font-size:.72rem;color:var(--text-dim);text-transform:capitalize}.empty-state{text-align:center;padding:2em 1em}.character-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2em;margin-bottom:1.2em}.character-summary-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.6em}.character-summary-tag{font-size:.8rem;color:var(--text-dim);text-transform:capitalize}.injury-banner{background:#a3312a26;border:1px solid var(--crimson);color:#e8a39d;border-radius:var(--radius);padding:.5em .7em;font-size:.85rem;margin-bottom:.8em}.quest-progress{background:#d4af371a;border:1px solid var(--gold-dim);border-radius:var(--radius);padding:.6em .7em;margin-bottom:.8em}.quest-progress-header{display:flex;justify-content:space-between;font-size:.85rem;color:var(--gold);margin-bottom:.4em}.quest-progress-bar{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;height:.7em;overflow:hidden}.quest-progress-fill{height:100%;background:linear-gradient(90deg,var(--gold-dim),var(--gold));transition:width .6s linear}.quest-progress-log{margin-top:.6em;padding-top:.5em;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.3em;max-height:140px;overflow-y:auto}.quest-progress-log-entry{display:flex;justify-content:space-between;gap:.6em;font-size:.78rem;color:var(--text-dim);animation:quest-log-fade-in .4s ease}.quest-progress-log-damage{color:#e8a39d;white-space:nowrap}@keyframes quest-log-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.loot-preview{color:var(--gold)}.quest-log-item{display:flex;justify-content:space-between;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.6em .9em;font-size:.85rem}.quest-log-item.success{border-left:3px solid var(--green)}.quest-log-item.failure{border-left:3px solid var(--crimson)}.resource-row{display:grid;grid-template-columns:4.5em 1fr 4.5em;align-items:center;gap:.6em;font-size:.8rem;color:var(--text-dim);margin-bottom:.5em}.resource-row-inline{display:flex;gap:1.2em;font-size:.85rem;margin:.6em 0;color:var(--text)}.hp-bar,.stamina-bar,.xp-bar{position:relative;background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;height:.8em;overflow:hidden}.hp-bar-fill{height:100%;background:linear-gradient(90deg,var(--crimson),#d9534f)}.stamina-bar-fill{height:100%;background:linear-gradient(90deg,var(--gold-dim),var(--gold))}.xp-bar-fill{height:100%;background:linear-gradient(90deg,#3d6b32,var(--green));transition:width .4s ease}.stamina-bar-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:var(--text)}.train-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.6em}.quest-list{display:flex;flex-direction:column;gap:.8em}.quest-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1em}.quest-card-header{display:flex;justify-content:space-between;color:var(--gold);margin-bottom:.3em}.quest-card-meta{display:flex;gap:1em;font-size:.8rem;color:var(--text-dim);margin-bottom:.7em}.opponent-list{display:flex;flex-direction:column;gap:.5em}.opponent-card{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.7em 1em;gap:.6em}.duel-log{margin-top:.6em;font-size:.8rem;max-height:160px;overflow-y:auto}.guild-card,.guild-create-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2em}.guild-list,.market-list{display:flex;flex-direction:column;gap:.5em}.guild-list-item,.market-list-item{display:flex;align-items:center;justify-content:space-between;gap:.6em;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.7em 1em;font-size:.85rem}.equip-slot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6em;margin-bottom:1.2em}.equip-slot{background:var(--bg-elevated);border:1px dashed var(--border);border-radius:var(--radius);padding:.7em;display:flex;flex-direction:column;gap:.25em;min-height:80px}.equip-slot.filled{border-style:solid;border-color:var(--gold-dim);background:var(--bg-card)}.equip-slot-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.equip-slot-empty{color:var(--text-dim);font-size:.8rem}.equip-slot-bonus{font-size:.75rem;color:var(--gold)}.equip-slot .btn{align-self:flex-start;margin-top:.3em;padding:.3em .7em;font-size:.8rem}.bag-item{display:flex;align-items:center;justify-content:space-between;gap:.6em;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.6em .9em;font-size:.85rem}.inventory-list{display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:1em}.inventory-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.5em .8em;font-size:.85rem}.rarity-tag{color:var(--text-dim);text-transform:capitalize;font-size:.75rem}.form-error-inline{color:#e8a39d}.guild-chat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1em;margin:1em 0}.guild-chat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6em}.guild-chat-header h3{margin:0;color:var(--gold);font-size:1rem}.chat-status{font-size:.75rem;color:var(--text-dim)}.chat-status.connected{color:var(--green)}.guild-chat-log{height:160px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.6em;margin-bottom:.6em;font-size:.85rem}.guild-chat-message{margin-bottom:.35em}.guild-chat-message strong{color:var(--gold)}.guild-chat-form{display:flex;gap:.5em}.guild-chat-form input{flex:1}.territory-list{display:flex;flex-direction:column;gap:.5em;margin-bottom:1em}.territory-item{display:flex;flex-direction:column;gap:.2em;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.7em 1em;font-size:.85rem}.territory-item.controlled{border-color:var(--gold)}.territory-item span{color:var(--text-dim)}.market-list-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2em;margin-bottom:1.2em}.sort-buttons{display:flex;gap:.5em;margin-bottom:1em}.leaderboard-table{width:100%;border-collapse:collapse;font-size:.9rem}.leaderboard-table th,.leaderboard-table td{text-align:left;padding:.5em .6em;border-bottom:1px solid var(--border)}.leaderboard-table th{color:var(--gold);font-weight:600}@media (min-width: 720px){.navbar-top{padding:.8em 1.5em}.navbar-links{padding:0 1.5em .6em}.app-content{padding:1.5em 1em 3em}.option-grid{grid-template-columns:repeat(3,1fr)}}
