[hidden]{display:none!important}
:root{--night:#0d2031;--night2:#17334a;--petrol:#0f6f73;--petrol-soft:#e5f3f2;--gold:#c99b42;--paper:#f7f8f7;--card:#fff;--ink:#18242e;--muted:#6f7b83;--line:#dde3e6;--danger:#9b4b35;--danger-bg:#fff1ec;--shadow:0 12px 34px rgba(13,32,49,.09);--radius:20px}
*{box-sizing:border-box}html{background:#dfe5e7}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#e8edef 0,#dfe5e7 100%);min-height:100vh;overflow-x:hidden}button,a{font:inherit}button{cursor:pointer}.app-shell{width:min(100%,720px);min-height:100dvh;margin:0 auto;background:var(--paper);position:relative;box-shadow:0 0 50px rgba(13,32,49,.16);padding-bottom:90px;overflow-x:hidden}.topbar{min-height:74px;padding:calc(12px + env(safe-area-inset-top)) 18px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--night);color:#fff;position:sticky;top:0;z-index:10}.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;min-width:0}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,var(--petrol),#15545f);border:1px solid rgba(255,255,255,.25);font-weight:800;font-size:13px;letter-spacing:.03em;flex:0 0 auto}.brand strong,.brand small{display:block}.brand strong{font-size:15px;line-height:1.1}.brand small{font-size:12px;color:#b8c9d4;margin-top:3px}.test-chip{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff;min-height:42px;border-radius:999px;padding:0 13px;font-size:12px;font-weight:800;white-space:nowrap}main{padding:0 18px 28px;outline:none}.screen{display:none}.screen.active{display:block}.home-hero{padding:30px 4px 18px}.home-hero>p:last-child,.screen-head>p:last-child{margin:0;color:var(--muted);line-height:1.5;max-width:590px}.screen-head{padding:28px 4px 18px}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:11px;color:var(--petrol)}h1{font-size:clamp(26px,7vw,31px);line-height:1.08;margin:0 0 9px;color:var(--night);letter-spacing:-.03em}h2{font-size:18px;line-height:1.25;margin:6px 0 8px;color:var(--night)}h3{color:var(--night)}.home-feature{width:100%;border:0;text-align:left;background:linear-gradient(145deg,var(--night),var(--night2));color:#fff;border-radius:22px;padding:19px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow);margin:0 0 14px;min-height:104px}.home-feature-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);font-size:21px;flex:0 0 auto}.home-feature small,.home-feature strong,.home-feature .grow>span{display:block}.home-feature small{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#9bd4d1;font-weight:800;margin-bottom:3px}.home-feature strong{font-size:19px;line-height:1.2}.home-feature .grow>span{font-size:12px;color:#c5d1d8;margin-top:4px}.home-arrow{font-size:29px;color:#cfe3e2}.grow{min-width:0;flex:1}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.home-tile{min-height:132px;border:1px solid var(--line);background:#fff;border-radius:19px;padding:17px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 5px 20px rgba(13,32,49,.045);color:var(--ink)}.home-tile:hover,.home-tile:focus-visible{border-color:#b9d5d3;outline:3px solid rgba(15,111,115,.15);outline-offset:2px}.tile-icon{width:36px;height:36px;border-radius:11px;background:var(--petrol-soft);color:var(--petrol);display:grid;place-items:center;font-weight:900;margin-bottom:14px}.home-tile strong{font-size:15px;color:var(--night)}.home-tile small{font-size:11px;line-height:1.35;color:var(--muted);margin-top:4px}.public-note,.progress-card{border-radius:16px;padding:14px 16px;margin-top:13px;font-size:12px;line-height:1.45}.public-note{display:flex;gap:4px;flex-direction:column;background:#edf3f5;color:#596872}.public-note strong{color:var(--night)}.progress-card{display:flex;align-items:center;gap:11px;background:var(--petrol-soft);color:#326b6c}.progress-card strong,.progress-card span{display:block}.progress-card span{margin-top:2px}.progress-icon{width:34px;height:34px;border-radius:50%;background:var(--petrol);color:#fff;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.public-links{display:flex;flex-wrap:wrap;gap:9px 16px;padding:16px 3px 2px;font-size:12px}.public-links a{color:var(--petrol);font-weight:800;text-underline-offset:3px}.public-links.stacked{display:grid;gap:8px;padding-top:16px}.routebar{min-height:52px;padding:7px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f1f5f5;border-bottom:1px solid var(--line);position:sticky;top:74px;z-index:9}.route-button{border:0;background:transparent;color:var(--night);min-height:40px;font-size:13px;font-weight:800;padding:8px 7px;border-radius:10px;display:flex;align-items:center;gap:6px}.route-button:hover,.route-button:focus-visible{background:#e2ebeb;outline:none}.home-button{color:var(--petrol)}.card,.save-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:19px;margin-bottom:14px;box-shadow:var(--shadow)}.task-card{border-top:4px solid var(--petrol)}.save-card{border:2px solid #c8dddd}.card-kicker{font-size:12px;font-weight:800;color:var(--petrol);display:flex;gap:7px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:var(--gold)}.lead{font-size:15px;line-height:1.5;margin:0 0 14px;color:#3d4c57}.teacher-note{font-size:15px;line-height:1.58;color:#33434e;margin:8px 0 0}.detail-grid{display:grid;gap:10px;margin-top:12px}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-row{background:#f6f8f8;border-radius:13px;padding:13px;min-width:0}.detail-row span{font-size:11px;color:var(--muted);display:block;margin-bottom:3px}.detail-row strong{font-size:13px;overflow-wrap:anywhere}.material-row{display:flex;align-items:center;gap:13px;margin:9px 0 14px}.file-icon{width:44px;height:48px;border-radius:10px;background:#edf2f3;color:var(--night);font-size:18px;font-weight:900;display:grid;place-items:center;border:1px solid #dbe3e5;flex:0 0 auto}.material-row p{margin:0;color:var(--muted);font-size:12px}.primary,.secondary,.danger-button{min-height:48px;border-radius:14px;font-weight:800;padding:0 18px;border:1px solid transparent}.primary{background:var(--petrol);color:#fff}.secondary{background:#f0f4f5;color:var(--night);border-color:#d9e0e3}.danger-button{background:var(--danger-bg);color:#803f30;border-color:#edc9bf}.full{width:100%}.text-action{border:0;background:transparent;color:var(--petrol);font-weight:800;min-height:44px;padding:8px 3px}.subtle{display:block;margin:4px auto 0}.saved-state{background:var(--petrol-soft);color:#326b6c;border-radius:13px;padding:13px;margin-top:12px;font-size:13px}.saved-state strong,.saved-state span{display:block}.saved-state span{margin-top:3px}.list-card{width:100%;text-align:left;display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;margin-bottom:11px;box-shadow:0 5px 20px rgba(13,32,49,.045);color:var(--ink);min-height:72px}.list-card.actionable{cursor:pointer}.list-card.muted{opacity:.72}.grow strong,.grow span{display:block}.grow span{font-size:12px;color:var(--muted);margin-top:4px}.state-badge{font-size:11px;font-weight:800;background:#eef2f4;border-radius:999px;padding:7px 9px;white-space:nowrap}.state-badge.complete{background:var(--petrol-soft);color:var(--petrol)}.appointment-time{font-size:28px;font-weight:900;color:var(--night);margin:4px 0}.card.compact{box-shadow:none}.profile-line{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #edf0f1;font-size:14px}.profile-line:first-child{padding-top:0}.profile-line:last-child{border-bottom:0;padding-bottom:0}.profile-line span{color:var(--muted)}.profile-line strong{text-align:right}.privacy-box{border-left:4px solid var(--gold);background:#fffaf0;padding:15px 16px;border-radius:4px 14px 14px 4px;font-size:13px;line-height:1.5;margin-bottom:14px}.privacy-box p{margin:6px 0 0;color:#5e6264}.bottom-nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,720px);padding:9px 8px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid #dce2e4;display:grid;grid-template-columns:repeat(5,1fr)}.nav-item{border:0;background:transparent;color:#74818a;min-height:54px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0}.nav-item span{font-size:20px;line-height:1}.nav-item small{font-size:10px;font-weight:800;white-space:nowrap}.nav-item.active{color:var(--petrol);background:#edf5f4}dialog{border:0;padding:0;background:transparent;width:min(calc(100% - 24px),680px);max-height:88dvh}dialog::backdrop{background:rgba(5,18,28,.58);backdrop-filter:blur(3px)}.dialog-sheet{background:#fff;border-radius:24px;padding:20px;box-shadow:0 24px 80px rgba(5,18,28,.3);max-height:88dvh;overflow:auto}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.dialog-head h2{font-size:22px;margin-top:2px}.icon-button{border:0;background:#eef2f3;color:var(--night);width:44px;height:44px;border-radius:14px;font-size:26px;line-height:1;flex:0 0 auto}.demo-sheet{border:1px solid var(--line);background:#fcfcfb;border-radius:16px;padding:16px;margin-top:10px}.demo-staff{font-family:"Segoe UI Symbol","Noto Music",serif;font-size:22px;letter-spacing:.12em;background:repeating-linear-gradient(to bottom,transparent 0,transparent 7px,#d4dbde 8px,#d4dbde 9px);padding:23px 5px;overflow:hidden;white-space:nowrap}.fingering{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #e8ecee;font-size:13px}.fingering span{color:var(--muted)}.info-list{display:grid;gap:8px;background:#f4f7f7;border-radius:14px;padding:14px;margin-top:14px;font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;flex-wrap:wrap}.toast{position:fixed;z-index:40;bottom:94px;left:50%;transform:translate(-50%,20px);width:min(calc(100% - 36px),500px);background:var(--night);color:#fff;border-radius:15px;padding:13px 16px;box-shadow:0 14px 45px rgba(5,18,28,.3);opacity:0;pointer-events:none;transition:.22s ease;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}:focus-visible{outline:3px solid rgba(201,155,66,.55);outline-offset:2px}
@media (min-width:700px){main{padding-left:28px;padding-right:28px}.home-hero,.screen-head{padding-top:34px}.card,.save-card{padding:22px}}
@media (max-width:430px){.compact-grid{grid-template-columns:1fr}.test-chip{padding:0 10px}.brand strong{font-size:14px}.home-grid{gap:10px}.home-tile{min-height:124px;padding:15px}.profile-line{gap:10px}.fingering{display:block}.fingering strong{display:block;margin-top:3px}}
@media (max-width:350px){.topbar{padding-left:12px;padding-right:12px}main{padding-left:12px;padding-right:12px}.routebar{padding-left:12px;padding-right:12px}.route-button{font-size:12px}.home-grid{grid-template-columns:1fr}.home-tile{min-height:96px}.nav-item small{font-size:10px}.test-chip{font-size:11px}.home-feature{padding:16px}.home-feature strong{font-size:17px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}



.appointment-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.source-badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:900;letter-spacing:.02em;white-space:nowrap}.source-badge.teacher{background:#f7edd8;color:#795d23}.source-badge.local{background:var(--petrol-soft);color:var(--petrol);margin-bottom:4px}.teacher-appointment .secondary{margin-top:4px}.appointments-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:24px 2px 10px}.appointments-section-head .eyebrow{margin-bottom:2px}.appointments-section-head h2{margin:0}.add-appointment-button{border:0;background:var(--petrol);color:#fff;min-height:42px;border-radius:13px;padding:0 13px;font-size:12px;font-weight:900;white-space:nowrap}.local-only-hint{display:flex;flex-direction:column;gap:3px;background:#edf5f4;border:1px solid #cee2df;border-radius:14px;padding:12px 14px;margin-bottom:12px;font-size:11px;line-height:1.45;color:#4e696a}.local-only-hint strong{color:var(--petrol);font-size:12px}.appointment-list{display:grid;gap:11px}.appointment-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;box-shadow:0 5px 20px rgba(13,32,49,.045)}.local-appointment{border-left:4px solid var(--petrol)}.appointment-card-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.appointment-card-top h2{margin:2px 0 0;font-size:16px}.appointment-card-time{text-align:right;flex:0 0 auto}.appointment-card-time strong,.appointment-card-time span{display:block}.appointment-card-time strong{font-size:12px;color:var(--night)}.appointment-card-time span{font-size:20px;font-weight:900;color:var(--night);margin-top:3px}.appointment-note{background:#f6f8f8;border-radius:11px;padding:10px 12px;margin:12px 0 0;font-size:13px;line-height:1.4;color:#42515c}.appointment-local-caption{font-size:10px;color:var(--muted);margin:12px 0 0}.appointment-card-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #edf0f1;margin-top:10px;padding-top:5px}.compact-action{min-height:36px;padding:4px 2px;font-size:12px}.danger-text{color:#9a4a3d}.empty-state{border:1px dashed #bfd0d2;border-radius:18px;padding:24px 18px;text-align:center;background:#fbfcfc;color:var(--muted)}.empty-state[hidden]{display:none}.empty-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#edf5f4;color:var(--petrol);font-size:20px;margin:0 auto 10px}.empty-state strong{display:block;color:var(--night);font-size:15px}.empty-state p{font-size:12px;line-height:1.5;max-width:390px;margin:6px auto 14px}.empty-state .primary{min-width:150px}.appointment-form{overflow:auto}.form-intro{font-size:12px;line-height:1.5;color:var(--muted);background:#f3f6f6;padding:11px 13px;border-radius:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:16px}.field{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--night)}.field-wide{grid-column:1/-1}.field span small{font-weight:600;color:var(--muted)}.field input,.field select{width:100%;min-height:48px;border:1px solid #cfd8db;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:15px;padding:0 12px}.field input:focus,.field select:focus{outline:3px solid rgba(15,111,115,.15);border-color:var(--petrol)}.form-message{background:#fff0ec;color:#843f31;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:800;margin-top:12px}.appointment-actions .primary{min-height:44px}.appointment-actions .secondary{min-height:44px}
@media (max-width:430px){.appointments-section-head{align-items:stretch;flex-direction:column}.add-appointment-button{width:100%}.appointment-card-top{display:block}.appointment-card-time{text-align:left;display:flex;align-items:baseline;gap:8px;margin-top:8px}.appointment-card-time span{font-size:18px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.appointment-actions{display:grid;grid-template-columns:1fr 1fr}.appointment-actions button{width:100%}}
@media (max-width:350px){.appointment-actions{grid-template-columns:1fr}.appointment-card-actions{justify-content:space-between}}



.reminder-banner{position:sticky;top:64px;z-index:18;display:flex;align-items:center;gap:11px;margin:10px 16px 0;padding:12px 13px;background:#fff6df;border:1px solid #e8d29d;border-radius:16px;box-shadow:0 8px 28px rgba(13,32,49,.10);color:#5d4a20}.reminder-banner[hidden]{display:none}.reminder-banner-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f5e7bf;font-size:18px;flex:0 0 auto}.reminder-banner strong,.reminder-banner span{display:block}.reminder-banner span{font-size:12px;line-height:1.35;margin-top:2px}.reminder-close{width:36px;height:36px;border-radius:12px;font-size:22px}.teacher-reminder-box{background:#f7f9f9;border:1px solid #dfe6e7;border-radius:14px;padding:12px;margin:12px 0}.teacher-reminder-box .field{gap:5px}.teacher-reminder-box select{min-height:44px}.teacher-reminder-box small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:6px}.reminder-mode-hint{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff8e9;border:1px solid #ead7a8;border-radius:14px;padding:13px 14px;margin-bottom:12px;color:#655329}.reminder-mode-hint strong,.reminder-mode-hint span{display:block}.reminder-mode-hint strong{font-size:12px}.reminder-mode-hint span{font-size:10px;line-height:1.45;margin-top:3px}.reminder-mode-hint .secondary{min-height:42px;flex:0 0 auto}.appointment-reminder{display:inline-flex;align-items:center;min-height:29px;margin-top:10px;padding:5px 9px;border-radius:999px;background:#f2f4f5;color:#6c777d;font-size:10px;font-weight:900}.appointment-reminder.active{background:#fff3d5;color:#6d5624;border:1px solid #ead39b}
@media (min-width:700px){.reminder-banner{margin-left:28px;margin-right:28px}}
@media (max-width:430px){.reminder-mode-hint{align-items:stretch;flex-direction:column}.reminder-mode-hint .secondary{width:100%}.reminder-banner{top:62px;margin-left:12px;margin-right:12px}.teacher-reminder-box{padding:11px}}


.custom-reminder-fields{margin-top:10px;padding:12px;border:1px solid #d8e2e3;background:#fbfcfc;border-radius:13px}.custom-reminder-fields[hidden]{display:none}.custom-reminder-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.custom-reminder-actions{display:flex;justify-content:flex-end;margin-top:10px}.custom-reminder-note{display:block;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.4}.teacher-reminder-box .custom-reminder-fields{margin-top:10px}.teacher-reminder-box .form-message{margin-top:9px}
@media (max-width:430px){.custom-reminder-grid{grid-template-columns:1fr}.custom-reminder-actions .secondary{width:100%}}


html[data-theme="dark"]{color-scheme:dark}html[data-theme="dark"] body{background:#071220;color:#eef7ff}html[data-theme="dark"] .topbar,html[data-theme="dark"] .routebar{background:#0f2034;color:#eef7ff;border-color:#294764}html[data-theme="dark"] .card,html[data-theme="dark"] .list-card,html[data-theme="dark"] .save-card,html[data-theme="dark"] .progress-card,html[data-theme="dark"] .public-note,html[data-theme="dark"] .home-tile,html[data-theme="dark"] .home-feature{background:#0f2034!important;color:#eef7ff!important;border-color:#294764!important}html[data-theme="dark"] p,html[data-theme="dark"] small,html[data-theme="dark"] .muted,html[data-theme="dark"] .detail-row span,html[data-theme="dark"] .list-card span{color:#c7d7e4!important}html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] button.secondary{background:#142a44!important;color:#eef7ff!important;border-color:#294764!important}html[data-theme="dark"] a{color:#73e0dc}html[data-theme="dark"] :focus-visible{outline:3px solid #f4cc68;outline-offset:3px}

.state-notice{position:sticky;top:64px;z-index:19;display:flex;align-items:center;gap:11px;margin:10px 16px 0;padding:12px 13px;background:#edf5f4;border:1px solid #c9ddda;border-radius:16px;box-shadow:0 8px 28px rgba(13,32,49,.10);color:#355e60}
.state-notice[hidden]{display:none}.state-notice strong,.state-notice span{display:block}.state-notice span{font-size:12px;line-height:1.4;margin-top:2px}.notice-close{width:36px;height:36px;border-radius:12px;font-size:22px}
.badge-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.source-badge.temporal{background:#edf1f3;color:#5c6972}.past-appointment{opacity:.82}.past-appointment .source-badge.temporal{background:#f3ebe8;color:#81584d}
button:disabled{cursor:not-allowed;opacity:.58}
html[data-theme="light"]{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="dark"] body{background:#071220;color:#eef7ff}
html[data-theme="dark"] .app-shell{background:#081727;color:#eef7ff;box-shadow:0 0 50px rgba(0,0,0,.34)}
html[data-theme="dark"] .topbar,html[data-theme="dark"] .routebar{background:#0f2034;color:#eef7ff;border-color:#294764}
html[data-theme="dark"] .routebar{background:#10233a}
html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,html[data-theme="dark"] .home-tile strong,html[data-theme="dark"] .appointment-time,html[data-theme="dark"] .appointment-card-time strong,html[data-theme="dark"] .appointment-card-time span,html[data-theme="dark"] .empty-state strong,html[data-theme="dark"] .field,html[data-theme="dark"] .profile-line strong{color:#f2f7fb}
html[data-theme="dark"] p,html[data-theme="dark"] small,html[data-theme="dark"] .muted,html[data-theme="dark"] .detail-row span,html[data-theme="dark"] .list-card span,html[data-theme="dark"] .home-tile small,html[data-theme="dark"] .screen-head>p:last-child,html[data-theme="dark"] .home-hero>p:last-child,html[data-theme="dark"] .profile-line span,html[data-theme="dark"] .appointment-local-caption,html[data-theme="dark"] .custom-reminder-note,html[data-theme="dark"] .teacher-reminder-box small{color:#bfd0dc!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .list-card,html[data-theme="dark"] .save-card,html[data-theme="dark"] .progress-card,html[data-theme="dark"] .public-note,html[data-theme="dark"] .home-tile,html[data-theme="dark"] .appointment-card,html[data-theme="dark"] .teacher-reminder-box,html[data-theme="dark"] .local-only-hint,html[data-theme="dark"] .reminder-mode-hint,html[data-theme="dark"] .detail-row,html[data-theme="dark"] .empty-state,html[data-theme="dark"] .info-list,html[data-theme="dark"] .form-intro{background:#0f2034!important;color:#eef7ff!important;border-color:#294764!important}
html[data-theme="dark"] .home-feature{background:linear-gradient(145deg,#0b1c2d,#123550);border:1px solid #294764}
html[data-theme="dark"] .dialog-sheet,html[data-theme="dark"] .demo-sheet{background:#0d1f33;color:#eef7ff;border-color:#294764}
html[data-theme="dark"] .demo-sheet{background:#10233a}
html[data-theme="dark"] .privacy-box{background:#272519;color:#f4e8c7;border-left-color:#d4ad5e}
html[data-theme="dark"] .privacy-box p{color:#d9ccb0!important}
html[data-theme="dark"] .bottom-nav{background:rgba(10,27,44,.96);border-color:#294764}
html[data-theme="dark"] .nav-item{color:#9fb3c2}html[data-theme="dark"] .nav-item.active{color:#83e1dd;background:#153149}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] button.secondary,html[data-theme="dark"] .icon-button{background:#142a44!important;color:#eef7ff!important;border-color:#365572!important}
html[data-theme="dark"] .appointment-note{background:#142a44;color:#d7e4ed}
html[data-theme="dark"] .appointment-reminder{background:#182a3c;color:#c9d7e1}html[data-theme="dark"] .appointment-reminder.active{background:#3b321d;color:#f2db9c;border-color:#6f5d2d}
html[data-theme="dark"] .state-notice{background:#12353a;color:#cdecea;border-color:#2b6a6a}
html[data-theme="dark"] .reminder-banner{background:#3a301b;color:#f5dfa8;border-color:#6c5929}
html[data-theme="dark"] .source-badge.temporal{background:#21364a;color:#d6e2ea}
html[data-theme="dark"] .source-badge.local{background:#123d40;color:#91e2df}
html[data-theme="dark"] .source-badge.teacher{background:#3a321f;color:#f0d99a}
html[data-theme="dark"] .form-message{background:#40231f;color:#ffd5c9}
html[data-theme="dark"] .public-note strong{color:#eef7ff}
html[data-theme="dark"] a{color:#73e0dc}
html[data-theme="dark"] :focus-visible{outline:3px solid #f4cc68;outline-offset:3px}
@media (min-width:700px){.state-notice{margin-left:28px;margin-right:28px}}
@media (max-width:430px){.state-notice{top:62px;margin-left:12px;margin-right:12px}}


html[data-theme="dark"] .route-button{color:#dce9f2}
html[data-theme="dark"] .home-button{color:#73e0dc}
html[data-theme="dark"] .route-button:hover,html[data-theme="dark"] .route-button:focus-visible{background:#17334a}
html[data-theme="dark"] .card-kicker,html[data-theme="dark"] .eyebrow{color:#73e0dc}
html[data-theme="dark"] .custom-reminder-fields{background:#10233a;border-color:#365572}
html[data-theme="dark"] .custom-reminder-fields .field{color:#eef7ff}

html[data-theme="dark"] .info-page{background:#081727!important;color:#eef7ff!important}
html[data-theme="dark"] .info-page textarea{background:#142a44;color:#eef7ff;border-color:#365572}
.topbar-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.theme-toggle{min-height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff;padding:0 12px;font-size:12px;font-weight:850;white-space:nowrap}.theme-toggle:hover,.theme-toggle:focus-visible{background:rgba(255,255,255,.18)}.home-feature.is-complete{background:linear-gradient(145deg,#0d5f58,#0f766e);border:2px solid #53d79b;box-shadow:0 10px 28px rgba(24,128,102,.24)}.home-feature.is-complete .home-feature-icon{background:#dff8e9;color:#126b4e;border-color:#8ce0ba;font-size:24px;font-weight:950}.home-feature.is-complete .home-task-status{color:#e6fff1;font-weight:850}.home-task-status.is-complete{color:#e6fff1!important}.home-upcoming{border:1px solid var(--line);background:#fff;border-radius:19px;padding:15px;margin:0 0 14px;box-shadow:0 5px 20px rgba(13,32,49,.045)}.home-upcoming-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.home-upcoming-head .eyebrow{margin-bottom:2px}.home-upcoming-head h2{margin:0;font-size:17px}.home-upcoming-head .text-action{min-height:36px;padding:3px 1px;white-space:nowrap}.home-upcoming-list{display:grid;gap:8px}.home-upcoming-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;border:1px solid #e2e8ea;background:#f8faf9;color:var(--ink);border-radius:14px;padding:11px 12px;min-height:62px}.home-upcoming-row:hover,.home-upcoming-row:focus-visible{border-color:#b9d5d3;background:#f0f7f6}.home-upcoming-row .grow strong,.home-upcoming-row .grow span{display:block}.home-upcoming-row .grow strong{color:var(--night);font-size:13px}.home-upcoming-row .grow span{font-size:11px;line-height:1.4;color:var(--muted);margin-top:3px}.home-upcoming-source{display:grid;place-items:center;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:900;line-height:1.1;text-align:center;max-width:84px}.home-upcoming-source.teacher{background:#fff3d5;color:#6d5624}.home-upcoming-source.local{background:var(--petrol-soft);color:var(--petrol)}.home-upcoming-arrow{font-size:24px;color:var(--petrol)}.home-upcoming-more{font-size:11px;color:var(--muted);padding:9px 4px 0;font-weight:750}.teacher-appointment{border-top:4px solid var(--gold)}.teacher-appointment-date{font-size:16px;font-weight:850;color:var(--night);margin:4px 0 0}.teacher-source-note{font-size:11px;line-height:1.45;color:var(--muted);background:#fff8e9;border-radius:11px;padding:10px 11px;margin:10px 0 12px}.info-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.info-page .theme-toggle{background:var(--night);border-color:var(--night);color:#fff;min-height:40px}.info-page .theme-toggle:hover,.info-page .theme-toggle:focus-visible{background:var(--night2)}
html[data-theme="dark"] .home-upcoming{background:#0f2034;color:#eef7ff;border-color:#294764}html[data-theme="dark"] .home-upcoming-row{background:#10233a;color:#eef7ff;border-color:#294764}html[data-theme="dark"] .home-upcoming-row:hover,html[data-theme="dark"] .home-upcoming-row:focus-visible{background:#153149;border-color:#3c647f}html[data-theme="dark"] .home-upcoming-row .grow strong{color:#f2f7fb}html[data-theme="dark"] .home-upcoming-row .grow span,html[data-theme="dark"] .home-upcoming-more{color:#bfd0dc}html[data-theme="dark"] .home-upcoming-source.teacher{background:#3a321f;color:#f0d99a}html[data-theme="dark"] .home-upcoming-source.local{background:#123d40;color:#91e2df}html[data-theme="dark"] .teacher-appointment-date{color:#f2f7fb}html[data-theme="dark"] .teacher-source-note{background:#2a291d;color:#e8ddb8}html[data-theme="dark"] .info-page .theme-toggle{background:#142a44;border-color:#365572;color:#eef7ff}
@media (max-width:430px){.topbar{gap:8px;padding-left:12px;padding-right:12px}.topbar-actions{gap:6px}.theme-toggle{padding:0 10px}.test-chip{padding:0 9px}.home-upcoming{padding:13px}.home-upcoming-head{align-items:center}.home-upcoming-source{max-width:72px}.info-topbar{align-items:center}.info-page{padding-left:18px!important;padding-right:18px!important}}
@media (max-width:350px){.brand-mark{width:34px;height:34px}.brand{gap:7px}.brand small{font-size:10px}.theme-toggle{font-size:11px;padding:0 8px}.test-chip{font-size:10px;padding:0 8px}.home-upcoming-row{grid-template-columns:1fr auto}.home-upcoming-source{grid-column:1/-1;justify-self:start;max-width:none}.home-upcoming-head{display:block}.home-upcoming-head .text-action{margin-top:3px}.info-topbar{align-items:flex-start;flex-direction:column}.info-page .theme-toggle{align-self:flex-end;margin-top:-36px}}
html[data-theme="dark"] .home-feature.is-complete{background:linear-gradient(145deg,#0c4d49,#12685f)!important;border-color:#53d79b!important;box-shadow:0 10px 28px rgba(41,190,139,.18)}
