:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#183c36;background:#eff3f2;font-size:16px;--ink:#183c36;--muted:#526d67;--teal:#087b69;--line:#dce5e1;--blue:#447eb7;--orange:#bb632f}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,summary,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #269ec9;outline-offset:4px}a{color:var(--teal)}header{padding:22px 4%;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:19px;letter-spacing:1px;font-weight:750;text-decoration:none;color:var(--ink)}.brand span{font-size:16px;letter-spacing:0;font-weight:450;margin-left:14px}nav{display:flex;gap:22px;align-items:center}nav a,.text-button{font-size:14px;text-decoration:none;color:var(--muted)}.text-button{background:none;border:0;padding:8px 0}main{max-width:1280px;margin:auto;padding:36px 28px}h1{font-size:clamp(28px,3vw,40px);letter-spacing:-1px;line-height:1.3;margin:12px 0}h2{font-size:20px;margin:0 0 20px}h3{font-size:16px;margin:0 0 12px}p{line-height:1.75}.eyebrow{font-size:14px;color:var(--teal);font-weight:650}.intro{margin-bottom:30px}.intro p{color:var(--muted);margin:0}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px}.setup label,details label{display:block;font-size:14px;margin:16px 0 8px;font-weight:600}input[type=number],select{width:100%;min-height:46px;background:#fff;border:1px solid #bfcfc8;border-radius:8px;padding:8px 12px;color:var(--ink)}.primary{display:block;width:100%;padding:15px 20px;background:var(--teal);color:#fff;border:0;border-radius:9px;font-weight:650;margin-top:22px}.primary:hover:enabled{background:#056554}.quiet{color:var(--muted);font-size:15px}.fine{font-size:13px;color:var(--muted);line-height:1.8}.how{display:flex;gap:20px;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;margin-top:30px;color:var(--teal);font-size:14px}.how b{display:block;color:var(--ink);margin-top:10px;font-size:17px}details{border-top:1px solid var(--line);padding-top:16px;margin-top:22px}summary{font-size:14px;color:var(--muted);cursor:pointer}footer{max-width:1280px;margin:20px auto;padding:20px 28px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.hidden{display:none!important}.message{padding:14px 18px;border-radius:9px;margin-bottom:22px}.error{background:#fff0e8;color:#933b1c;border:1px solid #e3b69f}
.save-row{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:18px 0;color:var(--ink)}.save-row b{font-size:16px}.save-row small{display:block;font-size:13px;color:var(--muted);margin-top:7px}.save-row strong{font-size:16px;white-space:nowrap}.save-row:hover{background:#f3f8f5}.empty-record{padding:25px 0}.day-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.day-heading h1{font-size:30px}.pill{font-size:13px;padding:5px 10px;background:#ddefe9;color:#076553;border-radius:5px;margin-left:10px}.pill.generated{background:#e9effa;color:#3c5b88}.progress-box{min-width:175px;color:var(--muted);font-size:14px}progress{display:block;width:100%;height:8px;margin-top:12px;accent-color:var(--teal)}.score-strip{display:grid;grid-template-columns:1.25fr 1fr 1fr;margin:15px 0 25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;gap:20px}.score-strip span{font-size:14px;color:var(--muted)}.score-strip strong{font-size:30px;display:block;margin-top:8px;font-variant-numeric:tabular-nums}.score-strip small{font-size:14px;font-weight:450;color:var(--muted)}.gain{color:#08745c}.loss{color:#ae4824}.play-grid{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:22px;align-items:start}.main-column{min-width:0}.main-column .card{margin-bottom:22px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.card-title h2{margin-bottom:18px}.card-title .quiet{font-size:13px}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.brief-grid>div{padding-left:14px;border-left:3px solid #c3dfd5}.brief-grid span{font-size:14px;color:var(--muted)}.brief-grid strong{display:block;font-size:16px;margin-top:9px}.brief-grid p{font-size:14px;color:var(--muted);margin:6px 0}.brief-grid small{font-size:12px;color:var(--muted)}.briefing .fine{margin-bottom:0}.legend{display:flex;flex-wrap:wrap;gap:15px;font-size:13px;color:var(--muted)}.legend span:before{content:'';display:inline-block;width:16px;height:3px;margin-right:6px;vertical-align:middle}.legend-forecast:before{background:var(--blue)}.legend-submit:before{background:var(--teal)}.legend-actual:before{background:var(--orange)}.legend small{font-size:12px;margin-left:auto}svg{width:100%;display:block;margin-top:12px}svg text{fill:var(--muted);font-size:13px;font-family:inherit}.grid-line{stroke:#e0e9e5;stroke-width:1}.decision{position:sticky;top:20px;padding:24px}.decision h2{font-size:18px;margin:12px 0 20px}.presets{display:grid;gap:8px}.presets button{text-align:left;background:#f7faf8;border:1px solid var(--line);border-radius:8px;padding:12px 14px;color:var(--ink)}.presets button.selected,.presets button:hover{border-color:var(--teal);background:#e9f5ef}.presets b{font-size:15px}.presets small{display:block;font-size:13px;color:var(--muted);margin-top:5px}.ratio-line{display:flex;align-items:center;justify-content:space-between;margin:24px 0 13px;font-size:14px}.ratio-line output{color:var(--teal);font-size:18px;font-weight:650}input[type=range]{width:100%;accent-color:var(--teal);cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:6px}.estimate{padding:16px;margin-top:20px;background:#e9f4ef;border-radius:9px}.estimate>span{font-size:13px;color:var(--muted)}.estimate strong{display:block;font-size:27px;margin:10px 0}.estimate small{font-size:12px;font-weight:400;color:var(--muted)}.band-inputs label{display:flex;align-items:center;justify-content:space-between;font-size:13px}.band-inputs input{width:78px;min-height:35px;padding:5px}.points-scroll{max-height:320px;overflow:auto;margin-top:15px}.points-scroll input{width:110px;min-height:32px;padding:5px;font-size:13px}.points-scroll td{font-size:12px}.table-wrap{overflow:auto;max-height:360px;margin-top:15px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:12px 8px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{font-weight:500;color:var(--muted);background:#f5f8f6;position:sticky;top:0}.journal,.data-note{margin-top:20px}.journal summary,.data-note summary{font-size:15px;color:var(--ink)}.data-note p{font-size:14px;color:var(--muted)}.export{display:inline-block;font-size:14px;margin-top:20px}.daily-result{border-top:4px solid var(--teal)}.result-big{font-size:48px;font-weight:700;letter-spacing:-1px;margin:15px 0}.result-big span{font-size:20px;font-weight:450}.daily-result p{font-size:15px;color:var(--muted)}.cost-pair{display:flex;gap:22px;border-top:1px solid var(--line);padding-top:18px}.cost-pair span{font-size:13px;color:var(--muted)}.cost-pair b{font-size:18px;color:var(--ink);display:block;margin-top:8px}.band-results>div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.busy main{cursor:progress}.busy button{pointer-events:none}.saved{max-height:650px;overflow:auto}
@media(max-width:1020px){.play-grid{grid-template-columns:minmax(0,1fr) 305px}.card{padding:21px}.brief-grid{grid-template-columns:1fr}.decision{padding:20px}.day-heading h1{font-size:27px}.score-strip strong{font-size:26px}}
@media(max-width:750px){header{align-items:flex-start;flex-wrap:wrap;padding:18px 20px}nav{gap:16px}main{padding:25px 16px}.lobby-grid,.play-grid{grid-template-columns:1fr}.card{padding:20px}.how{gap:14px}.brand span{font-size:14px}footer{padding:18px 16px}.decision{position:static}.day-heading{display:block}.progress-box{margin:18px 0}.score-strip{gap:12px;grid-template-columns:1fr 1fr}.score-strip>div:last-child{grid-column:1/-1}.score-strip strong{font-size:26px}.brief-grid{grid-template-columns:1fr 1fr;gap:16px}.result-big{font-size:39px}.cost-pair{flex-wrap:wrap}.save-row{align-items:flex-start;flex-wrap:wrap}.saved{max-height:none}}
@media(max-width:410px){.brief-grid{grid-template-columns:1fr}.brand span{display:block;margin:6px 0 0}.score-strip strong{font-size:22px}.pill{display:inline-block;margin:8px 0 0}}

.period-inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px}.period-inputs>div{min-width:0}.period-inputs input[type=date]{width:100%;min-width:0;min-height:46px;background:#fff;border:1px solid #bfcfc8;border-radius:8px;padding:8px 10px;color:var(--ink);font:inherit}.period-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.period-presets button{border:1px solid var(--line);background:#f7faf8;border-radius:7px;color:var(--ink);padding:8px 12px;font-size:14px}.period-presets button[aria-pressed=true]{border-color:var(--teal);background:#e9f5ef;color:var(--teal)}.period-presets button:disabled{cursor:default;opacity:.4}.period-summary{font-size:14px;color:var(--teal);margin:10px 0 20px}.period-summary.invalid{color:#ae4824}
@media(max-width:410px){.period-inputs{grid-template-columns:1fr;gap:0}}
