:root{--ink: #16130f;--ink-deep: #0f0d0a;--panel: #221d16;--panel-raised: #2b2419;--rule: #4a3f2e;--rule-bright: #6b5b40;--text: #e9dfc9;--text-dim: #a7967d;--copper: #b9723c;--copper-bright: #d68a4d;--brass: #c9a227;--verdigris: #5f8f6a;--rust: #a8503d;--ochre: #b98b3c;--on-accent: #17110a;--font-display: "Zilla Slab", Georgia, "Times New Roman", serif;--font-body: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font-body)}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text);min-height:100vh;line-height:1.5}#app{min-height:100vh;display:flex;flex-direction:column}a{color:var(--copper-bright)}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;color:var(--text)}button,input,select{font:inherit;color:inherit}button{background:var(--copper);color:var(--on-accent);border:none;border-radius:0;padding:.55rem 1.1rem;font-weight:700;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:background-color .12s ease,transform .06s ease}button:hover:not(:disabled){background:var(--copper-bright)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border-bottom:2px solid var(--rule);padding-bottom:calc(.55rem - 2px)}button.secondary:hover:not(:disabled){color:var(--copper-bright);border-color:var(--copper)}button.danger{background:var(--rust);color:var(--text)}button.danger:hover:not(:disabled){background:#bd5c47}input,select{background:var(--panel-raised);border:1px solid var(--rule);border-bottom:2px solid var(--rule);border-radius:0;padding:.5rem .65rem}input::placeholder{color:var(--text-dim);opacity:.8}:focus-visible{outline:2px solid var(--copper-bright);outline-offset:2px}input:focus-within,select:focus-visible{border-bottom-color:var(--copper)}.auth-shell{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.auth-shell .brand{font-family:var(--font-display);font-weight:700;font-size:1.6rem;letter-spacing:.03em;color:var(--text);border-bottom:3px solid var(--copper);padding-bottom:.2rem}.auth-card{background:var(--panel);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);box-shadow:inset 0 2px 0 0 var(--copper);padding:2.25rem 2rem 2rem;width:320px}.auth-card h1{margin-top:0;font-size:1.5rem}.auth-card form{display:flex;flex-direction:column;gap:.75rem}.auth-card .switch{margin-top:1rem;font-size:.88rem;color:var(--text-dim)}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:.5rem;padding:.85rem 1.5rem;background:var(--ink-deep);box-shadow:inset 0 -2px 0 0 var(--rule)}.topbar .brand{flex-shrink:0;font-family:var(--font-display);font-weight:700;font-size:1.3rem;letter-spacing:.03em;color:var(--text);border-bottom:3px solid var(--copper);padding-bottom:.15rem}.topbar .who{display:flex;align-items:center;flex-shrink:0;white-space:nowrap;gap:1rem;font-size:.88rem;color:var(--text-dim)}.topbar .who span{font-family:var(--font-mono);color:var(--text)}nav.tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;padding:0 1.5rem;background:var(--ink-deep);box-shadow:inset 0 -2px 0 0 var(--rule)}nav.tabs button,nav.tabs button:hover,nav.tabs button:focus,nav.tabs button:active,nav.tabs button.active{background:transparent}nav.tabs button{color:var(--text-dim);border:none;border-bottom:3px solid transparent;border-right:1px solid var(--rule);border-radius:0;padding:.7rem 1.1rem;font-family:var(--font-display);font-weight:600;font-size:.88rem;letter-spacing:.03em;text-transform:none;white-space:nowrap;flex:none}nav.tabs button:last-child{border-right:none}nav.tabs button:hover:not(.active){color:var(--text);border-bottom-color:var(--rule-bright)}nav.tabs button.active{color:var(--text);border-bottom-color:var(--copper)}main{flex:1;padding:1.5rem;max-width:1320px;width:100%;margin:0 auto}.card{background:var(--panel);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);box-shadow:inset 0 2px 0 0 var(--copper);border-radius:0;padding:1.1rem 1.35rem;margin-bottom:1.1rem;overflow-x:auto}.card .card{background:var(--panel-raised);box-shadow:inset 0 2px 0 0 var(--rule-bright);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}.card h2{margin-top:0;font-size:1.15rem}.card h3{font-size:1rem;margin-bottom:.6rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;padding:.45rem .65rem;border-bottom:1px solid var(--rule);white-space:nowrap}th{color:var(--text-dim);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--copper)}.stat{display:flex;flex-direction:column;gap:.2rem}.stat .label{font-size:.76rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.stat .value{font-family:var(--font-mono);font-size:1.2rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.banner{padding:.65rem .95rem;border-radius:0;border-left:4px solid var(--rule);margin-bottom:.85rem;font-size:.92rem;background:var(--panel-raised)}.banner-error{border-left-color:var(--rust);color:#e8b6a8}.banner-success{border-left-color:var(--verdigris);color:#bfe0c4}.banner-info{border-left-color:var(--copper);color:#ecd2b8}.loading{color:var(--text-dim);padding:1rem 0;font-family:var(--font-display);letter-spacing:.03em}.pill{display:inline-block;padding:.15rem .6rem;border-radius:0;font-size:.78rem;letter-spacing:.01em;background:var(--panel-raised);border-left:3px solid var(--rule);color:var(--text-dim)}.pill.good{border-left-color:var(--verdigris);color:#bfe0c4}.pill.bad{border-left-color:var(--rust);color:#e8b6a8}.pill.warn{border-left-color:var(--ochre);color:#e6cb98}.muted{color:var(--text-dim)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.log{max-height:220px;overflow-y:auto;background:var(--ink-deep);border-left:3px solid var(--rule);border-radius:0;padding:.5rem .75rem;font-size:.85rem;font-family:var(--font-mono)}form.inline{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.rule{border:none;border-top:1px solid var(--rule);margin:1rem 0}.bar-row{display:flex;align-items:center;gap:.6rem}.bar{flex:1;height:12px;border-radius:0;background:var(--ink-deep);box-shadow:inset 0 0 0 1px var(--rule);overflow:hidden;position:relative;background-image:repeating-linear-gradient(90deg,transparent,transparent calc(10% - 1px),var(--ink) 10%)}.bar-fill{height:100%;border-radius:0}.bar-fill.xp{background:var(--brass)}.bar-fill.hp-player{background:var(--verdigris)}.bar-fill.hp-enemy{background:var(--rust)}.bar-row .bar-label{flex:none;font-family:var(--font-mono);font-size:.8rem;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.bar-label.side-player{color:var(--verdigris)}.bar-label.side-enemy{color:var(--rust)}.bar.bar-lg{height:20px}.result-heading{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.result-heading.good{color:var(--verdigris)}.result-heading.bad{color:var(--rust)}.identity h2{display:inline-block;max-width:100%;overflow-wrap:anywhere;font-size:1.9rem;margin:0 0 .85rem;padding-bottom:.3rem;border-bottom:2px solid var(--copper)}.identity-stats{gap:1.75rem;margin-bottom:1rem}.ledger h3,.effects h3,.job-status h3,.market-action h3,.hearth-group-status h3,.hearth-group-action h3{font-size:.85rem;margin:0 0 .75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.ledger{overflow-x:auto}.ledger .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.ledger td:first-child{white-space:normal}.effects-list{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem}.combat-status{margin-bottom:0}.auto-strip{padding:.6rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:1.1rem}.auto-flag{font-family:var(--font-display);color:var(--brass);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}.result-card{border-left:4px solid var(--rule)}.result-card.good{border-left-color:var(--verdigris)}.result-card.bad{border-left-color:var(--rust)}.combat-hp{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.75rem}.hearth-status{margin-bottom:0}.modifiers{list-style:none;margin:0 0 .75rem;padding:0;font-size:.9rem}.modifiers li{padding:.3rem 0;border-bottom:1px solid var(--rule)}.modifiers li:last-child{border-bottom:none}.modifiers .mod-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text)}.market-status{margin-bottom:0}.market-action{margin-bottom:.5rem}.pvp-status{margin-bottom:0}.pvp-stats{gap:1.75rem;margin-bottom:.5rem}.hearth-group-status{margin-bottom:0}.hearth-group-action{margin-bottom:.5rem}@media(max-width:640px){main{padding:.9rem}.card{padding:.9rem 1rem}.topbar{padding:.75rem 1rem}nav.tabs{padding:0 1rem}}
