:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#28362d;background:#f7f8f4;font-synthesis:none;font-size:14px;--green:#476044;--ink:#28362d;--muted:#7b847b;--line:#e5e8de;--soft:#f0f3e9;--blue:#46718d;--radius:14px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}a{color:var(--green)}button:focus-visible,a:focus-visible{outline:3px solid #abc16e;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #abc16e;outline-offset:1px}button{transition:background .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(.975)}button svg{flex-shrink:0}svg{vertical-align:middle;stroke-width:1.7}h1,h2,h3,p{margin:0}button{border:0;background:none}.icon{width:19px;height:19px;fill:none;stroke:currentColor}.muted{color:var(--muted)}.small{font-size:12px}.skip-link{position:fixed;top:-80px;left:20px;z-index:50;background:white;padding:12px}.skip-link:focus{top:10px}.loading{padding:80px;text-align:center}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:#f2f4ec;border-right:1px solid #e2e6d9;padding:34px 23px 22px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:11px;font-size:28px;font-weight:680;letter-spacing:-1.3px;padding-left:3px}.brand-mark{display:grid;grid-template-columns:repeat(2,7px);gap:4px;background:var(--green);border-radius:11px;padding:10px;transform:rotate(-4deg)}.brand-mark i{width:7px;height:7px;background:#dce6b9;border-radius:2px}.brand-mark i:nth-child(2){opacity:.65}.brand-mark i:nth-child(3){opacity:.4}.brand-sub{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:#8d9584;margin-top:10px;padding-left:4px}.main-nav{display:flex;flex-direction:column;gap:7px}.nav-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;border-radius:9px;color:#74806d;font-weight:550;font-size:13px}.nav-btn.active{background:#e3e9d5;color:#3e5536}.nav-btn .count{margin-left:auto;font-size:11px;font-weight:600;background:#d3ddbd;padding:2px 7px;border-radius:5px}.sidebar-heading{font-size:10px;letter-spacing:1.5px;font-weight:650;color:#89917f;margin-bottom:13px;text-transform:uppercase}.month-nav{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;margin-bottom:10px;text-transform:capitalize}.month-nav button{padding:4px;color:#8b9380}.mini-month{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.mini-month>span{text-align:center;font-size:9px;color:#9a9f92;padding:5px 0}.mini-month button{padding:0;min-height:25px;font-size:11px;border-radius:7px}.mini-month .other-month{color:#b5bbaf}.mini-month .in-week{background:#e7ecdd}.mini-month .selected{background:var(--green);color:white;font-weight:650}.mini-month .mini-today:not(.selected){box-shadow:inset 0 0 0 1px #b9c99c}.calendar-toggle{display:flex;align-items:center;gap:9px;font-size:12px;margin:10px 0;color:#697160;cursor:pointer}.calendar-toggle input{appearance:none;width:13px;height:13px;border:1px solid var(--cal);border-radius:4px;margin:0;position:relative;background:transparent;flex-shrink:0}.calendar-toggle input:checked{background:var(--cal)}.calendar-toggle input:checked:after{content:'✓';color:white;font-size:10px;position:absolute;left:2px;top:-1px}.calendar-group{margin-top:13px}.calendar-group>span{font-size:11px;font-weight:600;color:#79816f}.sidebar-footer{margin-top:auto;padding-top:18px;border-top:1px solid #dfe4d6}.local-status{display:flex;align-items:center;gap:6px;font-size:10px;color:#839174}.local-status:before{content:'';width:5px;height:5px;border-radius:50%;background:#789558}.settings-btn{margin-top:14px;display:flex;align-items:center;gap:8px;font-size:12px;color:#78816e;padding:4px 0}.workspace{min-width:0}.topbar{height:82px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fcfcf9}.breadcrumb{font-size:12px;color:#84907e;display:flex;align-items:center;gap:10px}.breadcrumb strong{font-weight:500;color:#4f6049}.topbar-right{display:flex;align-items:center;gap:19px}.demo-badge{font-size:10px;color:#7a876a;border:1px solid #dfe6d1;border-radius:5px;padding:5px 8px;letter-spacing:.4px}.avatar-stack{display:flex;padding-left:6px}.avatar-stack span{height:28px;width:28px;border:2px solid #fcfcf9;border-radius:50%;margin-left:-6px;display:grid;place-items:center;font-size:9px;font-weight:700;background:var(--person-bg);color:var(--person-fg)}.content{padding:30px 38px 36px;max-width:1800px;margin:0 auto}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{font-size:10px;letter-spacing:1.6px;color:#8e9986;font-weight:600;margin-bottom:8px;text-transform:uppercase}.heading-row h1{font-size:29px;letter-spacing:-1.1px;font-weight:550;line-height:1.2}.subtitle{font-size:12px;color:#87907f;margin-top:8px}.primary{background:var(--green);border:1px solid var(--green);color:white;border-radius:9px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:550;font-size:12px;min-height:40px}.secondary{border:1px solid #dfe5d6;background:#fff;border-radius:8px;padding:10px 14px;display:inline-flex;gap:6px;align-items:center;justify-content:center;font-size:12px;min-height:38px}.text-button{font-size:12px;color:var(--green);padding:6px 0;display:inline-flex;align-items:center;gap:5px}.toolbar{display:flex;align-items:center;gap:16px;margin:26px 0 20px;min-height:35px}.date-nav{display:flex;align-items:center;gap:5px}.square-btn{width:30px;height:32px;border:1px solid var(--line);border-radius:6px;background:white;display:grid;place-items:center}.today-btn{height:32px;border:1px solid var(--line);border-radius:6px;background:white;font-size:11px;padding:0 11px;margin-left:3px}.range-label{font-size:13px;font-weight:550}.week-pill{font-size:10px;color:#8c9581;background:#edf0e6;padding:4px 8px;border-radius:5px;margin-left:2px}.toolbar-right{margin-left:auto;display:flex;align-items:center;gap:11px}.pane-label{font-size:11px;color:#89917f;display:flex;align-items:center;gap:6px}.segmented{display:flex;padding:3px;background:#edf0e7;border:1px solid #e5e9df;border-radius:7px;gap:3px}.segmented button{padding:6px 12px;color:#919886;font-size:11px;border-radius:4px}.segmented button.active{background:#fff;color:#4d6145;box-shadow:0 1px 3px #2b3d1710}.person-strip{display:none;gap:6px;margin:18px 0}.person-filter{flex:1;padding:9px 10px;font-size:11px;border:1px solid #e1e6d9;border-radius:8px;white-space:nowrap;background:#fff}.person-filter.active{background:#e4ebd5;border-color:#bcccaa;color:#405638}.board{display:grid;grid-template-columns:53px repeat(var(--people-count),minmax(0,1fr));border:1px solid #e2e7db;border-radius:13px;background:#fff;overflow:hidden;box-shadow:0 3px 18px #31401a03}.day-rail,.person-pane{display:grid;grid-template-rows:68px var(--row-sizes);min-width:0}.day-rail{background:#fbfcf7}.rail-head{display:grid;place-items:center;color:#abb59b}.day-label{border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:6px}.day-label .weekday{font-size:9px;text-transform:uppercase;font-weight:600;color:#8a947e}.day-label .day-number{font-size:16px;line-height:27px;width:27px;text-align:center;border-radius:8px;color:#606d53;letter-spacing:-.5px}.day-label.is-today .day-number{background:var(--green);color:white}.day-label.is-today .weekday{color:var(--green)}.day-label.weekend{background:#f5f7ee}.person-pane{border-left:1px solid var(--line)}.person-head{display:flex;align-items:center;gap:10px;padding:13px 16px;position:relative;background:#fdfefb;border-top:3px solid var(--person-line)}.person-avatar{width:32px;height:32px;flex-shrink:0;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:650;background:var(--person-bg);color:var(--person-fg)}.person-name{font-size:13px;font-weight:600}.person-meta{font-size:9px;color:#939b8a;margin-top:4px}.person-add{margin-left:auto;color:#9aa58e;padding:4px;display:grid;place-items:center}.day-cell{position:relative;border-top:1px solid var(--line);padding:8px;min-width:0;display:flex;flex-direction:column;gap:5px}.day-cell.weekend{background:#fafbf7}.day-cell.today-cell{background:#fafcf5}.empty-cell{border-radius:7px;color:#bec6b4;text-align:left;font-size:10px;padding:5px 7px;height:100%;min-height:34px;width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.empty-cell .icon{opacity:0;width:14px;height:14px}.empty-cell:hover .icon,.empty-cell:focus-visible .icon{opacity:1}.empty-cell:hover{background:#f3f6eb}.event-card{background:var(--event-bg);color:var(--event-fg);border-radius:7px;border:1px solid var(--event-border);border-left:3px solid var(--event-line);padding:8px 9px 7px;text-align:left;width:100%;min-height:67px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;position:relative}.event-card:hover{box-shadow:0 2px 5px #00000009}.event-time{font-size:9px;font-weight:550;display:flex;align-items:center;gap:5px;opacity:.85}.event-time .icon{height:11px;width:11px}.event-title{font-size:11px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.event-tag{font-size:9px;opacity:.68;display:flex;align-items:center;gap:4px}.event-tag .icon{height:10px;width:10px}.conflict{font-size:9px;display:block;background:#fff8db;color:#866220;padding:3px 5px;border-radius:4px}.day-add{font-size:9px;color:#aab69c;padding:3px 6px;text-align:left;opacity:0}.day-cell:hover .day-add,.day-add:focus-visible{opacity:1}.board-foot{font-size:10px;color:#9aa38e;margin-top:12px;display:flex;align-items:center;gap:5px}.board-foot .icon{width:12px;height:12px}.tasks-section{margin-top:28px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:12px}.section-heading h2{font-size:16px;letter-spacing:-.3px;font-weight:550;display:flex;align-items:center;gap:8px}.section-heading h2 .icon{color:#84956f;width:18px;height:18px}.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.task-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;gap:10px;align-items:flex-start}.task-check{margin-top:1px;flex-shrink:0;width:17px;height:17px;border:1px solid #ccd7bc;border-radius:5px;display:grid;place-items:center;background:#fbfcf8}.task-check .icon{width:12px;height:12px}.task-check.done{background:var(--green);border-color:var(--green);color:white}.task-content{min-width:0;flex:1}.task-due{font-size:9px;color:#8a916a;display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}.task-due.overdue{color:#ad6850}.task-title{font-size:11px;line-height:1.5;color:#526046;font-weight:550}.task-open{text-align:left;padding:0}.task-source{font-size:9px;color:#9ca68e;margin-top:5px;line-height:1.5}.task-owner{display:inline-flex;font-size:9px;background:#f1f4ea;padding:3px 6px;border-radius:4px;color:#82916f;margin-top:8px}.task-card.completed .task-title{text-decoration:line-through;color:#8d9682}.task-list{display:grid;gap:10px;max-width:900px}.task-list .task-card{padding:18px}.task-list .task-title{font-size:13px}.task-list .task-due,.task-list .task-source,.task-list .task-owner{font-size:11px}.tasks-intro{padding:15px 0 25px;font-size:12px;color:#879379}.task-group-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#8b977f;margin:24px 0 12px}.tasks-empty{padding:28px;color:#9aa58e;text-align:center;border:1px dashed #dce4d0;border-radius:10px;font-size:12px}.notice{border:1px solid #e4d3a7;background:#fff9e8;color:#856d35;padding:13px;border-radius:8px;margin:16px 0;font-size:12px;line-height:1.6}.date-input-mobile{display:none}.mobile-settings{display:none}.no-people{padding:24px}.daily .day-cell{min-height:360px;padding:13px;gap:12px}.daily .event-card{padding:13px;min-height:100px}.daily .event-title{font-size:13px}.daily .event-time,.daily .event-tag{font-size:11px}.daily .day-rail,.daily .person-pane{grid-template-rows:68px minmax(380px,auto)}
dialog{border:1px solid #dfe6d6;border-radius:17px;padding:0;width:min(620px,calc(100vw - 32px));max-height:90dvh;color:var(--ink);background:#fcfdf9;box-shadow:0 25px 90px #13241125}dialog::backdrop{background:#25382144;backdrop-filter:blur(3px)}.dialog-header{padding:23px 26px 19px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:15px;background:#f8faf3;position:sticky;top:0;z-index:2}.dialog-header h2{font-size:22px;font-weight:550;letter-spacing:-.5px}.dialog-header .subtitle{line-height:1.6}.close-btn{border:1px solid #dfe6d6;border-radius:7px;width:28px;height:28px;display:grid;place-items:center;background:#fff;flex-shrink:0}.close-btn .icon{width:15px;height:15px}.dialog-body{padding:22px 26px}.dialog-footer{padding:17px 26px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:9px;background:#f8faf3;position:sticky;bottom:0;z-index:2}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field>span,.field>label{font-size:11px;font-weight:600;color:#71815f}input:not([type=checkbox]),select,textarea{width:100%;background:#fff;border:1px solid #dbe3d1;border-radius:7px;padding:10px 11px;color:#374d30;min-width:0;min-height:40px}input[type=checkbox]{accent-color:var(--green)}textarea{resize:vertical;line-height:1.6}.field input::placeholder,textarea::placeholder{color:#aab39d}.inline-check{display:flex;align-items:center;gap:7px;font-size:12px;color:#6c7d5d;margin-bottom:17px}.weekday-checks{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.weekday-checks label{display:flex;align-items:center;gap:3px;font-size:11px}.form-section{border-top:1px solid var(--line);padding-top:18px;margin-top:8px}.form-section h3{font-size:12px;font-weight:600;color:#6b7e5a;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.form-section .text-button{font-size:11px}.dynamic-row{padding:12px;border:1px solid #e4eadc;border-radius:9px;background:#f4f7ee;margin-bottom:10px;position:relative}.dynamic-row .field{margin-bottom:10px}.remove-row{float:right;color:#9b876b;font-size:10px;padding:3px 0}.owners{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px}.owners label{font-size:10px;display:flex;align-items:center;gap:3px}.form-error{padding:12px;background:#fff0e8;border:1px solid #eccfc1;color:#a15e42;border-radius:8px;font-size:12px;margin-bottom:15px;line-height:1.7}.helper{font-size:11px;line-height:1.7;color:#8f9b81;margin:0 0 12px}.summary-title{font-size:23px;letter-spacing:-.6px;line-height:1.3;margin-bottom:18px}.summary-grid{display:grid;grid-template-columns:100px 1fr;gap:14px 10px;font-size:12px;line-height:1.7}.summary-grid dt{color:#8a997b}.summary-grid dd{margin:0;color:#4f6541;overflow-wrap:anywhere}.summary-note{white-space:pre-wrap;font-size:12px;line-height:1.8;color:#6e805f;margin-top:18px;padding:14px;border-radius:8px;background:#f2f6e9}.summary-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.summary-action{border:1px solid #e4eadc;border-radius:8px;padding:12px;line-height:1.7;font-size:12px}.summary-action small{color:#91a17f;display:block}.summary-links{display:flex;flex-direction:column;gap:8px;margin-top:16px;font-size:12px;overflow-wrap:anywhere}.danger{color:#b36b55;border-color:#e9d7ce;background:#fffaf5}.footer-left{margin-right:auto}.settings-group{padding-bottom:22px;margin-bottom:20px;border-bottom:1px solid var(--line)}.settings-group h3{font-size:13px;margin-bottom:8px}.settings-buttons{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);padding:12px 20px;background:#354b2e;color:#f1f6e6;font-size:12px;border-radius:10px;box-shadow:0 5px 25px #1b341325;opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:90vw;line-height:1.5}#toast.visible{opacity:1;transform:translate(-50%,0)}.color-olive{--event-bg:#f0f4e3;--event-fg:#657440;--event-line:#a4b477;--event-border:#e3eacb}.color-blue{--event-bg:#eaf1f7;--event-fg:#4c7090;--event-line:#90b2ce;--event-border:#dce7f1}.color-sand{--event-bg:#f8f1e4;--event-fg:#9c7c43;--event-line:#d5b77b;--event-border:#f0e5ca}.color-sky{--event-bg:#edf5f4;--event-fg:#588380;--event-line:#94c0b9;--event-border:#deedeb}.color-rose{--event-bg:#f8edef;--event-fg:#a96e7d;--event-line:#d29aaa;--event-border:#f1dfe4}.color-lilac{--event-bg:#f1eef8;--event-fg:#8b73a4;--event-line:#b9a6d3;--event-border:#e6dff0}.color-plum{--event-bg:#f2edf5;--event-fg:#8e7498;--event-line:#b79cc3;--event-border:#e8dfed}.color-peach{--event-bg:#faf0e9;--event-fg:#aa8063;--event-line:#d6b096;--event-border:#f2e4d7}
.combined-pane{display:none}
.participants{border:1px solid #e1e8d8;border-radius:8px;padding:12px;margin:0 0 18px}.participants legend{font-size:11px;font-weight:600;color:#71815f;padding:0 4px}.participants .owners{margin:0}.participants .owners label{font-size:12px;min-height:25px}.participants .helper{margin:8px 0 0;font-size:10px}.participants label:has(input:disabled){opacity:.4}.event-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-card{flex-shrink:0}
@media(max-width:900px){.combined-pane[data-mobile-hidden=false]{display:grid}}
@media(min-width:1600px){.content{padding:35px 48px}.day-cell{padding:10px}.event-card{padding:10px 12px}.event-title{font-size:12px}.event-time,.event-tag{font-size:10px}}
@media(max-width:1200px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:28px 16px}.topbar{padding:0 24px}.content{padding:25px 24px}.person-head{padding:12px 10px;gap:7px}.person-avatar{width:28px;height:28px}.pane-label{display:none}.event-card{padding:7px}.event-title{font-size:10px}.event-tag{font-size:8px}.day-cell{padding:6px}.board{grid-template-columns:43px repeat(var(--people-count),minmax(0,1fr))}.person-meta{font-size:8px}.person-add{padding:2px}.heading-row h1{font-size:26px}.toolbar{gap:10px}.task-grid{gap:9px}.task-card{padding:12px}}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{height:63px;padding:0 22px}.breadcrumb{font-size:12px}.breadcrumb:before{content:'Perhe';color:var(--green);font-size:21px;font-weight:650;letter-spacing:-1px;margin-right:9px}.breadcrumb .icon,.breadcrumb>span{display:none}.mobile-settings{display:grid;place-items:center}.topbar-right{gap:10px}.avatar-stack{display:none}.content{padding:25px 22px}.person-strip{display:flex;overflow-x:auto}.date-input-mobile{display:block;width:32px;position:relative}.date-input-mobile input{width:32px;height:32px;padding:0;border:0;background:transparent;font-size:0;color:transparent}.date-input-mobile input::-webkit-calendar-picker-indicator{margin:0;position:absolute;inset:0;width:22px;height:22px;opacity:.4;padding:4px}.range-label{font-size:12px}.toolbar{gap:10px;flex-wrap:wrap}.week-pill{display:none}.board{--people-count:1!important;grid-template-columns:45px minmax(0,1fr)}.person-pane[data-mobile-hidden=true]{display:none}.event-title{font-size:13px}.event-time,.event-tag{font-size:10px}.event-card{padding:10px 12px;min-height:73px}.person-head{padding:12px 16px}.person-meta{font-size:10px}.person-avatar{width:33px;height:33px}.person-name{font-size:14px}.person-add{padding:6px}.day-cell{padding:9px}.empty-cell{font-size:11px}.empty-cell .icon{opacity:.5}.day-add{opacity:.65;font-size:10px}.day-rail,.person-pane{grid-template-rows:68px var(--mobile-row-sizes)}.task-grid{grid-template-columns:1fr}.task-grid .task-card:nth-child(n+4){display:none}.task-title{font-size:12px}.task-due,.task-source,.task-owner{font-size:10px}.day-label{padding-top:14px}.daily .day-rail,.daily .person-pane{grid-template-rows:68px minmax(300px,auto)}.tasks-section{margin-top:25px}.heading-row h1{font-size:27px}.subtitle{line-height:1.6}.topbar .demo-badge{font-size:9px}.person-filter{min-height:36px}.toolbar-right{gap:0}.segmented button{padding:7px 10px}}
@media(max-width:440px){.content{padding:23px 15px}.topbar{padding:0 16px}.heading-row{align-items:flex-start}.heading-row .primary{padding:10px 12px;font-size:11px;min-height:38px}.heading-row h1{font-size:25px}.heading-row .primary .icon{width:15px;height:15px}.toolbar{gap:8px;margin-top:20px}.range-label{font-size:11px}.today-btn{font-size:10px;padding:0 8px}.segmented button{padding:7px 9px;font-size:10px}.person-filter{padding:9px 8px;font-size:10px}.dialog-header,.dialog-body{padding:20px}.dialog-footer{padding:15px 20px}.form-row{gap:9px}.summary-grid{grid-template-columns:80px 1fr}.board-foot{font-size:9px}.breadcrumb strong{display:none}.section-heading h2{font-size:15px}.section-heading .text-button{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Shared calendar and interactive personal phone views. */
.color-mint{--event-bg:#eaf4ee;--event-fg:#528169;--event-line:#93baa2;--event-border:#d9e9de}.color-amber{--event-bg:#fff4db;--event-fg:#997335;--event-line:#d8b367;--event-border:#f0e0b8}.school-card{min-height:95px;background:linear-gradient(120deg,#edf5ef,#f3f8f0);padding:9px 10px}.school-card .event-title{display:flex;align-items:center;gap:5px}.school-card .event-title .icon{width:13px;height:13px}.school-card .event-time{width:100%;justify-content:space-between}.school-subjects{font-size:9px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;opacity:.8}.lesson-count{font-size:8px;padding:2px 5px;border-radius:4px;background:#dcecdf;white-space:nowrap}.lesson-row{width:100%;display:flex;align-items:center;text-align:left;gap:13px;padding:13px 11px;background:#f3f8ef;border:1px solid #dce8d7;border-radius:9px}.lesson-row>span:nth-child(2){flex:1}.lesson-row strong{display:block;font-size:13px}.lesson-row small{display:block;font-size:10px;color:#8c9d80;margin-top:5px}.lesson-time{font-size:13px;font-weight:600;min-width:43px;color:#5b7550}.lesson-row .icon{width:14px}.school-day-list{display:grid;gap:8px;margin-bottom:18px}.exam-row{background:#fff6df;border-color:#e9d7a4}.exam-row strong{color:#947137}.phone-shortcut{display:flex;align-items:center;gap:7px;color:#687e55;font-size:12px}.phone-shortcut .icon{width:17px;height:17px}.local-status.disconnected{color:#a57c4c}.local-status.disconnected:before{background:#d4a453}.sync-caption{font-size:9px;color:#8da37b}.sync-caption.disconnected{color:#b18051}.phone-identity{display:flex;gap:9px;align-items:center}.phone-identity>div{display:flex;flex-direction:column;gap:3px}.phone-identity strong{font-size:12px;font-weight:650}.phone-identity>div>span{font-size:9px;color:#8a9b7c}.phone-sync-dot{height:6px;width:6px;background:#89a972;border-radius:50%}.phone-calendar-tools{display:flex;justify-content:space-between;align-items:center;margin:-9px 0 12px}.phone-calendar-tools .text-button{font-size:10px}.phone-calendar-tools .icon{width:13px;height:13px}.personal-phone .topbar{height:62px;padding:0 18px}.personal-phone .content{padding:22px 15px}.personal-phone .heading-row h1{font-size:27px}.personal-phone .eyebrow{font-size:9px;letter-spacing:1px}.personal-phone .subtitle{font-size:10px;margin-top:6px}.personal-phone .heading-row .primary{font-size:11px;padding:9px 12px;margin-top:15px}.personal-phone .toolbar{margin:19px 0 19px;gap:8px}.personal-phone .toolbar .range-label{display:none}.personal-phone .toolbar .toolbar-right{margin-left:auto}.personal-phone .toolbar .square-btn{width:28px}.personal-phone .phone-calendar-tools .text-button{min-height:25px}.personal-phone .person-head{height:48px;padding:8px 11px;border-top-width:2px;gap:7px}.personal-phone .person-head .person-avatar{width:24px;height:24px;border-radius:7px;font-size:10px}.personal-phone .person-head .person-name{font-size:12px}.personal-phone .person-meta{font-size:8px}.personal-phone .day-rail,.personal-phone .person-pane{grid-template-rows:48px var(--mobile-row-sizes)}.personal-phone .board.daily .day-rail,.personal-phone .board.daily .person-pane{grid-template-rows:48px auto}.personal-phone .board.daily .day-cell{min-height:160px;gap:8px;padding:9px}.personal-phone .daily .event-card{padding:10px;min-height:78px}.personal-phone .daily .event-title{font-size:12px}.personal-phone .daily .event-time,.personal-phone .daily .event-tag{font-size:9px}.personal-phone .school-subjects{font-size:9px}.personal-phone .daily .school-card{min-height:102px}.personal-phone .daily .empty-cell{min-height:100px}.personal-phone .tasks-section{margin-top:22px}.personal-phone .section-heading h2{font-size:13px}.personal-phone .section-heading .text-button{font-size:9px}.personal-phone .task-grid{gap:8px}.personal-phone .task-card{padding:12px}.personal-phone .board-foot{font-size:9px;line-height:1.7}.personal-phone input:not([type=checkbox]),.personal-phone select,.personal-phone textarea{font-size:16px}.personal-phone .mobile-settings{min-height:32px;min-width:28px}.phone-gallery-shell{display:block;min-height:100vh;background:#f4f6ef}.phone-gallery-shell .topbar{height:83px;padding:0 42px;background:#fcfdf9}.phone-gallery-shell .brand{font-size:25px}.gallery-nav{display:flex;gap:8px}.gallery-nav .secondary,.gallery-nav .primary{font-size:11px;min-height:36px}.gallery-content{max-width:1720px;margin:0 auto;padding:33px 42px 24px}.gallery-content .heading-row h1{font-size:28px;font-weight:550;letter-spacing:-.8px}.gallery-content .subtitle{font-size:12px;line-height:1.7}.phone-gallery-note{display:flex;gap:24px;font-size:10px;color:#95a485;margin:18px 0 28px}.phone-gallery-note span{display:flex;align-items:center;gap:6px}.phone-gallery-note span:before{content:'';height:4px;width:4px;border-radius:50%;background:#a3b28a}.phones-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.phone-preview{min-width:0}.phone-preview-header{display:flex;align-items:center;gap:10px;padding:0 4px;margin-bottom:14px}.phone-preview-header .person-avatar{height:29px;width:29px;font-size:11px}.phone-preview-header h2{font-size:14px;font-weight:600}.phone-preview-header p{font-size:9px;margin-top:4px;color:#91a080}.phone-open{margin-left:auto;text-decoration:none;color:#8b9b79;font-size:18px;padding:3px 6px}.phone-hardware{border:6px solid #35432f;border-radius:31px;background:#35432f;box-shadow:0 13px 27px #3c4e2d18,0 1px 1px #ffffff;overflow:hidden;padding-top:13px;padding-bottom:6px;position:relative}.phone-speaker{position:absolute;top:4px;left:calc(50% - 18px);width:36px;height:4px;border-radius:5px;background:#172211}.phone-screen{width:100%;aspect-ratio:390/780;overflow:hidden;position:relative;border-radius:19px;background:#fbfcf8}.phone-frame{width:390px;height:780px;display:block;border:0;transform-origin:top left;background:#f7f8f4}.gallery-footnote{text-align:center;font-size:10px;color:#9ba58c;margin-top:24px;line-height:1.7}.school-card .event-tag .icon{height:10px;width:10px}
@media(min-width:1600px){.phone-gallery-shell .topbar{padding:0 55px}.gallery-content{padding:36px 55px 28px}.phones-grid{gap:36px}}
@media(max-width:1200px){.gallery-content{padding:25px 25px}.phone-gallery-shell .topbar{padding:0 25px}.phones-grid{gap:15px}.phone-preview-header{gap:6px}.phone-preview-header p{font-size:8px}.phone-hardware{border-width:5px;border-radius:26px}.phone-screen{border-radius:15px}.phone-gallery-note{gap:17px}.phone-gallery-shell .local-status{font-size:9px}.gallery-content .heading-row h1{font-size:24px}}
@media(max-width:900px){.gallery-content{padding:24px 16px}.phone-gallery-shell .topbar{padding:0 18px;height:70px}.phone-gallery-shell .local-status{display:none}.phone-gallery-shell .brand{font-size:23px}.phone-gallery-shell .brand-mark{padding:8px}.phones-grid{gap:10px}.phone-preview-header .person-avatar{display:none}.phone-preview-header p{display:none}.phone-preview-header h2{font-size:12px}.phone-preview-header{padding:0 4px;gap:3px}.phone-hardware{border-width:4px;border-radius:19px;padding-top:12px}.phone-screen{border-radius:11px}.phone-gallery-note{gap:12px;flex-wrap:wrap;font-size:9px;margin-bottom:20px}.phone-gallery-note span:last-child{display:none}.gallery-content .heading-row h1{font-size:22px}.gallery-content .heading-row .secondary{font-size:10px;padding:8px}.gallery-content .subtitle{font-size:11px}.phone-shortcut{font-size:0;gap:0}.phone-shortcut .icon{width:18px}}
@media(max-width:540px){.gallery-content .heading-row{flex-direction:column;align-items:flex-start}.gallery-nav{gap:4px}.gallery-nav button{font-size:9px!important;padding:8px!important;gap:4px}.gallery-nav .icon{width:13px;height:13px}.phone-gallery-shell .brand{font-size:18px}.phone-gallery-shell .brand-mark{display:none}.phones-grid{gap:6px}.phone-hardware{border-width:3px;border-radius:13px}.phone-screen{border-radius:7px}.phone-open{font-size:13px;padding:2px}.phone-preview-header h2{font-size:10px}.phone-speaker{width:20px;left:calc(50% - 10px)}.phone-preview-header{padding:0;gap:0}}
.personal-phone #app{max-width:430px;margin:0 auto}.personal-phone .shell{display:block;min-height:100dvh}.personal-phone .sidebar{display:none}.personal-phone .board{grid-template-columns:45px minmax(0,1fr)!important}.personal-phone .task-grid{grid-template-columns:1fr}.personal-phone .mobile-settings{display:grid;place-items:center}.personal-phone .date-input-mobile{display:block}.personal-phone .pane-label,.personal-phone .week-pill{display:none}
/* Parents can independently choose calendar participants and task owners. */
.person-strip{display:flex;max-width:620px}.event-entry-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.voice-entry{display:grid;place-items:center;min-height:40px;width:40px;border:1px solid #cfdbc3;border-radius:10px;background:#eef3e6;color:var(--green)}.parent-controls{max-width:620px;margin:18px 0 14px}.scope-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#839174;margin-bottom:8px}.scope-heading>span:first-child{font-weight:650;color:#647655}.scope-heading>span:last-child{font-size:9px}.scope-segments{display:flex;gap:4px;padding:4px;border:1px solid #dde6d4;background:#edf2e6;border-radius:10px}.scope-segments button{flex:1;min-height:36px;border-radius:7px;font-size:11px;color:#849279;white-space:nowrap;padding:6px}.scope-segments button.active{background:#fff;color:#415b38;box-shadow:0 1px 4px #30452112;font-weight:600}.child-filters{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.child-filters button{font-size:10px;min-height:30px;padding:6px 10px;border:1px solid #e1e7da;border-radius:20px;background:#fbfcf8;color:#8c9981}.child-filters button.active{border-color:#b6c99d;background:#e7efdb;color:#4f663e}.tasks-section .parent-controls{margin:0 0 14px}.week-direction{margin-left:5px;font-size:12px;color:#7e9269}.week-layout-hint{font-size:10px;color:#8d9b7f;margin:-6px 0 12px;line-height:1.6}.focused-board .event-tag{flex-wrap:wrap}.focused-board .day-rail,.focused-board .person-pane{grid-template-rows:68px var(--mobile-row-sizes)}.focused-board.daily .day-rail,.focused-board.daily .person-pane{grid-template-rows:68px minmax(300px,auto)}.focused-board .event-card{max-width:780px}.focused-board .event-title{font-size:13px}.phone-owner-toolbar{display:none}.personal-phone .event-entry-actions{margin-top:12px;gap:6px}.personal-phone .heading-row .event-entry-actions .primary{margin:0;padding:9px 10px}.personal-phone .voice-entry{min-height:38px;width:34px}.personal-phone .heading-row h1{font-size:25px}.personal-phone .heading-row .subtitle{max-width:205px}.personal-phone .parent-controls{margin:18px 0 14px}.personal-phone .tasks-section .parent-controls{margin:0 0 14px}.personal-phone .parent-controls + .toolbar{margin-top:15px}.personal-phone .scope-segments button{min-height:37px;font-size:10px}.personal-phone .child-filters button{min-height:32px}.personal-phone .person-name{overflow-wrap:anywhere}.personal-phone .person-head .person-name{font-size:11px}.personal-phone .week-layout-hint{font-size:9px}.personal-phone .task-check{width:27px;height:27px}.personal-phone .calendar-toggle{min-height:32px}.personal-phone .calendar-toggle input{width:18px;height:18px}.personal-phone .calendar-toggle input:checked:after{left:3px;top:1px;font-size:12px}
/* A horizontal week keeps the page in place and scrolls its seven day columns. */
.board.horizontal-board,.personal-phone .board.horizontal-board{display:block;max-width:100%;grid-template-columns:none!important}.horizontal-context{display:flex;align-items:center;gap:8px;background:#f6f9f0;border-bottom:1px solid var(--line);padding:14px 16px;font-size:12px;color:#60774f}.horizontal-context span{margin-left:auto;font-size:10px;font-weight:400;color:#8f9e82}.horizontal-context .icon{width:16px;height:16px}.week-scroll{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-color:#b5c89d #f0f4e8;scrollbar-width:thin;padding-bottom:8px}.week-scroll:focus-visible{outline:2px solid #9eb881;outline-offset:-3px}.week-columns{display:grid;grid-template-columns:repeat(7,minmax(210px,1fr));align-items:stretch;min-width:1470px}.week-column{scroll-snap-align:start;border-right:1px solid var(--line);min-width:0;background:#fff}.week-column:last-child{border-right:0}.week-column.weekend{background:#fafbf6}.week-column.is-today{background:#f8fbf1}.week-day-heading{display:flex;align-items:center;gap:9px;min-height:61px;padding:12px 13px;width:100%;text-align:left;border-bottom:1px solid var(--line);color:#768668}.week-day-heading>span{font-size:11px}.week-day-heading strong{font-size:19px;font-weight:550;border-radius:8px;padding:4px 7px}.week-day-heading small{font-size:9px;margin-left:auto}.is-today .week-day-heading strong{background:var(--green);color:white}.week-day-events{padding:9px;display:flex;flex-direction:column;gap:8px}.week-day-events .event-card{padding:10px;min-height:82px}.week-day-events .event-title{font-size:12px}.week-day-events .event-time,.week-day-events .event-tag{font-size:10px}.week-day-events .event-tag{flex-wrap:wrap}.week-day-events .school-card{min-height:111px}.week-day-events .school-card .event-title{font-size:11px}.week-day-events .day-add{opacity:1;min-height:35px;font-size:10px;color:#81966b;border:1px dashed #dce5d0;border-radius:7px;padding:8px}.week-empty{font-size:11px;color:#a2af95;padding:12px 4px}.personal-phone .week-columns{grid-template-columns:repeat(7,255px);min-width:1785px}.personal-phone .horizontal-context{padding:12px;font-size:11px}.personal-phone .week-day-events .event-title{font-size:12px}.personal-phone .week-day-events .event-tag{font-size:10px}.personal-phone .week-day-events .school-subjects{font-size:10px}
/* Voice entry is an explicit interaction mock; it never asks for audio access. */
.editor-voice{width:100%;display:flex;align-items:center;gap:8px;padding:12px;border:1px dashed #c5d5b4;border-radius:9px;background:#f2f6eb;color:#627c4c;font-size:12px;margin-bottom:20px}.editor-voice>span{margin-left:auto;font-size:9px;color:#91a07f}.voice-body{text-align:center}.voice-orb{display:grid;place-items:center;width:76px;height:76px;margin:2px auto 24px;border:1px solid #d4e0c6;background:#eaf2df;color:#627d4d;border-radius:50%}.voice-orb>.icon{width:30px;height:30px}.voice-orb.listening{background:#dcebc9;box-shadow:0 0 0 9px #edf4e5,0 0 0 18px #f5f8ef}.voice-status h3{font-size:18px;font-weight:550;letter-spacing:-.3px}.voice-status p{font-size:11px;color:#89987a;line-height:1.7;margin-top:8px}.voice-body blockquote{font-size:14px;line-height:1.8;color:#6a7e58;margin:20px 0 14px;padding:17px;background:#f1f5e9;border-radius:11px}.voice-wave{height:58px;display:flex;align-items:center;justify-content:center;gap:5px}.voice-wave i{display:block;width:4px;height:var(--bar);background:#b8cca2;border-radius:4px;opacity:.5}.voice-wave.moving i{opacity:1;animation:voice-pulse .85s ease-in-out infinite alternate;animation-delay:var(--delay)}@keyframes voice-pulse{to{transform:scaleY(.35);opacity:.5}}.voice-example{text-align:left;padding:16px;border:1px solid #dde6d2;border-radius:10px;background:white;margin-bottom:14px}.voice-example .field{margin-bottom:12px}.voice-example p{font-size:12px;color:#7d906b;margin-top:9px}.voice-example .icon{width:14px;height:14px;margin-right:5px}@media(prefers-reduced-motion:reduce){.voice-wave.moving i{animation:none}}@media(max-width:440px){.voice-body{padding:22px 20px}.voice-status h3{font-size:16px}.voice-body blockquote{font-size:12px}.voice-orb{width:62px;height:62px}.voice-orb>.icon{width:26px;height:26px}.dialog-footer:has([data-action^="voice-"]){gap:7px}.dialog-footer:has([data-action^="voice-"]) button{font-size:10px;padding:10px 9px}.voice-entry{min-width:32px}.event-entry-actions{gap:5px}.heading-row .event-entry-actions .primary{padding:10px}}
/* Gemini dictation: recorded clip -> editable transcript -> reviewed proposal. */
.ai-body .notice{margin:0 0 14px}.ai-status-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px;font-size:10px;color:#8b9a7c}.ai-provider{display:inline-flex;gap:5px;align-items:center;font-weight:600;color:#698152}.ai-provider .icon{width:14px;height:14px}.ai-recorder{text-align:center;border:1px solid #dfe8d5;border-radius:13px;background:#f5f8ef;padding:22px 20px 10px;margin-bottom:22px}.ai-recorder .voice-orb{width:60px;height:60px;margin-bottom:18px}.ai-recorder .voice-orb .icon{width:26px;height:26px}.ai-recorder .voice-status h3{font-size:17px}.ai-recorder .voice-status p{margin-bottom:15px}.ai-recorder audio{width:100%;height:40px;margin:18px 0 10px;display:block}.ai-privacy{font-size:10px;line-height:1.6;color:#8c9b7d;margin:14px 0 5px}.recording-stop{background:#9c5f4d;border-color:#9c5f4d}.ai-info{font-size:12px;line-height:1.6;color:#7e8950;background:#f2f1df;padding:12px;border-radius:8px;margin-bottom:15px}.ai-clarification{padding:17px;border:1px solid #dfd4ad;border-radius:10px;background:#faf6e7;margin-bottom:18px}.ai-clarification h3{font-size:14px;color:#827345}.ai-clarification ul{padding-left:18px;font-size:12px;line-height:1.7;color:#8b7f5b}.ai-clarification .field{margin-bottom:0}.ai-review-label{font-size:11px;color:#7c8c66;margin-bottom:15px}.ai-body textarea{font-size:15px}.ai-body .transcribe-button{background:#e8efdc;border-color:#c4d3b2;color:#526a3f}.personal-phone .ai-status-line{align-items:flex-start;flex-direction:column;gap:6px}.personal-phone .ai-recorder{padding:20px 12px 10px}.personal-phone .ai-recorder .voice-status h3{font-size:16px}.personal-phone .ai-body{padding:18px}.personal-phone .dialog-footer:has([data-action="ai-parse"]){padding:12px;gap:6px}.personal-phone .dialog-footer:has([data-action="ai-parse"]) button{font-size:10px;padding:10px 9px}.personal-phone .dialog-footer:has([data-action="voice-revise"]){flex-wrap:wrap}

.mobile-share-link{text-decoration:none}
.environment-bar{min-height:29px;padding:6px 22px;background:#e7eed9;color:#526a40;display:flex;gap:14px;align-items:center;font-size:10px;border-bottom:1px solid #d5dfc9;letter-spacing:.3px}.environment-bar strong{text-transform:uppercase;letter-spacing:1px}.environment-bar small{margin-left:auto;font-size:9px;color:#768569}body[data-environment="lab"] .environment-bar{background:#fff0cd;color:#84652a}body[data-environment="family"] .environment-bar{background:#dfece8;color:#3e6756}.access-shell{max-width:500px;margin:50px auto;padding:30px}.access-shell .brand{margin-bottom:35px}.access-shell h1{font-size:29px;line-height:1.2;letter-spacing:-1px;margin-bottom:17px}.access-form{margin-top:24px}.access-pair{margin-top:25px}.access-pair summary{cursor:pointer;margin-bottom:18px}.access-shell .primary{width:100%}.lab-controls{border:1px solid #e2d2a5;border-radius:12px;background:#fffbf0;padding:16px;margin:20px 0;font-size:12px}.lab-controls p{margin-top:5px;color:#8b7f60}.lab-controls>div:last-child{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}@media(max-width:600px){.environment-bar{padding:7px 13px;gap:8px;font-size:9px}.environment-bar small{display:none}.environment-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-shell{margin:15px auto;padding:25px}.lab-controls .secondary{font-size:11px}}

.wilma-preview{max-height:350px;overflow:auto}.wilma-preview-row{display:grid;gap:4px;border-bottom:1px solid var(--line,#dce5d3);padding:12px 0}.wilma-preview-row time,.wilma-preview-row span{font-size:12px;color:#64765b}.source-label{font-size:10px;color:#496955}#wilma-error,#wilma-import-error{color:#9d443a;font-size:13px}

/* Appearance: edit these tokens to tune the presets; event/person colours are separate. */
:root {
  --app-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --page-bg: #f7f8f4;
  --surface: #ffffff;
  --sidebar-bg: #f2f4ec;
  --accent-soft: #e3e9d5;
  --focus: #78964a;
  font-family: var(--app-font);
  color: var(--ink);
  background: var(--page-bg);
}
:root[data-palette="ocean"] {
  --green: #365b77;
  --ink: #243746;
  --muted: #647783;
  --line: #dce5eb;
  --soft: #edf3f8;
  --page-bg: #f3f7fa;
  --sidebar-bg: #eaf1f6;
  --accent-soft: #d9e7f2;
  --focus: #477d9f;
}
:root[data-palette="rose"] {
  --green: #794858;
  --ink: #423238;
  --muted: #806c74;
  --line: #eadddf;
  --soft: #faf1f3;
  --page-bg: #faf5f5;
  --sidebar-bg: #f4e9ed;
  --accent-soft: #edd8e0;
  --focus: #ad657f;
}
:root[data-font="rounded"] { --app-font: "Avenir Next", Avenir, "Trebuchet MS", sans-serif; }
:root[data-font="serif"] { --app-font: Georgia, "Times New Roman", serif; }
.sidebar { background: var(--sidebar-bg); border-color: var(--line); }
.topbar, #dialog, .secondary { background: var(--surface); }
.secondary { border-color: var(--line); }
.phone-gallery-shell { background: var(--page-bg); }
.nav-btn { color: var(--muted); }
.nav-btn.active, .appearance-sample-tag { background: var(--accent-soft); color: var(--green); }
.brand-sub, .subtitle, .helper { color: var(--muted); }
.dialog-header { background: var(--page-bg); }
.eyebrow, .field > span { color: var(--muted); }
.field input, .field select, .field textarea { color: var(--ink); border-color: var(--line); }
.person-filter.active { background: var(--accent-soft); color: var(--green); }
.segmented, .scope-segments, .dialog-footer, .horizontal-context { background: var(--soft); border-color: var(--line); }
.scope-segments button.active, .segmented button.active { color: var(--green); }
.child-filters button.active { background: var(--accent-soft); color: var(--green); border-color: var(--line); }
.voice-entry, .editor-voice, .ai-recorder, .voice-orb { background: var(--soft); color: var(--green); border-color: var(--line); }
button:focus-visible, a:focus-visible, input:focus, select:focus, textarea:focus { outline-color: var(--focus); }
.appearance-sample { background: var(--soft); border: 1px solid var(--line); border-radius: 14px; padding: 24px; margin-bottom: 24px; }
.appearance-sample h3 { font-size: 24px; letter-spacing: -.5px; margin: 8px 0; }
.appearance-sample p { color: var(--muted); font-size: 13px; line-height: 1.6; }
.appearance-sample-tag { display: inline-block; font-size: 12px; padding: 8px 12px; border-radius: 8px; margin-top: 18px; }
.appearance-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
#appearance-status { min-height: 20px; margin-top: 12px; }
html[data-corners="soft"] { --card-radius: 18px; --control-radius: 14px; }
html[data-corners="square"] { --card-radius: 3px; --control-radius: 3px; }
html:is([data-corners="soft"], [data-corners="square"]) :is(.board, .event-card, .task-card, #dialog, .appearance-sample) { border-radius: var(--card-radius); }
html:is([data-corners="soft"], [data-corners="square"]) :is(.primary, .secondary, .voice-entry, .field input, .field select, .field textarea, .appearance-sample-tag) { border-radius: var(--control-radius); }
html[data-spacing="airy"] .day-cell { gap: 10px; padding: 12px; }
html[data-spacing="airy"] .event-card { padding: 15px 12px; gap: 7px; }
html[data-spacing="airy"] .task-card { padding: 20px; }
@media (max-width: 440px) {
  .appearance-sample { padding: 18px; }
  .appearance-sample h3 { font-size: 21px; }
  .appearance-fields { gap: 0 12px; }
  #dialog:has(.appearance-body) .dialog-footer { flex-wrap: wrap; }
}
/* Source school instructions retain paragraphs; long assignments expand in details. */
.school-instructions { white-space:pre-wrap; overflow-wrap:anywhere; margin:6px 0; }
.school-task-text { white-space:pre-wrap; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; font-size:13px; font-weight:400; margin:6px 0; }
#school-review .wilma-preview { max-height:320px; overflow:auto; }
#school-connect p { line-height:1.65; }
.lab-controls .primary + .secondary { margin-left:8px; }
