:root{--bg:#f6f6f4;--surface:#fff;--surface-2:#f1f1ee;--text:#1c1c1a;--muted:#6c6c66;--faint:#9c9c95;--line:#e2e2dd;--line-2:#d2d2cc;--accent:#0f6e8c;--accent-soft:#e3f0f4;--accent-ink:#0b5a73;--strong:#1d7f4b;--strong-soft:#def2e6;--strong-ink:#15673c;--weak:#bf3a2f;--weak-soft:#f9e3e0;--weak-ink:#9f2e25;--neutral:#8a8a84;--neutral-soft:#ebebe7;--sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#131312;--surface:#1b1b19;--surface-2:#212120;--text:#e9e9e4;--muted:#9a9a93;--faint:#6a6a64;--line:#2b2b28;--line-2:#383835;--accent:#5cb6d3;--accent-soft:#17272d;--accent-ink:#8fd0e6;--strong:#4ccf86;--strong-soft:#15301f;--strong-ink:#7fe3a8;--weak:#f27b72;--weak-soft:#3a1d1a;--weak-ink:#ff9d95;--neutral:#8a8a84;--neutral-soft:#262625}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;margin:0;font-size:13.5px;line-height:1.45}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.app{grid-template-columns:1fr;min-height:100vh;display:grid}@media (width>=960px){.app{grid-template-columns:176px minmax(0,1fr) 244px}}@media (width>=1320px){.app{grid-template-columns:230px minmax(0,1fr) 320px}}.main{min-width:0;padding:14px 12px 28px}.panel{align-content:start;gap:12px;padding:0 12px 28px;display:grid}@media (width>=960px){.main{padding:22px 18px 40px}.panel{max-height:100vh;padding:22px 16px 40px 0;position:sticky;top:0;overflow:auto}}.btn{border:1px solid var(--line-2);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:500;line-height:1.3;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){color:#fff;filter:brightness(1.07)}.btn-danger{color:var(--weak-ink);border-color:var(--weak)}.btn-danger:hover:not(:disabled){background:var(--weak-soft);color:var(--weak-ink);border-color:var(--weak)}.btn-sm{padding:4px 8px;font-size:12px}.btn-quiet{color:var(--muted);background:0 0;border-color:#0000}.spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:11px;height:11px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pill{white-space:nowrap;background:var(--neutral-soft);color:var(--muted);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.pill-strong{background:var(--strong-soft);color:var(--strong-ink)}.pill-weak{background:var(--weak-soft);color:var(--weak-ink)}.pill-accent{background:var(--accent-soft);color:var(--accent-ink)}.dot{background:var(--neutral);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot-strong{background:var(--strong)}.dot-weak{background:var(--weak)}.error{color:var(--weak-ink);margin:6px 0 0;font-size:12px}.hint{color:var(--faint);font-size:11.5px}.side{background:var(--surface);border-bottom:1px solid var(--line);min-width:0;padding:12px 14px}.side-brand{letter-spacing:-.01em;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:15px;font-weight:600;display:flex}.side-brand small{color:var(--faint);font-size:11.5px;font-weight:400}.side-heading{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:14px 0 6px;font-size:11px;font-weight:600}.week-list{scrollbar-width:none;gap:6px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.week-list::-webkit-scrollbar{display:none}.week-link{color:var(--text);white-space:nowrap;border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;padding:7px 10px;text-decoration:none;display:flex}.week-link:hover{background:var(--surface-2)}.week-link-date{color:var(--muted);font-size:12px}.week-link.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:500}.side-desktop{display:none}.side-tools{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.stat{color:var(--muted);justify-content:space-between;padding:6px 9px;font-size:12.5px;display:flex}.stat b{color:var(--text);font-weight:500}@media (width>=960px){.side{border-bottom:0;border-right:1px solid var(--line);height:100vh;padding:18px 14px;position:sticky;top:0;overflow:auto}.side-heading:first-of-type{margin-top:6px}.week-list{display:block;overflow:visible}.week-link{border-color:#0000;margin-bottom:2px;padding:7px 9px}.week-link-date{margin-left:auto}.side-desktop{display:block}.side-tools{flex-direction:column;align-items:stretch;margin-top:14px}}.head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.head h1{letter-spacing:-.015em;margin:0;font-size:22px;font-weight:600;line-height:1.2}.head p{color:var(--muted);margin:3px 0 0}.head-tools{align-items:center;gap:8px;display:flex}.ledger{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.ledger table{border-collapse:collapse;table-layout:fixed;width:100%}.ledger col.col-time{width:80px}.ledger col.col-num{width:64px}.ledger col.col-take{width:116px}.ledger col.col-src{width:96px}.ledger col.col-act{width:58px}.ledger thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 6px;font-size:11px;font-weight:600}.ledger thead th.num{text-align:right}.ledger tbody td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 6px 8px}.ledger tr.entry.has-memo td{border-bottom:0}.ledger tr.memo td{border-bottom:1px solid var(--line);padding:0 6px 10px}.ledger tr.daysep td{background:var(--bg);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:5px 6px;font-size:11px;font-weight:600}.ledger tr.footrow td{border-bottom:0;padding:6px 10px}.ledger tr.footrow button{text-align:center;border:1px dashed var(--line-2);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;padding:7px;font-size:12.5px;display:block}.ledger tr.footrow button:hover{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.ledger-empty{text-align:center;color:var(--muted);padding:28px 16px}td.time{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:11.5px;line-height:1.35}td.time span{color:var(--text);font-weight:500;display:block}td.event{min-width:108px}td.event .name{font-weight:600;display:block}td.event .who{color:var(--muted);font-size:12px;display:block}td.event .meta-line{flex-wrap:wrap;align-items:center;gap:3px 6px;margin-top:3px;display:flex}.by{color:var(--faint);align-items:center;gap:5px;font-size:11px;display:inline-flex}.by:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.by-hand{color:var(--accent-ink)}.by-hand:before{border-radius:1px;transform:rotate(45deg)}.tag{color:var(--faint);border:1px dashed var(--line-2);border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:500;display:inline-block}.status{white-space:nowrap;background:var(--neutral-soft);color:var(--muted);border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:500;display:inline-block}.status-looking{background:var(--accent-soft);color:var(--accent-ink)}.status-failed{background:var(--weak-soft);color:var(--weak-ink);cursor:help}td.num{font-family:var(--mono);text-align:right;white-space:nowrap;font-size:13px;font-weight:500}td.num.sub{color:var(--muted);font-weight:400}.actual-box{color:var(--text);background:var(--neutral-soft);border-radius:5px;padding:1px 6px;font-weight:600;display:inline-block}.actual-strong{color:var(--strong-ink);background:var(--strong-soft)}.actual-weak{color:var(--weak-ink);background:var(--weak-soft)}td.speech{color:var(--faint);text-align:center;font-size:12px;font-style:italic}td.takecol .pill{white-space:normal}td.src a{text-overflow:ellipsis;max-width:84px;color:var(--muted);white-space:nowrap;vertical-align:top;font-size:11.5px;text-decoration:none;display:inline-block;overflow:hidden}td.src a:hover{color:var(--accent-ink);text-decoration:underline}td.act{text-align:right;white-space:nowrap}.icon-btn{width:26px;height:26px;color:var(--faint);cursor:pointer;vertical-align:middle;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{cursor:default}.take-memo{display:block}tr.quiet td.event .name{color:var(--muted);font-weight:500}tr.quiet td.num,tr.quiet .actual-box,tr.quiet .take-memo{color:var(--faint)}@media (width<=959px){.ledger thead{display:none}.ledger table,.ledger tbody,.ledger tr,.ledger td{display:block}.ledger tbody td{border:0;padding:0}.ledger tbody tr.entry{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr 1fr;grid-template-areas:"time time act""event event event""actual forecast previous""take take take""src src src";gap:4px 8px;padding:12px;display:grid}.ledger tbody tr.entry.has-memo{border-bottom:0;padding-bottom:4px}.ledger tbody tr.memo{border-bottom:1px solid var(--line);padding:0 12px 12px}.ledger tbody tr.memo td{border:0;padding:0}.ledger tr.daysep{background:var(--bg);padding:5px 12px}.ledger tr.daysep td{background:0 0;padding:0}.ledger tr.footrow{padding:8px 12px}.ledger tr.footrow td{padding:0}td.time{white-space:normal;grid-area:time}td.time span{color:var(--muted);font-weight:400;display:inline}td.time span:before{content:", "}td.act{grid-area:act;margin:-6px -6px 0 0}td.event{grid-area:event;min-width:0}td.num{text-align:left;padding-top:2px}td.num:before{font-family:var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:1px;font-size:10.5px;font-weight:500;display:block}td.actual{grid-area:actual}td.actual:before{content:"Actual"}td.forecast{grid-area:forecast}td.forecast:before{content:"Forecast"}td.previous{grid-area:previous}td.previous:before{content:"Previous"}td.speech{text-align:left;grid-area:actual/actual/previous/previous}td.takecol{grid-area:take;padding-top:4px}td.takecol:empty{display:none}td.src{grid-area:src}td.src a{max-width:none}td.src:empty{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.card h2{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0;font-size:11px;font-weight:600}.card-take{border-top:3px solid var(--accent)}.card-outcome{border-top:3px solid var(--strong)}.verdict{letter-spacing:-.02em;margin:2px 0;font-size:26px;font-weight:600;line-height:1.1}.verdict-sell{color:var(--weak)}.verdict-buy{color:var(--strong)}.verdict-none{color:var(--muted)}.agree{color:var(--muted);margin-bottom:10px}.take-text{cursor:text;border-radius:6px;margin:0 -4px 10px;padding:2px 4px}.take-text:hover{background:var(--surface-2)}.take-text.placeholder{color:var(--faint);font-style:italic}.kv{grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 12px;font-size:12.5px;display:grid}.kv dt{color:var(--muted)}.kv dd{font-weight:500;font-family:var(--mono);margin:0;font-size:12px}.inputs{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.inputs li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 0;font-size:12.5px;display:flex}.inputs li .label{color:var(--muted);text-align:right;margin-left:auto;font-weight:500}.inputs li .label-strong{color:var(--strong-ink)}.inputs li .label-weak{color:var(--weak-ink)}.card-meta{color:var(--faint);margin-top:10px;font-size:11.5px}.result-chip{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.result-right{color:var(--strong-ink);background:var(--strong-soft)}.result-wrong{color:var(--weak-ink);background:var(--weak-soft)}.field{gap:4px;margin-bottom:10px;display:grid}.field>span,.field-label{color:var(--muted);font-size:11.5px;font-weight:500}.input,.select,.textarea{border:1px solid var(--line-2);background:var(--surface);width:100%;color:var(--text);border-radius:7px;padding:7px 9px;font-size:13px}.input:focus,.select:focus,.textarea:focus,.textarea-plain:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.textarea{resize:vertical;min-height:72px;line-height:1.45}.input-num{font-family:var(--mono)}.unit{align-items:stretch;max-width:150px;display:flex}.unit .input{border-radius:7px 0 0 7px}.unit span{border:1px solid var(--line-2);background:var(--surface-2);color:var(--muted);font-family:var(--mono);border-left:0;border-radius:0 7px 7px 0;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.form-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:0 10px;display:grid}.form-grid .field.wide,.form-grid-3 .field.wide{grid-column:1/-1}@media (width<=480px){.form-grid{grid-template-columns:1fr}}.check{align-items:center;gap:8px;margin:2px 0 12px;font-size:13px;display:flex}.check input{accent-color:var(--accent);width:15px;height:15px;margin:0}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:6px;display:flex}.form-actions .spacer{margin-right:auto}.segmented{border:1px solid var(--line-2);border-radius:7px;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);color:var(--muted);cursor:pointer;border:0;padding:6px 11px;font-size:12.5px;font-weight:500}.segmented button+button{border-left:1px solid var(--line-2)}.segmented button.on{background:var(--accent-soft);color:var(--accent-ink)}.segmented button.on-right{background:var(--strong-soft);color:var(--strong-ink)}.segmented button.on-wrong{background:var(--weak-soft);color:var(--weak-ink)}dialog.sheet{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;width:min(560px,100vw - 24px);max-height:calc(100vh - 24px);padding:0;box-shadow:0 20px 50px #0000002e}dialog.sheet::backdrop{background:#14141259}.sheet-body{padding:18px 20px}dialog.sheet h2{letter-spacing:-.01em;margin:0 0 14px;font-size:15px;font-weight:600}.confirm{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.notice{text-align:center;place-content:center;gap:10px;min-height:100vh;padding:24px;display:grid}.notice h1{letter-spacing:-.015em;margin:0;font-size:22px}.notice p{color:var(--muted);margin:0}.notice .card{text-align:left;width:min(420px,100vw - 48px);margin-top:8px}.notice-tools{justify-content:center;gap:8px;display:flex}
