:root{--bg: #0f141c;--card: #16202c;--card-raised: #1b2740;--blue: #5b8def;--green: #2fbfa0;--verdict-up: #4ade80;--verdict-hold: #94a3b8;--verdict-short: #f0a35b;--purple: #9b7bf0;--text: #e8edf5;--text-dim: #9ba8bc;--danger: #f26d6d;--border: #24324a;--tap: 52px;--radius: 14px;--pad: 16px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:17px;line-height:1.45;overscroll-behavior-y:none}body{-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}h1,h2,h3{margin:0;line-height:1.2}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer}.app{min-height:100%;display:flex;flex-direction:column;max-width:560px;margin:0 auto;padding-top:var(--safe-top)}.screen{flex:1;display:flex;flex-direction:column;padding:var(--pad);gap:var(--pad)}.dock{position:sticky;bottom:0;background:var(--bg);padding:var(--pad) var(--pad) calc(var(--pad) + var(--safe-bottom));margin:0 calc(var(--pad) * -1) calc(var(--pad) * -1);display:flex;flex-direction:column;gap:10px}.dock:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:20px;background:linear-gradient(to top,var(--bg),transparent);pointer-events:none}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad)}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1;min-width:0}.title{font-size:26px;font-weight:700;letter-spacing:-.02em}.subtitle{font-size:15px;color:var(--text-dim)}.label{font-size:13px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.dim{color:var(--text-dim)}.small{font-size:14px}.mono-num{font-variant-numeric:tabular-nums}.btn{min-height:var(--tap);padding:0 20px;border-radius:var(--radius);font-weight:650;font-size:17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--card-raised);border:1px solid var(--border);transition:transform .06s ease,opacity .15s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--blue);border-color:var(--blue);color:#06101f}.btn-go{background:var(--green);border-color:var(--green);color:#04211b}.btn-ghost{background:transparent;border-color:var(--border)}.btn-quiet{background:transparent;border-color:transparent;color:var(--text-dim);font-weight:500}.btn-danger{color:var(--danger);border-color:transparent;background:transparent}.btn-block{width:100%}.btn-lg{min-height:60px;font-size:19px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.input{min-height:var(--tap);background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:22px;font-weight:650;text-align:center;padding:0 10px;width:100%;font-variant-numeric:tabular-nums}.input:focus{outline:none;border-color:var(--blue)}.input-error{border-color:var(--danger)}.error-text{color:var(--danger);font-size:14px}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--card-raised);font-size:13px;font-weight:600;color:var(--text-dim)}.set-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--border)}.set-row-done{border-color:color-mix(in srgb,var(--green) 45%,var(--border))}.set-badge{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;background:var(--card-raised);font-size:13px;font-weight:700;color:var(--text-dim)}.set-row-done .set-badge{background:color-mix(in srgb,var(--green) 22%,transparent);color:var(--verdict-up)}.textarea{min-height:90px;padding:12px 14px;line-height:1.45;resize:vertical;font-family:inherit}.num-group{display:flex;align-items:stretch;gap:4px}.num-btn{width:38px;flex:none;border-radius:var(--radius);background:var(--card-raised);border:1px solid var(--border);font-size:20px;font-weight:600;display:grid;place-items:center}.num-btn:active{background:var(--border)}.num-input{min-width:0;font-size:19px;padding:0 2px}.chart{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis{fill:var(--text-dim);font-size:10px;font-variant-numeric:tabular-nums}.chart-line{fill:none;stroke:var(--blue);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-dot{stroke:var(--card);stroke-width:2}.chart-hit{cursor:pointer}.chart-label{fill:var(--text);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.chart-key{display:flex;flex-wrap:wrap;gap:12px}.chart-key-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}.chart-key-dot{width:9px;height:9px;border-radius:50%;flex:none}.pill-verdict{gap:5px;padding:3px 8px;font-size:12px;flex:none}.pill-verdict .chart-key-dot{width:7px;height:7px}.ex-row{width:100%;display:flex;align-items:center;gap:12px;padding:12px var(--pad);border-radius:var(--radius);background:var(--card);border:1px solid var(--border);text-align:left;min-height:var(--tap)}.spark{width:56px;height:22px;flex:none;overflow:visible}.spark-line{fill:none;stroke:var(--blue);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.delta-up{color:var(--verdict-up)}.delta-flat{color:var(--text-dim)}.delta-down{color:var(--verdict-short)}.notes{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--purple);border-radius:var(--radius);padding:12px var(--pad)}.notes-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;text-align:left}.notes-chevron{color:var(--text-dim);font-size:20px;transform:rotate(90deg);transition:transform .18s ease}.notes-chevron-open{transform:rotate(-90deg)}.notes-body{margin:0;font-size:15px;line-height:1.5}.verdict{border-radius:var(--radius);padding:var(--pad);border:1.5px solid;display:flex;flex-direction:column;gap:6px}.verdict-title{font-size:30px;font-weight:800;letter-spacing:.02em}.timer{display:flex;align-items:center;gap:14px;padding:12px var(--pad);border-radius:var(--radius);background:var(--card-raised);border:1px solid var(--border)}.timer-num{font-size:32px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer-done{border-color:var(--green);color:var(--verdict-up)}.timer-bar{height:4px;border-radius:2px;background:var(--border);overflow:hidden}.timer-bar-fill{height:100%;background:var(--green);transition:width .25s linear}.sync-dot{width:8px;height:8px;border-radius:50%;flex:none}.sync-idle{background:var(--green)}.sync-pending{background:var(--verdict-short)}.sync-syncing{background:var(--blue);animation:pulse 1.1s ease-in-out infinite}.sync-error{background:var(--danger)}@keyframes pulse{50%{opacity:.3}}.day-btn{width:100%;text-align:left;padding:14px var(--pad);border-radius:var(--radius);background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap)}.day-btn-next{border-color:var(--blue);background:var(--card-raised)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080eb8;display:flex;align-items:flex-end;justify-content:center;padding:var(--pad);padding-bottom:calc(var(--pad) + var(--safe-bottom));z-index:50}.sheet{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:20px;width:100%;max-width:460px;display:flex;flex-direction:column;gap:14px}.login{flex:1;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:24px;max-width:420px;margin:0 auto;width:100%}.input-text{min-height:var(--tap);background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:17px;padding:0 14px;width:100%;text-align:left;font-weight:500}.input-text:focus{outline:none;border-color:var(--blue)}.notice{padding:12px 14px;border-radius:12px;font-size:15px;border:1px solid}.notice-ok{border-color:color-mix(in srgb,var(--green) 50%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.notice-bad{border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent)}.progress-dots{display:flex;gap:4px}.progress-dot{height:3px;flex:1;border-radius:2px;background:var(--border)}.progress-dot-done{background:var(--green)}.progress-dot-current{background:var(--blue)}
