:root{--bg:#fff;--bg-elevated:#f4f5f4;--bg-card:#fff;--line:#141c181a;--text:#3a433d;--text-strong:#141a16;--muted:#6b756e;--accent:#9a7b2f;--accent-soft:#9a7b2f1f;--danger:#c45c4e;--sans:"IBM Plex Sans", "Noto Sans SC", "PingFang SC", "Helvetica Neue", sans-serif;--display:"Fraunces", "Noto Serif SC", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;color:var(--text);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);min-height:100svh}a{color:inherit;text-decoration:none}button,input{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{flex-direction:column;min-height:100svh;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#ffffffeb;padding:14px 24px;position:sticky;top:0}.brand{align-items:center;gap:12px;display:inline-flex}.brand-mark{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px;display:block}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text strong{color:var(--text-strong);font-size:15px;font-weight:600}.brand-text em{color:var(--muted);font-size:12px;font-style:normal}.main{flex:1;width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 64px}.home-intro h1,.sheet-header h1,.panel h1{font-family:var(--display);letter-spacing:-.03em;color:var(--text-strong);margin:0 0 10px;font-size:clamp(2rem,4vw,3rem);font-weight:560}.lede{max-width:42rem;color:var(--muted);margin:0;line-height:1.6}.lede.error{color:var(--danger)}.meta-row{color:var(--muted);flex-wrap:wrap;gap:10px 18px;margin:16px 0 0;font-size:13px;display:flex}.text-link{color:var(--accent);border-bottom:1px solid #0000}.text-link:hover{border-bottom-color:var(--accent)}.search{margin-top:22px;display:block}.search input{border:1px solid var(--line);background:var(--bg-elevated);width:min(420px,100%);color:var(--text-strong);border-radius:12px;outline:none;padding:12px 14px}.search input:focus{box-shadow:0 0 0 3px var(--accent-soft);border-color:#9a7b2f8c}.ticker-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:28px;display:grid}.ticker-card{background:var(--bg-card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:8px;padding:16px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.ticker-card:hover{border-color:#9a7b2f66;transform:translateY(-1px);box-shadow:0 4px 16px #141c180f}.ticker-name{color:var(--text-strong);font-size:15px;font-weight:600;line-height:1.3}.ticker-meta{color:var(--muted);font-size:12px}.sheet-header{margin-bottom:24px}.back-link{color:var(--muted);margin-bottom:14px;font-size:13px;display:inline-block}.back-link:hover{color:var(--accent)}.chart-grid{flex-direction:column;gap:28px;display:flex}.chart-card{margin:0}.chart-card figcaption{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.chart-index{color:var(--accent);font-family:var(--mono);letter-spacing:.04em;font-size:12px}.chart-title{color:var(--text-strong);font-size:15px;font-weight:500;line-height:1.35}.chart-hit{border:1px solid var(--line);cursor:zoom-in;background:#fff;border-radius:12px;width:100%;padding:0;display:block;overflow:hidden}.chart-hit img{width:100%;height:auto;display:block}.table-shot-hit{background:#fff}.segmented{background:var(--bg-elevated);border:1px solid var(--line);border-radius:12px;gap:4px;margin-top:18px;padding:4px;display:inline-flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 14px}.segmented button.active{background:var(--accent-soft);color:var(--text-strong)}.segmented button:disabled{opacity:.35;cursor:not-allowed}.table-stack{flex-direction:column;gap:28px;display:flex}.sheet-table-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:10px;display:flex}.sheet-table-head h2{color:var(--text-strong);align-items:baseline;gap:10px;margin:0;font-size:16px;font-weight:600;display:flex}.sheet-table-scroll{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}.sheet-table table{border-collapse:collapse;color:#1b1b1b;min-width:100%;font-size:13px}.sheet-table td{vertical-align:top;white-space:pre-wrap;border:1px solid #e2e0da;max-width:280px;padding:8px 10px;line-height:1.35}.lightbox{z-index:50;cursor:zoom-out;background:#ffffffeb;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.lightbox img{border-radius:8px;max-width:min(1600px,100%);height:auto;box-shadow:0 20px 60px #141c182e}.lightbox-hint{color:var(--muted);margin:0;font-size:12px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.panel{padding:24px 0}.password-gate{max-width:28rem;padding:24px 0 48px}.password-gate h1{font-family:var(--display);letter-spacing:-.03em;color:var(--text-strong);margin:0 0 10px;font-size:clamp(2rem,4vw,2.6rem);font-weight:560}.password-form{flex-direction:column;gap:10px;margin-top:28px;display:flex}.password-label{color:var(--muted);font-size:13px}.password-input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text-strong);font:inherit;border-radius:10px;padding:12px 14px;font-size:16px}.password-input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.password-error{color:var(--danger);margin:0;font-size:13px}.password-submit{background:var(--text-strong);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:999px;align-self:flex-start;margin-top:6px;padding:10px 18px;font-size:14px;font-weight:560}.password-submit:hover{opacity:.9}.muted{color:var(--muted)}.code-block{background:var(--bg-elevated);border:1px solid var(--line);color:var(--text-strong);font-family:var(--mono);border-radius:10px;margin-top:16px;padding:14px 16px;font-size:13px;overflow-x:auto}@media (width<=640px){.main{width:min(100% - 24px,1180px);padding-top:20px}.topbar{padding:12px 16px}}
