:root{--bg: #f6f5f1;--bg-card: #ffffff;--ink: #1c1f1a;--ink-soft: #4a4f44;--ink-mute: #8a8f82;--line: #e3e1d8;--line-soft: #efede5;--green-deep: #1f3d2c;--green-mid: #2f6b48;--green-soft: #5e9472;--green-pale: #e7efe7;--gold: #b8923a;--gold-soft: #d8b75a;--orange: #c2741f;--orange-pale: #fbeed6;--red: #b1322a;--red-pale: #fadbd6;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--serif: ui-serif, Georgia, "Times New Roman", serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.display{font-family:var(--serif)}.mono{font-family:var(--mono)}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 1px 2px #1c1f1a08}.label{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;font-weight:500}.input,.select{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus{border-color:var(--green-mid);box-shadow:0 0 0 3px #2f6b481f}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;background:var(--green-deep);color:#fff;border:1px solid var(--green-deep);border-radius:8px;font-size:14px;font-weight:500;transition:background .15s,transform .05s}.btn-primary:hover{background:var(--green-mid)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;background:transparent;color:var(--ink-soft);border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,color .15s}.btn-ghost:hover{background:var(--line-soft);color:var(--ink)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;border-radius:999px;background:var(--green-pale);color:var(--green-deep);letter-spacing:.04em;text-transform:uppercase}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:500;border-radius:999px;background:var(--line-soft);color:var(--ink-soft);border:1px solid var(--line)}.pill-gold{background:#b8923a1f;color:var(--gold);border-color:#b8923a4d}.pill-green{background:var(--green-pale);color:var(--green-deep);border-color:#2f6b4840}.pill-orange{background:var(--orange-pale);color:var(--orange);border-color:#c2741f4d}.stat-num{font-family:var(--serif);font-size:32px;font-weight:600;color:var(--ink);line-height:1.1}.table-row{display:grid;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line-soft);transition:background .15s}.table-row:hover{background:var(--line-soft)}.table-row:last-child{border-bottom:none}.toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;box-shadow:0 10px 30px #0000002e;z-index:100;animation:anim-toast .25s ease-out}@keyframes anim-toast{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.anim{animation:anim-fade .25s ease-out}@keyframes anim-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e99;animation:live-pulse 1.6s infinite}@keyframes live-pulse{0%{box-shadow:0 0 #22c55e99}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}.desktop-only{display:initial}.mobile-only{display:none}@media(max-width:768px){.desktop-only{display:none!important}.mobile-only{display:initial}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--ink-mute)}
