:root{--paper:#fbfbf8;--paper-deep:#f3f5ee;--ink:#13211d;--muted:#7f8580;--faint:#a8aea8;--line:#dfe3dc;--green:#2f7a4d;--green-deep:#1f663f;--green-soft:#edf4ec;--warm:#fff2d6;--warm-ink:#bd7b1c;--shadow:0 24px 70px #23362b24;--app-side:24px;--app-top:22px;--app-bottom:118px;--font-sans-cn:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-title-cn:"Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif CN", "SimSun", "PMingLiU", serif}*{box-sizing:border-box}html,body{font-family:var(--font-sans-cn);min-height:100%;overflow-x:hidden}body{color:var(--ink);font-family:var(--font-sans-cn);font-synthesis-weight:auto;letter-spacing:0;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 18% 8%,#327a4d14,#0000 32%),linear-gradient(#f7f8f2 0%,#f1f4ee 100%);margin:0}h1,h2,h3{font-family:var(--font-title-cn)}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus{outline:none}button:focus-visible{outline-offset:2px;outline:2px solid #2f7a4d52}.phone-stage{justify-content:center;align-items:center;min-height:100dvh;padding:28px;display:flex}.progress-app{background:linear-gradient(180deg, #ffffffc2, #fbfbf8fa), var(--paper);box-shadow:var(--shadow);max-width:430px;min-height:844px;padding:var(--app-top) var(--app-side) var(--app-bottom);border:1px solid #c6cfc499;border-radius:32px;flex-direction:column;width:100%;display:flex;position:relative;overflow:auto}.app-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.app-header>div{flex:1;min-width:0}.brand-title{align-items:center;gap:10px;display:flex}.brand-title h1{font-family:Georgia, var(--font-title-cn);letter-spacing:0;margin:0;font-size:36px;font-weight:700;line-height:1}.brand-title svg{color:var(--green);transform:rotate(-14deg)}.brand-subtitle{color:var(--muted);margin:8px 0 0;font-size:13px;font-weight:800;line-height:1.35}.today-mark{color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;max-width:100%;margin-top:10px;padding:0;font-size:12px;font-weight:800;line-height:1.35;display:flex}.today-mark span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.today-mark svg{color:var(--green);flex:none}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#13211d47;justify-content:center;align-items:flex-start;padding:0 20px 22px;display:flex;position:fixed;inset:0}.modal-panel{margin-top:var(--modal-top,120px);max-height:calc(100dvh - var(--modal-top,120px) - 22px);width:100%;max-width:390px;overflow:auto}.time-adjust-sheet{border:1px solid var(--line);max-height:calc(100dvh - var(--modal-top,120px) - 22px);background:#ffffffe0;border-radius:18px;gap:12px;margin:0;padding:14px;display:grid;overflow:auto}.time-adjust-grid{grid-template-columns:minmax(0,1fr) 116px;gap:10px;display:grid}.time-adjust-grid label{gap:5px;display:grid}.time-adjust-grid label span{color:var(--muted);font-size:12px;font-weight:800}.time-adjust-grid input{color:var(--ink);background:#fbfcf9;border:1px solid #cfd7ce;border-radius:12px;outline:0;width:100%;min-height:42px;padding:0 10px;font-size:15px}.time-adjust-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.time-adjust-actions button{border:1px solid var(--line);color:var(--green-deep);cursor:pointer;background:#fff;border-radius:12px;min-height:38px;font-size:14px;font-weight:800}.time-adjust-actions button:last-child{background:var(--green);border-color:var(--green);color:#fff}.calendar-strip{color:var(--green-deep);background:#f2f7ef;border:1px solid #2f7a4d24;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;margin:-4px 0 16px;padding:9px 12px;display:flex}.calendar-strip span{white-space:nowrap;font-size:16px;font-weight:800}.calendar-strip strong{text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.calendar-strip.holiday{color:var(--warm-ink);background:#fff5dd;border-color:#bd7b1c2e}.import-trigger{border:1px solid var(--line);color:var(--green-deep);cursor:pointer;background:#ffffff9e;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-size:14px;font-weight:700;display:inline-flex}.icon-only-trigger{border-radius:50%;justify-content:center;width:40px;height:40px;min-height:40px;padding:0}.import-sheet,.setup-sheet,.quick-task-sheet{border:1px solid var(--line);background:#ffffffb8;border-radius:20px;gap:12px;margin-bottom:20px;padding:16px;display:grid}.quick-task-sheet{max-height:calc(100dvh - var(--modal-top,120px) - 22px);background:#ffffffe6;margin:0;overflow:auto}.quick-task-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.quick-task-grid>input{grid-column:1/-1}.quick-task-title{gap:7px;display:grid}.quick-task-title span{color:var(--muted);font-size:13px;font-weight:800}.quick-task-title input{color:var(--ink);background:#fbfcf9;border:1px solid #cfd7ce;border-radius:14px;outline:0;width:100%;min-height:48px;padding:0 12px;font-size:18px;font-weight:750}.quick-time-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.quick-time-chips button{color:var(--green-deep);cursor:pointer;background:#f5f8f1;border:1px solid #2f7a4d1f;border-radius:999px;min-height:34px;font-size:13px;font-weight:900}.quick-task-grid label{gap:5px;display:grid}.quick-task-grid label span{color:var(--muted);font-size:12px;font-weight:800}.quick-task-grid input,.quick-task-save{border-radius:12px;min-height:42px;font-size:15px}.quick-task-grid input{color:var(--ink);background:#fbfcf9;border:1px solid #cfd7ce;outline:0;width:100%;padding:0 10px}.quick-task-grid input:focus,.quick-task-title input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f7a4d1f}.quick-task-save{background:var(--green);border:1px solid var(--green);color:#fff;cursor:pointer;font-weight:800}.quick-task-save:disabled{color:var(--muted);cursor:default;background:#dfe7de;border-color:#dfe7de}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.setup-guide{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:14px;gap:4px;padding:11px 12px;display:grid}.setup-guide strong{color:var(--green-deep);font-size:15px;line-height:1.3}.setup-guide span{color:var(--muted);font-size:13px;font-weight:700;line-height:1.35}.empty-guide,.setup-empty-guide{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:16px;gap:6px;padding:14px;display:grid}.empty-guide strong,.setup-empty-guide strong{color:var(--green-deep);font-size:17px;line-height:1.3}.empty-guide span,.setup-empty-guide span{color:var(--muted);font-size:14px;font-weight:700;line-height:1.45}.settings-grid button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fbfcf9;border-radius:16px;place-items:center;gap:7px;min-height:78px;padding:10px;display:grid}.settings-grid button svg{color:var(--green-deep)}.settings-grid button span{font-size:14px;font-weight:800}.settings-grid button.active{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 12px 24px #2f7a4d2e}.settings-grid button.active svg{color:#fff}.setup-block{gap:10px;display:grid}.setup-block+.setup-block{border-top:1px solid var(--line);padding-top:14px}.setup-block-title{justify-content:space-between;align-items:center;display:flex}.setup-block-title h3{margin:0;font-size:16px;line-height:1.25}.setup-block-title span{color:var(--muted);font-size:13px}.setup-block-title button{color:var(--green-deep);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:6px 0 6px 10px;font-size:13px;font-weight:700;display:inline-flex}.setup-block-title.compact{margin-top:4px}.bell-summary{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;display:grid}.bell-summary div{gap:4px;display:grid}.bell-summary span{color:var(--muted);font-size:12px;font-weight:800}.bell-summary strong{color:var(--ink);font-size:17px;line-height:1.25}.bell-summary p{color:var(--muted);border-top:1px solid #2f7a4d1f;grid-column:1/-1;margin:0;padding-top:10px;font-size:13px;font-weight:650;line-height:1.45}.bell-list,.plan-list{gap:8px;display:grid}.course-plan-list{gap:12px;display:grid}.course-plan-block{border:1px solid var(--line);background:#ffffff8f;border-radius:14px;gap:9px;padding:11px;display:grid}.course-plan-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.course-plan-title div{gap:3px;min-width:0;display:grid}.course-plan-title strong{color:var(--green-deep);font-size:15px}.course-plan-title span{color:var(--muted);font-size:12px;font-weight:750}.course-plan-title button{color:var(--green-deep);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:4px 0 4px 8px;font-size:13px;font-weight:800;display:inline-flex}.course-plan-classes{flex-wrap:wrap;gap:6px;display:flex}.course-plan-classes span{color:var(--green-deep);background:#eef4ec;border:1px solid #2f7a4d1a;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:750;line-height:1.2}.term-row{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;display:grid}.work-editor-list{gap:10px;display:grid}.work-editor{border:1px solid var(--line);background:#ffffffa3;border-radius:14px;gap:8px;padding:10px;display:grid}.work-editor-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.work-editor-grid>input,.work-type-toggle,.recurrence-picker{grid-column:1/-1}.recovery-block{background:#f8faf5;border:1px solid #2f7a4d1f;border-radius:14px;padding:12px}.recovery-list{gap:8px;display:grid}.recovery-item{border:1px solid var(--line);background:#ffffffad;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.recovery-item div{gap:3px;min-width:0;display:grid}.recovery-item strong{color:var(--ink);font-size:14px;line-height:1.25}.recovery-item span,.recovery-empty{color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.recovery-empty{margin:0}.recovery-item button{color:var(--green-deep);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #2f7a4d38;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.work-type-toggle{background:#eef4ec;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.work-type-toggle button{color:var(--green-deep);cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:32px;font-size:13px;font-weight:800}.work-type-toggle button.active{background:#fff;box-shadow:0 4px 14px #1f663f1f}.weekday-picker{background:#eef4ec;border-radius:10px;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:3px;display:grid}.weekday-picker button{color:var(--green-deep);cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:32px;font-size:12px;font-weight:900}.weekday-picker button.active{background:#fff;box-shadow:0 4px 12px #1f663f1f}.recurrence-picker{gap:6px;display:grid}.recurrence-picker>span{color:var(--muted);font-size:11px;font-weight:800}.recurrence-select{position:relative}.recurrence-select:after{border-bottom:2px solid var(--green-deep);border-right:2px solid var(--green-deep);content:"";pointer-events:none;width:8px;height:8px;position:absolute;top:50%;right:16px;transform:translateY(-65%)rotate(45deg)}.cell-editor .recurrence-select select,.work-editor .recurrence-select select,.recurrence-select select{appearance:none;color:var(--ink);cursor:pointer;background:#fbfcf9;border:1px solid #cfd7ce;border-radius:12px;outline:0;width:100%;min-height:46px;padding:0 44px 0 12px;font-size:16px;font-weight:800}.cell-editor .recurrence-select select:focus,.work-editor .recurrence-select select:focus,.recurrence-select select:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f7a4d1f}.recurrence-custom{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.work-editor-grid label{gap:4px;display:grid}.work-editor-grid label span,.work-editor em{color:var(--muted);font-size:11px;font-style:normal;font-weight:700}.term-row span{color:var(--muted);font-size:13px;font-weight:700}.calendar-note{color:var(--muted);margin:-2px 0 0;font-size:12px;line-height:1.45}.bell-row{grid-template-columns:58px minmax(0,1fr) minmax(0,1fr) 30px;align-items:center;gap:8px;display:grid}.bell-row strong{white-space:nowrap;font-size:13px}.bell-row input,.cell-editor input,.cell-editor select,.plan-row input,.term-row input,.work-editor input,.work-editor select{color:var(--ink);background:#fbfcf9;border:1px solid #cfd7ce;border-radius:10px;outline:0;width:100%;min-height:38px;padding:0 9px}.bell-row input:focus,.cell-editor input:focus,.cell-editor select:focus,.plan-row input:focus,.term-row input:focus,.work-editor input:focus,.work-editor select:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f7a4d1f}.bell-row button,.plan-row button{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;height:30px;padding:0;display:grid}.timetable-scroll{border:1px solid var(--line);border-radius:14px;position:relative;overflow-x:auto}.timetable-grid{grid-template-columns:46px repeat(5,minmax(50px,1fr));width:100%;min-width:296px;display:grid}.timetable-row{display:contents}.timetable-corner,.timetable-head,.period-head,.timetable-cell{border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:58px}.timetable-corner,.timetable-head,.period-head{color:var(--muted);background:#f5f7f1;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.period-head{flex-direction:column;gap:3px}.period-head strong{color:var(--ink);font-size:14px}.period-head span{font-size:10px}.timetable-cell{color:var(--ink);cursor:pointer;text-align:left;background:#ffffff8f;border-top:0;border-left:0;gap:2px;min-width:0;padding:5px;display:grid}.timetable-cell:hover{background:#f8fbf5}.slot-mini-list{gap:3px;min-width:0;display:grid}.slot-mini-list span,.slot-mini-list em{color:var(--green-deep);text-overflow:ellipsis;white-space:nowrap;background:#2f7a4d14;border-radius:7px;padding:3px 4px;font-size:10px;font-style:normal;font-weight:700;display:block;overflow:hidden}.timetable-cell.editing{background:var(--green-soft);box-shadow:inset 0 0 0 2px #2f7a4d42}.timetable-cell strong,.timetable-cell span,.timetable-cell em{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.timetable-cell strong{color:var(--green-deep);font-size:13px;line-height:1.2}.timetable-cell span,.timetable-cell em{color:var(--muted);font-size:11px;font-style:normal}.timetable-cell em{place-self:center}.cell-editor{border:1px solid var(--line);max-height:calc(100dvh - var(--modal-top,120px) - 22px);background:#fff;border-radius:18px;gap:12px;margin:0;padding:14px;display:grid;overflow:auto}.cell-editor-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cell-editor-head div{gap:3px;min-width:0;display:grid}.cell-editor-head span{color:var(--muted);font-size:12px;font-weight:800}.cell-editor-head h2{color:var(--ink);margin:0;font-size:19px;line-height:1.25}.entry-list{gap:10px;display:grid}.entry-editor{border:1px solid var(--line);background:#ffffffb3;border-radius:12px;gap:8px;padding:10px;display:grid}.entry-editor-title,.cell-editor-actions{justify-content:space-between;align-items:center;display:flex}.entry-editor-title span{color:var(--green-deep);font-size:13px;font-weight:800}.entry-editor-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.entry-editor-grid label{gap:4px;display:grid}.entry-editor-grid label span,.entry-editor em{color:var(--muted);font-size:11px;font-style:normal;font-weight:700}.cell-editor button,.entry-editor-title button{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-self:start;padding:4px 0;font-weight:700}.cell-editor-actions{gap:10px}.empty-cell-editor{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:14px;gap:5px;padding:12px;display:grid}.empty-cell-editor strong{color:var(--ink);font-size:16px;line-height:1.3}.empty-cell-editor span{color:var(--muted);font-size:13px;font-weight:700;line-height:1.4}.cell-editor .cell-editor-add-entry,.cell-editor-actions button{border:1px solid var(--line);color:var(--green-deep);background:#fff;border-radius:12px;min-height:40px;padding:0 10px}.cell-editor .cell-editor-add-entry{cursor:pointer;background:#f7faf4;justify-self:start;width:auto;min-height:34px;padding:0 12px;font-size:13px;font-weight:800}.cell-editor-actions button{cursor:pointer;flex:1;font-weight:900}.cell-editor-actions button.primary{background:var(--green);border-color:var(--green);color:#fff}.empty-note.compact{padding:8px 2px;font-size:14px}.plan-row{grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:8px;display:grid}.plan-paste{gap:6px;display:grid}.plan-paste span{color:var(--muted);font-size:12px;font-weight:800}.plan-paste textarea{color:var(--ink);resize:vertical;background:#fbfcf9;border:1px solid #cfd7ce;border-radius:12px;outline:0;width:100%;min-height:64px;padding:9px;font-size:14px;line-height:1.45}.import-box{gap:8px;display:grid}.import-box span{color:var(--green-deep);align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.import-box textarea{color:var(--ink);resize:vertical;background:#fbfcf9;border:1px solid #cfd7ce;border-radius:12px;outline:0;width:100%;min-height:82px;padding:10px;font-size:14px;line-height:1.45}.import-box textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f7a4d1f}.import-box input{color:var(--muted);font-size:13px}.import-hint,.import-message{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.import-message{color:var(--green-deep);font-weight:700}.import-actions{grid-template-columns:1fr;gap:10px;display:grid}.import-actions button{border:1px solid var(--line);color:var(--green-deep);cursor:pointer;background:#fff;border-radius:12px;min-height:42px;font-weight:700}.import-actions button:last-child{background:var(--green);border-color:var(--green);color:#fff}.next-lesson{gap:14px;display:grid}.pill-label{color:var(--green-deep);background:#e7ece3;border-radius:999px;justify-self:start;align-items:center;min-height:38px;padding:0 17px;font-size:16px;font-weight:700;display:inline-flex}.lesson-heading{grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;display:grid}.lesson-heading h2{overflow-wrap:anywhere;margin:0;font-size:27px;font-weight:650;line-height:1.16}.lesson-heading p{color:var(--muted);margin:10px 0 0;font-size:15px;font-weight:600}.lesson-heading time{color:var(--green);letter-spacing:0;overflow-wrap:anywhere;font-size:27px;font-weight:500;line-height:1.12}.content-block{border-top:1px solid var(--line);gap:10px;padding-top:16px;display:grid}.content-block span,.today-lessons h2,.note-sheet label{color:var(--muted);font-size:15px;font-weight:500;line-height:1.35}.content-block strong{color:var(--green-deep);font-size:27px;font-weight:700;line-height:1.22;display:inline-block;position:relative}.content-block strong:after{content:"";background:#46945e47;border-radius:999px;width:min(100%,220px);height:5px;position:absolute;bottom:-8px;left:0;transform:rotate(-3deg)}.work-task .content-block{border-top:0;gap:0;padding-top:0}.work-task .content-block strong{color:var(--muted);font-size:21px;font-weight:650;line-height:1.36}.work-task .content-block strong:after{display:none}.memory-line{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;display:grid}.memory-line svg{background:var(--green-soft);color:var(--green);border-radius:12px;width:38px;height:38px;padding:8px}.memory-line span{font-size:18px;font-weight:560;line-height:1.4}.lesson-actions{justify-content:flex-end;margin-top:-2px;display:flex}.modify-action{color:var(--green-deep);cursor:pointer;background:#ffffff8f;border:1px solid #bcc9bc;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 13px;font-size:14px;font-weight:800;display:inline-flex}.undo-action{box-shadow:none;color:var(--green-deep);background:#e3eadf;border-color:#d5dfd2}.note-sheet{border:1px solid var(--line);max-height:calc(100dvh - var(--modal-top,120px) - 22px);background:#fff;border-radius:18px;gap:12px;margin:0;padding:16px;display:grid;overflow:auto}.adjustment-target{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:14px;gap:4px;padding:10px 12px;display:grid}.adjustment-target span{color:var(--muted);font-size:12px;font-weight:800}.adjustment-target strong{color:var(--green-deep);font-size:15px;line-height:1.35}.note-sheet textarea{color:var(--ink);resize:none;background:#fbfcf9;border:1px solid #cfd7ce;border-radius:12px;outline:0;width:100%;min-height:92px;padding:12px;line-height:1.45}.note-sheet textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f7a4d1f}.note-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.note-actions button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;min-height:42px}.note-actions button:last-child{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}.note-actions button:disabled{color:var(--muted);cursor:default;background:#dfe7de;border-color:#dfe7de}.adjustment-options,.slot-picker{gap:10px;display:grid}.adjustment-options>span,.slot-picker>span{color:var(--muted);font-size:14px;font-weight:700}.adjustment-choice-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.adjustment-choice-row button{border:1px solid var(--line);color:var(--green-deep);cursor:pointer;text-align:center;background:#fbfcf9;border-radius:12px;gap:3px;min-height:62px;padding:8px 6px;display:grid}.adjustment-choice-row button strong{font-size:13px;font-weight:900;line-height:1.25}.adjustment-choice-row button em{color:var(--muted);font-size:11px;font-style:normal;font-weight:700;line-height:1.25}.adjustment-choice-row button.active{background:var(--green);border-color:var(--green);color:#fff}.adjustment-choice-row button.active em{color:#ffffffd1}.slot-picker{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:14px;padding:11px}.slot-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.slot-picker label{gap:5px;display:grid}.slot-picker label span{color:var(--muted);font-size:11px;font-weight:800}.slot-picker select,.slot-picker input{color:var(--ink);background:#fbfcf9;border:1px solid #cfd7ce;border-radius:10px;outline:0;width:100%;min-height:40px;padding:0 8px}.slot-picker p,.adjustment-hint{color:var(--green-deep);margin:0;font-size:13px;font-weight:800;line-height:1.4}.slot-picker>em{color:var(--warm-ink);font-size:12px;font-style:normal;font-weight:800;line-height:1.35}.adjustment-hint{background:#f7faf4;border:1px solid #2f7a4d1f;border-radius:12px;padding:10px 11px}.undo-toast{color:var(--green-deep);background:#eff6ed;border:1px solid #2f7a4d2e;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;padding:10px 12px;display:flex}.undo-toast span{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.undo-toast button{color:var(--green-deep);cursor:pointer;background:0 0;border:0;flex:none;padding:4px 0 4px 8px;font-size:14px;font-weight:900}.pending-tasks,.agenda-list-section,.work-notes-panel,.class-panel,.notes-panel{margin-top:24px}.agenda-list-section,.class-panel,.work-notes-panel{padding-bottom:92px}.pending-tasks{margin-top:0;margin-bottom:18px}.pending-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.pending-head h2{margin:0}.pending-head div{gap:10px;display:flex}.pending-head button{color:var(--green-deep);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:4px 0;font-size:13px;font-weight:900}.agenda-list-section{margin-top:46px}.agenda-list-section h2{margin-bottom:10px;font-size:18px}.pending-tasks h2,.agenda-list-section h2,.work-notes-panel h2,.class-panel h2,.notes-panel h2{color:var(--ink);margin:0 0 14px;font-size:19px;font-weight:700}.pending-tasks h2{color:var(--muted);margin-bottom:6px;font-size:14px;font-weight:800}.pending-list,.agenda-list{border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.pending-list{background:#f7faf4b8;border:1px solid #2f7a4d1f;border-radius:14px;padding:0 8px}.pending-row{grid-template-columns:minmax(0,1fr);align-items:center;gap:10px;padding:8px 0;display:grid}.pending-row+.pending-row{border-top:1px solid var(--line)}.pending-row>button:first-child{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:72px minmax(0,.82fr) minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:34px;padding:0;display:grid}.pending-row time,.agenda-row time{font-size:16px;font-weight:650}.pending-row span,.agenda-row span{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:650;line-height:1.25;overflow:hidden}.pending-row strong,.agenda-row em{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.note-chip{color:var(--green-deep);cursor:pointer;background:#fff;border:1px solid #bcc9bc;border-radius:12px;align-items:center;gap:5px;min-height:36px;padding:0 10px;font-size:14px;font-weight:800;display:inline-flex}.pending-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.note-chip.planned{background:#f7faf4}.auto-progress-summary{border:1px solid var(--line);background:0 0;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:20px;padding:11px 12px;display:grid}.auto-progress-summary div{gap:3px;min-width:0;display:grid}.auto-progress-summary strong{color:var(--muted);font-size:14px;line-height:1.3}.auto-progress-summary span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;line-height:1.3;overflow:hidden}.auto-progress-summary button{border:1px solid var(--line);color:var(--green-deep);cursor:pointer;white-space:nowrap;background:#fff;border-radius:12px;min-height:36px;padding:0 10px;font-size:13px;font-weight:900}.agenda-row{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:72px minmax(0,1fr) auto 16px;align-items:center;gap:10px;width:100%;min-height:58px;padding:0 2px;display:grid}.agenda-row+.agenda-row{border-top:1px solid var(--line)}.agenda-row.active{background:linear-gradient(90deg,#2f7a4d14,#fff2d694)}.agenda-row-copy{gap:4px;min-width:0;display:grid}.agenda-row strong{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.25;overflow:hidden}.agenda-row.active time,.agenda-row.active span{color:var(--green-deep)}.agenda-row.active em{background:var(--warm);color:var(--warm-ink);border-radius:999px;padding:5px 10px}.agenda-row svg{color:var(--faint);opacity:.58}.work-notes-entry-section{margin-top:26px}.work-notes-entry{border:0;border-bottom:1px solid var(--line);border-top:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:10px;width:100%;min-height:58px;padding:10px 2px;display:grid}.work-notes-entry div{gap:4px;min-width:0;display:grid}.work-notes-entry strong{font-size:17px;line-height:1.25}.work-notes-entry span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;line-height:1.3;overflow:hidden}.work-notes-entry em{color:var(--green-deep);background:#eef4ec;border-radius:999px;padding:5px 9px;font-size:12px;font-style:normal;font-weight:900}.work-notes-entry svg{color:var(--faint)}.work-notes-panel{margin-top:20px}.work-note-list{border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.work-note-row{gap:6px;padding:12px 2px;display:grid}.work-note-row+.work-note-row{border-top:1px solid var(--line)}.work-note-row div{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.work-note-row strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.3;overflow:hidden}.work-note-row span{color:var(--muted);flex:none;font-size:12px;font-weight:800}.work-note-row p{color:var(--green-deep);margin:0;font-size:14px;font-weight:650;line-height:1.45}.work-list{gap:8px;display:grid}.work-row{border:1px solid var(--line);background:#f7faf4;border-radius:14px;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:10px 12px;display:grid}.work-row time{color:var(--green-deep);font-size:16px;font-weight:800}.work-row div{gap:2px;min-width:0;display:grid}.work-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.25;overflow:hidden}.work-row span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.3;overflow:hidden}.work-row em{color:var(--muted);white-space:nowrap;font-size:12px;font-style:normal;font-weight:700}.lesson-row{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:78px minmax(72px,.82fr) minmax(88px,1fr) auto 16px;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 2px;display:grid}.lesson-row+.lesson-row{border-top:1px solid var(--line)}.lesson-row.active{background:linear-gradient(90deg,#2f7a4d14,#fff2d694)}.lesson-row:focus-visible{outline-offset:-2px}.lesson-row time{font-size:17px;font-weight:560}.lesson-row span{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:560;line-height:1.25;overflow:hidden}.lesson-row.active time,.lesson-row.active span{color:var(--green-deep)}.lesson-row em{color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;justify-self:end;font-size:14px;font-style:normal}.lesson-row.active em{background:var(--warm);color:var(--warm-ink);padding:5px 10px}.lesson-row svg{color:var(--faint)}.class-list,.note-list,.lesson-note-list{border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.class-group+.class-group{margin-top:20px}.class-group-title{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.class-group-title strong{color:var(--ink);font-size:15px;line-height:1.3}.class-group-title span{color:var(--muted);font-size:12px;font-weight:800}.class-row,.note-row{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;width:100%;min-height:64px;padding:10px 2px}.class-row+.class-row,.note-row+.note-row{border-top:1px solid var(--line)}.class-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;display:grid}.class-row.next{background:linear-gradient(90deg,#2f7a4d14,#fff0)}.class-row strong,.class-row span,.class-row em,.class-row small,.note-row span,.note-row strong,.note-row p{display:block}.class-row strong{font-size:19px;line-height:1.25}.class-row span,.class-row small,.note-row span{color:var(--muted);margin-top:4px;font-size:13px;line-height:1.35}.class-row em{color:var(--green-deep);text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-style:normal;font-weight:650;line-height:1.25;overflow:hidden}.class-row div:last-child{text-align:right;min-width:0}.progress-context{background:#f5f8f1;border:1px solid #2f7a4d1f;border-radius:16px;gap:6px;margin-bottom:18px;padding:13px 14px;display:grid}.progress-context strong{color:var(--green-deep);font-size:17px;line-height:1.3}.progress-context span{color:var(--ink);font-size:16px;font-weight:650;line-height:1.35}.progress-context small{color:var(--muted);font-size:12px;font-weight:700;line-height:1.45}.progress-note-box{border:1px solid var(--line);background:#ffffffa8;border-radius:16px;gap:10px;margin-bottom:16px;padding:12px;display:grid}.progress-note-box label,.maintenance-fields label{gap:5px;display:grid}.progress-note-box span,.maintenance-fields span{color:var(--muted);font-size:12px;font-weight:800}.progress-note-box textarea,.maintenance-fields input,.maintenance-fields select{color:var(--ink);background:#fbfcf9;border:1px solid #cfd7ce;border-radius:10px;outline:0;width:100%;min-height:38px;padding:0 9px}.progress-note-box textarea{resize:none;min-height:66px;padding:9px;line-height:1.45}.progress-note-input{grid-column:1/-1}.progress-note-box button,.maintenance-fields button{border:1px solid var(--line);color:var(--green-deep);cursor:pointer;background:#fff;border-radius:12px;align-self:end;min-height:38px;padding:0 12px;font-size:14px;font-weight:900}.progress-note-box button{background:var(--green);border-color:var(--green);color:#fff;grid-column:1/-1}.progress-note-box button:disabled{color:var(--muted);cursor:default;background:#dfe7de;border-color:#dfe7de}.progress-maintenance{gap:10px;margin:-4px 0 16px;display:grid}.maintenance-toggle{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-self:start;padding:4px 0;font-size:13px;font-weight:800}.maintenance-fields{background:#ffffff8f;border:1px dashed #cfd7ce;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:10px;display:grid}.lesson-note-list{display:grid}.lesson-note-card{gap:8px;padding:12px 2px;display:grid}.lesson-note-card+.lesson-note-card{border-top:1px solid var(--line)}.lesson-note-card.current{background:linear-gradient(90deg,#2f7a4d14,#fff0)}.lesson-note-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.lesson-note-head strong,.lesson-note-head span{display:block}.lesson-note-head strong{font-size:16px;line-height:1.25}.lesson-note-head span{color:var(--green-deep);margin-top:4px;font-size:15px;font-weight:700;line-height:1.35}.lesson-note-head em{color:var(--green-deep);background:#eef4ec;border-radius:999px;padding:5px 9px;font-size:12px;font-style:normal;font-weight:800}.lesson-note-body{gap:6px;display:grid}.lesson-note-body p{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;margin:0;padding:9px 10px;font-size:14px;line-height:1.45}.lesson-note-body p span{color:var(--muted);margin-bottom:3px;font-size:12px;font-weight:800;display:block}.lesson-note-card small{color:var(--muted);font-size:13px;font-weight:700}.panel-title{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.panel-title h2{margin:0}.panel-title button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px 0 6px 12px;font-size:14px;font-weight:600}.note-row{gap:5px;display:grid}.note-row strong{font-size:16px;line-height:1.3}.note-row p,.empty-note{color:var(--ink);margin:0;font-size:16px;line-height:1.45}.empty-note{color:var(--muted);padding:18px 2px}.bottom-nav{bottom:24px;left:var(--app-side);right:var(--app-side);z-index:2;background:#fffffff0;border:1px solid #d5dbd2db;border-radius:24px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:0;padding:7px;display:grid;position:absolute;box-shadow:0 10px 32px #202a2414}.bottom-nav button{color:#747a75;cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:52px;font-size:15px;font-weight:600;display:flex}.bottom-nav button.active{color:var(--green)}@media (max-width:520px){:root{--app-side:18px;--app-top:max(20px, calc(env(safe-area-inset-top) + 18px));--app-bottom:max(130px, calc(env(safe-area-inset-bottom) + 118px))}@supports (-webkit-touch-callout:none){:root{--app-top:max(88px, calc(env(safe-area-inset-top) + 52px))}}body{background:var(--paper)}.phone-stage{align-items:stretch;min-height:100dvh;padding:0}.progress-app{box-shadow:none;max-width:none;min-height:100dvh;padding:var(--app-top) var(--app-side) var(--app-bottom);border:0;border-radius:0;overflow:visible}.app-header{margin-bottom:28px}.brand-title h1{font-size:clamp(38px,11vw,50px)}.today-mark{max-width:min(310px,100vw - 92px);font-size:12px}.next-lesson{gap:16px}.lesson-heading{gap:9px}.lesson-heading h2{font-size:clamp(28px,8.2vw,38px);line-height:1.18}.lesson-heading time{font-size:clamp(25px,7vw,34px)}.content-block strong{font-size:clamp(27px,7.4vw,34px)}.modal-backdrop{padding:max(14px, calc(env(safe-area-inset-top) + 10px)) 14px max(12px, calc(env(safe-area-inset-bottom) + 12px));align-items:flex-end}.modal-panel{max-height:min(76dvh, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px));max-width:430px;margin-top:0}.time-adjust-sheet,.quick-task-sheet,.cell-editor,.note-sheet{max-height:inherit}.cell-editor{border-radius:20px;padding:12px}.entry-editor-grid,.recurrence-custom{grid-template-columns:minmax(0,1fr)}.bottom-nav{bottom:max(10px, calc(env(safe-area-inset-bottom) + 8px));left:var(--app-side);right:var(--app-side);margin-top:0;position:fixed}}@media (max-width:380px){.lesson-row{grid-template-columns:54px minmax(62px,.76fr) minmax(72px,1fr) auto 14px;gap:8px}.lesson-row span,.lesson-row time{font-size:16px}.lesson-row em{font-size:14px}}
