:root{--bg: #0e0b08;--surface: #1c1710;--surface-raised: #261e13;--border: #3d3322;--gold: #c9a227;--gold-dim: #7a6118;--gold-bg: rgba(201, 162, 39, .1);--red: #8b1c1c;--red-bright: #c05050;--red-bg: rgba(139, 28, 28, .15);--green: #2a6b2a;--green-bright: #3a9b3a;--green-bg: rgba(42, 107, 42, .15);--blue-style: #3a7ab5;--text: #e8dcc8;--text-dim: #a09070;--text-muted: #6b5a3a;--radius: 4px;--radius-lg: 8px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--gold-dim);padding:.625rem 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.header-left{display:flex;align-items:center;gap:.75rem}.brand{color:var(--gold);font-size:1.1rem;font-weight:700;letter-spacing:.2em;font-variant:small-caps}.ludus-name{color:var(--text-dim);font-size:.8rem;border-left:1px solid var(--border);padding-left:.75rem}.header-right{display:flex;align-items:center;gap:1.25rem}.denarii{color:var(--gold);font-weight:600;font-size:.875rem}.reputation{color:var(--text-dim);font-size:.8rem}.app-nav{background:var(--surface);border-bottom:1px solid var(--border);padding:0 1.5rem;display:flex}.nav-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:.625rem 1rem;text-transform:uppercase;transition:color .15s,border-color .15s}.nav-btn:hover{color:var(--text-dim)}.nav-btn.active{color:var(--gold);border-bottom-color:var(--gold)}.app-main{max-width:1200px;margin:0 auto;padding:1.5rem}.loading-screen,.setup-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.loading-text{color:var(--gold-dim);font-size:1.25rem;letter-spacing:.25em;text-transform:uppercase;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.setup-card{background:var(--surface);border:1px solid var(--gold-dim);border-radius:var(--radius-lg);padding:3rem;max-width:440px;width:100%;text-align:center}.setup-card h1{color:var(--gold);font-size:2.75rem;letter-spacing:.35em;font-variant:small-caps;margin-bottom:.375rem}.setup-card .subtitle{color:var(--text-muted);font-style:italic;margin-bottom:2rem;font-size:.875rem}.field{margin-bottom:1rem;text-align:left}.field label{display:block;color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.1em;margin-bottom:.375rem;text-transform:uppercase}input,select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.875rem;padding:.5rem .75rem;width:100%;outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--gold-dim)}select option{background:var(--surface)}.btn{border:none;border-radius:var(--radius);cursor:pointer;font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:.45rem .9rem;text-transform:uppercase;transition:opacity .15s,transform .1s;white-space:nowrap}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:not(:disabled):hover{opacity:.82}.btn:not(:disabled):active{transform:scale(.97)}.btn-primary{background:var(--gold-dim);color:var(--text)}.btn-gold{background:var(--gold);color:#0d0900;font-weight:700}.btn-danger{background:var(--red);color:var(--text)}.btn-ghost{background:var(--surface-raised);color:var(--text-dim);border:1px solid var(--border)}.btn-full{width:100%;padding:.6rem;font-size:.8rem}.badge{border-radius:2px;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:.18rem .42rem;text-transform:uppercase;display:inline-block}.stat-bar{margin-bottom:.3rem}.stat-bar-header{display:flex;justify-content:space-between;font-size:.68rem;margin-bottom:.18rem}.stat-bar-label{color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.stat-bar-value{color:var(--text-dim)}.bar-track{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.bar-fill{height:100%;border-radius:2px;transition:width .3s}.bar-fill.gold{background:var(--gold)}.bar-fill.green{background:var(--green-bright)}.bar-fill.red{background:var(--red-bright)}.bar-fill.blue{background:var(--blue-style)}.gladiator-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;transition:border-color .15s;display:flex;flex-direction:column;gap:.625rem}.gladiator-card:hover{border-color:var(--gold-dim)}.gladiator-card.dead{opacity:.45}.gladiator-name{color:var(--text);font-size:1rem;font-weight:600}.gladiator-badges{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.gladiator-age{color:var(--text-muted);font-size:.72rem;margin-left:auto}.gladiator-origin{color:var(--text-muted);font-size:.75rem;font-style:italic;border-left:2px solid var(--border);padding-left:.5rem}.stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.25rem}.stat-cell{background:var(--surface-raised);border-radius:var(--radius);padding:.3rem .25rem;text-align:center}.stat-cell-name{color:var(--text-muted);font-size:.58rem;font-weight:700;text-transform:uppercase;display:block}.stat-cell-value{color:var(--text);font-size:.85rem;font-weight:600;display:block}.stat-cell.total .stat-cell-value{color:var(--gold)}.fight-record{display:flex;gap:.75rem;font-size:.72rem}.fight-record .wins{color:var(--green-bright)}.fight-record .losses{color:var(--red-bright)}.fight-record .draws{color:var(--text-dim)}.fight-record .kills{color:var(--gold-dim)}.page-header{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.page-title{font-size:1.15rem;font-weight:700;color:var(--text);letter-spacing:.04em}.section-title{color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.grid-market{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.error-msg{background:var(--red-bg);border:1px solid var(--red);border-radius:var(--radius);color:var(--red-bright);font-size:.8rem;padding:.5rem .75rem;margin-bottom:.75rem}.empty-state{color:var(--text-muted);font-style:italic;padding:2.5rem;text-align:center;border:1px dashed var(--border);border-radius:var(--radius-lg)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1rem;margin-bottom:1.5rem}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.25rem}.tile-value{color:var(--gold);font-size:1.75rem;font-weight:700;line-height:1;margin-bottom:.25rem}.tile-label{color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.tick-result{background:var(--surface);border:1px solid var(--gold-dim);border-radius:var(--radius);margin-top:1rem;padding:.875rem 1rem}.tick-result-header{color:var(--gold-dim);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem}.tick-line{color:var(--text-dim);font-size:.8rem;padding:.2rem 0;border-bottom:1px solid var(--border)}.tick-line:last-child{border-bottom:none}.fight-list{display:flex;flex-direction:column;gap:.5rem}.fight-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.75rem 1rem;transition:border-color .15s}.fight-item:hover{border-color:var(--gold-dim)}.fight-item-fighters{font-size:.875rem}.fight-item-vs{color:var(--text-muted);font-size:.72rem;margin:0 .3rem}.fight-item-meta{color:var(--text-muted);font-size:.72rem;text-align:right}.outcome-badge{font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:2px;text-transform:uppercase}.outcome-win{background:var(--green-bg);color:var(--green-bright)}.outcome-loss{background:var(--red-bg);color:var(--red-bright)}.outcome-draw{background:var(--surface-raised);color:var(--text-dim)}.outcome-death{background:#1a0505;color:#c05050}.outcome-scheduled{background:var(--gold-bg);color:var(--gold-dim)}.fight-detail-overlay{background:#000c;bottom:0;left:0;right:0;top:0;position:fixed;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem}.fight-detail-modal{background:var(--surface);border:1px solid var(--gold-dim);border-radius:var(--radius-lg);max-width:580px;max-height:80vh;overflow-y:auto;padding:1.5rem;width:100%}.fight-combatants{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.combatant-name{font-size:1rem;font-weight:600}.combatant-style{color:var(--text-muted);font-size:.75rem}.vs-text{color:var(--text-muted);font-size:.875rem;font-style:italic}.fight-log{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;max-height:300px;overflow-y:auto;margin-top:1rem}.fight-log-entry{color:var(--text-dim);font-size:.8rem;line-height:1.7;border-bottom:1px solid var(--border);padding:.15rem 0}.fight-log-entry:last-child{border-bottom:none}.market-listing{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .15s}.market-listing:hover{border-color:var(--gold-dim)}.market-price-row{display:flex;align-items:baseline;justify-content:space-between}.market-price{color:var(--gold);font-size:1.1rem;font-weight:700}.market-price-label{color:var(--text-muted);font-size:.7rem}.train-form{background:var(--surface-raised);border:1px solid var(--gold-dim);border-radius:var(--radius);padding:.625rem;display:flex;gap:.5rem;align-items:center}.train-form select{flex:1}.schedule-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem}.schedule-form-fields{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}.schedule-form-fields .field{flex:1;min-width:160px;margin-bottom:0}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.mt-sm{margin-top:.5rem}.mt-md{margin-top:1rem}.mt-lg{margin-top:1.5rem}.mb-md{margin-bottom:1rem}.text-gold{color:var(--gold)}.text-dim{color:var(--text-dim)}.text-muted{color:var(--text-muted)}.text-red{color:var(--red-bright)}.text-green{color:var(--green-bright)}.text-sm{font-size:.8rem}.font-bold{font-weight:700}.divider{border:none;border-top:1px solid var(--border);margin:1rem 0}
