@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:Noto Sans SC,system-ui,sans-serif;color:#23302b;background:#f4f1e9;font-synthesis:none;--ink:#23302b;--muted:#6d7772;--paper:#fffdf8;--line:#dedbd1;--green:#174f3e;--green-soft:#dfe9df;--orange:#d97a4a;--yellow:#f0c96b;--shadow:0 14px 40px rgba(36,48,43,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 15%,#e8d7a9 0 10%,transparent 32%),radial-gradient(circle at 90% 85%,#bbd0c2 0 8%,transparent 28%),#f4f1e9}.login-card{width:min(460px,100%);background:var(--paper);border:1px solid var(--line);padding:42px;box-shadow:var(--shadow);border-radius:22px}.brand-mark,.brand>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50% 50% 48% 52%;background:var(--green);color:#fff;font-weight:700;letter-spacing:.08em;transform:rotate(-3deg)}.login-card h1{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(28px,7vw,42px);line-height:1.25;margin:16px 0 12px}.eyebrow{margin:18px 0 0;color:var(--orange);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.login-copy{color:var(--muted);line-height:1.8;margin-bottom:26px}label{display:flex;flex-direction:column;gap:7px;color:#4f5d57;font-size:13px;font-weight:600}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);padding:11px 12px;border-radius:9px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #174f3e1f}.login-card form{display:grid;gap:16px}button,.button-link{border:0;border-radius:9px;padding:11px 16px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{color:#fff;background:var(--green)}.primary:hover{background:#0f3e30}.secondary{color:var(--green);background:var(--green-soft)}.secondary:hover{background:#d2e0d5}.full{width:100%;margin-top:3px}.compact{padding:8px 12px;font-size:13px}.privacy{text-align:center;color:var(--muted);font-size:12px;margin:22px 0 0}.error,.floating-error{color:#9d342a;background:#fce8e5;padding:10px 12px;border-radius:8px;font-size:13px}.floating-error{position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:76px;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--line);background:#f4f1e9eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;min-width:240px}.brand>span{width:42px;height:42px;font-size:13px}.brand div,.account span{display:flex;flex-direction:column}.brand small,.account small{color:var(--muted);font-size:11px;margin-top:2px}.topbar nav{display:flex;align-self:stretch;margin:auto}.topbar nav button{background:transparent;color:var(--muted);border-radius:0;border-bottom:3px solid transparent;padding:0 20px}.topbar nav button:hover,.topbar nav button.active{color:var(--green);border-bottom-color:var(--green)}.account{min-width:240px;display:flex;align-items:center;justify-content:flex-end;gap:14px;text-align:right}.account button{padding:7px 10px;background:transparent;color:var(--muted);border:1px solid var(--line)}.content{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:42px 0 60px;flex:1}.hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--green);color:#fff;border-radius:18px;padding:36px 40px}.hero:after{content:"";width:260px;height:260px;border:42px solid rgba(255,255,255,.07);border-radius:50%;position:absolute;right:-95px;top:-110px}.hero .eyebrow{color:#f5cc7d;margin-top:0}.hero h1{font:700 clamp(28px,4vw,46px)/1.2 Georgia,"Noto Serif SC",serif;margin:8px 0 10px}.hero p:last-child{margin:0;color:#ffffffbf}.hero-progress{position:relative;z-index:1;min-width:132px;height:132px;border:10px solid rgba(255,255,255,.18);border-top-color:var(--yellow);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(4deg)}.hero-progress strong{font-size:29px}.hero-progress span{font-size:12px;color:#ffffffbf}.encouragement{display:flex;align-items:center;gap:20px;margin:20px 0 0;padding:17px 22px;border-left:4px solid var(--orange);background:#f8e9dc;border-radius:0 10px 10px 0}.encouragement span{color:var(--orange);font-size:12px;font-weight:700;white-space:nowrap}.encouragement p{margin:0;font-family:Georgia,"Noto Serif SC",serif}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:38px 0 18px}.section-heading .eyebrow{margin:0 0 4px}.section-heading h2{margin:0;font:700 28px Georgia,"Noto Serif SC",serif}.routine{color:var(--muted);font-size:13px}.task-list{display:grid;gap:10px}.task{display:grid;grid-template-columns:82px 1fr auto;gap:18px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.task-done{opacity:.72}.task-done h3{text-decoration:line-through;text-decoration-color:#9ba59f}.task-time{display:flex;flex-direction:column;border-right:1px solid var(--line)}.task-time strong{font-size:18px}.task-time span{color:var(--muted);font-size:11px;margin-top:3px}.task-top{display:flex;align-items:center;gap:7px}.subject,.core,.status{display:inline-flex;padding:3px 7px;border-radius:5px;font-size:10px;font-weight:700}.subject{background:#e8e4d8}.core{background:#f6dfae;color:#6f521a}.status{margin-left:auto;color:var(--muted);background:#efede7}.status-done{background:#dce9df;color:var(--green)}.status-partial,.status-deferred{background:#f8e9d8;color:#8a582c}.status-skipped{background:#f4dddd;color:#8a3931}.task-body h3{margin:7px 0 4px;font-size:15px}.task-body p{margin:0;color:var(--muted);font-size:12px}.task-form{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:1px solid var(--line);padding-top:15px}.task-form .wide{grid-column:span 3}.empty{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #b9b6ad;border-radius:12px;color:var(--muted)}.empty strong{color:var(--green);font:700 22px Georgia,"Noto Serif SC",serif}.empty.small{min-height:90px}.heading-copy{margin:8px 0 0;color:var(--muted);font-size:13px}.week-navigation{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.week-navigation button{padding:9px 13px}.week-navigation button:disabled{cursor:not-allowed;opacity:.42}.week-metrics{display:flex;gap:10px;margin-bottom:16px}.week-metrics span{padding:9px 12px;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:9px;font-size:12px}.week-metrics strong{color:var(--green);margin-left:4px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:18px}.day{min-width:0;display:flex;flex-direction:column;gap:5px;background:transparent;color:var(--muted);border:1px solid var(--line)}.day strong{color:var(--ink);font-size:19px}.day small{font-size:11px}.day.selected{background:var(--green);color:#ffffffb8;border-color:var(--green)}.day.selected strong{color:#fff}.day.outside{cursor:not-allowed;opacity:.42;background:#e9e6df}.selected-day{margin-top:26px}.selected-day-heading{display:flex;align-items:baseline;gap:10px;margin:0 2px 10px}.selected-day-heading strong{font:700 20px Georgia,"Noto Serif SC",serif}.selected-day-heading span{color:var(--muted);font-size:11px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column}.stat>span{color:var(--muted);font-size:12px}.stat strong{font:700 34px Georgia,serif;color:var(--green);margin:8px 0 3px}.stat small{color:var(--muted)}.panel{margin-top:16px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px}.panel h3{margin:0 0 18px;font:700 19px Georgia,"Noto Serif SC",serif}.panel-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.panel-title h3{margin-bottom:5px}.panel-title p,.table-help{margin:0;color:var(--muted);font-size:12px}.week-actions{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.plan-panel{padding:0;overflow:hidden}.plan-panel .table-help{padding:16px 18px;border-bottom:1px solid var(--line)}.table-scroll{overflow-x:auto}.plan-table{width:100%;min-width:1050px;border-collapse:collapse;font-size:12px}.plan-table th{text-align:left;padding:10px 8px;color:var(--muted);background:#f1eee6;white-space:nowrap}.plan-table td{padding:8px;border-top:1px solid var(--line);vertical-align:top}.plan-table input,.plan-table select{min-width:90px;padding:8px;font-size:12px}.plan-table td:nth-child(1) input{min-width:135px}.plan-table td:nth-child(2) input{min-width:105px}.plan-table td:nth-child(4) input{min-width:235px}.plan-table td:nth-child(5) input{min-width:130px}.plan-table .minutes-input{min-width:70px;width:70px}.plan-table td:last-child{min-width:92px}.plan-table td:last-child button{width:100%}.check-label{flex-direction:row;align-items:center;gap:6px;white-space:nowrap}.check-label input{width:auto;min-width:0;accent-color:var(--green)}.save-ok,.save-error{display:block;margin-top:5px;text-align:center}.save-ok{color:var(--green)}.save-error{color:#9d342a}.plan-add-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 2fr 1.3fr 1fr auto auto;align-items:end;gap:10px;margin-top:18px}.plan-add-form .add-core{align-self:center;margin-top:20px}.plan-add-form button{white-space:nowrap}.subject-bars{display:grid;gap:14px}.subject-row{display:grid;grid-template-columns:50px 1fr 90px 110px;gap:12px;align-items:center;font-size:12px;color:var(--muted)}.subject-row>strong{color:var(--ink)}.progress-wrap{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-width:100px}.progress-wrap>span{grid-column:1;font-size:11px;color:var(--muted)}.progress-wrap>strong{font-size:11px;color:var(--green)}.progress-track{height:7px;background:#e9e6df;overflow:hidden;border-radius:99px}.progress-track span{display:block;height:100%;background:var(--green);border-radius:inherit}.inline-form{display:grid;grid-template-columns:repeat(5,1fr) auto;align-items:end;gap:10px}.form-message{color:var(--green);font-size:13px;margin:12px 0 0}.method ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.method li{background:#f1eee6;border-radius:9px;padding:13px;display:flex;flex-direction:column}.method li strong{color:var(--green)}.method li span{font-size:12px;color:var(--muted);margin-top:3px}.method>p{color:var(--muted);font-size:13px;margin-bottom:0}.target-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.target{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px}.target>span{color:var(--muted);font-size:12px}.target>strong{display:block;font:700 27px Georgia,serif;margin:6px 0 10px}.target>strong small{color:var(--muted);font-size:14px}.score-list{display:grid}.score-list>div{display:grid;grid-template-columns:80px 1fr 120px 150px;padding:12px 0;border-top:1px solid var(--line);align-items:center;font-size:13px}.score-list>div:first-child{border-top:0}.score-list span{color:var(--muted)}.score-list b{text-align:right;color:var(--green)}.comment-form textarea{min-height:100px;resize:vertical}.comment-form>div{margin-top:10px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.comment-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}.comment-list blockquote{margin:0;padding:20px;background:#f8e9dc;border-left:4px solid var(--orange);border-radius:0 10px 10px 0}.comment-list p{font-family:Georgia,"Noto Serif SC",serif;margin:0 0 10px}.comment-list footer{color:var(--muted);font-size:11px}.site-footer{border-top:1px solid var(--line);width:min(1180px,calc(100% - 48px));margin:auto;padding:22px 0;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}@media(max-width:800px){.topbar{height:auto;padding:12px 18px 0;flex-wrap:wrap}.brand{min-width:0;flex:1}.account{min-width:0}.account span{display:none}.topbar nav{order:3;width:100%;overflow:auto;justify-content:space-between}.topbar nav button{padding:15px 13px 12px;flex:1}.content{width:min(100% - 28px,700px);padding-top:22px}.hero{padding:28px 24px}.hero-progress{width:100px;height:100px;min-width:100px;border-width:8px}.hero-progress strong{font-size:23px}.task{grid-template-columns:62px 1fr auto;gap:10px;padding:13px}.task-form{grid-template-columns:repeat(2,1fr)}.task-form .wide,.task-form button{grid-column:1/-1}.stats,.target-grid,.inline-form{grid-template-columns:repeat(2,1fr)}.inline-form button{grid-column:1/-1}.method ol{grid-template-columns:repeat(2,1fr)}.subject-row{grid-template-columns:42px 1fr}.subject-row>span{display:none}.comment-list{grid-template-columns:1fr}.plan-add-form{grid-template-columns:repeat(2,1fr)}.plan-add-form .plan-title-input{grid-column:1/-1}.plan-add-form .add-core{margin-top:0}.plan-add-form button{align-self:end}}@media(max-width:520px){.login-card{padding:30px 22px}.brand div{display:none}.hero{align-items:flex-start}.hero-progress{display:none}.encouragement{align-items:flex-start;flex-direction:column;gap:5px}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}.routine{font-size:11px}.task{grid-template-columns:54px 1fr}.task>.secondary{grid-column:1/-1}.task-form{grid-template-columns:1fr}.task-form .wide{grid-column:auto}.week-strip{gap:3px}.day{padding:8px 2px}.day span{font-size:10px}.day strong{font-size:16px}.week-heading{align-items:stretch}.week-navigation{display:grid;grid-template-columns:1fr 1fr 1fr}.week-navigation button{min-width:0;padding:9px 5px;font-size:11px}.week-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.week-metrics span{padding:8px 5px;text-align:center}.stats,.target-grid{grid-template-columns:1fr 1fr}.stat{padding:16px}.stat strong{font-size:28px}.score-list>div{grid-template-columns:55px 1fr auto}.score-list>div span:nth-of-type(2){display:none}.site-footer{flex-direction:column;gap:5px}.week-actions{width:100%;justify-content:space-between}.week-actions span{text-align:center}.plan-add-form{grid-template-columns:1fr}.plan-add-form .plan-title-input{grid-column:auto}}
