:root{--ink:#263832;--muted:#78867f;--line:#e2e9e5;--paper:#f5f8f6;--white:#fff;--purple:#548d7c;--lavender:#eaf3ef;--green:#dceee5;--orange:#dda96f;--shadow:0 14px 38px rgba(35,33,45,.055)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;min-width:248px;background:#fff;border-right:1px solid #e9efeb;padding:28px 17px 18px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--ink);text-decoration:none;font-family:Manrope,sans-serif;font-weight:800;font-size:23px;letter-spacing:-1px}.brand-mark{background:#e1f0e9;color:#477e70;width:31px;height:31px;border-radius:11px;display:grid;place-items:center;font-size:20px;transform:rotate(-5deg)}.brand-dot{color:#78ad9c}.workspace-label,.section-kicker{font-size:9px;font-weight:700;letter-spacing:1.35px;color:#99a49e}.workspace-label{margin:51px 12px 13px}.main-nav{display:grid;gap:5px}.nav-item{border:0;background:none;color:#727e78;height:43px;display:flex;align-items:center;text-align:left;padding:0 12px;gap:13px;font:500 13px "DM Sans",sans-serif;border-radius:11px;cursor:pointer}.nav-item:hover{background:#f2f6f3}.nav-item.active{background:#e9f2ee;color:#356e60;font-weight:700}.nav-icon{width:19px;text-align:center;font-size:18px;color:#7e9b90}.nav-count{margin-left:auto;border-radius:20px;min-width:22px;padding:3px 6px;background:#fff;font-size:10px;text-align:center;color:#769286}.sidebar-bottom{margin-top:auto}.sidebar-note{padding:17px 15px 14px;background:#f8f5ed;border-radius:14px;margin:0 3px 20px;position:relative}.note-icon{color:#c69455;display:block;margin-bottom:10px;font-size:17px}.sidebar-note strong{font-size:12px}.sidebar-note p{font-size:11px;line-height:1.6;color:#8d887f;margin:7px 0 0}.profile{border-top:1px solid #e9efeb;padding:17px 6px 2px;display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#efe9dc;color:#75644c;display:grid;place-items:center;font-weight:700}.profile strong,.profile small{display:block}.profile strong{font-size:11px}.profile small{font-size:10px;color:#909b94;margin-top:3px}.more{margin-left:auto;border:0;background:none;font-size:20px;color:#999;cursor:pointer}.main-content{flex:1;min-width:0}.topbar{height:76px;padding:0 5.3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ecebe6;background:rgba(255,255,255,.42)}.breadcrumb{font-size:12px;color:#89968f}.breadcrumb span{margin:0 9px;color:#ccc}.breadcrumb b{font-weight:600;color:#55544f}.top-actions{display:flex;align-items:center;gap:13px}.date-pill{font-size:11px;color:#77837d;background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:20px}.icon-button,.week-nav{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:50%;color:#77837d;cursor:pointer;font-size:16px}.add-button{border:0;background:#548d7c;color:#fff;border-radius:10px;padding:10px 15px;font:600 12px "DM Sans",sans-serif;cursor:pointer;box-shadow:0 5px 13px #548d7c29;transition:.18s}.add-button:hover{background:#3f7768;transform:translateY(-1px)}.add-button span{font-size:15px;margin-right:4px}.content-wrap{max-width:1220px;margin:0 auto;padding:44px 5.3% 28px}.greeting-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:10px;color:#89968f;letter-spacing:.6px;margin-bottom:8px;text-transform:capitalize}.greeting-row h1{font:700 30px Manrope,sans-serif;letter-spacing:-1.15px;margin:0}.wave{font-size:19px;color:#e4aa67;vertical-align:4px;margin-left:3px}.subtitle{font-size:13px;color:#96958e;margin:7px 0 0}.focus-chip{display:flex;align-items:center;gap:10px;background:#fff;padding:10px 14px;border:1px solid #e9efeb;border-radius:13px;box-shadow:0 6px 18px #22220a06}.focus-orb{width:8px;height:8px;background:#8bc7a2;border-radius:100%;box-shadow:0 0 0 4px #e4f3e8}.focus-chip b,.focus-chip small{display:block}.focus-chip b{font-size:10px}.focus-chip small{font-size:10px;color:#909b94;margin-top:3px}.sparkle{font-size:14px;color:#d3ad66;margin-left:5px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat-card{border-radius:15px;padding:18px 19px 15px;min-height:129px;position:relative;overflow:hidden}.stat-cream{background:#f2eee4}.stat-lilac{background:#e9f2ee}.stat-mint{background:#e4f0e9}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#77837d;font-size:11px}.stat-symbol{color:#8d887f;font-size:16px}.stat-lilac .stat-symbol{color:#6b9b89}.stat-mint .stat-symbol{color:#78a787}.stat-value{font:700 25px Manrope,sans-serif;letter-spacing:-.8px;margin-top:12px}.stat-value small{font:500 11px "DM Sans",sans-serif;color:#85837c;letter-spacing:0}.deadline-value{font-size:20px;margin-top:15px}.stat-foot{margin-top:11px;display:flex;align-items:center;justify-content:space-between;color:#818e87;font-size:10px}.tiny-bar{width:58px;height:4px;background:#e8ddcb;border-radius:5px;overflow:hidden}.tiny-bar i{display:block;width:0;height:100%;background:#c69a62;border-radius:5px;transition:.3s}.deadline-arrow,.done-icon{color:#9b8bc7;font-size:14px}.done-icon{color:#6ea780}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:17px}.panel{background:#fff;border:1px solid #e9efeb;border-radius:15px;box-shadow:var(--shadow);padding:21px 21px 17px;min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-kicker{font-size:9px;margin-bottom:7px}.section-heading h2,.modal h2{font:700 17px Manrope,sans-serif;letter-spacing:-.45px;margin:0}.heading-count{display:inline-grid;place-items:center;margin-left:5px;border-radius:10px;background:#edf5f1;color:#8576be;font:600 10px "DM Sans",sans-serif;vertical-align:3px;min-width:20px;height:19px}.text-button{border:0;background:none;color:#8880b8;font:600 10px "DM Sans",sans-serif;cursor:pointer}.text-button span{font-size:14px;margin-left:5px}.task-filters{display:flex;gap:6px;margin:19px 0 9px}.filter{border:0;border-radius:20px;background:transparent;padding:6px 11px;color:#89958e;font:500 10px "DM Sans",sans-serif;cursor:pointer}.filter.active{background:#e9f2ee;color:#3f7768}.task-list{min-height:125px}.task-row{display:flex;align-items:center;gap:11px;padding:12px 2px;border-bottom:1px solid #edf2ee;animation:fade .2s ease}.task-check{appearance:none;width:17px;height:17px;min-width:17px;border:1px solid #d6dfd9;border-radius:6px;cursor:pointer;position:relative;margin:0}.task-check:checked{background:#6aa28f;border-color:#6aa28f}.task-check:checked:after{content:"✓";position:absolute;color:#fff;left:3px;top:-1px;font-size:12px}.task-copy{min-width:0;flex:1}.task-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-row.completed .task-title{color:#aaa;text-decoration:line-through}.task-meta{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:9px;color:#a3a199}.tag{border-radius:8px;padding:3px 7px;background:#eaf3ef;color:#8577b9;font-size:9px}.tag.life{background:#f9f1e7;color:#b18451}.due-soon{color:#bd8158!important}.delete-task{border:0;background:none;color:#c0beb8;font-size:17px;padding:4px;cursor:pointer;opacity:0}.task-row:hover .delete-task{opacity:1}.empty-state{text-align:center;padding:36px 10px;color:#aaa79f;font-size:11px}.empty-state span{display:block;font-size:23px;color:#a9c8bb;margin-bottom:8px}.add-inline{width:100%;border:0;background:none;text-align:left;padding:12px 2px 2px;color:#9b98a4;font:500 11px "DM Sans",sans-serif;cursor:pointer}.add-inline:hover{color:#7160bf}.add-inline span{font-size:16px;vertical-align:-1px;margin-right:5px;color:#9b8ccf}.week-nav{width:28px;height:28px;font-size:13px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin:20px -4px 17px}.day-button{border:0;background:none;border-radius:10px;padding:7px 0 8px;cursor:pointer;color:#99968f;font:500 9px "DM Sans",sans-serif}.day-button span{display:block}.day-button .day-num{font:600 12px Manrope,sans-serif;color:#5f5e59;margin-top:7px;width:27px;height:27px;margin-left:auto;margin-right:auto;display:grid;place-items:center;border-radius:9px}.day-button.selected{color:#548d7c}.day-button.selected .day-num{background:#548d7c;color:white}.day-button.today .day-num{box-shadow:inset 0 0 0 1px #e4e0f4}.day-button.has-events:after{content:"";display:block;width:3px;height:3px;border-radius:50%;background:#b5a8e0;margin:3px auto -6px}.schedule-day-title{display:flex;justify-content:space-between;align-items:center;padding:12px 0 10px;border-top:1px solid #e9efeb}.schedule-day-title strong{font-size:11px}.schedule-day-title span{font-size:9px;color:#aaa79f}.schedule-list{min-height:104px}.event-row{display:grid;grid-template-columns:47px 3px 1fr;gap:10px;align-items:center;padding:8px 0}.event-time{font-size:10px;color:#97958f}.event-line{height:30px;border-radius:5px;background:#9a8bd2}.event-row:nth-child(3n+2) .event-line{background:#e5b273}.event-row:nth-child(3n) .event-line{background:#8ab99b}.event-name{font-size:11px;font-weight:600}.event-place{font-size:9px;color:#aaa79f;margin-top:4px}.schedule-empty{font-size:10px;color:#aaa79f;padding:26px 0;text-align:center}.schedule-add{border-top:1px solid #edf2ee;margin-top:4px;padding-top:12px}.footer-note{text-align:center;color:#aaa79f;font-size:10px;margin-top:23px}.footer-note span{color:#d0ad6b;margin-right:4px}.modal{border:0;border-radius:17px;padding:25px;width:min(440px,calc(100vw - 30px));box-shadow:0 25px 80px #27253833;color:var(--ink)}.modal::backdrop{background:#22212a55;backdrop-filter:blur(3px)}.modal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal h2{font-size:20px}.close-button{background:#f0f4f1;border:0;border-radius:50%;width:29px;height:29px;font-size:20px;color:#888;cursor:pointer;line-height:1}.field-label{display:block;color:#716f69;font-size:10px;font-weight:600;margin-bottom:13px}.text-input{display:block;width:100%;height:40px;margin-top:7px;border:1px solid #e9e7e0;border-radius:9px;padding:0 11px;background:#fff;font:400 12px "DM Sans",sans-serif;color:var(--ink);outline:none}.text-input:focus{border-color:#88b7a6;box-shadow:0 0 0 3px #eaf3ef}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.cancel-button{background:#f1f4f1;border:0;border-radius:9px;padding:10px 14px;color:#77837d;font:600 11px "DM Sans",sans-serif;cursor:pointer}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#2f2d34;color:white;padding:10px 15px;border-radius:10px;font-size:11px;transition:.22s;z-index:9}.toast.show{opacity:1;transform:translate(-50%,0)}body.dark{--ink:#eef4f0;--muted:#a6a3ad;--line:#35443f;--paper:#201f25;--white:#252f2b;background:#201f25;color:var(--ink)}body.dark .sidebar,body.dark .topbar,body.dark .panel,body.dark .focus-chip,body.dark .date-pill,body.dark .icon-button{background:#252f2b;border-color:#35443f;color:var(--ink)}body.dark .nav-item{color:#a9b7b0}body.dark .nav-item.active{background:#30413a;color:#b9ded0}body.dark .nav-item:hover{background:#34323a}body.dark .stat-cream{background:#403b31}body.dark .stat-lilac{background:#2d3b35}body.dark .stat-mint{background:#293a33}body.dark .task-row,body.dark .schedule-day-title,body.dark .schedule-add{border-color:#34423c}body.dark .task-title,body.dark .event-name,body.dark .section-heading h2{color:#e8f1ec}body.dark .day-button .day-num{color:#ddd8e7}body.dark .day-button.selected .day-num{background:#68a38f;color:white}body.dark .modal{background:#252f2b;color:#eef4f0}body.dark .text-input{background:#1f2824;color:white;border-color:#46544e}body.dark .sidebar-note{background:#37332e}body.dark .profile{border-color:#35443f}@keyframes fade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media(max-width:1000px){.sidebar{width:210px;min-width:210px}.content-wrap{padding-left:4%;padding-right:4%}.topbar{padding-left:4%;padding-right:4%}.dashboard-grid{grid-template-columns:1fr}.schedule-panel{min-height:350px}}@media(max-width:680px){.sidebar{width:61px;min-width:61px;padding:20px 8px}.brand{padding:0;justify-content:center}.sidebar .brand>span:last-child,.workspace-label,.nav-item:not(.active),.nav-item.active{font-size:0}.main-nav{margin-top:42px}.nav-item{justify-content:center;padding:0}.nav-icon{font-size:18px}.nav-count,.sidebar-bottom{display:none}.topbar{height:62px;padding:0 16px}.breadcrumb{font-size:0}.breadcrumb b{font-size:11px}.breadcrumb span{display:none}.top-actions{gap:7px}.date-pill{display:none}.add-button{padding:9px 10px;font-size:10px}.content-wrap{padding:30px 16px 20px}.greeting-row{align-items:flex-start}.greeting-row h1{font-size:25px}.focus-chip{padding:8px;gap:7px}.focus-chip small{display:none}.sparkle{display:none}.stats-grid{grid-template-columns:1fr;gap:9px}.stat-card{min-height:105px}.stat-value{margin-top:8px}.stat-foot{margin-top:7px}.dashboard-grid{gap:12px}.panel{padding:17px 15px}.task-delete{opacity:1}.footer-note{font-size:9px}.icon-button{width:32px;height:32px}}

/* Dedicated pages for the schedule and task list */
.page-view[hidden]{display:none!important}.dedicated-page{padding-top:5px;animation:fade .22s ease}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-heading h1{font:700 30px Manrope,sans-serif;letter-spacing:-1px;margin:0}.page-heading .eyebrow{font-size:9px;font-weight:700;letter-spacing:1.35px;margin:0 0 7px}.page-heading .subtitle{margin-top:7px}.page-total{display:flex;align-items:baseline;gap:8px;padding:12px 16px;border-radius:12px;background:#e9f2ee;color:#77837d}.page-total strong{font:700 22px Manrope,sans-serif;color:#3f7768}.page-total span{font-size:10px}.full-page-panel{padding:22px 24px}.full-task-list{min-height:260px}.full-task-list .task-row{padding:15px 4px}.full-task-list .task-title{font-size:13px}.full-task-list .task-meta{font-size:10px}.full-task-list .delete-task{opacity:.5}.full-task-list .task-row:hover .delete-task{opacity:1}.full-page-panel .task-filters{margin-top:20px;margin-bottom:12px}.week-controls{display:flex;gap:8px}.week-controls .week-nav{width:36px;height:36px;font-size:16px}.full-schedule-panel{padding:22px 26px 25px;min-height:420px}.full-week-strip{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:10px;margin:0 0 25px;padding-bottom:20px;border-bottom:1px solid #e9efeb}.full-week-strip .day-button{position:relative;padding:14px 4px 13px;border:1px solid #e9efeb;border-radius:13px;background:#fbfcfb;font-size:11px;transition:.18s}.full-week-strip .day-button:hover{border-color:#cce2d8;background:#f1f7f3}.full-week-strip .day-button .day-num{font-size:16px;width:35px;height:35px;margin-top:9px}.full-week-strip .day-button.selected{background:#e4f0ea;border-color:#d5e8df;color:#548d7c}.full-week-strip .day-button.selected .day-num{background:#548d7c;color:#fff}.full-week-strip .day-button.today:not(.selected) .day-num{box-shadow:inset 0 0 0 1px #a8cdbd}.full-week-strip .day-button.has-events:after{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);margin:0;width:5px;height:5px}.full-day-heading{display:flex;justify-content:space-between;align-items:center;padding:1px 0 18px}.full-day-heading h2{font:700 21px Manrope,sans-serif;letter-spacing:-.4px;margin:0}.full-day-heading .section-kicker{margin-bottom:6px}.full-day-heading .add-button{padding:10px 13px}.full-schedule-list{min-height:175px;border-top:1px solid #e9efeb}.full-schedule-list .event-row{grid-template-columns:68px 4px 1fr;gap:15px;padding:14px 10px;border-bottom:1px solid #f5f4f1}.full-schedule-list .event-time{font-size:12px;font-weight:600;color:#77837d}.full-schedule-list .event-line{height:43px}.full-schedule-list .event-name{font-size:13px}.full-schedule-list .event-place{font-size:10px}.full-schedule-list .schedule-empty{padding:65px 0;font-size:12px}.repeat-option{display:flex;align-items:center;gap:9px;color:#77746d;font-size:11px;margin:1px 0 4px;cursor:pointer}.repeat-option input{accent-color:#548d7c;width:15px;height:15px}.text-button span{font-size:13px}
body.dark .page-total{background:#2d3b35;color:#b7b0c9}body.dark .page-total strong{color:#b9ded0}body.dark .full-week-strip{border-color:#34423c}body.dark .full-week-strip .day-button{background:#212a26;border-color:#35433e}body.dark .full-week-strip .day-button:hover,body.dark .full-week-strip .day-button.selected{background:#30413a;border-color:#456457}body.dark .full-schedule-list,body.dark .full-schedule-list .event-row{border-color:#34423c}
@media(max-width:680px){.page-heading{align-items:flex-start;gap:10px}.page-heading h1{font-size:25px}.page-total{padding:8px 10px;gap:5px}.page-total strong{font-size:18px}.page-total span{font-size:9px;max-width:60px}.full-page-panel,.full-schedule-panel{padding:17px 14px}.full-week-strip{gap:5px;margin-right:-4px;margin-left:-4px;padding-bottom:15px}.full-week-strip .day-button{font-size:9px;padding:11px 1px;border-radius:10px}.full-week-strip .day-button .day-num{width:28px;height:28px;font-size:13px}.full-day-heading h2{font-size:18px}.full-day-heading .add-button{font-size:10px;padding:9px 10px}.full-schedule-list .event-row{grid-template-columns:48px 3px 1fr;gap:10px;padding:12px 3px}.full-schedule-list .event-time{font-size:10px}.full-schedule-list .event-name{font-size:11px}.full-schedule-list .event-place{font-size:9px}.week-controls .week-nav{width:31px;height:31px}}

/* Exam preparation tracker on the home page */
.exam-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:25px}.exam-summary-card{min-height:128px;border-radius:15px;padding:18px 20px;display:flex;flex-direction:column;position:relative;overflow:hidden}.exam-summary-card>span{font-size:11px;color:#77837d}.exam-summary-card>strong{font:700 25px Manrope,sans-serif;letter-spacing:-.8px;margin-top:11px}.exam-summary-card>small{font-size:10px;color:#818e87;margin-top:5px}.summary-peach{background:#f2eee4}.summary-lilac{background:#e9f2ee}.summary-mint{background:#e4f0e9}.exam-summary-card .nearest-exam{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-progress{height:4px;border-radius:5px;background:#d9e9e0;position:absolute;bottom:17px;left:20px;right:20px;overflow:hidden}.summary-progress i{display:block;height:100%;background:#6aa28f;border-radius:5px;transition:width .25s}.summary-lilac>small{margin-bottom:12px}.exam-board{background:#fff;border:1px solid #e9efeb;border-radius:15px;box-shadow:var(--shadow);padding:22px 22px 24px}.exam-board-heading{margin-bottom:20px}.exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.exam-card{background:#fbfcfb;border:1px solid #e9efeb;border-radius:13px;padding:17px 17px 13px;min-width:0}.exam-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.exam-date-label{font-size:10px;color:#9a8dca;font-weight:600}.exam-card h3{font:700 16px Manrope,sans-serif;letter-spacing:-.3px;margin:5px 0 0}.exam-delete{border:0;background:#edf2ee;color:#aaa;border-radius:50%;width:25px;height:25px;font-size:17px;cursor:pointer;line-height:1}.exam-delete:hover{background:#f8e7e6;color:#bb7773}.exam-countdown{font-size:10px;color:#a27d4e;margin-top:7px}.exam-countdown.past{color:#bd7774}.exam-progress-line{display:flex;align-items:center;justify-content:space-between;margin-top:17px;color:#818e87;font-size:10px}.exam-progress-line strong{color:#7162b3;font-size:10px}.exam-progress-track{height:5px;background:#efedf5;border-radius:5px;margin-top:7px;overflow:hidden}.exam-progress-track i{height:100%;display:block;border-radius:5px;background:#6aa28f;transition:width .25s}.exam-topic-heading{display:flex;justify-content:space-between;align-items:center;margin-top:17px;padding-bottom:7px;border-bottom:1px solid #e9efeb;font-size:10px;font-weight:700;color:#77837d}.exam-topic-heading span+span{font-size:9px;color:#aaa79f;font-weight:500}.exam-topics{max-height:187px;overflow:auto}.topic-row{display:flex;align-items:flex-start;gap:9px;padding:9px 2px;border-bottom:1px solid #f0f4f1;cursor:pointer;font-size:11px;line-height:1.45;color:#565550}.topic-row input{appearance:none;width:15px;height:15px;min-width:15px;border:1px solid #d9d6e3;border-radius:5px;margin:0;cursor:pointer;position:relative}.topic-row input:checked{background:#6aa28f;border-color:#6aa28f}.topic-row input:checked:after{content:'✓';color:white;font-size:10px;position:absolute;left:3px;top:0}.topic-row.topic-done span{color:#a5a39d;text-decoration:line-through}.no-topics{padding:17px 2px;color:#aaa79f;font-size:10px}.topic-add-form{display:flex;align-items:center;gap:7px;margin-top:10px}.topic-add-form input{flex:1;min-width:0;border:1px solid #e9efeb;background:#fff;border-radius:8px;height:31px;padding:0 9px;font:400 10px "DM Sans",sans-serif;outline:none}.topic-add-form input:focus{border-color:#9dc5b5}.topic-add-form button{width:31px;height:31px;border:0;border-radius:8px;background:#e9f2ee;color:#477e70;font-size:17px;cursor:pointer}.exam-empty{grid-column:1/-1;text-align:center;padding:44px 20px;background:#fbfcfb;border:1px dashed #e7e4ef;border-radius:13px}.exam-empty>span{font-size:23px;color:#a9c8bb}.exam-empty h3{font:700 15px Manrope,sans-serif;margin:9px 0 5px}.exam-empty p{max-width:360px;margin:0 auto 15px;color:#99968f;font-size:11px;line-height:1.6}.exam-empty .add-button{font-size:11px}.topic-input{height:105px;resize:vertical;padding-top:10px;line-height:1.6}body.dark .exam-summary-card{color:#e8f1ec}body.dark .summary-peach{background:#403b31}body.dark .summary-lilac{background:#2d3b35}body.dark .summary-mint{background:#293a33}body.dark .exam-summary-card>span,body.dark .exam-summary-card>small{color:#b6b0bc}body.dark .exam-board{background:#252f2b;border-color:#35443f}body.dark .exam-card,body.dark .exam-empty{background:#212a26;border-color:#35433e}body.dark .exam-card h3,body.dark .topic-row{color:#e8f1ec}body.dark .exam-topic-heading{border-color:#35433e;color:#c7c3cc}body.dark .topic-row{border-color:#35443f}body.dark .topic-row input{border-color:#5b5666}body.dark .topic-row.topic-done span{color:#9995a0}body.dark .topic-add-form input{background:#1f2824;border-color:#46544e;color:#eef4f0}body.dark .exam-delete{background:#35443f;color:#b9b5bf}body.dark .exam-progress-track{background:#3b4842}body.dark .summary-progress{background:#3b4842}
@media(max-width:850px){.exam-grid{grid-template-columns:1fr}.exam-summary{gap:10px}.exam-summary-card{padding:15px;min-height:120px}.summary-progress{left:15px;right:15px}}
@media(max-width:680px){.exam-summary{grid-template-columns:1fr;gap:9px}.exam-summary-card{min-height:95px;padding:13px 15px}.exam-summary-card>strong{margin-top:5px;font-size:21px}.exam-summary-card .nearest-exam{font-size:16px}.summary-progress{bottom:12px}.exam-board{padding:17px 14px}.exam-board-heading h2{font-size:15px}.exam-board-heading .add-button{font-size:10px;padding:9px 10px}.exam-card{padding:14px}.exam-card h3{font-size:14px}}

/* Profile menu and editable personal settings */
.profile{position:relative}.profile-copy{min-width:0;max-width:126px}.profile-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu{position:absolute;z-index:20;left:6px;bottom:57px;width:225px;padding:7px;background:#fff;border:1px solid #eeece7;border-radius:13px;box-shadow:0 15px 40px rgba(36,34,44,.15);animation:fade .16s ease}.profile-menu[hidden]{display:none}.profile-menu button{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;border-radius:8px;padding:10px;color:#5d5b57;text-align:left;font:500 11px "DM Sans",sans-serif;cursor:pointer}.profile-menu button:hover{background:#f0f6f3;color:#6858ad}.profile-menu button span{width:17px;text-align:center;color:#8f81c6;font-size:14px}.menu-divider{height:1px;background:#e9efeb;margin:5px 3px}.menu-hint{padding:7px 9px 5px;color:#aaa79f;font-size:9px;line-height:1.45}.brand{cursor:pointer}.brand:hover #brand-name{color:#477e70}.form-note{font-size:11px;line-height:1.65;color:#8e8b84;margin:5px 0 16px}.profile-menu button[data-menu-action=logout]{color:#a56d69}.profile-menu button[data-menu-action=logout] span{color:#bd8580}body.dark .profile-menu{background:#252f2b;border-color:#46544e}body.dark .profile-menu button{color:#dfdce5}body.dark .profile-menu button:hover{background:#30413a;color:#e2d9ff}body.dark .menu-divider{background:#46544e}body.dark .menu-hint,body.dark .form-note{color:#a8b5ae}
@media(max-width:680px){.profile-menu{left:44px;bottom:0}.profile{overflow:visible}}
@media(max-width:680px){.sidebar-bottom{display:block;width:100%;margin-top:auto}.sidebar-note{display:none}.profile{border:0;display:flex;flex-direction:column;gap:6px;padding:0}.profile-copy,.avatar{display:none}.more{margin:0;padding:2px;font-size:20px}.profile-menu{left:43px;bottom:0}}

/* Student resource library */
.resource-open-note{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid #e2ece6;border-radius:12px;color:#548d7c;background:#fff;font-size:16px}.resource-open-note span{font-size:10px;line-height:1.4;color:#828e88}.resource-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}.resource-search{display:flex;align-items:center;gap:9px;flex:1;max-width:360px;height:39px;padding:0 12px;background:#fff;border:1px solid #eae8e2;border-radius:10px;color:#89968f}.resource-search span{font-size:19px}.resource-search input{width:100%;border:0;outline:0;background:transparent;font:400 11px "DM Sans",sans-serif;color:var(--ink)}.resource-filters{display:flex;gap:5px;flex-wrap:wrap}.resource-filter{border:0;border-radius:18px;background:transparent;padding:7px 11px;color:#89958e;font:500 10px "DM Sans",sans-serif;cursor:pointer}.resource-filter.active{background:#e9f2ee;color:#3f7768}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.resource-card{display:flex;flex-direction:column;min-height:244px;padding:17px;background:#fff;border:1px solid #e9efeb;border-radius:14px;box-shadow:0 9px 26px rgba(35,33,45,.035);transition:transform .18s,box-shadow .18s}.resource-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.resource-card-top{display:flex;align-items:center;justify-content:space-between}.resource-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e9f2ee;color:#548d7c;font-size:16px}.resource-access{font-size:9px;color:#7da188;background:#eaf4ee;padding:5px 8px;border-radius:20px}.resource-kind{margin-top:14px;font-size:9px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#9b96a6}.resource-card h2{font:700 16px Manrope,sans-serif;letter-spacing:-.3px;margin:5px 0}.resource-subject{font-size:9px;color:#938aaf;line-height:1.45}.resource-card p{font-size:10px;color:#85827d;line-height:1.6;margin:10px 0 16px}.resource-card>a{margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e9efeb;padding-top:11px;text-decoration:none;color:#477e70;font-size:10px;font-weight:600}.resource-card>a span{font-size:14px}.resource-empty{grid-column:1/-1;padding:50px 20px;text-align:center;border:1px dashed #e4e1eb;border-radius:14px;color:#99969f;font-size:11px}.resource-footnote{font-size:9px;color:#aaa79f;text-align:right;margin:14px 3px 0}

/* Personal calendar, habits, and budget */
.personal-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(310px,.9fr);gap:16px;align-items:start}.personal-calendar-panel,.habits-panel,.budget-panel{padding:20px}.calendar-controls{display:flex;gap:6px}.calendar-controls .week-nav{width:29px;height:29px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{margin-top:20px;margin-bottom:6px}.calendar-weekdays span{text-align:center;color:#aaa7a0;font-size:9px;font-weight:600;padding:5px 0}.calendar-day{position:relative;display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:9px;background:transparent;color:#5b5a55;font:500 11px "DM Sans",sans-serif;cursor:pointer}.calendar-day:hover{background:#f0f6f3}.calendar-day.other-month{color:#cccac4}.calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1px #ddd6f2}.calendar-day.selected{background:#548d7c;color:#fff}.calendar-day.has-items:after{position:absolute;content:"";bottom:4px;width:4px;height:4px;border-radius:50%;background:#9e8bdc}.calendar-day.selected.has-items:after{background:#fff}.personal-agenda-head{display:flex;justify-content:space-between;align-items:flex-end;margin-top:16px;padding:15px 0 10px;border-top:1px solid #e9efeb}.personal-agenda-head h3{font:700 14px Manrope,sans-serif;margin:0}.personal-agenda-head .section-kicker{font-size:8px;margin-bottom:5px}.personal-agenda-head>span{font-size:9px;color:#aaa79f}.personal-agenda{min-height:56px}.agenda-row{display:flex;align-items:center;gap:10px;padding:9px 1px;border-bottom:1px solid #f0f4f1}.agenda-dot{width:7px;height:7px;min-width:7px;border-radius:50%;background:#8c7bd1}.agenda-dot.class{background:#dea75f}.agenda-dot.task{background:#83b696}.agenda-dot.exam{background:#d9837c}.agenda-copy{min-width:0;flex:1}.agenda-copy strong,.agenda-copy small{display:block}.agenda-copy strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-copy small{font-size:9px;color:#909b94;margin-top:3px}.agenda-delete,.habit-delete,.transaction-delete{border:0;background:transparent;color:#bbb8b2;cursor:pointer;font-size:15px}.agenda-delete:hover,.habit-delete:hover,.transaction-delete:hover{color:#b86d69}.personal-empty{padding:17px 2px;color:#aaa79f;font-size:10px;text-align:center}.personal-side-column{display:grid;gap:16px}.habits-panel .section-heading h2,.budget-panel .section-heading h2{font-size:16px}.habit-streak{padding:5px 8px;border-radius:15px;background:#eaf4ee;color:#6f9c7e;font-size:9px}.habit-list{margin-top:12px}.habit-row{display:flex;align-items:center;gap:9px;padding:10px 1px;border-bottom:1px solid #edf2ee}.habit-row input{appearance:none;width:16px;height:16px;min-width:16px;border:1px solid #d6dfd9;border-radius:5px;cursor:pointer;position:relative;margin:0}.habit-row input:checked{background:#78ad8e;border-color:#78ad8e}.habit-row input:checked:after{content:"✓";position:absolute;color:#fff;left:3px;top:0;font-size:10px}.habit-row>span{flex:1;font-size:10px;color:#5e5c57}.habit-row>span.habit-done{color:#aaa;text-decoration:line-through}.habit-delete{opacity:0}.habit-row:hover .habit-delete{opacity:1}.habit-add-form{display:flex;gap:7px;margin-top:11px}.habit-add-form input{flex:1;min-width:0;height:31px;border:1px solid #e9efeb;border-radius:8px;padding:0 9px;outline:none;font:400 10px "DM Sans",sans-serif;background:#fff;color:var(--ink)}.habit-add-form input:focus{border-color:#9dc5b5}.habit-add-form button{width:31px;border:0;border-radius:8px;background:#e9f2ee;color:#477e70;font-size:17px;cursor:pointer}.budget-panel .section-heading{align-items:flex-start}.budget-totals{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:6px;margin:16px 0 12px;padding:12px 10px;border-radius:10px;background:#f8f7f4}.budget-totals>div{display:flex;flex-direction:column;gap:5px}.budget-totals span{color:#99968f;font-size:8px}.budget-totals strong{font:700 12px Manrope,sans-serif;white-space:nowrap}.budget-balance strong{font-size:15px}.income-text{color:#6e9d7c}.expense-text{color:#ba8271}.transaction-list{border-top:1px solid #e9efeb}.transaction-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #f0f4f1}.transaction-symbol{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#f9eeeb;color:#bd8375;font-size:12px}.transaction-symbol.income{background:#eaf4ee;color:#75a281}.transaction-copy{min-width:0;flex:1}.transaction-copy strong,.transaction-copy small{display:block}.transaction-copy strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-copy small{font-size:8px;color:#909b94;margin-top:3px}.transaction-row>b{font-size:9px;white-space:nowrap}.transaction-delete{opacity:0;padding:0 3px}.transaction-row:hover .transaction-delete{opacity:1}.budget-empty{padding:13px 0}.personal-privacy-note{text-align:right;color:#aaa79f;font-size:9px;margin:13px 3px 0}
body.dark .resource-open-note,body.dark .resource-search,body.dark .resource-card{background:#252f2b;border-color:#35443f}body.dark .resource-search input{color:#eef4f0}body.dark .resource-card h2{color:#e8f1ec}body.dark .resource-card p,body.dark .resource-subject,body.dark .resource-open-note span{color:#a8b5ae}body.dark .resource-card>a{border-color:#34423c}body.dark .calendar-day{color:#dedbe4}body.dark .calendar-day.other-month{color:#6c6872}body.dark .calendar-day:hover{background:#30413a}body.dark .calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1px #716392}body.dark .personal-agenda-head,body.dark .agenda-row,body.dark .habit-row,body.dark .transaction-list,body.dark .transaction-row{border-color:#34423c}body.dark .agenda-copy strong,body.dark .habit-row>span,body.dark .transaction-copy strong{color:#e8f1ec}body.dark .habit-add-form input{background:#1f2824;border-color:#46544e;color:#eef4f0}body.dark .habit-add-form button{background:#30413a;color:#b9ded0}body.dark .budget-totals{background:#232228}body.dark .calendar-day.selected{background:#68a38f;color:white}
@media(max-width:1000px){.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.personal-grid{grid-template-columns:1fr}.personal-side-column{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.resource-tools{align-items:stretch;flex-direction:column}.resource-search{max-width:none}.resource-filters{overflow:auto;flex-wrap:nowrap}.resource-filter{white-space:nowrap}.resource-grid{grid-template-columns:1fr}.resource-card{min-height:210px}.resource-open-note{display:none}.personal-grid{grid-template-columns:1fr}.personal-calendar-panel,.habits-panel,.budget-panel{padding:16px 13px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-day{font-size:10px;border-radius:7px}.personal-side-column{grid-template-columns:1fr}.budget-totals{grid-template-columns:1fr 1fr 1fr}.budget-totals strong{font-size:10px}.budget-balance strong{font-size:13px}.personal-privacy-note{text-align:left}.agenda-copy strong{white-space:normal}}

/* App shell, account screen, and installable iPhone layout */
.habit-row{align-items:flex-start}.habit-row>input{margin-top:2px}.habit-copy{flex:1;min-width:0}.habit-title{display:block;color:#5e5c57;font-size:10px}.habit-progress-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;color:#929b95;font-size:8px}.habit-progress-line strong{color:#548d7c;font:700 9px Manrope,sans-serif}.habit-progress{display:block;width:100%;height:5px;margin:5px 0 4px;border:0;border-radius:8px;background:#edf2ee;overflow:hidden;appearance:none}.habit-progress::-webkit-progress-bar{border-radius:8px;background:#edf2ee}.habit-progress::-webkit-progress-value{border-radius:8px;background:var(--palette-accent,#548d7c)}.habit-progress::-moz-progress-bar{border-radius:8px;background:var(--palette-accent,#548d7c)}.habit-end-setting{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#929b95;font-size:8px}.habit-end-setting input{width:112px;height:23px;padding:0 5px;border:1px solid #e9efeb;border-radius:6px;background:#fff;color:var(--ink);font:400 8px "DM Sans",sans-serif}.habit-row-inactive .habit-title{color:#999}.habit-row-inactive>input{cursor:not-allowed;opacity:.55}.habit-add-form{display:grid;grid-template-columns:minmax(0,1fr) 112px 31px;align-items:end}.habit-add-form>input{width:100%}.habit-end-field{display:flex;flex-direction:column;gap:3px;color:#929b95;font-size:8px}.habit-end-field input{width:100%;height:31px;border:1px solid #e9efeb;border-radius:8px;padding:0 5px;background:#fff;color:var(--ink);font:400 9px "DM Sans",sans-serif}.habit-add-form button{height:31px}body.dark .habit-title{color:#e8f1ec}body.dark .habit-progress,body.dark .habit-progress::-webkit-progress-bar{background:#343b38}body.dark .habit-progress-line strong{color:#b9ded0}body.dark .habit-end-setting input,body.dark .habit-end-field input{background:#202126;border-color:#42434b;color:#eef0f4}body.dark .habit-end-field,body.dark .habit-end-setting,body.dark .habit-progress-line{color:#a8b5ae}
@media(max-width:680px){.habit-add-form{grid-template-columns:minmax(0,1fr) 34px}.habit-end-field{grid-column:1;grid-row:2}.habit-add-form button{grid-column:2;grid-row:1/3;height:34px}.habit-end-setting input{width:118px}}
.habit-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:13px 0 7px}.habit-week-day{display:flex;min-width:0;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border:1px solid transparent;border-radius:9px;background:#f7f8f6;color:#929b95;cursor:pointer;font:500 8px "DM Sans",sans-serif}.habit-week-day strong{font:700 11px Manrope,sans-serif;color:#555c57}.habit-week-day small{font-size:7px;color:#a0aaa3}.habit-week-day.selected{background:#e9f2ee;border-color:#a7c9bc;color:#477e70}.habit-week-day.selected strong{color:#477e70}.habit-week-day.today:not(.selected){box-shadow:inset 0 0 0 1px #cbded5}.habit-week-day.future{opacity:.62}body.dark .habit-week-day{background:#202823;color:#a8b5ae}body.dark .habit-week-day strong{color:#e8f1ec}body.dark .habit-week-day small{color:#a8b5ae}body.dark .habit-week-day.selected{background:#30413a;border-color:#68a38f}body.dark .habit-week-day.selected strong{color:#b9ded0}
.habit-end-field input{flex:0 0 31px}
.habit-end-setting input{appearance:auto;position:static;min-width:0;margin:0;cursor:pointer}
.habit-title.habit-done{color:#a8aaa6;text-decoration:line-through}
.music-panel{min-width:0;padding:20px}.music-panel .section-heading{align-items:center}.music-panel .section-heading h2{font-size:16px}.music-remove{font-size:9px}.music-form{display:grid;gap:9px}.music-service-label,.music-url-label{display:grid;gap:5px;color:var(--muted);font-size:9px}.music-form .text-input{height:34px;padding:0 9px;font-size:10px}.music-help{margin:0;color:var(--muted);font-size:8px;line-height:1.5}.music-form .add-button{min-height:34px;padding:7px 12px;font-size:9px}.music-player{margin-top:12px;overflow:hidden;border-radius:11px}.music-player iframe{display:block;width:100%;border:0;border-radius:11px;background:#f7f8f6}.music-empty{padding:16px 10px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:9px;line-height:1.5;text-align:center}body.dark .music-player iframe{background:#202126}body.dark .music-empty{border-color:#42434b;background:#202126;color:#a8b5ae}
.music-open-link{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:9px 12px;border-radius:10px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;text-decoration:none}.music-open-link:hover{filter:brightness(1.06)}
.music-settings-summary{padding:8px 0;color:var(--muted);font-size:9px;font-weight:700;cursor:pointer;list-style:disclosure-closed}.music-settings[open]>.music-settings-summary{margin-bottom:8px;list-style:disclosure-open}.music-settings-summary::marker{color:var(--accent)}
[hidden]{display:none!important}.sync-status{font-size:9px;color:#818e87;white-space:nowrap}.auth-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 20% 0%,#eaf3ef 0,transparent 38%),var(--paper)}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e9efeb;border-radius:21px;padding:32px;box-shadow:0 20px 60px rgba(35,33,45,.08)}.auth-brand{padding:0;margin-bottom:37px;width:max-content}.auth-kicker{font-size:9px;letter-spacing:1.3px;color:#829c90;font-weight:700;margin-bottom:8px}.auth-card h1{font:700 27px Manrope,sans-serif;letter-spacing:-.8px;margin:0}.auth-card>p{font-size:12px;line-height:1.6;color:#818e87;margin:8px 0 24px}.auth-form .field-label{margin-bottom:15px;font-size:11px}.auth-form .text-input{height:43px;font-size:12px}.auth-submit{width:100%;height:43px;margin-top:3px}.auth-link{display:block;margin:13px auto 0;border:0;background:transparent;color:#477e70;font:500 10px "DM Sans",sans-serif;cursor:pointer}.auth-switch{text-align:center;font-size:10px;color:#99968f;margin-top:19px}.auth-switch button{border:0;background:none;color:#3f7768;font:600 10px "DM Sans",sans-serif;cursor:pointer}.auth-message{min-height:16px;margin-top:12px;color:#8a6e4e;font-size:10px;line-height:1.5;text-align:center}.auth-form[hidden]{display:none}.auth-view .brand{font-size:21px}body.dark .auth-view{background:radial-gradient(ellipse at 20% 0%,#2d3b35 0,transparent 42%),var(--paper)}body.dark .auth-card{background:#252f2b;border-color:#35443f}body.dark .auth-card h1{color:#eef4f0}body.dark .auth-card>p,body.dark .auth-switch{color:#a8b5ae}body.dark .sync-status{color:#a8b5ae}
@media(max-width:680px){.sync-status{display:none}.auth-view{padding:15px}.auth-card{padding:25px 21px;border-radius:18px}.auth-brand{margin-bottom:29px}.auth-card h1{font-size:24px}}
.auth-retry{display:block;margin:10px auto 0}

/* Sage and teal resource library controls */
.resource-discipline-label{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#7b8982;font-size:10px}
.resource-discipline-label select{height:36px;max-width:190px;padding:0 28px 0 10px;border:1px solid #dfe8e2;border-radius:9px;background:#fff;color:#3e5d50;font:500 10px "DM Sans",sans-serif;outline:none}
.resource-discipline-label select:focus{border-color:#78ad9c;box-shadow:0 0 0 3px #e5f1eb}
body.dark .resource-discipline-label{color:#a9b7b0}body.dark .resource-discipline-label select{background:#252f2b;border-color:#46544e;color:#e8f1ec}
@media(max-width:1000px){.resource-tools{align-items:flex-start;flex-wrap:wrap}.resource-search{flex-basis:100%;max-width:none}.resource-discipline-label{margin-right:auto}}
@media(max-width:680px){.resource-discipline-label{width:100%;justify-content:space-between}.resource-discipline-label select{max-width:none;flex:1}.resource-filters{width:100%}}

/* User-selected color themes */
body[data-palette="sage"]{--palette-accent:#548d7c;--palette-hover:#3f7768;--palette-soft:#e9f2ee;--palette-page:#f5f8f6;--palette-text:#356e60;--palette-border:#cfe2d8}
body[data-palette="ocean"]{--palette-accent:#4e7fa3;--palette-hover:#376783;--palette-soft:#e8f1f7;--palette-page:#f4f8fb;--palette-text:#315f7c;--palette-border:#c9dce9}
body[data-palette="lavender"]{--palette-accent:#7866cf;--palette-hover:#6252b0;--palette-soft:#efedfa;--palette-page:#f7f7fa;--palette-text:#56499e;--palette-border:#dcd6f2}
body[data-palette="rose"]{--palette-accent:#b76574;--palette-hover:#99515f;--palette-soft:#f8ebee;--palette-page:#fbf6f7;--palette-text:#8e4655;--palette-border:#edcfd5}
body[data-palette="sand"]{--palette-accent:#bd8250;--palette-hover:#9c683d;--palette-soft:#f8efe5;--palette-page:#faf8f4;--palette-text:#8c5e39;--palette-border:#ead7c3}
body[data-palette]{--purple:var(--palette-accent);--lavender:var(--palette-soft);--paper:var(--palette-page);background:var(--palette-page)}
body[data-palette] .add-button,body[data-palette] .calendar-day.selected,body[data-palette] .task-check:checked,body[data-palette] .habit-row input:checked,body[data-palette] .full-week-strip .day-button.selected .day-num{background:var(--palette-accent);border-color:var(--palette-accent)}
body[data-palette] .add-button:hover{background:var(--palette-hover)}
body[data-palette] .brand-mark,body[data-palette] .resource-icon,body[data-palette] .habit-add-form button{background:var(--palette-soft);color:var(--palette-text)}
body[data-palette] .brand-dot,body[data-palette] .nav-icon,body[data-palette] .auth-link,body[data-palette] .auth-switch button,body[data-palette] .resource-card>a,body[data-palette] .text-button{color:var(--palette-accent)}
body[data-palette] .nav-item.active,body[data-palette] .filter.active,body[data-palette] .resource-filter.active,body[data-palette] .day-button.selected,body[data-palette] .page-total,body[data-palette] .tag{background:var(--palette-soft);color:var(--palette-text)}
body[data-palette] .stat-lilac,body[data-palette] .summary-lilac,body[data-palette] .heading-count{background:var(--palette-soft)}
body[data-palette] .calendar-day.has-items:after{background:var(--palette-accent)}
body[data-palette] .text-input:focus{border-color:var(--palette-accent);box-shadow:0 0 0 3px var(--palette-soft)}
body[data-palette] .full-week-strip .day-button.selected{border-color:var(--palette-border)}
body.dark[data-palette] .nav-item.active,body.dark[data-palette] .filter.active,body.dark[data-palette] .resource-filter.active,body.dark[data-palette] .day-button.selected{background:color-mix(in srgb,var(--palette-accent) 28%,#252f2b);color:var(--palette-border)}
body.dark[data-palette] .brand-mark,body.dark[data-palette] .resource-icon,body.dark[data-palette] .habit-add-form button{background:color-mix(in srgb,var(--palette-accent) 24%,#252f2b);color:var(--palette-border)}
.palette-fieldset{border:0;padding:0;margin:4px 0 18px;min-width:0}.palette-fieldset legend{padding:0;margin-bottom:10px;color:#716f69;font-size:10px;font-weight:600}.palette-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.palette-option{min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:8px 3px;border:1px solid #e9efeb;border-radius:10px;color:#727e78;font-size:9px;text-align:center;cursor:pointer;transition:.16s}.palette-option:has(input:checked){border-color:var(--purple);background:var(--lavender);color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--purple) 16%,transparent)}.palette-option input{position:absolute;opacity:0;pointer-events:none}.palette-option:focus-within{outline:2px solid var(--purple);outline-offset:2px}.palette-swatch{width:23px;height:23px;border-radius:50%;box-shadow:inset 0 0 0 4px rgba(255,255,255,.65)}.sage-swatch{background:#548d7c}.ocean-swatch{background:#4e7fa3}.lavender-swatch{background:#7866cf}.rose-swatch{background:#b76574}.sand-swatch{background:#bd8250}
@media(max-width:420px){.palette-options{gap:4px}.palette-option{font-size:8px}}

/* Handwriting board */
.board-save-note{padding:9px 12px;border-radius:10px;background:var(--lavender);color:var(--purple);font-size:10px;font-weight:600}.board-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 13px;margin-bottom:12px;background:#fff;border:1px solid #e9efeb;border-radius:13px;box-shadow:0 5px 18px rgba(35,33,45,.035)}.board-tool-group,.board-colors,.board-actions{display:flex;align-items:center;gap:5px}.board-tool{display:flex;align-items:center;gap:6px;height:33px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#727e78;font:500 10px "DM Sans",sans-serif;cursor:pointer}.board-tool.active{background:var(--lavender);border-color:color-mix(in srgb,var(--purple) 22%,transparent);color:var(--purple)}.board-colors{padding:0 8px;border-left:1px solid #e9efeb}.board-color{width:23px;height:23px;border:2px solid #fff;border-radius:50%;background:var(--board-color);box-shadow:0 0 0 1px #d8dfda;cursor:pointer}.board-color.active{box-shadow:0 0 0 2px var(--purple)}.board-width-label{display:flex;align-items:center;gap:8px;color:#78867f;font-size:9px;white-space:nowrap}.board-width-label input{width:76px;accent-color:var(--purple)}.board-actions{margin-left:auto}.board-action{border:0;background:transparent;border-radius:8px;padding:8px 9px;color:#6e7b74;font:500 9px "DM Sans",sans-serif;cursor:pointer;white-space:nowrap}.board-action:hover:not(:disabled){background:var(--lavender);color:var(--purple)}.board-action:disabled{opacity:.4;cursor:default}.board-clear{color:#a76e68}.board-canvas-wrap{overflow:hidden;border:1px solid #e7e9e4;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(35,33,45,.045)}#drawing-canvas{display:block;width:100%;height:min(67vh,690px);min-height:390px;touch-action:none;cursor:crosshair;background:#fff}body.dark .board-toolbar{background:#252f2b;border-color:#35443f}body.dark .board-tool{color:#a9b7b0}body.dark .board-tool.active{background:#30413a;color:#b9ded0}body.dark .board-colors{border-color:#46544e}body.dark .board-width-label{color:#a9b7b0}body.dark .board-action{color:#a9b7b0}body.dark .board-canvas-wrap{border-color:#46544e}.board-hint{margin:11px 2px;color:#89968f;font-size:10px;line-height:1.6}.board-save-note{white-space:nowrap}
@media(max-width:850px){.board-toolbar{gap:8px}.board-actions{margin-left:0}.board-width-label{margin-left:auto}}
@media(max-width:680px){.board-toolbar{align-items:flex-start;padding:10px;gap:8px}.board-tool-group{width:100%;justify-content:space-between}.board-colors{border-left:0;padding-left:1px}.board-actions{margin-left:auto}.board-action{padding:8px 6px;font-size:8px}#drawing-canvas{height:65vh;min-height:360px}.board-save-note{font-size:9px;padding:8px}}

.auth-language-label{display:block;margin:10px 0 16px;color:#78867f;font-size:9px;font-weight:600}.auth-language-label .text-input{height:36px;margin-top:6px;font-size:11px}

/* Deadline radar and three-day academic reset */
.deadline-radar{margin:0 0 17px;padding:21px 23px 18px}.radar-intro{margin:7px 0 0;color:#8b9891;font-size:11px;line-height:1.5}.recovery-toggle{white-space:nowrap;font-size:10px;padding:10px 13px}.radar-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:18px 0 15px}.radar-stat{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;border-radius:10px;background:#f5f6f3;color:#777f78;font-size:10px}.radar-stat strong{font:700 16px Manrope,sans-serif;color:#38463f}.radar-stat.overdue{background:#fbefec;color:#a46d63}.radar-stat.overdue strong{color:#a45f54}.radar-stat.urgent{background:#faf3e7;color:#a17a47}.radar-stat.urgent strong{color:#a17a47}.radar-stat.week{background:#eaf3ef;color:#578472}.radar-stat.week strong{color:#477e70}.radar-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.radar-group{min-width:0;padding-top:12px;border-top:1px solid #edf1ed}.radar-group h3{display:flex;align-items:center;gap:7px;margin:0 0 6px;font:600 11px Manrope,sans-serif;color:#59675f}.radar-group h3 span{display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:7px;background:#f1f3f0;color:#88928b;font:600 9px "DM Sans",sans-serif}.radar-task{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 1px;border-bottom:1px solid #f0f3f0}.radar-task .task-check{width:15px;height:15px;min-width:15px;border-radius:5px}.radar-task-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#525f57;font-size:10px}.radar-task-meta{font-size:9px;color:#999d96;white-space:nowrap}.radar-empty,.recovery-empty{padding:9px 1px;margin:0;color:#aaa79f;font-size:10px}.recovery-plan{margin-top:17px;padding:16px 17px 13px;border:1px solid #e7ede8;border-radius:13px;background:#fafbf9}.recovery-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.recovery-heading h3{margin:0;font:700 15px Manrope,sans-serif;color:#39483f}.recovery-heading p{margin:6px 0 0;color:#89958e;font-size:10px;line-height:1.5}.recovery-heading .text-button{white-space:nowrap}.recovery-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:13px}.recovery-day{min-width:0;padding:11px 10px 6px;border-radius:10px;background:#fff;border:1px solid #edf1ed}.recovery-day h4{margin:0 0 4px;color:#527967;font:700 10px Manrope,sans-serif}.recovery-day .radar-task{align-items:flex-start}.recovery-day .radar-task-title{white-space:normal;line-height:1.45}.recovery-day .radar-task-meta{font-size:8px}.tag.priority-high{background:#f9e9e5;color:#a65f54}.tag.priority-low{background:#f1f2ef;color:#858e87}.tag.priority-normal{background:#f2f3f0;color:#818a83}
body.dark .deadline-radar{background:#252f2b;border-color:#35443f}body.dark .radar-intro,body.dark .recovery-heading p{color:#a8b5ae}body.dark .radar-stat{background:#202a25;color:#b4c0b9}body.dark .radar-stat strong{color:#edf4ef}body.dark .radar-stat.overdue{background:#3a2b2a;color:#e0aaa0}body.dark .radar-stat.overdue strong{color:#f0c3ba}body.dark .radar-stat.urgent{background:#383227;color:#dec08f}body.dark .radar-stat.urgent strong{color:#f0d6a7}body.dark .radar-stat.week{background:#2d3934;color:#b9ded0}body.dark .radar-stat.week strong{color:#c9e6d8}body.dark .radar-group{border-color:#34423c}body.dark .radar-group h3,body.dark .radar-task-title,body.dark .recovery-heading h3{color:#e2ebe5}body.dark .radar-group h3 span{background:#303b36;color:#bec8c2}body.dark .radar-task,body.dark .recovery-day{border-color:#34423c}body.dark .recovery-plan{background:#202a25;border-color:#35443f}body.dark .recovery-day{background:#252f2b}body.dark .recovery-day h4{color:#b9ded0}body.dark .tag.priority-high{background:#49302e;color:#efb7ad}body.dark .tag.priority-low,body.dark .tag.priority-normal{background:#303b36;color:#c2ccc6}
body[data-palette] .radar-stat.week{background:var(--palette-soft);color:var(--palette-text)}body[data-palette] .radar-stat.week strong,body[data-palette] .recovery-day h4{color:var(--palette-accent)}body[data-palette] .recovery-toggle{background:var(--palette-accent)}body[data-palette] .recovery-toggle:hover{background:var(--palette-hover)}
@media(max-width:800px){.radar-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-days{grid-template-columns:1fr}.recovery-day{padding:9px 10px 5px}}
@media(max-width:580px){.deadline-radar{padding:16px 13px}.deadline-radar>.section-heading{align-items:flex-start;flex-direction:column;gap:13px}.radar-groups{grid-template-columns:1fr}.radar-task-meta{font-size:8px}.recovery-plan{padding:13px 11px}.recovery-heading{flex-direction:column;gap:6px}.recovery-heading .text-button{padding:4px 0}}


/* Keep every user-selected palette readable when dark appearance is enabled. */
body.dark[data-palette]{--ink:#eef4f0;--muted:#a8b5ae;--line:#35443f;--paper:#201f25;--white:#252f2b;--lavender:#30413a;--palette-page:#201f25;--palette-soft:#2d3934;background:#201f25;color:#eef4f0}
body.dark[data-palette] .stat-lilac,body.dark[data-palette] .summary-lilac,body.dark[data-palette] .heading-count,body.dark[data-palette] .page-total,body.dark[data-palette] .tag,body.dark[data-palette] .filter.active,body.dark[data-palette] .resource-filter.active,body.dark[data-palette] .nav-item.active,body.dark[data-palette] .day-button.selected{background:color-mix(in srgb,var(--palette-accent) 24%,#252f2b);color:#e8f1ec}
body.dark[data-palette] .stat-lilac .stat-top,body.dark[data-palette] .stat-lilac .stat-foot,body.dark[data-palette] .summary-lilac>span,body.dark[data-palette] .summary-lilac>small,body.dark[data-palette] .exam-summary-card>span,body.dark[data-palette] .exam-summary-card>small,body.dark[data-palette] .day-button.selected .day-num{color:#d0dcd5}
body.dark[data-palette] .stat-lilac .stat-value,body.dark[data-palette] .summary-lilac>strong,body.dark[data-palette] .heading-count,body.dark[data-palette] .page-total,body.dark[data-palette] .tag{color:#eef4f0}
body.dark[data-palette] .palette-option{color:#c5d0ca;border-color:#46544e}
body.dark[data-palette] .palette-option:has(input:checked){background:#30413a;color:#eef4f0}

/* Semester hub */
.semester-range{display:flex;gap:9px}.semester-range label,.semester-inline-form>label{display:grid;gap:5px;color:var(--muted);font-size:10px}.semester-range .text-input{width:145px}.semester-panel{margin-bottom:16px;padding:20px}.semester-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.subject-card,.project-card{min-width:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.subject-card-head,.project-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.subject-card h3{margin:0;font:700 14px Manrope,sans-serif}.subject-card-head p,.project-card-head small{display:block;margin:5px 0 0;color:var(--muted);font-size:10px}.subject-open-tasks{padding:5px 8px;border-radius:8px;background:#f9ece8;color:#a05e55;font-size:9px;white-space:nowrap}.subject-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.subject-metrics>div{padding:9px 10px;border-radius:9px;background:var(--paper)}.subject-metrics strong,.subject-metrics small{display:block}.subject-metrics strong{font:700 16px Manrope,sans-serif}.subject-metrics small{margin-top:3px;color:var(--muted);font-size:9px}.grade-needed{margin:0 0 10px;color:var(--palette-text,var(--muted));font-size:10px}.subject-details{border-top:1px solid var(--line);padding-top:10px}.subject-details summary{cursor:pointer;color:var(--palette-accent,var(--ink));font-weight:600;font-size:10px}.attendance-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0}.attendance-actions span{margin-right:auto;color:var(--muted);font-size:10px}.attendance-actions button{border:1px solid var(--line);border-radius:8px;background:var(--white);padding:7px 9px;color:var(--ink);font:500 10px "DM Sans",sans-serif;cursor:pointer}.grade-form{display:flex;align-items:center;gap:6px}.grade-form .text-input{min-width:0;height:34px;padding:7px;font-size:10px}.grade-form input[name=title]{flex:1}.grade-form input[type=number]{width:70px}.grade-form .add-button{padding:8px 10px}.grade-list{margin-top:9px}.grade-row{display:flex;align-items:center;gap:10px;padding:7px 1px;border-bottom:1px solid var(--line);font-size:10px}.grade-row span{flex:1}.grade-row small{color:var(--muted)}.semester-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.semester-inline-form{display:grid;gap:9px;margin-top:14px}.semester-inline-form .form-row{margin:0}.semester-inline-form .form-row label{display:grid;gap:5px;color:var(--muted);font-size:10px}.semester-inline-form .text-input{width:100%;min-width:0}.semester-inline-form button{justify-self:start}.semester-inline-form textarea{min-height:65px;resize:vertical}.academic-event-list,.project-list{display:grid;gap:8px;margin-top:13px}.academic-event{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.academic-event strong{font-size:10px}.academic-event small{color:var(--muted);font-size:9px;white-space:nowrap}.academic-event-kind{padding:4px 6px;border-radius:6px;background:var(--lavender);color:var(--palette-text,var(--ink));font-size:8px}.academic-event-kind.holiday{background:#f7efe4;color:#926d42}.academic-event-kind.semester{background:#e8f1ec;color:#507963}.project-card-head strong{font-size:11px}.project-milestone{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:10px}.project-milestone input{accent-color:var(--palette-accent,var(--purple))}.project-milestone .done{text-decoration:line-through;color:var(--muted)}.semester-empty{padding:12px 4px;color:var(--muted);font-size:10px;line-height:1.5}.reflection-panel{display:grid;gap:10px}.reflection-panel .section-heading{width:100%}.reflection-panel .form-note{margin:0}.reflection-panel textarea{min-height:90px;resize:vertical}.reflection-panel .add-button{justify-self:start}.subject-tag{background:#e9f2ee!important;color:#356e60!important}
body.dark .subject-card,body.dark .project-card{background:#252f2b;border-color:#35443f}body.dark .subject-card h3,body.dark .subject-metrics strong,body.dark .grade-row,body.dark .academic-event strong{color:#e8f1ec}body.dark .subject-card-head p,body.dark .project-card-head small,body.dark .subject-metrics small,body.dark .semester-empty,body.dark .academic-event small{color:#a8b5ae}body.dark .subject-metrics>div{background:#202a25}body.dark .subject-open-tasks{background:#49302e;color:#efb7ad}body.dark .subject-details,body.dark .grade-row,body.dark .academic-event,body.dark .project-milestone{border-color:#35443f}body.dark .subject-details summary{color:#d0dcd5}body.dark .attendance-actions button{background:#202a25;border-color:#46544e;color:#e8f1ec}body.dark .academic-event-kind{background:#303b36;color:#d0dcd5}body.dark .academic-event-kind.holiday{background:#383227;color:#dec08f}body.dark .academic-event-kind.semester{background:#2d3934;color:#b9ded0}body.dark .grade-needed{color:#c4d4cc}body.dark .semester-range label,body.dark .semester-inline-form>label,body.dark .semester-inline-form .form-row label{color:#a8b5ae}
body.dark[data-palette] .subject-tag{background:#303b36!important;color:#d0dcd5!important}
@media(max-width:820px){.semester-range{flex-direction:column}.semester-range .text-input{width:155px}.semester-grid{grid-template-columns:1fr}}
@media(max-width:600px){.semester-subject-grid{grid-template-columns:1fr}.semester-panel{padding:15px}.semester-range{display:none}.subject-metrics{gap:5px}.subject-metrics>div{padding:8px 6px}.subject-metrics small{font-size:8px}.grade-form{flex-wrap:wrap}.grade-form input[name=title]{flex-basis:100%}.academic-event{grid-template-columns:auto 1fr auto}.academic-event small{grid-column:2;grid-row:2}.academic-event button{grid-column:3;grid-row:1}}
.subject-materials{padding:10px 0;border-bottom:1px solid var(--line)}.subject-materials h4{margin:0 0 7px;font-size:10px}.subject-materials>a{display:block;padding:4px 0;color:var(--palette-accent,var(--purple));font-size:10px;text-decoration:none}.material-form{display:grid;grid-template-columns:1fr 1.25fr auto;gap:6px;margin-top:8px}.material-form .text-input{min-width:0;height:32px;padding:7px;font-size:9px}.material-form .add-button{padding:7px 9px;font-size:9px}.semester-label{display:grid;gap:7px;color:var(--muted);font-size:10px}.semester-label textarea{min-height:85px;resize:vertical}
body.dark .subject-materials{border-color:#35443f}body.dark .subject-materials h4{color:#d0dcd5}body.dark .subject-materials>a{color:#b9ded0}body.dark .semester-label{color:#a8b5ae}
@media(max-width:600px){.material-form{grid-template-columns:1fr}.material-form .text-input{width:100%}}
body.dark[data-palette] .radar-stat.week{background:color-mix(in srgb,var(--palette-accent) 24%,#252f2b);color:#d0dcd5}body.dark[data-palette] .radar-stat.week strong{color:#e8f1ec}body.dark[data-palette] .recovery-day h4{color:#d0dcd5}
.exam-linked-subject{display:block;margin-top:4px;color:var(--muted);font-size:9px}body.dark .exam-linked-subject{color:#b6c2bb}
@media(max-width:600px){.semester-range{display:grid;grid-template-columns:1fr 1fr;flex-direction:row;width:100%;margin-top:12px}.semester-range .text-input{width:100%}.page-heading:has(.semester-range){flex-wrap:wrap}}

/* Neutral graphite surfaces in every dark palette; palette color stays on interactive accents. */
body.dark[data-palette]{--paper:#1d1e23;--white:#292a30;--line:#3b3c43;--palette-page:#1d1e23;--palette-soft:#34353c;--lavender:#34353c;background:#1d1e23;color:#eef0f4}
body.dark[data-palette] :is(.sidebar,.topbar,.panel,.focus-chip,.date-pill,.icon-button,.modal,.exam-board,.exam-card,.exam-empty,.profile-menu,.resource-open-note,.resource-search,.resource-card,.board-toolbar,.subject-card,.project-card,.deadline-radar){background-color:#292a30!important;border-color:#3b3c43!important}
body.dark[data-palette] :is(.stat-cream,.stat-lilac,.stat-mint,.summary-peach,.summary-lilac,.summary-mint,.page-total,.full-week-strip .day-button,.radar-stat,.radar-group h3 span,.recovery-plan,.recovery-day,.subject-metrics>div,.academic-event-kind.semester,.tag.priority-low,.tag.priority-normal){background-color:#34353c!important}
body.dark[data-palette] :is(.stat-lilac,.stat-mint,.summary-lilac,.summary-mint,.page-total,.radar-stat,.academic-event-kind.semester,.tag.priority-low,.tag.priority-normal){color:#d7d9e0!important}
body.dark[data-palette] :is(.text-input,.topic-add-form input,.habit-add-form input,.resource-discipline-label select){background-color:#202126!important;border-color:#42434b!important;color:#eef0f4}
body.dark[data-palette] :is(.full-week-strip .day-button:hover,.full-week-strip .day-button.selected,.nav-item.active,.filter.active,.resource-filter.active,.day-button.selected){background:color-mix(in srgb,var(--palette-accent) 24%,#292a30)!important;border-color:color-mix(in srgb,var(--palette-accent) 58%,#3b3c43)!important;color:var(--palette-border)!important}
body.dark[data-palette] :is(.day-button.selected .day-num,.calendar-day.selected){background:var(--palette-accent)!important;color:#fff!important}
body.dark[data-palette] :is(.calendar-day:hover,.habit-add-form button,.board-tool.active){background:color-mix(in srgb,var(--palette-accent) 22%,#292a30)!important;color:var(--palette-border)!important}
body.dark[data-palette] .board-canvas-wrap{background:#292a30;border-color:#3b3c43}
body.dark[data-palette] .exam-delete{background:#3a3b42;color:#d2d3da}
body.dark[data-palette] .radar-stat.week{background:color-mix(in srgb,var(--palette-accent) 24%,#292a30)!important;color:#e1e3e9!important}
body.dark[data-palette] .radar-stat.week strong,body.dark[data-palette] .recovery-day h4{color:#eef0f4!important}
body.dark[data-palette] .subject-tag{background:#3a3b42!important;color:#e1e3e9!important}
body.dark[data-palette] .auth-view{background:radial-gradient(ellipse at 20% 0%,#34353c 0,transparent 42%),#1d1e23!important}

/* Keep the weekly calendar inside narrow phone viewports. */
@media(max-width:680px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .app-shell{width:100%;min-width:0;overflow-x:hidden}
  .main-content{width:calc(100% - 61px);max-width:calc(100% - 61px);min-width:0;overflow-x:hidden}
  .content-wrap{width:100%;max-width:100%;min-width:0;margin:0;padding:25px 12px 18px}
  .page-view,.full-schedule-panel{width:100%;min-width:0;max-width:100%}
  .full-week-strip{width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:0 0 18px;padding:0 0 13px}
  .full-week-strip .day-button{min-width:0;padding:9px 0;font-size:8px}
  .full-week-strip .day-button .day-num{width:24px;height:24px;margin-top:6px;font-size:11px}
  .full-day-heading{gap:8px;min-width:0}
  .full-day-heading h2{font-size:16px}
  .full-day-heading .add-button{white-space:nowrap;padding:8px;font-size:9px}
}

/* Personal workspace blocks and appearance settings */
.widget-fieldset{border:1px solid var(--line);border-radius:11px;padding:12px;margin:15px 0}.widget-fieldset legend{padding:0 5px;color:var(--muted);font-size:10px;font-weight:700}.widget-toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.widget-toggle{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;background:var(--paper);color:var(--ink);font-size:10px}.widget-toggle input,.color-choice input[type=checkbox]{accent-color:var(--user-accent,var(--purple))}.custom-blocks-heading{display:flex;align-items:center;justify-content:space-between;margin:12px 0 7px;font-size:11px}.custom-block-list{display:grid;gap:6px}.custom-block-row{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:10px}.custom-block-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-block-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:17px}.user-block-card{position:relative;min-width:0;padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:var(--shadow);overflow:hidden}.user-block-card h2{margin:0 28px 8px 0;font:700 14px Manrope,sans-serif;color:var(--ink)}.user-block-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.65;white-space:pre-wrap}.user-block-card a{color:var(--user-accent,var(--purple));font-size:11px;overflow-wrap:anywhere}.user-block-card img{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:9px}.user-block-remove{position:absolute;top:9px;right:9px;width:25px;height:25px;border:0;border-radius:50%;background:var(--paper);color:var(--muted);font-size:17px;cursor:pointer}.user-widget-hidden,[data-user-hidden]{display:none!important}.customize-modal{max-height:min(85vh,720px);overflow:auto}.appearance-custom-colors{display:grid;grid-template-columns:1fr 1fr;gap:12px}.color-choice>span{display:flex;align-items:center;gap:6px}.color-input{display:block;width:100%;height:36px;margin-top:7px;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:3px}.image-file-input{height:auto;min-height:38px;padding:7px;font-size:10px}.image-setting-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:-7px}.image-setting-actions .text-button{font-size:10px}.form-note{color:var(--muted);font-size:10px;line-height:1.55}.image-file-input+.form-note{display:block;margin-top:5px}.custom-appearance-on{background-color:var(--user-background,var(--paper))}.custom-appearance-on .add-button,.custom-appearance-on .nav-item.active,.custom-appearance-on .full-week-strip .day-button.selected .day-num,.custom-appearance-on .day-button.selected .day-num{background-color:var(--user-accent,var(--purple))}.custom-appearance-on .add-button{box-shadow:0 5px 13px color-mix(in srgb,var(--user-accent) 20%,transparent)}.custom-appearance-on .brand-mark{color:var(--user-accent);border:1px solid color-mix(in srgb,var(--user-accent) 25%,transparent)}.custom-appearance-on .nav-item.active{color:#fff}.custom-appearance-on :is(.filter.active,.resource-filter.active,.board-tool.active){color:var(--user-accent);border-color:color-mix(in srgb,var(--user-accent) 28%,transparent)}.dark .user-block-card{background:#292a30;border-color:#3b3c43}.dark .widget-toggle{background:#202126;color:#eef0f4}.dark .custom-block-row{border-color:#3b3c43;color:#eef0f4}.dark .user-block-remove{background:#34353c;color:#d7d9e0}
@media(max-width:600px){.widget-toggles,.user-block-grid{grid-template-columns:1fr}.appearance-custom-colors{gap:8px}.sidebar-bottom{display:block;position:relative}.sidebar-note{display:none}.profile{justify-content:center;border:0;padding:7px 0}.profile-copy,.profile .avatar{display:none}.profile .more{margin:0;padding:5px}.profile-menu{position:fixed;left:69px;bottom:12px;width:min(225px,calc(100vw - 80px))}}.user-block-grid:empty{display:none}

.custom-block-field textarea{height:105px;padding:10px;resize:vertical}
.modal:has(#appearance-form){max-height:85vh;overflow:auto}

/* Keep uploaded photos vivid and automatically choose legible header text. */
.topbar[data-header-tone="dark"] :is(.breadcrumb,.breadcrumb b,.sync-status){color:#fff!important;text-shadow:0 1px 4px rgba(0,0,0,.82)}
.topbar[data-header-tone="light"] :is(.breadcrumb,.breadcrumb b,.sync-status){color:#20242a!important;text-shadow:0 1px 3px rgba(255,255,255,.8)}
.dark .topbar[data-header-tone="dark"] :is(.breadcrumb,.breadcrumb b,.sync-status){color:#fff!important}
.dark .topbar[data-header-tone="light"] :is(.breadcrumb,.breadcrumb b,.sync-status){color:#17181d!important}
@media(max-width:680px){.sidebar-bottom{display:block}.sidebar-note{display:none}.profile{justify-content:center;padding:7px 0}.profile-copy,.profile .avatar{display:none}.profile .more{margin:0;padding:5px}.profile-menu{position:fixed;left:69px;bottom:12px;width:min(225px,calc(100vw - 80px))}}

/* Preserve contrast over vivid user backgrounds while keeping the photo visible. */
.custom-appearance-on :is(.greeting-row>div:first-child,.page-heading>div:first-child){width:fit-content;max-width:min(720px,82%);padding:15px 19px;border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);border-radius:16px;background:color-mix(in srgb,var(--white) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 28px rgba(20,22,24,.09)}
.custom-appearance-on .greeting-row>div:first-child{max-width:min(720px,78%)}
.custom-appearance-on :is(.eyebrow,.page-heading .eyebrow){color:#4b5852;font-weight:700;text-shadow:0 1px 0 rgba(255,255,255,.25)}
.custom-appearance-on :is(.subtitle,.page-heading .subtitle){color:#424b46;font-weight:500}
.dark.custom-appearance-on :is(.greeting-row>div:first-child,.page-heading>div:first-child){border-color:rgba(255,255,255,.12);box-shadow:0 8px 28px rgba(0,0,0,.25)}
.dark.custom-appearance-on :is(.eyebrow,.page-heading .eyebrow){color:#e5ece8;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.dark.custom-appearance-on :is(.subtitle,.page-heading .subtitle){color:#f0f3f1}
@media(max-width:680px){.custom-appearance-on :is(.greeting-row>div:first-child,.page-heading>div:first-child){max-width:100%;padding:12px 14px;border-radius:13px}}
.daily-quote{position:relative;flex:1;max-width:430px;min-width:190px;margin:0 20px;padding:18px 24px 18px 38px;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:16px;background:color-mix(in srgb,var(--white) 78%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 26px rgba(20,22,24,.07);text-align:center;color:var(--ink)}.daily-quote p{margin:0;font:600 14px/1.65 Manrope,sans-serif;letter-spacing:-.1px}.daily-quote-mark{position:absolute;top:3px;left:15px;color:var(--user-accent,var(--purple));opacity:.72;font:700 42px/1 Georgia,serif}.dark .daily-quote{border-color:color-mix(in srgb,var(--ink) 15%,transparent);box-shadow:0 8px 28px rgba(0,0,0,.2)}
@media(max-width:1000px){.daily-quote{margin:0 10px;padding:15px 17px 15px 31px}.daily-quote p{font-size:12px}}
@media(max-width:680px){.greeting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px}.greeting-row>div:first-child{grid-column:1;grid-row:1}.greeting-row .focus-chip{grid-column:2;grid-row:1}.daily-quote{grid-column:1/-1;grid-row:2;max-width:none;min-width:0;width:100%;margin:0;padding:16px 18px 16px 34px}.daily-quote p{font-size:12px}}
.budget-currency-control{display:flex;align-items:center;gap:8px;margin:14px 0 3px;color:var(--muted);font-size:11px;font-weight:600}.budget-currency-control .text-input{width:auto;min-width:114px;height:32px;margin:0;padding:0 9px;font-size:11px}.budget-currency-note{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin:0 0 12px}.dark .budget-currency-control .text-input{background:#1f2824;color:var(--ink);border-color:#46544e}
@media(max-width:680px){.app-shell{display:block;min-height:100vh}.sidebar{position:sticky;top:0;z-index:20;width:100%;min-width:0;min-height:0;height:auto;padding:9px 12px 7px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand user" "nav nav";background:var(--white);border-right:0;border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(20,22,24,.06)}.sidebar .brand{grid-area:brand;justify-content:flex-start;gap:8px;padding:0;font-size:18px}.sidebar .brand>span:last-child{font-size:18px;display:inline-flex}.workspace-label{display:none}.main-nav{grid-area:nav;margin:8px 0 0;display:flex;overflow-x:auto;overflow-y:hidden;gap:5px;padding:0 0 2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.nav-item,.nav-item.active,.nav-item:not(.active){flex:0 0 auto;min-width:max-content;height:36px;padding:0 10px;font-size:11px;gap:6px}.nav-icon{width:auto;font-size:15px}.nav-count{display:inline-grid}.sidebar-bottom{grid-area:user;display:block;position:static;width:auto;margin:0}.sidebar-note{display:none}.profile{justify-content:flex-end;flex-direction:row;gap:6px;border:0;padding:0;overflow:visible}.profile-copy,.profile .avatar{display:none}.profile .more{margin:0;padding:4px}.profile-menu{position:fixed;left:auto;right:12px;bottom:12px;width:min(245px,calc(100vw - 24px))}.main-content{min-width:0}.content-wrap{padding:24px 14px 20px}.budget-currency-control{margin-top:12px}.budget-totals{grid-template-columns:repeat(3,minmax(0,1fr))}}
.event-time{white-space:nowrap}.event-row,.full-schedule-list .event-row{grid-template-columns:78px 3px minmax(0,1fr)}

/* Mobile clarity: keep the page full width, make horizontal navigation discoverable, and enlarge touch targets. */
@media(max-width:680px){
  .main-content{width:100%;max-width:100%}
  .main-nav{position:relative;scrollbar-width:auto;scrollbar-color:var(--user-accent,var(--purple)) color-mix(in srgb,var(--line) 75%,transparent);touch-action:pan-x;scrollbar-gutter:stable}
  .main-nav::-webkit-scrollbar{height:5px}
  .main-nav::-webkit-scrollbar-track{background:color-mix(in srgb,var(--line) 75%,transparent);border-radius:8px}
  .main-nav::-webkit-scrollbar-thumb{background:var(--user-accent,var(--purple));border-radius:8px}
  .main-nav::after{content:'›';position:sticky;right:0;z-index:2;flex:0 0 26px;height:34px;margin-left:-27px;display:grid;place-items:center;background:linear-gradient(90deg,transparent,var(--white) 45%);color:var(--user-accent,var(--purple));font-size:25px;font-weight:700;pointer-events:none}
  .dark .main-nav::after{background:linear-gradient(90deg,transparent,#292a30 45%)}
  .board-tool{min-height:44px;padding:0 12px;font-size:12px;gap:8px}
  .board-tool-group{gap:6px}
  .board-color{width:30px;height:30px;flex:0 0 30px}
  .board-width-label{font-size:11px;gap:8px}
  .board-width-label input{width:104px;min-height:24px}
  .board-action{min-height:42px;padding:9px 10px;font-size:10px}
  .board-hint,.form-note{font-size:12px;line-height:1.6}
  .board-save-note{font-size:10px;padding:9px 10px}
  .reminder-limit-note{font-size:12px}
}
.reminder-limit-note{margin:7px 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--user-accent,var(--purple)) 25%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--user-accent,var(--purple)) 9%,var(--white));color:var(--ink);font-size:11px;line-height:1.55}
.reminder-limit-note[hidden]{display:none}
body.dark .reminder-limit-note{background:color-mix(in srgb,var(--user-accent,var(--purple)) 16%,#292a30);color:#eef0f4;border-color:#4a4b53}
