:root{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#252524;background:#f2f3f1;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a82d39;outline-offset:2px}::selection{background:#b92e3d;color:#fff}input,select{border:1px solid #bcb9b2;border-radius:10px;background:#fff;color:#252524;min-height:44px;padding:0 12px;width:100%;caret-color:#a52030}input::placeholder{color:#79756e}.shell{max-width:1100px;margin:auto;padding:0 30px 110px}.masthead{min-height:84px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #d7d3ca}.brand-mark{width:38px;height:44px;border:2px solid #9f2532;border-radius:5px;display:grid;place-items:center;color:#9f2532;font:800 26px Georgia,serif;position:relative}.brand-mark i{position:absolute;width:11px;height:2px;background:#9f2532;bottom:-6px}.brand-copy{display:flex;flex-direction:column;line-height:1.25}.brand-copy strong{font-size:17px;letter-spacing:-.02em}.brand-copy span{font-size:12px;color:#666057;margin-top:4px}.text-button{margin-left:auto;border:0;background:none;color:#746d64;text-decoration:underline;text-underline-offset:4px}.eyebrow{font-size:12px;font-weight:700;color:#9f2532;letter-spacing:.04em}.login-view{max-width:430px;margin:48px auto 0}.login-illustration{height:190px;display:grid;place-items:center;background:#e9e5dc;border-radius:14px;overflow:hidden}.mini-screen{width:260px;height:145px;border:10px solid #fdfdfb;box-shadow:0 8px 25px #40383024;background:#dcdedb;border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;justify-content:space-between;transform:rotate(-4deg)}.mini-screen b{font-size:39px;color:#9e1826;letter-spacing:-.04em}.mini-screen b span{font-size:15px;color:#272626;letter-spacing:0}.mini-screen>span{border-top:2px solid #383735;padding-top:8px;font-size:15px}.login-view h1{font-size:32px;margin:30px 0 8px;letter-spacing:-.03em}.login-view p{color:#645f57;line-height:1.7}.login-form{display:grid;gap:12px;margin-top:28px}.login-form label,.field span{font-size:13px;font-weight:700;color:#3d3935}.login-form input{height:48px}.primary-button,.secondary-button{border-radius:10px;min-height:44px;padding:0 18px;font-weight:700;border:1px solid #a42533}.primary-button{background:#a42533;color:white}.primary-button:hover{background:#861925}.secondary-button{color:#9b2230;background:#fff}.secondary-button:hover{background:#f9e8e9}.form-message{color:#a42533!important;font-size:13px}.status-panel{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:28px;background:#e7e5de;border-radius:12px;padding:18px 20px}.status-panel strong{display:block;font-size:17px;margin-top:5px}.status-panel p{margin:4px 0 0;color:#5d5952;font-size:13px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-top:44px}.page-heading h1{font-size:34px;letter-spacing:-.035em;margin:5px 0 0}.draft-status{color:#9f2532;font-size:13px;font-weight:700}.tabs{display:flex;gap:3px;border-bottom:1px solid #c8c3b9;margin-top:24px;overflow-x:auto}.tab{border:0;background:transparent;color:#635d55;padding:13px 21px;white-space:nowrap;font-weight:700;border-bottom:3px solid transparent}.tab:hover{background:#edeae3}.tab.active{color:#9f2532;border-bottom-color:#a42533}.panel{padding:28px 0}.section-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:24px}.section-heading h2{font-size:22px;margin:0 0 5px}.section-heading p,.subsection-heading p{margin:0;color:#645f57;font-size:13px;line-height:1.6}.count{font-weight:700;font-variant-numeric:tabular-nums;color:#9f2532}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field.grow{flex:1}.todo-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:18px;border:1px solid #d5d0c7;border-radius:12px;background:#fff}.todo-form .field:not(.grow){width:145px}.todo-form .add-button{min-width:110px}.todo-list{margin-top:24px}.todo-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid #d8d4cc;padding:14px 4px}.todo-check{width:22px;height:22px;min-height:22px;accent-color:#a42533;flex:none}.todo-main{flex:1;min-width:0}.todo-title{font-weight:700;overflow-wrap:anywhere}.todo-meta{font-size:12px;color:#665e55;margin-top:5px}.todo-row.done .todo-title{color:#77726a;text-decoration:line-through}.priority{display:inline-block;color:#a42533;font-weight:700;margin-left:8px}.remove-button{border:0;background:none;color:#726a60;padding:8px;text-decoration:underline;text-underline-offset:3px}.empty-state{background:#ebe8e0;border-radius:12px;padding:34px 20px;text-align:center;color:#625d55}.empty-state strong{display:block;color:#2c2926;font-size:18px;margin-bottom:5px}.day-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:10px}.day-tab{flex:none;border:1px solid #bcb6ad;background:white;border-radius:9px;padding:9px 18px;font-weight:700}.day-tab.active{background:#a42533;border-color:#a42533;color:white}.schedule-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:15px}.period-group{background:#fff;border:1px solid #d5d0c7;border-radius:12px;padding:20px}.period-group h3{margin:0 0 14px;font-size:16px}.course-field{display:flex;gap:10px;align-items:center;margin-top:10px}.course-field span{font-size:12px;color:#746e65;width:16px;flex:none}.course-field input{min-width:0}.routine-editor{display:grid;gap:7px}.routine-row{display:grid;grid-template-columns:108px 108px minmax(150px,1fr) 36px;gap:10px;align-items:center;background:#fff;border:1px solid #d9d4cb;border-radius:10px;padding:10px}.routine-row input{min-height:40px}.routine-row .remove-button{text-decoration:none;font-size:22px}.routine-editor+.secondary-button{margin-top:18px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;background:white;border:1px solid #d5d0c7;padding:20px;border-radius:12px}.subsection-heading{margin:34px 0 14px}.subsection-heading h3{margin:0 0 4px;font-size:18px}.early-reading-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.sync-note{border-top:2px solid #a42533;margin-top:36px;padding-top:16px;max-width:630px}.sync-note p{color:#645f57;line-height:1.7;font-size:14px}.save-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -5px 30px #221f1c1a;padding:13px max(28px,calc((100vw - 1040px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:10}.save-bar[hidden],.toast[hidden],[hidden]{display:none!important}.save-bar div{display:flex;flex-direction:column;gap:3px}.save-bar span{font-size:12px;color:#645f57}.toast{position:fixed;right:24px;bottom:90px;max-width:340px;background:#292826;color:#fff;padding:12px 16px;border-radius:9px;box-shadow:0 8px 20px #1113;z-index:20}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#6b625b 50%),linear-gradient(135deg,#6b625b 50%,transparent 50%);background-position:calc(100% - 19px) 19px,calc(100% - 14px) 19px;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}::-webkit-scrollbar{width:10px;height:8px}::-webkit-scrollbar-thumb{background:#b9b2a8;border-radius:10px}::-webkit-scrollbar-track{background:#eeeae3}
@media(max-width:760px){.shell{padding:0 16px 105px}.masthead{min-height:72px}.status-panel{margin-top:18px;padding:15px;align-items:start}.status-panel .secondary-button{padding:0 11px;font-size:12px}.page-heading{margin-top:35px}.page-heading h1{font-size:29px}.tab{flex:1;padding:12px 13px}.panel{padding:23px 0}.todo-form{display:grid;grid-template-columns:1fr 1fr;padding:14px}.todo-form .field.grow{grid-column:1/-1}.todo-form .field:not(.grow){width:auto}.todo-form .add-button{grid-column:1/-1}.schedule-editor{grid-template-columns:1fr}.period-group{padding:16px}.routine-row{grid-template-columns:1fr 1fr 32px;gap:7px}.routine-row input:nth-child(3){grid-column:1/3;grid-row:2}.routine-row .remove-button{grid-column:3;grid-row:1/3}.settings-grid{grid-template-columns:1fr;padding:15px}.early-reading-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.save-bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.save-bar span{display:none}.toast{left:16px;right:16px;bottom:90px;max-width:none}}
@media(max-width:370px){.brand-copy strong{font-size:15px}.status-panel{display:block}.status-panel button{margin-top:11px}.tabs{gap:0}.tab{padding:12px 10px;font-size:13px}.save-bar strong{font-size:13px}.save-bar button{padding:0 10px;font-size:13px}}
.count{white-space:nowrap;flex:none}
