:root{color-scheme:light;--bg:#DCE2F1;--ink:#26334d;--muted:#53617b;--line:#c4cde1;--accent:#425b99;--purple:#425b99;--green:#2d786a;--paper:#f8faff;--shadow:0 10px 32px #354e7b0a;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--accent);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6886bc;outline-offset:3px}.hidden{display:none!important}.shell{max-width:1200px;margin:auto;padding:32px 40px 40px}.ambient{position:fixed;z-index:-1;inset:0;background:radial-gradient(ellipse at 85% 10%,#edf1fc88,transparent 65%);pointer-events:none}.brand,.brand-lockup,.welcome,.section-heading,.checkin-row,.stat-line,.row,.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{padding-bottom:20px;border-bottom:1px solid var(--line)}.brand-lockup{text-decoration:none;color:var(--ink);font-size:21px;font-weight:700;gap:12px;letter-spacing:1px}.brand-lockup small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;color:var(--muted)}.dev-badge,.pill,.tag{font-size:11px;border-radius:999px;background:#e9eef9;color:#4b5e80;padding:4px 10px;display:inline-block}.dev-badge{border:1px solid #bcc8df}.notice-banner{font-size:11px;color:var(--muted);margin:16px 0 0}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:700;margin:0 0 8px}.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;padding:65px 0 25px;align-items:center}.intro h1{font-size:52px;font-weight:600;line-height:1.3;letter-spacing:-2px;margin:16px 0 22px}.intro-copy{font-size:16px;color:var(--muted);max-width:390px}.principles{display:flex;flex-direction:column;gap:15px;font-size:12px;margin-top:30px}.sample-card{display:flex;gap:18px;align-items:center;border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.sample-card strong{font-size:13px}.sample-card p{font-size:11px;color:var(--muted);margin:4px 0}.spark{font-size:35px;color:var(--accent)}.card{background:var(--paper);border:1px solid #d1d9e9;border-radius:20px;padding:24px;margin-bottom:18px;box-shadow:var(--shadow);min-width:0}.auth-card{padding:32px}.segmented{display:flex;gap:4px;background:#e9edf6;border-radius:12px;padding:5px;margin-bottom:26px}.segmented button{flex:1;background:transparent;border:0;border-radius:9px;color:var(--muted);padding:9px;font-size:13px}.segmented .selected{background:#fff;color:var(--accent);box-shadow:0 2px 8px #26334d0c}h1,h2,h3,p{overflow-wrap:anywhere}.card h2{font-size:23px;margin:0 0 5px;letter-spacing:-.5px}h3{margin:0 0 12px;font-size:17px}.muted{color:var(--muted);font-size:13px;margin:6px 0 17px}.fine{color:var(--muted);font-size:11px;line-height:1.8;margin:12px 0 0}label{display:block;font-size:12px;margin:15px 0 7px;color:#4b5b75}input,select,textarea{width:100%;min-width:0;padding:11px 13px;min-height:46px;border:1px solid #bdc9df;border-radius:10px;color:var(--ink);background:#fff}input::placeholder,textarea::placeholder{color:#7a879b;font-size:12px}textarea{resize:vertical}input[type=file]{font-size:12px}.checkbox{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.7;margin:18px 0}.checkbox input{width:16px;height:16px;min-height:0;flex-shrink:0;margin:3px 0;accent-color:var(--accent)}.primary,.secondary,.quiet,.danger{border-radius:10px;min-height:44px;padding:10px 16px;font-weight:600;font-size:12px;border:1px solid transparent;white-space:normal;transition:background .15s}.primary{background:var(--accent);color:#fff}.primary:hover{background:#354d86}.secondary{background:#e5ebf7;color:#344c7f;border-color:#c5d1e7}.secondary:hover{background:#d9e3f5}.quiet{background:transparent;color:#52627f;border-color:#cbd4e5}.quiet:hover{background:#e8edf7}.danger{color:#97465b;background:#fff1f3;border-color:#dfbdc5}.full{width:100%;display:flex;justify-content:space-between;margin-top:23px}.feedback{position:sticky;top:10px;z-index:10;background:#e5f3ed;border:1px solid #a1c3b7;color:#285c4d;padding:12px 16px;border-radius:10px;margin:12px 0;font-size:13px;overflow-wrap:anywhere}.feedback.error{background:#fff0f2;color:#8a3e4f;border-color:#d8aab4}.welcome{margin:32px 0 5px}.welcome h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-1px}.bottom-nav{display:flex;gap:8px;padding:6px;background:#edf1f9;border:1px solid #c9d3e7;border-radius:15px;margin:22px 0 26px}.bottom-nav button{flex:1;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;min-height:44px}.bottom-nav button.selected{background:var(--accent);color:#fff}.bottom-nav button span{font-size:20px}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.checkin-card{background:linear-gradient(125deg,#f8faff,#eaf0fc)}.checkin-row{margin:26px 0 14px}.checkin-row strong{font-size:44px;font-weight:600;line-height:1;margin-right:10px;color:var(--green)}.checkin-row span{font-size:12px;color:var(--muted)}.points{margin:12px 0 20px}.points strong{font-size:48px;font-weight:500;letter-spacing:-2px;line-height:1.1;font-variant-numeric:tabular-nums}.points span{font-size:12px;color:var(--muted);margin-left:10px}progress{appearance:none;width:100%;height:7px;border:0;border-radius:10px;overflow:hidden;background:#e3e9f3}progress::-webkit-progress-bar{background:#e3e9f3}progress::-webkit-progress-value{background:#778fbb;border-radius:10px}progress::-moz-progress-bar{background:#778fbb}.stat-line{font-size:13px;margin-top:20px}.stat-line span{color:var(--muted)}.section-heading{margin:20px 0 16px}.section-heading h2{font-size:21px;font-weight:600;margin:0}.section-heading h3{margin:0}.section-heading p{margin-bottom:0}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.action-card{padding:22px;display:flex;flex-direction:column}.action-card h3{margin:15px 0 6px}.action-card p{flex:1}.action-symbol,.reward-symbol{font-size:27px;color:var(--accent)}.action-card.done{border-color:#a9c9ba;background:#f4faf7}.action-card.done .action-symbol{color:var(--green)}.action-card button{width:100%;margin-top:10px}.soft{background:#eaf0fa;box-shadow:none}.soft strong{font-size:13px}.soft p{margin-bottom:0}.two-columns,.group-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-columns>.card,.group-list>.card{margin-bottom:0}.two-columns{margin-bottom:18px}.group-list{margin:18px 0}.row{justify-content:flex-start;flex-wrap:wrap;margin-top:14px;gap:8px}.compact{margin:0}.empty{color:var(--muted);font-size:13px;text-align:center;padding:30px 15px;grid-column:1/-1}.board-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-top:8px}.leaderboard{padding:8px 22px}.rank-row{display:grid;grid-template-columns:36px 1fr auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.rank-row:last-child{border:0}.rank-index{font-size:20px;color:#6c7f9f}.rank-row.me .rank-index{color:var(--green)}.rank-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}.rank-name small{margin-left:9px;color:var(--green)}.rank-detail{font-size:11px;color:var(--muted);margin-top:4px}.rank-score{font-size:24px;color:var(--accent);font-variant-numeric:tabular-nums}.rank-score small{display:block;font-size:10px;text-align:right;color:var(--muted)}.member-row{padding:14px 0;border-bottom:1px solid var(--line)}.danger-zone{border-color:#dcbbc6}.toolbar{display:flex;gap:12px;margin-bottom:18px}.toolbar input{flex:1}.toolbar select{width:auto;min-width:130px}.task-item{display:flex;justify-content:space-between;align-items:center;gap:20px}.task-item h3{margin:10px 0 4px}.task-item .muted{margin:0}.task-item .row{flex-shrink:0}.task-item.done{opacity:.8}.urgent{background:#f2e3d9;color:#815c3e}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.stat{display:flex;flex-direction:column;gap:9px}.stat>span{font-size:12px;color:var(--muted)}.stat>strong{font-size:28px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}#radar svg{display:block;max-width:320px;margin:0 auto;width:100%}#radar text{font-size:10px;fill:#61708b}.radar-grid{fill:none;stroke:#d6deec;stroke-width:1}.radar-fill{fill:#8da7d255;stroke:#627fb3;stroke-width:2}.dimension-row{padding:8px 0;border-bottom:1px solid #e2e7f0}.dimension-row .section-heading{margin:0 0 9px}.dimension-row strong{font-size:13px}.dimension-row .quiet{min-height:32px;padding:4px 10px;font-size:11px}.week-chart{height:165px;display:flex;gap:12px;align-items:end;margin:20px 0 28px}.chart-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.chart-column svg{height:110px;width:100%;max-width:30px;fill:#809ac4}.chart-column small{font-size:10px}.history-row,.ledger-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #e2e7f0;font-size:12px}.history-row strong,.ledger-row strong{font-weight:500;overflow-wrap:anywhere}.history-row small,.ledger-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.history-row>span{color:var(--green);white-space:nowrap}.ledger-row>.row{margin:0;flex-wrap:nowrap}.ledger-row>div:first-child{flex:1;min-width:0}.positive{color:#2d786a}.negative{color:#9b5a60}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.achievement{background:#e7ecf6;box-shadow:none}.achievement.unlocked{background:#f8faff;border-color:#aabddd}.achievement b{font-size:13px}.achievement .tag{margin-top:10px}.achievement .fine{margin-top:5px}.dialog-heading{margin-bottom:16px}.dialog-heading h2{font-size:22px;margin:0}dialog{border:1px solid #b9c7df;border-radius:22px;background:#f8faff;color:var(--ink);padding:28px;width:min(560px,calc(100% - 24px));max-height:88vh;box-shadow:0 24px 100px #26334d40}dialog::backdrop{background:#27365055;backdrop-filter:blur(4px)}.error-text{color:#9b4058;font-size:12px}.error-text:empty{display:none}#ai-run{margin:15px 0}#ai-result{font-size:13px}footer{text-align:center;font-size:11px;color:#697a94;margin-top:36px;line-height:2}.legal{max-width:760px;margin:30px auto;padding:28px;background:#f8faff;border-radius:20px}.legal h1{font-size:26px}.legal p,.legal li{font-size:14px;color:var(--muted)}
@media(max-width:900px){.shell{padding:24px}.auth-layout{gap:36px}.intro h1{font-size:44px}.task-item{align-items:flex-start;flex-direction:column;gap:0}.task-item>.row{width:100%}.points strong{font-size:38px}}
@media(max-width:760px){.shell{padding:18px 16px calc(96px + env(safe-area-inset-bottom))}.brand{padding-bottom:14px}.brand-lockup{font-size:18px}.notice-banner{font-size:10px}.auth-layout{grid-template-columns:1fr;gap:24px;padding:24px 0}.intro h1{font-size:36px;margin:10px 0;letter-spacing:-1px}.intro h1 br{display:none}.intro-copy{font-size:14px;margin-bottom:0}.principles{flex-direction:row;flex-wrap:wrap;gap:12px;margin-top:18px;font-size:10px}.sample-card{display:none}.card{padding:20px;border-radius:17px}.welcome{margin-top:25px;align-items:flex-start}.welcome h1{font-size:23px;letter-spacing:-.5px}.welcome .quiet{padding:7px 10px;font-size:11px}.dashboard-grid,.two-columns,.group-list{grid-template-columns:1fr;gap:0}.two-columns>.card,.group-list>.card{margin-bottom:16px}.action-grid{grid-template-columns:1fr;gap:0}.action-card{display:grid;grid-template-columns:28px 1fr auto;gap:0 10px;align-items:center;padding:18px}.action-card .action-symbol{grid-row:1/3}.action-card h3{margin:0 0 4px;font-size:14px}.action-card p{font-size:10px;margin:0}.action-card button{grid-column:3;grid-row:1/3;width:auto;margin:0;padding:8px;font-size:11px;max-width:95px}.bottom-nav{position:fixed;z-index:8;bottom:0;left:0;right:0;margin:0;border-radius:18px 18px 0 0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#edf1faf5;backdrop-filter:blur(16px);gap:4px}.bottom-nav button{flex-direction:column;gap:0;padding:5px 3px;font-size:10px;min-height:49px}.bottom-nav button span{font-size:20px}.section-heading h2{font-size:19px}.section-heading>.primary,.section-heading>.secondary{padding:9px 12px;font-size:11px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:17px}.stat>strong{font-size:25px}.stat:last-child:nth-child(3){grid-column:1/-1}.toolbar{gap:8px}.toolbar select{min-width:105px;font-size:12px}.ledger-row{flex-wrap:wrap}.ledger-row>.row{width:100%;justify-content:flex-end}.ledger-row .quiet{min-height:34px;padding:5px 12px;font-size:11px}.achievement-grid{grid-template-columns:1fr 1fr;gap:10px}.achievement{padding:16px}.board-controls{gap:10px}.board-controls select{padding:10px 8px;font-size:12px}.rank-row{gap:10px;grid-template-columns:26px 1fr auto}.leaderboard{padding:5px 18px}.rank-score{font-size:22px}.feedback{top:5px}dialog{padding:22px}.points strong{font-size:34px}.legal{margin:16px;padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.checkin-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:20px 0}.checkin-calendar>div{border:1px solid #d5dded;border-radius:10px;text-align:center;padding:7px 1px;color:#60708a}.checkin-calendar small{font-size:9px}.checkin-calendar b{display:block;font-size:18px}.checkin-calendar .checked{background:#e2eee9;color:#2d6558;border-color:#adc8bc}
