@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#203c34;--muted:#74827c;--green:#28664f;--line:#e3e8e1;--bg:#f6f7f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:white;color:var(--ink)}button:hover{background:#edf2e9}button:focus-visible,a:focus-visible{outline:3px solid #78ac88;outline-offset:3px}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#194d3b}header{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 5%}.brand{text-decoration:none;color:var(--ink);font:800 28px Manrope,sans-serif;display:flex;align-items:center;gap:10px}.dot{color:#86aa6d;margin-left:-8px}.logo{font-size:26px;background:var(--green);color:#fff;border-radius:11px;padding:2px 10px}.header-note{color:var(--muted);font-size:13px}header>button{margin-left:auto}main{max-width:1550px;margin:auto;padding:44px 5% 20px}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.eyebrow{letter-spacing:2px;font-size:10px;font-weight:700;color:#738c70}h1{font:800 clamp(25px,2.6vw,39px) Manrope,sans-serif;letter-spacing:-1.5px;margin:12px 0}p{color:var(--muted);line-height:1.65}h2{font:700 20px Manrope,sans-serif;margin:0}h3{font:700 15px Manrope,sans-serif}.today-card{border-left:2px solid #ccdac1;padding:5px 0 5px 22px;min-width:190px}.today-card span,.today-card small,.today-card strong{display:block}.today-card span{font-size:10px;letter-spacing:1.7px;color:var(--muted)}.today-card strong{font:700 20px Manrope;margin:7px 0}.today-card small{color:var(--muted)}.filters{display:flex;align-items:center;gap:22px;margin-bottom:22px}.filters label{display:flex;gap:12px;align-items:center;font-weight:600}select,input,textarea{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px;color:var(--ink)}select{min-width:140px}.filter-types{display:flex;gap:7px}.chip{border:0;background:transparent;color:var(--muted);padding:9px 12px}.chip.active{background:#e4eddf;color:var(--green);font-weight:700}.source{margin-left:auto;color:var(--muted);font-size:11px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px}.calendar-panel,.agenda-panel,.day-panel{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px}.calendar-toolbar h2{text-transform:capitalize}.calendar-toolbar span{color:var(--muted);font-size:12px;display:block;margin-top:5px}.calendar-controls{display:flex;align-items:center;gap:5px}.calendar-controls>button{padding:7px 11px}.view-switch{background:#f0f3ed;padding:3px;border-radius:8px;display:flex;margin-left:12px}.view-switch button{border:0;padding:7px 11px;background:transparent;color:var(--muted)}.view-switch .selected{background:#fff;color:var(--ink);box-shadow:0 1px 4px #203c3410}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);border-top:1px solid var(--line);background:#fcfdf9}.weekdays span{padding:13px;color:var(--muted);font-size:11px;text-align:center}#calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day{min-height:119px;padding:9px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;outline-offset:-3px}.day:nth-child(7n){border-right:0}.day.weekend{background:#fafbf8}.day.outside{color:#b6beb7;background:#fcfdfb}.day.selected{box-shadow:inset 0 0 0 2px #aac1ae;background:#f5f9ef}.day.today{box-shadow:inset 0 0 0 2px #7da186;background:#f5f9ef}.day.today .date{background:var(--green);color:#fff}.date{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;margin-bottom:5px}.today-tag{font-size:9px;color:var(--green);margin-left:3px}.event{display:block;text-align:left;width:100%;border:0;border-radius:5px;font-size:10px;padding:5px 6px;line-height:1.4;margin:3px 0;overflow:hidden}.prov{background:#fee2e2;color:#b91c1c}.legend i.prov{background:#b91c1c}.legend i.uppgift{background:#665592}.legend i.aktivitet{background:#587544}.uppgift{background:#e8e7f5;color:#665592}.aktivitet{background:#e6efdf;color:#587544}.event strong{font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.more{font-size:10px;color:var(--muted);padding:3px}.legend{display:flex;gap:16px;align-items:center;padding:17px 22px;color:var(--muted);font-size:10px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%}.legend small{margin-left:auto}.agenda-panel{padding:24px}.agenda-panel h2{font-size:19px;margin-top:9px}.agenda-panel h2 span{float:right;background:#edf2e7;font:600 11px 'DM Sans';padding:5px 8px;border-radius:50%}.agenda-panel>p{font-size:12px;margin:6px 0 19px}.agenda-item{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line);cursor:pointer}.agenda-date{width:33px;flex-shrink:0;text-align:center;font-size:10px;color:var(--muted);text-transform:uppercase}.agenda-date strong{display:block;font:700 21px Manrope;color:var(--ink);margin-top:3px}.agenda-item h4{font-size:12px;line-height:1.5;margin:0 0 5px}.badge{font-size:9px;border-radius:4px;padding:3px 6px;display:inline-block}.agenda-item small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.day-panel{margin-top:16px;padding:18px 22px}.day-panel h3{margin:0 0 10px}.day-panel .event{font-size:12px;padding:10px}.hint{display:flex;gap:13px;padding:23px 8px}.hint>span{background:#e8eedd;font-size:21px;border-radius:9px;padding:8px;height:40px}.hint strong{font-size:12px}.hint p{font-size:11px;margin:5px 0}footer{display:flex;justify-content:space-between;color:#8c978e;font-size:10px;padding:26px 0}.empty{font-size:12px;padding:14px 0;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:16px;max-width:620px;width:calc(100% - 30px);padding:30px;color:var(--ink);box-shadow:0 20px 100px #203c3430}dialog::backdrop{background:#17392b66;backdrop-filter:blur(3px)}.close{float:right;border:0;font-size:22px;padding:0 5px}dialog h2{margin:13px 0}dialog label{display:block;margin:18px 0;font-size:12px;font-weight:600}dialog label input,dialog textarea{display:block;width:100%;margin-top:7px}.file-zone{padding:22px;background:#f5f8ef;border:1px dashed #a0b696;border-radius:10px}.dialog-actions{display:flex;justify-content:space-between;gap:10px;margin:18px 0}.small{font-size:11px}.text-button{border:0;color:var(--green);font-size:11px;padding:0}details{font-size:12px}details input{width:100%;margin:8px 0}#preview{max-height:180px;overflow:auto}#preview p{border-bottom:1px solid var(--line);font-size:12px}.week-view .day{min-height:400px}.week-view .event{font-size:12px;padding:9px}.week-view .event strong{-webkit-line-clamp:5}@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 260px}.calendar-toolbar{flex-wrap:wrap}.header-note{display:none}.today-tag{display:none}.day{min-height:110px}.source{display:none}}@media(max-width:800px){header{height:72px;padding:0 4%}header>button{font-size:11px;padding:9px}.brand{font-size:22px}main{padding:28px 4%}.layout{grid-template-columns:1fr}.intro{align-items:flex-start}.today-card{min-width:130px;padding-left:12px}.today-card strong{font-size:14px}h1{letter-spacing:-.7px}.intro p{font-size:12px}.filters{flex-wrap:wrap;gap:12px}.filter-types{gap:0}.chip{font-size:12px}.calendar-toolbar{padding:17px}.calendar-controls{flex-wrap:wrap}.day{min-height:100px;padding:5px 3px}.event{font-size:9px;padding:4px 3px}.legend{padding:14px;gap:10px}.legend small{display:none}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.day-panel{margin-top:0}.hint{grid-column:1/-1}footer{gap:20px}.week-view .event{font-size:10px;padding:5px}.week-view .day{min-height:260px}}@media(max-width:480px){.today-card{display:none}aside{grid-template-columns:1fr}.calendar-toolbar h2{font-size:18px}.day .event strong{-webkit-line-clamp:3}.weekdays span{padding:10px 3px}.date{font-size:11px;width:22px;height:22px}.calendar-controls{gap:4px}.view-switch{margin-left:6px}}

.chip[data-type="prov"] .category-dot{color:#b91c1c}.chip[data-type="uppgift"] .category-dot{color:#665592}.chip[data-type="aktivitet"] .category-dot{color:#587544}

[hidden]{display:none!important}.section-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:12px}.section-tabs button{border:0;background:transparent;color:var(--muted)}.section-tabs button.selected{background:#e4eddf;color:var(--green);font-weight:700}.section-tabs span{font-size:10px;border-radius:10px;background:#fff;padding:3px 6px;margin-left:5px}.unassigned-heading{max-width:680px;margin-bottom:24px}#unassignedList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.unassigned-card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.unassigned-card h3{font-size:15px;line-height:1.6;margin:12px 0 5px}.unassigned-card>p{font-size:12px;margin-top:4px}.assignment-form{margin-top:16px}.assignment-form label{display:block;font-size:12px;margin-bottom:8px}.assignment-controls{display:flex;gap:8px}.assignment-controls input{min-width:0;flex:1}.assignment-controls button{white-space:nowrap}.assignment-error{font-size:11px;color:#b91c1c;min-height:16px}.assignment-error:empty{margin:0;min-height:0}#assignmentStatus{color:var(--green)}@media(max-width:700px){#unassignedList{grid-template-columns:1fr}.assignment-controls{flex-wrap:wrap}.assignment-controls input{flex-basis:100%}}

#classFilter{min-width:0;width:82px;padding:9px 10px}.filters label{gap:8px}.filters{gap:16px;flex-wrap:wrap}

#ivFilter{min-width:0;width:185px;padding:9px 10px;text-overflow:ellipsis}@media(max-width:480px){#classFilter{width:82px}#ivFilter{width:155px}.filters{gap:12px}}

.logo{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:54px;height:54px;padding:3px;background:var(--green);border-radius:11px}.logo img{display:block;width:48px;height:48px;object-fit:contain}@media(max-width:800px){.logo{width:45px;height:45px;padding:3px}.logo img{width:39px;height:39px}}

.today-card{background:#eaf1e4;border:1px solid #d8e4d1;border-radius:14px;padding:18px 22px}@media(max-width:800px){.today-card{padding:14px 16px}}

header .reminder-button{margin-left:auto;font-size:12px}header .reminder-button+button{margin-left:0}.install-help{background:#eef4e9;border:1px solid var(--line);border-radius:10px;padding:15px}.install-help p{font-size:12px;margin:8px 0}#reminderSelection{font-size:12px;color:var(--green)}@media(max-width:800px){header .reminder-button{padding:8px}header .reminder-button span{display:none}header{gap:12px}}

.reminder-button{display:inline-flex;align-items:center;gap:7px}

.day{position:relative}.day.week-start{padding-bottom:24px}.day.holiday{background:#eaf2fb}.week-number{position:absolute;bottom:6px;left:8px;color:#7b8c91;font-size:10px;line-height:1.2;font-weight:500}.legend i.holiday-key{background:#a3bdd8}@media(max-width:800px){.week-number{left:5px;font-size:9px}}

.holiday-label{display:block;color:#111;font-size:11px;font-weight:500;line-height:1.45;padding:3px 2px;margin:3px 0;overflow-wrap:anywhere}.week-view .holiday-label{font-size:13px}@media(max-width:800px){.holiday-label{font-size:10px}.week-view .holiday-label{font-size:11px}}

.holiday-names{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:32px 6px;pointer-events:none}.holiday-label{font-size:16px;font-weight:600;line-height:1.3;text-align:center;margin:0;padding:0;max-width:100%}.week-view .holiday-label{font-size:20px}.day.holiday:has(.event) .holiday-names{position:static;min-height:52px;padding:8px 2px}@media(max-width:800px){.holiday-label{font-size:13px}.week-view .holiday-label{font-size:15px}}@media(max-width:480px){.holiday-names{padding:28px 2px}.holiday-label{font-size:11px}.week-view .holiday-label{font-size:13px}}

.brand-eg{color:var(--green)}.brand-name{white-space:nowrap}@media(max-width:480px){.brand{font-size:18px;gap:8px}}

.assignment-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assignment-field input,.assignment-field select{width:100%;min-width:0;margin:0}.assignment-field label{margin:0 0 7px}.assignment-action{display:flex;justify-content:flex-end;margin-top:12px}@media(max-width:540px){.assignment-controls{grid-template-columns:1fr}}

.filters label[hidden]{display:none}#mathFilter{min-width:0;width:135px;padding:9px 10px}

#classFilter:has(option[value=""]:checked){width:118px}

/* Past events stay readable and clickable, with the same neutral tone for all types. */
.event.past,.badge.past{background:#ededeb;color:#686f6a}.event.past:hover{background:#e2e5e1;color:#686f6a}
.agenda-item.past h4,.agenda-item.past .agenda-date strong,.unassigned-card.past h3,#eventDetail.past h2,.holiday-label.past{color:#686f6a}

/* Today's date and the selected date keep their category colors. */
.event.current.prov,.badge.current.prov,.day.today .event.prov,.event.selected-date.prov,.badge.selected-date.prov,.day.selected .event.prov{background:#fee2e2;color:#b91c1c}
.event.current.uppgift,.badge.current.uppgift,.day.today .event.uppgift,.event.selected-date.uppgift,.badge.selected-date.uppgift,.day.selected .event.uppgift{background:#e8e7f5;color:#665592}
.event.current.aktivitet,.badge.current.aktivitet,.day.today .event.aktivitet,.event.selected-date.aktivitet,.badge.selected-date.aktivitet,.day.selected .event.aktivitet{background:#e6efdf;color:#587544}

.source-table-wrap{overflow:auto}.source-table{border-collapse:collapse;font-size:11px}.source-table td{border:1px solid var(--line);padding:6px;min-width:90px;white-space:pre-wrap;vertical-align:top}

.profile-save{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#savePreferences{padding:9px 14px;white-space:nowrap;background:var(--green);color:#fff}#profileStatus{font-size:12px;color:var(--green)}

.school-sync{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;row-gap:4px;max-width:340px;padding:0}.school-sync>a{min-width:0;text-align:right}.school-sync>small{grid-column:1/-1;text-align:right}.school-sync a{color:#28664f;font-size:14px;font-weight:600;text-decoration:none}.school-sync a:hover{text-decoration:underline}.school-sync small{color:#65766f;font-size:12px}.school-sync button{white-space:nowrap;font-size:13px;padding:8px 12px}@media(max-width:600px){.school-sync{gap:10px}.school-sync a{font-size:12px}.school-sync small{font-size:11px}.school-sync button{font-size:11px;padding:7px 8px}}

/* Additional planning tools follow the existing green palette and calendar layout. */
.iv-field{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0}.iv-picker{position:relative;font-size:14px;font-weight:400}.iv-picker summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;width:185px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.iv-picker summary::-webkit-details-marker{display:none}.iv-picker summary[aria-disabled="true"]{opacity:.55;cursor:wait}.iv-picker summary:focus-visible{outline:3px solid #78ac88;outline-offset:3px}#ivSummary{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.iv-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:330px;max-width:calc(100vw - 40px);border:1px solid var(--line);background:#fff;border-radius:12px;box-shadow:0 12px 35px #203c341c;padding:14px}.iv-menu>p{margin:0 0 10px;font-size:12px}.iv-options{max-height:330px;overflow:auto;overscroll-behavior:contain}.filters .iv-option{display:flex;align-items:flex-start;gap:9px;padding:8px 4px;margin:0;font-size:12px;font-weight:400;line-height:1.45;cursor:pointer}.iv-option input{width:16px;height:16px;flex-shrink:0;margin:1px 0 0;accent-color:var(--green)}.iv-menu>#clearIV{display:block;margin-top:12px;padding:6px 4px}.iv-menu button:disabled{opacity:.45;cursor:default}
.search-bar{display:flex;align-items:center;gap:16px;margin:0 0 18px}.search-bar>label{font-size:12px;font-weight:600;white-space:nowrap}.search-field{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;flex:1;max-width:520px}.search-field>span{font-size:26px;color:var(--muted)}.search-field input{border:0;background:transparent;min-width:0;width:100%;padding:12px 0;outline:none}.search-field:focus-within{outline:2px solid #aac1ae;outline-offset:1px}.search-field button{border:0;padding:3px 6px;font-size:20px}.search-panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:20px;margin-bottom:20px}.search-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.search-heading h2{font-size:16px}.search-heading h2 span{font:400 12px 'DM Sans';color:var(--muted);margin-left:8px}.search-heading label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.search-heading input{accent-color:var(--green)}.search-result{display:flex;align-items:center;gap:14px;text-align:left;width:100%;border:0;border-top:1px solid var(--line);border-radius:0;padding:14px 0;background:transparent}.search-result>span:nth-child(2){flex:1;min-width:0}.search-result strong{display:block;font-size:13px;line-height:1.5}.search-result small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.search-date{color:var(--muted);font-size:12px;width:100px;flex-shrink:0}.search-result.past strong{color:#686f6a}#moreSearch{display:block;margin:14px auto 0}
.event-change,.search-result .event-change{display:block;font-size:9px;font-weight:600;color:#7c5e24;margin:4px 0 0;line-height:1.35}.event-change.new,.search-result .event-change.new{color:#28664f}.agenda-item .event-change{margin-bottom:6px}.event.past .event-change{color:#686f6a}#eventDetail>.event-change{display:inline-block;font-size:12px;border-radius:6px;background:#f6f0df;padding:7px 10px;margin-bottom:5px}.notification-settings{border:1px solid var(--line);border-radius:10px;padding:12px 15px;margin:16px 0}.notification-settings legend{font-size:12px;font-weight:600;padding:0 5px}.notification-settings label{display:flex;gap:10px;align-items:center;margin:10px 0;font-weight:400;font-size:12px}.notification-settings label input{display:inline-block;width:16px;height:16px;margin:0;accent-color:var(--green)}.notification-settings>small{color:var(--muted);font-size:11px;line-height:1.5;display:block;margin:10px 0 3px}
@media(max-width:800px){.iv-picker summary{width:185px}.search-bar{display:block}.search-bar>label{display:block;margin-bottom:7px}.search-field{max-width:none}.search-heading{align-items:flex-start;flex-direction:column}.search-result{gap:9px}.search-date{width:72px;font-size:11px}.search-result>.badge{font-size:8px}.search-result strong{font-size:12px}}
@media(max-width:480px){.iv-picker summary{width:155px}.iv-menu{left:auto;right:0;width:290px;max-width:calc(100vw - 30px)}.search-result{flex-wrap:wrap}.search-result>.badge{margin-left:81px}.search-result>span:nth-child(2){flex-basis:calc(100% - 81px)}.search-panel{padding:15px}.event-change{font-size:8px}}

.search-field input::-webkit-search-cancel-button{display:none}

/* Search cards use the same category palette as calendar events. */
.search-result{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:10px 0}
.search-result.prov{background:#fee2e2;color:#b91c1c;border-color:#f8caca}.search-result.prov:hover{background:#fbd4d5}
.search-result.uppgift{background:#e8e7f5;color:#665592;border-color:#d8d5eb}.search-result.uppgift:hover{background:#dedcf0}
.search-result.aktivitet{background:#e6efdf;color:#587544;border-color:#d3e2c9}.search-result.aktivitet:hover{background:#dce8d3}
.search-result small,.search-result .search-date{color:inherit;opacity:.8}
.search-result.past{background:#ededeb;color:#686f6a;border-color:#e0e2de}.search-result.past:hover{background:#e2e5e1}.search-result.past .event-change{color:#686f6a}

.workload-toolbar{display:flex;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line);background:#fcfdf9}.workload-toolbar button{white-space:nowrap;border-color:#a8bda9;color:var(--green);font-size:12px;font-weight:600}.workload-toolbar button[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#fff}.workload-toolbar button:disabled{color:#89948d;border-color:var(--line);background:#f2f4ef;cursor:not-allowed}.workload-toolbar p{font-size:11px;margin:0;line-height:1.5}
#calendar{position:relative}.workload-overlay{position:absolute;inset:0;display:grid;pointer-events:none;z-index:1}.workload-strip-row{display:flex;align-items:center;padding:32px 12px 22px}.workload-strip{display:flex;align-items:center;gap:12px;width:100%;min-height:36px;border-radius:8px;padding:9px 14px;font-size:12px;line-height:1.4;box-shadow:0 1px 3px #203c3412}.workload-strip>strong{flex-shrink:0;min-width:38px}.workload-strip>span{flex:1}.workload-strip>b{min-width:24px;text-align:center;font-size:14px}.load-0{background:#cce6d1;color:#204e35}.load-1{background:#f6df7c;color:#5c4700}.load-2{background:#f3ae64;color:#623508}.load-3{background:#c84545;color:#fff}.load-4{background:#792a45;color:#fff}.workload-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 22px;font-size:11px;color:var(--muted)}.workload-legend>strong{font-size:11px;font-weight:500}.workload-legend>span{display:inline-flex;align-items:center;gap:5px}.workload-legend i{display:inline-block;width:18px;height:8px;border-radius:3px}.workload-view .day{min-height:114px}.week-view.workload-view .day{min-height:270px}
@media(max-width:800px){.workload-toolbar{padding:14px 17px;flex-wrap:wrap;gap:8px}.workload-toolbar p{font-size:10px;flex-basis:100%}.workload-strip-row{padding:28px 7px 22px}.workload-strip{padding:8px 10px;gap:8px;font-size:11px}.workload-legend{gap:10px;padding:14px}.workload-legend>strong{flex-basis:100%}.workload-view .day{min-height:100px}}

/* Compact text control next to the activity category. */
.filter-types{flex-wrap:wrap;align-items:center;min-width:0}.activity-visibility{border:0;background:transparent;color:var(--green);padding:9px 8px;font-size:12px;white-space:nowrap;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#a8bda9}.activity-visibility:hover{background:#edf2e9;text-decoration-color:currentColor}.activity-visibility[aria-pressed="true"]{font-weight:600}

.filters .iv-none{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:4px;font-weight:600}

/* Keep source controls beside the class choice, with compact supporting text. */
.filters{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px 20px}.student-filters{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;min-width:0}.student-filters>.iv-field{width:213px;max-width:100%}.student-filters .iv-picker{flex:1;min-width:0}.student-filters .iv-picker summary{width:100%}.filters .school-sync{margin:0;align-self:start;column-gap:10px;row-gap:4px}.school-sync button{min-height:39px}.school-sync a{font-size:11px}.school-sync small{font-size:10px;line-height:1.4}.category-filters{grid-column:1/-1;display:flex;align-items:center;gap:16px;min-width:0}.category-filters .source{margin-left:auto}.category-filters .filter-types{flex:1}
@media(max-width:600px){.filters{gap:12px}.student-filters{gap:12px}.filters .school-sync{column-gap:8px;row-gap:4px;max-width:210px}.school-sync a{font-size:10px}.school-sync small{font-size:9px}.school-sync button{font-size:11px;padding:7px 8px}}
@media(max-width:400px){.student-filters>label{flex-wrap:wrap}.student-filters>label select{max-width:100%}}

/* Phone presentation only. Desktop sizes keep their existing layout. */
.mobile-import,.mobile-day-summary,.mobile-weekday,.mobile-week-empty,.mobile-calendar-help{display:none}
@media(max-width:600px){
 header{height:72px;padding:0 16px;gap:10px}
 .brand{font-size:18px;gap:8px;min-width:0}.logo{width:40px;height:44px}.logo img{width:36px;height:38px}
 header .reminder-button{width:44px;min-width:44px;height:44px;padding:0;justify-content:center}
 header #importOpen{min-height:44px;padding:10px;font-size:12px;white-space:nowrap}
 .desktop-import{display:none}.mobile-import{display:inline}
 main{padding:24px 16px 16px}.intro{display:block;margin-bottom:20px}
 h1{font-size:25px;line-height:1.25;letter-spacing:-.8px;margin:0 0 10px;max-width:370px}
 .intro p{font-size:13px;line-height:1.55;margin:0 0 14px}
 .today-card{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;min-width:0;width:fit-content;padding:9px 12px;border-radius:10px}
 .today-card span{font-size:9px}.today-card strong{font-size:13px;margin:0}.today-card small{font-size:11px}
 .section-tabs{margin-bottom:18px;padding-bottom:10px;gap:6px}.section-tabs button{min-height:44px;padding:9px 12px}
 .filters{grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:16px}
 .student-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
 .student-filters>label,.student-filters>.iv-field{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:auto;font-size:12px;min-width:0}
 .student-filters .iv-picker{flex:none}.student-filters .iv-picker summary,#classFilter,#classFilter:has(option[value=""]:checked),#mathFilter{width:100%;min-height:46px;font-size:16px;padding:11px 12px}
 .student-filters #profileSave{grid-column:1/-1}.profile-save{gap:8px}#savePreferences{width:100%;min-height:46px;font-size:14px}#profileStatus{font-size:12px;line-height:1.5}
 .iv-menu{width:min(330px,calc(100vw - 32px));max-width:calc(100vw - 32px);left:auto;right:0;padding:14px}
 .iv-options{max-height:min(360px,48dvh)}.filters .iv-option{min-height:44px;padding:10px 3px;font-size:14px;align-items:center}.iv-option input{width:20px;height:20px;margin:0}
 .filters .school-sync{width:100%;max-width:none;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:0 0 13px;border-bottom:1px solid var(--line)}
 .school-sync>a,.school-sync>small{text-align:left}.school-sync a{font-size:11px}.school-sync small{font-size:10px}.school-sync button{min-height:44px;font-size:12px;padding:9px 12px}
 .category-filters{grid-column:auto}.filter-types{gap:3px 0}.chip{min-height:44px;padding:9px 10px;font-size:12px}.activity-visibility{min-height:44px;font-size:12px;padding:9px 10px}
 .search-bar{margin-bottom:16px}.search-bar>label{font-size:12px}.search-field{padding:0 12px}.search-field input{font-size:16px;min-height:46px}.search-field button{min-width:40px;min-height:44px}
 .layout{gap:16px}.calendar-panel{border-radius:12px}.workload-toolbar{padding:12px 14px;gap:7px}.workload-toolbar button{min-height:44px;font-size:12px}.workload-toolbar p{font-size:11px;line-height:1.5}
 .calendar-toolbar{display:block;padding:16px 14px 12px}.calendar-toolbar h2{font-size:20px}.calendar-toolbar>div:first-child{min-width:0}.calendar-toolbar span{font-size:11px}
 .calendar-controls{display:flex;flex-wrap:nowrap;gap:5px;margin-top:13px}.calendar-controls>button{min-width:40px;min-height:44px;padding:8px 10px;font-size:14px}.view-switch{margin-left:auto;padding:3px}.view-switch button{min-height:38px;font-size:12px;padding:7px 10px}
 .weekdays span{padding:11px 2px;font-size:11px}
 #calendar:not(.week-view) .day{min-height:84px;padding:6px 3px 21px}
 #calendar:not(.week-view) .day>.event,#calendar:not(.week-view) .day>.more{display:none}
 .date{width:27px;height:27px;font-size:12px;margin-bottom:5px}.week-number{left:6px;bottom:5px;font-size:9px}
 #calendar:not(.week-view) .mobile-day-summary{display:flex;justify-content:center;flex-wrap:wrap;gap:3px 2px;min-height:16px}
 .mobile-count{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:18px;padding:2px 4px;border-radius:4px;font-size:9px;font-weight:700;line-height:1.3}
 .mobile-count::before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor;flex-shrink:0}.mobile-count.past{background:#ededeb;color:#686f6a}
 .holiday-names{padding:33px 2px 18px}.holiday-label{font-size:10px;line-height:1.2;overflow-wrap:normal;hyphens:auto}
 .day.holiday:has(.mobile-count) .holiday-names{position:static;padding:0;min-height:20px}
 .mobile-calendar-help{display:block;font-size:11px;line-height:1.5;padding:12px 14px 0;margin:0;color:var(--muted)}
 .calendar-panel:has(.week-view) .mobile-calendar-help,.calendar-panel:has(.workload-view) .mobile-calendar-help{display:none}
 .legend{flex-wrap:wrap;gap:10px 14px;padding:13px 14px;font-size:11px}.legend i{width:8px;height:8px}
 aside{display:flex;flex-direction:column;gap:16px;min-width:0}.day-panel{order:-1;padding:18px}.day-panel h3{font-size:16px;line-height:1.4}.day-panel .event{font-size:14px;padding:12px;min-height:44px;margin:8px 0}.day-panel .event strong{-webkit-line-clamp:unset;overflow-wrap:anywhere}
 .agenda-panel{padding:18px}.agenda-item{padding:15px 0;gap:13px}.agenda-item h4{font-size:14px;line-height:1.5}.agenda-item small{font-size:11px;line-height:1.5}.badge{font-size:10px;padding:4px 7px}.agenda-date{font-size:11px}.empty{font-size:13px;line-height:1.6}
 /* A readable day-by-day list replaces seven narrow columns in week view. */
 #calendar.week-view:not(.workload-view){grid-template-columns:minmax(0,1fr)}
 .calendar-panel:has(.week-view:not(.workload-view)) .weekdays{display:none}
 #calendar.week-view:not(.workload-view) .day{min-height:0;padding:14px;border-right:0}
 #calendar.week-view:not(.workload-view) .date{vertical-align:middle;margin:0 0 8px 6px}
 #calendar.week-view:not(.workload-view) .mobile-weekday{display:inline-block;font-size:14px;font-weight:700;text-transform:capitalize;margin-bottom:8px}
 #calendar.week-view:not(.workload-view) .event{font-size:14px;padding:12px;min-height:44px;margin:7px 0}
 #calendar.week-view:not(.workload-view) .event strong{-webkit-line-clamp:unset;overflow-wrap:anywhere}
 #calendar.week-view:not(.workload-view) .mobile-week-empty{display:block;font-size:12px;color:var(--muted);padding:3px 0}
 #calendar.week-view:not(.workload-view) .week-number{position:static;display:block;margin:9px 0 0}
 #calendar.week-view:not(.workload-view) .holiday-names{position:static;padding:14px 0;min-height:0}.week-view .holiday-label{font-size:16px}
 .workload-strip{font-size:12px;padding:10px;gap:8px}.workload-strip-row{padding:32px 7px 22px}.workload-legend{font-size:11px}.workload-legend>strong{font-size:11px}
 .search-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:14px;margin:10px 0}.search-date{width:auto;grid-column:1/-1;font-size:12px}.search-result>span:nth-child(2){min-width:0}.search-result strong{font-size:14px;overflow-wrap:anywhere}.search-result small{font-size:12px}.search-result>.badge{margin:0;align-self:start;font-size:10px}.search-result .event-change{font-size:11px}
 dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:22px 18px;border-radius:16px;overflow-y:auto;overscroll-behavior:contain}dialog h2{font-size:21px;line-height:1.4;overflow-wrap:anywhere}dialog p{font-size:13px}dialog .close{width:44px;height:44px;margin:-9px -6px 0 8px}dialog input,dialog select,dialog textarea{font-size:16px;min-height:44px}dialog .dialog-actions{flex-wrap:wrap}dialog .dialog-actions>button{min-height:44px;flex:1 1 140px}.notification-settings label{min-height:44px;font-size:13px}.notification-settings label input{min-height:20px;width:20px;height:20px;flex-shrink:0}.install-help{padding:12px}.assignment-controls{grid-template-columns:1fr}.assignment-controls input,.assignment-controls select{max-width:100%;min-width:0}.assignment-action button{min-height:44px}.file-zone{padding:16px}.file-zone input{max-width:100%}
 footer{flex-direction:column;gap:8px;padding:24px 0;font-size:11px;line-height:1.5}
}
@media(max-width:359px){
 header{padding:0 10px;gap:6px}.brand{font-size:16px;gap:6px}.logo{width:32px;height:38px}.logo img{width:29px;height:34px}header #importOpen{font-size:11px;padding:8px}
 main{padding-left:12px;padding-right:12px}.chip{padding-left:8px;padding-right:8px}.calendar-toolbar{padding-left:10px;padding-right:10px}.calendar-controls{gap:3px}.calendar-controls>button{min-width:36px;padding:8px}.view-switch button{padding:7px}.mobile-count{min-width:16px;padding:2px 3px}
}
