:root,
[data-theme="nefelaki"]{
  --bg:#04100E;--bg-2:#0D2B27;--surface:#10352F;--surface-2:#164036;--surface-3:#1D4D42;
  --text:#F2EDE8;--text-2:#D7EDE1;--muted:#9BC7B1;--accent:#46B07F;--accent-2:#78C89F;
  --border:rgba(120,200,159,.22);--danger:#E27676;--warning:#E6B86B;--success:#46B07F;--info:#78B9C8;
  --shadow:0 22px 60px rgba(0,0,0,.28);--shadow-soft:0 10px 28px rgba(0,0,0,.18);--glow:0 0 0 1px rgba(70,176,127,.16),0 18px 50px rgba(3,18,15,.35);
  --hero:radial-gradient(circle at 12% 8%,rgba(70,176,127,.18),transparent 32%),linear-gradient(145deg,#04100E,#0D2B27 52%,#164036);
}
[data-theme="aegean"]{--bg:#061821;--bg-2:#0D2D3A;--surface:#103B49;--surface-2:#174C5B;--surface-3:#1B5A69;--text:#F3F8F8;--text-2:#D7EBED;--muted:#8FBEC6;--accent:#44B9C5;--accent-2:#7AD8D6;--border:rgba(122,216,214,.22);--danger:#E07777;--warning:#E5B85C;--success:#50BE9E;--info:#6DB7E8;--hero:linear-gradient(145deg,#061821,#0D2D3A 55%,#174C5B)}
[data-theme="midnight-plum"]{--bg:#120B18;--bg-2:#25152B;--surface:#321C39;--surface-2:#45264E;--surface-3:#57305F;--text:#F6EEF8;--text-2:#E7D6EB;--muted:#C3A4C9;--accent:#B26CC8;--accent-2:#D7A2E0;--border:rgba(215,162,224,.22);--danger:#F07B8F;--warning:#EBC170;--success:#72C99A;--info:#90B9EB;--hero:linear-gradient(145deg,#120B18,#25152B 58%,#45264E)}
[data-theme="graphite-mint"]{--bg:#101413;--bg-2:#1A2320;--surface:#202B27;--surface-2:#2B3933;--surface-3:#34463E;--text:#F3F5F3;--text-2:#DCE8E1;--muted:#A2B8AD;--accent:#64C49A;--accent-2:#9BE0BF;--border:rgba(155,224,191,.2);--danger:#E47C7C;--warning:#D9B765;--success:#64C49A;--info:#80B8D4;--hero:linear-gradient(145deg,#101413,#1A2320 58%,#2B3933)}
[data-theme="terracotta"]{--bg:#1B100D;--bg-2:#35201A;--surface:#432821;--surface-2:#5A352A;--surface-3:#704335;--text:#FFF4EC;--text-2:#F1DDD0;--muted:#D0AA96;--accent:#D97757;--accent-2:#E8A482;--border:rgba(232,164,130,.22);--danger:#E66F6F;--warning:#E0B35E;--success:#72B784;--info:#78AFC4;--hero:linear-gradient(145deg,#1B100D,#35201A 55%,#5A352A)}
[data-theme="indigo-cloud"]{--bg:#0D1020;--bg-2:#191E37;--surface:#222946;--surface-2:#2C3557;--surface-3:#374269;--text:#F5F5FA;--text-2:#DEE2F5;--muted:#A7B0D2;--accent:#7E89E8;--accent-2:#AAB3F1;--border:rgba(170,179,241,.22);--danger:#EB7D92;--warning:#DDBB67;--success:#6BC79F;--info:#76B9E8;--hero:linear-gradient(145deg,#0D1020,#191E37 55%,#2C3557)}
[data-theme="saffron"]{--bg:#17120A;--bg-2:#2C2413;--surface:#39301A;--surface-2:#4B3E20;--surface-3:#5D4C27;--text:#FFF9E8;--text-2:#F2E7C5;--muted:#CBBE91;--accent:#D8A72B;--accent-2:#EBCB6A;--border:rgba(235,203,106,.22);--danger:#E57870;--warning:#D8A72B;--success:#7BB980;--info:#7BAEC7;--hero:linear-gradient(145deg,#17120A,#2C2413 55%,#4B3E20)}
[data-theme="rosewood"]{--bg:#170C0E;--bg-2:#30161B;--surface:#3D1D23;--surface-2:#50252D;--surface-3:#64303A;--text:#FFF3F4;--text-2:#F0D9DD;--muted:#C9A1A8;--accent:#C95E74;--accent-2:#E392A4;--border:rgba(227,146,164,.22);--danger:#EE6B73;--warning:#E0AE60;--success:#76BB8B;--info:#81AFCB;--hero:linear-gradient(145deg,#170C0E,#30161B 55%,#50252D)}
[data-theme="ice-blue"]{--bg:#07141C;--bg-2:#112A36;--surface:#173643;--surface-2:#1E4656;--surface-3:#275768;--text:#F2FAFC;--text-2:#D8EEF3;--muted:#9FC5CE;--accent:#59B9D0;--accent-2:#94D6E4;--border:rgba(148,214,228,.22);--danger:#E77980;--warning:#DCB35F;--success:#60BD9B;--info:#59B9D0;--hero:linear-gradient(145deg,#07141C,#112A36 55%,#1E4656)}
[data-theme="olive-paper"]{--bg:#12150D;--bg-2:#252A19;--surface:#303621;--surface-2:#3E4729;--surface-3:#4C5833;--text:#F6F3E8;--text-2:#E9E4D0;--muted:#B8B49B;--accent:#8FA85A;--accent-2:#B7C882;--border:rgba(183,200,130,.22);--danger:#D87B70;--warning:#D0AD5A;--success:#8FA85A;--info:#83AFC3;--hero:linear-gradient(145deg,#12150D,#252A19 55%,#3E4729)}
[data-theme="ruby-night"]{--bg:#15080C;--bg-2:#2C1119;--surface:#3B1721;--surface-2:#4D1F2B;--surface-3:#602736;--text:#FFF2F4;--text-2:#EED8DD;--muted:#C8A0AA;--accent:#D94D6A;--accent-2:#F08AA0;--border:rgba(240,138,160,.22);--danger:#F05C70;--warning:#E4B258;--success:#73BE8F;--info:#80AED1;--hero:linear-gradient(145deg,#15080C,#2C1119 55%,#4D1F2B)}
[data-theme="cobalt"]{--bg:#09101E;--bg-2:#102342;--surface:#162E55;--surface-2:#1E3B69;--surface-3:#284B80;--text:#F2F6FF;--text-2:#D9E4F8;--muted:#9EB4D5;--accent:#4C84E8;--accent-2:#83AAEF;--border:rgba(131,170,239,.22);--danger:#E57583;--warning:#DBB45E;--success:#67BF99;--info:#62A9E8;--hero:linear-gradient(145deg,#09101E,#102342 55%,#1E3B69)}
[data-theme="lavender"]{--bg:#120F1A;--bg-2:#252036;--surface:#312A46;--surface-2:#40375B;--surface-3:#50446F;--text:#F8F4FF;--text-2:#E6DFF2;--muted:#B6A9CC;--accent:#9A7AD6;--accent-2:#C2A9E9;--border:rgba(194,169,233,.22);--danger:#E8788C;--warning:#DDB761;--success:#75C19A;--info:#81B3DD;--hero:linear-gradient(145deg,#120F1A,#252036 55%,#40375B)}
[data-theme="sandstone"]{--bg:#17130F;--bg-2:#2B241D;--surface:#383027;--surface-2:#493D31;--surface-3:#5A4B3B;--text:#FFF8EE;--text-2:#EEE2D3;--muted:#C2AF9A;--accent:#C69668;--accent-2:#DCB88F;--border:rgba(220,184,143,.22);--danger:#DF786F;--warning:#D9AC5F;--success:#80B789;--info:#82AEC0;--hero:linear-gradient(145deg,#17130F,#2B241D 55%,#493D31)}
[data-theme="monochrome"]{--bg:#0B0C0D;--bg-2:#181A1C;--surface:#222528;--surface-2:#2D3134;--surface-3:#393E42;--text:#FAFAFA;--text-2:#E6E7E8;--muted:#ACB0B3;--accent:#D7DADB;--accent-2:#F0F1F2;--border:rgba(240,241,242,.18);--danger:#E07B7B;--warning:#D6B46B;--success:#8FB99F;--info:#8AAEC0;--hero:linear-gradient(145deg,#0B0C0D,#181A1C 55%,#2D3134)}
[data-theme="neon-lab"]{--bg:#07110F;--bg-2:#10231E;--surface:#153128;--surface-2:#1C4134;--surface-3:#245343;--text:#F3FFF8;--text-2:#D8F8E6;--muted:#92CFAF;--accent:#39E58C;--accent-2:#83F2BB;--border:rgba(131,242,187,.23);--danger:#FF6F81;--warning:#F0C44F;--success:#39E58C;--info:#64C9E8;--hero:radial-gradient(circle at 20% 0,rgba(57,229,140,.2),transparent 35%),linear-gradient(145deg,#07110F,#10231E 60%,#1C4134)}
[data-theme="autumn"]{--bg:#160E09;--bg-2:#2D1C12;--surface:#3A2518;--surface-2:#4B301F;--surface-3:#5C3C27;--text:#FFF5E9;--text-2:#F0DDC7;--muted:#C5A98C;--accent:#C8793F;--accent-2:#E2A36E;--border:rgba(226,163,110,.22);--danger:#DF7067;--warning:#D4A54E;--success:#78B781;--info:#82AEC0;--hero:linear-gradient(145deg,#160E09,#2D1C12 55%,#4B301F)}
[data-theme="sunset-coral"]{--bg:#170D11;--bg-2:#311922;--surface:#40212B;--surface-2:#542B37;--surface-3:#663744;--text:#FFF3EF;--text-2:#F1DBD5;--muted:#C9A39D;--accent:#E17765;--accent-2:#F0A291;--border:rgba(240,162,145,.22);--danger:#EE6F72;--warning:#DBAE58;--success:#78BB8D;--info:#82AEC8;--hero:linear-gradient(145deg,#170D11,#311922 55%,#542B37)}
[data-theme="deep-ocean"]{--bg:#041017;--bg-2:#092731;--surface:#0D3440;--surface-2:#124452;--surface-3:#175563;--text:#F0FBFC;--text-2:#D4EEF1;--muted:#8CBBC1;--accent:#2E9FB0;--accent-2:#69C6D1;--border:rgba(105,198,209,.22);--danger:#DD727E;--warning:#D6AE5A;--success:#5FBA96;--info:#4FB8D0;--hero:linear-gradient(145deg,#041017,#092731 55%,#124452)}

*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--hero);background-attachment:fixed;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;min-height:100vh;letter-spacing:.005em} button,input,select,textarea{font:inherit} a{color:inherit;text-decoration:none} img{max-width:100%}
::selection{background:var(--accent);color:#06140f}

.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 18px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(22px);z-index:40}.brand-mini{display:flex;align-items:center;gap:12px;padding:8px 8px 22px}.brand-mini img{width:48px;height:48px;border-radius:15px;object-fit:cover;box-shadow:var(--shadow-soft)}.brand-name{font-size:1.06rem;font-weight:850;letter-spacing:-.02em}.brand-name span{color:var(--accent)}.brand-sub{font-size:.75rem;color:var(--muted);margin-top:3px}.nav{display:grid;gap:6px}.nav button,.nav a{appearance:none;border:0;background:transparent;color:var(--text-2);padding:12px 13px;border-radius:14px;text-align:left;display:flex;align-items:center;gap:11px;cursor:pointer;font-weight:700;transition:.18s ease}.nav button:hover,.nav a:hover,.nav .active{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,transparent),color-mix(in srgb,var(--surface-2) 70%,transparent));color:var(--text);transform:translateX(2px)}.nav .nav-icon{width:22px;display:inline-grid;place-items:center;color:var(--accent)}.sidebar-footer{position:absolute;bottom:20px;left:18px;right:18px}.user-chip{display:flex;align-items:center;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.avatar{width:38px;height:38px;border-radius:13px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:var(--bg);font-weight:900}.user-chip .meta{min-width:0}.user-chip .meta strong,.user-chip .meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip small{color:var(--muted);margin-top:2px}

.main{min-width:0}.topbar{position:sticky;top:0;z-index:35;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:color-mix(in srgb,var(--bg) 68%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(24px)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.mobile-menu{display:none}.page-title{font-weight:850;font-size:1.16rem;letter-spacing:-.02em}.page-kicker{font-size:.78rem;color:var(--muted);margin-top:3px}.content{padding:26px 28px 48px;max-width:1800px;margin:0 auto}

.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:13px;padding:10px 14px;font-weight:800;cursor:pointer;transition:.18s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft);border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--bg);border-color:transparent}.btn-soft{background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--text)}.btn-danger{background:color-mix(in srgb,var(--danger) 18%,var(--surface));color:#fff;border-color:color-mix(in srgb,var(--danger) 42%,var(--border))}.btn-ghost{background:transparent}.btn-sm{padding:7px 10px;border-radius:10px;font-size:.82rem}.icon-btn{width:42px;height:42px;padding:0;border-radius:13px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

.card{background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--surface-2) 86%,transparent));border:1px solid var(--border);border-radius:22px;box-shadow:var(--glow);overflow:hidden}.card-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}.card-title{font-weight:850;font-size:1rem}.card-sub{font-size:.8rem;color:var(--muted);margin-top:4px}.card-body{padding:20px}.glass{background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:blur(18px)}
.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:18px}.metric-label{color:var(--muted);font-size:.8rem;font-weight:700}.metric-value{font-size:2rem;font-weight:900;letter-spacing:-.05em;margin-top:7px}.metric-hint{font-size:.78rem;color:var(--text-2);margin-top:8px}.metric-icon{float:right;width:42px;height:42px;border-radius:14px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));display:grid;place-items:center;color:var(--accent)}

.hero-panel{padding:26px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:26px;align-items:center;background:radial-gradient(circle at 90% 20%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 38%),linear-gradient(135deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:26px;box-shadow:var(--shadow)}.hero-panel h1{font-size:clamp(2rem,4vw,4.3rem);line-height:.98;letter-spacing:-.06em;margin:0 0 16px}.hero-panel p{font-size:1rem;color:var(--text-2);max-width:760px;line-height:1.7}.hero-brand{display:flex;justify-content:center}.hero-brand img{width:min(330px,100%);border-radius:26px;box-shadow:var(--shadow-soft)}

.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 78%,transparent);border-radius:18px;margin-bottom:18px;backdrop-filter:blur(14px)}.toolbar .spacer{flex:1}.field{display:grid;gap:6px}.field label{font-size:.76rem;color:var(--muted);font-weight:750}.input,.select,.textarea{width:100%;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-2) 70%,var(--surface));color:var(--text);border-radius:12px;padding:10px 12px;outline:none;transition:.18s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.textarea{min-height:100px;resize:vertical;line-height:1.5}.select option{background:var(--surface);color:var(--text)}

.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));font-size:.75rem;font-weight:800;color:var(--text-2)}.pill-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.pill.warn{background:color-mix(in srgb,var(--warning) 14%,var(--surface));border-color:color-mix(in srgb,var(--warning) 35%,var(--border))}.pill.danger{background:color-mix(in srgb,var(--danger) 14%,var(--surface));border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.pill.success{background:color-mix(in srgb,var(--success) 14%,var(--surface));border-color:color-mix(in srgb,var(--success) 35%,var(--border))}

.schedule-wrap{overflow:auto;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}.schedule-table th{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--surface-2) 94%,transparent);color:var(--text-2);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;padding:12px;border-bottom:1px solid var(--border);text-align:left}.schedule-table td{vertical-align:top;padding:12px;border-bottom:1px solid var(--border);border-right:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.schedule-table tr:last-child td{border-bottom:0}.schedule-table tr:hover td{background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.schedule-table .week-col{width:70px;text-align:center;font-weight:900;color:var(--accent)}.schedule-table .date-col{width:126px;white-space:nowrap}.schedule-table .plan-col{min-width:330px}.schedule-table .progress-col{min-width:300px}.schedule-table .day{font-weight:900;font-size:.76rem;color:var(--muted);display:block;margin-bottom:3px}.editable-cell{min-height:74px;padding:10px;border-radius:12px;border:1px solid transparent;line-height:1.5;white-space:pre-wrap;cursor:text}.editable-cell:hover{background:color-mix(in srgb,var(--accent) 7%,transparent);border-color:var(--border)}.editable-cell[contenteditable="true"]:focus{outline:none;background:var(--bg-2);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.cell-actions{display:flex;gap:6px;margin-top:8px;opacity:.75}.teacher-track{padding:10px;border-radius:12px;background:color-mix(in srgb,var(--bg) 22%,transparent);border:1px solid color-mix(in srgb,var(--border) 65%,transparent);margin-bottom:8px}.teacher-track:last-child{margin-bottom:0}.teacher-track strong{font-size:.76rem;color:var(--accent-2);display:block;margin-bottom:6px}.teacher-track p{margin:0;color:var(--text-2);line-height:1.45;font-size:.88rem}.empty{color:var(--muted);font-style:italic}.current-week-row td{box-shadow:inset 0 2px 0 color-mix(in srgb,var(--accent) 60%,transparent)}

.week-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.week-card{padding:0}.week-card.current{border-color:color-mix(in srgb,var(--accent) 65%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent),var(--shadow)}.week-label{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.week-days{display:grid}.week-day{padding:14px 16px;border-bottom:1px solid var(--border)}.week-day:last-child{border-bottom:0}.week-day h4{margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.week-day .planned{color:var(--text-2);font-size:.86rem;line-height:1.5}

.drawer{position:fixed;top:0;right:0;width:min(620px,94vw);height:100vh;background:var(--bg-2);border-left:1px solid var(--border);box-shadow:-28px 0 70px rgba(0,0,0,.35);z-index:80;transform:translateX(102%);transition:.28s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{padding:20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.drawer-body{padding:20px;overflow:auto}.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:79;opacity:0;pointer-events:none;transition:.2s}.drawer-backdrop.show{opacity:1;pointer-events:auto}

.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(8px)}.modal-backdrop.show{display:flex}.modal{width:min(720px,96vw);max-height:92vh;overflow:auto;background:var(--bg-2);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:20px}.modal-foot{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}

.theme-panel{position:absolute;top:58px;right:0;width:min(460px,90vw);padding:14px;border:1px solid var(--border);background:var(--bg-2);border-radius:20px;box-shadow:var(--shadow);display:none;z-index:90}.theme-panel.open{display:block}.palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.palette-option{border:1px solid var(--border);border-radius:13px;padding:9px;background:var(--surface);cursor:pointer;color:var(--text);text-align:left}.palette-option:hover{border-color:var(--accent)}.palette-swatches{height:34px;border-radius:9px;margin-bottom:7px;overflow:hidden;display:grid;grid-template-columns:repeat(4,1fr)}.palette-option small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-option.active{outline:2px solid var(--accent);outline-offset:1px}

.test-list{display:grid;gap:12px}.test-card{padding:16px;border:1px solid var(--border);border-radius:17px;background:color-mix(in srgb,var(--surface) 86%,transparent)}.test-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.test-card h4{margin:0;font-size:.98rem}.test-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.test-flow{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:14px}.flow-step{height:7px;flex:1;min-width:22px;border-radius:999px;background:color-mix(in srgb,var(--muted) 24%,transparent)}.flow-step.done{background:var(--accent)}.test-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

.live-banner{display:none;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--surface)),var(--surface));border-radius:16px;margin-bottom:16px}.live-banner.show{display:flex}.live-dot{width:9px;height:9px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent);animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}

.toast-stack{position:fixed;right:20px;bottom:20px;z-index:130;display:grid;gap:9px}.toast{min-width:280px;max-width:420px;padding:12px 14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border);box-shadow:var(--shadow);animation:toast-in .22s ease;color:var(--text-2)}.toast strong{color:var(--text);display:block;margin-bottom:3px}.toast.error{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.toast.success{border-color:color-mix(in srgb,var(--success) 45%,var(--border))}@keyframes toast-in{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.attachment-viewer-backdrop{position:fixed;inset:0;z-index:180;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.66);backdrop-filter:blur(8px);opacity:0;transition:opacity .18s ease}.attachment-viewer-backdrop.show{opacity:1}.attachment-viewer-shell{width:min(1240px,98vw);height:min(900px,96vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:22px;background:var(--bg-2);box-shadow:var(--shadow)}.attachment-viewer-shell>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border)}.attachment-viewer-shell>iframe{display:block;flex:1;min-height:0;width:100%;border:0;background:#fff}@media(max-width:720px){.attachment-viewer-backdrop{padding:5px}.attachment-viewer-shell{width:100%;height:100%;border-radius:15px}}
.test-status-details{font:inherit;cursor:pointer}.test-status-details:hover{filter:brightness(1.08);text-decoration:underline}.requested-changes-modal{width:min(680px,96vw)}.requested-changes-list{display:grid;gap:12px}.requested-change{padding:14px 16px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:15px;background:color-mix(in srgb,var(--danger) 8%,var(--surface-2))}.requested-change header{display:flex;justify-content:space-between;gap:12px;align-items:center}.requested-change time{font-size:12px;color:var(--text-2)}.requested-change p{margin:9px 0 0;white-space:pre-wrap;line-height:1.55;color:var(--text)}
.test-day-chip{background:color-mix(in srgb,var(--accent) 17%,var(--surface));border-color:color-mix(in srgb,var(--accent) 42%,var(--border));white-space:normal;overflow-wrap:anywhere}

.login-page{min-height:100vh;display:grid;place-items:center;padding:26px;background:var(--hero)}.login-shell{width:min(1100px,100%);display:grid;grid-template-columns:1.15fr .85fr;border:1px solid var(--border);border-radius:30px;overflow:hidden;background:color-mix(in srgb,var(--surface) 86%,transparent);box-shadow:var(--shadow);backdrop-filter:blur(20px)}.login-brand{padding:40px;background:radial-gradient(circle at 20% 0,color-mix(in srgb,var(--accent) 20%,transparent),transparent 38%),var(--bg)}.login-brand img{width:min(390px,100%);border-radius:24px;display:block;margin:auto}.login-brand h1{font-size:2.2rem;letter-spacing:-.05em;margin:24px 0 8px}.login-brand h1 span{color:var(--accent)}.login-brand p{color:var(--text-2);line-height:1.65}.login-form{padding:50px 40px;display:flex;flex-direction:column;justify-content:center}.login-form h2{font-size:1.8rem;margin:0 0 8px;letter-spacing:-.04em}.login-form .lead{color:var(--muted);margin:0 0 28px}.login-form .field{margin-bottom:16px}.login-note{margin-top:20px;padding:12px;border-radius:13px;background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--muted);font-size:.82rem;line-height:1.55}

.admin-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px}.admin-tabs{position:sticky;top:98px;align-self:start;padding:10px}.admin-tab{width:100%;border:0;background:transparent;color:var(--text-2);padding:11px 12px;border-radius:12px;text-align:left;cursor:pointer;font-weight:750}.admin-tab:hover,.admin-tab.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--text)}.admin-panel{display:none}.admin-panel.active{display:block}.data-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:16px}.data-table{border-collapse:collapse;width:100%;min-width:780px}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.data-table th{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2)}.data-table td{font-size:.88rem}.data-table tr:last-child td{border-bottom:0}.inline-actions{display:flex;gap:6px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span-2{grid-column:1/-1}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check{display:flex;gap:8px;align-items:center;padding:9px 10px;border-radius:11px;background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--border);font-size:.83rem}.check input{accent-color:var(--accent)}

.timeline{display:grid;gap:8px}.timeline-item{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.timeline-item:last-child{border-bottom:0}.timeline-date{font-size:.8rem;color:var(--muted);font-weight:800}.timeline-content strong{display:block;font-size:.87rem}.timeline-content small{color:var(--muted)}

.empty-state{padding:44px 24px;text-align:center;color:var(--muted)}.empty-state .emoji{font-size:2.4rem;margin-bottom:10px}.skeleton{height:14px;border-radius:8px;background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}

@media(max-width:1200px){.grid-4{grid-template-columns:repeat(2,1fr)}.week-cards{grid-template-columns:1fr}.hero-panel{grid-template-columns:1fr}.hero-brand{display:none}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;transform:translateX(-105%);transition:.25s;box-shadow:var(--shadow);z-index:70}.sidebar.open{transform:none}.topbar{padding:0 16px}.content{padding:18px 16px 36px}.mobile-menu{display:inline-flex}.admin-layout{grid-template-columns:1fr}.admin-tabs{position:static;display:flex;gap:6px;overflow:auto}.admin-tab{width:auto;white-space:nowrap}.login-shell{grid-template-columns:1fr}.login-brand{display:none}}
@media(max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.topbar{height:68px}.page-kicker{display:none}.toolbar{align-items:stretch}.toolbar .field{width:100%}.toolbar .spacer{display:none}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.checkbox-grid{grid-template-columns:1fr}.palette-grid{grid-template-columns:repeat(2,1fr)}.login-form{padding:34px 24px}.metric-value{font-size:1.6rem}.hero-panel{padding:20px}.hero-panel h1{font-size:2.35rem}}


/* programmataki v2 — weekly XLSX-faithful workspace */
[data-appearance="light"]{--bg:#F6F8F7;--bg-2:#FFFFFF;--surface:#FFFFFF;--surface-2:color-mix(in srgb,var(--accent) 8%,#fff);--surface-3:color-mix(in srgb,var(--accent) 13%,#fff);--text:#14211D;--text-2:#304B42;--muted:#6E887E;--border:color-mix(in srgb,var(--accent) 24%,#dfe7e3);--shadow:0 18px 48px rgba(25,54,43,.12);--shadow-soft:0 8px 22px rgba(25,54,43,.09);--hero:radial-gradient(circle at 15% 0,color-mix(in srgb,var(--accent) 14%,transparent),transparent 35%),linear-gradient(145deg,#F9FBFA,#EEF5F1)}
[data-appearance="light"] body{color-scheme:light}[data-appearance="dark"] body{color-scheme:dark}
.content{max-width:none;padding-top:14px}.topbar{height:62px}.selector-toolbar{margin:0 0 10px}.sticky-selector{position:sticky;top:62px;z-index:31;background:color-mix(in srgb,var(--bg) 91%,transparent);backdrop-filter:blur(22px);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.selector-toolbar .field{margin:0}.selector-toolbar .field.compact{min-width:150px}.selector-toolbar .stream-field{min-width:min(440px,45vw);flex:1}.selector-toolbar label{font-size:.68rem}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.quick-grid .quick-stream{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px}.quick-grid .quick-stream span{font-size:.76rem;color:var(--muted)}
.schedule-scroll{height:calc(100vh - 150px);overflow:auto;border:1px solid var(--border);border-radius:18px;background:var(--surface);scrollbar-gutter:stable}.weekly-table{min-width:1000px}.weekly-table thead{position:sticky;top:0;z-index:8}.weekly-table th{background:var(--surface-2);font-size:.69rem;letter-spacing:.04em}.weekly-table th.week-head{width:54px}.weekly-table th.dates-head{width:158px}.weekly-table td{vertical-align:top}.weekly-table .week-col{width:54px;text-align:center;font-size:1rem;color:var(--accent)}.weekly-table .date-col{width:158px;padding:0}.weekly-table .plan-col{width:43%;}.weekly-table .progress-col{width:auto}.week-block td{border-bottom:2px solid color-mix(in srgb,var(--accent) 52%,var(--border));min-height:145px}.week-days-compact{display:grid;min-width:150px}.day-line{min-height:32px;padding:6px 9px;display:grid;grid-template-columns:35px 1fr;gap:5px 7px;align-items:center;border-bottom:1px solid var(--border);font-size:.72rem}.day-line:last-child{border-bottom:0}.day-code{font-weight:900;color:var(--accent-2)}.day-date{color:var(--text-2)}.day-line.special-day{background:color-mix(in srgb,var(--warning) 11%,transparent)}.event-chip{grid-column:1/-1;display:inline-flex;width:max-content;max-width:100%;padding:3px 6px;border-radius:7px;background:color-mix(in srgb,var(--warning) 18%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 38%,var(--border));font-weight:850;color:var(--text);font-size:.65rem}.plan-readonly,.weekly-plan-edit{min-height:132px;padding:12px 14px;white-space:pre-wrap;line-height:1.5}.weekly-plan-edit[contenteditable="true"]{border-radius:10px;outline:0}.weekly-plan-edit[contenteditable="true"]:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.weekly-plan-edit[contenteditable="true"]:focus{background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 0 0 0 1px var(--accent)}
.teacher-track.progress-edit-card{position:relative;display:block;width:100%;text-align:left;color:var(--text);cursor:default}.teacher-track.progress-edit-card[data-editable="1"]{cursor:pointer}.teacher-track.progress-edit-card[data-editable="1"]:hover{border-color:var(--accent);transform:translateY(-1px)}.track-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.deviation-badge{margin:-2px -2px 0 8px;padding:4px 8px;border-radius:999px;font-size:.62rem;font-weight:900;white-space:nowrap;border:1px solid var(--border)}.deviation-badge.ahead{background:color-mix(in srgb,var(--success) 16%,var(--surface));color:var(--accent-2)}.deviation-badge.behind{background:color-mix(in srgb,var(--warning) 17%,var(--surface));color:var(--warning)}.deviation-badge.cancelled{background:color-mix(in srgb,var(--danger) 16%,var(--surface));color:var(--danger)}.deviation-badge.custom{background:color-mix(in srgb,var(--info) 15%,var(--surface));color:var(--info)}.teacher-track small{display:block;margin-top:6px;color:var(--muted)}.legacy-track{padding:9px 10px;margin-bottom:7px;border-left:3px solid color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--bg) 18%,transparent);border-radius:7px}.legacy-track strong{font-size:.7rem;color:var(--accent-2)}.legacy-track p{margin:5px 0 0;white-space:pre-wrap;font-size:.78rem;line-height:1.42;color:var(--text-2)}
.section-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:7px;margin-top:6px}.section-check{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.section-check.all{grid-column:1/-1;background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.section-check input{accent-color:var(--accent)}
.drawer{width:min(680px,48vw)}.compare-week{padding:14px;border:1px solid var(--border);border-radius:14px;margin-bottom:10px;background:var(--surface)}.compare-week-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}.compare-week-head span{font-size:.7rem;color:var(--muted)}.compare-plan{white-space:pre-wrap;color:var(--text-2);line-height:1.48;font-size:.82rem}.compare-actual{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.week-nav-toolbar{margin-top:-2px}.week-mini-dates{margin-bottom:12px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.week-plan-summary{min-height:84px;white-space:pre-wrap;line-height:1.5}.week-progress-list{margin-top:12px}.settings-grid{display:grid;gap:16px;max-width:1200px}.settings-palettes{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.segmented{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.content{padding:12px 10px 28px}.sticky-selector{top:62px}.selector-toolbar{overflow-x:auto;flex-wrap:nowrap}.selector-toolbar .field{min-width:150px}.selector-toolbar .stream-field{min-width:330px}.schedule-scroll{height:calc(100vh - 145px)}.drawer{width:94vw}.sidebar{transform:none;position:sticky;width:auto;height:100vh}.app-shell{grid-template-columns:210px minmax(0,1fr)}}

/* programmataki v3 — teacher dashboard, persistent brand, synchronized comparison */
:root{--brand-deep:#04100E;--brand-green:#46B07F;--brand-mint:#78C89F;--brand-cream:#F2EDE8}

/* Corporate mark never follows the selected palette. */
.brand-mini{padding:8px 8px 18px;border-radius:16px;background:linear-gradient(145deg,#04100E,#0D2B27);border:1px solid rgba(120,200,159,.16)}
.brand-mini img{filter:none!important;mix-blend-mode:normal!important;box-shadow:0 8px 22px rgba(0,0,0,.24)}
.brand-name{color:var(--brand-cream)!important}
.brand-name span{color:var(--brand-green)!important}
.brand-sub{max-width:150px;color:var(--brand-cream)!important;opacity:.86;font-size:.62rem;line-height:1.25;margin-top:3px;white-space:normal}

/* The profile chip is now the Settings entry point. */
.user-chip{width:100%;appearance:none;text-align:left;color:var(--text);cursor:pointer;transition:.18s ease}
.user-chip:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--border));transform:translateY(-1px);box-shadow:var(--shadow-soft)}
.nav .nav-logout{color:#FF5A64!important;margin-top:4px}
.nav .nav-logout .nav-icon{color:#FF5A64!important}
.nav .nav-logout:hover{background:rgba(255,70,82,.10)!important;color:#FF737C!important}

/* Overview is intentionally quiet: brand statement + one full-width quick-entry surface. */
.overview-intro{padding:24px 26px 22px;border-radius:22px;background:linear-gradient(145deg,#04100E,#0D2B27 58%,#164036);border:1px solid rgba(120,200,159,.18);box-shadow:var(--shadow-soft)}
.overview-year{display:inline-flex;padding:5px 9px;border-radius:999px;border:1px solid rgba(120,200,159,.28);background:rgba(70,176,127,.10);color:var(--brand-cream);font-size:.72rem;font-weight:850}
.overview-intro h1{margin:13px 0 4px;color:var(--brand-cream);font-size:clamp(1.9rem,3vw,3.05rem);line-height:1.02;letter-spacing:-.045em}
.overview-motto{margin:0;color:var(--brand-cream)!important;font-weight:720;opacity:.96;letter-spacing:.01em}
.quick-entry-card{margin-top:16px;width:100%}
.quick-entry-card .card-body{padding-top:12px}

/* LIVE only exists while a coordinator session is active. */
.live-indicator{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid color-mix(in srgb,#FF4D57 34%,var(--border));border-radius:999px;background:color-mix(in srgb,#FF4D57 8%,var(--surface));font-size:.72rem;font-weight:850;color:var(--text-2)}
.live-indicator[hidden]{display:none!important}
.live-indicator b{color:#FF4D57;letter-spacing:.08em;font-size:.68rem}
.live-dot{background:#FF4D57;box-shadow:0 0 0 0 rgba(255,77,87,.42)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,77,87,.42)}70%{box-shadow:0 0 0 9px rgba(255,77,87,0)}100%{box-shadow:0 0 0 0 rgba(255,77,87,0)}}

/* Softer light mode: paper/mist rather than pure white. */
[data-appearance="light"]{
  --bg:#DDE7E1;
  --bg-2:#E7EEE9;
  --surface:#EEF3F0;
  --surface-2:color-mix(in srgb,var(--accent) 10%,#E6EEE9);
  --surface-3:color-mix(in srgb,var(--accent) 16%,#DDE8E2);
  --text:#17241F;
  --text-2:#30483F;
  --muted:#667F75;
  --border:color-mix(in srgb,var(--accent) 24%,#BCCBC4);
  --shadow:0 18px 48px rgba(30,54,45,.14);
  --shadow-soft:0 8px 22px rgba(30,54,45,.10);
  --hero:radial-gradient(circle at 15% 0,color-mix(in srgb,var(--accent) 12%,transparent),transparent 35%),linear-gradient(145deg,#DCE7E1,#E8EFEA 58%,#D7E3DD)
}
[data-appearance="light"] .topbar,[data-appearance="light"] .sticky-selector{background:color-mix(in srgb,#E2EBE5 91%,transparent)}
[data-appearance="light"] .schedule-scroll,[data-appearance="light"] .card,[data-appearance="light"] .toolbar{box-shadow:0 7px 20px rgba(31,57,47,.06)}

/* Previous-year comparison is a real side-by-side workspace, not an overlay. */
.app-shell{transition:grid-template-columns .32s cubic-bezier(.2,.8,.2,1)}
.sidebar{transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .24s ease}
.main{transition:margin-right .32s cubic-bezier(.2,.8,.2,1)}
.app-shell.compare-mode{grid-template-columns:0 minmax(0,1fr)}
.app-shell.compare-mode .sidebar{transform:translateX(-110%);opacity:0;pointer-events:none}
.app-shell.compare-mode .main{margin-right:min(680px,44vw)}
.compare-drawer{width:min(680px,44vw);z-index:75}
.compare-drawer .drawer-body{scrollbar-width:none}
.compare-drawer .drawer-body::-webkit-scrollbar{display:none}
.compare-locked{pointer-events:none;user-select:text;overflow-y:auto}
.drawer-backdrop{display:none!important}

/* The current schedule remains the one and only scroll master. */
.schedule-scroll{overscroll-behavior:contain;scroll-behavior:auto}
.compare-week{scroll-margin-top:14px}

/* Settings invoked from profile chip. */
.settings-grid{max-width:1180px;margin:0 auto}
.settings-grid .form-grid{max-width:760px}

@media(max-width:1100px){
  .app-shell.compare-mode .main{margin-right:min(560px,48vw)}
  .compare-drawer{width:min(560px,48vw)}
}
@media(max-width:900px){
  .brand-sub{max-width:122px;font-size:.58rem}
  .app-shell.compare-mode{grid-template-columns:0 minmax(0,1fr)}
  .app-shell.compare-mode .sidebar{transform:translateX(-110%)}
  .app-shell.compare-mode .main{margin-right:48vw}
  .compare-drawer{width:48vw}
}
@media(max-width:700px){
  .app-shell.compare-mode .main{margin-right:0}
  .compare-drawer{width:88vw}
  .overview-intro{padding:20px}
  .overview-intro h1{font-size:2rem}
}
.app-shell.compare-mode .weekly-table{min-width:760px}
.app-shell.compare-mode .weekly-table th.week-head,.app-shell.compare-mode .weekly-table .week-col{width:46px}
.app-shell.compare-mode .weekly-table th.dates-head,.app-shell.compare-mode .weekly-table .date-col{width:138px}
.app-shell.compare-mode .weekly-table .plan-col{width:39%}
.app-shell.compare-mode .day-line{grid-template-columns:30px 1fr;padding-left:7px;padding-right:7px}
body{overflow-x:hidden}

/* The electric-red frame marks the exact main workspace currently being broadcast. */
.app-shell.coordination-broadcasting::after{
  content:'';position:fixed;z-index:88;top:62px;right:0;bottom:0;left:260px;pointer-events:none;
  border:4px solid #ff1f2f;
  box-shadow:inset 0 0 12px rgba(255,31,47,.82),0 0 12px rgba(255,31,47,.92),0 0 28px rgba(255,31,47,.58);
  animation:electricBroadcastFrame 1.15s ease-in-out infinite alternate;
}
.coordination-pause,.coordination-pause:hover{
  margin-top:14px;background:linear-gradient(135deg,#ff1629,#d90018)!important;color:#fff!important;border-color:#ff4b59!important;
  box-shadow:0 0 10px rgba(255,22,41,.72),0 0 24px rgba(255,22,41,.38)!important;
}
@keyframes electricBroadcastFrame{from{filter:brightness(.92);opacity:.88}to{filter:brightness(1.28);opacity:1}}
@media(max-width:900px){.app-shell.coordination-broadcasting::after{left:210px}}
.app-shell.compare-mode.coordination-broadcasting::after{left:0}

/* During LIVE coordination a teacher's own navigation opens above the broadcast. */
.teacher-floating-panel{
  position:fixed;z-index:120;left:10vw;top:9vh;width:80vw;height:82vh;display:grid;grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;border:1px solid color-mix(in srgb,var(--accent-2) 56%,var(--border));border-radius:22px;
  background:color-mix(in srgb,var(--bg-2) 75%,transparent);box-shadow:0 26px 90px rgba(0,0,0,.48);backdrop-filter:blur(18px);
  opacity:0;transform:translateY(10px) scale(.992);transition:opacity .16s ease,transform .16s ease;
}
.teacher-floating-panel.show{opacity:.90;transform:none}
.teacher-floating-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 78%,transparent)}
.teacher-floating-panel>header strong{font-size:.9rem;color:var(--text)}
.teacher-floating-panel>iframe{display:block;width:100%;height:100%;min-height:0;border:0;background:transparent}
.teacher-floating-close{flex:0 0 auto}
@media(max-width:760px){.teacher-floating-panel{left:3vw;top:5vh;width:94vw;height:90vh;border-radius:17px}}

/* The iframe is a personal auxiliary view, not a second full application shell. */
html.floating-panel-mode body{min-height:0;background:transparent!important}
html.floating-panel-mode .app-shell{display:block;min-height:0;background:transparent!important}
html.floating-panel-mode .sidebar,html.floating-panel-mode .topbar,html.floating-panel-mode .live-banner{display:none!important}
html.floating-panel-mode .main{margin:0!important;min-height:0}
html.floating-panel-mode .content{padding:8px!important;margin:0!important;min-height:0;max-width:none!important}
html.floating-panel-mode .content.three-week-content{height:100vh!important;min-height:0!important}

/* programmataki v4 — comparison workspace, normalized previous progress, compact test authoring */

/* The planning editor occupies the whole weekly cell, like the XLSX block. */
.weekly-table .plan-col{position:relative}
.weekly-table .weekly-plan-edit{position:absolute;inset:8px;min-height:0;height:calc(100% - 16px);width:calc(100% - 16px);overflow:auto;border:1px solid color-mix(in srgb,var(--accent) 56%,var(--border));background:color-mix(in srgb,var(--surface) 94%,transparent);box-sizing:border-box}
.weekly-table .weekly-plan-edit:empty:before{content:'Γράψε τον εβδομαδιαίο προγραμματισμό…';color:var(--muted);font-style:italic}

/* Side-by-side monitoring: first slide left, then reclaim the selector height. */
.app-shell.compare-mode{grid-template-columns:0 minmax(0,1fr)}
.app-shell.compare-mode .main{margin-right:41vw}
.app-shell.compare-mode .sidebar{transform:translateX(-110%);opacity:0;pointer-events:none}
.app-shell.compare-mode .selector-toolbar{display:none}
.app-shell.compare-mode .content{padding:8px 8px 8px 10px;margin:0;max-width:none}
.app-shell.compare-mode .schedule-scroll{height:calc(100vh - 78px);border-radius:12px}
.compare-drawer{width:41vw;z-index:75}
.compare-drawer .drawer-head{min-height:62px;padding:12px 16px}
.compare-drawer .drawer-body{padding:8px 12px 12px;scroll-behavior:auto}
.app-shell.compare-mode .weekly-table{width:100%;min-width:0!important;table-layout:fixed}
.app-shell.compare-mode .weekly-table th.week-head,.app-shell.compare-mode .weekly-table .week-col{width:6%;min-width:0!important;padding-left:6px;padding-right:6px}
.app-shell.compare-mode .weekly-table th.dates-head,.app-shell.compare-mode .weekly-table .date-col{width:18%;min-width:0!important}
.app-shell.compare-mode .weekly-table .plan-col{width:34%;min-width:0!important}
.app-shell.compare-mode .weekly-table .progress-col{width:42%;min-width:0!important}
.app-shell.compare-mode .weekly-table td,.app-shell.compare-mode .weekly-table th{overflow-wrap:anywhere}
.app-shell.compare-mode .week-days-compact{min-width:0}
.app-shell.compare-mode .day-line{grid-template-columns:26px minmax(0,1fr);gap:4px;padding:5px 6px;font-size:.68rem}
.app-shell.compare-mode .plan-readonly{padding:9px 10px;font-size:.78rem}
.app-shell.compare-mode .teacher-track{padding:8px;margin-bottom:6px}
.app-shell.compare-mode .teacher-track p{font-size:.78rem;line-height:1.35}
.app-shell.compare-mode .cell-actions{margin-top:5px}

/* Compact test creation without a modal scrollbar. */
.modal.test-modal{width:min(840px,96vw);max-height:none;overflow:visible}
.test-modal .modal-head{padding:12px 18px}
.test-modal .modal-body{padding:12px 18px 10px;overflow:visible}
.test-modal .modal-foot{padding:10px 18px}
.test-form-grid{gap:9px 12px}
.test-form-grid .field{gap:4px}
.test-form-grid .field label{font-size:.68rem}
.test-form-grid .input,.test-form-grid .select{padding:9px 11px;min-height:39px}
.compact-group{padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,transparent)}
.test-check-grid{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.test-check-chip{display:inline-flex!important;align-items:center;gap:6px;padding:6px 9px!important;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;font-size:.72rem!important;font-weight:750!important;color:var(--text-2)!important}
.test-check-chip input{accent-color:var(--accent);margin:0}
.assigned-static{display:flex;flex-direction:column;gap:4px;padding:8px 11px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.assigned-static span{font-size:.68rem;font-weight:800;color:var(--muted)}
.assigned-static strong{font-size:.84rem;color:var(--text)}
.switch-field{align-self:end}
.switch-control{display:flex!important;align-items:center;gap:8px;min-height:39px;padding:7px 10px!important;border:1px solid var(--border);border-radius:11px;background:var(--surface);cursor:pointer}
.switch-control input{position:absolute;opacity:0;pointer-events:none}
.switch-slider{position:relative;width:36px;height:20px;border-radius:999px;background:color-mix(in srgb,var(--muted) 36%,var(--surface-3));transition:.18s}
.switch-slider:after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--text);transition:.18s}
.switch-control input:checked + .switch-slider{background:var(--accent)}
.switch-control input:checked + .switch-slider:after{transform:translateX(16px);background:var(--bg)}
.switch-control b{font-size:.76rem;color:var(--text-2)}
.reviewer-group{position:relative;transition:.18s}
.reviewer-group.disabled{opacity:.46;filter:saturate(.55)}
.reviewer-picker{position:relative}
.reviewer-picker summary{list-style:none;cursor:pointer;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.77rem;font-weight:800;color:var(--text-2)}
.reviewer-picker summary::-webkit-details-marker{display:none}
.reviewer-picker summary:after{content:'⌄';float:right;color:var(--accent)}
.reviewer-picker[open] summary:after{content:'⌃'}
.reviewer-picker-body{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:120;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--bg-2);box-shadow:var(--shadow);max-height:260px;overflow:auto}
.other-reviewer-toggle{display:flex!important;align-items:center;gap:7px;margin-top:9px;padding-top:8px!important;border-top:1px solid var(--border);cursor:pointer;font-size:.75rem!important}
.other-reviewer-row{display:flex;gap:7px;margin-top:7px}
.other-reviewer-row .select{flex:1}
.selected-reviewers{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.removable-reviewer{cursor:pointer}
.test-notes-field .input{min-height:38px}

@media(max-width:1100px){
  .app-shell.compare-mode .main{margin-right:43vw}
  .compare-drawer{width:43vw}
  .app-shell.compare-mode .weekly-table .week-col,.app-shell.compare-mode .weekly-table th.week-head{width:7%}
  .app-shell.compare-mode .weekly-table .date-col,.app-shell.compare-mode .weekly-table th.dates-head{width:20%}
  .app-shell.compare-mode .weekly-table .plan-col{width:32%}
  .app-shell.compare-mode .weekly-table .progress-col{width:41%}
}
@media(max-width:760px){
  .app-shell.compare-mode .main{margin-right:0}
  .compare-drawer{width:88vw}
  .app-shell.compare-mode .selector-toolbar{display:flex}
  .app-shell.compare-mode .content{padding:8px}
  .app-shell.compare-mode .schedule-scroll{height:calc(100vh - 140px)}
  .test-form-grid{grid-template-columns:1fr}
  .test-form-grid .span-2{grid-column:auto}
  .modal.test-modal{width:96vw;max-height:94vh;overflow:auto}
}

/* programmataki v5 — fluid three-week navigation + current-year test authoring */
.three-week-window{overflow:hidden;min-width:0}
#threeWeekCards{will-change:transform,opacity;transform:translateZ(0)}
.week-nav-toolbar button:disabled{opacity:.5;cursor:wait;transform:none}
.tests-toolbar{margin-bottom:16px}
.tests-context-inline{display:flex;align-items:center;gap:10px;color:var(--text-2);font-size:.78rem}
.tests-context-inline strong{color:var(--text);font-weight:900}
.tests-context-inline span{color:var(--muted)}
.test-context-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.test-context-strip>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 11px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--surface) 78%,transparent)}
.test-context-strip span{font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.test-context-strip strong{font-size:.82rem;color:var(--text);text-align:right}
@media(max-width:620px){.test-context-strip{grid-template-columns:1fr}.tests-context-inline{display:none}}


/* programmataki v6 — compact teacher test form + teacher-aware event authoring */
.test-modal .test-form-grid{align-items:end}
.test-modal #tmReviewerGroup{align-self:end}
.test-modal #tmReviewerGroup>label{margin-bottom:0}
.other-reviewer-toggle{
  width:100%;
  border:0;
  border-top:1px solid var(--border);
  background:transparent;
  color:var(--accent-2);
  font:inherit;
  font-size:.75rem;
  font-weight:850;
  text-align:left;
  padding:9px 2px 1px;
  margin-top:8px;
  cursor:pointer;
}
.other-reviewer-toggle:hover{color:var(--accent)}
.other-reviewer-toggle:disabled{cursor:not-allowed;opacity:.5}
.event-form-grid{gap:10px 12px}
.event-form-grid #emOtherTypeField[hidden]{display:none}
.modal.event-modal{width:min(760px,96vw)}
@media(max-width:760px){
  .test-modal #tmReviewerGroup{align-self:stretch}
  .modal.event-modal{width:96vw}
}

/* programmataki v7 — native events, compact monitoring, horizontal 3-week carousel, test attachments */
[data-theme="imperial-gold"]{--bg:#151006;--bg-2:#2D220B;--surface:#382B0E;--surface-2:#594315;--surface-3:#70551A;--text:#FFF9E8;--text-2:#F1E3B9;--muted:#C6B37B;--accent:#E0B84B;--accent-2:#F3D77F;--border:rgba(243,215,127,.24);--danger:#E57265;--warning:#E0B84B;--success:#7EB78B;--info:#7AAFC4;--hero:linear-gradient(145deg,#151006,#2D220B 55%,#594315)}
[data-theme="basalt"]{--bg:#090B0C;--bg-2:#171B1D;--surface:#22282B;--surface-2:#30373A;--surface-3:#424C50;--text:#F5F7F7;--text-2:#DCE3E5;--muted:#9FAEB3;--accent:#89979C;--accent-2:#C2CDD0;--border:rgba(194,205,208,.2);--danger:#E47575;--warning:#D6AE62;--success:#78B795;--info:#78AFC7;--hero:radial-gradient(circle at 85% 0,rgba(137,151,156,.18),transparent 35%),linear-gradient(145deg,#090B0C,#171B1D 60%,#30373A)}
[data-theme="molten-lava"]{--bg:#140705;--bg-2:#2E0D08;--surface:#43130C;--surface-2:#61190E;--surface-3:#7C2112;--text:#FFF4EE;--text-2:#F6D5C8;--muted:#D0A090;--accent:#FF6438;--accent-2:#FF9B72;--border:rgba(255,155,114,.24);--danger:#FF5260;--warning:#F4B24C;--success:#77B882;--info:#70A9C5;--hero:radial-gradient(circle at 75% 10%,rgba(255,100,56,.24),transparent 34%),linear-gradient(145deg,#140705,#2E0D08 58%,#61190E)}
[data-theme="silver-frost"]{--bg:#0C1013;--bg-2:#1D252A;--surface:#283238;--surface-2:#3A474E;--surface-3:#4D5D65;--text:#FAFCFC;--text-2:#E3EAEC;--muted:#AEBFC5;--accent:#C8D5DA;--accent-2:#EEF4F6;--border:rgba(238,244,246,.2);--danger:#E47C82;--warning:#D7B56D;--success:#82B99A;--info:#86B8CD;--hero:radial-gradient(circle at 20% 0,rgba(200,213,218,.17),transparent 36%),linear-gradient(145deg,#0C1013,#1D252A 58%,#3A474E)}
[data-theme="aurora-sunset"]{--bg:#160B1A;--bg-2:#35203D;--surface:#462B4F;--surface-2:#674050;--surface-3:#7A4D5E;--text:#FFF5F2;--text-2:#F1DDE3;--muted:#C9A8B8;--accent:#FF8A62;--accent-2:#F5B1C7;--border:rgba(245,177,199,.23);--danger:#F2697D;--warning:#E8B55F;--success:#78BD91;--info:#79B8D0;--hero:radial-gradient(circle at 82% 8%,rgba(255,138,98,.24),transparent 35%),radial-gradient(circle at 15% 0,rgba(178,105,219,.18),transparent 33%),linear-gradient(145deg,#160B1A,#35203D 58%,#674050)}

:root{
  --event-tone-0:var(--warning);
  --event-tone-1:var(--info);
  --event-tone-2:var(--success);
  --event-tone-3:#B88CE8;
  --event-tone-4:#E97A9B;
  --event-tone-5:#E7A95A;
}

/* Long lesson text must never widen the table. */
.weekly-table{table-layout:fixed;width:100%;}
.weekly-table .plan-col,.weekly-table .progress-col{min-width:0!important;}
.plan-readonly,.week-plan-summary,.teacher-track p,.teacher-track small,.legacy-track p,.flow-ticket span{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  max-width:100%;
}
.plan-readonly{width:100%;}
.progress-col{overflow:hidden;}
.teacher-track{min-width:0;}
.teacher-track strong{white-space:normal;overflow-wrap:anywhere;}

/* Event/test tickets injected into monitoring. */
.flow-tickets{display:grid;gap:6px;margin-bottom:8px;}
.flow-ticket{display:grid;gap:3px;padding:8px 9px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 80%,transparent);}
.flow-ticket strong{font-size:.72rem;color:var(--text);}
.flow-ticket span{font-size:.66rem;color:var(--text-2);line-height:1.35;}
.event-ticket{border-left-width:4px;}
.event-tone-0{border-color:color-mix(in srgb,var(--event-tone-0) 55%,var(--border));background:color-mix(in srgb,var(--event-tone-0) 13%,var(--surface));}
.event-tone-1{border-color:color-mix(in srgb,var(--event-tone-1) 55%,var(--border));background:color-mix(in srgb,var(--event-tone-1) 13%,var(--surface));}
.event-tone-2{border-color:color-mix(in srgb,var(--event-tone-2) 55%,var(--border));background:color-mix(in srgb,var(--event-tone-2) 13%,var(--surface));}
.event-tone-3{border-color:color-mix(in srgb,var(--event-tone-3) 55%,var(--border));background:color-mix(in srgb,var(--event-tone-3) 13%,var(--surface));}
.event-tone-4{border-color:color-mix(in srgb,var(--event-tone-4) 55%,var(--border));background:color-mix(in srgb,var(--event-tone-4) 13%,var(--surface));}
.event-tone-5{border-color:color-mix(in srgb,var(--event-tone-5) 55%,var(--border));background:color-mix(in srgb,var(--event-tone-5) 13%,var(--surface));}
.test-flow-ticket{border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--surface));}
.day-line.special-day{background-color:transparent;}
.event-chip{width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.3;}

/* Progress modal: dense enough to fit without a scrollbar in normal desktop view. */
.modal.progress-modal{width:min(760px,96vw);max-height:96vh;overflow:visible;}
.progress-modal .modal-head{padding:12px 18px;}
.progress-modal .modal-body{padding:12px 18px 10px;overflow:visible;}
.progress-modal .modal-foot{padding:10px 18px;}
.progress-form{gap:8px 12px;}
.progress-form .textarea{min-height:74px;max-height:110px;}
.compact-sections{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px;}
.compact-sections .section-check{padding:7px 8px;}

/* Calendar rows are editable objects, not static prose. */
.event-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:12px;}
.event-open{appearance:none;border:0;background:transparent;color:inherit;text-align:left;padding:8px 0;cursor:default;min-width:0;}
.event-editable .event-open{cursor:pointer;}
.event-editable .event-open:hover strong{color:var(--accent-2);}
.event-open strong,.event-open small{display:block;overflow-wrap:anywhere;}
.event-open small{margin-top:4px;color:var(--muted);}
.event-form-grid .event-notes{min-height:68px;}

/* Test cards/editing + chronological attachment history. */
.test-card-editable{cursor:pointer;transition:.16s ease;}
.test-card-editable:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));transform:translateY(-1px);}
.test-reviewer-pills{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap;}
.attachment-block{padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,transparent);}
.attachment-add{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:7px;align-items:center;}
.attachment-list{display:grid;gap:5px;margin-top:7px;}
.attachment-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(110px,.7fr) 115px 36px;gap:6px;align-items:center;padding:6px 7px;border-radius:9px;background:color-mix(in srgb,var(--bg) 20%,transparent);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);font-size:.68rem;}
.attachment-row .attachment-name{font-weight:800;color:var(--accent-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.attachment-row span{color:var(--muted);font-size:.62rem;}
.attachment-row .select{padding:6px 7px;min-height:30px;font-size:.66rem;}
.attachment-row .btn{width:30px;height:30px;padding:0;}
.attachment-row.pending{border-style:dashed;}

/* 3-week view: one frozen control row, pure horizontal scrolling, no visual flash. */
.content.three-week-content{height:calc(100vh - 62px);padding:8px 10px 10px!important;overflow:hidden;}
.three-week-page{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden;}
.three-week-toolbar{position:sticky!important;top:0!important;z-index:32;flex:0 0 auto;margin:0 0 8px!important;flex-wrap:nowrap;overflow:visible!important;}
.three-week-toolbar .field.compact{min-width:120px;}
.three-week-toolbar .stream-field{min-width:280px;max-width:520px;}
.three-week-nav{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.three-week-window{flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;}
.three-week-window::-webkit-scrollbar{display:none;}
.three-week-window .week-cards{display:flex!important;grid-template-columns:none!important;gap:12px;width:100%;height:100%;min-height:0;align-items:stretch;}
.three-week-window .week-card{flex:0 0 calc((100% - 24px)/3);height:100%;min-width:0;display:flex;flex-direction:column;scroll-snap-align:start;}
.three-week-window .week-card .card-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding:12px 16px;}
.three-week-window .week-card .card-body::-webkit-scrollbar{display:none;}
.three-week-window .week-label{padding:11px 14px;}
.three-week-window .week-mini-dates{margin-bottom:8px;}
.three-week-window .week-plan-summary{min-height:52px;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;}
.three-week-window .week-progress-list{margin-top:8px;}
.three-week-window .flow-tickets{margin-top:8px;}
.is-hidden{display:none!important;}

@media(max-width:1050px){
  .three-week-toolbar .stream-field{min-width:220px;}
  .three-week-nav .btn{padding-left:8px;padding-right:8px;}
  .three-week-window .week-card{flex-basis:calc((100% - 16px)/3);}
  .attachment-add{grid-template-columns:1fr 110px auto;}
}
@media(max-width:760px){
  .content.three-week-content{height:auto;overflow:visible;}
  .three-week-page{height:auto;overflow:visible;}
  .three-week-toolbar{overflow-x:auto!important;}
  .three-week-window{height:calc(100vh - 150px);}
  .three-week-window .week-card{flex-basis:84vw;}
  .modal.progress-modal,.modal.test-modal{max-height:94vh;overflow:auto;}
  .event-row{grid-template-columns:92px minmax(0,1fr);}
  .event-row .event-delete{grid-column:2;justify-self:start;}
  .attachment-add{grid-template-columns:1fr;}
  .attachment-row{grid-template-columns:1fr 100px 34px;}
  .attachment-row span{grid-column:1/-1;}
}
.event-tone-6{border-color:color-mix(in srgb,var(--accent-2) 55%,var(--border));background:color-mix(in srgb,var(--accent-2) 13%,var(--surface));}
.event-tone-7{border-color:color-mix(in srgb,var(--danger) 55%,var(--border));background:color-mix(in srgb,var(--danger) 13%,var(--surface));}
:root{--event-tone-6:var(--accent-2);--event-tone-7:var(--danger);}

/* programmataki v8 — verified monitoring geometry and compact frozen 3-week workspace */
.weekly-table{min-width:0!important;table-layout:fixed;width:100%!important}
.weekly-table th.week-head,.weekly-table .week-col{width:5.5%!important;min-width:44px}
.weekly-table th.dates-head,.weekly-table .date-col{width:17.5%!important;min-width:136px}
.weekly-table .plan-col{width:38.5%!important;min-width:0!important}
.weekly-table .progress-col{width:38.5%!important;min-width:0!important}
.schedule-scroll{overflow-y:auto;overflow-x:hidden}
.week-block .plan-col{height:1px}
.week-block .plan-col>.plan-readonly,.week-block .plan-col>.weekly-plan-edit{height:100%;min-height:164px;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}
.teacher-track p,.teacher-track small{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}
.progress-col .teacher-track{max-width:100%;overflow:hidden}
.progress-col .track-head{min-width:0}
.progress-col .track-head strong{min-width:0;overflow-wrap:anywhere;word-break:break-word}

/* The selector/nav frame in 3-week mode is a fixed-height top rail; only the cards move horizontally. */
.content.three-week-content{position:relative;height:calc(100vh - 62px);min-height:0;overflow:hidden!important}
.three-week-page{position:relative;height:100%;min-height:0;overflow:hidden!important}
.three-week-toolbar{position:relative!important;top:auto!important;transform:none!important;flex:0 0 auto}
.three-week-window{overscroll-behavior:contain;scroll-snap-type:x proximity}
.three-week-window .week-card{scroll-snap-align:start}
.three-week-window .week-card .card-body{overflow-y:auto;overflow-x:hidden}

/* Event rows and test rows are obvious editable objects without forcing extra vertical space. */
.event-row.event-editable .event-open,.test-card-editable{outline:none}
.event-row.event-editable .event-open:focus-visible,.test-card-editable:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent);border-radius:10px}

/* Attachments remain compact but can scroll only when a long history genuinely requires it. */
.modal.test-modal{max-height:96vh;overflow:hidden;display:flex;flex-direction:column}
.test-modal .modal-head,.test-modal .modal-foot{flex:0 0 auto}
.test-modal .modal-body{min-height:0;overflow:auto}

@media(max-width:900px){
  .weekly-table{min-width:840px!important}
  .schedule-scroll{overflow-x:auto}
}

/* programmataki v9 — test cards follow the compact workflow/reference layout. */
.test-card{position:relative;padding:16px 18px 14px;cursor:default!important;transform:none!important}
.test-card:hover{transform:none!important}
.test-card-top{align-items:flex-start}
.test-card-heading{min-width:0;flex:1}
.test-card-heading h4{font-size:1rem;line-height:1.25;margin:0 0 7px}
.test-owner{flex:0 0 auto;margin-left:12px}
.test-meta{margin-top:0;align-items:center}
.test-meta .pill.success{background:color-mix(in srgb,var(--success) 24%,var(--surface));border-color:color-mix(in srgb,var(--success) 72%,var(--border));color:color-mix(in srgb,var(--success) 80%,var(--text))}
.test-flow-wrap{position:relative;margin-top:13px;padding-top:8px}
.test-flow-wrap .test-flow{margin-top:0}
.test-attachment-marker{position:absolute;top:-8px;left:var(--marker-pos);transform:translateX(-50%);z-index:2;border:1px solid color-mix(in srgb,var(--accent) 62%,var(--border));background:var(--surface);color:var(--accent-2);border-radius:999px;min-width:26px;height:26px;padding:0 7px;font-size:.68rem;font-weight:900;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.16)}
.test-attachment-marker:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface));transform:translateX(-50%) translateY(-1px)}
.test-card-attachments{display:grid;gap:6px;margin-top:10px;padding:0 2px}
.test-card-attachment{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;border:1px solid transparent;border-radius:10px;padding:7px 9px;background:color-mix(in srgb,var(--bg) 18%,transparent);color:var(--text);text-align:left;cursor:pointer}
.test-card-attachment:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.test-card-attachment .attachment-index{display:grid;place-items:center;min-width:28px;height:24px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));font-weight:900;color:var(--accent-2);font-size:.67rem}
.test-card-attachment .attachment-kind{font-size:.64rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-2)}
.test-card-attachment strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}
.test-card-attachment time{white-space:nowrap;color:var(--muted);font-size:.62rem}
.test-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin-top:12px}
.test-card-actions .test-actions{margin-top:0}
.test-actions-left{justify-content:flex-start}
.test-actions-right{justify-content:flex-end;align-self:end}
.test-edit-btn{background:color-mix(in srgb,var(--surface) 82%,transparent);border-color:color-mix(in srgb,var(--accent-2) 34%,var(--border))}
.test-delete-btn{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}
.test-workflow-btn{min-width:max-content}
.test-reviewer-pills{display:none!important}
@media(max-width:760px){
  .test-card{padding:14px}
  .test-card-top{gap:8px}
  .test-owner{margin-left:4px}
  .test-card-attachment{grid-template-columns:auto minmax(0,1fr);gap:6px}
  .test-card-attachment .attachment-kind,.test-card-attachment time{grid-column:2}
  .test-card-actions{grid-template-columns:1fr;gap:8px}
  .test-actions-right{justify-content:flex-end}
}

/* programmataki v10 — attachment stages, restored schedule context, true light workspace */
.test-flow-wrap{padding-top:12px}
.test-flow{overflow:visible!important;flex-wrap:nowrap!important}
.flow-step{position:relative;overflow:visible;isolation:isolate}
.test-attachment-marker{
  position:absolute!important;
  top:50%!important;
  left:50%!important;
  transform:translate(calc(-50% + var(--marker-shift,0px)),-50%)!important;
  z-index:4;
  min-width:25px;
  height:25px;
  padding:0 6px;
  border:2px solid var(--surface);
  box-shadow:0 3px 10px rgba(0,0,0,.22);
}
.test-attachment-marker:hover{transform:translate(calc(-50% + var(--marker-shift,0px)),-56%)!important}
.test-card-attachments.without-review .test-card-attachment{grid-template-columns:auto minmax(0,1fr) auto}
.test-card-attachments.without-review .attachment-kind{grid-column:auto}

/* Light is a complete interface appearance, not a partial variable swap. Accent hues still come from the chosen palette. */
html[data-appearance="light"]{
  color-scheme:light;
  --bg:#E5ECE7;
  --bg-2:#F4F7F2;
  --surface:#FCFDF9;
  --surface-2:#EEF3ED;
  --surface-3:#E2EAE3;
  --text:#18231E;
  --text-2:#31443A;
  --muted:#687A70;
  --border:#C7D2CB;
  --shadow:0 18px 46px rgba(38,57,48,.13);
  --shadow-soft:0 7px 20px rgba(38,57,48,.09);
  --glow:0 0 0 1px rgba(32,61,47,.035),0 12px 34px rgba(38,57,48,.08);
  --hero:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 34%),
    radial-gradient(circle at 92% 8%,rgba(239,206,153,.24),transparent 30%),
    linear-gradient(145deg,#E7EFEA 0%,#F5F5ED 46%,#E7EEE8 100%);
}
html[data-appearance="light"] body{background:var(--hero);color:var(--text)}
html[data-appearance="light"] .app-shell{background:transparent}
html[data-appearance="light"] .sidebar{
  background:rgba(244,248,243,.94);
  border-right-color:#C6D1CA;
  box-shadow:10px 0 35px rgba(39,57,49,.06);
}
html[data-appearance="light"] .main{background:linear-gradient(180deg,rgba(255,255,252,.36),rgba(236,242,237,.24))}
html[data-appearance="light"] .topbar{
  background:rgba(248,249,244,.91);
  border-bottom-color:#C8D3CC;
  box-shadow:0 5px 18px rgba(44,62,53,.055);
}
html[data-appearance="light"] .sticky-selector{
  background:rgba(242,246,241,.96)!important;
  border-color:#C5D1C9;
  box-shadow:0 8px 22px rgba(39,58,48,.08)!important;
}
html[data-appearance="light"] .nav button,
html[data-appearance="light"] .nav a{color:#34483E}
html[data-appearance="light"] .nav button:hover,
html[data-appearance="light"] .nav a:hover,
html[data-appearance="light"] .nav .active{
  color:#15231C;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 15%,#F8FAF6),color-mix(in srgb,var(--accent) 7%,#EEF3ED));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,#CAD4CE);
}
html[data-appearance="light"] .user-chip,
html[data-appearance="light"] .card,
html[data-appearance="light"] .toolbar,
html[data-appearance="light"] .schedule-scroll,
html[data-appearance="light"] .compare-week,
html[data-appearance="light"] .week-card,
html[data-appearance="light"] .test-card,
html[data-appearance="light"] .theme-panel,
html[data-appearance="light"] .modal,
html[data-appearance="light"] .drawer{
  background:#FBFCF8;
  border-color:#C7D2CB;
  color:#18231E;
  box-shadow:var(--shadow-soft);
}
html[data-appearance="light"] .card{background:linear-gradient(160deg,#FDFEFA,#F1F5EF)}
html[data-appearance="light"] .toolbar{background:rgba(249,251,247,.91)}
html[data-appearance="light"] .drawer{background:#F2F6F1;box-shadow:-24px 0 65px rgba(42,57,49,.18)}
html[data-appearance="light"] .modal-backdrop{background:rgba(28,38,33,.32)}
html[data-appearance="light"] .drawer-backdrop{background:rgba(28,38,33,.22)}
html[data-appearance="light"] .page-title,
html[data-appearance="light"] .card-title,
html[data-appearance="light"] .week-label,
html[data-appearance="light"] .test-card h4{color:#17231D}
html[data-appearance="light"] .page-kicker,
html[data-appearance="light"] .card-sub,
html[data-appearance="light"] .metric-label,
html[data-appearance="light"] .empty,
html[data-appearance="light"] .empty-state{color:#687A70}
html[data-appearance="light"] .btn{
  background:#F7F9F5;
  border-color:#C2CEC6;
  color:#1D2B24;
  box-shadow:none;
}
html[data-appearance="light"] .btn:hover{background:#FFFFFF;border-color:color-mix(in srgb,var(--accent) 42%,#BCC9C1)}
html[data-appearance="light"] .btn-primary{
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 88%,#FFFFFF),color-mix(in srgb,var(--accent-2) 82%,#FFFFFF));
  color:#102019!important;
  border-color:color-mix(in srgb,var(--accent) 58%,#AEBEB4);
  box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 17%,transparent);
}
html[data-appearance="light"] .btn-soft{background:color-mix(in srgb,var(--accent) 9%,#F9FBF8);color:#24372E}
html[data-appearance="light"] .btn-danger{background:#FBE9EA;color:#8A242B!important;border-color:#E7B7BA}
html[data-appearance="light"] .test-delete-btn{background:#D84D57!important;border-color:#C73E48!important;color:#FFFFFF!important}
html[data-appearance="light"] .avatar{color:#102019;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 82%,#fff),color-mix(in srgb,var(--accent-2) 78%,#fff))}
html[data-appearance="light"] .input,
html[data-appearance="light"] .select,
html[data-appearance="light"] .textarea{
  background:#FFFFFF;
  color:#17231D;
  border-color:#C4D0C8;
  box-shadow:inset 0 1px 1px rgba(38,57,48,.025);
}
html[data-appearance="light"] .input::placeholder,
html[data-appearance="light"] .textarea::placeholder{color:#87968E}
html[data-appearance="light"] .select option{background:#FFFFFF;color:#17231D}
html[data-appearance="light"] .pill{
  background:color-mix(in srgb,var(--accent) 7%,#F9FBF8);
  border-color:color-mix(in srgb,var(--accent) 22%,#C7D1CB);
  color:#30473B;
}
html[data-appearance="light"] .pill.success{color:#1E5D3D;background:#E7F3EA;border-color:#B9D8C3}
html[data-appearance="light"] .pill.warn{color:#74521A;background:#F8F0DB;border-color:#E5D09B}
html[data-appearance="light"] .pill.danger{color:#8B3037;background:#F9E7E9;border-color:#E4B6BA}
html[data-appearance="light"] .schedule-table th{background:#EAF0EA;color:#31453A;border-bottom-color:#C3CEC7}
html[data-appearance="light"] .schedule-table td{background:#FBFCF8;border-color:#D1D9D4;color:#1C2B23}
html[data-appearance="light"] .schedule-table tr:hover td{background:color-mix(in srgb,var(--accent) 4%,#F9FBF7)}
html[data-appearance="light"] .current-week-row td{background:color-mix(in srgb,var(--accent) 5%,#FBFCF8)}
html[data-appearance="light"] .day-date,
html[data-appearance="light"] .plan-readonly,
html[data-appearance="light"] .teacher-track p,
html[data-appearance="light"] .legacy-track p,
html[data-appearance="light"] .week-plan-summary{color:#33493D}
html[data-appearance="light"] .teacher-track,
html[data-appearance="light"] .legacy-track,
html[data-appearance="light"] .compact-group,
html[data-appearance="light"] .section-check,
html[data-appearance="light"] .test-card-attachment,
html[data-appearance="light"] .attachment-row{
  background:#F3F6F1;
  border-color:#CDD6D0;
}
html[data-appearance="light"] .teacher-track strong,
html[data-appearance="light"] .legacy-track strong,
html[data-appearance="light"] .attachment-kind{color:color-mix(in srgb,var(--accent) 72%,#274537)}
html[data-appearance="light"] .test-flow .flow-step{background:#D9DFDA}
html[data-appearance="light"] .test-flow .flow-step.done{background:color-mix(in srgb,var(--accent) 86%,#58705F)}
html[data-appearance="light"] .test-attachment-marker{
  background:#FFFFFF;
  color:#22382D;
  border-color:#F7FAF6;
  box-shadow:0 3px 9px rgba(32,49,40,.22),0 0 0 1px color-mix(in srgb,var(--accent) 35%,#BFCBC3);
}
html[data-appearance="light"] .event-chip,
html[data-appearance="light"] .flow-ticket{color:#24362D}
html[data-appearance="light"] .toast{background:#FCFDF9;color:#31443A;border-color:#C5D0C9}
html[data-appearance="light"] .toast strong{color:#17231D}
html[data-appearance="light"] .palette-option{background:#F8FAF6;color:#1A2921;border-color:#C8D2CC}
html[data-appearance="light"] .overview-intro,
html[data-appearance="light"] .brand-mini{color:var(--brand-cream)}
html[data-appearance="light"] .overview-intro{box-shadow:0 15px 35px rgba(14,45,36,.17)}
html[data-appearance="light"] ::selection{background:color-mix(in srgb,var(--accent) 45%,#DCE8E1);color:#112019}

@media(max-width:700px){
  .test-card-attachments.without-review .test-card-attachment{grid-template-columns:auto minmax(0,1fr)}
  .test-card-attachments.without-review .attachment-kind{grid-column:1}
  .test-card-attachments.without-review time{grid-column:2}
}

/* v16 — reviewer picker: compact course list + full-user directory */
.test-modal .selected-reviewers-field{min-width:0}
.test-modal .selected-reviewers-side{min-height:44px;display:flex;align-items:flex-start;align-content:flex-start;gap:6px;flex-wrap:wrap;padding:8px 9px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2,rgba(0,0,0,.08))}
.test-modal .selected-reviewers-side .pill{max-width:100%;white-space:normal;text-align:left}
.test-modal .reviewer-group details{position:relative}
.test-modal .reviewer-picker-body{display:grid;gap:9px}
.test-modal .other-reviewer-toggle{width:100%;border:1px dashed var(--line2);border-radius:10px;padding:8px 10px;background:transparent;color:var(--accent);font-weight:900;cursor:pointer}
.test-modal .other-reviewer-toggle:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.test-modal .reviewer-group.disabled,.test-modal .selected-reviewers-field.disabled{opacity:.5}
.reviewer-directory-backdrop{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.58);backdrop-filter:blur(7px);opacity:0;transition:opacity .14s ease}
.reviewer-directory-backdrop.show{opacity:1}
.reviewer-directory-dialog{width:min(720px,94vw);max-height:min(760px,90vh);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;border:1px solid var(--line2);border-radius:22px;background:var(--surface,#0d2b27);box-shadow:0 24px 80px rgba(0,0,0,.38);overflow:hidden;transform:translateY(8px) scale(.99);transition:transform .14s ease}
.reviewer-directory-backdrop.show .reviewer-directory-dialog{transform:none}
.reviewer-directory-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;border-bottom:1px solid var(--line)}
.reviewer-directory-dialog header div{display:grid;gap:2px}.reviewer-directory-dialog header strong{font-size:16px}.reviewer-directory-dialog header small{color:var(--text-2)}
.reviewer-dir-tools{padding:12px 14px;border-bottom:1px solid var(--line)}
.reviewer-directory-list{overflow:auto;padding:12px 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start}
.reviewer-directory-user{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:var(--surface-2,rgba(255,255,255,.03));cursor:pointer;min-width:0}
.reviewer-directory-user:hover{border-color:var(--line2)}.reviewer-directory-user input{flex:0 0 auto;accent-color:var(--accent)}
.reviewer-directory-user span{display:grid;min-width:0}.reviewer-directory-user strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reviewer-directory-user small{font-size:9px;color:var(--text-2)}
.reviewer-directory-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.reviewer-directory-dialog footer>span{margin-right:auto;color:var(--text-2);font-size:10px;font-weight:800}
@media(max-width:680px){.reviewer-directory-list{grid-template-columns:1fr}.reviewer-directory-backdrop{padding:8px}}

/* v22 — real school-week alignment and automatic review workflow */
.compare-drawer .drawer-body{padding-top:22px;scroll-padding-top:22px}
.compare-week-head strong{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.compare-week-head strong b{font-size:.72rem;color:var(--text-2);font-weight:800}
.event-chip{appearance:none;cursor:pointer;text-align:left;font-family:inherit}
.event-chip:hover{border-color:var(--accent);filter:brightness(1.08)}
.flow-ticket.event-ticket{width:100%;appearance:none;color:inherit;text-align:left;cursor:pointer;font-family:inherit}
.flow-ticket.event-ticket:hover{border-color:var(--accent)}
.event-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.event-info-grid>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.event-info-grid span,.event-info-grid strong{display:block}.event-info-grid span{font-size:.68rem;color:var(--muted);margin-bottom:5px}.event-info-notes{margin-top:12px;padding:13px;border-radius:12px;background:var(--surface);white-space:pre-wrap;line-height:1.5}
.attachment-preview-link{appearance:none;border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit;padding:0}

/* v23 — one vertical page scroll, clearer sidebar rhythm and palette-aware light mode */
.brand-mini{margin-bottom:14px}
.schedule-wrap,
.schedule-scroll{
  height:auto!important;
  max-height:none!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior:auto!important;
  scrollbar-gutter:auto!important;
}
.content.three-week-content{
  height:auto!important;
  min-height:calc(100vh - 62px);
  overflow:visible!important;
}
.three-week-page{
  height:auto!important;
  min-height:0;
  overflow:visible!important;
}
.three-week-window{
  height:auto!important;
  min-height:0;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain;
}
.three-week-window .week-cards{height:auto!important;min-height:0;align-items:stretch}
.three-week-window .week-card{height:auto!important;min-height:0}
.three-week-window .week-card .card-body{
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:hidden!important;
}

html[data-appearance="light"]{
  --bg:color-mix(in srgb,var(--accent) 13%,#E9EEE9);
  --bg-2:color-mix(in srgb,var(--accent-2) 10%,#F4F4EC);
  --surface:color-mix(in srgb,var(--accent) 8%,#FBFCF8);
  --surface-2:color-mix(in srgb,var(--accent-2) 13%,#E9EFEA);
  --border:color-mix(in srgb,var(--accent) 24%,#BFCAC3);
  --hero:
    radial-gradient(circle at 10% 4%,color-mix(in srgb,var(--accent) 27%,transparent),transparent 34%),
    radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--accent-2) 22%,transparent),transparent 32%),
    linear-gradient(145deg,var(--bg) 0%,var(--bg-2) 48%,color-mix(in srgb,var(--accent) 10%,#E7ECE7) 100%);
}
html[data-appearance="light"] .sidebar{
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 12%,#F7F8F3),color-mix(in srgb,var(--accent-2) 9%,#EDF1EC));
  border-right-color:var(--border);
}
html[data-appearance="light"] .main{
  background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 7%,transparent),color-mix(in srgb,var(--accent-2) 10%,transparent));
}
html[data-appearance="light"] .topbar,
html[data-appearance="light"] .sticky-selector{
  background:color-mix(in srgb,var(--surface) 89%,transparent)!important;
  border-color:var(--border);
}
html[data-appearance="light"] .user-chip,
html[data-appearance="light"] .card,
html[data-appearance="light"] .toolbar,
html[data-appearance="light"] .schedule-scroll,
html[data-appearance="light"] .compare-week,
html[data-appearance="light"] .week-card,
html[data-appearance="light"] .test-card,
html[data-appearance="light"] .theme-panel,
html[data-appearance="light"] .modal,
html[data-appearance="light"] .drawer{
  background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 8%,#FDFDF9),color-mix(in srgb,var(--accent-2) 11%,#EEF2ED));
  border-color:var(--border);
}
html[data-appearance="light"] .schedule-table th{background:color-mix(in srgb,var(--accent-2) 16%,#E8EEE8)}
html[data-appearance="light"] .schedule-table td{background:color-mix(in srgb,var(--accent) 4%,#FBFCF8)}
html[data-appearance="light"] .teacher-track,
html[data-appearance="light"] .legacy-track,
html[data-appearance="light"] .compact-group,
html[data-appearance="light"] .section-check,
html[data-appearance="light"] .test-card-attachment,
html[data-appearance="light"] .attachment-row{
  background:color-mix(in srgb,var(--accent-2) 9%,#F3F5F1);
  border-color:var(--border);
}
.attachment-preview-link:hover{text-decoration:underline}
.attachment-auto-kind{font-size:.65rem;text-transform:uppercase;color:var(--accent-2);text-align:center}
.discussion-list{display:grid;gap:7px;margin-bottom:9px;max-height:220px;overflow:auto}
.discussion-dialog-list{max-height:52vh;margin-bottom:16px}
.discussion-message{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:start;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.discussion-message strong{color:var(--accent-2);font-size:.72rem}.discussion-message span{white-space:pre-wrap;line-height:1.45;font-size:.76rem}.discussion-message .btn{margin-left:auto}
.reviewer-remove{appearance:none;border:0;background:transparent;color:inherit;font-weight:900;cursor:pointer}
.test-reviewer-summary{margin-top:8px;color:var(--text-2);font-size:.7rem;line-height:1.4}
.review-upload-btn{cursor:pointer}
.test-check-chip input:disabled{cursor:not-allowed}.test-check-chip:has(input:disabled){opacity:.72;cursor:not-allowed}
.test-card.direct-test-target{border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent),0 0 30px color-mix(in srgb,var(--accent) 25%,transparent);animation:direct-test-pulse 1.15s ease-in-out 3}@keyframes direct-test-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 15%,transparent),0 0 42px color-mix(in srgb,var(--accent) 34%,transparent)}}
.toast.warning{border-color:color-mix(in srgb,var(--warning) 62%,var(--border))}.toast>span{display:block;line-height:1.4}.toast-action{display:inline-flex;margin-top:9px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 58%,var(--border));border-radius:9px;color:var(--accent-2);background:color-mix(in srgb,var(--accent) 10%,transparent);font-weight:850;text-decoration:none}
.calendar-link-backdrop{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.6);backdrop-filter:blur(8px)}.calendar-link-dialog{width:min(620px,96vw);max-height:90vh;overflow:auto;border:1px solid var(--border);border-radius:22px;background:var(--bg-2);box-shadow:var(--shadow);color:var(--text)}.calendar-link-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px;border-bottom:1px solid var(--border)}.calendar-link-dialog>header strong,.calendar-link-dialog>header small{display:block}.calendar-link-dialog>header small{margin-top:4px;color:var(--muted)}.calendar-link-dialog>p{margin:0;padding:4px 18px 18px;color:var(--text-2);line-height:1.5}.calendar-link-dialog>footer{display:flex;justify-content:flex-end;gap:9px;padding:15px 18px;border-top:1px solid var(--border)}.calendar-link-list{display:grid;gap:8px;padding:18px}.calendar-link-list label{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface);cursor:pointer}.calendar-link-list label:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.calendar-link-list span,.calendar-link-list b,.calendar-link-list small{display:block}.calendar-link-list small{margin-top:4px;color:var(--muted)}
@media(max-width:620px){.calendar-link-dialog>footer{flex-direction:column-reverse}.calendar-link-dialog>footer .btn{width:100%}}
@media(max-width:620px){.event-info-grid{grid-template-columns:1fr}.discussion-message{grid-template-columns:1fr}.discussion-message .btn{margin-left:0}}
/* Test workflow: compact completed rows, sorting and planning state */
.test-list-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.test-list-controls label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--muted)}.test-list-controls .select{min-width:190px;padding:8px 34px 8px 10px}.test-collapse-switch{white-space:nowrap}.test-compact-summary{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(170px,1fr) auto minmax(130px,.8fr) auto auto;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:14px 16px;cursor:pointer}.test-compact-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-compact-summary>span:not(.pill),.test-compact-summary time{font-size:13px;color:var(--muted)}.test-expand-label{justify-self:end;color:var(--accent);font-size:12px}.test-card.is-collapsible{padding:0;overflow:hidden}.test-card.is-collapsible .test-card-detail{padding:18px}.test-card.is-collapsed .test-card-detail{display:none}.test-card.is-collapsed .test-compact-summary{background:color-mix(in srgb,var(--surface) 82%,var(--accent) 4%)}.test-day-chip.is-editing,.test-flow-ticket.is-editing{border-style:dashed;background:color-mix(in srgb,var(--warning,#d49b35) 15%,var(--surface));color:var(--ink)}.coordinator-finalize{background:var(--accent);border-color:var(--accent)}
@media(max-width:900px){.test-list-controls{order:3;width:100%}.test-compact-summary{grid-template-columns:1fr auto}.test-compact-summary>span:not(.pill),.test-compact-summary time{display:none}.test-compact-summary .pill{justify-self:start}.test-expand-label{grid-column:2;grid-row:1/3}}
