:root,[data-theme=night]{--bg: #000000;--bg-gradient: linear-gradient(180deg, #0b1020 0%, #000000 100%);--card: #16181c;--border: #2f3336;--text: #e7e9ea;--muted: #71767b;--accent: #818cf8;--accent-strong: #6366f1;--accent-contrast: #16181c;--link: #818cf8;--warn: #ffd400;--ok: #00ba7c;--danger-bg: #3f1515;--danger-border: #7f1d1d;--danger-text: #fca5a5;--badge-bg: #202327;--input-bg: #000000;--surface-muted: #101418;--shadow: rgba(0, 0, 0, .35);--focus-ring: rgba(129, 140, 248, .25);--invite-bg: #1a2332;--invite-border: #2f3336;--invite-text: #c7d2fe}[data-theme=day]{--bg: #ffffff;--bg-gradient: linear-gradient(180deg, #f5f7ff 0%, #eef2ff 100%);--card: #ffffff;--border: #dbe5ff;--text: #0f172a;--muted: #475569;--accent: #4f46e5;--accent-strong: #4338ca;--accent-contrast: #ffffff;--link: #4f46e5;--warn: #b45309;--ok: #15803d;--danger-bg: #fee2e2;--danger-border: #fca5a5;--danger-text: #991b1b;--badge-bg: #f8fafc;--input-bg: #ffffff;--surface-muted: #f8fafc;--shadow: rgba(15, 23, 42, .06);--focus-ring: rgba(99, 102, 241, .15);--invite-bg: #dbeafe;--invite-border: #bfdbfe;--invite-text: #1e3a8a}*{box-sizing:border-box;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}body{margin:0;background:var(--bg-gradient);background-color:var(--bg);color:var(--text);min-height:100vh}.app{max-width:1150px;margin:0 auto;padding:28px 20px 40px}.page-header h1{margin:0;font-size:30px}.site-brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.site-brand{display:flex;align-items:center;gap:14px}.site-logo{flex-shrink:0;border-radius:10px;box-shadow:0 4px 14px var(--shadow)}.site-brand-name{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.site-brand h1{margin:0;font-size:28px;line-height:1.2;color:var(--text)}.site-brand .subtitle{margin:6px 0 0}.site-brand-action{flex-shrink:0;display:flex;align-items:center;gap:8px}.subtitle{margin:8px 0 0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;margin-top:14px;box-shadow:0 8px 20px var(--shadow)}.admin-login-card{max-width:480px}.admin-login-card .row-form{flex-direction:column;align-items:stretch}.admin-login-card label{min-width:0;width:100%}.row-form,.market-row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);min-width:160px}input,select,button{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text);min-height:40px}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}button{cursor:pointer;font-weight:600}button:hover{filter:brightness(1.08)}.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.secondary{background:transparent;border:1px solid var(--border);color:var(--text);text-decoration:none;display:inline-flex;align-items:center;padding:10px 12px;border-radius:10px;min-height:40px;font-weight:600;cursor:pointer}a.secondary:hover{filter:brightness(1.08)}.danger{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text)}.meta{color:var(--muted);font-size:13px}.message.error{color:#f85149}.auth-card .about-look-label,.auth-about-card .about-look-label{margin:14px 0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.auth-card .about-preview,.auth-about-card .about-preview{margin:0;padding-left:1.15rem;color:var(--muted);font-size:13px;line-height:1.55}.auth-card .about-preview li+li,.auth-about-card .about-preview li+li{margin-top:4px}.auth-about-card{margin-top:16px}.auth-about-card h2{margin-top:0}.stack-form label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.project-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:var(--badge-bg);color:var(--text)}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.invite-link{word-break:break-all;color:var(--invite-text);background:var(--invite-bg);border:1px solid var(--invite-border);border-radius:10px;padding:10px 12px;margin-top:12px}.theme-toggle{min-width:7.5rem}.market-list{display:grid;gap:10px}.market-row{background:var(--surface-muted);border:1px solid var(--border);border-radius:12px;padding:12px}.market-head{min-width:180px}.market-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.live-badge{margin-left:8px;padding:2px 8px;font-size:11px;font-weight:700;color:#fff;background:#16a34a;border-radius:999px;vertical-align:middle}.pagination-bar{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.error-text{color:#f85149}.ghost{background:var(--input-bg);color:var(--text)}.check-banner{flex-basis:100%;font-size:13px;color:var(--muted);margin-top:4px}.check-panel{flex-basis:100%;margin-top:10px;padding:12px;background:var(--input-bg);border:1px solid var(--border);border-radius:10px;max-height:320px;overflow:auto}.check-summary{margin-bottom:8px;font-size:14px;color:var(--text)}.check-details{margin-top:8px}.check-details pre{margin:8px 0 0;font-size:12px;white-space:pre-wrap;word-break:break-all;color:var(--text)}button:disabled,select:disabled{opacity:.6;cursor:not-allowed}.header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.nav-link{display:inline-flex;align-items:center;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);text-decoration:none;font-weight:600;white-space:nowrap}.nav-link:hover{filter:brightness(1.08)}.chart-status{min-height:1.35em;margin:10px 0 0;font-size:.9rem;color:var(--muted, var(--text-muted, #888));opacity:.85}.chart-status.is-loading{color:var(--text);opacity:1}.chart-wrap{margin-top:8px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card)}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}.chart-head strong{color:var(--text)}.chart-canvas{width:100%;height:clamp(220px,45vh,360px);min-height:220px}.download-note{margin:0 0 12px}a{color:var(--link)}@media (max-width: 900px){.site-brand-row,.project-header,.header-row{flex-direction:column;align-items:stretch}.site-brand-action,.header-actions{width:100%;justify-content:flex-start}.site-brand h1,.page-header h1{font-size:clamp(1.25rem,5vw,1.75rem)}.chart-head{flex-wrap:wrap}}@media (max-width: 640px){.app{padding:1rem .75rem 2rem}.card{box-shadow:0 2px 8px var(--shadow)}.row-form label,.market-row label{min-width:100%;flex:1 1 100%}.row-form button,.market-actions button,.market-actions .secondary{flex:1 1 auto}.market-row{flex-direction:column;align-items:stretch}.market-head{min-width:0}.pagination-bar{flex-direction:column;align-items:stretch;gap:.75rem}.theme-toggle{min-width:0}.badge{max-width:100%;white-space:normal}.header-actions{width:100%;flex-wrap:wrap;gap:.5rem}.header-actions .badge.warn,.header-actions .badge.ok{flex-basis:100%}.chart-canvas{height:clamp(220px,45vh,300px)}}.site-footer{margin-top:2.5rem;padding:1.5rem 0 1rem;border-top:1px solid var(--border, rgba(128, 128, 128, .25));text-align:center}.ecosystem-heading{margin:0 0 .6rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted, #8b949e)}.ecosystem-links ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.1rem}.ecosystem-links a{font-size:.85rem;color:var(--muted, #8b949e);text-decoration:none}.ecosystem-links a:hover{text-decoration:underline;text-underline-offset:3px}.footer-copy{margin:1rem 0 0;font-size:.8rem;color:var(--muted, #8b949e)}:root{--sb-size: 10px;--sb-thumb: color-mix(in srgb, currentColor 26%, transparent);--sb-thumb-hover: color-mix(in srgb, currentColor 45%, transparent);--sb-track: transparent}@supports not (color: color-mix(in srgb,red 50%,transparent)){:root{--sb-thumb: rgba(128, 149, 173, .42);--sb-thumb-hover: rgba(128, 149, 173, .68)}}*{scrollbar-width:thin;scrollbar-color:var(--sb-thumb) var(--sb-track)}*::-webkit-scrollbar{width:var(--sb-size);height:var(--sb-size)}*::-webkit-scrollbar-track{background:var(--sb-track);border-radius:999px}*::-webkit-scrollbar-thumb{background:var(--sb-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--sb-thumb-hover);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}.table-wrap,.scroll-x,.scroll-y,pre,textarea{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.scroll-x,.table-wrap{overflow-x:auto;background:linear-gradient(to right,var(--bg-elevated, #fff) 30%,rgba(0,0,0,0)) left center,linear-gradient(to left,var(--bg-elevated, #fff) 30%,rgba(0,0,0,0)) right center,radial-gradient(farthest-side at 0 50%,#00000038,#0000) left center,radial-gradient(farthest-side at 100% 50%,#00000038,#0000) right center;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}.scroll-y{overflow-y:auto;max-height:min(70vh,640px)}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
