*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #1a1208;--panel: #2b1f0e;--border: #5a3e1b;--gold: #e8b84b;--text: #d4c4a0;--muted: #8a7a5a;--green: #6dbf6d;--red: #e06060;--accent: #c87941}body{background:var(--bg);color:var(--text);font-family:Courier New,monospace;min-height:100vh}button,input[type=range],select{touch-action:manipulation}#app{max-width:960px;margin:0 auto;padding:16px}header{border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:12px}h1{font-size:1.6rem;color:var(--gold);letter-spacing:2px;text-transform:uppercase}#dimension-label{color:var(--muted);font-size:.85rem;margin-top:4px}#dim-name{color:var(--accent)}#hud{display:flex;align-items:center;gap:20px;background:var(--panel);border:1px solid var(--border);padding:10px 16px;border-radius:4px;margin-bottom:16px;flex-wrap:wrap}.hud-block{display:flex;flex-direction:column}.hud-block .label{font-size:.7rem;color:var(--muted);text-transform:uppercase}.hud-block span:last-child{font-size:1.2rem;color:var(--gold)}#btn-next-day,#btn-save,#btn-reset{background:var(--accent);color:#1a1208;border:none;padding:8px 18px;font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;border-radius:3px;transition:background .15s,opacity .15s}#btn-next-day{margin-left:auto}#btn-next-day:hover,#btn-save:hover,#btn-reset:hover{background:var(--gold)}.btn-secondary{background:transparent!important;color:var(--muted)!important;border:1px solid var(--border)!important}button:disabled{opacity:.45;cursor:not-allowed}#status-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:12px 14px;margin-bottom:16px}#intel-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}@media(max-width:980px){#intel-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}.intel-card{background:linear-gradient(180deg,#2b1f0ef2,#1e150afa);border:1px solid var(--border);border-radius:4px;padding:12px 14px;min-width:0}.intel-card strong{display:block;line-height:1.45}#status-panel>div{min-width:0}#status-panel strong{display:block;line-height:1.45}.status-label{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;margin-bottom:4px}#status-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;grid-column:1 / -1}.select-wrap{display:flex;flex-direction:column;gap:4px;min-width:160px}#difficulty-select{background:#201608;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:8px 10px;font-family:inherit}#main{display:grid;grid-template-columns:1fr 280px;gap:16px}@media(max-width:780px){#status-panel,#intel-panel,#main{grid-template-columns:1fr}#btn-next-day{margin-left:0}#status-actions{justify-content:flex-start}}section{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:14px}h2{font-size:1rem;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;border-bottom:1px solid var(--border);padding-bottom:6px}.flavor{font-size:.82rem;color:var(--muted);font-style:italic;margin-bottom:12px;min-height:2.2em;line-height:1.5}#market{overflow-x:auto}#market-table{min-width:760px}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;color:var(--muted);font-size:.75rem;text-transform:uppercase;padding:4px 8px;border-bottom:1px solid var(--border)}td{padding:6px 8px;border-bottom:1px solid #3a2a10}tr:last-child td{border-bottom:none}.price-buy{color:var(--red)}.price-sell{color:var(--green)}.wood-name{color:var(--text);font-weight:700}.market-row-best-buy{background:#6dbf6d14}.market-row-best-sell{background:#e8b84b14}.market-row-best-buy.market-row-best-sell{background:linear-gradient(90deg,#6dbf6d1a,#e8b84b1a)}.wood-dim{color:var(--muted);font-size:.78rem}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--muted)}.profit-up{color:var(--green);font-weight:700}.profit-down{color:var(--red);font-weight:700}.profit-flat{color:var(--muted)}.price-history{color:var(--gold);letter-spacing:1px;white-space:nowrap}.btn-trade{background:transparent;border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.8rem;padding:3px 10px;cursor:pointer;border-radius:2px;transition:border-color .1s,color .1s;margin-right:4px}.btn-buy:hover{border-color:var(--green);color:var(--green)}.btn-sell:hover{border-color:var(--red);color:var(--red)}.btn-trade:disabled{opacity:.3;cursor:not-allowed}#trade-log{list-style:none;font-size:.82rem;max-height:420px;overflow-y:auto}#trade-log li{padding:4px 0;border-bottom:1px solid #3a2a10;color:var(--muted);line-height:1.4}#trade-log li:last-child{border-bottom:none}#trade-log .log-profit,#trade-log .log-win{color:var(--green)}#trade-log .log-loss{color:var(--red)}#trade-log .log-event{color:var(--gold)}#modal-overlay{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:100}#modal-overlay.hidden{display:none}#modal{background:var(--panel);border:1px solid var(--gold);border-radius:6px;padding:24px 28px;min-width:280px;max-width:92vw;text-align:center}#modal-title{font-size:1.1rem;color:var(--gold);margin-bottom:8px}#modal-body{color:var(--muted);font-size:.85rem;margin-bottom:16px}#modal-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:10px}#modal-controls button{background:var(--border);border:none;color:var(--text);font-size:1.2rem;width:32px;height:32px;cursor:pointer;border-radius:3px}#modal-controls .btn-chip{width:auto;min-width:52px;padding:0 12px;font-size:.82rem;font-weight:700;text-transform:uppercase}#modal-qty{font-size:1.4rem;color:var(--gold);min-width:40px;display:inline-block}#modal-qty-wrap{display:flex;flex-direction:column;gap:6px;align-items:center;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}#modal-number{width:110px;background:#201608;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:8px 10px;font-family:inherit;font-size:1rem;text-align:center}#modal-range{width:100%;margin-bottom:10px;accent-color:var(--accent)}#modal-cost{color:var(--muted);font-size:.85rem;margin-bottom:14px}#modal-buttons{display:flex;gap:10px;justify-content:center}#modal-confirm{background:var(--accent);color:#1a1208;border:none;padding:8px 22px;font-family:inherit;font-weight:700;cursor:pointer;border-radius:3px}#modal-cancel{background:transparent;color:var(--muted);border:1px solid var(--border);padding:8px 22px;font-family:inherit;cursor:pointer;border-radius:3px}
