:root{--bg: #f4f6fb;--bg-2: #edf2f7;--surface: rgba(255, 255, 255, .86);--surface-solid: #ffffff;--surface-soft: #f8fafc;--text: #0b1220;--muted: #64748b;--muted-2: #94a3b8;--border: #e5e7eb;--border-strong: #cbd5e1;--primary: #111827;--primary-2: #1f2937;--accent: #2563eb;--accent-2: #0ea5e9;--accent-soft: #eff6ff;--success: #059669;--warning: #d97706;--danger: #dc2626;--radius-sm: 12px;--radius: 18px;--radius-lg: 28px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow: 0 18px 55px rgba(15, 23, 42, .08);--shadow-soft: 0 10px 28px rgba(15, 23, 42, .06);--sidebar: #ffffff;--sidebar-text: #334155}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 2% 0%,rgba(37,99,235,.14),transparent 26rem),radial-gradient(circle at 100% 12%,rgba(14,165,233,.1),transparent 22rem),linear-gradient(180deg,#fbfdff 0%,var(--bg) 55%,var(--bg-2) 100%);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{border:0;border-radius:14px;background:var(--primary);color:#fff;padding:11px 15px;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease;box-shadow:var(--shadow-xs)}button:hover{transform:translateY(-1px);box-shadow:0 12px 26px #0f172a24;background:#020617}button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.login-page{min-height:100vh;display:grid;place-items:center;padding:30px}.modern-login{grid-template-columns:minmax(320px,1fr) minmax(360px,460px);gap:26px;background:radial-gradient(circle at 18% 15%,rgba(96,165,250,.18),transparent 24rem),linear-gradient(135deg,#f8fafc,#eef4ff 48%,#e0f2fe)}.login-hero{width:100%;max-width:780px;color:#0f172a;padding:42px}.login-brand-mark{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;background:#fff;color:#1d4ed8;border:1px solid rgba(226,232,240,.9);box-shadow:var(--shadow-soft);margin-bottom:26px}.login-hero h1{max-width:720px;font-size:clamp(42px,6vw,76px);line-height:.94;letter-spacing:-.075em;margin:0 0 24px}.login-copy{max-width:620px;color:#475569;font-size:18px;line-height:1.75}.login-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:34px}.login-feature-grid div{display:flex;align-items:center;gap:10px;padding:14px;border-radius:18px;background:#ffffffb8;border:1px solid rgba(226,232,240,.85);color:#334155;font-weight:800;box-shadow:var(--shadow-xs)}.login-card{width:100%;max-width:460px;background:#ffffffeb;border:1px solid rgba(226,232,240,.9);border-radius:32px;padding:34px;box-shadow:0 30px 80px #0f172a1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.glass-card{border:1px solid rgba(255,255,255,.78)}.login-logo{width:68px;height:68px;border-radius:23px;background:#0f172a;color:#fff;display:grid;place-items:center;font-weight:950;margin-bottom:18px;letter-spacing:-.05em}.login-card h1,.login-card h2{margin:0 0 8px;letter-spacing:-.045em;font-size:30px}.login-card p{color:var(--muted);margin:0 0 24px;line-height:1.55}.login-card label,.panel label{display:block;font-weight:850;font-size:12px;color:#475569;margin-bottom:7px;text-transform:uppercase;letter-spacing:.08em}.login-card input,.panel input,.panel select,textarea,.date-filter{width:100%;min-height:46px;padding:12px 13px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);outline:none;transition:border .16s ease,box-shadow .16s ease,background .16s ease;margin:0 0 14px}.login-card input:focus,.panel input:focus,.panel select:focus,textarea:focus,.date-filter:focus{border-color:#93c5fd;box-shadow:0 0 0 4px #2563eb1c}.primary-button{width:100%;margin-top:8px;background:linear-gradient(135deg,#111827,#2563eb)}.login-card small{display:block;margin-top:16px;color:var(--muted);text-align:center}.app-shell{display:grid;grid-template-columns:284px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#ffffffdb;color:var(--sidebar-text);padding:18px 14px;display:flex;flex-direction:column;gap:14px;border-right:1px solid rgba(226,232,240,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:12px;padding:10px 8px 18px;border-bottom:1px solid var(--border)}.brand-logo{width:48px;height:48px;border-radius:17px;background:#0f172a;color:#fff;display:grid;place-items:center;box-shadow:0 14px 28px #0f172a21}.brand strong{display:block;letter-spacing:.08em;color:#0f172a}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.sidebar-section-title{color:var(--muted-2);font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:950;padding:6px 10px 0}.sidebar nav{display:grid;gap:4px;overflow:auto;padding-right:2px}.sidebar a,.logout{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;color:#475569;background:transparent;text-align:left;border:1px solid transparent}.sidebar a svg{color:#64748b}.sidebar a span,.logout span{font-weight:780}.sidebar a.active{background:#0f172a;color:#fff;box-shadow:0 14px 30px #0f172a29}.sidebar a.active svg{color:#bfdbfe}.sidebar a:hover,.logout:hover{background:#f1f5f9;color:#0f172a;border-color:var(--border);transform:none;box-shadow:none}.sidebar-user-card{display:flex;gap:12px;align-items:center;padding:12px;border-radius:18px;margin-top:auto;background:#f8fafc;border:1px solid var(--border)}.user-avatar{width:42px;height:42px;border-radius:14px;background:#e0f2fe;color:#0369a1;display:grid;place-items:center;font-weight:950}.sidebar-user-card strong{display:block;font-size:13px;color:#0f172a}.sidebar-user-card span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.logout{justify-content:center;border:1px solid var(--border);background:#fff;color:#334155;box-shadow:none}.main{padding:20px;min-width:0;overflow:auto}.topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:14px}.topbar h2{margin:0;letter-spacing:-.045em;font-size:26px}.eyebrow{margin:0 0 5px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:950}.eyebrow.light{color:#1d4ed8}.search-box{width:min(360px,34vw);height:45px;display:flex;align-items:center;gap:10px;background:#ffffffdb;border:1px solid rgba(226,232,240,.92);border-radius:999px;padding:0 15px;box-shadow:var(--shadow-xs);color:var(--muted);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text)}.icon-button{width:45px;height:45px;padding:0;display:grid;place-items:center;border-radius:999px;background:#ffffffe6;color:#334155;border:1px solid var(--border);box-shadow:var(--shadow-xs)}.role-badge{padding:12px 15px;border-radius:999px;background:#fff;color:#0f172a;font-weight:900;font-size:12px;border:1px solid var(--border);box-shadow:var(--shadow-xs)}.content-card{background:var(--surface);border:1px solid rgba(226,232,240,.92);border-radius:30px;padding:24px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}h1{margin:0 0 18px;letter-spacing:-.055em}h3{margin:0;letter-spacing:-.035em}.page-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-title h1{margin-bottom:4px}.page-title p{color:var(--muted);margin:0;line-height:1.55}.hero-title{padding:22px;border-radius:26px;background:linear-gradient(135deg,#fffffff5,#eff6ffc2);border:1px solid rgba(226,232,240,.9);box-shadow:var(--shadow-xs)}.hero-title h1{font-size:clamp(30px,4vw,48px)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card,.panel,.event{background:#fffffff2;border:1px solid var(--border);border-radius:var(--radius);padding:19px;box-shadow:var(--shadow-xs)}.card p{margin:0;color:var(--muted);font-weight:760}.card strong{display:block;font-size:38px;letter-spacing:-.06em;margin-top:10px}.metric-card{position:relative;overflow:hidden;min-height:168px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:var(--border-strong)}.metric-card-link{cursor:pointer;text-decoration:none}.metric-card-link:focus-visible{outline:3px solid color-mix(in srgb,var(--accent, #0f6b4f) 35%,transparent);outline-offset:3px;border-color:var(--border-strong);box-shadow:var(--shadow-soft)}.metric-card:after{content:"";position:absolute;inset:auto -34px -54px auto;width:130px;height:130px;border-radius:999px;opacity:.12;background:currentColor}.metric-card span{display:block;color:var(--muted);font-size:12px;margin-top:10px}.metric-icon{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;margin-bottom:16px}.tone-blue{color:#2563eb}.tone-blue .metric-icon{background:#eff6ff}.tone-amber{color:#d97706}.tone-amber .metric-icon{background:#fffbeb}.tone-rose{color:#e11d48}.tone-rose .metric-icon{background:#fff1f2}.tone-emerald{color:#059669}.tone-emerald .metric-icon{background:#ecfdf5}.metric-card p,.metric-card strong,.metric-card span{color:var(--text)}.dashboard-grid{display:grid;grid-template-columns:1.55fr .9fr;gap:15px;margin-top:15px}.modern-panel{padding:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.timeline-list{display:grid;gap:11px}.timeline-list a{display:grid;gap:4px;padding:15px;border-radius:17px;border:1px solid var(--border);background:var(--surface-soft)}.timeline-list a:hover{background:#eff6ff;border-color:#bfdbfe}.timeline-list span{color:var(--muted);font-size:13px}.accent-panel{background:radial-gradient(circle at 90% 10%,rgba(14,165,233,.22),transparent 12rem),linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border:0}.accent-panel .eyebrow.light{color:#bfdbfe}.accent-panel p{color:#dbeafe;line-height:1.7}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.split-panel{display:grid;grid-template-columns:2fr 1fr;gap:18px;align-items:start}.wide-split{grid-template-columns:2fr 1fr}.filters{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:center}.table-wrap{overflow:auto;border-radius:18px;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow-xs)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;background:#f8fafc;font-weight:950}tr:hover td{background:#f8fafc}td small{display:block;color:var(--muted);margin-top:4px}textarea{min-height:92px;resize:vertical}.secondary-link,.file-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 15px;border-radius:14px;background:#fff;color:#1d4ed8;font-weight:900;border:1px solid #bfdbfe;cursor:pointer;box-shadow:var(--shadow-xs)}.secondary-link:hover,.file-button:hover{background:#eff6ff}.import-box,.file-field{background:#f8fafc;border:1px dashed #94a3b8;border-radius:18px;padding:18px}.import-box h3{margin-top:0}.import-box p,.event small{color:var(--muted);line-height:1.45}.notice{display:grid;gap:6px;margin-top:14px;padding:12px;border-radius:14px;background:#ecfdf5;color:#14532d;border:1px solid #bbf7d0}.notice small{color:#166534}.btn-muted{background:#64748b}.btn-danger{background:#b91c1c}.actions{display:flex;gap:8px;min-width:180px}.actions button{width:auto;padding:8px 10px;border-radius:11px}.pill{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:900}.pill.ok{background:#dcfce7;color:#166534}.pill.muted{background:#e2e8f0;color:#475569}.mini{padding:8px 10px;border-radius:10px;font-size:12px}.event-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.event span{display:inline-block;background:#e2e8f0;border-radius:999px;padding:6px 10px;font-size:12px;margin:8px 0;font-weight:850}.event p{font-weight:850}.file-field{display:flex;flex-direction:column;gap:6px}.file-field span{font-weight:850;color:var(--text)}.file-field input{padding:8px;background:#fff;border-radius:10px;border:1px solid var(--border)}.file-field a,.file-links a{color:#1d4ed8;font-weight:850;text-decoration:none}.file-links{display:flex;gap:8px;flex-wrap:wrap}.file-links a{background:var(--accent-soft);border-radius:999px;padding:6px 10px;font-size:12px}.avatar{width:48px;height:48px;object-fit:cover;border-radius:999px;border:2px solid var(--border);display:inline-grid;place-items:center}.avatar.empty{background:#e2e8f0;color:var(--muted)}.teacher-preview{width:100%;max-height:260px;object-fit:contain;border-radius:18px;background:#f8fafc;border:1px solid var(--border);margin-top:16px}@media(max-width:1200px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid,.event-list{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.split-panel,.wide-split{grid-template-columns:1fr}}@media(max-width:980px){.app-shell{grid-template-columns:86px 1fr}.brand{justify-content:center;padding:8px 0 16px}.brand div:not(.brand-logo),.sidebar-section-title,.sidebar-user-card div,.sidebar a span,.logout span{display:none}.sidebar{padding:18px 12px}.sidebar a,.logout{justify-content:center}.sidebar-user-card{justify-content:center;padding:10px}.search-box{display:none}}@media(max-width:760px){.modern-login{grid-template-columns:1fr}.login-hero{display:none}.login-card{max-width:100%}.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:20;height:auto;flex-direction:row;align-items:center;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border)}.brand,.sidebar-user-card,.logout,.sidebar-section-title{display:none}.sidebar nav{display:flex;overflow:visible}.sidebar a span{display:none}.main{padding:14px}.content-card{border-radius:22px;padding:16px}.topbar{align-items:flex-start}.role-badge{display:none}.mobile-only{display:grid}.page-title{align-items:flex-start;flex-direction:column}.filters,.form-grid,.grid,.event-list,.login-feature-grid{grid-template-columns:1fr}}.calendar-pro-page{display:grid;gap:18px}.calendar-pro-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:4px 2px 0}.calendar-pro-header h1{margin:4px 0 8px;font-size:clamp(28px,4vw,44px);letter-spacing:-.05em}.calendar-pro-header p{margin:0;color:var(--muted);max-width:760px;line-height:1.55}.calendar-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.calendar-nav-group{display:inline-flex;gap:6px}.icon-btn{width:40px;height:40px;padding:0;display:inline-grid;place-items:center;border-radius:999px;background:#fff;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-xs);font-size:22px}.icon-btn:hover{background:#f8fafc}.segmented-control{display:inline-flex;padding:4px;border-radius:999px;background:#eef2f7;border:1px solid var(--border)}.segmented-control button{width:auto;padding:9px 14px;border-radius:999px;background:transparent;color:#64748b;box-shadow:none}.segmented-control button.active{background:#fff;color:#0f172a;box-shadow:var(--shadow-xs)}.calendar-metrics-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.calendar-metrics-row div{background:#ffffffd1;border:1px solid var(--border);border-radius:18px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-xs)}.calendar-metrics-row span{color:var(--muted);font-size:13px;font-weight:850}.calendar-metrics-row strong{font-size:24px;letter-spacing:-.04em}.calendar-pro-shell{display:grid;grid-template-columns:280px minmax(0,1fr) 330px;gap:16px;align-items:start}.calendar-left-rail,.calendar-right-rail{display:grid;gap:14px;position:sticky;top:18px}.create-event-button{min-height:50px;border-radius:18px;background:#2563eb;box-shadow:0 16px 30px #2563eb3b}.mini-calendar{padding:16px}.mini-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.mini-calendar-head span{color:var(--muted);font-size:13px;font-weight:850}.mini-calendar-weekdays,.mini-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.mini-calendar-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:950;padding-bottom:8px}.mini-calendar-grid button{width:30px;height:30px;padding:0;border-radius:999px;background:transparent;color:#334155;font-size:12px;box-shadow:none}.mini-calendar-grid button.other-month{color:#cbd5e1}.mini-calendar-grid button.today{background:#dbeafe;color:#1d4ed8}.mini-calendar-grid button.selected{background:#2563eb;color:#fff}.calendar-pro-filters{display:grid;gap:10px;padding:16px}.calendar-pro-filters h3,.selected-day-card h3,.agenda-panel h3,.calendar-pro-form h3{margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.selected-day-card{padding:16px;display:grid;gap:10px}.agenda-mini-item,.agenda-item{width:100%;display:grid;text-align:left;border:1px solid var(--border);background:#fff;color:var(--text);box-shadow:none;border-radius:14px;padding:11px}.agenda-mini-item span{color:#2563eb;font-weight:950;font-size:12px}.agenda-mini-item strong{font-size:13px}.calendar-main-panel{min-height:720px;background:#fff;border:1px solid var(--border);border-radius:28px;overflow:hidden;box-shadow:var(--shadow-sm)}.calendar-weekday-row{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid var(--border)}.calendar-weekday-row div{padding:14px 16px;color:var(--muted);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-cell{min-height:120px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px;background:#fff;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.calendar-month-cell:hover{background:#f8fafc;box-shadow:inset 0 0 0 1px #bfdbfe}.calendar-month-cell.outside-month{background:#fbfdff;color:#94a3b8}.calendar-month-cell.is-today{background:#eff6ff}.cell-date-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.cell-date-row span{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:999px;font-weight:900}.is-today .cell-date-row span{background:#2563eb;color:#fff}.cell-date-row em{font-style:normal;color:#64748b;font-size:12px;font-weight:900}.cell-events{display:grid;gap:5px}.calendar-event-chip{width:100%;min-height:27px;border:0;display:flex;align-items:center;justify-content:flex-start;gap:6px;text-align:left;padding:5px 8px;border-radius:9px;box-shadow:none;color:#0f172a;overflow:hidden}.calendar-event-chip span{font-size:11px;opacity:.74;font-weight:950;flex:0 0 auto}.calendar-event-chip strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-chip-default{background:#dbeafe;color:#1e3a8a}.event-chip-permission{background:#dcfce7;color:#14532d}.event-chip-pending{background:#fef3c7;color:#92400e}.event-chip-danger{background:#fee2e2;color:#991b1b}.event-chip-meeting{background:#ede9fe;color:#5b21b6}.event-chip-muted{background:#e2e8f0;color:#475569}.calendar-week-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:720px}.week-column{border-right:1px solid var(--border);min-width:0;cursor:pointer;background:#fff}.week-column:hover{background:#f8fafc}.week-column.today-week{background:#eff6ff}.week-column-head{display:grid;justify-items:center;gap:6px;padding:18px 10px;border-bottom:1px solid var(--border)}.week-column-head span{color:var(--muted);font-size:12px;font-weight:950;text-transform:uppercase}.week-column-head strong{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:#f1f5f9;font-size:18px}.today-week .week-column-head strong{background:#2563eb;color:#fff}.week-column-events{display:grid;align-content:start;gap:8px;padding:12px}.week-column-events p{color:#94a3b8;font-size:13px;text-align:center;margin-top:20px}.calendar-day-board{padding:18px;display:grid;gap:12px}.day-board-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--border)}.day-board-head strong{font-size:22px;text-transform:capitalize}.day-event-card{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:18px;border-radius:22px;border:1px solid transparent;cursor:pointer}.day-event-time{display:grid;align-content:start;gap:4px}.day-event-time strong{font-size:18px}.day-event-time span,.day-event-card p,.day-event-card small{color:#475569}.day-event-card h3{margin:0 0 6px;font-size:20px}.day-event-card p{margin:0 0 4px}.empty-calendar-state{display:grid;place-items:center;min-height:420px;color:var(--muted);background:#f8fafc;border-radius:20px;border:1px dashed #cbd5e1}.agenda-panel{padding:16px;display:grid;gap:12px}.agenda-item{grid-template-columns:auto 1fr;gap:10px;align-items:start}.agenda-item:hover{background:#f8fafc}.agenda-dot{width:10px;height:10px;border-radius:999px;margin-top:4px}.agenda-item small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}.calendar-pro-form{display:grid;gap:12px;padding:16px}.form-title-row{display:flex;justify-content:space-between;align-items:center}.form-title-row .icon-btn{width:34px;height:34px;font-size:20px}.calendar-pro-form label{display:grid;gap:6px;font-size:12px;color:var(--muted);font-weight:900}.calendar-pro-form label input,.calendar-pro-form label select,.calendar-pro-form label textarea{margin-top:0}.event-admin-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.event-admin-actions button{width:100%;padding:10px}@media(max-width:1380px){.calendar-pro-shell{grid-template-columns:260px minmax(0,1fr)}.calendar-right-rail{grid-column:1 / -1;position:static;grid-template-columns:1fr 1fr}}@media(max-width:1080px){.calendar-pro-header{align-items:flex-start;flex-direction:column}.calendar-toolbar{justify-content:flex-start}.calendar-pro-shell{grid-template-columns:1fr}.calendar-left-rail{position:static;grid-template-columns:1fr 1fr}.calendar-right-rail{grid-template-columns:1fr}.calendar-month-cell{min-height:108px}.calendar-metrics-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.calendar-toolbar,.calendar-nav-group,.segmented-control{width:100%}.segmented-control button{flex:1}.calendar-left-rail,.calendar-metrics-row{grid-template-columns:1fr}.calendar-main-panel{border-radius:20px;min-height:auto}.calendar-weekday-row{display:none}.calendar-month-grid{grid-template-columns:1fr}.calendar-month-cell{min-height:auto;border-right:0}.calendar-month-cell.outside-month{display:none}.calendar-week-board{grid-template-columns:1fr;min-height:auto}.day-event-card,.two-col,.event-admin-actions{grid-template-columns:1fr}}.module-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:800;letter-spacing:.02em}.reports-hero h1{letter-spacing:-.04em}.report-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.report-actions button{display:inline-flex;align-items:center;gap:8px}.pro-filters{align-items:end;background:linear-gradient(180deg,#fff,#fbfdff)}.pro-stat{position:relative;overflow:hidden;min-height:118px}.pro-stat:after{content:"";position:absolute;right:-22px;top:-22px;width:82px;height:82px;border-radius:50%;background:#0f172a0b}.pro-stat-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#f8fafc;border:1px solid #e2e8f0;color:#0f172a;margin-bottom:14px}.rank-highlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}.rank-leader-card{background:#111827;color:#fff;border-radius:26px;padding:22px;min-height:150px;box-shadow:0 20px 45px #0f172a2e;display:flex;flex-direction:column;justify-content:space-between}.rank-leader-card.success{background:linear-gradient(135deg,#065f46,#16a34a)}.rank-leader-card.warning{background:linear-gradient(135deg,#7c2d12,#f97316)}.rank-leader-card span{color:#ffffffb8;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.rank-leader-card strong{display:block;font-size:22px;line-height:1.15;margin:18px 0 8px;letter-spacing:-.03em}.rank-leader-card p{margin:0;color:#ffffffc7}.pro-charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}.chart-card-pro{min-height:420px;padding:20px;overflow:hidden}.chart-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.chart-card-head h2{margin:0;font-size:18px;letter-spacing:-.02em}.chart-card-head p{margin:4px 0 0;color:#64748b;font-size:13px}.chart-canvas{height:315px;width:100%}.chart-tooltip{background:#fffffff5;border:1px solid #e2e8f0;box-shadow:0 18px 48px #0f172a29;border-radius:14px;padding:10px 12px;display:grid;gap:4px;min-width:145px;color:#0f172a}.chart-tooltip strong{font-size:13px}.chart-tooltip span{font-size:12px;color:#475569}.empty-chart{height:100%;border:1px dashed #cbd5e1;border-radius:20px;display:grid;place-items:center;color:#64748b;background:#f8fafc;text-align:center;padding:24px}.mini-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:-6px;color:#475569;font-size:12px}.mini-legend span{display:inline-flex;align-items:center;gap:6px}.mini-legend i{width:9px;height:9px;border-radius:999px;display:inline-block}.ranking-table-pro{margin-top:18px}.rank-number{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#f1f5f9;font-weight:900;color:#0f172a}@media(max-width:1180px){.pro-charts-grid,.rank-highlight-grid{grid-template-columns:1fr}.chart-card-pro{min-height:390px}}@media(max-width:760px){.report-actions{width:100%}.report-actions button{width:100%;justify-content:center}.chart-card-pro{padding:16px;border-radius:22px}.chart-canvas{height:300px}}:root{--page-max: 1600px;--gap: 16px;--card-pad: 18px}body{font-size:14px}.main{width:100%}.main>.content-card,.main>section{max-width:var(--page-max);margin-inline:auto}.page-head,.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.page-head h1,.page-title h1,.reports-hero h1{margin:0 0 6px;font-size:clamp(28px,3.2vw,42px);line-height:1.05;letter-spacing:-.055em}.page-head p,.page-title p,.reports-hero p,.muted-text{margin:0;color:var(--muted);line-height:1.55;max-width:780px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.section-head h2{margin:0;font-size:18px;letter-spacing:-.025em}button,.secondary-link,.file-button,.icon-button,.icon-btn{min-height:42px}button.secondary,.secondary{background:#fff;color:#0f172a;border:1px solid var(--border);box-shadow:var(--shadow-xs)}button.secondary:hover,.secondary:hover{background:#f8fafc;color:#0f172a}.report-actions,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-actions button,.actions button{width:auto;white-space:nowrap}.panel,.card,.event,.chart-card-pro,.rank-leader-card,.stat-card,.panel input,.panel select,.panel textarea,.login-card input{min-width:0}.report-filters,.pro-filters,.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:end;margin-bottom:16px}.report-filters button,.pro-filters button,.filters button{width:100%;min-height:46px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.stats-grid,.report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:16px 0}.stat-card{background:#fffffff2;border:1px solid var(--border);border-radius:20px;padding:16px;min-height:122px;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.stat-card span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.075em;line-height:1.25}.stat-card strong{font-size:clamp(26px,3vw,34px);line-height:1;letter-spacing:-.055em;color:var(--text);overflow-wrap:anywhere}.stat-card.danger,.stat-card.danger strong,.stat-card.danger .pro-stat-icon{color:var(--danger)}.stat-card.success,.stat-card.success strong,.stat-card.success .pro-stat-icon{color:var(--success)}.pro-stat{min-height:128px}.pro-stat-icon{flex:0 0 auto}.rank-highlight-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.rank-leader-card{min-height:164px}.rank-leader-card strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:50px}.reports-grid,.pro-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:16px;align-items:stretch}.chart-card-pro{height:430px;min-height:430px;padding:18px;display:flex;flex-direction:column}.chart-card-head{flex:0 0 auto;min-height:58px;margin-bottom:10px}.chart-card-head h2{font-size:17px;line-height:1.2}.chart-card-head p{line-height:1.35}.chart-canvas{flex:1 1 auto;height:auto;min-height:0}.mini-legend{flex:0 0 auto;max-height:54px;overflow:auto;padding-top:8px;margin-top:0}.empty-chart{min-height:100%}.table-wrap{width:100%;max-width:100%;overflow-x:auto}.panel.table-wrap{padding:0}.panel.table-wrap .section-head{padding:18px 18px 0}table{min-width:920px}th,td{padding:12px 14px;vertical-align:middle}td strong{font-size:13px}.score{display:inline-grid;place-items:center;min-width:44px;height:28px;padding:0 10px;border-radius:999px;font-weight:950;font-size:12px}.score.good{background:#dcfce7;color:#166534}.score.mid{background:#fef3c7;color:#92400e}.score.bad{background:#fee2e2;color:#991b1b}img,.teacher-preview,.avatar{max-width:100%}.avatar{flex:0 0 48px}.file-links,.actions{max-width:100%}.calendar-pro-shell,.calendar-main-panel,.calendar-left-rail,.calendar-right-rail{min-width:0}.calendar-event-chip strong,.agenda-item strong,.agenda-mini-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1180px){.rank-highlight-grid{grid-template-columns:1fr}.rank-leader-card strong{min-height:auto}}@media(max-width:900px){.page-head,.page-title,.section-head{align-items:flex-start;flex-direction:column}.report-actions,.actions{width:100%}.report-actions button,.actions button{flex:1 1 160px}.chart-card-pro{height:390px;min-height:390px}}@media(max-width:620px){.stats-grid,.report-stats,.reports-grid,.pro-charts-grid,.report-filters,.pro-filters,.filters{grid-template-columns:1fr}.stat-card{min-height:104px}.chart-card-pro{height:360px;min-height:360px}.chart-card-head{min-height:auto}.report-actions button,.actions button{width:100%;flex:1 1 100%}}.global-search{position:relative;z-index:30}.pro-search{width:min(470px,40vw);position:relative}.clear-search{width:26px;height:26px;padding:0;border-radius:999px;background:#f1f5f9;color:#64748b;box-shadow:none}.search-popover{position:absolute;right:0;top:54px;width:min(520px,88vw);max-height:580px;overflow:auto;padding:10px;border-radius:22px;background:#fffffffa;border:1px solid var(--border);box-shadow:0 24px 70px #0f172a2e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.search-popover-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 12px;border-bottom:1px solid var(--border);margin-bottom:8px}.search-popover-head button{width:auto;padding:7px 10px;background:#f1f5f9;color:#334155;box-shadow:none}.search-result{width:100%;display:grid;gap:4px;text-align:left;background:#fff;color:var(--text);border:1px solid transparent;border-radius:16px;padding:12px 13px;box-shadow:none}.search-result:hover{background:#eff6ff;border-color:#bfdbfe;transform:none;box-shadow:none}.search-result span{width:max-content;padding:4px 8px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:950}.search-result strong{font-size:14px}.search-result small{color:var(--muted)}.search-empty{padding:18px;color:var(--muted);text-align:center}.teacher-name-link{display:grid;gap:4px}.teacher-name-link:hover strong{color:#1d4ed8}.teacher-profile-page{display:grid;gap:18px}.profile-hero{position:relative;overflow:hidden;padding:26px;background:radial-gradient(circle at 90% 0%,rgba(37,99,235,.18),transparent 20rem),linear-gradient(135deg,#fffffffa,#eff6ffd1)}.back-button{width:auto;display:inline-flex;align-items:center;gap:8px;background:#fff;color:#334155;border:1px solid var(--border);box-shadow:var(--shadow-xs);margin-bottom:20px}.profile-main{display:grid;grid-template-columns:124px minmax(0,1fr) 150px;gap:22px;align-items:center}.profile-photo{width:124px;height:124px;object-fit:cover;border-radius:34px;border:4px solid white;box-shadow:var(--shadow-soft);background:#f8fafc}.profile-photo.placeholder{display:grid;place-items:center;color:#64748b}.profile-photo-trigger{position:relative;width:124px;height:124px;min-height:0;padding:0;border:0;border-radius:34px;background:transparent;box-shadow:none;cursor:zoom-in;overflow:visible;justify-self:start}.profile-photo-trigger:hover,.profile-photo-trigger:focus-visible{background:transparent;box-shadow:none;transform:none}.profile-photo-trigger .profile-photo{display:block;transition:transform .18s ease,filter .18s ease}.profile-photo-trigger:hover .profile-photo,.profile-photo-trigger:focus-visible .profile-photo{transform:scale(1.025);filter:brightness(.88)}.profile-photo-trigger:focus-visible{outline:3px solid rgba(37,99,235,.42);outline-offset:5px}.profile-photo-zoom-hint{position:absolute;left:50%;bottom:10px;display:inline-flex;align-items:center;gap:5px;transform:translate(-50%);padding:5px 8px;border-radius:999px;background:#0f172ad1;color:#fff;font-size:11px;font-weight:900;line-height:1;opacity:0;pointer-events:none;transition:opacity .18s ease;white-space:nowrap}.profile-photo-trigger:hover .profile-photo-zoom-hint,.profile-photo-trigger:focus-visible .profile-photo-zoom-hint{opacity:1}.teacher-photo-modal-backdrop{z-index:1800;padding:24px;background:#020617c7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.teacher-photo-modal{position:relative;display:grid;justify-items:center;gap:12px;width:min(94vw,1200px);max-height:92vh;padding:18px;border:1px solid rgba(255,255,255,.18);border-radius:26px;background:#0f172af0;box-shadow:0 32px 100px #0000007a}.teacher-photo-modal img{display:block;max-width:100%;max-height:calc(92vh - 94px);width:auto;height:auto;object-fit:contain;border-radius:18px;background:#0f172a}.teacher-photo-modal-close{position:absolute;top:12px;right:12px;z-index:1;display:grid;place-items:center;width:42px;height:42px;min-height:42px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:#0f172ad1;color:#fff;box-shadow:0 10px 28px #0000004d}.teacher-photo-modal-close:hover{background:#020617}.teacher-photo-modal-caption{color:#fff;font-size:15px;font-weight:900;text-align:center}.profile-title-block h1{font-size:clamp(34px,4vw,58px);line-height:.96;margin:2px 0 12px;letter-spacing:-.065em}.profile-meta,.profile-contact-row{display:flex;flex-wrap:wrap;gap:9px}.profile-meta span,.profile-contact-row a{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;background:#ffffffd6;border:1px solid var(--border);color:#334155;font-weight:850;font-size:13px}.profile-contact-row{margin-top:13px}.compliance-ring{width:142px;height:142px;border-radius:999px;display:grid;place-items:center;align-content:center;background:conic-gradient(#2563eb 0,#2563eb 75%,#e2e8f0 75%,#e2e8f0);color:#0f172a;box-shadow:var(--shadow-soft);border:8px solid white}.compliance-ring strong{font-size:32px;letter-spacing:-.06em}.compliance-ring span{color:#475569;font-weight:900;font-size:12px}.profile-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.profile-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:6px;background:#fffc;border:1px solid var(--border);border-radius:999px;width:max-content;max-width:100%}.profile-tabs button{width:auto;background:transparent;color:#64748b;box-shadow:none;border-radius:999px;padding:10px 14px}.profile-tabs button.active{background:#0f172a;color:#fff}.profile-grid-two{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.profile-section{display:grid;gap:18px}.profile-section h3{display:flex;align-items:center;gap:8px}.summary-list{display:grid;gap:10px}.summary-list div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.summary-list span{color:var(--muted);font-weight:850}.summary-list strong{color:var(--text)}.profile-files{margin-top:4px}.teacher-score-bars{display:grid;gap:16px}.teacher-score-bars div div{display:flex;justify-content:space-between;margin-bottom:8px}.teacher-score-bars span{color:var(--muted);font-weight:850}.teacher-score-bars progress{width:100%;height:12px;border:0;border-radius:999px;overflow:hidden}.teacher-score-bars progress::-webkit-progress-bar{background:#e2e8f0;border-radius:999px}.teacher-score-bars progress::-webkit-progress-value{background:#2563eb;border-radius:999px}.teacher-score-bars progress::-moz-progress-bar{background:#2563eb;border-radius:999px}@media(max-width:1200px){.profile-main{grid-template-columns:100px minmax(0,1fr)}.compliance-ring{grid-column:1 / -1;width:100%;height:auto;border-radius:24px;padding:20px;display:flex;gap:10px;justify-content:center}.profile-metrics-grid,.profile-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.pro-search{display:none}.profile-main{grid-template-columns:1fr;text-align:center}.profile-photo{margin:0 auto}.profile-photo-trigger{justify-self:center}.teacher-photo-modal-backdrop{padding:12px}.teacher-photo-modal{width:100%;padding:12px;border-radius:20px}.teacher-photo-modal img{max-height:calc(94vh - 82px);border-radius:14px}.profile-meta,.profile-contact-row{justify-content:center}.profile-metrics-grid,.profile-grid-two{grid-template-columns:1fr}.profile-tabs{border-radius:22px;width:100%}.profile-tabs button{flex:1}}.notification-wrap,.notification-button{position:relative}.notification-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff}.notification-popover{position:absolute;right:0;top:calc(100% + 12px);width:min(420px,92vw);z-index:40;background:#fffffffa;border:1px solid #e5e7eb;border-radius:22px;box-shadow:0 24px 70px #0f172a2e;overflow:hidden}.notification-head{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #eef2f7}.notification-head strong{display:block;font-size:15px}.notification-head span{color:#64748b;font-size:12px}.notification-head button,.secondary-button,.mini-button{border:1px solid #e2e8f0;background:#fff;border-radius:12px;padding:9px 12px;font-weight:700;color:#0f172a;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.notification-audio-hint{display:flex;gap:7px;align-items:center;padding:10px 16px;background:#f8fafc;color:#64748b;font-size:12px}.notification-list{max-height:360px;overflow:auto}.notification-item{padding:13px 16px;border-bottom:1px solid #f1f5f9;display:grid;gap:4px}.notification-item.unread{background:#f8fbff}.notification-item strong{font-size:13px}.notification-item span{color:#475569;font-size:12px;line-height:1.35}.notification-item small{color:#94a3b8}.notification-footer{display:block;padding:13px 16px;text-align:center;color:#1d4ed8;font-weight:800;text-decoration:none;background:#f8fafc}.compact-title{margin-bottom:18px}.pending-metrics .metric-card{min-height:148px}.pending-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.pending-panel{min-height:360px}.soft-count{min-width:34px;height:34px;border-radius:999px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center;font-weight:900;color:#334155}.pending-list{display:grid;gap:10px}.pending-item{padding:13px;border:1px solid #edf2f7;border-radius:16px;background:#fff;display:flex;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;transition:.18s ease}.pending-item:hover{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:0 12px 28px #0f172a0f}.pending-item strong{font-size:13px;display:block}.pending-item span{color:#64748b;font-size:12px;display:block;margin-top:3px}.pending-item small{color:#94a3b8;white-space:nowrap}.empty-state{color:#94a3b8;font-size:13px;padding:12px 0}.two-column-grid{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:18px;align-items:start}.form-panel{display:grid;gap:11px}.form-panel label{font-size:12px;font-weight:800;color:#475569}.form-panel input,.form-panel select,.form-panel textarea,.filters-row select{width:100%;border:1px solid #e2e8f0;border-radius:14px;padding:11px 12px;background:#fff;color:#0f172a}.form-panel textarea{resize:vertical}.form-panel button[type=submit]{margin-top:4px}.filters-row{display:flex;gap:10px;margin-bottom:14px;justify-content:flex-end}.compact-table{max-height:620px;overflow:auto}.status-pill{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:900}.action-cell{display:flex;flex-wrap:wrap;gap:6px}.mini-button{padding:7px 9px;font-size:11px}.mini-button.success{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.mini-button.danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}@media(max-width:1200px){.pending-grid,.two-column-grid{grid-template-columns:1fr}}.evidence-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start}.evidence-upload{display:grid;gap:14px;position:sticky;top:18px}.evidence-upload h2,.evidence-list-panel h2{margin:0}.evidence-upload textarea{min-height:96px;resize:vertical}.helper-text{margin:0;color:var(--muted, #64748b);font-size:12px;line-height:1.45}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.small-btn{width:auto!important;min-height:34px;padding:8px 10px!important;border-radius:10px}button.danger,.danger{background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}.audit-diff{display:grid;gap:6px;max-width:340px}.audit-diff small{display:block;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px;line-height:1.35}.profile-actions-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.profile-actions-row .secondary,.report-actions .secondary{width:auto}@media(max-width:1050px){.evidence-layout{grid-template-columns:1fr}.evidence-upload{position:static}}.install-chip{width:auto!important;border:1px solid #e2e8f0;background:#fff;color:#0f172a;min-height:38px;padding:0 12px;border-radius:999px;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px #0f172a0f}.install-chip.installed{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.install-chip.muted{background:#f8fafc;color:#64748b}.connection-banner{margin-bottom:14px;border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700}.connection-banner.offline{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.connection-banner.online{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}.page-stack{display:grid;gap:18px}.page-header.clean{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:4px}.pro-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:18px}.modern-panel{background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:18px;box-shadow:0 14px 34px #0f172a0f}.modern-panel h2{margin:0 0 14px;font-size:18px}.status-box{min-height:58px;border-radius:16px;padding:14px;display:flex;align-items:center;gap:10px;font-weight:800}.status-box.success{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}.status-box.warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.code-card{margin:0;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:18px;padding:16px;line-height:1.55;font-size:13px;min-height:210px}.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.checklist-item{border:1px solid #e2e8f0;background:#f8fafc;border-radius:16px;padding:14px;display:flex;align-items:flex-start;gap:10px;color:#334155;line-height:1.35}.checklist-item svg{color:#2563eb;flex:0 0 auto}@media(max-width:1100px){.pro-grid,.checklist-grid{grid-template-columns:1fr}.install-chip.muted{display:none}}.settings-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;align-items:start}.panel-heading h2{display:inline-flex;align-items:center;gap:10px}.institution-logo-preview{width:100%;max-height:180px;object-fit:contain;border:1px solid var(--border);border-radius:18px;background:#f8fafc;padding:16px;margin-bottom:14px}.mt-16{margin-top:16px}.mt-18{margin-top:18px}.form-grid.compact{margin-bottom:10px}.uniform-grid .metric-card{min-height:172px}button.secondary,.secondary{background:#fff;color:#1d4ed8;border:1px solid #bfdbfe;box-shadow:var(--shadow-xs);width:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px}button.secondary:hover,.secondary:hover{background:#eff6ff;color:#1e40af}.security-filters{grid-template-columns:2fr 1fr auto;margin-bottom:16px}.truncate-cell{max-width:360px;overflow:hidden;text-overflow:ellipsis}@media(max-width:1100px){.settings-grid,.security-filters{grid-template-columns:1fr}}.teacher-portal-page{display:flex;flex-direction:column;gap:18px}.teacher-hero{padding:24px;background:linear-gradient(135deg,#fff,#f8fafc 55%,#eef2ff)}.teacher-hero-main{display:flex;align-items:center;gap:20px}.teacher-photo-xl{width:96px;height:96px;border-radius:28px;background:#0f172a;color:#fff;display:grid;place-items:center;font-size:36px;font-weight:800;overflow:hidden;flex:0 0 auto}.teacher-photo-xl img{width:100%;height:100%;object-fit:cover}.teacher-metrics{grid-template-columns:repeat(6,minmax(130px,1fr))}.two-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.portal-list{display:flex;flex-direction:column;gap:10px}.portal-list-item{border:1px solid #e5e7eb;border-radius:18px;padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff}.portal-list-item strong,.portal-list-item span,.portal-list-item a{display:block}.portal-list-item span{color:#64748b;font-size:13px;margin-top:3px}.upload-mini{position:relative;overflow:hidden;border:1px solid #dbe2ea;border-radius:999px;padding:9px 12px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:#0f172a;background:#f8fafc;font-size:13px;font-weight:700;white-space:nowrap}.upload-mini input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.subtle-actions{margin-top:10px}@media(max-width:1100px){.teacher-metrics{grid-template-columns:repeat(3,1fr)}.two-cols{grid-template-columns:1fr}}@media(max-width:720px){.teacher-hero-main{align-items:flex-start;flex-direction:column}.teacher-metrics{grid-template-columns:repeat(2,1fr)}.portal-list-item{align-items:flex-start;flex-direction:column}}.attendance-table-wrap{max-height:72vh}.attendance-table th,.attendance-table td{vertical-align:middle}.attendance-locked-row td{background:#fcfdff}.attendance-check-actions{display:inline-flex;align-items:center;gap:8px}.check-button{width:42px;height:42px;border-radius:14px;padding:0;font-size:24px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;background:#fff;color:#64748b;box-shadow:0 6px 18px #0f172a0f}.check-button.present{color:#16a34a;border-color:#bbf7d0;background:#f0fdf4}.check-button.absent{color:#dc2626;border-color:#fecaca;background:#fff1f2}.check-button.selected.present{background:#16a34a;color:#fff;border-color:#16a34a}.check-button.selected.absent{background:#dc2626;color:#fff;border-color:#dc2626}.check-button:disabled{opacity:.48;cursor:not-allowed;transform:none}.locked-hint{color:#94a3b8;font-size:11px;margin-top:6px}.admin-hint{color:#2563eb}.attendance-note:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.pill.danger-soft{background:#fee2e2;color:#991b1b}.attendance-notice{margin-bottom:16px}.attendance-notice span{color:inherit}@media(max-width:980px){.check-button{width:38px;height:38px;border-radius:12px;font-size:22px}}.payroll-hero{align-items:flex-start}.payroll-filter-panel{grid-template-columns:repeat(5,minmax(160px,1fr));align-items:end}.payroll-stats-grid{grid-template-columns:repeat(5,minmax(150px,1fr))}.payroll-stat-card{min-height:132px}.payroll-stat-card small{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.25}.payroll-supervisor-overview,.payroll-supervisor-table-panel,.payroll-score-panel{margin-top:18px}.payroll-total-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#f8fafc;border:1px solid #e5e7eb;color:#111827;font-weight:700;white-space:nowrap}.supervisor-absence-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.supervisor-absence-card{position:relative;display:grid;gap:14px;min-height:150px;padding:18px;border-radius:22px;border:1px solid #e5e7eb;background:linear-gradient(180deg,#fff,#f9fafb);overflow:hidden}.supervisor-rank-badge{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#111827;color:#fff;font-weight:800}.supervisor-absence-info strong{display:block;color:#111827;font-size:15px;line-height:1.25}.supervisor-absence-info small{display:block;margin-top:3px;color:#6b7280;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supervisor-absence-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.supervisor-absence-metrics span{display:grid;gap:2px;padding:9px 8px;border-radius:14px;background:#fff;border:1px solid #eef2f7;color:#64748b;font-size:11px;text-align:center}.supervisor-absence-metrics b{color:#111827;font-size:18px}.payroll-grid-wide{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch}.payroll-chart-card{min-height:430px}.payroll-chart-canvas{height:330px}.payroll-number{display:inline-grid;place-items:center;min-width:42px;height:32px;padding:0 10px;border-radius:999px;font-weight:800;background:#f3f4f6;color:#111827}.danger-number{background:#fee2e2;color:#991b1b}.empty-card{grid-column:1 / -1;padding:22px;border-radius:18px;border:1px dashed #d1d5db;color:#6b7280;background:#f9fafb}.attendance-locked-row .check-button:disabled{opacity:.48;cursor:not-allowed}.locked-hint{display:block;margin-top:6px;color:#6b7280;font-size:11px}@media(max-width:1180px){.payroll-stats-grid,.payroll-filter-panel,.supervisor-absence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-grid-wide{grid-template-columns:1fr}}@media(max-width:760px){.payroll-stats-grid,.payroll-filter-panel,.supervisor-absence-grid{grid-template-columns:1fr}.payroll-total-pill{width:100%;justify-content:center}.payroll-chart-card{min-height:380px}.payroll-chart-canvas{height:280px}}.coordinators-hero{background:linear-gradient(135deg,#0f172af5,#1e293beb);color:#fff;border:0}.coordinators-hero .module-kicker,.coordinators-hero p{color:#ffffffb8}.coordinators-grid-main{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start;margin-top:18px}.coordinators-list-panel,.coordinator-detail-panel,.chart-card,.table-card{min-width:0}.coordinators-list-panel,.coordinator-detail-panel{background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:18px;box-shadow:0 16px 40px #0f172a0f}.section-title-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.section-title-row h2,.coordinator-detail-header h2,.chart-head h3{margin:4px 0 0}.coordinator-card-list{display:grid;gap:12px;max-height:730px;overflow:auto;padding-right:4px}.coordinator-profile-card{width:100%;border:1px solid #e5e7eb;background:#fff;border-radius:20px;padding:14px;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.coordinator-profile-card:hover,.coordinator-profile-card.active{transform:translateY(-1px);border-color:#94a3b8;box-shadow:0 14px 28px #0f172a14}.coordinator-card-top,.coordinator-detail-header{display:flex;align-items:center;gap:12px}.coordinator-place{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#f1f5f9;font-weight:800;color:#334155}.coordinator-avatar,.coordinator-detail-avatar{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;color:#fff;font-weight:900;background:linear-gradient(135deg,#0f172a,#475569);flex:0 0 auto}.coordinator-detail-avatar{width:64px;height:64px;border-radius:22px;font-size:24px}.coordinator-main{min-width:0;flex:1}.coordinator-main strong,.coordinator-main span,.coordinator-detail-header p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coordinator-main span,.coordinator-detail-header p,.coordinator-mini-grid span,.coordinator-score-row span,.coord-metric-card span,.coord-metric-card small{color:#64748b;font-size:12px}.coordinator-login-dot{width:12px;height:12px;border-radius:999px;background:#cbd5e1;box-shadow:0 0 0 4px #f1f5f9}.coordinator-login-dot.online{background:#22c55e;box-shadow:0 0 0 4px #22c55e24}.coordinator-score-row{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.coordinator-score-row b{font-size:20px}.coordinator-progress{height:8px;border-radius:999px;background:#f1f5f9;overflow:hidden;margin:8px 0 12px}.coordinator-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f172a,#64748b)}.coordinator-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.coordinator-mini-grid span{background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;padding:8px}.coordinator-detail-header{justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #eef2f7;margin-bottom:16px}.coordinator-detail-header>div:nth-child(2){flex:1;min-width:0}.coordinator-status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#f1f5f9;color:#475569;padding:8px 12px;font-size:12px;font-weight:800;white-space:nowrap}.coordinator-status-pill.online{background:#22c55e1f;color:#15803d}.coordinator-metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.coord-metric-card{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff;min-height:122px;display:flex;flex-direction:column;justify-content:space-between}.coord-metric-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#f8fafc;color:#0f172a}.coord-metric-card strong{font-size:28px;letter-spacing:-.04em}.coordinator-chart-card{box-shadow:none}.coordinator-charts-grid{margin-top:18px}.selected-row{background:#f8fafc}.status-pill.muted{background:#f1f5f9;color:#64748b}@media(max-width:1180px){.coordinators-grid-main{grid-template-columns:1fr}.coordinator-card-list{max-height:unset}}@media(max-width:860px){.coordinator-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.coordinator-detail-header{flex-wrap:wrap}}@media(max-width:620px){.coordinator-metrics-grid,.coordinator-mini-grid{grid-template-columns:1fr}}.daily-closure-hero{background:linear-gradient(135deg,#fff,#f8fafc 54%,#eef2ff)}.daily-status-badge,.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;border:1px solid #e5e7eb;background:#f9fafb;color:#374151;white-space:nowrap}.status-pill.green,.daily-status-badge.green{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.status-pill.yellow,.daily-status-badge.yellow{background:#fffbeb;color:#b45309;border-color:#fde68a}.status-pill.red,.daily-status-badge.red{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.status-pill.gray,.daily-status-badge.gray{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.daily-metric{min-height:112px}.daily-metric.success{border-color:#bbf7d0;background:#f0fdf4}.daily-metric.warning{border-color:#fde68a;background:#fffbeb}.daily-metric.danger{border-color:#fecaca;background:#fef2f2}.daily-closure-charts .chart-card{min-height:390px}.daily-progress-card{display:flex;justify-content:space-between;align-items:center;gap:22px;background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:24px;box-shadow:0 16px 35px #0f172a0f;margin-bottom:18px}.daily-progress-card h2{font-size:clamp(30px,4vw,52px);margin:4px 0;letter-spacing:-1px}.daily-progress-card p{margin:0;color:#64748b}.daily-ring{width:120px;height:120px;border-radius:999px;display:grid;place-items:center;background:radial-gradient(circle at center,white 58%,transparent 59%),conic-gradient(#111827 var(--p, 0%),#e5e7eb 0);border:1px solid #e5e7eb;flex:0 0 auto}.daily-ring span{font-weight:900;font-size:24px}.daily-close-form{display:grid;gap:16px;margin-top:18px}.daily-close-form textarea{resize:vertical}.closure-done{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:18px;background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}.closure-done span{display:block;color:#065f46;font-size:13px;margin-top:3px}.ghost.small{width:auto;padding:8px 10px;border-radius:10px;font-size:12px}.pill.success{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.pill.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.muted{color:#94a3b8;font-size:13px}@media(max-width:900px){.daily-progress-card{align-items:flex-start;flex-direction:column}.daily-ring{width:96px;height:96px}}.zone-summary-grid .card span{display:flex;align-items:center;gap:6px;color:#64748b;font-size:12px;margin-top:8px}.zones-layout-grid{grid-template-columns:1fr 1fr}@media(max-width:1100px){.zones-layout-grid{grid-template-columns:1fr}}.smart-alerts-page{display:grid;gap:18px}.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.header-actions input,.smart-alert-filters select{border:1px solid var(--border);border-radius:14px;padding:11px 13px;background:#fff;font-weight:800;color:var(--text)}.smart-alert-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.smart-alert-metric-card{min-height:132px;background:#fff;border:1px solid #e5e7eb;border-radius:22px;padding:18px;box-shadow:0 14px 34px #0f172a0e}.smart-alert-metric-card p{margin:0;color:#64748b;font-weight:850;font-size:12px}.smart-alert-metric-card strong{display:block;margin-top:8px;font-size:34px;letter-spacing:-.055em}.smart-alert-metric-card .metric-icon{margin-bottom:14px}.smart-alert-metric-card.tone-critical{color:#dc2626}.smart-alert-metric-card.tone-high{color:#ea580c}.smart-alert-metric-card.tone-medium{color:#d97706}.smart-alert-metric-card.tone-neutral{color:#2563eb}.smart-alert-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.85fr);gap:18px;align-items:start}.smart-alert-list-panel,.smart-alert-chart-column .chart-card{background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:18px;box-shadow:0 18px 42px #0f172a0e}.smart-alert-filters{display:flex;gap:10px;flex-wrap:wrap}.smart-alert-list{display:grid;gap:12px}.smart-alert-item{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid #e5e7eb;border-radius:20px;background:#fff;color:inherit;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.smart-alert-item:hover{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:0 14px 30px #0f172a12}.smart-alert-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#f1f5f9;color:#334155}.smart-alert-body{min-width:0}.smart-alert-topline{display:flex;align-items:center;gap:8px;margin-bottom:5px}.smart-alert-topline span,.smart-alert-topline strong{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:950}.smart-alert-topline span{color:#64748b}.smart-alert-topline strong{border-radius:999px;padding:4px 8px;background:#f8fafc}.smart-alert-body h3{margin:0;font-size:15px;letter-spacing:-.02em}.smart-alert-body p{margin:5px 0 0;color:#475569;line-height:1.45}.smart-alert-body small{display:block;margin-top:6px;color:#94a3b8;font-weight:800}.smart-alert-metric{min-width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:#f8fafc;font-weight:950}.smart-alert-item.alert-critical{border-left:5px solid #dc2626}.smart-alert-item.alert-critical .smart-alert-icon,.smart-alert-item.alert-critical .smart-alert-topline strong{background:#fef2f2;color:#dc2626}.smart-alert-item.alert-high{border-left:5px solid #ea580c}.smart-alert-item.alert-high .smart-alert-icon,.smart-alert-item.alert-high .smart-alert-topline strong{background:#fff7ed;color:#ea580c}.smart-alert-item.alert-medium{border-left:5px solid #d97706}.smart-alert-item.alert-medium .smart-alert-icon,.smart-alert-item.alert-medium .smart-alert-topline strong{background:#fffbeb;color:#d97706}.smart-alert-item.alert-info{border-left:5px solid #2563eb}.smart-alert-item.alert-info .smart-alert-icon,.smart-alert-item.alert-info .smart-alert-topline strong{background:#eff6ff;color:#2563eb}.smart-alert-chart-column{display:grid;gap:18px}.compact-chart-card{min-height:320px}.empty-state-card{padding:34px;text-align:center;border:1px dashed #cbd5e1;border-radius:22px;background:#f8fafc;color:#64748b}.empty-state-card h3{margin:10px 0 6px;color:#0f172a}.empty-state-card p{margin:0}@media(max-width:1180px){.smart-alert-layout{grid-template-columns:1fr}.smart-alert-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.smart-alert-metrics{grid-template-columns:1fr}.smart-alert-item{grid-template-columns:42px minmax(0,1fr)}.smart-alert-metric{grid-column:1 / -1;width:100%}}.button-like{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border-radius:12px;padding:10px 14px;font-weight:700;border:0;background:#111827;color:#fff;font-size:14px;min-height:40px}.button-like.secondary{background:#f8fafc;color:#111827;border:1px solid #e5e7eb}.advanced-report-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;background:linear-gradient(135deg,#fff,#f8fafc)}.advanced-report-panel h2{margin:4px 0}.advanced-report-panel p{margin:0;color:#6b7280}.advanced-report-grid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px;min-width:360px}.ops-hero{background:linear-gradient(135deg,#111827,#1f2937);color:#fff;border-radius:24px;padding:24px}.ops-hero p,.ops-hero .module-kicker{color:#d1d5db}.ops-hero input{background:#fff}.ops-semaphore{display:flex;justify-content:space-between;align-items:center;gap:20px;border-radius:24px;padding:24px;margin:18px 0;color:#fff;box-shadow:0 22px 55px #0f172a24}.ops-semaphore.verde{background:linear-gradient(135deg,#166534,#16a34a)}.ops-semaphore.amarillo{background:linear-gradient(135deg,#92400e,#f59e0b)}.ops-semaphore.rojo{background:linear-gradient(135deg,#991b1b,#dc2626)}.ops-semaphore span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:12px;opacity:.86}.ops-semaphore strong{font-size:42px;line-height:1}.ops-semaphore p{margin:8px 0 0;color:#ffffffe0}.ops-ring{position:relative;width:150px;height:150px;min-width:150px}.ops-ring b{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:26px}.ops-metric{min-height:112px}.ops-metric.success strong{color:#16a34a}.ops-downloads{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.ops-downloads h2{margin:0}.ops-downloads p{margin:4px 0 0;color:#6b7280}.pill.verde,.pill.green{background:#dcfce7;color:#166534}.pill.amarillo{background:#fef3c7;color:#92400e}.pill.rojo{background:#fee2e2;color:#991b1b}@media(max-width:900px){.advanced-report-panel,.ops-downloads,.ops-semaphore{flex-direction:column;align-items:stretch}.advanced-report-grid{min-width:0;grid-template-columns:1fr}.ops-ring{align-self:center}.ops-semaphore strong{font-size:34px}}.sync-badge{border:1px solid var(--border, #e5e7eb);background:#fff;color:#334155;border-radius:999px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap}.sync-badge.online{color:#047857;background:#ecfdf5;border-color:#bbf7d0}.sync-badge.offline{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.sync-badge.has-pending{color:#92400e;background:#fffbeb;border-color:#fde68a}.spin{animation:udlm-spin 1s linear infinite}@keyframes udlm-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.warn-notice,.notice.warn-notice{background:#fffbeb;border:1px solid #fde68a;color:#78350f}.success-notice,.notice.success-notice{background:#ecfdf5;border:1px solid #bbf7d0;color:#065f46}.danger-notice,.notice.danger-notice{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.offline-summary .card strong{display:flex;align-items:center;min-height:34px}.offline-panel .section-header-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.muted-text{color:#64748b;margin:4px 0 0}.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}@media(max-width:900px){.sync-badge span{display:none}.offline-panel .section-header-row{align-items:flex-start;flex-direction:column}}:root{--bg: #f4f8f5;--bg-2: #eef5f0;--surface: rgba(255, 255, 255, .94);--surface-solid: #ffffff;--surface-soft: #f7fbf8;--text: #10231c;--muted: #64756d;--muted-2: #8a9b93;--border: #dfe9e3;--border-strong: #bfd1c7;--primary: #073b2d;--primary-2: #0b4a37;--accent: #0f6b4f;--accent-2: #15805f;--accent-soft: #e8f5ef;--success: #0b6b4f;--warning: #b7791f;--danger: #b42318;--sidebar: #073b2d;--sidebar-text: #dcebe5;--shadow: 0 18px 50px rgba(7, 59, 45, .1);--shadow-soft: 0 12px 30px rgba(7, 59, 45, .08);--shadow-xs: 0 1px 2px rgba(7, 59, 45, .06)}body{background:radial-gradient(circle at 5% 0%,rgba(15,107,79,.1),transparent 28rem),radial-gradient(circle at 100% 8%,rgba(7,59,45,.08),transparent 25rem),linear-gradient(180deg,#fbfdfb 0%,var(--bg) 58%,var(--bg-2) 100%);color:var(--text)}button{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 10px 22px #073b2d1f}button:hover{background:linear-gradient(135deg,#052d23,#0b5b43)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(15,107,79,.22);outline-offset:2px}.modern-login{background:radial-gradient(circle at 18% 15%,rgba(15,107,79,.16),transparent 24rem),linear-gradient(135deg,#fff,#f1f8f3 48%,#e2f1e9)}.login-brand-mark,.login-logo,.brand-logo{background:linear-gradient(135deg,#073b2d,#0f6b4f);color:#fff}.login-card{border-color:#bfd1c7e6;box-shadow:0 30px 90px #073b2d24}.primary-button{background:linear-gradient(135deg,#073b2d,#0f6b4f)}.login-feature-grid div{border-color:#dfe9e3}.app-shell{grid-template-columns:264px minmax(0,1fr);background:transparent}.sidebar{background:linear-gradient(180deg,#073b2d,#052d23);color:var(--sidebar-text);border-right:0;box-shadow:18px 0 45px #073b2d1a;padding:16px 12px}.brand{border-bottom:1px solid rgba(255,255,255,.1);padding:10px 8px 16px}.brand-logo{background:#ffffff1f;border:1px solid rgba(255,255,255,.12);box-shadow:none}.brand strong{color:#fff;letter-spacing:.12em}.brand span{color:#ffffffb3}.sidebar-section-title{color:#ffffff6b}.sidebar nav{gap:6px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.sidebar a,.logout{min-height:46px;color:#ffffffbd;border-radius:16px;border:1px solid transparent}.sidebar a svg{color:#ffffff9e}.sidebar a:hover,.logout:hover{background:#ffffff14;color:#fff;border-color:#ffffff1a}.sidebar a.active{background:#fff;color:#073b2d;box-shadow:0 14px 34px #00000038}.sidebar a.active svg{color:#0f6b4f}.sidebar-user-card{background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.sidebar-user-card strong{color:#fff}.sidebar-user-card span{color:#ffffffa3}.user-avatar{background:#ffffff24;color:#fff;border:1px solid rgba(255,255,255,.12)}.logout{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.12)}.main{padding:18px;min-height:100vh;max-width:100%}.topbar{position:sticky;top:0;z-index:10;min-height:70px;padding:12px 14px;margin-bottom:14px;border:1px solid rgba(223,233,227,.86);border-radius:24px;background:#ffffffe0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 10px 30px #073b2d0f}.topbar h2{color:#073b2d;font-size:clamp(20px,2.2vw,28px)}.eyebrow{color:#6b7d74}.search-box{width:clamp(240px,28vw,420px);border-color:var(--border);box-shadow:none}.icon-button,.role-badge{border-color:var(--border);color:#073b2d;background:#fff}.role-badge{background:#e8f5ef;color:#073b2d;border-color:#c8ded3}.content-card{min-height:calc(100vh - 124px);border-radius:28px;border-color:#dfe9e3f2;background:#fffffff0;box-shadow:var(--shadow)}.page-title{padding-bottom:16px;border-bottom:1px solid var(--border)}.page-title h1,h1{color:#073b2d}.hero-title{background:linear-gradient(135deg,#fffffffa,#e8f5efdb);border-color:var(--border)}.grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.card,.panel,.event{border-color:var(--border);box-shadow:0 8px 24px #073b2d0b}.card strong{color:#073b2d;font-size:clamp(28px,4vw,38px)}.metric-card{min-height:150px;display:flex;flex-direction:column;justify-content:space-between}.metric-card:after{opacity:.09}.tone-blue{color:#0f6b4f}.tone-blue .metric-icon{background:#e8f5ef}.tone-emerald{color:#0b6b4f}.tone-emerald .metric-icon{background:#e8f5ef}.tone-amber{color:#b7791f}.tone-amber .metric-icon{background:#fff8e8}.tone-rose{color:#b42318}.tone-rose .metric-icon{background:#fff0ed}.accent-panel{background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.12),transparent 12rem),linear-gradient(135deg,#073b2d,#0b4a37)}.accent-panel .eyebrow.light{color:#bfe7d6}.accent-panel p{color:#ffffffc7}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.filters{grid-template-columns:minmax(260px,2fr) minmax(190px,1fr) auto}.login-card input,.panel input,.panel select,textarea,.date-filter{min-height:48px;border-color:var(--border);background:#fbfdfb}.login-card input:focus,.panel input:focus,.panel select:focus,textarea:focus,.date-filter:focus{border-color:#0f6b4f;box-shadow:0 0 0 4px #0f6b4f1f}.secondary-link,.file-button{color:#073b2d;border-color:#c8ded3;background:#fff}.secondary-link:hover,.file-button:hover{background:#e8f5ef}.notice{background:#e8f5ef;color:#073b2d;border-color:#c8ded3}.table-wrap{max-width:100%;border-color:var(--border);box-shadow:none}th{position:sticky;top:0;z-index:1;background:#f2f8f4;color:#48645a}th,td{padding:13px 14px}tr:hover td{background:#f8fcf9}.pill.ok{background:#e2f6eb;color:#075d45}.pill.muted{background:#edf4ef;color:#50675d}.file-links a{background:#e8f5ef;color:#073b2d}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr)}.split-panel,.wide-split{grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr)}.calendar-pro-header h1{color:#073b2d}.calendar-toolbar button,.icon-btn,.view-switch button{background:#fff;color:#073b2d;border:1px solid var(--border);box-shadow:none}.view-switch button.active,.calendar-toolbar button.primary,.icon-btn.active{background:#073b2d;color:#fff}@media(min-width:861px)and (max-width:1180px){.app-shell{grid-template-columns:238px minmax(0,1fr)}.sidebar{padding:14px 10px}.sidebar a,.logout{min-height:44px;padding:10px 11px}.sidebar a span,.logout span{font-size:13px}.main{padding:14px}.content-card{padding:18px;border-radius:24px}.topbar{min-height:64px;padding:10px 12px;border-radius:20px}.topbar-actions{gap:8px}.role-badge{display:none}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.split-panel,.wide-split{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters button{grid-column:span 2}}@media(min-width:761px)and (max-width:860px){.app-shell{grid-template-columns:86px minmax(0,1fr)}.sidebar{padding:14px 10px}.brand{justify-content:center;padding:8px 0 14px}.brand div:not(.brand-logo),.sidebar-section-title,.sidebar-user-card div,.sidebar a span,.logout span{display:none}.sidebar a,.logout{justify-content:center;padding:12px 8px}.sidebar-user-card{justify-content:center;padding:10px}.main{padding:12px}.content-card{padding:16px;border-radius:22px}.topbar{min-height:62px;border-radius:20px}.topbar h2{font-size:20px}.search-box,.role-badge{display:none}.dashboard-grid,.split-panel,.wide-split,.filters,.form-grid,.event-list{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{display:block;padding-bottom:78px}.sidebar{position:fixed;inset:auto 10px 10px 10px;z-index:30;height:64px;border-radius:24px;border:1px solid rgba(255,255,255,.1);flex-direction:row;align-items:center;overflow-x:auto;padding:8px;box-shadow:0 18px 40px #073b2d47}.brand,.sidebar-user-card,.logout,.sidebar-section-title{display:none}.sidebar nav{display:flex;gap:6px;overflow:visible}.sidebar a{min-width:48px;justify-content:center}.sidebar a span{display:none}.main{padding:10px}.topbar{position:sticky;top:8px;border-radius:20px}.content-card{min-height:auto;border-radius:22px;padding:14px}}.sidebar-backdrop{display:none}.floating-return{position:fixed;right:22px;bottom:22px;z-index:80;display:inline-flex;align-items:center;gap:10px;border-radius:999px;background:#0b3d2e;color:#fff;box-shadow:0 18px 44px #0b3d2e47}.floating-return:hover{background:#062e22}.teacher-search-panel,.attendance-search-panel{display:grid;grid-template-columns:minmax(260px,1fr) minmax(190px,260px) auto;gap:12px;align-items:center;margin-bottom:14px}.attendance-search-panel{grid-template-columns:minmax(260px,1fr) auto}.teacher-search-box{min-height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--border);border-radius:16px;background:#fff}.teacher-search-box input{min-height:auto;padding:0;border:0;border-radius:0;margin:0;box-shadow:none}.teacher-search-box input:focus{box-shadow:none}.teachers-list-top{margin-bottom:16px}.teachers-headline .report-actions button,.teacher-search-panel button,.attendance-search-panel button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.teacher-form-panel{margin-top:16px}.pill.warn{background:#fef3c7;color:#92400e}.pill.danger,.pill.danger-soft{background:#fee2e2;color:#991b1b}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:22px;background:#0f172a6b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.calendar-popup-card{width:min(760px,96vw);max-height:min(92vh,920px);overflow:auto;background:#fff;border:1px solid var(--border);border-radius:28px;padding:22px;box-shadow:0 30px 90px #0f172a47}.popup-title-row h3{font-size:24px}.calendar-popup-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.popup-actions{display:grid;grid-template-columns:1fr auto;gap:10px}.calendar-pro-shell{grid-template-columns:280px minmax(0,1fr) 300px}.calendar-right-rail{align-self:start}.payroll-teachers-page .payroll-grid-wide{margin-bottom:16px}@media(max-width:1180px){.teacher-search-panel{grid-template-columns:1fr 220px auto}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.mobile-only{display:grid}.sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;background:#0f172a61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sidebar.tablet-sidebar{position:fixed;z-index:90;top:0;left:0;width:min(330px,86vw);height:100vh;transform:translate(-105%);transition:transform .22s ease;flex-direction:column;align-items:stretch;overflow:hidden;padding:18px 14px;border-right:1px solid rgba(226,232,240,.9);border-bottom:0;background:#fff}.sidebar.tablet-sidebar.open{transform:translate(0)}.sidebar.tablet-sidebar .brand{display:flex;justify-content:flex-start;padding:10px 8px 18px}.sidebar.tablet-sidebar .brand div:not(.brand-logo),.sidebar.tablet-sidebar .sidebar-section-title,.sidebar.tablet-sidebar .sidebar-user-card div,.sidebar.tablet-sidebar a span,.sidebar.tablet-sidebar .logout span{display:block}.sidebar.tablet-sidebar nav{display:grid;gap:5px;overflow-y:auto;overflow-x:hidden;padding-right:4px}.sidebar.tablet-sidebar a,.sidebar.tablet-sidebar .logout{justify-content:flex-start;width:100%;min-height:48px}.sidebar.tablet-sidebar .sidebar-user-card{display:flex;justify-content:flex-start}.main{padding:16px}.topbar{position:sticky;top:0;z-index:30;padding:10px 0;background:#f4f6fbd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.search-box{display:none}}@media(max-width:760px){.sidebar.tablet-sidebar{flex-direction:column;align-items:stretch;overflow-x:hidden}.sidebar.tablet-sidebar nav{display:grid;overflow-y:auto}.sidebar.tablet-sidebar a span{display:block}.teacher-search-panel,.attendance-search-panel,.popup-actions,.calendar-popup-options{grid-template-columns:1fr}.teacher-search-panel button,.attendance-search-panel button{width:100%}.calendar-popup-card{border-radius:22px;padding:16px}.floating-return{right:14px;bottom:14px;padding:10px 13px}.floating-return span{display:none}}.attendance-default-notice{border-color:#16653429;background:linear-gradient(135deg,#ecfdf5f5,#fffffff5)}.attendance-table .check-button.present.selected{box-shadow:0 0 0 4px #16a34a1f}.attendance-table .check-button.absent.selected{box-shadow:0 0 0 4px #dc26261f}.calendar-pro-shell{align-items:start}.calendar-main-panel{min-width:0}.calendar-month-cell,.week-column,.day-event-card,.agenda-item,.agenda-mini-item{cursor:pointer}.calendar-day-popup{width:min(720px,calc(100vw - 32px));max-height:86vh;overflow:auto}.calendar-day-popup-list{display:grid;gap:10px;margin:14px 0 18px}.calendar-day-popup-item{width:100%;border:1px solid var(--border, #e2e8f0);border-radius:18px;background:#fff;padding:14px;display:grid;grid-template-columns:90px 1fr;gap:12px;text-align:left;align-items:center}.calendar-day-popup-item>span{font-weight:800;color:var(--green-900, #064e3b)}.calendar-day-popup-item strong{display:block;color:var(--text, #0f172a)}.calendar-day-popup-item small{color:var(--muted, #64748b)}@media(max-width:900px){.calendar-pro-shell{grid-template-columns:1fr}.calendar-left-rail,.calendar-right-rail{position:static}.calendar-month-cell{min-height:112px}}@media(max-width:980px){.sidebar.tablet-sidebar{background:linear-gradient(180deg,#ffffff0b,#fff0 34%),linear-gradient(180deg,#073b2d,#052d23)!important;color:#eaf7f1!important;border-right:1px solid rgba(255,255,255,.12)!important;box-shadow:18px 0 60px #03251c61!important}.sidebar.tablet-sidebar .brand{border-bottom:1px solid rgba(255,255,255,.12)!important}.sidebar.tablet-sidebar .brand strong,.sidebar.tablet-sidebar .sidebar-user-card strong{color:#fff!important}.sidebar.tablet-sidebar .brand span,.sidebar.tablet-sidebar .sidebar-user-card span,.sidebar.tablet-sidebar .sidebar-section-title{color:#eaf7f1b8!important}.sidebar.tablet-sidebar .brand-logo,.sidebar.tablet-sidebar .user-avatar{background:#ffffff24!important;color:#fff!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:none!important}.sidebar.tablet-sidebar a,.sidebar.tablet-sidebar .logout{color:#eaf7f1db!important;background:transparent!important;border:1px solid transparent!important}.sidebar.tablet-sidebar a svg,.sidebar.tablet-sidebar .logout svg{color:#eaf7f1c2!important}.sidebar.tablet-sidebar a:hover,.sidebar.tablet-sidebar .logout:hover{background:#ffffff1a!important;color:#fff!important;border-color:#ffffff1f!important}.sidebar.tablet-sidebar a.active{background:#fff!important;color:#073b2d!important;border-color:#ffffffeb!important;box-shadow:0 14px 34px #0003!important}.sidebar.tablet-sidebar a.active svg{color:#0f6b4f!important}.sidebar.tablet-sidebar .sidebar-user-card{background:#ffffff14!important;border:1px solid rgba(255,255,255,.12)!important}.sidebar.tablet-sidebar .logout{background:#ffffff14!important;border-color:#ffffff1f!important;color:#fff!important}}.phase36-attendance-table th:nth-child(8),.phase36-attendance-table td:nth-child(8){min-width:150px}.phase36-actions{display:grid;grid-template-columns:repeat(2,minmax(64px,1fr));gap:6px}.phase36-actions .mini{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.phase36-modal{max-width:620px;width:min(92vw,620px)}.phase36-modal textarea{min-height:105px;resize:vertical}.file-tile{display:flex;align-items:center;gap:10px;padding:14px 16px;margin-top:12px;border:1px dashed rgba(15,61,46,.35);border-radius:18px;background:#f7fbf8;color:#0f3d2e;font-weight:800;cursor:pointer}.file-tile input{display:none}.signature-modal{max-width:760px}.signature-canvas{width:100%;height:260px;border:1px solid rgba(15,61,46,.22);border-radius:18px;background:#fff;touch-action:none;box-shadow:inset 0 0 0 2px #0f3d2e0a}.history-modal{max-width:820px}.history-list{display:grid;gap:10px;max-height:280px;overflow:auto;padding-right:4px}.history-item{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:12px;border:1px solid rgba(15,61,46,.12);border-radius:16px;background:#fbfdfb}.history-item span,.history-item small{display:block;color:#6b7d73}.history-item p{margin:6px 0}.evidence-grid-small{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.evidence-grid-small a{padding:12px;border-radius:16px;background:#eef7f1;color:#0f3d2e;font-weight:800;text-decoration:none}.evidence-grid-small small{display:block;color:#557166;font-weight:600;margin-top:4px}@media(max-width:900px){.phase36-actions{grid-template-columns:1fr}.signature-canvas{height:220px}}.modal-card{background:#fff;border:1px solid var(--border, rgba(15, 61, 46, .12));border-radius:28px;padding:22px;max-height:min(92vh,920px);overflow:auto;box-shadow:0 30px 90px #0f172a47;position:relative}.modal-card h2{margin-top:0}.modal-card input,.modal-card select,.modal-card textarea{width:100%;margin-top:10px}.modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:999px;padding:0;display:grid;place-items:center;background:#eef7f1;color:#0f3d2e}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.rules-page .elegant-header{align-items:center;gap:16px}.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rule-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:18px;box-shadow:var(--shadow-xs)}.rule-card h3{margin:0 0 12px;letter-spacing:-.03em}.rule-list{display:grid;gap:10px}.rule-input-row{display:grid;grid-template-columns:minmax(0,1fr) 116px;align-items:center;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc}.rule-input-row strong{display:block;font-size:13px;color:#0f172a}.rule-input-row small{display:block;color:var(--muted);margin-top:3px;line-height:1.35}.rule-input-row input{margin:0;text-align:right;font-weight:900}.success-notice{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.dark-stat{background:linear-gradient(135deg,#064e3b,#0f766e)!important;color:#fff}.dark-stat span,.dark-stat small{color:#ffffffc7!important}.compact-filters{align-items:end}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.info-grid div{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px}.info-grid svg{color:#065f46}.info-grid strong{display:block;margin:8px 0 4px}.info-grid p{color:var(--muted);margin:0;line-height:1.55}@media(max-width:1000px){.rules-grid,.charts-grid.two-cols,.info-grid,.rule-input-row{grid-template-columns:1fr}.rule-input-row input{text-align:left}}.push-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:18px;align-items:stretch}.push-main-panel{position:relative;overflow:hidden}.push-hero-icon{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#064e3b,#0f766e);color:#fff;box-shadow:0 18px 35px #064e3b38;margin-bottom:12px}.status-pills{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.pill{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;border:1px solid rgba(15,23,42,.08);background:#f8fafc}.pill.success{background:#dcfce7;color:#166534}.pill.warning{background:#fef3c7;color:#92400e}.pill.neutral{background:#f1f5f9;color:#334155}.alert-card{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;margin:12px 0;font-size:14px;line-height:1.45}.alert-card.warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.alert-card.danger{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert-card.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.form-label{display:block;font-weight:800;margin:14px 0 6px;color:#0f172a}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.button-row button{width:auto}.timeline-simple{display:grid;gap:12px;margin-top:12px}.timeline-simple div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:12px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}.timeline-simple strong{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#064e3b;color:#fff}.notification-push-link{display:flex;align-items:center;gap:8px;margin:8px 14px 0;padding:9px 10px;border-radius:12px;background:#ecfdf5;color:#065f46;text-decoration:none;font-size:12px;font-weight:800}@media(max-width:980px){.push-grid{grid-template-columns:1fr}}@media(min-width:761px){.app-shell{display:grid!important;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar.tablet-sidebar{position:sticky!important;top:0!important;left:0!important;width:auto!important;height:100vh!important;display:flex!important;flex-direction:column!important;background:linear-gradient(180deg,#073b2d,#052d23)!important;color:#dcebe5!important;border-right:0!important;box-shadow:18px 0 45px #073b2d1a!important;overflow:hidden!important}.sidebar.tablet-sidebar nav{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;overflow-y:auto!important;overflow-x:hidden!important}.sidebar.tablet-sidebar a,.sidebar.tablet-sidebar .logout{justify-content:flex-start!important;color:#ffffffc7!important;background:transparent!important}.sidebar.tablet-sidebar a span,.sidebar.tablet-sidebar .logout span{display:inline!important}.sidebar.tablet-sidebar a svg,.sidebar.tablet-sidebar .logout svg{color:#ffffffa8!important}.sidebar.tablet-sidebar a.active{background:#fff!important;color:#073b2d!important}.sidebar.tablet-sidebar a.active svg{color:#0f6b4f!important}.sidebar.tablet-sidebar .brand div:not(.brand-logo),.sidebar.tablet-sidebar .sidebar-user-card div,.sidebar.tablet-sidebar .sidebar-section-title{display:block!important}}@media(min-width:761px)and (max-width:900px){.app-shell{grid-template-columns:232px minmax(0,1fr)!important}.sidebar.tablet-sidebar a span,.sidebar.tablet-sidebar .logout span{font-size:12px!important}}.quick-access-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(191,209,199,.88);border-radius:22px;background:linear-gradient(135deg,#fffffff0,#e8f5efeb);box-shadow:0 10px 28px #073b2d0f}.quick-access-title{display:inline-flex;align-items:center;gap:8px;color:#073b2d;font-weight:900;letter-spacing:.02em;white-space:nowrap}.quick-access-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;overflow-x:auto;padding-bottom:2px}.quick-access-buttons a{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border-radius:999px;border:1px solid #c8ded3;background:#fff;color:#073b2d;font-size:13px;font-weight:900;text-decoration:none;white-space:nowrap}.quick-access-buttons a:hover,.quick-access-buttons a.active{background:#073b2d;color:#fff;border-color:#073b2d}.quick-access-buttons a.active svg,.quick-access-buttons a:hover svg{color:#fff}.signature-ok,.signature-pending{display:inline-flex;align-items:center;width:fit-content;margin-top:4px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:900}.signature-ok{background:#dcfce7;color:#166534}.signature-pending{background:#fef3c7;color:#92400e}.teacher-signature-btn:not(:disabled){border-color:#0f6b4f33;background:#e8f5ef;color:#073b2d}.signature-modal .signature-canvas{border:2px dashed rgba(7,59,45,.22)}@media(max-width:980px){.quick-access-bar{align-items:stretch;flex-direction:column;border-radius:20px}.quick-access-buttons{justify-content:flex-start}.quick-access-buttons a{min-width:138px;justify-content:center}}@media(max-width:520px){.quick-access-title{font-size:13px}.quick-access-buttons a span{font-size:12px}}.class-activity-modal textarea,.class-activity-textarea{width:100%;min-height:150px;resize:vertical;border:1px solid rgba(15,61,46,.18);border-radius:18px;padding:14px 16px;font:inherit;line-height:1.45;background:#fff;color:#0f2f25;outline:none}.class-activity-modal textarea:focus,.class-activity-textarea:focus{border-color:#0f3d2e;box-shadow:0 0 0 4px #0f3d2e14}.class-activity-context{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}.class-activity-context span,.class-activity-line{display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:6px 10px;border-radius:999px;background:#0f3d2e14;color:#0f3d2e;font-size:12px;font-weight:700}.class-activity-line{margin-top:6px;white-space:normal;border-radius:12px}.signed-attendance-page .header-actions,.signed-attendance-page .table-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.signed-attendance-page .header-actions button{width:auto;display:inline-flex;align-items:center;gap:8px}.signed-attendance-page .compact-stats{grid-template-columns:repeat(6,minmax(120px,1fr))}.filters-panel{display:grid;gap:14px}.form-grid.wide{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px}.table-panel .table-header{justify-content:space-between;margin-bottom:12px}.table-scroll{overflow:auto;max-height:min(70vh,720px)}.activity-cell{max-width:300px;white-space:normal;line-height:1.45}.pill svg{vertical-align:-2px;margin-right:4px}.signature-preview-modal{max-width:720px}.signature-preview-box{min-height:170px;border:1px dashed var(--border-strong);border-radius:18px;background:#fff;display:grid;place-items:center;margin:18px 0;padding:18px}.signature-preview-box img{max-width:100%;max-height:220px;object-fit:contain}@media(max-width:1180px){.signed-attendance-page .compact-stats{grid-template-columns:repeat(3,1fr)}.form-grid.wide{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media(max-width:760px){.signed-attendance-page .compact-stats{grid-template-columns:repeat(2,1fr)}.form-grid.wide{grid-template-columns:1fr}}.attendance-status-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.marked-time-chip{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;background:#eff6f2;color:#0f3d2e;border:1px solid #cfe4d8;font-size:12px;font-weight:800;white-space:nowrap}.marked-time-chip:before{content:"🕒";font-size:11px;margin-right:4px}.marked-time-detail{color:#64748b;font-weight:700}.pdf-import-panel{border:1px solid rgba(17,94,66,.18)}.pdf-import-panel small{display:block;margin-top:6px;color:var(--muted, #64748b);line-height:1.4}.pdf-result{display:grid;gap:6px}.pdf-preview-table{grid-column:1 / -1;width:100%;max-height:360px;overflow:auto}.profile-gate-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 20% 10%,rgba(15,107,79,.16),transparent 28rem),linear-gradient(135deg,#f8fbf9,#eef6f1)}.profile-gate-card{width:min(920px,100%);background:#fff;border:1px solid var(--border, #dfe9e3);border-radius:28px;padding:clamp(22px,4vw,38px);box-shadow:0 28px 70px #073b2d1f}.profile-gate-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:20px;background:var(--accent-soft, #e8f5ef);color:var(--primary, #073b2d);margin-bottom:14px}.profile-gate-card h1{margin:0 0 8px;letter-spacing:-.04em}.profile-gate-card p{margin:0;color:#64748b;line-height:1.55}.profile-gate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.profile-gate-grid label,.coordinator-select{display:grid;gap:8px;font-weight:900;color:var(--text, #10231c)}.profile-gate-grid select,.coordinator-select select{width:100%;min-height:48px;border:1px solid var(--border, #dfe9e3);border-radius:14px;padding:0 12px;background:#fff;color:var(--text, #10231c);font-weight:800}.profile-gate-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.profile-gate-notice{margin-top:14px;padding:13px 14px;border-radius:16px;background:#fffbeb;color:#92400e;border:1px solid #fde68a;font-weight:800}.profile-gate-selected{margin-top:18px;display:grid;gap:8px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:14px;color:#475569}.profile-gate-selected strong{color:var(--primary, #073b2d)}.responsible-profile-readonly{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;background:#ecfdf5;color:#047857;border:1px solid #bbf7d0;font-weight:900;font-size:12px}.profiles-admin-grid{display:grid;grid-template-columns:minmax(330px,430px) minmax(0,1fr);gap:18px;align-items:start;margin:18px 0}.profile-admin-form{display:grid;gap:14px}.form-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-admin-form input,.profile-admin-form select,.profile-admin-form textarea,.header-actions input{width:100%;border:1px solid var(--border, #dfe9e3);border-radius:14px;padding:11px 13px;background:#fff;color:var(--text, #10231c);font-weight:800}.profile-admin-form label{display:grid;gap:7px;font-weight:900}@media(max-width:1100px){.profiles-admin-grid{grid-template-columns:1fr}}@media(max-width:700px){.profile-gate-grid,.form-grid.two{grid-template-columns:1fr}}.brand-logo.image-logo,.login-brand-mark.image-logo-mark,.login-logo.image-login-logo,.brand-mark.image-brand-mark{background:transparent!important;border:0!important;box-shadow:none!important;padding:0;overflow:hidden}.brand-logo.image-logo{border-radius:16px}.brand-logo.image-logo img{width:48px;height:48px;object-fit:contain;display:block}.login-brand-mark.image-logo-mark{width:84px;height:84px;margin-bottom:20px}.login-brand-mark.image-logo-mark img{width:84px;height:84px;object-fit:contain;display:block}.login-logo.image-login-logo{width:76px;height:76px;border-radius:22px;margin-bottom:14px}.login-logo.image-login-logo img,.brand-mark.image-brand-mark img{width:100%;height:100%;object-fit:contain;display:block}.brand-mark.image-brand-mark{width:76px;height:76px;margin-bottom:12px}.mobile-only{display:none}.compact-shell .mobile-only{display:grid!important}.app-shell.compact-shell{display:block}.app-shell.compact-shell .main{padding:16px}.app-shell.compact-shell .topbar{position:sticky;top:0;z-index:30;padding:calc(env(safe-area-inset-top,0px) + 10px) 0 10px;background:#f4f6fbe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay{position:fixed!important;z-index:90;top:0;left:0;width:min(330px,86vw)!important;height:100dvh!important;transform:translate(-105%);transition:transform .22s ease}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay.open{transform:translate(0)}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay nav{overflow-y:auto;overflow-x:hidden}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .brand div:not(.brand-logo),.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .sidebar-section-title,.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .sidebar-user-card div,.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay a span,.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .logout span{display:block!important}.app-shell.compact-shell .sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;background:#0f172a61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@media(display-mode:standalone){body{min-height:100dvh}}.exams-page,.academic-users-page{display:grid;gap:18px}.exams-hero,.academic-users-hero{background:radial-gradient(circle at 10% 10%,rgba(37,99,235,.16),transparent 24rem),linear-gradient(135deg,#fffffff5,#eff6ffeb)}.exam-access-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.exam-access-card{min-height:150px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-solid);box-shadow:var(--shadow-xs);display:grid;align-content:start;gap:10px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.exam-access-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#bfdbfe}.exam-access-icon,.exam-welcome-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.exam-access-card strong{font-size:17px;color:#0f172a}.exam-access-card span{color:var(--muted);line-height:1.5;font-size:13px}.exams-welcome-panel{display:flex;align-items:flex-start;gap:16px;padding:20px}.exams-welcome-panel h2{margin:0 0 8px}.exams-welcome-panel p{margin:0;color:var(--muted);line-height:1.6}.exam-progress-note{margin-top:14px;display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;padding:9px 12px;border-radius:999px;background:#f8fafc;border:1px solid var(--border);color:var(--muted);font-size:12px}.exam-progress-note strong{color:#0f172a}.academic-user-split{align-items:start}.academic-user-form .actions button,.academic-user-filters button{display:inline-flex;align-items:center;gap:8px}.academic-permission-card .role-box strong{display:flex;align-items:center;gap:8px}.academic-users-table-panel{margin-top:0}.academic-user-filters{grid-template-columns:repeat(7,minmax(120px,1fr));align-items:end}.academic-table-wrap table td small{display:block;color:var(--muted);margin-top:3px}.pill.success-soft{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.pill.danger-soft{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.pill.warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}@media(max-width:1180px){.exam-access-grid,.academic-user-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.exam-access-grid{grid-template-columns:1fr}.exams-welcome-panel{display:grid}.academic-user-filters{grid-template-columns:1fr}}.exam-module-page .exam-editor-split{grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);align-items:start}.exam-form textarea{resize:vertical;min-height:86px}.exam-options-box{border:1px dashed var(--border-strong);border-radius:18px;padding:14px;margin:8px 0 14px;background:var(--surface-soft)}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-row h2,.section-row p{margin:0}.exam-option-row{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:10px;align-items:center;margin-bottom:8px}.inline-check{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;font-size:13px!important;text-transform:none!important;letter-spacing:0!important;color:var(--text)!important}.inline-check input[type=checkbox],.inline-check input[type=radio]{width:auto;min-height:auto;margin:0}.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border-radius:16px;background:var(--surface-soft);border:1px solid var(--border);margin:10px 0 14px}.exam-filters{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));align-items:end}.exam-config-panel{margin-top:18px;border:1px solid rgba(37,99,235,.18);box-shadow:var(--shadow-soft)}.anchor-mini{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 11px;border-radius:12px;background:var(--accent-soft);color:#1d4ed8;font-weight:850;border:1px solid rgba(37,99,235,.16)}.mini-input{width:90px!important;min-height:34px!important;padding:7px 9px!important;margin:0!important;border-radius:10px!important}.warning-soft{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.info-soft{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd}.exam-form .actions,.exam-config-panel .actions{flex-wrap:wrap}@media(max-width:920px){.exam-module-page .exam-editor-split,.exam-option-row,.toggle-grid{grid-template-columns:1fr}.exam-option-row .mini.btn-danger{width:100%}}.exam-meta-row,.exam-progress-panel,.exam-question-head,.exam-options-list{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.exam-progress-panel{justify-content:space-between;margin-bottom:16px}.exam-question-list{display:grid;gap:16px}.exam-question-card{border-left:4px solid rgba(37,99,235,.35)}.exam-question-head{justify-content:space-between;margin-bottom:12px}.exam-options-list{flex-direction:column;align-items:stretch}.exam-option{display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px solid rgba(148,163,184,.35);border-radius:14px;background:#f8fafcb8;cursor:pointer}.exam-option input{width:18px;height:18px}.student-exam-page textarea{min-height:92px}.muted-text{color:#64748b;font-size:.86rem}@media(max-width:780px){.exam-progress-panel,.exam-question-head{align-items:flex-start;flex-direction:column}.exam-progress-panel .actions,.student-exam-page .report-actions{width:100%}}.academic-dashboard-page{display:flex;flex-direction:column;gap:18px}.academic-dashboard-hero{background:linear-gradient(135deg,#111827f5,#1e40afe0)}.academic-dashboard-filters{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.dashboard-section-label{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:800;letter-spacing:-.02em;margin-top:4px}.academic-stats-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}.academic-stat-card small{display:block;margin-top:4px;color:var(--muted);font-weight:600}.academic-dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.academic-chart-canvas{height:290px}.academic-table-panel{overflow:hidden}.academic-table-panel .table-wrap{max-height:430px;overflow:auto}.academic-table-panel table th{position:sticky;top:0;z-index:1}@media(max-width:820px){.academic-dashboard-grid{grid-template-columns:1fr}.academic-chart-canvas{height:260px}.academic-dashboard-hero .report-actions{width:100%}.academic-dashboard-hero .report-actions button{flex:1}}.academic-dashboard-page .academic-stat-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);box-shadow:0 12px 30px #0f172a0e}.academic-dashboard-page .academic-stat-card:after{content:"";position:absolute;inset:auto -28px -36px auto;width:92px;height:92px;border-radius:999px;background:color-mix(in srgb,var(--primary) 8%,transparent);pointer-events:none}.academic-dashboard-page .academic-stat-danger .pro-stat-icon{color:#b91c1c;background:#dc262617}.academic-health-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.academic-health-strip>div{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:72px;padding:13px 15px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 96%,white),color-mix(in srgb,var(--primary) 4%,var(--panel)));box-shadow:0 8px 22px #0f172a0a}.academic-health-strip svg{width:34px;height:34px;padding:8px;border-radius:11px;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.academic-health-strip span{color:var(--muted);font-size:.78rem;font-weight:800;line-height:1.2}.academic-health-strip strong{color:var(--text);font-size:1.08rem;letter-spacing:-.03em}.academic-dashboard-page .academic-chart-card{border:1px solid var(--border);border-radius:20px;box-shadow:0 14px 38px #0f172a0e;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.academic-dashboard-page .academic-chart-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 28%,var(--border));box-shadow:0 18px 42px #0f172a14}.academic-dashboard-page .academic-chart-card .chart-card-head h2{margin-bottom:3px;letter-spacing:-.025em}.academic-dashboard-page .academic-chart-card .chart-card-head p{color:var(--muted);line-height:1.35}.academic-insight-grid .academic-chart-card{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 98%,white),color-mix(in srgb,var(--primary) 2%,var(--panel)))}.academic-absence-audit-panel{border-top:3px solid #dc2626}.academic-source-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;background:#dc262617;color:#b91c1c;font-size:.76rem;font-weight:900;white-space:nowrap}.academic-validation-chip{display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:5px 9px;border-radius:999px;background:#f59e0b1f;color:#a16207;font-size:.72rem;font-weight:900;text-transform:capitalize}.academic-validation-chip.is-justified{background:#16a34a1c;color:#15803d}.academic-dashboard-page .recharts-cartesian-grid line,.academic-dashboard-page .recharts-polar-grid-concentric-polygon,.academic-dashboard-page .recharts-polar-grid-angle line{stroke:color-mix(in srgb,var(--border) 76%,transparent)}.academic-dashboard-page .recharts-text{fill:var(--muted)}@media(max-width:1100px){.academic-health-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.academic-health-strip{grid-template-columns:1fr}.academic-health-strip>div{grid-template-columns:34px minmax(0,1fr) auto}.academic-source-badge{align-self:flex-start}}.academic-alerts-page{display:grid;gap:18px}.academic-alerts-hero{align-items:flex-start}.academic-alerts-filters{grid-template-columns:repeat(6,minmax(130px,1fr))}.academic-alert-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.academic-alert-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.75fr);gap:18px;align-items:start}.academic-alert-main{display:grid;gap:18px;min-width:0}.academic-alert-charts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.academic-alert-chart-canvas{min-height:250px;height:250px}.academic-alert-detail{position:sticky;top:12px;display:grid;gap:14px;padding:18px}.academic-alert-detail h2{margin:0;letter-spacing:-.03em}.academic-alert-detail p{color:#475569;line-height:1.5;margin:0}.alert-detail-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alert-pill,.status-chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.status-chip{background:#f1f5f9;color:#334155}.alert-pill.priority-critical{background:#fef2f2;color:#dc2626}.alert-pill.priority-alta,.alert-pill.priority-high{background:#fff7ed;color:#ea580c}.alert-pill.priority-media,.alert-pill.priority-medium{background:#fffbeb;color:#d97706}.alert-pill.priority-baja,.alert-pill.priority-low{background:#eff6ff;color:#2563eb}.alert-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alert-evidence-grid span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:10px;color:#475569;font-weight:800;word-break:break-word}.alert-evidence-grid strong{display:block;color:#0f172a;font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.alert-action-row{display:flex;flex-wrap:wrap;gap:8px}.comment-box{display:grid;gap:10px}.comment-box label{display:grid;gap:6px;color:#334155;font-weight:900}.comment-box textarea{width:100%;min-height:82px;border:1px solid #cbd5e1;border-radius:14px;padding:11px 12px;font:inherit;resize:vertical}.alert-history{display:grid;gap:10px}.alert-history h3{margin:12px 0 0;font-size:14px}.history-item{border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:10px}.history-item strong{display:block;color:#0f172a;margin-bottom:4px}.history-item p{color:#475569;margin:0 0 5px}.history-item small{color:#94a3b8;font-weight:800}.selected-row{background:#f0fdf4}.small-button{padding:7px 10px;min-height:unset}.danger-lite{color:#b91c1c;border-color:#fecaca;background:#fff7f7}.filter-button-stack{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.smart-alert-metric-card small{display:block;margin-top:4px;color:#94a3b8;font-weight:800}@media(max-width:1200px){.academic-alerts-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.academic-alert-layout{grid-template-columns:1fr}.academic-alert-detail{position:static}.academic-alert-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.academic-alerts-filters,.academic-alert-charts,.academic-alert-metrics,.alert-evidence-grid{grid-template-columns:1fr}}.bulk-import-page{display:grid;gap:18px}.bulk-import-hero{align-items:flex-start}.bulk-import-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}.bulk-import-panel form{display:grid;gap:12px}.bulk-template-help{display:grid;gap:6px;padding:14px 16px;background:var(--accent-soft);border:1px solid #bfdbfe;border-radius:16px;color:#1e3a8a;line-height:1.45}.bulk-template-help span{font-size:13px;color:#334155}.bulk-update-check{display:flex!important;align-items:center;gap:10px;text-transform:none!important;letter-spacing:0!important;font-size:14px!important;color:#334155!important;margin:8px 0}.bulk-update-check input{width:auto!important;min-height:auto!important;margin:0!important}.left-actions{justify-content:flex-start}.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-history-filters{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;align-items:end;margin-bottom:14px}.bulk-preview-panel,.bulk-history-panel,.bulk-history-detail{overflow:hidden}.error-list,.warning-list{display:inline-flex;align-items:center;gap:6px;line-height:1.45}.error-list{color:var(--danger)}.warning-list{color:var(--warning)}.tiny-btn{padding:8px 10px;border-radius:10px;font-size:12px}.muted-cell{text-align:center;color:var(--muted);padding:24px!important}.status-pill.status-pending{background:#fef3c7;color:#92400e}@media(max-width:980px){.bulk-import-grid,.bulk-history-filters,.compact-metrics{grid-template-columns:1fr}}.audit-page{display:flex;flex-direction:column;gap:18px}.audit-hero{border:1px solid rgba(15,23,42,.08)}.audit-summary-grid{margin-top:4px}.audit-stat-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#1d4ed814;color:#1d4ed8;margin-bottom:8px}.audit-filters-panel{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end}.audit-filters-panel .filter-actions{display:flex;gap:8px;align-items:end}.audit-table-panel .details-cell{min-width:220px;max-width:380px;white-space:normal}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:14px;color:#64748b}.audit-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.audit-detail-grid>div{border:1px solid rgba(148,163,184,.28);border-radius:14px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.audit-detail-grid>div.wide{grid-column:span 2}.audit-detail-grid span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.audit-detail-grid strong{color:#0f172a}.audit-detail-grid small{color:#475569;word-break:break-word}.audit-json-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.audit-json-grid>div{border:1px solid rgba(148,163,184,.28);border-radius:14px;background:#0f172a;color:#e2e8f0;overflow:hidden}.audit-json-grid h3{margin:0;padding:12px 14px;font-size:.95rem;border-bottom:1px solid rgba(255,255,255,.08);color:#fff}.audit-json-grid pre{margin:0;padding:14px;max-height:300px;overflow:auto;font-size:.78rem;white-space:pre-wrap;word-break:break-word}.status-muted{background:#f1f5f9;color:#475569}@media(max-width:760px){.audit-detail-grid>div.wide{grid-column:span 1}.audit-filters-panel .filter-actions{flex-direction:column;align-items:stretch}.pagination-bar{justify-content:center}}.route-loading{min-height:240px;display:grid;place-items:center;color:#475569;font-weight:700}html,body,#root{width:100%;max-width:100%;min-height:100%;overflow-x:hidden}.app-shell.compact-shell{display:block!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-height:100dvh}.app-shell.compact-shell .main{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));padding-bottom:max(12px,env(safe-area-inset-bottom,0px));overflow-x:hidden}.app-shell.compact-shell .content-card,.app-shell.compact-shell .panel,.app-shell.compact-shell .card,.app-shell.compact-shell .table-wrap{max-width:100%;min-width:0}.app-shell.compact-shell .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay{grid-column:auto!important;width:min(330px,88vw)!important;max-width:88vw!important;padding-top:max(18px,env(safe-area-inset-top,0px));padding-bottom:max(18px,env(safe-area-inset-bottom,0px))}@media(display-mode:standalone)and (pointer:coarse)and (max-width:1366px){body{min-height:100dvh;overscroll-behavior-x:none}.app-shell.compact-shell .topbar{width:100%;max-width:100%;gap:10px}.app-shell.compact-shell .topbar-left,.app-shell.compact-shell .topbar-actions{min-width:0}.app-shell.compact-shell .topbar-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.app-shell.compact-shell .quick-access-bar{align-items:stretch;flex-direction:column}.app-shell.compact-shell .quick-access-buttons{width:100%;max-width:100%;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(orientation:portrait)and (max-width:1180px){.grid,.calendar-metrics-row,.exam-access-grid,.dashboard-summary-grid,.academic-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.split-panel,.wide-split,.calendar-pro-shell{grid-template-columns:minmax(0,1fr)!important}.page-title,.topbar{align-items:flex-start}}@media(orientation:portrait)and (max-width:760px){.grid,.calendar-metrics-row,.exam-access-grid,.dashboard-summary-grid,.academic-summary-grid{grid-template-columns:minmax(0,1fr)}.app-shell.compact-shell .main{padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}.topbar h2{font-size:19px}}.sidebar.tablet-sidebar{--menu-row-bg: rgba(255, 255, 255, .04)}.sidebar .brand{position:relative}.sidebar-close-button{margin-left:auto;width:36px;height:36px;min-width:36px;padding:0;border-radius:10px;display:grid;place-items:center;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.15)}.menu-search-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:42px;padding:0 10px;margin:4px 0 10px;border-radius:13px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);color:#ffffffc2}.menu-search-box input{width:100%;min-width:0;min-height:38px;padding:0;border:0;outline:0;box-shadow:none;background:transparent;color:#fff;font-size:13px;font-weight:650}.menu-search-box input::placeholder{color:#ffffff8f}.menu-search-box button{width:28px;height:28px;min-width:28px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:#ffffffb8}.sidebar nav.sidebar-menu{display:block;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.26) transparent}.menu-block{display:grid;gap:4px;margin-bottom:8px}.menu-block .sidebar-section-title{display:flex;align-items:center;gap:6px;margin:8px 8px 4px;padding:0;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#ffffff7a}.favorites-block{padding:4px;border-radius:14px;background:#f59e0b14;border:1px solid rgba(251,191,36,.16)}.favorites-block .sidebar-section-title{color:#fde68a}.menu-item-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:4px;align-items:center;border-radius:12px}.sidebar .menu-item-row>a{min-width:0;margin:0}.sidebar .menu-item-row>a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-favorite-button{width:34px;height:38px;min-width:34px;padding:0;display:grid;place-items:center;border-radius:10px;border:0;color:#ffffff5c;background:transparent;opacity:.35;transition:opacity .18s ease,color .18s ease,background .18s ease}.menu-item-row:hover .menu-favorite-button,.menu-favorite-button:focus-visible,.menu-favorite-button.is-favorite{opacity:1}.menu-favorite-button:hover{background:#ffffff1a;color:#fff}.menu-favorite-button.is-favorite{color:#fbbf24}.menu-section-toggle{width:100%;min-height:44px;padding:10px 11px;border:0;border-radius:12px;display:flex;justify-content:space-between;align-items:center;background:#ffffff0e;color:#ffffffe0;box-shadow:none;font-size:13px;font-weight:850}.menu-section-toggle:hover,.collapsible-menu-block.contains-active .menu-section-toggle{background:#ffffff1f;color:#fff}.menu-section-toggle>span{display:flex;align-items:center;gap:10px;min-width:0}.menu-section-items{display:grid;gap:3px;padding:4px 0 2px 9px;margin-left:10px;border-left:1px solid rgba(255,255,255,.14)}.menu-section-items .menu-item-row>a{min-height:40px;padding-top:8px;padding-bottom:8px}.menu-section-items .menu-item-row>a span{font-size:12.5px}.menu-empty-state{margin:10px 4px;padding:14px;border-radius:12px;background:#ffffff12;color:#ffffffb3;font-size:12px;line-height:1.45;text-align:center}.coordinator-select-help{display:block;margin-top:6px;color:#b45309;font-size:11px;line-height:1.35;text-transform:none;letter-spacing:0}.floor-profile-explanation{display:flex;gap:10px;align-items:flex-start;margin-bottom:18px}.floor-profile-explanation strong{white-space:nowrap}.floor-profile-explanation span{line-height:1.5}.danger-text{color:#b91c1c;font-weight:750}@media(max-width:1180px){.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .menu-search-box{display:grid}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .menu-item-row{grid-template-columns:minmax(0,1fr) 38px}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .menu-favorite-button{display:grid}.app-shell.compact-shell .sidebar.tablet-sidebar.is-overlay .menu-section-toggle{display:flex}}@media(max-width:680px){.floor-profile-explanation{flex-direction:column}.floor-profile-explanation strong{white-space:normal}}.plain-title-header{background:transparent!important;color:var(--text)!important;border:0!important;border-bottom:1px solid var(--border)!important;border-radius:0!important;box-shadow:none!important;padding:0 0 16px!important}.plain-title-header h1{color:#073b2d!important}.plain-title-header p,.plain-title-header .module-kicker{color:var(--muted)!important}.schedules-page{display:grid;gap:18px}.schedule-view-tabs,.weekday-tabs,.schedule-mode-toggle{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.schedule-view-tabs button,.weekday-tabs button,.schedule-mode-toggle button{background:#fff;color:#36534a;border:1px solid #d8e3de;box-shadow:none}.schedule-view-tabs button.active,.weekday-tabs button.active,.schedule-mode-toggle button.active{background:#073b2d;color:#fff;border-color:#073b2d}.schedule-view-tabs button:hover,.weekday-tabs button:hover,.schedule-mode-toggle button:hover{background:#eaf4ef;color:#073b2d;transform:none}.schedule-view-tabs button.active:hover,.weekday-tabs button.active:hover,.schedule-mode-toggle button.active:hover{background:#0b4c3a;color:#fff}.schedule-daily-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;align-items:end}.schedule-daily-filters label{margin:0}.schedule-daily-filters label>span{display:block;margin:0 0 7px;color:#36534a;font-size:11px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.schedule-daily-filters input,.schedule-daily-filters select{margin:0}.weekday-tabs{padding:7px;border-radius:16px;background:#edf5f1;border:1px solid #d8e6df}.weekday-tabs button{flex:1;min-width:112px}.schedule-daily-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.schedule-print-button{background:#0b4c3a}.schedule-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.schedule-summary-card{background:#fff;border:1px solid #dce8e2;border-radius:16px;padding:15px 17px;box-shadow:0 8px 22px #073b2d0e}.schedule-summary-card span{display:block;color:#6b7f77;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.schedule-summary-card strong{display:block;margin-top:5px;color:#073b2d;font-size:28px;line-height:1}.daily-sheets-grid,.teacher-day-grid{display:grid;gap:18px}.daily-sheets-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.teacher-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-schedule-sheet{min-width:0;background:#fff;border:1px solid #b9cfc4;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px #073b2d13}.daily-sheet-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;background:#2f9b67;color:#062e23}.daily-sheet-brand{width:auto;min-width:47px;min-height:47px;display:grid;place-items:center;border-radius:12px;padding:7px 10px;background:#fff;border:3px solid rgba(7,59,45,.22);color:#073b2d;font-weight:950;font-size:.68rem;line-height:1.12;text-align:center;letter-spacing:-.02em}.daily-sheet-title-block{min-width:0;text-align:center}.daily-sheet-title-block strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-style:italic;letter-spacing:-.02em}.daily-sheet-title-block span{display:block;margin-top:2px;font-size:11px;font-weight:800;color:#03281dc7}.daily-sheet-day{min-width:96px;padding:8px 10px;background:#ffffffe6;border-radius:12px;text-align:center}.daily-sheet-day small{display:block;color:#5f746c;font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:900}.daily-sheet-day strong{display:block;margin-top:2px;color:#073b2d}.daily-sheet-subheader{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-bottom:1px solid #c9d8d1;background:#f7fbf9}.daily-sheet-subheader>div{padding:10px 12px;border-right:1px solid #dce7e2;min-width:0}.daily-sheet-subheader>div:last-child{border-right:0}.daily-sheet-subheader span{display:block;color:#72857d;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.daily-sheet-subheader strong{display:block;margin-top:3px;color:#163d31;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-sheet-table-wrap{overflow-x:auto}.daily-sheet-table{width:100%;min-width:610px;border-collapse:collapse;table-layout:fixed}.daily-sheet-table th,.daily-sheet-table td{border:1px solid #344b43;padding:7px 8px;vertical-align:middle}.daily-sheet-table th{background:#f3f7f5;color:#203c33;font-size:10px;text-transform:uppercase;letter-spacing:.045em;text-align:center}.daily-sheet-table td{min-height:44px;color:#243e35;font-size:11px}.daily-sheet-table tbody tr{height:52px}.daily-sheet-table .slot-number-column{width:38px;text-align:center}.daily-sheet-table .slot-time-column{width:92px;text-align:center;font-size:10px;font-weight:850}.daily-class-entry+.daily-class-entry{border-top:1px dashed #b9cbc3;padding-top:5px;margin-top:5px}.daily-class-entry strong{display:block;color:#073b2d;font-size:11px}.daily-class-entry span{display:block;margin-top:2px;color:#334d44;font-weight:750}.daily-class-entry small{display:block;margin-top:2px;color:#7b8d86}.empty-slot{color:#a1aaa6;font-style:italic}.teacher-day-card{background:#fff;border:1px solid #d7e5de;border-radius:18px;overflow:hidden;box-shadow:0 12px 28px #073b2d0f}.teacher-day-card>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px;background:#edf6f1;border-bottom:1px solid #d7e5de}.teacher-day-card header span{display:block;color:#72857d;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.teacher-day-card h3{margin:3px 0 0;color:#073b2d;font-size:17px}.teacher-day-count{padding:7px 10px;border-radius:999px;background:#073b2d;color:#fff;font-size:11px;font-weight:900;white-space:nowrap}.teacher-day-summary{padding:10px 17px;color:#52665e;font-size:12px;border-bottom:1px solid #edf2ef}.teacher-day-list{display:grid}.teacher-day-row{display:grid;grid-template-columns:112px minmax(0,1fr) minmax(130px,.75fr);gap:12px;align-items:center;padding:12px 17px;border-bottom:1px solid #edf2ef}.teacher-day-row:last-child{border-bottom:0}.teacher-day-row time{color:#073b2d;font-weight:900;font-size:12px}.teacher-day-row strong{display:block;color:#233f35}.teacher-day-row span{display:block;margin-top:2px;color:#72857d;font-size:11px}.teacher-day-room{text-align:right}.schedule-empty-state{display:grid;place-items:center;gap:5px;min-height:160px;text-align:center;color:#073b2d}.schedule-empty-state span{color:#72857d}.print-only{display:none}@media(max-width:1180px){.schedule-daily-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.daily-sheets-grid,.teacher-day-grid{grid-template-columns:1fr}}@media(max-width:760px){.schedule-daily-filters{grid-template-columns:1fr}.schedule-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weekday-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.weekday-tabs button:last-child{grid-column:1 / -1}.schedule-daily-toolbar{align-items:stretch}.schedule-mode-toggle{display:grid;grid-template-columns:1fr;width:100%}.schedule-print-button{width:100%}.daily-sheet-header{grid-template-columns:auto minmax(0,1fr)}.daily-sheet-day{grid-column:1 / -1;width:100%}.daily-sheet-subheader{grid-template-columns:1fr}.daily-sheet-subheader>div{border-right:0;border-bottom:1px solid #dce7e2}.daily-sheet-subheader>div:last-child{border-bottom:0}.teacher-day-row{grid-template-columns:92px minmax(0,1fr)}.teacher-day-room{grid-column:2;text-align:left}}@media print{@page{size:A4 portrait;margin:8mm}body{background:#fff!important}body *{visibility:hidden!important}.daily-schedule-print-area,.daily-schedule-print-area *{visibility:visible!important}.daily-schedule-print-area{position:absolute;inset:0 auto auto 0;width:100%;background:#fff}.print-only{display:block!important}.schedule-print-heading{margin-bottom:8mm;color:#073b2d}.schedule-print-heading h1{margin:0;font-size:18pt}.schedule-print-heading p{margin:2mm 0 0;font-size:10pt;color:#475f56}.daily-sheets-grid,.teacher-day-grid{display:block}.daily-schedule-sheet,.teacher-day-card{page-break-after:always;break-after:page;box-shadow:none;border-radius:0;margin:0 0 8mm}.daily-schedule-sheet:last-child,.teacher-day-card:last-child{page-break-after:auto;break-after:auto}.daily-sheet-header,.daily-sheet-subheader,.daily-sheet-table th,.teacher-day-card>header{-webkit-print-color-adjust:exact;print-color-adjust:exact}.daily-sheet-table{min-width:0;font-size:8pt}.daily-sheet-table tbody tr{height:16mm}.daily-sheet-table th,.daily-sheet-table td{padding:2.2mm}.teacher-day-row{page-break-inside:avoid;break-inside:avoid}}.checkbox-field.zone-shared-checkbox{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #cfe4d8;border-radius:14px;background:#f4faf7;cursor:pointer}.checkbox-field.zone-shared-checkbox input{width:18px;height:18px;margin-top:2px;accent-color:#0f5e42;flex:0 0 auto}.checkbox-field.zone-shared-checkbox span,.checkbox-field.zone-shared-checkbox strong,.checkbox-field.zone-shared-checkbox small{display:block}.checkbox-field.zone-shared-checkbox strong{color:#0f3d2e;margin-bottom:3px}.checkbox-field.zone-shared-checkbox small{color:#64748b;line-height:1.35}.pdf-preview-table table{min-width:1180px}.pdf-preview-table td small{display:block;margin-top:4px}.calendar-event-chip small{margin-left:auto;font-size:10px;opacity:.8}.ack-count-label{display:block;margin-top:5px;color:#527267}.calendar-teacher-multiselect{display:grid;gap:10px}.calendar-teacher-select-head{display:grid;grid-template-columns:1fr minmax(180px,260px);gap:12px;align-items:end}.calendar-teacher-select-head>label{font-weight:700;color:#17332c}.calendar-teacher-options{max-height:230px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #d4e2dc;border-radius:16px;background:#f7fbf9}.calendar-teacher-options label{display:flex;align-items:center;gap:9px;min-height:42px;padding:8px 10px;border:1px solid #dce8e3;border-radius:12px;background:#fff;cursor:pointer}.calendar-teacher-options label.selected{border-color:#087a55;background:#eaf7f1}.calendar-teacher-options input{width:auto}.calendar-event-detail{width:min(720px,calc(100vw - 28px))}.event-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-detail-grid>div{display:grid;gap:5px;padding:13px;border:1px solid #d9e7e1;border-radius:14px;background:#f8fbfa}.event-detail-grid span{color:#667b73;font-size:12px}.event-description-box{margin-top:14px;padding:14px;border-radius:14px;background:#f2f7f5;white-space:pre-wrap}.event-acknowledge-box{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid #dce8e3}.event-acknowledged-banner{margin-top:18px;padding:13px;border:1px solid #9ad2ba;border-radius:14px;color:#075d42;background:#eaf8f1;font-weight:700}.calendar-ack-admin{margin-top:18px;border-top:1px solid #dce8e3;padding-top:15px}.calendar-ack-admin h4{margin:0 0 10px}.calendar-ack-admin>div{display:grid;grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf3f0}.calendar-ack-admin span,.calendar-ack-admin small{color:#60756c}@media(max-width:720px){.calendar-teacher-select-head,.event-acknowledge-box,.calendar-teacher-options,.event-detail-grid{grid-template-columns:1fr}.calendar-ack-admin>div{grid-template-columns:1fr;gap:2px}}.attendance-filter-panel{grid-template-columns:minmax(260px,1.4fr) minmax(190px,.8fr) minmax(190px,.8fr) auto}.attendance-filter-panel>select{min-height:48px;margin:0}.attendance-filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.attendance-filter-actions button{min-height:44px;white-space:nowrap}@media(max-width:1180px){.attendance-filter-panel{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(180px,.7fr))}.attendance-filter-actions{grid-column:1 / -1}}@media(max-width:760px){.attendance-filter-panel{grid-template-columns:1fr}.attendance-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr}}.schedule-print-heading-inner{display:flex;align-items:center;gap:14px}.schedule-print-heading-logo{width:62px;height:62px;object-fit:contain}.schedule-print-heading-copy{flex:1}.schedule-print-kpis{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:8px;margin-top:12px}.schedule-print-kpis span{display:block;border:1px solid #cfe0d8;border-radius:10px;padding:8px 10px;background:#f3f8f5;font-size:9pt;color:#4a655b}.schedule-print-kpis strong{display:block;margin-top:2px;font-size:14pt;color:#073b2d}.schedule-print-chart{margin-top:12px;padding:10px 12px;border:1px solid #cfe0d8;border-radius:10px;background:#fff}.schedule-print-chart>strong{display:block;margin-bottom:8px;color:#073b2d;font-size:10pt}.schedule-print-chart>div{display:grid;gap:5px}.schedule-print-chart span{display:grid;grid-template-columns:86px minmax(120px,1fr) 28px;gap:8px;align-items:center}.schedule-print-chart small{color:#4a655b;font-size:7.5pt}.schedule-print-chart i{display:block;height:8px;overflow:hidden;border-radius:999px;background:#e5eee9}.schedule-print-chart b{display:block;height:100%;border-radius:inherit;background:#0f6a4d}.schedule-print-chart em{color:#073b2d;font-size:8pt;font-style:normal;font-weight:800;text-align:right}@media print{.schedule-print-heading-logo{width:72px;height:82px}.schedule-print-chart{-webkit-print-color-adjust:exact;print-color-adjust:exact;page-break-inside:avoid;break-inside:avoid}}.semester-exam-page{display:grid;gap:22px}.semester-mode-indicator{min-width:255px;display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid #d7e6df;border-radius:18px;background:#f6faf8;color:#516a60}.semester-mode-indicator.active{background:#e8f7ef;border-color:#9ed7b9;color:#07523c;box-shadow:0 10px 30px #004f391f}.semester-mode-indicator div{display:grid;gap:2px}.semester-mode-indicator small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800}.semester-mode-indicator strong{font-size:15px}.semester-mode-indicator span{font-size:12px;opacity:.8}.semester-generator-panel{background:linear-gradient(145deg,#fff,#f3faf6)}.panel-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-heading-row h2{margin:3px 0 5px}.panel-heading-row p{margin:0;color:#60746c}.semester-generator-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}.semester-time-config{margin:18px 0;padding:18px;border:1px solid #d4e5dd;border-radius:20px;background:linear-gradient(145deg,#f9fdfb,#eef7f2);display:grid;gap:16px}.semester-time-config-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.semester-time-config-header>div:first-child{display:flex;align-items:center;gap:11px;color:#087556}.semester-time-config-header>div:first-child>div{display:grid;gap:3px}.semester-time-config-header strong{color:#103f31}.semester-time-config-header span{color:#687c73;font-size:12px}.semester-time-mode-switch{display:inline-flex;gap:5px;padding:5px;border:1px solid #cfe0d8;border-radius:14px;background:#fff}.semester-time-mode-switch button{border:0;background:transparent;color:#506b60;border-radius:10px;padding:9px 13px;font-weight:800;cursor:pointer}.semester-time-mode-switch button.active{background:#075b43;color:#fff;box-shadow:0 5px 14px #075b432e}.semester-weekly-time-range{display:flex;align-items:end;gap:12px;max-width:520px}.semester-weekly-time-range label{display:grid;gap:6px;flex:1}.semester-weekly-time-range label>span,.semester-daily-time-card label>span{color:#48675b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.semester-time-separator{padding-bottom:13px;color:#5e746b;font-weight:900}.semester-daily-time-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px}.semester-daily-time-card{border:1px solid #d4e4dd;border-radius:16px;background:#fff;padding:13px;display:grid;gap:10px}.semester-daily-time-card>strong{color:#075b43;font-size:13px}.semester-daily-time-card>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.semester-daily-time-card label{display:grid;gap:5px;min-width:0}.semester-daily-time-card input{width:100%;min-width:0;padding-left:8px;padding-right:6px}.semester-daily-time-card.disabled{align-content:center;min-height:98px;background:#f4f5f5;border-style:dashed;opacity:.72}.semester-day-disabled-label{color:#8a4a53;font-size:11px;font-weight:900}.semester-optimization-note{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border-radius:15px;background:#e7f5ee;color:#087556}.semester-optimization-note>div{display:grid;gap:2px}.semester-optimization-note strong{color:#07513c;font-size:13px}.semester-optimization-note span{color:#527067;font-size:11px;line-height:1.45}.semester-set-time-rule,.semester-preview-time-rule{display:inline-flex;align-items:center;gap:5px;color:#48675b}.semester-day-selector{margin:18px 0;display:grid;gap:9px}.semester-day-selector>span,.semester-notes-field>span,.semester-generator-grid label>span,.semester-edit-modal label>span{color:#355248;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.semester-day-selector>div{display:flex;flex-wrap:wrap;gap:9px}.semester-day-selector button{border:1px solid #c9ded5;background:#fff;color:#184d3c;border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer}.semester-day-selector button.selected{background:#9f2232;color:#fff;border-color:#9f2232}.semester-notes-field{display:grid;gap:7px}.semester-generate-button{margin-top:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:250px}.semester-set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:15px}.semester-set-card{border:1px solid #d7e5df;border-radius:18px;padding:17px;background:#fff;display:grid;gap:10px;transition:.2s ease}.semester-set-card.selected{border-color:#087556;box-shadow:0 10px 28px #044d381c}.semester-set-card.active{background:linear-gradient(145deg,#eefaf4,#fff);border-color:#70c49f}.semester-set-card header{display:flex;justify-content:space-between;align-items:center;gap:10px}.semester-set-card h3{margin:0;color:#083f30}.semester-set-card p{margin:0;color:#60746c;font-size:13px}.semester-set-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.semester-set-stats span{border-radius:12px;background:#f2f7f5;padding:8px;display:grid;text-align:center;font-size:11px;color:#587066}.semester-set-stats strong{color:#083f30;font-size:17px}.semester-card-actions,.row-actions{display:flex;flex-wrap:wrap;gap:7px}.semester-summary-grid{grid-template-columns:repeat(4,minmax(145px,1fr));margin-bottom:16px}.semester-summary-grid .stat{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px}.semester-summary-grid .stat strong{grid-column:2;font-size:22px;color:#074c38}.semester-preview-filters{display:grid;grid-template-columns:minmax(190px,.35fr) minmax(280px,1fr);gap:12px;margin-bottom:15px}.semester-preview-table-wrap td small{display:block;margin-top:4px;color:#6a7d75}.semester-preview-table-wrap table{min-width:1060px}.semester-edit-modal{width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto}.semester-edit-modal .form-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.semester-edit-modal label{display:grid;gap:6px}.icon-button{display:inline-flex;align-items:center;gap:7px}.pill.neutral{background:#eef3f1;color:#3f5b51}@media(max-width:1000px){.semester-generator-grid,.semester-edit-modal .form-grid{grid-template-columns:repeat(2,minmax(170px,1fr))}.semester-summary-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}@media(max-width:700px){.semester-mode-indicator{width:100%;min-width:0}.panel-heading-row{flex-direction:column}.semester-generator-grid,.semester-edit-modal .form-grid,.semester-preview-filters{grid-template-columns:1fr}.semester-summary-grid{grid-template-columns:1fr 1fr}.semester-generate-button{width:100%;min-width:0}}.semester-preview-heading{align-items:center}.semester-preview-heading-status{display:grid;justify-items:end;gap:7px}.semester-preview-heading-status small{color:#64786f;font-weight:700}.semester-summary-grid{grid-template-columns:repeat(6,minmax(130px,1fr))}.semester-summary-grid .stat{position:relative;min-height:110px;border:1px solid #dbe8e2;border-radius:18px;background:linear-gradient(145deg,#fff,#f5faf7);padding:16px;box-shadow:0 8px 24px #04402f0d}.semester-summary-grid .stat>svg{color:#087556}.semester-summary-grid .stat span{color:#60746c;font-weight:700;font-size:12px}.semester-summary-grid .stat small{grid-column:1 / -1;color:#7a8b84;margin-top:8px;font-size:11px}.semester-conflict-stat.ok{border-color:#b9ddca;background:linear-gradient(145deg,#f7fffa,#eef9f3)}.semester-conflict-stat.danger{border-color:#efc2c7;background:linear-gradient(145deg,snow,#fff1f2)}.semester-conflict-stat.danger>svg,.semester-conflict-stat.danger strong{color:#a51f30}.semester-filter-panel{margin:20px 0 18px;border:1px solid #d5e5dd;border-radius:20px;background:linear-gradient(180deg,#fbfefc,#f3f8f5);overflow:hidden}.semester-filter-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #dce9e3;background:#ffffffb8}.semester-filter-header>div{display:flex;align-items:center;gap:11px;color:#0b5b43}.semester-filter-header>div>div{display:grid;gap:2px}.semester-filter-header strong{color:#083f30}.semester-filter-header span{color:#6b7d75;font-size:12px}.semester-clear-filters{display:inline-flex;align-items:center;gap:6px;border:1px solid #d8e4de;background:#fff;color:#31594b;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}.semester-clear-filters:hover{border-color:#0a7657;color:#0a7657}.semester-day-tabs{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr));gap:8px;padding:14px 16px 4px;overflow-x:auto}.semester-day-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid #d3e2db;border-radius:13px;background:#fff;color:#33594c;font-weight:800;cursor:pointer;white-space:nowrap}.semester-day-tabs button small{display:inline-flex;min-width:23px;height:23px;align-items:center;justify-content:center;border-radius:999px;background:#eef5f1;color:#537066;font-size:10px}.semester-day-tabs button.active{background:#075b43;color:#fff;border-color:#075b43;box-shadow:0 8px 18px #075b432e}.semester-day-tabs button.active small{background:#ffffff2e;color:#fff}.semester-preview-filters-advanced{grid-template-columns:repeat(5,minmax(150px,1fr));padding:14px 16px 18px;margin:0}.semester-preview-filters-advanced label{display:grid;gap:6px}.semester-preview-filters-advanced label>span{color:#48675b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.semester-preview-filters-advanced select,.semester-preview-filters-advanced input{width:100%;min-height:44px}.semester-search-field{grid-column:span 2}.semester-search-field>div{display:flex;align-items:center;gap:8px;border:1px solid #cddfd6;border-radius:13px;padding:0 11px;background:#fff}.semester-search-field>div:focus-within{border-color:#0a7657;box-shadow:0 0 0 3px #0a76571a}.semester-search-field input{border:0;box-shadow:none;padding-left:0}.semester-search-field input:focus{box-shadow:none}.semester-search-field button{border:0;background:transparent;color:#6e8178;display:inline-flex;cursor:pointer;padding:4px}.semester-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 16px}.semester-view-toolbar>div:first-child{display:grid;gap:2px}.semester-view-toolbar>div:first-child strong{color:#153f32}.semester-view-toolbar>div:first-child span{color:#708179;font-size:12px}.semester-view-switcher{display:inline-flex;gap:5px;padding:5px;border:1px solid #d4e3dc;border-radius:14px;background:#f4f8f6}.semester-view-switcher button{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#4d675d;border-radius:10px;padding:9px 13px;font-weight:800;cursor:pointer}.semester-view-switcher button.active{background:#fff;color:#075b43;box-shadow:0 4px 14px #04402f1c}.semester-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:17px}.semester-group-card{border:1px solid #d6e5de;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 8px 28px #04402f0e}.semester-group-card>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border-bottom:1px solid #dce9e3;background:linear-gradient(135deg,#f2faf6,#fff)}.semester-group-title{display:flex;align-items:center;gap:12px;min-width:0}.semester-group-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:13px;background:#075b43;color:#fff;flex:0 0 auto}.semester-group-title small{color:#668077;text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:900}.semester-group-title h3{margin:1px 0 2px;color:#073f2f;font-size:19px}.semester-group-title p{margin:0;color:#62766e;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.semester-group-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px;color:#587168;font-size:11px;font-weight:800;white-space:nowrap}.semester-group-meta span{display:inline-flex;align-items:center;gap:5px}.semester-group-schedules{display:grid}.semester-schedule-item{position:relative;display:grid;grid-template-columns:145px minmax(190px,1.25fr) minmax(170px,1fr) auto;align-items:center;gap:13px;padding:14px 16px;border-bottom:1px solid #edf2ef}.semester-schedule-item:last-child{border-bottom:0}.semester-schedule-item:hover{background:#f8fbf9}.semester-schedule-item.compact{grid-template-columns:125px minmax(160px,1.25fr) minmax(145px,1fr) auto;padding:12px 15px}.semester-schedule-item.has-conflict{background:#fff8f8;box-shadow:inset 4px 0 #b52537}.semester-schedule-time,.semester-schedule-subject,.semester-schedule-location{display:grid;gap:4px;min-width:0}.semester-schedule-time strong{color:#075b43;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.semester-schedule-time span{color:#1e3c32;font-weight:900}.semester-schedule-subject strong,.semester-schedule-location strong{color:#163e31;overflow:hidden;text-overflow:ellipsis}.semester-schedule-subject span,.semester-schedule-location span{display:inline-flex;align-items:center;gap:5px;color:#667a72;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.semester-conflict-badge{display:inline-flex;align-items:center;gap:5px;width:max-content;border-radius:999px;padding:5px 8px;background:#fde8eb;color:#9c1f2f;font-size:10px;font-weight:900}.semester-inline-actions{display:flex;gap:6px;justify-self:end}.semester-day-groups{display:grid;gap:18px}.semester-day-card{border:1px solid #d5e5dd;border-radius:20px;background:#fff;overflow:hidden}.semester-day-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:#075b43;color:#fff}.semester-day-card>header>div{display:flex;align-items:center;gap:9px}.semester-day-card h3{margin:0;color:#fff}.semester-day-card>header>span{background:#ffffff29;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900}.semester-day-schedules{display:grid}.semester-empty-preview{grid-column:1 / -1;padding:35px}.semester-conflict-row{background:#fff7f8}.semester-table-conflict{display:inline-flex;align-items:center;gap:4px;margin-top:6px;color:#a21f30;font-weight:900;font-size:10px}@media(max-width:1220px){.semester-summary-grid{grid-template-columns:repeat(3,minmax(145px,1fr))}.semester-preview-filters-advanced{grid-template-columns:repeat(3,minmax(160px,1fr))}.semester-search-field{grid-column:span 1}.semester-schedule-item,.semester-schedule-item.compact{grid-template-columns:120px minmax(170px,1fr) minmax(150px,1fr)}.semester-inline-actions,.semester-conflict-badge{grid-column:2 / -1;justify-self:start}}@media(max-width:850px){.semester-summary-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.semester-preview-filters-advanced{grid-template-columns:repeat(2,minmax(150px,1fr))}.semester-day-tabs{grid-template-columns:repeat(6,minmax(125px,1fr))}.semester-view-toolbar{align-items:flex-start;flex-direction:column}.semester-view-switcher{width:100%}.semester-view-switcher button{flex:1;justify-content:center}.semester-group-grid{grid-template-columns:1fr}}@media(max-width:620px){.semester-preview-heading-status{justify-items:start}.semester-summary-grid,.semester-preview-filters-advanced{grid-template-columns:1fr}.semester-filter-header{align-items:flex-start;flex-direction:column}.semester-clear-filters{width:100%;justify-content:center}.semester-view-switcher{display:grid;grid-template-columns:1fr}.semester-group-card>header{align-items:flex-start;flex-direction:column}.semester-group-meta{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.semester-group-title p{max-width:230px}.semester-schedule-item,.semester-schedule-item.compact{grid-template-columns:1fr;gap:9px}.semester-inline-actions,.semester-conflict-badge{grid-column:1}.semester-inline-actions{justify-self:stretch}.semester-inline-actions button{flex:1;justify-content:center}}@media(max-width:1180px){.semester-daily-time-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media(max-width:760px){.semester-time-config-header{align-items:flex-start;flex-direction:column}.semester-time-mode-switch{width:100%;display:grid;grid-template-columns:1fr 1fr}.semester-time-mode-switch button{padding:10px 8px}.semester-daily-time-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.semester-time-config{padding:14px}.semester-time-mode-switch,.semester-daily-time-grid{grid-template-columns:1fr}.semester-weekly-time-range{align-items:stretch;flex-direction:column}.semester-time-separator{display:none}}.semester-edit-range-note{margin-top:14px;display:flex;align-items:center;gap:7px;padding:10px 12px;border-radius:12px;background:#eef7f2;color:#315f50;font-size:12px;font-weight:700}.semester-view-switcher{flex-wrap:wrap;justify-content:flex-end}.semester-pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:14px 16px;border:1px solid #d6e5de;border-radius:17px;background:linear-gradient(135deg,#f7fbf9,#eef6f2)}.semester-pdf-toolbar-title{display:flex;align-items:center;gap:10px;color:#075b43}.semester-pdf-toolbar-title>div{display:grid;gap:2px}.semester-pdf-toolbar-title strong{color:#103f31}.semester-pdf-toolbar-title span{color:#697e75;font-size:12px}.semester-pdf-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}.semester-pdf-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 11px;border:1px solid #bfd6cb;border-radius:11px;background:#fff;color:#075b43;font-weight:850;cursor:pointer;box-shadow:0 3px 10px #04402f0d}.semester-pdf-actions button:hover:not(:disabled){border-color:#087556;background:#f4fbf7;transform:translateY(-1px)}.semester-pdf-actions button:disabled{opacity:.58;cursor:wait}.semester-teacher-card>header{background:linear-gradient(135deg,#eef8f3,#fbfdfc)}.semester-teacher-icon{background:#8da421}@media(max-width:1050px){.semester-pdf-toolbar{align-items:flex-start;flex-direction:column}.semester-pdf-actions{width:100%;justify-content:flex-start}}@media(max-width:620px){.semester-pdf-actions{display:grid;grid-template-columns:1fr}.semester-pdf-actions button{width:100%}.semester-pdf-toolbar-title{align-items:flex-start}}.semester-edit-backdrop{z-index:220;padding:24px;overflow-y:auto;background:#05181294;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.semester-edit-modal{width:min(980px,calc(100vw - 32px));max-height:min(94vh,920px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(7,91,67,.18);border-radius:26px;background:#f7faf8;box-shadow:0 34px 100px #021a1257;animation:semester-edit-enter .18s ease-out}@keyframes semester-edit-enter{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.semester-edit-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #dce8e2;background:linear-gradient(135deg,#fff,#edf7f2)}.semester-edit-title{min-width:0;display:flex;align-items:center;gap:14px}.semester-edit-title-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#075b43,#0d8060);color:#fff;box-shadow:0 10px 22px #075b4338}.semester-edit-title>div{min-width:0;display:grid;gap:2px}.semester-edit-kicker{color:#087556;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.semester-edit-title h2{margin:0;color:#0a3e2f;font-size:clamp(21px,2.4vw,28px);letter-spacing:-.025em}.semester-edit-title p{max-width:650px;margin:0;overflow:hidden;color:#64786f;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.semester-edit-close{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;padding:0;border:1px solid #d5e3dc;border-radius:13px;background:#fff;color:#31594b;cursor:pointer;transition:.18s ease}.semester-edit-close:hover:not(:disabled){border-color:#afc9bd;background:#f1f8f4;color:#075b43;transform:rotate(3deg)}.semester-edit-content{min-height:0;display:grid;gap:14px;padding:18px 20px 22px;overflow-y:auto}.semester-edit-section{display:grid;gap:15px;padding:17px;border:1px solid #d9e6e0;border-radius:19px;background:#fff;box-shadow:0 5px 18px #04402f0b}.semester-edit-schedule-section{border-color:#c9ded4;background:linear-gradient(145deg,#fff,#f3faf6)}.semester-edit-section-heading{display:flex;align-items:center;gap:10px}.semester-edit-section-heading>span{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:11px;background:#e6f3ed;color:#087556}.semester-edit-section-heading>div{display:grid;gap:1px}.semester-edit-section-heading strong{color:#123f32;font-size:14px}.semester-edit-section-heading small{color:#71837b;font-size:11px}.semester-edit-time-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr .9fr;gap:12px;align-items:end}.semester-edit-academic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.semester-edit-location-grid{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1.3fr);gap:12px}.semester-edit-field-wide{grid-column:1 / -1}.semester-edit-modal label{min-width:0;display:grid;gap:7px}.semester-edit-modal label>span{color:#49665b;font-size:10px;font-weight:900;letter-spacing:.065em;text-transform:uppercase}.semester-edit-modal input,.semester-edit-modal select{width:100%;min-width:0;min-height:46px;margin:0;border-color:#cbdcd4;border-radius:12px;background-color:#fff}.semester-edit-modal input:focus,.semester-edit-modal select:focus{border-color:#0a7657;box-shadow:0 0 0 3px #0a76571c}.semester-edit-modal label>small{min-height:14px;color:#7b8c84;font-size:10px}.semester-edit-input-icon{position:relative;display:flex;align-items:center}.semester-edit-input-icon>svg{position:absolute;left:13px;z-index:1;color:#71877d;pointer-events:none}.semester-edit-input-icon select{padding-left:40px}.semester-edit-duration{min-height:46px;display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid;border-radius:12px}.semester-edit-duration>div{display:grid;gap:1px}.semester-edit-duration span{font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.semester-edit-duration strong{font-size:12px}.semester-edit-duration.valid{border-color:#abd8c1;background:#edf9f3;color:#087556}.semester-edit-duration.invalid{border-color:#e6b9bf;background:#fff3f4;color:#a32435}.semester-edit-range-note{margin:0;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:#e9f5ef;color:#315f50;font-size:12px;font-weight:650}.semester-edit-alert{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid;border-radius:14px}.semester-edit-alert>div{display:grid;gap:2px}.semester-edit-alert strong{font-size:13px}.semester-edit-alert span{font-size:12px;line-height:1.4}.semester-edit-alert.danger{border-color:#efc1c7;background:#fff2f3;color:#982233}.semester-edit-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;border-top:1px solid #dce8e2;background:#fff}.semester-edit-save-status{min-width:0;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:750}.semester-edit-save-status.ready{color:#087556}.semester-edit-save-status.pending{color:#9a3a48}.semester-edit-save-status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.semester-edit-actions{flex:0 0 auto;display:flex;align-items:center;gap:9px}.semester-edit-actions button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:9px 17px;border-radius:12px}@media(max-width:820px){.semester-edit-backdrop{padding:12px}.semester-edit-modal{width:min(100%,720px);max-height:calc(100vh - 24px);border-radius:21px}.semester-edit-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-edit-location-grid{grid-template-columns:1fr}}@media(max-width:580px){.semester-edit-backdrop{padding:0;place-items:end center}.semester-edit-modal{width:100%;max-height:96vh;border-radius:24px 24px 0 0}.semester-edit-header{padding:16px}.semester-edit-title-icon{width:42px;height:42px;flex-basis:42px}.semester-edit-title p{max-width:230px}.semester-edit-content,.semester-edit-section{padding:14px}.semester-edit-time-grid,.semester-edit-academic-grid{grid-template-columns:1fr}.semester-edit-field-wide{grid-column:auto}.semester-edit-duration{min-height:54px}.semester-edit-footer{align-items:stretch;flex-direction:column;padding:13px 14px}.semester-edit-save-status span{white-space:normal}.semester-edit-actions{display:grid;grid-template-columns:1fr 1fr}.semester-edit-actions button{width:100%}}.semester-add-exam-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 15px;border-radius:13px;white-space:nowrap;box-shadow:0 8px 20px #075b4329}.semester-add-exam-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.58}.semester-create-header{background:linear-gradient(135deg,#fff,#eef8f3 60%,#e4f3ec)}.semester-create-title-icon{background:linear-gradient(145deg,#7d9718,#9cb52d);box-shadow:0 10px 22px #7d97183d}.semester-create-info{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid #cbdcc0;border-radius:15px;background:linear-gradient(135deg,#f7faef,#eef6e1);color:#60751b}.semester-create-info>div{display:grid;gap:2px}.semester-create-info strong{color:#526516;font-size:13px}.semester-create-info span{color:#6d7c45;font-size:11px;line-height:1.45}.semester-create-academic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-create-note-field{margin-top:2px}@media(max-width:820px){.semester-preview-heading-status{width:100%;justify-items:start}.semester-add-exam-button{width:100%}}@media(max-width:580px){.semester-create-academic-grid{grid-template-columns:1fr}}.content-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.modal-backdrop,.semester-edit-backdrop{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;height:100dvh!important;min-height:100dvh!important;margin:0!important;overflow:auto!important;overscroll-behavior:contain;z-index:1000!important}.modal-backdrop>*,.semester-edit-backdrop>*{max-height:calc(100dvh - 32px)}body:has(.modal-backdrop),body:has(.semester-edit-backdrop){overflow:hidden}.semester-teacher-card-actions{align-items:flex-end}.semester-teacher-pdf-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 10px;border:1px solid #b9d7ca;border-radius:10px;background:#fff;color:#075b43;font-size:12px;font-weight:850;cursor:pointer;box-shadow:0 3px 10px #04402f0f}.semester-teacher-pdf-button:hover:not(:disabled){border-color:#087556;background:#f4fbf7;transform:translateY(-1px)}.semester-teacher-pdf-button:disabled{opacity:.6;cursor:wait}@media(max-width:580px){.modal-backdrop,.semester-edit-backdrop{height:100dvh!important;min-height:100dvh!important}.modal-backdrop>*,.semester-edit-backdrop>*{max-height:96dvh}.semester-teacher-card-actions{align-items:stretch;width:100%}.semester-teacher-pdf-button{width:100%}}.timetable-builder-page{display:grid;gap:18px}.timetable-page-title{align-items:flex-start}.timetable-page-title>div:first-child{max-width:840px}.timetable-page-title>button,.timetable-builder-page button:not(.timetable-project-list button):not(.timetable-icon-button):not(.timetable-row-actions button):not(.timetable-mini-edit):not(.timetable-board-items button){display:inline-flex;align-items:center;justify-content:center;gap:7px}.timetable-eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:7px;color:#087556;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.timetable-message{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #b8decf;border-radius:14px;background:#edf9f4;color:#075b43;font-weight:750}.timetable-message.error{border-color:#fecaca;background:#fff1f2;color:#991b1b}.timetable-message button{min-width:30px;width:30px;height:30px;padding:0;border:0;border-radius:9px;background:transparent;color:inherit}.timetable-loading{min-height:360px;display:grid;place-content:center;grid-auto-flow:column;align-items:center;gap:10px;color:#557067;font-weight:800}.timetable-workspace{display:grid;grid-template-columns:282px minmax(0,1fr);gap:16px;align-items:start}.timetable-project-panel{position:sticky;top:90px;display:grid;gap:12px;max-height:calc(100dvh - 120px);overflow:hidden;padding:15px;border:1px solid #dce9e3;border-radius:23px;background:linear-gradient(180deg,#f9fcfa,#f2f8f5)}.timetable-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.timetable-panel-title>div{display:flex;align-items:center;gap:8px;color:#0b5b43}.timetable-panel-title>span{min-width:27px;height:27px;display:inline-grid;place-items:center;border-radius:999px;background:#dcefe6;color:#075b43;font-size:12px;font-weight:900}.timetable-project-list{display:grid;gap:8px;overflow:auto;padding-right:3px}.timetable-project-list>button{width:100%;display:grid;gap:7px;padding:12px;border:1px solid #d8e7e0;border-radius:15px;background:#fff;text-align:left;color:#20372f;cursor:pointer;transition:.15s ease}.timetable-project-list>button:hover{border-color:#9fc9b8;transform:translateY(-1px)}.timetable-project-list>button.active{border-color:#087556;box-shadow:0 0 0 3px #0875561a;background:#f6fcf9}.timetable-project-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.timetable-project-card-top strong{font-size:14px;line-height:1.3}.timetable-project-list p{margin:0;color:#667c73;font-size:12px}.timetable-project-card-stats{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;color:#73887f;font-size:11px;font-weight:750}.timetable-project-card-stats svg{justify-self:end}.timetable-empty-small{display:grid;place-items:center;gap:7px;padding:24px 12px;color:#71847c;text-align:center}.timetable-empty-small p{margin:0}.timetable-main-panel{min-width:0;display:grid;gap:14px}.timetable-empty-main{min-height:500px;display:grid;place-content:center;justify-items:center;gap:11px;padding:40px;border:1px dashed #bad4c9;border-radius:24px;background:#f8fcfa;text-align:center;color:#577168}.timetable-empty-main h2,.timetable-empty-main p{margin:0}.timetable-empty-main p{max-width:560px;line-height:1.6}.timetable-project-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border:1px solid #d5e6de;border-radius:22px;background:linear-gradient(135deg,#f9fdfb,#eaf7f1)}.timetable-project-heading-row{display:flex;align-items:center;gap:9px;margin-bottom:7px;color:#5e756b;font-size:12px;font-weight:750}.timetable-project-hero h2{margin:0 0 5px;color:#0a4434}.timetable-project-hero p{margin:0;color:#61766d}.timetable-hero-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.timetable-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.timetable-kpi-grid article{display:flex;align-items:center;gap:10px;min-width:0;padding:13px;border:1px solid #dce8e2;border-radius:16px;background:#fff}.timetable-kpi-grid article>span{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:#e7f4ee;color:#087556}.timetable-kpi-grid article>div{min-width:0;display:grid}.timetable-kpi-grid strong{color:#123d31;font-size:19px}.timetable-kpi-grid small{overflow:hidden;text-overflow:ellipsis;color:#71847c;white-space:nowrap}.timetable-tabs{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:5px;border:1px solid #dbe8e2;border-radius:15px;background:#f5faf7}.timetable-tabs button{flex:0 0 auto;min-height:39px;display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:0;border-radius:11px;background:transparent;color:#5d746a;font-weight:800;cursor:pointer}.timetable-tabs button.active{background:#fff;color:#075b43;box-shadow:0 4px 13px #073b2d14}.timetable-tabs button>span{min-width:21px;height:21px;display:inline-grid;place-items:center;border-radius:999px;background:#e7f2ed;font-size:11px}.timetable-tabs .danger-count{background:#fee2e2;color:#991b1b}.timetable-section-card{display:grid;gap:17px;padding:18px;border:1px solid #dbe8e2;border-radius:22px;background:#fff}.timetable-section-card>header,.timetable-section-header-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.timetable-section-card>header>div:first-child,.timetable-section-header-actions>div:first-child{display:flex;align-items:flex-start;gap:10px;color:#087556}.timetable-section-card header h3,.timetable-section-card header p{margin:0}.timetable-section-card header p{margin-top:3px;color:#71847c;font-size:13px;font-weight:500}.timetable-section-header-actions>div:last-child{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.timetable-section-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:13px;border-top:1px solid #edf2ef}.timetable-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.timetable-field{min-width:0;display:grid;gap:6px}.timetable-field>span,.timetable-field-label{color:#3f5c51;font-size:12px;font-weight:850}.timetable-field-wide{grid-column:1 / -1}.timetable-field input,.timetable-field select,.timetable-field textarea{width:100%;min-width:0;margin:0;border-color:#cfdfd7;background:#fbfdfc}.timetable-field textarea{resize:vertical}.timetable-day-checkboxes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.timetable-day-checkboxes label{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px;border:1px solid #d9e6e0;border-radius:11px;background:#fff;color:#60766d;font-size:12px;font-weight:800;cursor:pointer}.timetable-day-checkboxes label.selected{border-color:#65a98f;background:#eaf7f1;color:#075b43}.timetable-day-checkboxes input{width:15px;min-height:auto;margin:0;accent-color:#087556}.timetable-switch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.timetable-switch-grid>label,.timetable-toggle-field{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid #dce8e2;border-radius:13px;background:#f9fcfa;cursor:pointer}.timetable-switch-grid input,.timetable-toggle-field input{width:17px;min-height:auto;margin:2px 0 0;accent-color:#087556}.timetable-switch-grid span,.timetable-toggle-field span{display:grid;gap:3px}.timetable-switch-grid strong,.timetable-toggle-field strong{color:#214d3f;font-size:13px}.timetable-switch-grid small,.timetable-toggle-field small{color:#71847c;line-height:1.4}.timetable-toggle-field{align-self:end}.timetable-table-wrapper{max-width:100%;border:1px solid #e1ebe6;border-radius:15px}.timetable-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px}.timetable-table th{padding:11px 10px;background:#f2f8f5;color:#526b61;font-size:11px;text-align:left;text-transform:uppercase;letter-spacing:.04em}.timetable-table td{padding:11px 10px;border-top:1px solid #e7efeb;vertical-align:middle;color:#344f45;font-size:13px}.timetable-table td>strong,.timetable-table td>small{display:block}.timetable-table td>small{margin-top:3px;color:#71847c}.timetable-row-actions{display:flex;justify-content:flex-end;gap:5px}.timetable-row-actions button,.timetable-mini-edit{width:33px;height:33px;display:inline-grid;place-items:center;padding:0;border:1px solid #d6e4dd;border-radius:9px;background:#fff;color:#087556;cursor:pointer}.timetable-row-actions button.danger{color:#b42318}.timetable-number-badge{min-width:30px;height:30px;display:inline-grid;place-items:center;border-radius:9px;background:#e7f4ee;color:#075b43;font-weight:900}.timetable-table-empty{min-height:160px;display:grid;place-content:center;justify-items:center;gap:8px;color:#75887f;text-align:center}.timetable-constraint-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:11px}.timetable-constraint-card{display:grid;gap:10px;padding:14px;border:1px solid #dce7e2;border-left:4px solid #e2a72e;border-radius:15px;background:#fffdf8}.timetable-constraint-card.hard{border-left-color:#c2413b;background:snow}.timetable-constraint-card>header{display:flex;align-items:center;gap:9px}.timetable-constraint-card>header>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fee7e7;color:#a72f2f}.timetable-constraint-card.soft>header>span{background:#fff2cf;color:#9a6710}.timetable-constraint-card header div{display:grid}.timetable-constraint-card header small{color:#788b82}.timetable-constraint-card p{margin:0;color:#546b61}.timetable-constraint-card>div{display:flex;flex-wrap:wrap;gap:8px}.timetable-constraint-card>div span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;background:#fffc;color:#5b7167;font-size:12px}.timetable-constraint-card blockquote{margin:0;padding:9px 10px;border-left:3px solid #d9e4de;color:#667c73;font-size:12px}.timetable-constraint-card footer{display:flex;gap:7px;padding-top:8px;border-top:1px solid rgba(221,231,226,.8)}.timetable-constraint-card footer button{flex:1;min-height:34px;border:1px solid #d6e3dd;border-radius:9px;background:#fff;color:#426157}.timetable-constraint-card footer button.danger{color:#a82c2c}.timetable-empty-inline{grid-column:1 / -1;min-height:230px;display:grid;place-content:center;justify-items:center;gap:7px;padding:28px;border:1px dashed #c7dbd2;border-radius:17px;color:#70857b;text-align:center}.timetable-empty-inline.compact{min-height:170px}.timetable-empty-inline h4,.timetable-empty-inline p{margin:0}.timetable-generator-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.timetable-generator-card{display:grid;align-content:start;gap:12px;padding:18px;border:1px solid #dbe8e2;border-radius:19px;background:#fff}.timetable-generator-card.primary-generator{grid-column:span 2;grid-row:span 2;min-height:290px;align-content:center;justify-items:start;background:linear-gradient(135deg,#0b644a,#087556);color:#fff}.timetable-generator-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#ffffff2e}.timetable-generator-icon.secondary{width:46px;height:46px;border-radius:14px;background:#e6f3ed;color:#087556}.timetable-generator-card h3,.timetable-generator-card p{margin:0}.timetable-generator-card small{font-weight:850;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.timetable-generator-card p{margin-top:5px;line-height:1.55;opacity:.84}.timetable-generator-card.primary-generator button{margin-top:7px;background:#fff;color:#075b43}.timetable-run-history{grid-column:1 / -1;display:grid;gap:12px;padding:17px;border:1px solid #dbe8e2;border-radius:19px;background:#fff}.timetable-run-history>header{display:flex;align-items:flex-start;gap:9px;color:#087556}.timetable-run-history h3,.timetable-run-history p{margin:0}.timetable-run-history>div{display:grid;gap:7px}.timetable-run-history>div>div{display:grid;grid-template-columns:95px 1fr auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #e3ece8;border-radius:11px}.timetable-run-history small{color:#70857b}.muted-text{color:#71847c}.timetable-board-section{overflow:hidden}.timetable-view-switcher{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border:1px solid #dae7e1;border-radius:13px;background:#f5faf7}.timetable-view-switcher button{min-height:36px;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:#60766c;font-weight:800}.timetable-view-switcher button.active{background:#fff;color:#075b43;box-shadow:0 3px 10px #073b2d14}.timetable-filter-bar{display:grid;grid-template-columns:minmax(230px,1.5fr) repeat(4,minmax(130px,.7fr)) auto;gap:7px}.timetable-filter-bar label{display:flex;align-items:center;gap:7px;min-width:0;padding:0 10px;border:1px solid #d3e1da;border-radius:10px;background:#fff;color:#6c8077}.timetable-filter-bar input{min-width:0;min-height:38px;padding:0;margin:0;border:0;box-shadow:none;background:transparent}.timetable-filter-bar input:focus{box-shadow:none}.timetable-filter-bar select{min-width:0;min-height:40px;margin:0;padding:7px 9px;border-radius:10px}.timetable-board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.timetable-board-card{min-width:0;overflow:hidden;border:1px solid #dbe7e1;border-radius:17px;background:#fff}.timetable-board-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;background:linear-gradient(135deg,#eef8f3,#f9fcfa)}.timetable-board-card>header>div:first-child{min-width:0;display:flex;align-items:center;gap:9px}.timetable-board-card>header>div:first-child>span{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:#087556;color:#fff}.timetable-board-card header small{color:#698078;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.timetable-board-card h3{overflow:hidden;margin:1px 0 0;color:#143e32;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.timetable-board-card-meta{display:grid;justify-items:end;gap:1px}.timetable-board-card-meta strong{color:#075b43;font-size:18px}.timetable-board-card-meta span{color:#74887f;font-size:11px}.timetable-board-card-meta button{min-height:29px!important;padding:5px 8px!important;margin-top:4px;font-size:11px}.timetable-board-items{display:grid}.timetable-board-items>button{width:100%;display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;border:0;border-top:1px solid #e8efec;background:#fff;text-align:left;color:#344f45;cursor:pointer}.timetable-board-items>button:hover{background:#f7fbf9}.timetable-board-items>button.conflict{border-left:4px solid #dc3f3f;background:#fff8f8}.timetable-entry-time{display:grid;gap:2px}.timetable-entry-time strong{color:#087556;font-size:11px;text-transform:uppercase}.timetable-entry-time span{font-size:12px;font-weight:800}.timetable-board-items>button>div:nth-child(2){min-width:0;display:grid;gap:3px}.timetable-board-items>button>div:nth-child(2) strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timetable-board-items>button>div:nth-child(2) span{overflow:hidden;color:#74887f;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.timetable-lock-state{display:inline-flex;align-items:center;gap:5px;color:#71857c;font-size:11px;font-weight:800}.timetable-lock-state.locked{color:#087556}.timetable-verify-layout{display:grid;gap:13px}.timetable-verification-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;border:1px solid #fed0d0;border-radius:19px;background:#fff8f8;color:#a32a2a}.timetable-verification-summary.valid{border-color:#bde1d1;background:#effaf5;color:#087556}.timetable-verification-summary>span{width:55px;height:55px;display:grid;place-items:center;border-radius:16px;background:#ffffffbf}.timetable-verification-summary h3,.timetable-verification-summary p{margin:0}.timetable-verification-summary p{margin-top:4px;color:#6b7e76}.timetable-issue-list{display:grid;gap:7px}.timetable-issue-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid #f3d3a6;border-radius:12px;background:#fffaf0;color:#9a5c0b}.timetable-issue-list article.error{border-color:#fecaca;background:#fff5f5;color:#a32a2a}.timetable-issue-list article p{margin:2px 0 0;color:#687b73;font-size:12px}.timetable-issue-list article button{min-height:32px!important;padding:6px 9px!important}.timetable-publication-card{display:grid;gap:14px;padding:18px;border:1px solid #cfe2d9;border-radius:20px;background:linear-gradient(135deg,#fbfefc,#eef8f3)}.timetable-publication-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.timetable-publication-card>header>div{display:flex;align-items:flex-start;gap:9px;color:#087556}.timetable-publication-card h3,.timetable-publication-card p{margin:0}.timetable-publication-card header p{margin-top:3px;color:#698078}.timetable-integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.timetable-integration-grid span{display:flex;align-items:center;gap:6px;padding:9px 10px;border:1px solid #d5e6de;border-radius:10px;background:#fffc;color:#49655a;font-size:12px;font-weight:800}.timetable-integration-grid span:before{content:"✓";width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;background:#dff2e9;color:#087556}.timetable-publication-note{display:flex;align-items:flex-start;gap:7px;padding:10px 11px;border-radius:11px;background:#fff8e7;color:#876313;font-size:12px}.timetable-publication-card footer{display:flex;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid #dbe8e2}.timetable-modal-backdrop{z-index:1200!important;background:#041c1494;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.timetable-modal{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #cbded5;border-radius:23px;background:#f8fbf9;box-shadow:0 30px 90px #021a1257}.timetable-modal.wide{width:min(970px,calc(100vw - 32px))}.timetable-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #dfeae5;background:#fff}.timetable-modal-heading{min-width:0;display:flex;align-items:center;gap:10px}.timetable-modal-heading>span{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:#e3f2eb;color:#087556}.timetable-modal-heading h2{margin:0;color:#123f32;font-size:19px}.timetable-modal-heading p{margin:3px 0 0;color:#71847c;font-size:12px}.timetable-icon-button{width:37px;height:37px;display:grid;place-items:center;padding:0;border:1px solid #dae5e0;border-radius:11px;background:#fff;color:#50685e;cursor:pointer}.timetable-modal-body{min-height:0;overflow:auto;padding:18px}.timetable-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:13px 18px;border-top:1px solid #dfeae5;background:#fff}.timetable-entry-context{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid #d9e7e0;border-radius:12px;background:#eef8f3}.timetable-entry-context>span{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#fff;color:#087556}.timetable-entry-context p{margin:2px 0 0;color:#687d74}.danger-outline{border-color:#f1baba!important;background:#fff8f8!important;color:#a32a2a!important}@media(max-width:1180px){.timetable-workspace{grid-template-columns:230px minmax(0,1fr)}.timetable-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.timetable-filter-bar{grid-template-columns:minmax(230px,1fr) repeat(2,minmax(150px,.6fr))}.timetable-filter-bar select:nth-of-type(3),.timetable-filter-bar select:nth-of-type(4){grid-row:2}.timetable-filter-bar button{grid-row:2}}@media(max-width:900px){.timetable-workspace{grid-template-columns:1fr}.timetable-project-panel{position:static;max-height:none}.timetable-project-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-height:260px}.timetable-project-hero{align-items:flex-start;flex-direction:column}.timetable-hero-actions{width:100%;justify-content:flex-start}.timetable-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-switch-grid{grid-template-columns:1fr}.timetable-generator-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-generator-card.primary-generator{grid-column:1 / -1;grid-row:auto;min-height:250px}.timetable-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-filter-bar label{grid-column:1 / -1}.timetable-integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.timetable-page-title{flex-direction:column}.timetable-page-title>button{width:100%}.timetable-project-list{grid-template-columns:1fr}.timetable-kpi-grid{grid-template-columns:1fr 1fr}.timetable-kpi-grid article:last-child{grid-column:1 / -1}.timetable-section-card{padding:14px;border-radius:18px}.timetable-section-card>header,.timetable-section-header-actions{align-items:stretch;flex-direction:column}.timetable-section-header-actions>div:last-child{justify-content:stretch}.timetable-section-header-actions>div:last-child button,.timetable-section-header-actions>button{flex:1;width:100%}.timetable-form-grid{grid-template-columns:1fr}.timetable-field-wide{grid-column:auto}.timetable-day-checkboxes{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-day-checkboxes label:last-child{grid-column:1 / -1}.timetable-generator-layout{grid-template-columns:1fr}.timetable-generator-card.primary-generator,.timetable-run-history{grid-column:auto}.timetable-run-history>div>div{grid-template-columns:1fr}.timetable-board-grid,.timetable-filter-bar{grid-template-columns:1fr}.timetable-filter-bar label,.timetable-filter-bar select,.timetable-filter-bar button{grid-column:auto;grid-row:auto!important}.timetable-board-card>header{align-items:flex-start}.timetable-board-items>button{grid-template-columns:86px minmax(0,1fr) auto}.timetable-verification-summary{grid-template-columns:auto minmax(0,1fr)}.timetable-verification-summary>button{grid-column:1 / -1;width:100%}.timetable-integration-grid{grid-template-columns:1fr}.timetable-publication-card footer{flex-direction:column-reverse}.timetable-publication-card footer button{width:100%}.timetable-modal-backdrop{padding:0!important;place-items:end center!important}.timetable-modal,.timetable-modal.wide{width:100%;max-height:96dvh;border-radius:23px 23px 0 0}.timetable-modal-header,.timetable-modal-body{padding:14px}.timetable-modal-footer{padding:12px 14px}}.semester-preview-primary-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.65rem}.semester-import-pdf-button,.semester-add-exam-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;white-space:nowrap}.semester-pdf-import-modal{width:min(1180px,calc(100vw - 32px));max-height:min(92vh,940px)}.semester-pdf-import-content{display:grid;gap:1rem}.semester-pdf-import-title-icon{background:linear-gradient(145deg,#0b664e,#0f8567);color:#fff}.semester-pdf-import-file-section{display:grid;gap:.9rem}.semester-pdf-dropzone{position:relative;min-height:112px;border:2px dashed #aac8be;border-radius:16px;background:#f7fbf9;padding:1.1rem 1.25rem;display:flex;align-items:center;justify-content:center;gap:1rem;cursor:pointer;color:#24584a;transition:border-color .18s ease,background .18s ease,transform .18s ease}.semester-pdf-dropzone:hover{border-color:#16775b;background:#eff8f4;transform:translateY(-1px)}.semester-pdf-dropzone.has-file{border-style:solid;border-color:#238365;background:#edf8f3}.semester-pdf-dropzone input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.semester-pdf-dropzone>div{display:grid;gap:.25rem}.semester-pdf-dropzone strong{font-size:.98rem;color:#173e34}.semester-pdf-dropzone span{font-size:.82rem;color:#647a73}.semester-pdf-import-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.semester-pdf-import-options>label{border:1px solid #dce7e2;border-radius:14px;padding:.85rem .95rem;display:grid;grid-template-columns:auto 1fr;align-items:flex-start;gap:.7rem;background:#fff;cursor:pointer}.semester-pdf-import-options>label.selected{border-color:#238365;box-shadow:0 0 0 3px #2383651a;background:#f4fbf8}.semester-pdf-import-options input{margin-top:.2rem;accent-color:#176d54}.semester-pdf-import-options div{display:grid;gap:.25rem}.semester-pdf-import-options strong{color:#193f35;font-size:.9rem}.semester-pdf-import-options span{color:#667a74;font-size:.78rem;line-height:1.35}.semester-pdf-analyze-button{justify-self:end;min-width:210px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.semester-pdf-import-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem}.semester-pdf-import-summary>div{min-height:78px;border:1px solid #e1e9e6;border-radius:14px;background:#fff;padding:.72rem .8rem;display:grid;align-content:center;gap:.15rem}.semester-pdf-import-summary strong{font-size:1.25rem;color:#214d41}.semester-pdf-import-summary span{color:#6a7e77;font-size:.76rem}.semester-pdf-import-summary .ready{border-left:4px solid #21875f}.semester-pdf-import-summary .duplicate{border-left:4px solid #9d7a28}.semester-pdf-import-summary .conflict{border-left:4px solid #d57921}.semester-pdf-import-summary .error{border-left:4px solid #c84b4b}.semester-pdf-preview-section{min-width:0}.semester-pdf-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.75rem}.semester-pdf-preview-toolbar>div{display:grid;gap:.15rem}.semester-pdf-preview-toolbar strong{color:#1a463a}.semester-pdf-preview-toolbar span{color:#71817c;font-size:.78rem}.semester-pdf-preview-toolbar select{min-width:180px}.semester-pdf-preview-table-wrap{max-height:390px;overflow:auto;border:1px solid #e1e8e5;border-radius:12px}.semester-pdf-preview-table{min-width:1080px;margin:0}.semester-pdf-preview-table thead th{position:sticky;top:0;z-index:2;background:#0b5a46;color:#fff}.semester-pdf-preview-table td{vertical-align:top;font-size:.78rem}.semester-pdf-preview-table td small{display:block;margin-top:.2rem;line-height:1.3;color:#687b75}.pdf-import-row.error{background:#fff7f7}.pdf-import-row.conflict{background:#fffaf2}.pdf-import-row.duplicate{background:#fffdf3}.pdf-import-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.25rem .55rem;font-size:.68rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}.pdf-import-status.ready{color:#126141;background:#dff4ea}.pdf-import-status.duplicate{color:#765811;background:#f8edc7}.pdf-import-status.conflict{color:#8b4a0c;background:#ffe7cc}.pdf-import-status.error{color:#8c2929;background:#fbdede}.pdf-import-detail{padding-left:.55rem;border-left:2px solid transparent}.pdf-import-detail.error{color:#a53030!important;border-left-color:#d55454}.pdf-import-detail.warning{color:#8a5b14!important;border-left-color:#d99a35}.pdf-import-detail.ok{color:#1c6d4f!important;border-left-color:#42a77e}.semester-pdf-conflict-option{margin-top:.75rem;border:1px solid #efd2ae;border-radius:12px;padding:.78rem .9rem;display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:flex-start;background:#fffaf3;cursor:pointer}.semester-pdf-conflict-option input{margin-top:.2rem;accent-color:#bd681d}.semester-pdf-conflict-option>div{display:grid;gap:.2rem}.semester-pdf-conflict-option strong{color:#78410f;font-size:.86rem}.semester-pdf-conflict-option span{color:#8a6b4c;font-size:.76rem}@media(max-width:900px){.semester-preview-primary-actions{width:100%}.semester-preview-primary-actions>button{flex:1 1 210px}.semester-pdf-import-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.semester-pdf-import-modal{width:calc(100vw - 16px);max-height:96vh}.semester-pdf-import-options{grid-template-columns:1fr}.semester-pdf-import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-pdf-preview-toolbar{align-items:stretch;flex-direction:column}.semester-pdf-preview-toolbar select,.semester-pdf-analyze-button{width:100%;min-width:0}.semester-pdf-dropzone{align-items:flex-start;flex-direction:column}}.semester-pdf-simple-option{border:1px solid #dce7e2;border-radius:12px;padding:.72rem .85rem;display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:flex-start;background:#f9fcfb;cursor:pointer}.semester-pdf-simple-option input{margin-top:.2rem;accent-color:#176d54}.semester-pdf-simple-option>div{display:grid;gap:.2rem}.semester-pdf-simple-option strong{color:#234c40;font-size:.85rem}.semester-pdf-simple-option span{color:#6a7d77;font-size:.76rem;line-height:1.35}.semester-pdf-partial-option{border-color:#e6b2b2;background:#fff7f7}.semester-pdf-partial-option strong{color:#8b3030}.semester-pdf-partial-option span{color:#886060}.semester-teacher-confirmation-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.semester-teacher-confirmation-summary span,.semester-confirmation-badge,.semester-table-confirmation{display:inline-flex;align-items:center;gap:4px;width:max-content;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;line-height:1}.semester-teacher-confirmation-summary .accepted,.semester-confirmation-badge.accepted,.semester-table-confirmation.accepted{background:#e7f7ef;color:#087556}.semester-teacher-confirmation-summary .declined,.semester-confirmation-badge.declined,.semester-table-confirmation.declined{background:#fff0f1;color:#a3293a}.semester-teacher-confirmation-summary .pending,.semester-confirmation-badge.pending,.semester-table-confirmation.pending{background:#fff7df;color:#8a6510}.semester-confirmation-badge{justify-self:start;white-space:nowrap}.semester-table-confirmation{margin-top:6px}.semester-schedule-item:has(.semester-confirmation-badge.declined){background:#fbfbfb;opacity:.78}.semester-schedule-item:has(.semester-confirmation-badge.declined) .semester-schedule-subject strong{text-decoration:line-through;text-decoration-thickness:1px}.semester-teacher-action-row{display:flex;align-items:center;justify-content:flex-end;gap:7px}.semester-teacher-link-button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border:1px solid #075b43;border-radius:10px;background:#075b43;color:#fff;font-size:12px;font-weight:850;cursor:pointer;box-shadow:0 5px 14px #075b4329}.semester-teacher-link-button:hover{background:#087556;transform:translateY(-1px)}.semester-teacher-link-modal{width:min(720px,calc(100vw - 32px))}.semester-teacher-link-header .semester-edit-title-wrap{display:flex;align-items:center;gap:13px;min-width:0}.semester-teacher-link-header .semester-edit-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#075b43,#0d8060);color:#fff}.semester-teacher-link-header h2{margin:2px 0;color:#0a3e2f}.semester-teacher-link-header p{margin:0;color:#61776e}.semester-teacher-link-body{min-height:0;display:grid;gap:16px;padding:20px;overflow-y:auto}.semester-teacher-link-info{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #c9dfd5;border-radius:15px;background:#eef8f3;color:#184e3e}.semester-teacher-link-info>svg{flex:0 0 auto;margin-top:1px;color:#087556}.semester-teacher-link-info>div{display:grid;gap:4px}.semester-teacher-link-info span{color:#557168;font-size:12px;line-height:1.45}.semester-teacher-link-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.semester-teacher-link-stats>div{display:grid;gap:4px;padding:12px;border:1px solid #dbe7e2;border-radius:13px;background:#fff}.semester-teacher-link-stats small{color:#6a7e76;font-size:10px;font-weight:850;text-transform:uppercase}.semester-teacher-link-stats strong{color:#163f32;font-size:22px}.semester-teacher-link-stats .accepted{border-color:#bde1cf;background:#f0faf5}.semester-teacher-link-stats .declined{border-color:#efc7cc;background:#fff5f6}.semester-teacher-link-stats .pending{border-color:#ead79d;background:#fffaf0}.semester-teacher-link-expiry{padding:15px;border:1px solid #dbe7e2;border-radius:15px;background:#fff}.semester-teacher-generated-link{display:grid;gap:10px}.semester-teacher-generated-link label{padding:15px;border:1px solid #bcdaca;border-radius:15px;background:#f5fbf8}.semester-teacher-generated-link label>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.semester-teacher-generated-link input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.semester-teacher-generated-link label button,.semester-teacher-open-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #075b43;border-radius:11px;background:#075b43;color:#fff;font-weight:850;cursor:pointer}.semester-teacher-open-link{justify-self:start;padding:9px 13px;background:#fff;color:#075b43}.semester-teacher-link-notice{display:flex;align-items:center;gap:8px;padding:11px 12px;border-radius:12px;background:#eaf7f1;color:#087556;font-size:12px;font-weight:800}.teacher-confirmation-page{min-height:100dvh;background:#eef4f1;color:#173d31;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.teacher-confirmation-centered{display:grid;place-items:center;padding:24px}.teacher-confirmation-loading,.teacher-confirmation-error-card{width:min(520px,100%);display:grid;justify-items:center;gap:12px;padding:34px;border:1px solid #d3e1da;border-radius:24px;background:#fff;text-align:center;box-shadow:0 24px 70px #05322521}.teacher-confirmation-error-card>svg{color:#b52a3c}.teacher-confirmation-error-card h1{margin:0;color:#153e31}.teacher-confirmation-error-card p{margin:0;color:#7b3742}.teacher-confirmation-error-card small{color:#6e8079}.teacher-confirmation-hero{min-height:310px;display:grid;align-content:space-between;padding:26px max(24px,calc((100vw - 1120px)/2));background:linear-gradient(135deg,#034b38,#076348 58%,#09805c);color:#fff;overflow:hidden;position:relative}.teacher-confirmation-hero:after{content:"";position:absolute;width:420px;height:420px;right:-150px;bottom:-250px;border:70px solid rgba(255,255,255,.06);border-radius:50%}.teacher-confirmation-brand,.teacher-confirmation-title{position:relative;z-index:1}.teacher-confirmation-brand{display:flex;align-items:center;gap:12px}.teacher-confirmation-brand img{width:52px;height:52px;object-fit:contain;border-radius:8px;background:#fff;padding:4px}.teacher-confirmation-brand>div{display:grid;gap:3px}.teacher-confirmation-brand strong{letter-spacing:.04em;font-size:13px}.teacher-confirmation-brand span{color:#ffffffc2;font-size:11px}.teacher-confirmation-title{max-width:820px;padding-top:42px}.teacher-confirmation-title>span{color:#d6e925;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.teacher-confirmation-title h1{margin:8px 0 7px;color:#fff;font-size:clamp(28px,5vw,48px);line-height:1.05}.teacher-confirmation-title p{max-width:700px;margin:0;color:#ffffffd1;font-size:clamp(14px,2vw,17px);line-height:1.5}.teacher-confirmation-content{width:min(1120px,calc(100% - 32px));display:grid;gap:16px;margin:-26px auto 0;padding-bottom:48px;position:relative;z-index:2}.teacher-confirmation-success,.teacher-confirmation-inline-error,.teacher-confirmation-previous{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;border-radius:15px;box-shadow:0 7px 20px #0532250f}.teacher-confirmation-success{border:1px solid #a9ddc2;background:#eaf9f1;color:#087556}.teacher-confirmation-success>div{display:grid;gap:2px}.teacher-confirmation-success span{font-size:12px}.teacher-confirmation-inline-error{border:1px solid #efbdc4;background:#fff1f3;color:#9d2637}.teacher-confirmation-previous{border:1px solid #c8dcd3;background:#fff;color:#4b675d;font-size:12px}.teacher-confirmation-summary{display:grid;grid-template-columns:1.1fr 1.4fr .7fr;gap:1px;overflow:hidden;border:1px solid #d3e2db;border-radius:20px;background:#d3e2db;box-shadow:0 16px 42px #0532251a}.teacher-confirmation-summary>div{min-width:0;display:grid;gap:4px;padding:17px 18px;background:#fff}.teacher-confirmation-summary small{color:#70847c;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.teacher-confirmation-summary strong{color:#153e31}.teacher-confirmation-summary span{color:#667c73;font-size:12px}.teacher-confirmation-progress{text-align:right}.teacher-confirmation-progress strong{font-size:24px;color:#075b43}.teacher-confirmation-list{display:grid;gap:12px}.teacher-confirmation-subject{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid #d4e2dc;border-radius:19px;background:#fff;box-shadow:0 8px 28px #0532250e;transition:.18s ease}.teacher-confirmation-subject.accepted{border-color:#9ed4b8;box-shadow:inset 4px 0 #0b8b63,0 8px 28px #0532250e}.teacher-confirmation-subject.declined{border-color:#e8b2ba;box-shadow:inset 4px 0 #bd3044,0 8px 28px #0532250e}.teacher-confirmation-number{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e9f4ef;color:#075b43;font-weight:900}.teacher-confirmation-subject-info{min-width:0;display:grid;gap:5px}.teacher-confirmation-career{display:inline-flex;align-items:center;gap:5px;color:#087556;font-size:11px;font-weight:850}.teacher-confirmation-subject h2{margin:0;color:#173d31;font-size:18px}.teacher-confirmation-details{display:flex;flex-wrap:wrap;gap:8px 15px;color:#657b72;font-size:12px}.teacher-confirmation-details span{display:inline-flex;align-items:center;gap:5px}.teacher-confirmation-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.teacher-confirmation-options button{min-width:116px;min-height:62px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;padding:10px 12px;border:1px solid;border-radius:14px;background:#fff;font-weight:850;cursor:pointer;transition:.16s ease}.teacher-confirmation-options button.accepted{border-color:#b5dcca;color:#087556}.teacher-confirmation-options button.declined{border-color:#efc6cb;color:#a3293a}.teacher-confirmation-options button.selected.accepted{border-color:#087556;background:#e8f7ef;box-shadow:0 0 0 3px #0875561a}.teacher-confirmation-options button.selected.declined{border-color:#b52a3c;background:#fff0f2;box-shadow:0 0 0 3px #b52a3c17}.teacher-confirmation-options button:hover{transform:translateY(-1px)}.teacher-confirmation-footer-card{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;border:1px solid #c8dcd3;border-radius:18px;background:#fffffff5;box-shadow:0 18px 50px #0532252b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.teacher-confirmation-footer-card>div{display:grid;gap:3px}.teacher-confirmation-footer-card span{color:#657a72;font-size:12px}.teacher-confirmation-footer-card button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:0;border-radius:13px;background:#075b43;color:#fff;font-weight:900;cursor:pointer}.teacher-confirmation-footer-card button:disabled{background:#a8bbb3;cursor:not-allowed}@media(max-width:850px){.semester-teacher-confirmation-summary{justify-content:flex-start}.semester-teacher-action-row{width:100%;justify-content:flex-start}.semester-teacher-link-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-confirmation-summary{grid-template-columns:1fr}.teacher-confirmation-progress{text-align:left}.teacher-confirmation-subject{grid-template-columns:40px minmax(0,1fr)}.teacher-confirmation-options{grid-column:2;width:100%}}@media(max-width:580px){.semester-teacher-action-row{display:grid;grid-template-columns:1fr}.semester-teacher-link-button,.semester-teacher-pdf-button{width:100%}.semester-teacher-generated-link label>div{grid-template-columns:1fr}.semester-teacher-link-stats{grid-template-columns:1fr 1fr}.teacher-confirmation-hero{min-height:290px;padding:20px 18px 44px}.teacher-confirmation-brand img{width:46px;height:46px}.teacher-confirmation-title{padding-top:40px}.teacher-confirmation-content{width:min(100% - 20px,1120px);margin-top:-24px}.teacher-confirmation-summary>div{padding:14px}.teacher-confirmation-subject{grid-template-columns:1fr;padding:14px}.teacher-confirmation-number{width:34px;height:34px}.teacher-confirmation-options{grid-column:1}.teacher-confirmation-options button{min-width:0;min-height:58px;padding:9px}.teacher-confirmation-options button span{font-size:11px}.teacher-confirmation-footer-card{align-items:stretch;flex-direction:column;bottom:7px}.teacher-confirmation-footer-card button{width:100%}}.semester-set-confirmation-mini{display:flex;flex-wrap:wrap;gap:5px}.semester-set-confirmation-mini span{border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900}.semester-set-confirmation-mini .accepted{background:#e7f7ef;color:#087556}.semester-set-confirmation-mini .declined{background:#fff0f1;color:#a3293a}.semester-set-confirmation-mini .pending{background:#fff7df;color:#8a6510}.semester-filter-panel{overflow:visible;position:relative;z-index:8}.semester-preview-filters-advanced{position:relative}.semester-group-combobox{position:relative;min-width:0;display:grid;gap:6px}.semester-group-combobox>span{color:#48675b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.semester-group-combobox-trigger{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid #cadbd3;border-radius:10px;background:#fff;color:#234d3e;font:inherit;text-align:left;cursor:pointer}.semester-group-combobox-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.semester-group-combobox-trigger svg{flex:0 0 auto;transition:transform .18s ease}.semester-group-combobox-trigger.open{border-color:#087556;box-shadow:0 0 0 3px #0875561c}.semester-group-combobox-trigger.open svg{transform:rotate(180deg)}.semester-group-combobox-menu{position:absolute;top:calc(100% + 7px);left:0;z-index:120;width:min(390px,calc(100vw - 36px));max-height:430px;display:grid;grid-template-rows:auto auto minmax(100px,1fr) auto;border:1px solid #c9ddd3;border-radius:15px;background:#fff;box-shadow:0 20px 50px #0f372b33;overflow:hidden}.semester-group-combobox-search{display:flex;align-items:center;gap:8px;padding:11px;border-bottom:1px solid #e1ebe6}.semester-group-combobox-search svg{color:#668077}.semester-group-combobox-search input{min-height:38px!important;border:0;outline:0;box-shadow:none;padding:0}.semester-group-combobox-actions{display:flex;gap:7px;padding:9px 11px;border-bottom:1px solid #e6eeea;background:#f7faf8}.semester-group-combobox-actions button,.semester-group-combobox-menu footer button{border:1px solid #bdd3c8;border-radius:8px;background:#fff;color:#075b43;padding:7px 9px;font-size:11px;font-weight:800;cursor:pointer}.semester-group-combobox-options{min-height:0;overflow-y:auto;padding:7px}.semester-preview-filters-advanced .semester-group-combobox-options label{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;min-height:39px;padding:8px 9px;border-radius:9px;cursor:pointer}.semester-preview-filters-advanced .semester-group-combobox-options label:hover{background:#f1f8f4}.semester-preview-filters-advanced .semester-group-combobox-options label.selected{background:#e9f7f0}.semester-preview-filters-advanced .semester-group-combobox-options label>span{min-width:0;color:#234d3e;font-size:12px;font-weight:750;letter-spacing:0;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.semester-group-combobox-options input{width:16px!important;min-height:16px!important;accent-color:#087556}.semester-group-combobox-options small{color:#70837b;font-size:10px}.semester-group-combobox-empty{padding:20px 12px;color:#6f827a;font-size:12px;text-align:center}.semester-group-combobox-menu footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-top:1px solid #e1ebe6;background:#fbfdfc}.semester-group-combobox-menu footer span{color:#60766d;font-size:11px}.semester-group-combobox-menu footer button{background:#075b43;color:#fff;border-color:#075b43}.semester-teacher-link-modal{width:min(900px,calc(100vw - 32px))}.semester-teacher-share-editor{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr);gap:13px}.semester-teacher-message-field,.semester-teacher-image-field,.semester-teacher-share-preview{min-width:0;display:grid;gap:8px;padding:14px;border:1px solid #d6e5de;border-radius:15px;background:#fff}.semester-teacher-message-field>span,.semester-teacher-image-field>span,.semester-teacher-share-preview>span{display:inline-flex;align-items:center;gap:6px;color:#315d4d;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.semester-teacher-message-field textarea{width:100%;resize:vertical;min-height:112px;line-height:1.5}.semester-teacher-message-field small{justify-self:end;color:#74877f;font-size:10px}.semester-teacher-image-picker{min-height:154px;display:grid;place-items:center;border:1px dashed #9fc6b5;border-radius:13px;background:#f4faf7;overflow:hidden;cursor:pointer}.semester-teacher-image-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.semester-teacher-image-picker>div{display:grid;place-items:center;gap:5px;padding:18px;color:#41705e;text-align:center}.semester-teacher-image-picker>div small{color:#71867d;font-size:10px}.semester-teacher-image-picker img{width:100%;height:180px;object-fit:contain;background:#eef4f1}.semester-teacher-remove-image{justify-self:start;display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#a3293a;font-size:11px;font-weight:850;cursor:pointer}.semester-teacher-share-preview{background:linear-gradient(180deg,#f7fbf9,#fff)}.semester-teacher-share-preview img{width:100%;max-height:250px;object-fit:contain;border-radius:11px;background:#edf4f1}.semester-teacher-share-preview p{margin:0;color:#294f41;line-height:1.55;white-space:pre-wrap}.semester-teacher-share-preview code{display:block;overflow-wrap:anywhere;padding:10px;border-radius:9px;background:#edf5f1;color:#075b43;font-size:11px}.semester-teacher-share-actions{display:flex;flex-wrap:wrap;gap:8px}.semester-teacher-share-actions button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 11px;border:1px solid #b9d1c6;border-radius:10px;background:#fff;color:#075b43;font-size:11px;font-weight:850;cursor:pointer}.semester-teacher-share-actions button.primary{border-color:#075b43;background:#075b43;color:#fff}.semester-teacher-share-help{color:#687e75;font-size:10px;line-height:1.45}.teacher-confirmation-custom-message{display:grid;gap:14px;margin-bottom:14px;padding:18px;border:1px solid #c8ddd3;border-radius:18px;background:#fff;box-shadow:0 10px 30px #093f2e0f}.teacher-confirmation-custom-message img{width:100%;max-height:420px;object-fit:contain;border-radius:13px;background:#eef4f1}.teacher-confirmation-custom-message p{margin:0;color:#294f41;font-size:15px;line-height:1.65;white-space:pre-wrap}@media(max-width:760px){.semester-teacher-share-editor{grid-template-columns:1fr}.semester-group-combobox-menu{position:fixed;left:12px;right:12px;top:18vh;width:auto;max-height:64vh}.semester-teacher-share-actions{display:grid;grid-template-columns:1fr 1fr}.semester-teacher-share-actions button{width:100%}}.semester-teacher-image-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.semester-teacher-default-image{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 11px;border:1px solid #b8cdc4;border-radius:9px;background:#f4faf7;color:#185e49;font-weight:700;cursor:pointer}.semester-teacher-default-image:hover{background:#e9f5ef}.semester-teacher-default-image-badge{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 11px;border:1px solid #b7dccb;border-radius:999px;background:#eaf8f1;color:#087556;font-size:12px;font-weight:800}.attendance-page .page-title{margin-bottom:12px}.attendance-page .notice{margin-top:8px;padding:10px 13px;gap:3px;line-height:1.4}.attendance-page .attendance-filter-panel{padding:13px;gap:10px;margin-top:12px;margin-bottom:12px;border-radius:18px}.attendance-page .attendance-filter-panel .teacher-search-box,.attendance-page .attendance-filter-panel>select{min-height:44px}.attendance-page .attendance-filter-panel>select{padding:9px 11px}.attendance-page .attendance-filter-actions{display:grid;grid-template-columns:repeat(3,minmax(74px,auto));gap:7px}.attendance-page .attendance-filter-actions button{min-height:40px;padding:8px 11px;margin:0}.attendance-page .attendance-summary{gap:10px;margin-bottom:14px}.attendance-page .attendance-summary .card{min-height:92px;padding:14px 16px;border-radius:18px;display:flex;flex-direction:column;justify-content:center}.attendance-page .attendance-summary .card p{font-size:12px;line-height:1.3}.attendance-page .attendance-summary .card strong{margin-top:5px;font-size:30px;line-height:1}.attendance-list-panel,.attendance-history-panel{padding:0;overflow:hidden;border-radius:22px;margin-top:14px}.attendance-list-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border-bottom:1px solid #dfe9e3;background:linear-gradient(135deg,#fff,#f5faf7)}.attendance-list-heading>div:first-child{min-width:0}.attendance-list-heading h2{margin:2px 0 3px;font-size:19px;letter-spacing:-.025em}.attendance-list-heading p{margin:0;max-width:780px;color:#64766e;font-size:12px;line-height:1.45}.attendance-section-eyebrow{display:block;color:#0f6b4f;font-size:10px;font-weight:950;letter-spacing:.11em;text-transform:uppercase}.attendance-result-badge{flex:0 0 auto;min-width:108px;padding:9px 12px;border:1px solid #bfe2d2;border-radius:15px;background:#eaf7f1;color:#075d42;text-align:center}.attendance-result-badge strong,.attendance-result-badge span{display:block}.attendance-result-badge strong{font-size:24px;line-height:1}.attendance-result-badge span{margin-top:3px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.attendance-result-badge.secondary-badge{border-color:#d8e2de;background:#f5f8f7;color:#405c51}.attendance-table-wrap,.attendance-history-wrap{border:0;border-radius:0;box-shadow:none}.attendance-table-wrap{max-height:68vh}.attendance-table{min-width:1430px;table-layout:fixed}.attendance-table .attendance-col-time{width:110px}.attendance-table .attendance-col-teacher,.attendance-table .attendance-col-class{width:190px}.attendance-table .attendance-col-location{width:145px}.attendance-table .attendance-col-responsible{width:205px}.attendance-table .attendance-col-status{width:170px}.attendance-table .attendance-col-note{width:165px}.attendance-table .attendance-col-check{width:112px}.attendance-table .attendance-col-evidence{width:160px}.attendance-table .attendance-col-validation{width:176px}.attendance-table th,.attendance-table td{padding:9px 10px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.attendance-table thead th{position:sticky;top:0;z-index:5;min-height:40px;background:#f2f7f5;color:#546a61;border-bottom:1px solid #cfded7;font-size:10px;letter-spacing:.055em}.attendance-table tbody tr:nth-child(2n) td{background:#fbfdfc}.attendance-table tbody tr:hover td{background:#f1f8f5}.attendance-table tbody td{font-size:12px;line-height:1.3}.attendance-table td>small,.attendance-cell-stack small{margin-top:0;color:#6b7f76;font-size:10.5px;line-height:1.35}.attendance-cell-stack{display:grid;gap:4px;min-width:0}.attendance-cell-stack.compact{gap:3px}.attendance-cell-stack>strong{color:#17372c;font-size:12.5px;line-height:1.28}.attendance-time-range{white-space:nowrap;font-variant-numeric:tabular-nums}.attendance-meta-line{color:#5d746a;font-size:10px;font-weight:800}.attendance-zone-chip{display:inline-flex;width:fit-content;max-width:100%;padding:3px 7px;border-radius:999px;background:#edf5f1;color:#315e4d;font-size:10px;font-weight:850}.attendance-permission-pill{width:fit-content;max-width:100%;white-space:normal;font-size:9.5px;line-height:1.25}.attendance-responsible-cell .coordinator-select{display:block;margin:0;font-size:0}.attendance-responsible-cell .coordinator-select select{min-height:38px;margin:0;padding:7px 9px;border-radius:11px;font-size:11px;font-weight:750;text-transform:none;letter-spacing:0}.attendance-responsible-cell .coordinator-select-help{display:block;margin-top:4px;font-size:9.5px;line-height:1.3}.attendance-responsible-cell .responsible-profile-readonly{width:100%;display:grid;gap:2px;align-items:start;border-radius:12px;padding:8px 9px;white-space:normal}.attendance-responsible-cell .responsible-profile-readonly strong,.attendance-responsible-cell .responsible-profile-readonly small{display:block}.attendance-responsible-cell .responsible-profile-readonly small{color:#4e7a68;font-size:9.5px}.attendance-status-line{gap:5px}.attendance-status-cell .pill,.attendance-validation-cell .pill{padding:4px 7px;font-size:9.5px;white-space:normal;text-align:center}.attendance-status-cell .class-activity-line{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.attendance-note-cell{vertical-align:middle!important}.attendance-note-cell .attendance-note{min-height:38px;margin:0;padding:8px 9px;border-radius:11px;font-size:11px}.attendance-check-cell{text-align:center;vertical-align:middle!important}.attendance-check-actions{display:grid;grid-template-columns:repeat(2,38px);justify-content:center;gap:6px}.attendance-check-cell .check-button{width:38px;height:38px;border-radius:11px;font-size:21px;box-shadow:none}.attendance-check-cell .locked-hint{display:block;margin-top:4px;line-height:1.2;text-align:center}.attendance-evidence-cell{vertical-align:middle!important}.attendance-evidence-cell .phase36-actions{grid-template-columns:repeat(2,minmax(66px,1fr));gap:5px}.attendance-evidence-cell .phase36-actions .mini{min-height:32px;padding:6px 7px;border-radius:9px;font-size:10.5px}.attendance-validation-stack{display:grid;gap:7px}.attendance-validation-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:0}.attendance-validation-actions .mini{min-height:29px;padding:5px 4px;border-radius:8px;font-size:9px;white-space:normal;line-height:1.15}.attendance-empty-value{display:block;color:#9aaca4;text-align:center}.attendance-empty-state{padding:28px!important;color:#65786f;text-align:center!important;white-space:normal!important}.attendance-history-panel{margin-bottom:2px}.attendance-list-heading.compact-heading{padding-top:15px;padding-bottom:15px}.attendance-history-table{min-width:1080px}.attendance-history-table th,.attendance-history-table td{padding:9px 11px;white-space:normal;font-size:11.5px}.attendance-history-table th{background:#f4f8f6;color:#586d64;font-size:9.5px;letter-spacing:.05em}.attendance-history-table td small{margin-top:3px;font-size:9.5px}.attendance-history-table .pill{padding:4px 7px;font-size:9.5px}@media(max-width:1180px){.attendance-page .attendance-filter-actions{grid-template-columns:repeat(3,minmax(90px,1fr))}.attendance-list-heading{align-items:flex-start}}@media(max-width:760px){.attendance-page .attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-page .attendance-summary .card{min-height:82px}.attendance-page .attendance-filter-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-page .attendance-filter-actions button{width:100%;padding-inline:7px}.attendance-list-heading{gap:10px;padding:14px}.attendance-list-heading p{display:none}.attendance-result-badge{min-width:88px}.attendance-table{min-width:1370px}}@media(max-width:520px){.attendance-page .attendance-filter-actions{grid-template-columns:1fr}.attendance-list-heading{flex-direction:column}.attendance-result-badge{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.attendance-result-badge span{margin-top:0}}.attendance-table th:nth-child(8),.attendance-table td:nth-child(8){min-width:112px}.exam-schedules-hub{min-width:0}.exam-schedules-hub-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 20px;padding:22px 24px;border:1px solid #dbe9e3;border-radius:20px;background:linear-gradient(135deg,#fff,#f3faf7);box-shadow:0 12px 34px #044e3814}.exam-schedules-hub-header h1{margin:4px 0 6px;color:#073f30;font-size:clamp(1.65rem,2.5vw,2.25rem)}.exam-schedules-hub-header p{max-width:720px;margin:0;color:#60756c}.exam-schedules-hub-tabs{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));gap:10px}.exam-schedules-hub-tabs button{display:flex;align-items:center;gap:11px;min-height:62px;padding:10px 14px;border:1px solid #d5e4de;border-radius:15px;background:#fff;color:#3e5c51;text-align:left;cursor:pointer}.exam-schedules-hub-tabs button>span{display:grid;gap:2px}.exam-schedules-hub-tabs button strong{color:#173f32}.exam-schedules-hub-tabs button small{color:#74887f}.exam-schedules-hub-tabs button.active{border-color:#0d7352;background:#0d7352;color:#fff;box-shadow:0 9px 22px #0d735238}.exam-schedules-hub-tabs button.active strong,.exam-schedules-hub-tabs button.active small{color:#fff}.extra-generator{overflow:hidden}.extra-generator-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.extra-generator label,.extra-notes{display:grid;gap:7px}.extra-generator label>span,.extra-notes>span,.extra-link-content label>span,.extra-edit-body label>span{font-weight:700;color:#2e5144;font-size:.86rem}.extra-generator input,.extra-generator select,.extra-generator textarea,.extra-filters input,.extra-filters select,.extra-link-content input,.extra-link-content textarea,.extra-edit-body select{width:100%;min-height:42px;border:1px solid #d5e2dd;border-radius:11px;background:#fff;color:#173e32}.extra-day-selector{display:grid;gap:9px;margin:16px 0;padding:15px;border:1px solid #e0ebe6;border-radius:14px;background:#f8fcfa}.extra-day-selector>span{font-weight:800;color:#2d5144}.extra-day-selector>div{display:flex;flex-wrap:wrap;gap:8px}.extra-day-selector button{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border:1px solid #d5e2dd;border-radius:999px;background:#fff;color:#506a60;cursor:pointer}.extra-day-selector button.active{border-color:#0c7653;background:#e7f6f0;color:#075d42;font-weight:800}.extra-notes textarea{min-height:76px;resize:vertical}.extra-set-browser{margin-top:18px}.extra-set-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:12px}.extra-set-list>button{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:15px;border:1px solid #dce7e2;border-radius:15px;background:#fff;color:#274b3d;text-align:left;cursor:pointer}.extra-set-list>button>span:first-child{display:grid;gap:4px}.extra-set-list>button small{color:#70837b}.extra-set-list>button.active{border-color:#0b7552;box-shadow:inset 0 0 0 1px #0b7552,0 8px 18px #0d73521a;background:#f1faf6}.extra-set-counts{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:7px}.extra-set-counts small{padding:4px 7px;border-radius:999px;background:#f0f5f3}.extra-selected-summary{display:grid;gap:17px}.extra-selected-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.extra-selected-title h2{margin:3px 0 5px}.extra-selected-title p{margin:0;color:#687f75}.extra-summary-cards{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:11px}.extra-summary-cards>div{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #e0e9e5;border-radius:13px;background:#fafdfc;color:#395f50}.extra-summary-cards>div>span{display:grid}.extra-summary-cards strong{font-size:1.25rem}.extra-summary-cards small{color:#70847b}.extra-summary-cards .accepted{background:#edf9f4;color:#08714f}.extra-summary-cards .declined{background:#fff4f2;color:#b34c3e}.extra-summary-cards .pending{background:#fff9ea;color:#9c6b12}.extra-selected-actions{display:flex;flex-wrap:wrap;gap:9px;padding-top:14px;border-top:1px solid #e6eeeb}.extra-selected-actions button,.extra-link-actions button,.extra-bulk-links>button,.extra-edit-modal footer button,.extra-public-footer button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.extra-preview-panel{padding:0;overflow:hidden}.extra-preview-toolbar{display:grid;gap:13px;padding:16px;border-bottom:1px solid #e2ebe7;background:#fbfdfc}.extra-view-tabs{display:flex;flex-wrap:wrap;gap:7px}.extra-view-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid #d6e3de;border-radius:10px;background:#fff;color:#49665b;cursor:pointer}.extra-view-tabs button.active{background:#0c7452;border-color:#0c7452;color:#fff}.extra-filters{display:grid;grid-template-columns:minmax(230px,1.5fr) repeat(3,minmax(150px,.75fr));gap:9px}.extra-search{position:relative}.extra-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#71887e;pointer-events:none}.extra-search input{padding-left:36px}.extra-teacher-grid,.extra-group-grid,.extra-date-list{display:grid;gap:14px;padding:16px}.extra-teacher-grid{grid-template-columns:repeat(auto-fit,minmax(390px,1fr))}.extra-teacher-card,.extra-group-card,.extra-date-list>article{border:1px solid #dce8e3;border-radius:16px;background:#fff;overflow:hidden}.extra-teacher-card>header,.extra-group-card>header,.extra-date-list>article>header{display:flex;align-items:center;gap:11px;padding:13px 14px;border-bottom:1px solid #e6eeeb;background:#f7fbf9}.extra-teacher-card>header>div:nth-child(2),.extra-group-card>header>div,.extra-date-list>article>header>div{display:grid;gap:2px;min-width:0;flex:1}.extra-teacher-card>header small,.extra-group-card>header small,.extra-date-list>article>header small{color:#71867c}.extra-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#0b7352;color:#fff;font-weight:900;letter-spacing:.04em}.extra-compact-row{display:grid;grid-template-columns:minmax(170px,1.4fr) auto minmax(130px,.8fr) 34px;gap:9px;align-items:center;padding:11px 13px;border-bottom:1px solid #edf2f0}.extra-compact-row:last-child{border-bottom:0}.extra-compact-row>span:first-child{display:grid;gap:2px;min-width:0}.extra-compact-row small{color:#71867c}.extra-compact-time{color:#516d62;font-size:.85rem;text-align:right}.extra-decision{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:850;white-space:nowrap}.extra-decision.accepted{background:#e7f7f0;color:#07704e}.extra-decision.declined{background:#fff0ed;color:#b34436}.extra-decision.pending{background:#fff6dc;color:#966611}.extra-group-card .table-wrap,.extra-date-list .table-wrap,.extra-main-table{margin:0;border:0;border-radius:0;box-shadow:none}.extra-main-table table{min-width:1050px}.extra-main-table td>small,.extra-main-table td>strong{display:block}.extra-main-table td>small{color:#72867d;margin-top:3px}.extra-modal-backdrop{z-index:1400!important;padding:24px}.extra-link-modal,.extra-edit-modal{width:min(760px,100%);max-height:min(88vh,820px);overflow:auto;border-radius:20px;background:#fff;box-shadow:0 28px 80px #001c1447}.extra-link-modal>header,.extra-edit-modal>header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #e1eae6;background:#fffffff7}.extra-link-modal h2,.extra-edit-modal h2{margin:3px 0 0;color:#113f31}.extra-edit-modal header p{margin:4px 0 0;color:#71857c}.extra-link-content,.extra-edit-body{display:grid;gap:15px;padding:20px}.extra-link-content label,.extra-edit-body label{display:grid;gap:7px}.extra-link-content textarea{min-height:110px;resize:vertical}.extra-link-actions,.extra-edit-modal footer{display:flex;justify-content:flex-end;gap:9px;padding:15px 20px;border-top:1px solid #e5ece9}.button-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 13px;border-radius:10px;text-decoration:none}.extra-bulk-links{display:grid;gap:13px;padding:20px}.extra-bulk-links>p{margin:0;color:#647a70}.extra-bulk-links>div{display:grid;gap:8px;max-height:50vh;overflow:auto}.extra-bulk-links article{display:grid;grid-template-columns:minmax(160px,.7fr) 1fr auto;gap:9px;align-items:center;padding:10px;border:1px solid #e0e9e5;border-radius:11px}.extra-bulk-links input{min-width:0}.extra-public-page{min-height:100vh;padding:28px 16px;background:radial-gradient(circle at top right,#dff2ea 0,transparent 38%),#f2f7f5;color:#173f32}.extra-public-shell{width:min(980px,100%);margin:0 auto;border:1px solid #d9e7e1;border-radius:24px;background:#fff;box-shadow:0 22px 70px #0549341f;overflow:hidden}.extra-public-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px;color:#fff;background:linear-gradient(125deg,#064b38,#0a7452)}.extra-public-brand,.extra-public-period{display:flex;align-items:center;gap:11px}.extra-public-brand img{width:48px;height:48px;object-fit:contain;border-radius:8px;background:#fff;padding:3px}.extra-public-brand>div,.extra-public-period>span{display:grid;gap:2px}.extra-public-brand small,.extra-public-period small{opacity:.82}.extra-public-message{display:grid;grid-template-columns:minmax(220px,330px) 1fr;gap:20px;align-items:center;padding:20px;border-bottom:1px solid #e3ece8;background:#fbfdfc}.extra-public-message img{width:100%;max-height:210px;object-fit:contain;border:1px solid #dce8e3;border-radius:13px;background:#fff}.extra-public-message p{margin:8px 0 0;color:#506b60;line-height:1.6;white-space:pre-line}.extra-public-notice{display:flex;gap:10px;margin:18px 20px 0;padding:13px;border-radius:12px}.extra-public-notice>div{display:grid;gap:2px}.extra-public-notice.success{background:#eaf8f2;color:#076c4c;border:1px solid #bfe8d8}.extra-public-notice.danger{background:#fff1ef;color:#a93f33;border:1px solid #f1c7c1}.extra-public-intro{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px}.extra-public-intro>div{display:flex;align-items:center;gap:11px}.extra-public-intro>div>span{display:grid;gap:2px}.extra-public-intro small{color:#6e8279}.extra-public-ready{display:inline-flex;align-items:center;gap:6px;max-width:360px;padding:7px 10px;border-radius:10px;background:#fff6df;color:#8b6217;font-size:.84rem}.extra-public-ready.valid{background:#e8f7f1;color:#086e4e}.extra-public-subjects{display:grid;gap:13px;padding:0 20px 22px}.extra-public-subject{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:13px 18px;padding:15px;border:1px solid #dce7e2;border-radius:16px;background:#fff;transition:.18s ease}.extra-public-subject.accepted{border-color:#72bea4;box-shadow:inset 4px 0 #0b7653}.extra-public-subject.declined{border-color:#e5b2ab;background:snow;box-shadow:inset 4px 0 #bd5143}.extra-public-subject-main{display:grid;gap:9px}.extra-public-subject-title{display:flex;align-items:flex-start;gap:11px}.extra-public-subject-title>span{padding:5px 8px;border-radius:8px;background:#eaf5f0;color:#096646;font-weight:900;white-space:nowrap}.extra-public-subject-title>div{display:grid;gap:3px}.extra-public-subject-title small,.extra-public-location{color:#71857c}.extra-public-location{display:flex;align-items:center;gap:6px;font-size:.86rem}.extra-public-choice{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;align-self:start}.extra-public-choice button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:8px 11px;border:1px solid #d8e3df;border-radius:11px;background:#fff;cursor:pointer}.extra-public-choice .yes{color:#08704e}.extra-public-choice .no{color:#ad493c}.extra-public-choice .yes.active{color:#fff;background:#0a7653;border-color:#0a7653}.extra-public-choice .no.active{color:#fff;background:#b84f41;border-color:#b84f41}.extra-public-slot{grid-column:1 / -1;display:grid;gap:7px;padding-top:12px;border-top:1px dashed #dce7e2}.extra-public-slot>span{display:flex;align-items:center;gap:6px;font-weight:800;color:#315448}.extra-public-slot select{width:100%;min-height:44px;border:1px solid #cfded8;border-radius:11px;background:#fff}.extra-public-slot small{color:#b04438}.extra-public-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-top:1px solid #dce7e2;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.extra-public-footer>div{display:grid;gap:2px}.extra-public-footer span{color:#6e8279;font-size:.86rem}.extra-public-footer button{min-height:44px}.extra-public-loading,.extra-public-error{width:min(600px,100%);margin:10vh auto;padding:30px;border:1px solid #dce7e2;border-radius:20px;background:#fff;text-align:center;box-shadow:0 18px 55px #0549341a}.extra-public-loading{display:grid;place-items:center;gap:12px}.extra-public-error svg{color:#b64c3f}@media(max-width:1100px){.exam-schedules-hub-header{align-items:stretch;flex-direction:column}.exam-schedules-hub-tabs{width:100%}.extra-generator-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.extra-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}.extra-search{grid-column:1 / -1}}@media(max-width:760px){.exam-schedules-hub-header{padding:16px;border-radius:16px}.exam-schedules-hub-tabs,.extra-generator-grid,.extra-summary-cards,.extra-filters{grid-template-columns:1fr}.extra-teacher-grid{grid-template-columns:1fr;padding:10px}.extra-compact-row{grid-template-columns:1fr auto}.extra-compact-time{grid-column:1 / -1;text-align:left}.extra-compact-row .icon-button{grid-column:2;grid-row:1 / span 2}.extra-selected-title,.extra-public-header,.extra-public-intro,.extra-public-footer{align-items:flex-start;flex-direction:column}.extra-selected-actions>button,.extra-public-footer button{width:100%}.extra-public-page{padding:0}.extra-public-shell{border:0;border-radius:0;min-height:100vh}.extra-public-message{grid-template-columns:1fr}.extra-public-message img{max-height:170px}.extra-public-subject{grid-template-columns:1fr}.extra-public-choice{width:100%}.extra-public-footer{position:static}.extra-bulk-links article{grid-template-columns:1fr}.extra-modal-backdrop{padding:0!important;place-items:end center!important}.extra-link-modal,.extra-edit-modal{width:100%;max-height:92vh;border-radius:20px 20px 0 0}}@media(max-width:480px){.extra-generator-grid,.extra-public-choice{grid-template-columns:1fr}.extra-public-brand strong{font-size:.9rem}.extra-public-period{display:none}}.profile-attendance-panel{display:grid;gap:16px;padding:0;overflow:hidden}.profile-attendance-heading{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;padding:20px 22px 4px}.profile-attendance-heading-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#ecfdf5;color:#047857}.profile-attendance-panel.is-absence .profile-attendance-heading-icon{background:#fff1f2;color:#be123c}.profile-attendance-heading h3{margin:0 0 4px;color:#0f172a;letter-spacing:-.02em}.profile-attendance-heading p{margin:0;color:#64748b;font-size:13px;line-height:1.45}.profile-attendance-count{padding:8px 12px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:900;white-space:nowrap}.profile-attendance-table-wrap{margin:0;border:0;border-radius:0;box-shadow:none}.profile-attendance-table{min-width:1180px}.profile-attendance-table th{white-space:nowrap}.profile-attendance-table td{vertical-align:top}.supervisor-cell{min-width:150px;display:grid;gap:3px}.supervisor-cell strong{color:#0f172a;font-size:13px;line-height:1.3}.supervisor-cell small{color:#64748b;font-size:11px}.attendance-status{display:inline-flex;white-space:nowrap;border:0}.attendance-status.status-asistio{background:#dcfce7;color:#166534}.attendance-status.status-retardo{background:#fef3c7;color:#92400e}.attendance-status.status-salio_temprano{background:#ffedd5;color:#9a3412}.attendance-status.status-falta{background:#fee2e2;color:#991b1b}.attendance-status.status-cubierto{background:#e0e7ff;color:#3730a3}.profile-attendance-empty{padding:34px!important;text-align:center;color:#64748b}@media(max-width:760px){.profile-attendance-heading{grid-template-columns:44px minmax(0,1fr);padding:16px 16px 2px}.profile-attendance-heading-icon{width:44px;height:44px}.profile-attendance-count{grid-column:1 / -1;justify-self:start}}.teacher-search-panel{grid-template-columns:minmax(260px,1fr) minmax(180px,230px) minmax(160px,210px) auto}.teacher-phone-cell{display:grid;gap:7px;min-width:145px}.teacher-phone-cell>a{display:inline-flex;align-items:center;gap:7px;color:#0f5132;font-weight:800;white-space:nowrap}.phone-edit-button{width:fit-content;min-height:30px;padding:5px 10px;border-radius:10px;background:#eef6f2;color:#0b5d42;font-size:12px}.phone-edit-button:hover{background:#dceee6}.teacher-phone-import-result{display:grid;gap:14px;margin-bottom:16px;border-color:#1665342e;background:linear-gradient(135deg,#ecfdf5f5,#fff)}.teacher-phone-import-title{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;color:#166534}.teacher-phone-import-title>div{display:grid;gap:3px}.teacher-phone-import-title span{color:#527064;font-size:13px}.teacher-phone-import-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.teacher-phone-import-metrics span{display:grid;gap:3px;padding:11px 13px;border:1px solid rgba(22,101,52,.12);border-radius:14px;background:#ffffffc7;color:#52645c;font-size:12px}.teacher-phone-import-metrics b{color:#123f2e;font-size:18px}.teacher-phone-import-result details{border-top:1px solid rgba(22,101,52,.12);padding-top:12px}.teacher-phone-import-result summary{display:flex;align-items:center;gap:8px;color:#92400e;font-weight:850;cursor:pointer}.teacher-phone-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.teacher-phone-review-grid>div{display:grid;gap:3px;padding:11px;border-radius:13px;background:#fff;border:1px solid #f2dfb8}.teacher-phone-review-grid span{color:#0f5132;font-weight:800}.teacher-phone-review-grid small{color:#6b7280}.teacher-phone-overwrite{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;font-size:13px;font-weight:700}.teacher-phone-overwrite input{width:auto;min-height:auto;margin-top:2px}.import-box hr{width:100%;border:0;border-top:1px solid var(--border);margin:12px 0}.teacher-phone-modal{width:min(520px,96vw)}.teacher-phone-modal-head{display:grid;grid-template-columns:1fr auto;align-items:start;gap:12px;margin-bottom:18px}.teacher-phone-modal-head h3{margin:0;font-size:25px}.teacher-phone-modal-head p{margin:5px 0 0;color:#475569;font-weight:750}.teacher-phone-modal>label{display:grid;gap:8px;font-weight:850}.teacher-phone-input{display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid var(--border);border-radius:14px;background:#fff}.teacher-phone-input input{margin:0;border:0;box-shadow:none;padding-left:0}.teacher-phone-input input:focus{box-shadow:none}.teacher-phone-modal>small{display:block;margin:9px 0 17px;color:#64748b}.report-actions .btn-secondary{background:#edf6f2;color:#0b5d42;border:1px solid rgba(11,93,66,.18)}@media(max-width:1180px){.teacher-search-panel{grid-template-columns:minmax(240px,1fr) minmax(170px,210px) minmax(150px,190px) auto}}@media(max-width:900px){.teacher-search-panel{grid-template-columns:1fr 1fr}.teacher-search-box{grid-column:1 / -1}.teacher-phone-import-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.teacher-search-panel{grid-template-columns:1fr}.teacher-search-box{grid-column:auto}.teacher-phone-import-metrics,.teacher-phone-review-grid{grid-template-columns:1fr}.teacher-phone-import-title{grid-template-columns:auto 1fr}.teacher-phone-import-title .icon-button{grid-column:2;justify-self:end}}.btn-success{background:#138a55;border-color:#138a55;color:#fff}.btn-success:hover:not(:disabled){background:#0f7448;border-color:#0f7448}.bulk-whatsapp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;display:grid;place-items:center;padding:20px;background:#0f172aa8;overflow:auto}.bulk-whatsapp-modal{width:min(1040px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #dbe4ea;border-radius:22px;background:#fff;box-shadow:0 28px 80px #0f172a47}.bulk-whatsapp-modal>header,.bulk-whatsapp-modal>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:#fff}.bulk-whatsapp-modal>header{border-bottom:1px solid #e8eef2}.bulk-whatsapp-modal>footer{border-top:1px solid #e8eef2;justify-content:flex-end}.bulk-whatsapp-heading{display:flex;align-items:center;gap:14px;min-width:0}.bulk-whatsapp-heading h2{margin:2px 0 4px;font-size:1.35rem}.bulk-whatsapp-heading p{margin:0;color:#64748b}.bulk-whatsapp-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;color:#fff;background:linear-gradient(135deg,#16a764,#087443)}.bulk-whatsapp-config,.bulk-whatsapp-queue{overflow:auto;padding:22px}.bulk-whatsapp-config{display:grid;gap:18px}.bulk-whatsapp-info,.bulk-whatsapp-warning,.bulk-whatsapp-footnote,.bulk-whatsapp-notice{display:flex;align-items:flex-start;gap:12px;border-radius:14px;padding:14px 16px}.bulk-whatsapp-info{color:#14532d;background:#ecfdf3;border:1px solid #bbf7d0}.bulk-whatsapp-info div{display:grid;gap:3px}.bulk-whatsapp-info span{color:#3f6b52}.bulk-whatsapp-warning{color:#92400e;background:#fff7ed;border:1px solid #fed7aa}.bulk-whatsapp-footnote{margin-top:16px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;font-size:.9rem}.bulk-whatsapp-notice{margin:0 22px 16px;color:#0f5f3c;background:#effcf5;border:1px solid #bbf7d0}.bulk-whatsapp-check{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #dbe4ea;border-radius:14px;cursor:pointer}.bulk-whatsapp-check input{margin-top:4px;width:18px;height:18px;accent-color:#138a55}.bulk-whatsapp-check span{display:grid;gap:4px}.bulk-whatsapp-check small{color:#64748b}.bulk-whatsapp-expiry{display:grid;gap:7px;max-width:320px}.bulk-whatsapp-expiry span{font-weight:700}.bulk-whatsapp-expiry select{min-height:42px}.bulk-whatsapp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.bulk-whatsapp-metrics>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:13px 14px;border:1px solid #dbe4ea;border-radius:13px;background:#fff}.bulk-whatsapp-metrics span{color:#64748b;font-size:.87rem}.bulk-whatsapp-metrics strong{font-size:1.25rem}.bulk-whatsapp-metrics .ready{border-color:#bbf7d0;background:#f0fdf4}.bulk-whatsapp-metrics .opened{border-color:#bae6fd;background:#f0f9ff}.bulk-whatsapp-metrics .missing{border-color:#fecaca;background:#fff7f7}.bulk-whatsapp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.bulk-whatsapp-list{display:grid;gap:9px}.bulk-whatsapp-list article{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid #dfe7ec;border-radius:14px;background:#fff}.bulk-whatsapp-list article.opened{background:#f0fdf4;border-color:#bbf7d0}.bulk-whatsapp-list article.missing-phone{background:#fff7f7;border-color:#fecaca}.bulk-whatsapp-person{display:flex;align-items:center;gap:11px;min-width:0}.bulk-whatsapp-person>div{display:grid;min-width:0}.bulk-whatsapp-person strong,.bulk-whatsapp-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-whatsapp-person small{color:#64748b;margin-top:2px}.bulk-whatsapp-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#e7f7ef;color:#0f7448;font-weight:800;font-size:.8rem}.bulk-whatsapp-status{padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap}.bulk-whatsapp-status.pending{color:#854d0e;background:#fef9c3}.bulk-whatsapp-status.opened{color:#166534;background:#dcfce7}.bulk-whatsapp-status.missing{color:#991b1b;background:#fee2e2}.bulk-whatsapp-row-actions{display:flex;gap:7px}@media(max-width:820px){.bulk-whatsapp-backdrop{padding:10px;align-items:start}.bulk-whatsapp-modal{max-height:calc(100vh - 20px);border-radius:16px}.bulk-whatsapp-modal>header,.bulk-whatsapp-modal>footer,.bulk-whatsapp-config,.bulk-whatsapp-queue{padding:15px}.bulk-whatsapp-notice{margin:0 15px 12px}.bulk-whatsapp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-whatsapp-list article{grid-template-columns:1fr;align-items:stretch}.bulk-whatsapp-row-actions{justify-content:flex-end}.bulk-whatsapp-status{justify-self:start}}@media(max-width:520px){.bulk-whatsapp-heading p{display:none}.bulk-whatsapp-icon{width:42px;height:42px}.bulk-whatsapp-metrics{grid-template-columns:1fr}.bulk-whatsapp-actions>button{width:100%;justify-content:center}.bulk-whatsapp-row-actions{display:grid;grid-template-columns:1fr}}.extra-final-status{display:flex;align-items:center;gap:11px;padding:13px 15px;border:1px solid #ecd7a0;border-radius:13px;background:#fff9e9;color:#8b6518}.extra-final-status.ready{border-color:#b9dfd0;background:#edf9f4;color:#08704f}.extra-final-status>div{display:grid;gap:3px}.extra-final-status span{color:inherit;opacity:.84;font-size:.88rem}.extra-pdf-export{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px;border:1px solid #ead7a2;border-radius:13px;background:#fffbef}.extra-pdf-export.ready{border-color:#b8dfcf;background:#f0faf6}.extra-pdf-export>div:first-child{display:flex;align-items:center;gap:10px;color:#315548;min-width:0}.extra-pdf-export>div:first-child>span{display:grid;gap:2px}.extra-pdf-export small{color:#6c8177}.extra-pdf-export>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.extra-pdf-export button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 10px;border:1px solid #cfded8;border-radius:9px;background:#fff;color:#315548;font-weight:750;cursor:pointer}.extra-pdf-export button:disabled{cursor:not-allowed;opacity:.52}.extra-pdf-export.ready button:not(:disabled):hover{border-color:#0c7452;color:#08704f;background:#f7fcfa}@media(max-width:760px){.extra-pdf-export{align-items:stretch;flex-direction:column}.extra-pdf-export>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.extra-pdf-export button{width:100%}}@media(max-width:480px){.extra-pdf-export>div:last-child{grid-template-columns:1fr}}:root[data-theme=dark]{--bg: #07110f;--bg-2: #0b1714;--surface: rgba(15, 30, 26, .92);--surface-solid: #0f1e1a;--surface-soft: #13241f;--text: #edf7f3;--muted: #a5bbb3;--muted-2: #769188;--border: #29423a;--border-strong: #3a5b50;--primary: #dfeee8;--primary-2: #c4ded4;--sidebar: #0d1b17;--sidebar-text: #d9ebe4;color-scheme:dark}:root[data-theme=dark] body{background:radial-gradient(circle at 2% 0%,rgba(16,185,129,.12),transparent 28rem),radial-gradient(circle at 100% 12%,rgba(14,165,233,.08),transparent 24rem),linear-gradient(180deg,#07100e 0%,var(--bg) 55%,var(--bg-2) 100%)}:root[data-theme=dark] .panel,:root[data-theme=dark] .card,:root[data-theme=dark] .modern-panel,:root[data-theme=dark] .content-card,:root[data-theme=dark] .topbar,:root[data-theme=dark] .modal-card,:root[data-theme=dark] .calendar-popup-card,:root[data-theme=dark] .sidebar,:root[data-theme=dark] .menu-search-box,:root[data-theme=dark] .quick-access-bar{background:var(--surface-solid);color:var(--text);border-color:var(--border)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea,:root[data-theme=dark] .date-filter{background:#0a1713!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] table thead th{background:#142721;color:#e7f3ef}:root[data-theme=dark] table tbody tr{border-color:var(--border)}:root[data-theme=dark] table tbody tr:hover{background:#10211c}:root[data-theme=dark] button.secondary,:root[data-theme=dark] .secondary,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .mini{background:#142721;color:#e7f3ef;border-color:var(--border)}:root[data-theme=dark] .academic-dashboard-hero{background:linear-gradient(135deg,#073e31,#0a5b46)}.fixed-modal-layer{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:2400!important;width:100vw!important;height:100dvh!important;overflow:auto!important}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.modal-header h2{margin:2px 0 4px}.compact-modal{width:min(520px,96vw)}.wide-modal{width:min(1180px,96vw)}.contextual-help ol{margin:0;padding-left:22px;display:grid;gap:12px;line-height:1.6}.shortcut-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}kbd{padding:3px 7px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-soft);box-shadow:inset 0 -1px #00000026}.session-warning{position:fixed;z-index:2600;right:20px;bottom:20px;width:min(420px,calc(100vw - 32px));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px;border:1px solid #f4c56b;border-radius:18px;background:#fff7df;color:#7a4c00;box-shadow:0 22px 65px #0f172a40}.session-warning div{display:grid;gap:3px}.session-warning span{font-size:.86rem}.session-warning button{padding:8px 12px}.dashboard-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.chart-panel{min-width:0;padding:18px}.chart-panel h2{margin:0 0 5px}.chart-panel p{margin:0 0 12px;color:var(--muted)}.full-span{grid-column:1 / -1}.executive-dashboard-page .dashboard-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.executive-dashboard-page .recharts-wrapper{cursor:pointer}.report-builder-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:18px;margin-top:18px;align-items:start}.report-builder-config,.report-builder-main{padding:20px}.report-builder-config{position:sticky;top:84px;max-height:calc(100dvh - 110px);overflow:auto}.report-builder-config h2,.report-builder-main h2{margin:0 0 14px;font-size:1rem}.report-builder-config h2:not(:first-child){margin-top:22px}.column-check-list{display:grid;gap:7px}.check-row{display:flex!important;align-items:center;gap:9px;padding:9px 10px;margin:0!important;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft);text-transform:none!important;letter-spacing:normal!important;font-size:.88rem!important}.check-row input{width:auto!important;min-height:auto!important;margin:0!important}.report-preview-summary{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.report-preview-summary span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:var(--accent-soft);color:#1d4ed8;font-weight:800;font-size:.82rem}.configurable-table{max-height:620px}.configurable-table thead{position:sticky;top:0;z-index:2}.tab-strip{display:flex;gap:8px;flex-wrap:wrap;padding:7px;border:1px solid var(--border);border-radius:15px;background:var(--surface-solid)}.tab-strip button{background:transparent;color:var(--muted);box-shadow:none}.tab-strip button.active{background:var(--primary);color:#fff}.quality-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 22px}.quality-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;background:var(--surface-soft);color:var(--text);border:1px solid var(--border)}.quality-card.has-issues{border-color:#f3be70;background:#fff8e8;color:#7c4c00}:root[data-theme=dark] .quality-card.has-issues{background:#30230b;color:#ffd68a}.quality-section{scroll-margin-top:90px;margin-top:22px}.quality-section h3{display:flex;align-items:center;gap:8px}.inline-json{margin:0;white-space:pre-wrap;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;max-width:900px;color:var(--text)}.inline-actions{display:flex;flex-wrap:wrap;gap:7px}.time-compare-bar{display:flex;flex-wrap:wrap;gap:10px 22px;padding:12px 15px;margin:12px 0;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);color:var(--muted);font-size:.88rem}.time-compare-bar strong{color:var(--text)}.notice{border-radius:14px}.report-actions,.button-row,.filter-actions,.modal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.report-actions button,.button-row button,.filter-actions button,.modal-actions button,.inline-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.pill.warning,.pill.warn{background:#fff3cd;color:#855800}.pill.danger{background:#fee2e2;color:#991b1b}.mini.warning{background:#fff7df;color:#8a5a00;border:1px solid #f4c56b}.mini.danger{background:#fff0f0;color:#a51919;border:1px solid #fecaca}@media(max-width:1050px){.dashboard-chart-grid,.report-builder-layout{grid-template-columns:1fr}.report-builder-config{position:static;max-height:none}.executive-dashboard-page .dashboard-metrics-grid,.quality-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.dashboard-chart-grid,.executive-dashboard-page .dashboard-metrics-grid,.quality-summary-grid{grid-template-columns:1fr}.session-warning{grid-template-columns:auto 1fr}.session-warning button{grid-column:1/-1;width:100%}.modal-card{border-radius:18px;padding:16px}}.audit-detail-backdrop{z-index:1800}.audit-detail-modal{width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:20px}.audit-detail-modal .audit-json-grid pre{max-height:280px;overflow:auto}.audit-version-panel{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.version-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.audit-version-panel code{white-space:pre-wrap;word-break:break-word}.unsaved-indicator{display:inline-flex;align-items:center;width:max-content;margin-top:8px;padding:5px 10px;border-radius:999px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:.82rem;font-weight:700}[data-theme=dark] .unsaved-indicator{background:#431407;color:#fdba74;border-color:#9a3412}:where(.page-head,.page-title,.page-header,.page-header-row,.section-header-row,.section-head,.table-header,.panel-heading,.chart-card-head,.calendar-pro-header,.reports-hero,.hero-title,.profile-hero,.teacher-hero,.coordinators-hero,.daily-closure-hero,.ops-hero,.exams-hero,.academic-users-hero,.academic-dashboard-hero,.plain-title-header,.semester-time-config-header,.semester-filter-header,.semester-edit-header,.semester-create-header,.timetable-project-hero,.timetable-modal-header,.exam-schedules-hub-header,.modal-header,.coordinator-detail-header,.teacher-confirmation-hero,.extra-public-header,.main header:not(.topbar),.fixed-modal-layer header,.bulk-whatsapp-modal>header,.extra-link-modal>header,.extra-edit-modal>header){background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--text)!important;box-shadow:none!important}:where(.page-head,.page-title,.page-header,.page-header-row,.section-header-row,.section-head,.table-header,.panel-heading,.chart-card-head,.calendar-pro-header,.reports-hero,.hero-title,.profile-hero,.teacher-hero,.coordinators-hero,.daily-closure-hero,.ops-hero,.exams-hero,.academic-users-hero,.academic-dashboard-hero,.plain-title-header,.semester-time-config-header,.semester-filter-header,.semester-edit-header,.semester-create-header,.timetable-project-hero,.timetable-modal-header,.exam-schedules-hub-header,.modal-header,.coordinator-detail-header,.teacher-confirmation-hero,.extra-public-header,.main header:not(.topbar),.fixed-modal-layer header,.bulk-whatsapp-modal>header,.extra-link-modal>header,.extra-edit-modal>header) :is(h1,h2,h3,h4,strong){color:var(--text)!important}:where(.page-head,.page-title,.page-header,.page-header-row,.section-header-row,.section-head,.table-header,.panel-heading,.chart-card-head,.calendar-pro-header,.reports-hero,.hero-title,.profile-hero,.teacher-hero,.coordinators-hero,.daily-closure-hero,.ops-hero,.exams-hero,.academic-users-hero,.academic-dashboard-hero,.plain-title-header,.semester-time-config-header,.semester-filter-header,.semester-edit-header,.semester-create-header,.timetable-project-hero,.timetable-modal-header,.exam-schedules-hub-header,.modal-header,.coordinator-detail-header,.teacher-confirmation-hero,.extra-public-header,.main header:not(.topbar),.fixed-modal-layer header,.bulk-whatsapp-modal>header,.extra-link-modal>header,.extra-edit-modal>header) :is(p,small,.eyebrow,.module-kicker){color:var(--muted)!important}.daily-sheet-header,.semester-day-card>header,.teacher-day-card>header,.extra-teacher-card>header,.extra-group-card>header,.extra-date-list>article>header{border-color:var(--border)!important}.daily-sheet-header :is(span,small),.teacher-day-card>header span,.semester-day-card>header>span,.extra-teacher-card>header small,.extra-group-card>header small,.extra-date-list>article>header small,.teacher-confirmation-brand span,.teacher-confirmation-title>span,.teacher-confirmation-title p,.extra-public-brand small,.extra-public-period small{color:var(--muted)!important}.semester-day-card>header>span,.daily-sheet-brand,.daily-sheet-day{background:transparent!important;color:var(--text)!important;border-color:var(--border)!important;box-shadow:none!important}.teacher-confirmation-hero{min-height:auto!important;gap:28px;overflow:visible;border-bottom:1px solid var(--border)}.teacher-confirmation-hero:after{display:none!important}.teacher-confirmation-content{margin-top:0!important;padding-top:18px}:root[data-theme=dark] :where(.academic-dashboard-hero,.coordinators-hero,.ops-hero,.teacher-confirmation-hero,.extra-public-header,.main header:not(.topbar),.modal-header){background:transparent!important;background-image:none!important;color:var(--text)!important}:root[data-theme=dark]{--bg: #071018;--bg-2: #0a141d;--surface: rgba(16, 27, 36, .96);--surface-solid: #101b24;--surface-soft: #15232d;--surface-raised: #1a2a35;--surface-hover: #1d303c;--field-bg: #0c1720;--text: #f2f7f8;--muted: #b4c3ca;--muted-2: #8799a3;--border: #2b3e49;--border-strong: #425b68;--primary: #0c7d5c;--primary-2: #10966e;--accent: #6ba8ff;--accent-2: #49c2f2;--accent-soft: rgba(107, 168, 255, .14);--success: #39d59a;--warning: #f5c451;--danger: #fb7d8d;--sidebar: #0d1821;--sidebar-text: #dce8ed;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .28);--shadow: 0 20px 60px rgba(0, 0, 0, .36);--shadow-soft: 0 12px 34px rgba(0, 0, 0, .28);color-scheme:dark}:root[data-theme=dark] body{background:radial-gradient(circle at 4% 0%,rgba(16,185,129,.1),transparent 28rem),radial-gradient(circle at 100% 8%,rgba(59,130,246,.09),transparent 26rem),linear-gradient(180deg,#071018 0%,var(--bg) 54%,var(--bg-2) 100%);color:var(--text)}:root[data-theme=dark] ::selection{background:#6ba8ff57;color:#fff}:root[data-theme=dark] *{scrollbar-color:#425865 #0c1720}:root[data-theme=dark] *::-webkit-scrollbar{width:11px;height:11px}:root[data-theme=dark] *::-webkit-scrollbar-track{background:#0c1720}:root[data-theme=dark] *::-webkit-scrollbar-thumb{background:#425865;border:3px solid #0c1720;border-radius:999px}:root[data-theme=dark] *::-webkit-scrollbar-thumb:hover{background:#58717f}:root[data-theme=dark] .main :is(h1,h2,h3,h4,h5,h6),:root[data-theme=dark] .modal-card :is(h1,h2,h3,h4),:root[data-theme=dark] .calendar-popup-card :is(h1,h2,h3,h4),:root[data-theme=dark] .teacher-confirmation-page :is(h1,h2,h3,h4),:root[data-theme=dark] .extra-public-page :is(h1,h2,h3,h4){color:var(--text)}:root[data-theme=dark] :is(.muted,.muted-text,.helper-text,.hint,.admin-hint,.module-kicker,.eyebrow,.section-eyebrow,.attendance-section-eyebrow,.timetable-eyebrow,.form-label,.timetable-field-label){color:var(--muted)!important}:root[data-theme=dark] :is(.panel,.modal-card,.form-panel,.login-card) label,:root[data-theme=dark] label{color:var(--muted)}:root[data-theme=dark] :is(p,small){text-wrap:pretty}:root[data-theme=dark] :is(input,select,textarea,.date-filter,.mini-input,.inline-input,.teacher-phone-input){background:var(--field-bg)!important;color:var(--text)!important;border-color:var(--border)!important;caret-color:var(--accent)}:root[data-theme=dark] :is(input,textarea)::placeholder{color:#71858f!important;opacity:1}:root[data-theme=dark] select option{background:#101b24;color:var(--text)}:root[data-theme=dark] :is(input,select,textarea):focus{border-color:#4e8fd6!important;box-shadow:0 0 0 4px #60a5fa29!important;outline:none}:root[data-theme=dark] :is(input,select,textarea):disabled,:root[data-theme=dark] .attendance-note:disabled{background:#111c24!important;color:#70828c!important;border-color:#253743!important;opacity:1}:root[data-theme=dark] input[type=checkbox],:root[data-theme=dark] input[type=radio]{accent-color:#19a878}:root[data-theme=dark] input[type=file]::file-selector-button{background:var(--surface-raised);color:var(--text);border:1px solid var(--border);border-radius:9px}:root[data-theme=dark] button{background:var(--primary);color:#fff;box-shadow:var(--shadow-xs)}:root[data-theme=dark] button:hover:not(:disabled){background:var(--primary-2);color:#fff;box-shadow:0 10px 26px #0000004d}:root[data-theme=dark] :is(button.secondary,.secondary,.secondary-button,.mini-button,.icon-button,.icon-btn,.back-button,.file-button,.secondary-link,.btn-secondary,.btn-muted,.ghost,.timetable-icon-button,.semester-pdf-actions button,.semester-teacher-share-actions button,.semester-group-combobox-actions button,.semester-group-combobox-menu footer button:not(:last-child),.extra-view-tabs button,.extra-day-selector button,.extra-public-choice button,.extra-pdf-export button){background:var(--surface-raised)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(button.secondary,.secondary,.secondary-button,.mini-button,.icon-button,.icon-btn,.back-button,.file-button,.secondary-link,.btn-secondary,.btn-muted,.ghost,.timetable-icon-button,.semester-pdf-actions button,.semester-teacher-share-actions button,.semester-group-combobox-actions button,.extra-view-tabs button,.extra-day-selector button,.extra-public-choice button,.extra-pdf-export button):hover:not(:disabled){background:var(--surface-hover)!important;color:#fff!important;border-color:var(--border-strong)!important}:root[data-theme=dark] :is(.btn-primary,.primary-button,.primary,.primary-generator,.create-event-button,.semester-generate-button){background:linear-gradient(135deg,#087454,#10966e)!important;color:#fff!important;border-color:#15956f!important}:root[data-theme=dark] :is(button.danger,.danger-button,.btn-danger,.danger-btn){background:#842d3b!important;color:#fff5f6!important;border-color:#b34b5c!important}:root[data-theme=dark] :is(button.danger,.danger-button,.btn-danger,.danger-btn):hover:not(:disabled){background:#a33849!important}:root[data-theme=dark] button:disabled{opacity:.52}:root[data-theme=dark] :is(.card,.panel,.event,.modern-panel,.content-card,.table-card,.table-panel,.chart-card,.chart-card-pro,.chart-panel,.detail-card,.form-card,.form-panel,.filters-card,.filters-panel,.soft-panel,.check-card,.metric-card,.stat-card,.academic-stat-card,.payroll-stat-card,.coord-metric-card,.smart-alert-metric-card,.academic-table-panel,.audit-table-panel,.pending-panel,.offline-panel,.import-panel,.bulk-preview-panel,.bulk-history-panel,.exam-progress-panel,.exam-options-box,.profile-section,.portal-list-item,.pending-item,.rule-card,.timetable-section-card,.timetable-main-panel,.timetable-project-panel,.timetable-generator-card,.timetable-publication-card,.semester-generator-panel,.semester-preview-panel,.extra-preview-panel,.audit-detail-grid>div,.checklist-item,.teacher-preview,.import-box,.file-field,.institution-logo-preview){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important;box-shadow:var(--shadow-xs)}:root[data-theme=dark] :is(.surface-soft,.check-row,.time-compare-bar,.role-box,.summary-list,.review-box){background:var(--surface-soft)!important;border-color:var(--border)!important;color:var(--text)}:root[data-theme=dark] :is(.table-wrap,.table-wrapper,.table-scroll,.academic-table-wrap,.payroll-table-wrap,.attendance-table-wrap,.attendance-history-wrap,.profile-attendance-table-wrap,.semester-preview-table-wrap,.semester-pdf-preview-table-wrap,.timetable-table-wrapper,.pdf-preview-table){background:var(--surface-solid)!important;border-color:var(--border)!important}:root[data-theme=dark] table{color:var(--text)}:root[data-theme=dark] :is(th,table thead th,.attendance-table thead th,.attendance-history-table th,.profile-attendance-table th,.academic-table-panel table th,.timetable-table th,.daily-sheet-table th,.semester-pdf-preview-table th,.pdf-preview-table th){background:#182733!important;color:#dfe9ed!important;border-color:var(--border)!important}:root[data-theme=dark] table td{color:var(--text);border-color:#263a46!important}:root[data-theme=dark] :is(table tbody tr:nth-child(2n) td,.attendance-table tbody tr:nth-child(2n) td){background:#15232d85!important}:root[data-theme=dark] :is(table tbody tr:hover td,tr:hover td,.attendance-table tbody tr:hover td){background:var(--surface-hover)!important}:root[data-theme=dark] .attendance-locked-row td{background:#111d26!important}:root[data-theme=dark] :is(.muted-cell,.attendance-empty-value,.empty-cell){color:var(--muted-2)!important}:root[data-theme=dark] .sidebar{background:#0d1821f5!important;color:var(--sidebar-text);border-color:var(--border)!important}:root[data-theme=dark] :is(.brand strong,.sidebar-user-card strong){color:var(--text)!important}:root[data-theme=dark] :is(.sidebar a,.logout){color:#c2d0d6}:root[data-theme=dark] .sidebar a svg{color:#8fa4ae}:root[data-theme=dark] .sidebar a:hover,:root[data-theme=dark] .logout:hover{background:var(--surface-hover)!important;color:#fff!important;border-color:var(--border)!important}:root[data-theme=dark] .sidebar a.active{background:linear-gradient(135deg,#087454,#0c8d67)!important;color:#fff!important;border-color:#15956f!important;box-shadow:0 12px 28px #0000004d}:root[data-theme=dark] .sidebar a.active svg{color:#d9fff0}:root[data-theme=dark] .sidebar-user-card,:root[data-theme=dark] .logout{background:var(--surface-soft)!important;border-color:var(--border)!important}:root[data-theme=dark] .user-avatar{background:#173852;color:#9dd6ff}:root[data-theme=dark] :is(.topbar,.search-box,.menu-search-box,.quick-access-bar){background:#101b24f5!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] :is(.role-badge,.install-chip,.soft-count){background:var(--surface-raised)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.search-popover,.notification-popover){background:#111e28!important;color:var(--text);border-color:var(--border)!important;box-shadow:var(--shadow)}:root[data-theme=dark] :is(.search-result,.notification-item){background:transparent!important;border-color:#263944!important}:root[data-theme=dark] :is(.search-result:hover,.notification-item:hover,.notification-item.unread){background:var(--surface-hover)!important}:root[data-theme=dark] :is(.search-popover-head,.notification-head,.notification-footer,.notification-audio-hint){background:var(--surface-soft)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] .notification-item span{color:var(--muted)!important}:root[data-theme=dark] .notification-footer{color:#91bfff!important}:root[data-theme=dark] :is(.modal-card,.calendar-popup-card,.signature-modal,.history-modal,.phase36-modal,.audit-detail-modal,.recovery-modal,.teacher-phone-modal,.semester-edit-modal,.semester-create-modal,.semester-pdf-import-modal,.semester-teacher-link-modal,.extra-link-modal,.extra-edit-modal,.bulk-whatsapp-modal,.class-activity-modal,.timetable-modal-body){background:#111e28!important;color:var(--text);border-color:var(--border)!important;box-shadow:0 28px 90px #0000008c!important}:root[data-theme=dark] :is(.modal-backdrop,.calendar-modal-backdrop,.semester-edit-backdrop,.extra-modal-backdrop,.bulk-whatsapp-backdrop,.timetable-modal-backdrop){background:#01070bc2!important;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}:root[data-theme=dark] :is(.modal-header,.modal-head,.popup-title-row,.semester-edit-header,.semester-pdf-import-header,.semester-teacher-link-header,.extra-link-modal>header,.extra-edit-modal>header,.bulk-whatsapp-modal>header,.bulk-whatsapp-modal>footer,.timetable-modal-header,.timetable-modal-footer){background:transparent!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.modern-login,.password-reset-page){background:radial-gradient(circle at 18% 12%,rgba(16,185,129,.1),transparent 25rem),radial-gradient(circle at 90% 90%,rgba(59,130,246,.08),transparent 24rem),linear-gradient(135deg,#071018,#0a151e)!important}:root[data-theme=dark] .login-hero{color:var(--text)}:root[data-theme=dark] .login-copy{color:var(--muted)}:root[data-theme=dark] :is(.login-card,.login-feature-grid div,.login-brand-mark){background:#101b24f0!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] .login-logo{background:#087454;color:#fff}:root[data-theme=dark] .login-brand-mark{color:#8dbdff!important}:root[data-theme=dark] :is(.calendar-main-panel,.calendar-month-cell,.week-column,.agenda-item,.agenda-mini-item){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] :is(.calendar-weekday-row,.week-column-head,.day-board-head){background:#182733!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.calendar-month-cell:hover,.week-column:hover,.agenda-item:hover){background:var(--surface-hover)!important}:root[data-theme=dark] .calendar-month-cell.outside-month{background:#0d1821!important;color:#687b86!important}:root[data-theme=dark] .calendar-month-cell.is-today{background:#10283a!important}:root[data-theme=dark] :is(.empty-calendar-state,.empty-chart,.empty-state-card,.empty-state){background:#111e28!important;color:var(--muted)!important;border-color:var(--border-strong)!important}:root[data-theme=dark] .calendar-metrics-row div{background:var(--surface-solid)!important;border-color:var(--border)!important}:root[data-theme=dark] .mini-calendar-grid button:not(.selected){background:transparent;color:var(--text)}:root[data-theme=dark] :is(.profile-hero,.teacher-hero,.coordinators-hero,.daily-closure-hero,.ops-hero,.reports-hero,.academic-dashboard-hero,.academic-users-hero,.exams-hero){background:transparent!important;color:var(--text)!important}:root[data-theme=dark] .profile-photo{background:var(--surface-soft)!important;border-color:var(--border-strong)!important}:root[data-theme=dark] :is(.profile-meta span,.profile-contact-row a,.upload-mini,.profile-attendance-count){background:var(--surface-raised)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] .profile-tabs{background:var(--surface-soft)!important;border-color:var(--border)!important}:root[data-theme=dark] .profile-tabs button{background:transparent;color:var(--muted)}:root[data-theme=dark] .profile-tabs button.active{background:#087454!important;color:#fff!important}:root[data-theme=dark] .compliance-ring{border-color:var(--surface-raised)!important;color:var(--text)!important}:root[data-theme=dark] :is(.attendance-list-heading,.attendance-search-panel,.attendance-filter-panel,.attendance-history-panel){background:var(--surface-solid)!important;border-color:var(--border)!important;color:var(--text)}:root[data-theme=dark] :is(.attendance-result-badge.secondary-badge,.attendance-permission-pill,.attendance-zone-chip){background:var(--surface-raised)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.check-button,.attendance-check-actions button){background:var(--surface-raised)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] .check-button.present{background:#0d2b22!important;color:#85efc0!important;border-color:#24634f!important}:root[data-theme=dark] .check-button.absent{background:#321820!important;color:#ffabb6!important;border-color:#743444!important}:root[data-theme=dark] .check-button.selected.present{background:#16855f!important;color:#fff!important}:root[data-theme=dark] .check-button.selected.absent{background:#a43b4c!important;color:#fff!important}:root[data-theme=dark] :is(.semester-time-config,.semester-filter-panel,.semester-view-toolbar,.semester-pdf-toolbar,.semester-day-card,.semester-group-card,.semester-teacher-card,.semester-group-combobox-menu,.semester-teacher-message-field,.semester-teacher-image-field,.semester-teacher-share-preview,.teacher-confirmation-footer-card,.teacher-confirmation-custom-message){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] :is(.semester-view-switcher,.semester-time-mode-switch,.semester-day-selector,.semester-group-combobox-actions,.semester-group-combobox-menu footer){background:var(--surface-soft)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.semester-view-switcher button,.semester-time-mode-switch button,.semester-day-selector button){background:transparent!important;color:var(--muted)!important}:root[data-theme=dark] :is(.semester-view-switcher button.active,.semester-time-mode-switch button.active,.semester-day-selector button.active){background:#0c7d5c!important;color:#fff!important}:root[data-theme=dark] :is(.semester-group-card>header,.semester-teacher-card>header,.semester-day-card>header){background:transparent!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.semester-group-title h3,.semester-schedule-time span,.semester-schedule-location strong,.semester-view-toolbar>div:first-child strong,.semester-pdf-toolbar-title strong,.semester-edit-section-heading strong,.semester-create-info strong){color:var(--text)!important}:root[data-theme=dark] :is(.semester-group-title small,.semester-group-title p,.semester-group-meta,.semester-schedule-location span,.semester-view-toolbar>div:first-child span,.semester-pdf-toolbar-title span,.semester-edit-section-heading small,.semester-create-info span){color:var(--muted)!important}:root[data-theme=dark] .semester-schedule-item{border-color:#263944!important}:root[data-theme=dark] .semester-schedule-item:hover{background:var(--surface-hover)!important}:root[data-theme=dark] :is(.semester-schedule-item.has-conflict,.semester-conflict-row){background:#311821!important}:root[data-theme=dark] .semester-edit-section{background:var(--surface-soft)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.semester-edit-duration,.semester-edit-range-note,.semester-create-info>div,.semester-teacher-image-picker){background:var(--surface-soft)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.semester-group-combobox-trigger,.semester-group-combobox-search input){background:var(--field-bg)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] .semester-preview-filters-advanced .semester-group-combobox-options label:hover{background:var(--surface-hover)!important}:root[data-theme=dark] .teacher-confirmation-page{background:#08121a!important;color:var(--text)}:root[data-theme=dark] :is(.teacher-confirmation-list>article,.teacher-confirmation-options button){background:var(--surface-solid)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.exam-schedules-hub,.extra-set-browser,.extra-set-list>button,.extra-teacher-card,.extra-group-card,.extra-date-list>article,.extra-public-shell,.extra-public-subject,.extra-public-loading,.extra-public-error,.extra-public-message,.extra-public-footer){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] :is(.exam-schedules-hub-tabs button,.extra-set-counts small,.extra-summary-cards>div,.extra-preview-toolbar){background:var(--surface-soft)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.exam-schedules-hub-tabs button.active,.extra-view-tabs button.active,.extra-set-list>button.active){background:#0c7d5c!important;color:#fff!important;border-color:#15956f!important}:root[data-theme=dark] :is(.extra-teacher-card>header,.extra-group-card>header,.extra-date-list>article>header){background:transparent!important;border-color:var(--border)!important}:root[data-theme=dark] .extra-public-page{background:radial-gradient(circle at top right,rgba(16,185,129,.1),transparent 34%),#08121a!important;color:var(--text)!important}:root[data-theme=dark] .extra-public-header{background:transparent!important;color:var(--text)!important}:root[data-theme=dark] :is(.extra-public-choice button,.extra-public-slot select){background:var(--field-bg)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] .extra-public-subject.declined{background:#2a181d!important;border-color:#69323d!important}:root[data-theme=dark] :is(.timetable-project-list,.timetable-project-card,.timetable-board-card,.timetable-board-section,.timetable-constraint-grid>div,.timetable-integration-grid>div,.timetable-verify-layout>div,.timetable-run-history,.timetable-filter-bar){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] :is(.timetable-tabs,.timetable-view-switcher,.timetable-switch-grid,.timetable-day-checkboxes){background:var(--surface-soft)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.timetable-tabs button,.timetable-view-switcher button){background:transparent!important;color:var(--muted)!important}:root[data-theme=dark] :is(.timetable-tabs button.active,.timetable-view-switcher button.active){background:#0c7d5c!important;color:#fff!important}:root[data-theme=dark] .timetable-message{background:#0d2a22!important;color:#9cefc9!important;border-color:#28644f!important}:root[data-theme=dark] .timetable-message.error{background:#321820!important;color:#ffb2bc!important;border-color:#743444!important}:root[data-theme=dark] :is(.bulk-whatsapp-config,.bulk-whatsapp-list article,.bulk-whatsapp-metrics>div,.teacher-phone-import-result,.teacher-phone-review-grid>div,.teacher-phone-overwrite){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] .bulk-whatsapp-footnote{background:var(--surface-soft)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] .bulk-whatsapp-list article.opened{background:#0d2a22!important;border-color:#28644f!important}:root[data-theme=dark] :is(.bulk-whatsapp-list article.missing-phone,.bulk-whatsapp-metrics .missing){background:#301820!important;border-color:#713544!important}:root[data-theme=dark] :is(.report-builder-config,.report-builder-main,.advanced-report-panel,.academic-alert-detail){background:var(--surface-solid)!important;color:var(--text);border-color:var(--border)!important}:root[data-theme=dark] .report-preview-summary span{background:#60a5fa24!important;color:#9ac6ff!important}:root[data-theme=dark] :is(.chart-tooltip,.recharts-default-tooltip){background:#111e28!important;color:var(--text)!important;border-color:var(--border)!important;box-shadow:var(--shadow-soft)!important}:root[data-theme=dark] :is(.recharts-cartesian-axis-tick-value,.recharts-legend-item-text,.recharts-text){fill:#b5c4cb!important;color:#b5c4cb!important}:root[data-theme=dark] .recharts-cartesian-grid line{stroke:#2c404b!important}:root[data-theme=dark] .recharts-tooltip-label{color:#f1f7f9!important}:root[data-theme=dark] .recharts-tooltip-item{color:#cad7dc!important}:root[data-theme=dark] :is(.success-soft,.success-notice,.status-box.success,.notice.success,.extra-final-status.ready,.extra-pdf-export.ready,.bulk-whatsapp-metrics .ready,.bulk-whatsapp-status.opened,.event-acknowledged-banner){background:#0d2a22!important;color:#a2f1cd!important;border-color:#28644f!important}:root[data-theme=dark] :is(.warning-soft,.warn-notice,.status-box.warning,.notice.warning,.session-warning,.bulk-whatsapp-warning,.extra-final-status,.extra-pdf-export,.pill.warning,.pill.warn,.mini.warning,.score.mid,.event-chip-pending,.extra-decision.pending,.semester-set-confirmation-mini .pending,.attendance-status.status-retardo,.attendance-status.status-salio_temprano,.extra-public-ready,.bulk-whatsapp-status.pending){background:#30260f!important;color:#ffe09a!important;border-color:#6f5723!important}:root[data-theme=dark] :is(.danger-lite,.danger-soft,.status-box.danger,.notice.danger,.pill.danger,.mini.danger,.score.bad,.event-chip-danger,.extra-decision.declined,.semester-set-confirmation-mini .declined,.attendance-status.status-falta,.extra-public-notice.danger,.bulk-whatsapp-status.missing,.profile-attendance-panel.is-absence .profile-attendance-heading-icon){background:#321820!important;color:#ffb1bc!important;border-color:#743444!important}:root[data-theme=dark] :is(.info-soft,.notice.info,.status-box.info,.secondary-badge){background:#13283a!important;color:#a8d2ff!important;border-color:#315774!important}:root[data-theme=dark] :is(.connection-banner.offline,.offline-summary){background:#30260f!important;color:#ffe09a!important;border-color:#6f5723!important}:root[data-theme=dark] :is(.connection-banner.online,.online){background:#0d2a22!important;color:#a2f1cd!important;border-color:#28644f!important}:root[data-theme=dark] :is(.audit-diff small,.inline-json,code,pre){background:#0a151d!important;color:#d9e7ec!important;border-color:var(--border)!important}:root[data-theme=dark] .audit-detail-grid :is(span,small){color:var(--muted)!important}:root[data-theme=dark] .audit-detail-grid strong{color:var(--text)!important}:root[data-theme=dark] .unsaved-indicator{background:#3a210f!important;color:#ffc37f!important;border-color:#87512b!important}:root[data-theme=dark] :is(.module-kicker,.rank-number,.clear-search,.status-pill,.progress-chip,.marked-time-chip){background:var(--surface-raised)!important;color:var(--muted)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.tab-strip,.segmented-control){background:var(--surface-soft)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(.tab-strip button,.segmented-control button){background:transparent!important;color:var(--muted)!important}:root[data-theme=dark] :is(.tab-strip button.active,.segmented-control button.active){background:#0c7d5c!important;color:#fff!important}:root[data-theme=dark] :is(.main,.modal-card,.calendar-popup-card,.teacher-confirmation-page,.extra-public-page) :is(.light,.clean,.neutral){background:var(--surface-soft)!important;color:var(--text)!important;border-color:var(--border)!important}:root[data-theme=dark] :is(button,a,input,select,textarea):focus-visible{outline:3px solid rgba(107,168,255,.72)!important;outline-offset:2px}.teacher-extraordinary-panel{display:grid;gap:16px}.teacher-extraordinary-set{border:1px solid var(--border, #dce8e3);border-radius:18px;overflow:hidden;background:var(--surface, #fff)}.teacher-extraordinary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--border, #dce8e3)}.teacher-extraordinary-header h3{margin:2px 0 4px}.teacher-extraordinary-header p{margin:0;color:var(--muted, #6f827a)}.teacher-extraordinary-subjects{padding-top:16px}.teacher-extraordinary-choice{grid-template-columns:repeat(3,minmax(110px,1fr))}.extra-public-choice .neutral{color:#725a18}.extra-public-choice .neutral.active{color:#fff;background:#8a6d1d;border-color:#8a6d1d}.teacher-extraordinary-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-top:1px solid var(--border, #dce8e3);background:var(--surface-muted, #f8fbf9)}.teacher-extraordinary-footer span{color:var(--muted, #6f827a);font-size:.9rem}.teacher-extraordinary-footer button{min-height:42px;display:inline-flex;align-items:center;gap:8px}body.dark .teacher-extraordinary-set{background:var(--surface);border-color:var(--border)}body.dark .teacher-extraordinary-footer{background:var(--surface-muted)}@media(max-width:760px){.teacher-extraordinary-header,.teacher-extraordinary-footer{flex-direction:column;align-items:stretch}.teacher-extraordinary-choice{grid-template-columns:1fr}}.teacher-profile-modern{gap:18px}.teacher-profile-hero{display:flex;align-items:stretch;justify-content:space-between;gap:20px;padding:24px;border:1px solid var(--border, #dce8e3);background:var(--surface-solid, #fff)!important;border-radius:24px}.teacher-profile-identity{min-width:0;display:flex;align-items:center;gap:18px}.teacher-profile-avatar{width:100px;height:100px;border-radius:30px;background:#073b2d;box-shadow:0 18px 38px #073b2d29}.teacher-profile-identity h1{margin:2px 0 8px;color:var(--text, #173d31);font-size:clamp(28px,4vw,46px);line-height:1.02;letter-spacing:-.045em}.teacher-profile-subtitle{margin:0;color:var(--muted, #6f827a);font-weight:700}.teacher-profile-badges{margin-top:12px}.teacher-profile-focus-card{width:min(260px,100%);display:grid;align-content:center;gap:5px;padding:18px 20px;border:1px solid #cfe1d9;border-radius:22px;background:linear-gradient(135deg,#f5fbf8,#fff);color:#173d31}.teacher-profile-focus-card span{color:#647a72;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.teacher-profile-focus-card strong{font-size:42px;line-height:1;letter-spacing:-.06em}.teacher-profile-focus-card small{color:#6f827a;line-height:1.35}.teacher-portal-layout{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:18px;align-items:start}.teacher-portal-nav{position:sticky;top:88px;display:grid;gap:14px;padding:16px;border-radius:22px}.teacher-portal-nav-title{display:flex;align-items:center;gap:10px;padding:5px 4px 12px;border-bottom:1px solid var(--border, #dce8e3);color:var(--text, #173d31)}.teacher-portal-nav-title>svg{flex:0 0 auto;color:#087556}.teacher-portal-nav-title div{display:grid;gap:2px}.teacher-portal-nav-title span{color:var(--muted, #6f827a);font-size:12px}.teacher-portal-nav-list{display:grid;gap:8px}.teacher-portal-nav-list button{width:100%;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--text, #173d31);text-align:left;box-shadow:none}.teacher-portal-nav-list button:hover{transform:translateY(-1px);border-color:#cfe1d9;background:#f7fbf9;box-shadow:none}.teacher-portal-nav-list button.active{border-color:#087556;background:#eaf7f1;color:#073b2d;box-shadow:0 10px 24px #0875561f}.teacher-portal-nav-list button>svg{color:#087556}.teacher-portal-nav-list button span{min-width:0;display:grid;gap:2px}.teacher-portal-nav-list button small{overflow:hidden;color:#6f827a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.teacher-portal-nav-list button em{min-width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#fff;color:#087556;font-size:12px;font-style:normal;font-weight:900;border:1px solid #d6e6df}.teacher-portal-content{min-width:0}.teacher-portal-section{display:grid;gap:16px}.teacher-section-heading{display:flex;justify-content:space-between;gap:16px;padding:4px 2px 0}.teacher-section-heading h2{margin:2px 0 4px;color:var(--text, #173d31);font-size:clamp(22px,2.6vw,32px);letter-spacing:-.035em}.teacher-section-heading p{margin:0;color:var(--muted, #6f827a)}.teacher-summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teacher-mini-metric{min-width:0;display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center;padding:16px;border:1px solid var(--border, #dce8e3);border-radius:18px;background:var(--surface-solid, #fff)}.teacher-mini-metric>div{grid-row:span 2;width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:#edf7f2;color:#087556}.teacher-mini-metric span{color:var(--muted, #6f827a);font-size:12px;font-weight:850}.teacher-mini-metric strong{color:var(--text, #173d31);font-size:24px;line-height:1}.teacher-mini-metric.tone-danger>div{background:#fff0f2;color:#b52a3c}.teacher-mini-metric.tone-warning>div{background:#fff7df;color:#9a6500}.teacher-mini-metric.tone-info>div{background:#eef6ff;color:#2563eb}.teacher-mini-metric.tone-success>div{background:#eaf7f1;color:#087556}.teacher-overview-grid,.teacher-split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.teacher-overview-card,.teacher-form-panel-clean,.teacher-table-card{min-width:0;padding:18px;border-radius:20px}.teacher-overview-card h3,.teacher-form-panel-clean h3,.teacher-table-card h3{margin:0 0 14px;color:var(--text, #173d31)}.teacher-action-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border:0;border-bottom:1px solid var(--border, #dce8e3);border-radius:0;background:transparent;color:var(--text, #173d31);box-shadow:none}.teacher-action-row:hover{transform:none;background:transparent;color:#087556;box-shadow:none}.teacher-action-row strong{min-width:32px;height:32px;display:grid;place-items:center;border-radius:999px;background:#eaf7f1;color:#087556}.teacher-info-list{display:grid;gap:10px}.teacher-info-list div{display:grid;grid-template-columns:minmax(100px,.45fr) minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--border, #dce8e3)}.teacher-info-list span{color:var(--muted, #6f827a);font-weight:850}.teacher-info-list strong{min-width:0;color:var(--text, #173d31);overflow-wrap:anywhere}.teacher-document-list,.teacher-events-list{display:grid;gap:12px}.teacher-document-item,.teacher-event-item{border-radius:18px}.teacher-document-item.overdue{border-color:#efb7bf;background:#fff6f7}.teacher-event-item small{display:block;margin-top:4px;color:var(--muted, #6f827a)}.teacher-table-summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.teacher-table-summary span{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--border, #dce8e3);border-radius:999px;background:#f7fbf9;color:var(--muted, #6f827a);font-size:12px;font-weight:800}.teacher-inline-notice{display:flex;align-items:center;gap:8px}.teacher-empty-state{min-height:190px;border:1px dashed #cdded7;border-radius:18px;background:#f9fcfb}.teacher-form-panel-clean .form-grid{gap:13px}.teacher-form-panel-clean textarea{resize:vertical}@media(max-width:1180px){.teacher-profile-hero{flex-direction:column}.teacher-profile-focus-card{width:100%}.teacher-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.teacher-portal-layout{grid-template-columns:1fr}.teacher-portal-nav{position:static}.teacher-portal-nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-overview-grid,.teacher-split-grid{grid-template-columns:1fr}}@media(max-width:640px){.teacher-profile-hero{padding:18px}.teacher-profile-identity{align-items:flex-start;flex-direction:column}.teacher-profile-avatar{width:86px;height:86px;border-radius:24px}.teacher-portal-nav-list,.teacher-summary-metrics{grid-template-columns:1fr}.teacher-info-list div{grid-template-columns:1fr;gap:3px}}:root[data-theme=dark] .teacher-profile-hero,:root[data-theme=dark] .teacher-portal-nav,:root[data-theme=dark] .teacher-mini-metric,:root[data-theme=dark] .teacher-overview-card,:root[data-theme=dark] .teacher-form-panel-clean,:root[data-theme=dark] .teacher-table-card,:root[data-theme=dark] .teacher-document-item,:root[data-theme=dark] .teacher-event-item{background:var(--surface-solid)!important;border-color:var(--border)!important;color:var(--text)!important}:root[data-theme=dark] .teacher-profile-focus-card,:root[data-theme=dark] .teacher-portal-nav-list button:hover,:root[data-theme=dark] .teacher-portal-nav-list button.active,:root[data-theme=dark] .teacher-table-summary span,:root[data-theme=dark] .teacher-empty-state{background:var(--surface-soft)!important;border-color:var(--border-strong)!important;color:var(--text)!important}:root[data-theme=dark] .teacher-portal-nav-list button em,:root[data-theme=dark] .teacher-action-row strong,:root[data-theme=dark] .teacher-mini-metric>div{background:#163127;color:#bdebd9;border-color:var(--border)}:root[data-theme=dark] .teacher-document-item.overdue{background:#32161a!important;border-color:#7f3844!important}.teacher-avatar-stack{display:grid;gap:8px;justify-items:center;flex:0 0 auto}.teacher-avatar-upload-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:7px 11px;border:1px solid #cfe1d9;border-radius:999px;background:#f7fbf9;color:#087556;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}.teacher-avatar-upload-button:hover{background:#eaf7f1;transform:translateY(-1px)}.teacher-documents-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);gap:16px;align-items:stretch}.teacher-upload-card{min-width:0;padding:18px;border-radius:20px;display:grid;gap:16px}.teacher-upload-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.teacher-upload-card-head h3{margin:2px 0 5px;color:var(--text, #173d31)}.teacher-upload-card-head p,.teacher-section-note{margin:0;color:var(--muted, #6f827a);font-size:13px}.teacher-upload-card-head>svg{flex:0 0 auto;color:#087556;padding:8px;border:1px solid #d7e8df;border-radius:16px;background:#eef8f3}.teacher-doc-photo-preview{width:78px;height:78px;border-radius:24px;background:#0f3d31}.teacher-custom-doc-form{display:grid;gap:12px}.teacher-custom-doc-form label{display:grid;gap:6px;color:var(--muted, #6f827a);font-weight:850}.teacher-custom-doc-form select,.teacher-custom-doc-form input,.teacher-custom-doc-form textarea{width:100%}.teacher-file-dropzone{min-height:116px;padding:16px;border:1px dashed #a7c8bc;border-radius:18px;background:#f8fcfa;color:var(--text, #173d31)!important;display:grid!important;place-items:center;text-align:center;gap:7px!important;cursor:pointer}.teacher-file-dropzone.compact{min-height:102px}.teacher-file-dropzone svg{color:#087556}.teacher-file-dropzone strong{color:var(--text, #173d31);overflow-wrap:anywhere}.teacher-file-dropzone span{max-width:420px;color:var(--muted, #6f827a);font-size:12px;line-height:1.35}.teacher-file-dropzone:hover{border-color:#087556;background:#eef8f3}.teacher-document-item small{display:block;margin-top:4px;color:var(--muted, #6f827a);font-size:12px}@media(max-width:980px){.teacher-documents-grid{grid-template-columns:1fr}}@media(max-width:640px){.teacher-avatar-stack{justify-items:start}.teacher-avatar-upload-button{width:max-content}.teacher-upload-card-head{flex-direction:column}}:root[data-theme=dark] .teacher-avatar-upload-button,:root[data-theme=dark] .teacher-upload-card,:root[data-theme=dark] .teacher-file-dropzone{background:var(--surface-solid)!important;border-color:var(--border)!important;color:var(--text)!important}:root[data-theme=dark] .teacher-avatar-upload-button:hover,:root[data-theme=dark] .teacher-file-dropzone:hover,:root[data-theme=dark] .teacher-upload-card-head>svg{background:var(--surface-soft)!important;border-color:var(--border-strong)!important;color:#bdebd9!important}.teacher-account-generator{margin:18px 0;border:1px solid var(--border, #d9e8e1);background:linear-gradient(135deg,#08755614,#fffffff2)}.teacher-account-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.teacher-account-header h2{margin:4px 0 8px}.teacher-account-header p{margin:0;color:var(--muted, #6f827a);line-height:1.5}.teacher-account-header code{padding:2px 7px;border-radius:999px;background:#0875561a;color:var(--text, #173d31);font-weight:800}.teacher-account-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;min-width:280px}.teacher-account-stats{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-top:18px}.teacher-account-stats div{padding:14px;border:1px solid var(--border, #d9e8e1);border-radius:18px;background:var(--surface, #ffffff)}.teacher-account-stats strong{display:block;color:var(--text, #173d31);font-size:24px;line-height:1}.teacher-account-stats span{display:block;margin-top:6px;color:var(--muted, #6f827a);font-size:12px;font-weight:800}.teacher-account-preview{margin-top:16px;max-height:420px;overflow:auto}.account-reason{display:block;margin-top:5px;color:var(--muted, #6f827a)}@media(max-width:900px){.teacher-account-header{flex-direction:column}.teacher-account-actions{width:100%;min-width:0;justify-content:stretch}.teacher-account-actions button{flex:1}.teacher-account-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.teacher-account-stats{grid-template-columns:1fr}}:root[data-theme=dark] .teacher-account-generator{background:var(--surface-solid)!important;border-color:var(--border)!important}:root[data-theme=dark] .teacher-account-header code,:root[data-theme=dark] .teacher-account-stats div{background:var(--surface-soft)!important;border-color:var(--border)!important;color:var(--text)!important}.student-attendance-page,.teacher-student-attendance{display:grid;gap:18px}.student-attendance-hero{align-items:center}.student-attendance-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(340px,1.1fr);gap:16px;align-items:start}.student-attendance-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.student-attendance-import-card,.student-attendance-summary-card,.student-attendance-preview-card,.student-attendance-groups-card,.student-attendance-report-card{min-width:0;border-radius:22px;padding:18px}.student-attendance-import-card .form-grid{gap:12px}.teacher-student-attendance-status{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px;border-radius:20px}.teacher-student-attendance-status h3,.teacher-student-class-list h3,.teacher-student-roster-head h3{margin:0 0 6px;color:var(--text);letter-spacing:-.025em}.teacher-student-attendance-status p,.teacher-student-roster-head p{margin:0;color:var(--muted);line-height:1.45}.teacher-student-attendance-grid{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:16px;align-items:start}.teacher-student-class-list,.teacher-student-roster-card{min-width:0;padding:18px;border-radius:20px}.student-class-button{width:100%;display:flex;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--border);border-radius:16px;background:var(--surface-solid);color:var(--text);text-align:left;box-shadow:none}.student-class-button:hover{background:var(--surface-soft);box-shadow:none}.student-class-button.active{border-color:#087556;background:#eaf7f1}.student-class-button span{display:grid;gap:3px;min-width:0}.student-class-button small{color:var(--muted);font-size:12px}.student-class-button em{align-self:center;white-space:nowrap;border-radius:999px;padding:6px 9px;background:#f1f5f9;color:#475569;font-style:normal;font-size:11px;font-weight:900}.student-class-button.status-disponible em{background:#dcfce7;color:#166534}.student-class-button.status-aun_no_disponible em{background:#fef3c7;color:#92400e}.student-class-button.status-finalizada em{background:#fee2e2;color:#991b1b}.teacher-student-roster-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.student-roster-list{display:grid;gap:10px}.student-roster-item{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,.9fr);gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}.student-roster-info{display:grid;gap:3px;min-width:0}.student-roster-info strong{color:var(--text);overflow-wrap:anywhere}.student-roster-info span{color:var(--muted);font-size:12px;font-weight:750}.student-roster-controls{display:grid;grid-template-columns:minmax(130px,170px) minmax(120px,1fr);gap:8px}.student-roster-controls select,.student-roster-controls input{margin:0}.teacher-student-submit-bar{position:sticky;bottom:14px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:18px;background:#ffffffeb;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.teacher-student-submit-bar span{color:var(--muted);font-weight:850}.compact-list{gap:10px}@media(max-width:1100px){.student-attendance-grid,.student-attendance-grid.two-columns,.teacher-student-attendance-grid{grid-template-columns:1fr}}@media(max-width:720px){.teacher-student-attendance-status,.teacher-student-roster-head,.teacher-student-submit-bar{align-items:stretch;flex-direction:column}.student-roster-item,.student-roster-controls{grid-template-columns:1fr}}:root[data-theme=dark] .student-class-button.active{background:#163127;border-color:#2dd4bf}:root[data-theme=dark] .teacher-student-submit-bar{background:#0f172aeb;border-color:var(--border-strong)}.planning-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:20px;align-items:start}.planning-status-card{display:grid;gap:16px}.planning-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--primary-soft, #eef2ff)}.planning-delivered,.planning-missing{display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:700}.planning-delivered{color:#15803d}.planning-missing{color:#b45309}.planning-upload-card{display:grid;gap:14px}.planning-upload-card h3{display:flex;align-items:center;gap:8px}.planning-upload-card label{display:grid;gap:7px;font-weight:700}.planning-upload-card input,.planning-upload-card textarea,.planning-filters input,.planning-filters select{width:100%}.planning-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.metric-card strong{font-size:28px}.metric-card.success{border-left:4px solid #16a34a}.metric-card.warning{border-left:4px solid #f59e0b}.planning-filters{display:grid;grid-template-columns:1fr 190px;gap:12px;margin-bottom:16px}.planning-table-card td small{display:block;color:var(--text-muted, #64748b);margin-top:3px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-weight:700;font-size:12px}.status-pill.delivered{background:#dcfce7;color:#166534}.status-pill.missing{background:#fef3c7;color:#92400e}.empty-cell{text-align:center;padding:28px!important}.form-message{padding:10px 12px;border-radius:10px;background:var(--surface-soft, #f8fafc)}.form-message.error{color:#b91c1c}@media(max-width:900px){.planning-grid,.planning-summary,.planning-filters{grid-template-columns:1fr}}@media(min-width:601px)and (max-width:1180px){.app-shell .sidebar.tablet-sidebar{position:fixed!important;inset:0 auto 0 0;width:min(340px,86vw)!important;transform:translate(-105%)!important;z-index:1200!important;box-shadow:18px 0 45px #0f172a38;transition:transform .24s ease}.app-shell .sidebar.tablet-sidebar.open{transform:translate(0)!important}.app-shell .sidebar-backdrop.open{display:block!important;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;z-index:1190}.app-shell .main{margin-left:0!important;width:100%!important}.app-shell .mobile-only{display:grid!important}}body.sidebar-overlay-open{overflow:hidden}.sidebar-close-button{position:relative;z-index:8;pointer-events:auto!important;touch-action:manipulation;cursor:pointer}.sidebar-close-button svg{pointer-events:none}.excel-schedule-import{display:grid;gap:16px;align-items:stretch}.excel-import-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.excel-import-heading h3{margin-bottom:6px}.excel-import-heading p{margin:0;max-width:920px;color:var(--muted);line-height:1.55}.excel-format-badge{flex:0 0 auto;padding:7px 11px;border:1px solid #b9dacb;border-radius:999px;background:#eef9f4;color:#0f6b4f;font-size:11px;font-weight:900;letter-spacing:.08em}.excel-import-controls{display:grid;grid-template-columns:minmax(250px,1fr) minmax(270px,.9fr);gap:12px 16px;align-items:center}.excel-import-controls>input[type=file]{min-height:48px;padding:9px 12px;border:1px dashed #9fc6b5;border-radius:13px;background:#f8fcfa}.excel-replace-option{min-height:48px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.excel-replace-option input{width:18px;height:18px;flex:0 0 auto}.excel-replace-option span{display:grid;gap:2px}.excel-replace-option strong{font-size:12px}.excel-replace-option small{color:var(--muted);line-height:1.35}.excel-import-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:9px}.excel-import-actions button{min-height:42px}.excel-import-error{padding:11px 13px;border:1px solid #f1b8b8;border-radius:12px;background:#fff5f5;color:#a52b2b;font-weight:750}.excel-preview-panel{display:grid;gap:14px;padding-top:14px;border-top:1px solid var(--border)}.excel-preview-summary{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr));gap:9px}.excel-preview-summary article{min-width:0;display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.excel-preview-summary article.ready{border-left:4px solid #16a34a}.excel-preview-summary article.warning{border-left:4px solid #f59e0b}.excel-preview-summary span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.excel-preview-summary strong{font-size:24px;line-height:1}.excel-preview-description{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:11px 13px;border-radius:12px;background:#f0f8f4;color:#285d49}.excel-preview-description span{font-size:12px}.excel-teacher-mapping{display:grid;gap:11px;padding:14px;border:1px solid #edcf8f;border-radius:15px;background:#fffaf0}.excel-teacher-mapping h4{margin:0 0 3px}.excel-teacher-mapping p{margin:0;color:#80622b;font-size:12px}.excel-teacher-mapping-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.excel-teacher-mapping-list label{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(210px,1.1fr);align-items:center;gap:10px;padding:10px;border:1px solid #eadbbd;border-radius:12px;background:#fff}.excel-teacher-mapping-list label>span{min-width:0;display:grid;gap:2px}.excel-teacher-mapping-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.excel-teacher-mapping-list small{color:var(--muted);font-size:10px}.excel-teacher-mapping-list select{width:100%;min-width:0}.excel-preview-warnings{display:grid;gap:5px}.excel-preview-warnings span{padding:8px 10px;border-left:3px solid #d59a34;border-radius:7px;background:#fff8e8;color:#795519;font-size:11px}.excel-preview-table{max-height:530px;overflow:auto;border:1px solid var(--border);border-radius:15px}.excel-preview-table table{min-width:1040px}.excel-preview-table th{position:sticky;top:0;z-index:2}.excel-preview-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.excel-import-status{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.excel-import-status.ready{background:#dcfce7;color:#166534}.excel-import-status.duplicate{background:#e2e8f0;color:#475569}.excel-import-status.without_teacher{background:#fef3c7;color:#92400e}.excel-import-status.unmatched_teacher{background:#fee2e2;color:#991b1b}.excel-row-unmatched_teacher{background:#fff8f8}.excel-row-without_teacher{background:#fffcf2}.excel-row-duplicate{opacity:.78}.excel-import-result{display:grid;gap:5px}.excel-import-result span,.excel-import-result small{display:block}@media(max-width:1180px){.excel-preview-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.excel-teacher-mapping-list{grid-template-columns:1fr}}@media(max-width:760px){.excel-import-heading,.excel-preview-description{align-items:stretch;flex-direction:column}.excel-import-controls{grid-template-columns:1fr}.excel-import-actions{grid-column:auto;display:grid;grid-template-columns:1fr}.excel-import-actions>*{width:100%;text-align:center}.excel-preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.excel-teacher-mapping-list label{grid-template-columns:1fr}}:root[data-theme=dark] .excel-format-badge,:root[data-theme=dark] .excel-preview-description{background:#17352b;border-color:#2d5b4b;color:#b8ead6}:root[data-theme=dark] .excel-import-controls>input[type=file],:root[data-theme=dark] .excel-teacher-mapping-list label{background:var(--surface)}:root[data-theme=dark] .excel-teacher-mapping{background:#302816;border-color:#705a28}:root[data-theme=dark] .excel-preview-warnings span{background:#302816;color:#f1d79c}:root[data-theme=dark] .excel-import-error{background:#361d1d;color:#fecaca;border-color:#7f3636}.pwa-install-button.is-ready{background:#073b2d;color:#fff;border-color:#073b2d;box-shadow:0 12px 28px #073b2d38}.pwa-install-button.is-ready:hover{background:#052f24}.pwa-install-button.needs-instructions{cursor:pointer}.pwa-install-floating{display:none}.login-pwa-install{margin:4px 0 14px}.login-pwa-install .install-chip{width:100%!important;min-height:46px;justify-content:center;background:#073b2d;color:#fff;border-color:#073b2d;box-shadow:0 14px 30px #073b2d33}.pwa-install-modal-backdrop{z-index:1500!important}.pwa-install-modal{width:min(520px,calc(100vw - 28px))}.pwa-install-modal-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;margin-bottom:14px;background:#e8f5ef;color:#073b2d}.pwa-install-steps{list-style:none;padding:0;margin:20px 0;display:grid;gap:12px}.pwa-install-steps li{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:16px;background:#f8fafc;line-height:1.45}.pwa-install-steps li>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e8f5ef;color:#073b2d}.pwa-install-note{display:grid;gap:5px}@media(max-width:1180px){.pwa-install-topbar{display:none!important}.pwa-install-floating{display:inline-flex;position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:1080;min-height:48px;padding:0 17px;background:#073b2d;color:#fff;border-color:#ffffff4d;box-shadow:0 18px 42px #073b2d52}body.sidebar-overlay-open .pwa-install-floating{opacity:0;pointer-events:none}}@media(max-width:560px){.pwa-install-floating{left:12px;bottom:12px}.pwa-install-modal{padding:18px;border-radius:22px}}.linked-import-workflow{display:grid;gap:20px;overflow:hidden}.linked-import-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.linked-import-header h2{margin:4px 0 8px}.linked-import-header p{max-width:900px;margin:0;color:var(--muted);line-height:1.55}.linked-import-header code{font-size:.9em}.linked-import-badge{flex:0 0 auto;border-radius:999px;padding:8px 13px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-weight:800}.linked-import-steps{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:16px}.linked-import-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:18px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--surface) 95%,var(--primary) 5%)}.linked-import-step.complete{border-color:color-mix(in srgb,#16a34a 48%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,#16a34a 10%,transparent)}.linked-step-number{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--primary);color:#fff;font-size:1.08rem;font-weight:900}.linked-import-step.complete .linked-step-number{background:#15803d}.linked-step-body h3{margin:3px 0 6px}.linked-step-body>p{margin:0 0 14px;color:var(--muted);line-height:1.5}.linked-step-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.linked-step-controls input[type=file]{flex:1 1 300px;min-width:0}.teacher-roster-preview{display:grid;gap:12px;margin-top:16px}.excel-preview-summary.compact{grid-template-columns:repeat(5,minmax(100px,1fr))}.teacher-roster-table{max-height:350px;overflow:auto}.teacher-roster-table td:first-child{width:60px}.linked-import-success{display:grid;gap:3px;margin-top:14px;padding:13px 15px;border:1px solid color-mix(in srgb,#16a34a 38%,var(--border));border-radius:14px;background:color-mix(in srgb,#16a34a 9%,var(--surface))}.linked-import-success strong,.linked-step-ready,.linked-preview-ok{color:#15803d}.linked-import-success span,.linked-import-success small{color:var(--muted)}.linked-step-ready,.linked-step-pending{display:block;padding:11px 12px;border-radius:12px;font-weight:700}.linked-step-ready{background:color-mix(in srgb,#16a34a 9%,var(--surface))}.linked-step-pending{color:#a16207;background:color-mix(in srgb,#f59e0b 12%,var(--surface))}.linked-required-option{border-color:color-mix(in srgb,var(--primary) 28%,var(--border))}.linked-preview-ok{display:block;margin-top:5px;font-weight:800}.excel-import-status.insert,.excel-import-status.update{background:color-mix(in srgb,#16a34a 13%,var(--surface));color:#15803d}.excel-import-status.invalid,.excel-import-status.duplicate_file,.excel-import-status.ambiguous{background:color-mix(in srgb,#f59e0b 15%,var(--surface));color:#a16207}@media(max-width:980px){.linked-import-steps{grid-template-columns:1fr}.excel-preview-summary.compact{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media(max-width:640px){.linked-import-header{flex-direction:column}.linked-import-step{grid-template-columns:1fr}.linked-step-controls{align-items:stretch}.linked-step-controls button,.linked-step-controls input[type=file]{width:100%}}.attendance-tablet-hint{border-color:#bfd8fb;background:linear-gradient(135deg,#eef6ff,#f7fbff);color:#174a87}.signature-modal{width:min(92vw,960px);max-width:960px}.signature-modal-layout,.signature-modal-info,.signature-modal-pad{display:grid;gap:14px}.signature-modal-info{align-content:start}.signature-context{margin-top:-2px}.signature-activity-box{display:grid;gap:6px;padding:12px 14px;border:1px solid #dbe8e2;border-radius:14px;background:#f7fbf9}.signature-activity-box strong{color:#124b3a;font-size:12px;letter-spacing:.03em;text-transform:uppercase}.signature-activity-box p{margin:0;color:#34564a;font-size:14px;line-height:1.45}.signature-helper-text{color:#60756c;font-size:13px;line-height:1.45}.signature-canvas{min-height:280px;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.signature-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.signature-actions button{min-height:48px;font-size:15px}.signature-actions button:disabled{opacity:.6;cursor:not-allowed}.signature-modal-tablet{width:min(94vw,1500px);max-width:1500px}.signature-modal-tablet .signature-modal-layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr);align-items:start;gap:18px}.signature-modal-tablet .signature-canvas{min-height:470px;height:58vh}.signature-modal-tablet .signature-actions button{min-height:56px;font-size:16px}@media(pointer:coarse)and (orientation:landscape)and (min-width:1181px){.attendance-page.tablet-landscape .page-title{margin-bottom:10px}.attendance-page.tablet-landscape .attendance-filter-panel{grid-template-columns:minmax(320px,1.35fr) repeat(2,minmax(180px,.7fr)) auto;align-items:center;gap:10px}.attendance-page.tablet-landscape .attendance-filter-actions{grid-template-columns:repeat(3,minmax(108px,1fr))}.attendance-page.tablet-landscape .attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-page.tablet-landscape .attendance-summary .card{min-height:88px;padding:14px 15px}.attendance-page.tablet-landscape .attendance-table-wrap{max-height:72vh}.attendance-page.tablet-landscape .attendance-history-wrap{max-height:50vh}.attendance-page.tablet-landscape .attendance-table{min-width:1320px}.attendance-page.tablet-landscape .attendance-table .attendance-col-time{width:102px}.attendance-page.tablet-landscape .attendance-table .attendance-col-teacher{width:175px}.attendance-page.tablet-landscape .attendance-table .attendance-col-class{width:180px}.attendance-page.tablet-landscape .attendance-table .attendance-col-location{width:138px}.attendance-page.tablet-landscape .attendance-table .attendance-col-responsible{width:190px}.attendance-page.tablet-landscape .attendance-table .attendance-col-status{width:162px}.attendance-page.tablet-landscape .attendance-table .attendance-col-note{width:150px}.attendance-page.tablet-landscape .attendance-table .attendance-col-check{width:132px}.attendance-page.tablet-landscape .attendance-table .attendance-col-evidence{width:188px}.attendance-page.tablet-landscape .attendance-table .attendance-col-validation{width:172px}.attendance-page.tablet-landscape .attendance-table th,.attendance-page.tablet-landscape .attendance-table td{padding:10px 9px}.attendance-page.tablet-landscape .attendance-cell-stack>strong{font-size:13px}.attendance-page.tablet-landscape .attendance-cell-stack small,.attendance-page.tablet-landscape .attendance-table td>small{font-size:10.5px}.attendance-page.tablet-landscape .attendance-responsible-cell .coordinator-select select,.attendance-page.tablet-landscape .attendance-note-cell .attendance-note{min-height:42px;font-size:11.5px}.attendance-page.tablet-landscape .attendance-check-actions{grid-template-columns:repeat(2,48px);gap:8px}.attendance-page.tablet-landscape .attendance-check-cell .check-button{width:48px;height:48px;border-radius:13px;font-size:24px}.attendance-page.tablet-landscape .attendance-evidence-cell .phase36-actions{grid-template-columns:repeat(2,minmax(78px,1fr));gap:6px}.attendance-page.tablet-landscape .attendance-evidence-cell .phase36-actions .mini,.attendance-page.tablet-landscape .attendance-validation-actions .mini{min-height:36px;font-size:10.5px}.attendance-page.tablet-landscape .attendance-table thead th:first-child,.attendance-page.tablet-landscape .attendance-table tbody td:first-child{position:sticky;left:0;z-index:2}.attendance-page.tablet-landscape .attendance-table thead th:first-child{z-index:9;background:#edf5f1}.attendance-page.tablet-landscape .attendance-table tbody tr:nth-child(odd) td:first-child{background:#fff}.attendance-page.tablet-landscape .attendance-table tbody tr:nth-child(2n) td:first-child{background:#fbfdfc}.attendance-page.tablet-landscape .class-activity-modal{width:min(92vw,980px);max-width:980px}.attendance-page.tablet-landscape .class-activity-textarea{min-height:220px}}.user-avatar.has-photo{padding:0;overflow:hidden;background:#e8f2ed}.user-avatar.has-photo img{width:100%;height:100%;display:block;object-fit:cover}.teacher-profile-avatar img,.teacher-doc-photo-preview img,.profile-photo,.avatar,.teacher-preview{object-position:center}.pdf-general-import-panel{display:grid;gap:15px;border-color:#0a634547;background:linear-gradient(180deg,#e8f7f09e,#fff0 180px),var(--surface)}.pdf-import-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.pdf-import-heading h3{margin:0 0 5px}.pdf-import-heading p{margin:0;max-width:880px;color:var(--muted);line-height:1.5}.pdf-import-heading small{max-width:920px}.pdf-import-controls{grid-template-columns:minmax(240px,1.15fr) repeat(2,minmax(220px,1fr))}.pdf-general-preview .excel-preview-summary{grid-template-columns:repeat(4,minmax(125px,1fr))}.pdf-building-summary{display:flex;flex-wrap:wrap;gap:8px}.pdf-building-summary span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px;border:1px solid #b8daca;border-radius:999px;background:#f4fbf7;color:#285d49;font-size:11px}.pdf-building-summary strong{font-size:11px}.pdf-preview-table{max-height:620px}.pdf-preview-table table{min-width:1260px}.pdf-preview-table td:nth-child(4),.pdf-preview-table td:nth-child(5),.pdf-preview-table td:nth-child(6){min-width:180px}.pdf-preview-table td:nth-child(7){min-width:220px}@media(max-width:1180px){.pdf-import-controls{grid-template-columns:1fr 1fr}.pdf-import-controls>input[type=file]{grid-column:1 / -1}.pdf-general-preview .excel-preview-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.pdf-import-heading{flex-direction:column}.pdf-import-controls{grid-template-columns:1fr}.pdf-import-controls>input[type=file]{grid-column:auto}.pdf-general-preview .excel-preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}:root[data-theme=dark] .pdf-general-import-panel{background:linear-gradient(180deg,#1440316b,#0000 180px),var(--surface)}:root[data-theme=dark] .pdf-building-summary span{border-color:#315b4c;background:#17352b;color:#b8ead6}.weekly-editor-controls{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(220px,1fr) minmax(280px,1.3fr) auto;gap:12px;align-items:end}.weekly-editor-controls label{margin:0}.weekly-editor-controls label>span,.schedule-editor-quick-move label>span{display:block;margin:0 0 7px;color:#36534a;font-size:11px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.weekly-editor-controls :is(input,select){margin:0}.weekly-editor-navigation{display:grid;grid-template-columns:repeat(2,minmax(135px,1fr));gap:8px;min-width:330px}.weekly-editor-navigation button:last-child{grid-column:1 / -1}.weekly-editor-status-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.weekly-editor-status-row span{padding:8px 12px;border:1px solid #d7e5de;border-radius:999px;background:#f5faf7;color:#315146;font-size:11px;font-weight:850}.weekly-editor-feedback{display:grid;gap:3px;margin:0}.weekly-editor-feedback.error{background:#fff2f1;border-color:#efc7c3;color:#8c2d26}.weekly-editor-feedback.success{background:#eef9f3;border-color:#bfe0ce;color:#0c6644}.weekly-group-editor-panel{padding:0;overflow:hidden}.weekly-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;border-bottom:1px solid #dbe7e1;background:linear-gradient(135deg,#f8fcfa,#edf7f2)}.weekly-editor-heading h2{margin:4px 0 2px;color:#073b2d;font-size:25px}.weekly-editor-heading p{margin:0;color:#60776e}.weekly-editor-kpis{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.weekly-editor-kpis span{min-width:105px;padding:10px 13px;border:1px solid #cfe0d8;border-radius:13px;background:#fff;color:#536d63;text-align:center;font-size:11px;font-weight:800}.weekly-editor-kpis strong{display:block;color:#073b2d;font-size:21px}.weekly-editor-help{display:flex;gap:10px;align-items:center;padding:11px 22px;border-bottom:1px solid #dce8e2;background:#073b2d;color:#fff;font-size:12px}.weekly-editor-help strong{white-space:nowrap}.weekly-editor-help span{color:#ffffffc7}.weekly-editor-scroll{max-width:100%;max-height:73vh;overflow:auto;background:#e7efeb;overscroll-behavior:contain}.weekly-editor-grid{--editor-slot-height: 82px;position:relative;display:grid;grid-template-columns:106px repeat(5,minmax(218px,1fr));min-width:1200px;isolation:isolate;background:#fff;border-right:1px solid #c9d8d1;border-bottom:1px solid #c9d8d1}.weekly-editor-corner,.weekly-editor-day-header,.weekly-editor-time,.weekly-editor-cell{border-top:1px solid #c9d8d1;border-left:1px solid #c9d8d1}.weekly-editor-corner{position:sticky;top:0;left:0;z-index:12;display:grid;place-items:center;grid-column:1;grid-row:1;background:#073b2d;color:#fff;font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.weekly-editor-day-header{position:sticky;top:0;z-index:10;display:grid;place-items:center;align-content:center;gap:3px;background:#eaf5ef;color:#073b2d;text-align:center}.weekly-editor-day-header strong{font-size:15px}.weekly-editor-day-header span{color:#6a8178;font-size:10px;font-weight:800}.weekly-editor-time{position:sticky;left:0;z-index:8;display:grid;place-items:center;align-content:center;background:#f5f9f7;color:#26483c;text-align:center}.weekly-editor-time strong{font-size:14px}.weekly-editor-time span{margin-top:2px;color:#82928c;font-size:10px}.weekly-editor-cell{position:relative;z-index:1;min-height:var(--editor-slot-height);background:linear-gradient(180deg,#eff6f294,#ffffffc7),repeating-linear-gradient(135deg,transparent 0 12px,rgba(7,59,45,.018) 12px 24px);transition:background .12s ease,box-shadow .12s ease}.weekly-editor-cell.drop-target{z-index:4;background:#dff6e9;box-shadow:inset 0 0 0 3px #1a8e5f}.weekly-editor-drop-label{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);padding:6px 9px;border-radius:999px;background:#0b6c49;color:#fff;font-size:10px;font-weight:900;white-space:nowrap}.weekly-editor-class{position:relative;z-index:5;align-self:stretch;min-height:0;margin:5px;padding:9px 10px 9px 13px;overflow:hidden;border:1px solid rgba(7,59,45,.2);border-left:6px solid var(--editor-accent, #17835a);border-radius:12px;background:var(--editor-bg, #e9f7ef);box-shadow:0 5px 14px #0e3c2e21;color:#173d31;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .13s ease,box-shadow .13s ease,opacity .13s ease}.weekly-editor-class:hover,.weekly-editor-class:focus-visible{z-index:7;transform:translateY(-1px);outline:none;box-shadow:0 9px 20px #0e3c2e33}.weekly-editor-class:active{cursor:grabbing}.weekly-editor-class.drag-origin{opacity:.34;box-shadow:none}.weekly-editor-class.saving{opacity:.58;pointer-events:none}.weekly-editor-class-time{margin-bottom:4px;color:#47655b;font-size:10px;font-weight:950;letter-spacing:.025em}.weekly-editor-class>strong{display:-webkit-box;overflow:hidden;color:#073b2d;font-size:12px;line-height:1.2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.weekly-editor-class>span,.weekly-editor-class>small{display:block;overflow:hidden;margin-top:4px;text-overflow:ellipsis;white-space:nowrap}.weekly-editor-class>span{color:#2f5045;font-size:10px;font-weight:800}.weekly-editor-class>small{color:#687e76;font-size:9px}.weekly-editor-class>em{position:absolute;inset:auto 7px 6px auto;padding:3px 6px;border-radius:999px;background:#073b2d;color:#fff;font-size:8px;font-style:normal;font-weight:900}.weekly-editor-class.accent-0{--editor-accent: #157c56;--editor-bg: #e4f5ec}.weekly-editor-class.accent-1{--editor-accent: #2874a6;--editor-bg: #e8f3fa}.weekly-editor-class.accent-2{--editor-accent: #8c5c19;--editor-bg: #fbf2df}.weekly-editor-class.accent-3{--editor-accent: #7456a4;--editor-bg: #f1ebfa}.weekly-editor-class.accent-4{--editor-accent: #aa4f42;--editor-bg: #faece9}.weekly-editor-class.accent-5{--editor-accent: #347a79;--editor-bg: #e5f3f2}.weekly-editor-class.accent-6{--editor-accent: #557b2b;--editor-bg: #eef5e5}.weekly-editor-class.accent-7{--editor-accent: #a2537b;--editor-bg: #f8eaf1}.schedule-card-dragging,.schedule-card-dragging *{cursor:grabbing!important}.weekly-editor-drag-ghost{position:fixed;z-index:10050;width:min(260px,45vw);padding:10px 12px;pointer-events:none;border:2px solid #16865b;border-radius:12px;background:#fffffff5;box-shadow:0 14px 34px #073b2d47;color:#073b2d}.weekly-editor-drag-ghost strong,.weekly-editor-drag-ghost span{display:block}.weekly-editor-drag-ghost strong{font-size:12px}.weekly-editor-drag-ghost span{margin-top:3px;color:#5e746c;font-size:10px}.schedule-editor-modal{width:min(650px,calc(100vw - 28px))}.schedule-editor-modal .modal-header p{margin:3px 0 0;color:#647a72}.schedule-editor-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:15px}.schedule-editor-detail-grid>div{padding:12px;border:1px solid #dce7e2;border-radius:12px;background:#f7faf8}.schedule-editor-detail-grid span{display:block;color:#788a83;font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.schedule-editor-detail-grid strong{display:block;margin-top:5px;color:#173d31;font-size:12px}.schedule-editor-quick-move{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-editor-quick-move label,.schedule-editor-quick-move select{margin:0}.schedule-editor-duration-note{margin:12px 0 0;color:#60766e;font-size:11px}:root[data-theme=dark] .weekly-editor-controls,:root[data-theme=dark] .weekly-group-editor-panel,:root[data-theme=dark] .weekly-editor-heading,:root[data-theme=dark] .weekly-editor-grid,:root[data-theme=dark] .schedule-editor-detail-grid>div{background:#13241f;border-color:#2e453c}:root[data-theme=dark] .weekly-editor-heading h2,:root[data-theme=dark] .weekly-editor-kpis strong,:root[data-theme=dark] .weekly-editor-class>strong,:root[data-theme=dark] .schedule-editor-detail-grid strong{color:#d7f0e5}:root[data-theme=dark] .weekly-editor-cell{background:#172b24;border-color:#31473f}:root[data-theme=dark] .weekly-editor-time{background:#10211c;color:#cfe7dc}:root[data-theme=dark] .weekly-editor-day-header{background:#183128;color:#d7f0e5}:root[data-theme=dark] .weekly-editor-class{filter:brightness(.78) saturate(.85)}@media(max-width:1180px){.weekly-editor-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-editor-navigation{min-width:0}}@media(max-width:760px){.weekly-editor-controls,.weekly-editor-navigation{grid-template-columns:1fr}.weekly-editor-navigation button:last-child{grid-column:auto}.weekly-editor-heading{align-items:flex-start;flex-direction:column}.weekly-editor-kpis{width:100%;justify-content:stretch}.weekly-editor-kpis span{flex:1}.weekly-editor-help{align-items:flex-start;flex-direction:column}.schedule-editor-detail-grid,.schedule-editor-quick-move{grid-template-columns:1fr}}@media print{.weekly-group-editor-panel,.weekly-editor-controls,.weekly-editor-status-row,.weekly-editor-feedback{display:none!important}}.schedule-editor-modal{width:min(820px,calc(100vw - 28px));max-height:min(92vh,940px);overflow:auto}.schedule-teacher-change-box{display:grid;gap:12px;margin:16px 0;padding:15px;border:1px solid #cfe0d8;border-radius:15px;background:linear-gradient(145deg,#f5fbf8,#edf7f2)}.schedule-teacher-change-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.schedule-teacher-change-heading strong{display:block;margin-top:3px;color:#143d30;font-size:13px}.schedule-teacher-current{padding:7px 10px;border-radius:999px;background:#fff;color:#48675c;font-size:10px;font-weight:850}.schedule-teacher-change-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.schedule-teacher-change-controls label{margin:0}.schedule-teacher-change-controls label>span{display:block;margin-bottom:6px;color:#36534a;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.schedule-teacher-change-controls select{margin:0}.schedule-teacher-analysis{display:grid;gap:9px;padding:12px;border:1px solid;border-radius:12px}.schedule-teacher-analysis>strong{font-size:13px}.schedule-teacher-analysis>span,.schedule-teacher-analysis>small{font-size:11px;line-height:1.45}.schedule-teacher-analysis.available{border-color:#a7d8bd;background:#eaf8f0;color:#0d6443}.schedule-teacher-analysis.conflict,.schedule-teacher-analysis.error{border-color:#efc3bd;background:#fff0ee;color:#8a3028}.schedule-teacher-conflicts{display:grid;gap:7px}.schedule-teacher-conflicts>div{padding:9px 10px;border:1px solid rgba(139,48,40,.18);border-radius:10px;background:#ffffffb8}.schedule-teacher-conflicts strong,.schedule-teacher-conflicts span{display:block}.schedule-teacher-conflicts strong{font-size:11px}.schedule-teacher-conflicts span{margin-top:3px;font-size:10px}.schedule-teacher-suggestions{display:grid;gap:8px}.schedule-teacher-suggestions>span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.schedule-teacher-suggestions>div{display:flex;flex-wrap:wrap;gap:7px}.schedule-teacher-suggestions button{min-height:38px;padding:8px 10px;font-size:10px}:root[data-theme=dark] .schedule-teacher-change-box{background:#142921;border-color:#345246}:root[data-theme=dark] .schedule-teacher-change-heading strong{color:#d7f0e5}:root[data-theme=dark] .schedule-teacher-current{background:#203a31;color:#c2ded3}:root[data-theme=dark] .schedule-teacher-analysis.available{background:#123326;border-color:#2d6d52;color:#bce8d3}:root[data-theme=dark] .schedule-teacher-analysis.conflict,:root[data-theme=dark] .schedule-teacher-analysis.error{background:#3b201e;border-color:#70403a;color:#f0c4be}@media(max-width:760px){.schedule-teacher-change-heading{align-items:flex-start;flex-direction:column}.schedule-teacher-change-controls{grid-template-columns:1fr}.schedule-teacher-change-controls button{width:100%}}.schedule-proposal-controls{display:grid;grid-template-columns:minmax(250px,1.35fr) minmax(140px,.7fr) minmax(160px,.75fr) auto;gap:10px;align-items:end}.schedule-proposal-controls label{margin:0}.schedule-proposal-controls label>span,.schedule-conflict-picker>span{display:block;margin-bottom:6px;color:#36534a;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.schedule-proposal-controls :is(select,input),.schedule-conflict-picker select{margin:0}.schedule-conflict-alert-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.schedule-conflict-alert-heading>div{display:grid;gap:4px}.schedule-conflict-alert-heading strong{font-size:13px}.schedule-conflict-alert-heading span{font-size:11px;line-height:1.45}.schedule-teacher-conflicts.detailed article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(139,48,40,.2);border-radius:11px;background:#ffffffc7}.schedule-teacher-conflicts.detailed article>div{min-width:0}.schedule-teacher-conflicts.detailed article strong,.schedule-teacher-conflicts.detailed article span{display:block}.schedule-teacher-conflicts.detailed article strong{font-size:11px;line-height:1.45}.schedule-teacher-conflicts.detailed article span{margin-top:4px;font-size:10px}.schedule-teacher-conflicts.detailed article button{white-space:nowrap}.schedule-conflict-actions{display:flex;flex-wrap:wrap;gap:8px}.schedule-conflict-resolution-backdrop{z-index:12000}.schedule-conflict-resolution-modal{width:min(760px,calc(100vw - 28px));max-height:min(92vh,920px);overflow:auto}.schedule-conflict-resolution-modal .modal-header p{max-width:650px;margin-top:5px;color:#60766e}.schedule-conflict-picker{display:block;margin:0 0 14px}.schedule-resolution-loading,.schedule-resolution-empty{display:grid;gap:4px;padding:14px;border:1px solid #d7e4de;border-radius:13px;background:#f6faf8;color:#36534a}.schedule-resolution-loading span,.schedule-resolution-empty span{font-size:11px}.schedule-resolution-content{display:grid;gap:14px}.schedule-resolution-target{padding:14px;border:1px solid #efc3bd;border-radius:13px;background:#fff4f2;color:#7f2d27}.schedule-resolution-target>span{display:block;margin-bottom:5px;font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.schedule-resolution-target strong{display:block;font-size:15px}.schedule-resolution-target p{margin:5px 0 2px;font-size:12px}.schedule-resolution-target small{font-size:10px}.schedule-resolution-options{display:grid;gap:8px}.schedule-resolution-options>span{color:#36534a;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.schedule-resolution-options button{display:grid;gap:4px;width:100%;min-height:58px;padding:11px 13px;text-align:left}.schedule-resolution-options button strong{font-size:12px}.schedule-resolution-options button small{color:#ffffffc7;font-size:10px}:root[data-theme=dark] .schedule-proposal-controls label>span,:root[data-theme=dark] .schedule-conflict-picker>span,:root[data-theme=dark] .schedule-resolution-options>span{color:#bfd8ce}:root[data-theme=dark] .schedule-teacher-conflicts.detailed article{background:#442622;border-color:#70413a}:root[data-theme=dark] .schedule-resolution-loading,:root[data-theme=dark] .schedule-resolution-empty{background:#172b24;border-color:#365247;color:#cbe1d8}:root[data-theme=dark] .schedule-resolution-target{background:#3b201e;border-color:#70403a;color:#f0c4be}@media(max-width:980px){.schedule-proposal-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-proposal-controls>button{width:100%}}@media(max-width:620px){.schedule-proposal-controls{grid-template-columns:1fr}.schedule-conflict-alert-heading{align-items:stretch;flex-direction:column}.schedule-conflict-alert-heading>button{width:100%}.schedule-teacher-conflicts.detailed article{grid-template-columns:1fr}.schedule-teacher-conflicts.detailed article button{width:100%}.schedule-conflict-actions{display:grid;grid-template-columns:1fr}}.schedule-drop-conflict-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin:0 0 14px;padding:14px 15px;border:1px solid #e8a59c;border-left:6px solid #c94d3f;border-radius:14px;background:linear-gradient(135deg,#fff2ef,#fff8f6);box-shadow:0 8px 20px #8b302817;color:#7f2d27}.schedule-drop-conflict-banner>div{display:grid;gap:4px;min-width:0}.schedule-drop-conflict-banner span{font-size:9px;font-weight:950;letter-spacing:.075em;text-transform:uppercase}.schedule-drop-conflict-banner strong{font-size:14px}.schedule-drop-conflict-banner p{margin:0;font-size:11px;line-height:1.45}.schedule-drop-conflict-banner button{min-height:42px;white-space:nowrap}:root[data-theme=dark] .schedule-drop-conflict-banner{border-color:#80483f;border-left-color:#e77b6d;background:linear-gradient(135deg,#3b201e,#321d1b);color:#f0c4be}@media(max-width:620px){.schedule-drop-conflict-banner{grid-template-columns:1fr}.schedule-drop-conflict-banner button{width:100%}}.weekly-editor-overlap-kpi{border-color:#efbf7c!important;background:#fff7e8!important;color:#805117!important}.weekly-editor-empty-hint{margin:0;border:0;border-bottom:1px solid #dce8e2;border-radius:0;background:#f8fbf9}.weekly-editor-cell.free-cell{background:linear-gradient(180deg,#eff6f275,#ffffffdb),repeating-linear-gradient(135deg,transparent 0 12px,rgba(7,59,45,.014) 12px 24px)}.weekly-editor-cell.occupied-cell{background:linear-gradient(180deg,#e5efeacc,#f6faf8db)}.weekly-editor-cell.drop-target.free-target{background:#dff6e9;box-shadow:inset 0 0 0 3px #1a8e5f}.weekly-editor-cell.drop-target.occupied-target{background:#fff1dd;box-shadow:inset 0 0 0 3px #d98a24}.weekly-editor-add-slot{position:absolute;top:4px;right:4px;bottom:4px;left:4px;z-index:3;display:grid;place-items:center;align-content:center;gap:1px;min-width:0;min-height:0;padding:0;border:1px dashed transparent;border-radius:10px;background:transparent;color:#37725e;opacity:.48;box-shadow:none;cursor:pointer;transition:opacity .14s ease,border-color .14s ease,background .14s ease,transform .14s ease}.weekly-editor-add-slot:hover,.weekly-editor-add-slot:focus-visible{opacity:1;border-color:#66a68e;background:#e2f6ede0;color:#075d40;outline:none;transform:scale(.98);box-shadow:none}.weekly-editor-add-slot>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid currentColor;border-radius:50%;font-size:20px;font-weight:500;line-height:1}.weekly-editor-add-slot>small{font-size:8px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.weekly-editor-drop-label.occupied{background:#a95e0c}.weekly-editor-class.has-overlap{z-index:6;justify-self:start;min-width:0;padding-right:7px;border-width:1px;border-left-width:5px;box-shadow:0 6px 15px #0e3c2e2e}.weekly-editor-class.has-overlap:hover,.weekly-editor-class.has-overlap:focus-visible{z-index:9}.weekly-editor-class.has-overlap>strong{font-size:11px}.weekly-editor-class.has-overlap>span,.weekly-editor-class.has-overlap>small{font-size:8px}.weekly-editor-class>.weekly-editor-overlap-badge{display:inline-flex;width:fit-content;max-width:100%;margin:0 0 4px;padding:2px 5px;overflow:hidden;border-radius:999px;background:#89480a1f;color:#824b13;font-size:7px;font-weight:950;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase}:root[data-theme=dark] .weekly-editor-overlap-kpi{border-color:#75582d!important;background:#392b18!important;color:#f4cb8e!important}:root[data-theme=dark] .weekly-editor-empty-hint{background:#13241f;border-color:#31473f}:root[data-theme=dark] .weekly-editor-cell.free-cell{background:#172b24}:root[data-theme=dark] .weekly-editor-cell.occupied-cell{background:#1d312a}:root[data-theme=dark] .weekly-editor-add-slot{color:#79bda3}:root[data-theme=dark] .weekly-editor-add-slot:hover,:root[data-theme=dark] .weekly-editor-add-slot:focus-visible{background:#1e4d3ce6;color:#b8ead6}:root[data-theme=dark] .weekly-editor-class>.weekly-editor-overlap-badge{background:#ffb95b2e;color:#ffd095}@media(max-width:760px){.weekly-editor-add-slot>small{display:none}.weekly-editor-class.has-overlap{padding:7px 5px}.weekly-editor-class.has-overlap>small{display:none}}.schedule-quick-create-backdrop{z-index:12500}.schedule-quick-create-modal{width:min(920px,calc(100vw - 28px));max-height:min(94vh,980px);overflow:auto}.schedule-quick-create-header{padding-right:48px}.schedule-quick-create-header p{margin:5px 0 0;color:#60766e;font-size:12px;line-height:1.5}.schedule-quick-create-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.schedule-quick-create-summary>div{display:grid;gap:4px;min-width:0;padding:12px 14px;border:1px solid #d6e5de;border-radius:13px;background:#f5faf7}.schedule-quick-create-summary span,.schedule-quick-create-form label>span{color:#526d62;font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.schedule-quick-create-summary strong{overflow:hidden;color:#173f32;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.schedule-quick-create-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-quick-create-form label{display:grid;gap:6px;min-width:0;margin:0}.schedule-quick-create-form :is(input,select){margin:0}.schedule-quick-create-form :is(input,select):disabled{border-color:#d9e5df;background:#edf4f0;color:#536b61;cursor:not-allowed;opacity:1}.schedule-quick-create-subject{grid-column:1 / -1}.schedule-quick-create-quantity{grid-column:1 / -1;padding:12px 14px;border:1px solid #d6e5de;border-radius:13px;background:#f8fbf9}.schedule-quick-create-quantity input{width:min(180px,100%);font-weight:800}.schedule-quick-create-quantity small{color:#60766e;font-size:11px;line-height:1.45}.schedule-quick-create-error{grid-column:1 / -1;display:grid;gap:4px;padding:12px 14px;border:1px solid #efc3bd;border-radius:12px;background:#fff0ee;color:#8a3028}.schedule-quick-create-error strong{font-size:12px}.schedule-quick-create-error span{font-size:11px;line-height:1.45}.schedule-quick-create-actions{grid-column:1 / -1;margin-top:4px}:root[data-theme=dark] .schedule-quick-create-header p{color:#9eb9ae}:root[data-theme=dark] .schedule-quick-create-summary>div{border-color:#345046;background:#142820}:root[data-theme=dark] .schedule-quick-create-summary span,:root[data-theme=dark] .schedule-quick-create-form label>span{color:#9eb9ae}:root[data-theme=dark] .schedule-quick-create-summary strong{color:#d7f0e5}:root[data-theme=dark] .schedule-quick-create-form :is(input,select):disabled{border-color:#334b42;background:#182d25;color:#9fb7ad}:root[data-theme=dark] .schedule-quick-create-quantity{border-color:#345046;background:#142820}:root[data-theme=dark] .schedule-quick-create-quantity small{color:#9eb9ae}:root[data-theme=dark] .schedule-quick-create-error{border-color:#70403a;background:#3b201e;color:#f0c4be}@media(max-width:720px){.schedule-quick-create-summary,.schedule-quick-create-form{grid-template-columns:1fr}.schedule-quick-create-subject,.schedule-quick-create-quantity,.schedule-quick-create-error,.schedule-quick-create-actions{grid-column:1}.schedule-quick-create-actions{display:grid;grid-template-columns:1fr}.schedule-quick-create-actions button{width:100%}}.planning-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.planning-form-actions .button{min-height:42px}.planning-delete-button{background:#fff7f7;border-color:#fecaca;color:#b42318}.planning-delete-button:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.planning-admin-header{align-items:center;gap:16px}.planning-history-button{flex:0 0 auto}.status-pill.file-missing{background:#fff7ed;color:#9a3412}.planning-history-modal{width:min(1180px,94vw);max-height:88vh;display:grid;gap:16px;overflow:hidden}.planning-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-right:42px}.planning-history-heading h2,.planning-history-heading p{margin-bottom:4px}.planning-history-count{flex:0 0 auto;padding:7px 11px;border-radius:999px;background:#eef6f2;color:#225b47;font-size:11px;font-weight:850}.planning-history-table-wrap{max-height:66vh;overflow:auto;border:1px solid var(--border);border-radius:14px}.planning-history-table{min-width:980px}.planning-history-table thead th{position:sticky;top:0;z-index:2}.planning-history-table td small{display:block;margin-top:3px;color:var(--muted)}.planning-history-table a{display:inline-flex;align-items:center;gap:5px}.planning-action-pill{display:inline-flex;align-items:center;justify-content:center;min-width:104px;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.035em}.planning-action-pill.action-subida{background:#dcfce7;color:#166534}.planning-action-pill.action-modificacion{background:#dbeafe;color:#1d4ed8}.planning-action-pill.action-eliminacion{background:#fee2e2;color:#991b1b}@media(max-width:760px){.planning-admin-header,.planning-history-heading{align-items:stretch;flex-direction:column}.planning-history-button,.planning-form-actions .button{width:100%;justify-content:center}.planning-history-count{width:fit-content}}:root[data-theme=dark] .planning-delete-button{background:#351b1b;border-color:#743b3b;color:#fecaca}:root[data-theme=dark] .planning-history-count{background:#17352b;color:#b8ead6}.floor-profile-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:10px;margin:16px 0}.floor-profile-card{min-height:110px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);text-align:left}.floor-profile-card:hover{border-color:#86a98f;transform:translateY(-1px)}.floor-profile-card.active{border-color:#166534;background:linear-gradient(145deg,#f0fdf4,#ecfdf5);box-shadow:0 0 0 2px #1665341f,var(--shadow-sm)}.floor-profile-card strong{font-size:17px;line-height:1.1}.floor-profile-card small{color:var(--muted);line-height:1.35}.floor-profile-block{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.floor-profile-card.active .floor-profile-block{background:#166534;color:#fff}.floor-profile-detail{margin-bottom:16px;overflow:hidden}.floor-profile-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}.floor-profile-detail-head h2{margin:3px 0 4px}.floor-profile-detail-head p{margin:0;color:var(--muted)}.floor-profile-detail-head button{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.floor-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:10px;padding-top:14px}.floor-room-card{position:relative;display:flex;flex-direction:column;gap:7px;min-height:145px;padding:14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,#f8fafc)}.floor-room-card>div{display:flex;align-items:center;gap:8px}.floor-room-card>div svg{color:#166534;flex:0 0 auto}.floor-room-card p{flex:1;margin:0;color:var(--muted);font-size:13px}.floor-room-card small{color:var(--muted)}.floor-room-card button{width:fit-content;display:inline-flex;align-items:center;gap:5px}.floor-room-empty{grid-column:1 / -1;min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px dashed var(--border);border-radius:14px;color:var(--muted);text-align:center}.floor-profile-derived-location{display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid #bbd7c4;border-radius:11px;background:#f0fdf4;color:#166534;font-weight:800}.field-help{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.4}@media(max-width:1320px){.floor-profile-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}}@media(max-width:760px){.floor-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.floor-profile-card{min-height:100px;padding:13px}.floor-profile-detail-head{flex-direction:column}.floor-profile-detail-head button{width:100%;justify-content:center}}@media(max-width:430px){.floor-profile-grid{grid-template-columns:1fr}}:root[data-theme=dark] .floor-profile-card.active{background:linear-gradient(145deg,#11291b,#11251d);border-color:#4d8a61}:root[data-theme=dark] .floor-profile-block{background:#293647;color:#cbd5e1}:root[data-theme=dark] .floor-profile-card.active .floor-profile-block{background:#2f7a4d;color:#fff}:root[data-theme=dark] .floor-profile-derived-location{background:#11291b;border-color:#315f40;color:#9fddb2}.floor-container-pill{display:inline-flex;margin-top:6px;width:fit-content}.schedule-title-actions{display:flex;align-items:center;gap:10px}.schedule-replace-trigger{min-height:44px;padding-inline:18px;border:1px solid #b42318;background:#b42318;color:#fff;box-shadow:0 10px 24px #b423182e}.schedule-replace-trigger:hover{background:#912018;border-color:#912018}.schedule-replacement-backdrop{z-index:1450!important}.schedule-replacement-modal{width:min(1240px,calc(100vw - 30px));max-height:min(94vh,1040px);overflow:auto;padding:24px}.schedule-replacement-header{padding-right:42px}.schedule-replacement-header p{max-width:800px;margin:4px 0 0;color:var(--muted)}.schedule-replacement-badge{flex:0 0 auto;padding:8px 12px;border:1px solid #f0b4ad;border-radius:999px;background:#fff1f0;color:#9f2118;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.schedule-replacement-file-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(360px,1.25fr);gap:14px;margin-bottom:13px}.schedule-replacement-file-grid label{display:grid;gap:7px;margin:0}.schedule-replacement-file-grid label>span{font-size:12px;font-weight:850}.schedule-replacement-file-grid select,.schedule-replacement-file-grid input[type=file]{min-height:48px}.schedule-replacement-file-picker{padding:12px;border:1px dashed #d59b95;border-radius:15px;background:snow}.schedule-replacement-file-picker input{width:100%}.schedule-replacement-file-picker small{color:var(--muted)}.schedule-replacement-safety-note{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:14px;border:1px solid #edc470;border-radius:14px;background:#fff9e9;color:#6e5017}.schedule-replacement-safety-note strong{flex:0 0 auto}.schedule-replacement-safety-note span{line-height:1.45}.schedule-replacement-error{margin-bottom:14px}.schedule-replacement-mapping{margin-bottom:15px}.schedule-replacement-preview{display:grid;gap:14px}.schedule-replacement-summary{grid-template-columns:repeat(4,minmax(125px,1fr))}.excel-preview-summary article.error{border-left:4px solid #dc2626;background:#fff7f7}.schedule-replacement-verdict{display:grid;gap:4px;padding:13px 15px;border-radius:14px;border:1px solid}.schedule-replacement-verdict.ready{border-color:#86d3aa;background:#effbf4;color:#17603f}.schedule-replacement-verdict.blocked{border-color:#efaaa4;background:#fff3f2;color:#8f2018}.schedule-replacement-verdict span{line-height:1.45}.schedule-replacement-issues{display:grid;gap:8px;max-height:320px;overflow:auto;padding:13px;border:1px solid #efaaa4;border-radius:15px;background:snow}.schedule-replacement-section-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.schedule-replacement-section-title span{color:#9f2118;font-size:11px;font-weight:800}.schedule-replacement-issues article{display:flex;justify-content:space-between;gap:14px;padding:10px 11px;border-left:3px solid #dc2626;border-radius:9px;background:#fff}.schedule-replacement-issues article>div{display:grid;gap:3px}.schedule-replacement-issues article span{color:#74453f;font-size:11px;line-height:1.4}.schedule-replacement-issues article small{flex:0 0 auto;color:#8f2018;font-weight:800}.schedule-replacement-more-issues{color:#8f2018;font-weight:800}.schedule-replacement-table{max-height:440px}.schedule-replacement-table table{min-width:1320px}.schedule-replacement-table td:last-child{min-width:300px;color:#7c3029;font-size:11px;line-height:1.4}.schedule-replacement-confirmation{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid #d69b96;border-radius:14px;background:#fff8f7}.schedule-replacement-confirmation input{width:19px;height:19px;flex:0 0 auto;margin-top:2px}.schedule-replacement-confirmation span{display:grid;gap:3px}.schedule-replacement-confirmation small{color:#704943;line-height:1.45}.schedule-replacement-actions{position:sticky;bottom:-24px;z-index:4;justify-content:flex-end;margin:18px -24px -24px;padding:14px 24px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.schedule-replacement-apply{min-width:230px}.schedule-replacement-success{display:grid;justify-items:center;gap:12px;padding:38px 20px 24px;text-align:center}.schedule-replacement-success-icon{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:#dcfce7;color:#166534;font-size:34px;font-weight:900}.schedule-replacement-success h3{font-size:25px}.schedule-replacement-success p{max-width:740px;margin:0;color:var(--muted)}.schedule-replacement-success>div:not(.schedule-replacement-success-icon){display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.schedule-replacement-success>div:not(.schedule-replacement-success-icon) span{display:grid;gap:3px;min-width:180px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.schedule-replacement-success span strong{font-size:23px}:root[data-theme=dark] .schedule-replacement-badge,:root[data-theme=dark] .schedule-replacement-file-picker,:root[data-theme=dark] .schedule-replacement-confirmation,:root[data-theme=dark] .schedule-replacement-issues{background:#351d1c;border-color:#74403b;color:#ffd2ce}:root[data-theme=dark] .schedule-replacement-safety-note{background:#302816;border-color:#705a28;color:#f1d79c}:root[data-theme=dark] .schedule-replacement-verdict.ready{background:#17352b;border-color:#315b4c;color:#b8ead6}:root[data-theme=dark] .schedule-replacement-verdict.blocked,:root[data-theme=dark] .excel-preview-summary article.error{background:#361d1d;border-color:#7f3636;color:#fecaca}:root[data-theme=dark] .schedule-replacement-issues article{background:var(--surface)}@media(max-width:900px){.schedule-replacement-file-grid{grid-template-columns:1fr}.schedule-replacement-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-replacement-header{flex-direction:column}.schedule-replacement-safety-note,.schedule-replacement-issues article,.schedule-replacement-section-title{align-items:flex-start;flex-direction:column}}@media(max-width:680px){.plain-title-header{align-items:stretch}.schedule-title-actions,.schedule-replace-trigger{width:100%}.schedule-replacement-backdrop{padding:0!important;place-items:end center!important}.schedule-replacement-modal{width:100%;max-height:96vh;border-radius:22px 22px 0 0;padding:17px}.schedule-replacement-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-replacement-actions{display:grid;margin:16px -17px -17px;padding:12px 17px;bottom:-17px}.schedule-replacement-actions button{width:100%}}.attendance-professor-current-panel{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:14px;align-items:end;margin:12px 0;padding:14px;border-radius:18px}.attendance-professor-current-search{display:grid;gap:7px}.attendance-professor-current-search .teacher-search-box{min-height:48px;background:var(--surface-solid)}.attendance-professor-current-search>small{color:var(--muted);line-height:1.4}.attendance-professor-clear{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);color:var(--muted);box-shadow:none}.attendance-professor-clear:hover{transform:none;background:var(--accent-soft);color:var(--text);box-shadow:none}.attendance-current-time-card{min-width:132px;min-height:74px;display:grid;place-items:center;align-content:center;gap:2px;padding:10px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft);text-align:center}.attendance-current-time-card span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.attendance-current-time-card strong{font-size:24px;line-height:1}.attendance-no-current-class{margin-bottom:12px}@media(max-width:700px){.attendance-professor-current-panel{grid-template-columns:1fr;align-items:stretch}.attendance-current-time-card{min-height:60px}}.sidebar-backdrop{padding:0;border:0;border-radius:0;box-shadow:none;cursor:default}@media(max-width:760px){.app-shell .sidebar.tablet-sidebar.is-overlay{top:0!important;right:auto!important;bottom:0!important;left:0!important;width:min(330px,88vw)!important;max-width:88vw!important;height:100dvh!important;padding:max(14px,env(safe-area-inset-top,0px)) 14px max(14px,env(safe-area-inset-bottom,0px))!important;border-radius:0!important;transform:translate(-105%)!important;overflow:hidden!important;z-index:1200!important}.app-shell .sidebar.tablet-sidebar.is-overlay.open{transform:translate(0)!important}.app-shell .sidebar.tablet-sidebar.is-overlay .brand{display:flex!important;min-height:64px;padding-right:52px}.app-shell .sidebar.tablet-sidebar.is-overlay .sidebar-close-button{position:absolute;top:max(14px,env(safe-area-inset-top,0px));right:12px;z-index:1300;display:grid!important;width:44px;height:44px;min-width:44px;padding:0;border:1px solid rgba(7,59,45,.2);border-radius:14px;background:#073b2d;color:#fff;box-shadow:0 8px 20px #073b2d33;touch-action:manipulation}.app-shell .sidebar.tablet-sidebar.is-overlay .sidebar-menu{min-height:0;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.sidebar-toggle-button{touch-action:manipulation}}.planning-cadence-status{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}.planning-cadence-status>div{display:grid;gap:3px}.planning-cadence-status span{color:var(--muted);font-size:12px;line-height:1.45}.planning-cadence-status.current{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.planning-cadence-status.overdue{border-color:#fecaca;background:#fff1f2;color:#991b1b}.planning-cadence-status.pending{border-color:#fde68a;background:#fffbeb;color:#92400e}.planning-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card.danger{border-left:4px solid #dc2626}.status-pill.overdue{background:#fee2e2;color:#991b1b}.status-pill.current{background:#dcfce7;color:#166534}.action-timestamp,.window-hint{display:block;margin-top:5px;text-align:center;font-size:10px;line-height:1.25;font-weight:850;white-space:nowrap}.action-timestamp{color:#075d45;font-variant-numeric:tabular-nums}.window-hint{color:#b45309}.attendance-evidence-cell .action-timestamp{text-align:left}:root[data-theme=dark] .planning-cadence-status.current{background:#1665342e;border-color:#4ade8066;color:#bbf7d0}:root[data-theme=dark] .planning-cadence-status.overdue{background:#991b1b33;border-color:#f8717166;color:#fecaca}:root[data-theme=dark] .planning-cadence-status.pending{background:#92400e33;border-color:#fbbf2466;color:#fde68a}:root[data-theme=dark] .action-timestamp{color:#86efac}:root[data-theme=dark] .window-hint{color:#fcd34d}@media(max-width:900px){.planning-summary{grid-template-columns:1fr}}.sidebar-backdrop:hover,.sidebar-backdrop:focus-visible{transform:none;box-shadow:none}.planning-frequency-readonly,.planning-profile-frequency{display:grid;gap:5px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}.planning-frequency-readonly span,.planning-profile-frequency span,.planning-range-help{color:var(--muted);font-size:12px}.planning-frequency-readonly strong,.planning-profile-frequency strong{font-size:15px}.planning-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.planning-date-range label{min-width:0}.planning-selected-files,.planning-current-files{display:grid;gap:8px}.planning-selected-files>strong,.planning-current-files>strong{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.status-pill.file-missing{background:#fee2e2;color:#991b1b}.schedule-daily-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.schedule-replacement-file-grid{grid-template-columns:minmax(170px,.85fr) minmax(150px,.65fr) minmax(260px,1.5fr)}.attendance-group-navigation{display:grid;grid-template-columns:54px minmax(320px,1fr) minmax(190px,260px) 54px;align-items:stretch;gap:12px;margin:14px 0;padding:14px;border:1px solid #cfe3d9;border-radius:20px;background:linear-gradient(135deg,#fff,#f1f8f4)}.attendance-group-arrow{width:54px;min-height:92px;display:inline-flex;align-items:center;justify-content:center;align-self:stretch;padding:0;border:1px solid #a9d2bf;border-radius:16px;background:#e8f6ef;color:#0b684a;box-shadow:none}.attendance-group-arrow:hover:not(:disabled){background:#d9f0e5;transform:translateY(-1px)}.attendance-group-arrow:disabled{opacity:.38;cursor:not-allowed}.attendance-group-selector{min-width:0;display:grid;align-content:center;gap:7px}.attendance-group-selector .attendance-section-eyebrow{display:flex;align-items:center;gap:6px}.attendance-group-combobox{min-width:0;min-height:48px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid #b7cfc4;border-radius:13px;background:var(--surface);color:#35604f}.attendance-group-combobox:focus-within{border-color:#198754;box-shadow:0 0 0 3px #19875421}.attendance-group-combobox input{width:100%;min-width:0;min-height:46px;padding:0;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-weight:750}.attendance-group-selector>small{color:var(--muted);font-size:11px;line-height:1.35}.attendance-group-current{position:relative;display:grid;align-content:center;gap:3px;min-width:0;padding:12px 15px;border:1px solid #9ac9b3;border-radius:16px;background:linear-gradient(135deg,#0e7554,#075c43);color:#fff;overflow:hidden}.attendance-group-current:after{content:"";position:absolute;width:92px;height:92px;right:-32px;bottom:-50px;border-radius:50%;background:#ffffff14}.attendance-group-current>span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.82}.attendance-group-current>strong{font-size:22px;line-height:1.1}.attendance-group-current>small{font-size:11px;line-height:1.3;opacity:.9}.attendance-group-current>em{position:absolute;top:9px;right:10px;padding:3px 7px;border-radius:999px;background:#ffffff29;color:#fff;font-size:9px;font-style:normal;font-weight:900}.attendance-format-header{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(270px,1.3fr) minmax(220px,.9fr);align-items:stretch;border-bottom:1px solid #17372c;background:#0d714f;color:#fff}.attendance-format-header>div{min-width:0;display:grid;align-content:center;gap:3px;padding:13px 17px;border-right:1px solid rgba(255,255,255,.28)}.attendance-format-header>div:last-child{border-right:0}.attendance-format-header span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.86}.attendance-format-header strong{font-size:18px;line-height:1.15;overflow-wrap:anywhere}.attendance-format-header small{font-size:10px;opacity:.86}.attendance-format-group{background:#ffffff0f}.attendance-format-date{text-align:right}.attendance-format-date strong{font-size:14px}:root[data-theme=dark] .attendance-group-navigation{border-color:#355b4b;background:linear-gradient(135deg,#18231f,#13211b)}:root[data-theme=dark] .attendance-group-arrow{border-color:#477563;background:#173d30;color:#9ce1c2}@media(max-width:900px){.attendance-group-navigation{grid-template-columns:48px minmax(0,1fr) 48px}.attendance-group-arrow{width:48px;min-height:84px}.attendance-group-current{grid-column:1 / -1;grid-row:2;min-height:78px}.attendance-group-navigation>.attendance-group-arrow:last-child{grid-column:3;grid-row:1}.attendance-format-header{grid-template-columns:1fr 1.3fr}.attendance-format-date{grid-column:1 / -1;text-align:left;border-top:1px solid rgba(255,255,255,.24)}}@media(max-width:560px){.attendance-group-navigation{gap:8px;padding:10px}.attendance-group-selector>small{display:none}.attendance-format-header{grid-template-columns:1fr}.attendance-format-header>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.22)}.attendance-format-header>div:last-child{border-bottom:0}.attendance-format-date{grid-column:auto}}.attendance-physical-wrap{border:1px solid #17212b;border-radius:0;background:var(--surface)}.attendance-physical-table{width:100%;min-width:0;max-width:100%;table-layout:fixed;border-collapse:collapse}.attendance-physical-table th,.attendance-physical-table td{border:1px solid #17212b!important;vertical-align:middle}.attendance-physical-table thead th{padding:12px 8px;text-align:center;background:#ecf6ef;color:#10261d;font-size:12px;font-weight:900;letter-spacing:.025em}.attendance-physical-col-time{width:7%}.attendance-physical-col-class{width:28%}.attendance-physical-col-signature{width:14%}.attendance-physical-col-topic{width:27%}.attendance-physical-col-status{width:24%}.attendance-physical-time-cell{padding:10px 6px!important;text-align:center;font-variant-numeric:tabular-nums}.attendance-physical-time-cell strong{display:block;font-size:18px}.attendance-physical-time-cell span{display:block;margin-top:4px;font-size:11px;font-weight:800}.attendance-physical-class-cell{padding:10px!important}.attendance-physical-class-info{display:grid;gap:3px}.attendance-physical-class-info>strong{font-size:14px;line-height:1.25}.attendance-physical-class-info>span{font-weight:800}.attendance-physical-class-info>small{color:var(--muted);line-height:1.3}.attendance-inline-coordinator{display:grid;gap:5px;margin-top:9px;padding-top:8px;border-top:1px dashed var(--border)}.attendance-inline-coordinator>span{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.attendance-inline-coordinator .coordinator-profile-select,.attendance-inline-coordinator select{width:100%}.attendance-physical-topic-cell{padding:8px!important;vertical-align:top!important}.attendance-topic-input{width:100%;min-height:96px;resize:vertical;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;line-height:1.4}.attendance-topic-input:focus{outline:2px solid rgba(25,135,84,.2);border-color:#198754}.attendance-topic-input:disabled{opacity:.75;background:var(--surface-soft)}.attendance-physical-topic-cell>small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.physical-validation-stack{margin-top:7px;align-items:flex-start}.physical-validation-stack .attendance-validation-actions{display:flex;flex-wrap:wrap;gap:4px}.physical-validation-stack .attendance-validation-actions .mini{padding:4px 6px;font-size:9px}.attendance-physical-signature-cell,.attendance-physical-status-cell{padding:9px!important;text-align:center}.attendance-signature-main{width:100%;min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #18764d;border-radius:10px;background:#f0fdf4;color:#166534;font-weight:900}.attendance-signature-main.signed{background:#dcfce7}.attendance-signature-main:disabled{opacity:.48;cursor:not-allowed}.attendance-physical-signature-cell>small{display:block;margin-top:5px}.physical-check-actions{justify-content:center;margin-bottom:8px}.physical-check-actions .check-button{width:48px;height:48px;min-width:48px;font-size:24px}.attendance-physical-status-cell>.pill{margin:2px auto 6px}.attendance-arrival-time{display:block;margin:5px 0;font-variant-numeric:tabular-nums;font-size:15px}.attendance-physical-status-cell>small{display:block;margin-top:5px;line-height:1.25}:root[data-theme=dark] .attendance-physical-table thead th{background:#17362b;color:#ecfdf5}:root[data-theme=dark] .attendance-physical-wrap,:root[data-theme=dark] .attendance-physical-table th,:root[data-theme=dark] .attendance-physical-table td{border-color:#718096!important}:root[data-theme=dark] .attendance-signature-main{background:#1665342e;color:#bbf7d0;border-color:#4ade80}@media(max-width:900px){.planning-date-range{grid-template-columns:1fr}.schedule-daily-actions{width:100%;justify-content:stretch}.schedule-daily-actions button{flex:1 1 220px}}@media print{.attendance-physical-table{min-width:0;font-size:9px}.attendance-physical-table button,.attendance-physical-table textarea,.attendance-inline-coordinator select{border:0!important;box-shadow:none!important}}.attendance-topic-suggestion{width:100%;min-height:34px;margin-bottom:6px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:11px}.supervisor-kpi-panel,.attendance-kpi-recent{margin-top:1rem}.supervisor-kpi-score{font-weight:800;font-variant-numeric:tabular-nums}.attendance-page,.attendance-page .attendance-list-panel,.attendance-page .attendance-physical-wrap{width:100%;min-width:0;max-width:100%}.attendance-page{overflow-x:clip}.attendance-page .attendance-list-panel,.attendance-page .attendance-physical-wrap{overflow-x:hidden!important;overscroll-behavior-x:none}.attendance-page .attendance-physical-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed}.attendance-page .attendance-physical-table th,.attendance-page .attendance-physical-table td{min-width:0;max-width:none;white-space:normal;overflow-wrap:anywhere;word-break:normal}.attendance-page .attendance-physical-table thead th>span,.attendance-page .attendance-physical-table thead th>small{display:block;line-height:1.15}.attendance-page .attendance-physical-table thead th>small{margin-top:3px;color:inherit;font-size:.82em;letter-spacing:.02em}.attendance-page .attendance-physical-class-info,.attendance-page .attendance-inline-coordinator,.attendance-page .attendance-inline-coordinator .coordinator-profile-select,.attendance-page .attendance-inline-coordinator select,.attendance-page .attendance-topic-suggestion,.attendance-page .attendance-topic-input,.attendance-page .attendance-signature-main,.attendance-page .physical-check-actions{min-width:0;max-width:100%}.attendance-page .attendance-inline-coordinator select,.attendance-page .attendance-topic-suggestion{text-overflow:ellipsis}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page .attendance-list-heading{padding:12px 14px;gap:10px}.attendance-page .attendance-list-heading h2{font-size:16px}.attendance-page .attendance-result-badge{min-width:82px;padding:7px 8px}.attendance-page .attendance-physical-table thead th{padding:8px 4px;font-size:10px;letter-spacing:.01em}.attendance-page .attendance-physical-table td{padding:6px 5px!important}.attendance-page .attendance-physical-time-cell strong{font-size:15px}.attendance-page .attendance-physical-time-cell span,.attendance-page .attendance-physical-class-info>small,.attendance-page .attendance-physical-status-cell>small,.attendance-page .attendance-physical-topic-cell>small{font-size:9px}.attendance-page .attendance-physical-class-info>strong,.attendance-page .attendance-physical-class-info>span{font-size:11px;line-height:1.18}.attendance-page .attendance-inline-coordinator{gap:3px;margin-top:6px;padding-top:5px}.attendance-page .attendance-inline-coordinator>span{font-size:8px}.attendance-page .attendance-inline-coordinator select,.attendance-page .responsible-profile-readonly,.attendance-page .attendance-topic-suggestion{min-height:30px;padding:4px 5px;font-size:9px}.attendance-page .attendance-topic-input{min-height:72px;padding:6px;resize:none;font-size:10px;line-height:1.25}.attendance-page .attendance-signature-main{min-height:52px;flex-direction:column;gap:2px;padding:5px 2px;border-radius:8px;font-size:10px}.attendance-page .attendance-signature-main svg{width:16px;height:16px}.attendance-page .physical-validation-stack .attendance-validation-actions .mini{min-height:28px;padding:3px 4px;font-size:8px}.attendance-page .physical-check-actions{gap:5px;margin-bottom:5px}.attendance-page .physical-check-actions .check-button{width:42px;height:42px;min-width:42px;border-radius:10px;font-size:21px}.attendance-page .attendance-arrival-time{font-size:12px}}@media(pointer:coarse)and (orientation:landscape)and (min-width:1181px){.attendance-page.tablet-landscape .attendance-table-wrap,.attendance-page.tablet-landscape .attendance-physical-wrap{width:100%;max-width:100%;overflow-x:hidden!important}.attendance-page.tablet-landscape .attendance-table,.attendance-page.tablet-landscape .attendance-physical-table{width:100%!important;min-width:0!important;max-width:100%!important}.attendance-page.tablet-landscape .attendance-table thead th:first-child,.attendance-page.tablet-landscape .attendance-table tbody td:first-child{position:static}}.attendance-page{min-height:calc(100dvh - 76px);display:flex;flex-direction:column;gap:12px;overflow-x:clip}.attendance-continuous-history,.attendance-timeline-report-panel{min-width:0}.attendance-continuous-wrap,.attendance-report-timeline-wrap{width:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.attendance-continuous-table,.attendance-report-timeline-table{width:100%;min-width:0;table-layout:fixed}.attendance-continuous-table th,.attendance-continuous-table td,.attendance-report-timeline-table th,.attendance-report-timeline-table td{padding:7px 8px;line-height:1.2;vertical-align:middle;overflow-wrap:anywhere}.attendance-continuous-table td>strong,.attendance-continuous-table td>small,.attendance-report-timeline-table td>strong,.attendance-report-timeline-table td>span{display:block}.attendance-continuous-table td>small,.attendance-report-timeline-table td>span{margin-top:2px;font-size:10px;color:var(--muted, #64748b)}.attendance-event-count{align-self:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;background:#2563eb1a;color:#1d4ed8}.attendance-event-pill{display:inline-flex!important;width:fit-content;margin:0!important;padding:4px 7px;border-radius:999px;font-size:10px!important;font-weight:800;color:#334155!important;background:#e2e8f0}.attendance-event-pill.event-entrada{background:#dcfce7;color:#166534!important}.attendance-event-pill.event-salida{background:#dbeafe;color:#1e40af!important}.attendance-event-pill.event-falta{background:#fee2e2;color:#991b1b!important}.attendance-event-pill.event-retardo,.attendance-event-pill.event-salida_temprana,.attendance-event-pill.event-cobertura{background:#fef3c7;color:#92400e!important}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page.tablet-landscape{min-height:calc(100dvh - 64px);height:auto;gap:7px;padding-bottom:6px}.attendance-page.tablet-landscape .page-title{min-height:0;margin-bottom:0;gap:8px}.attendance-page.tablet-landscape .page-title h1{margin-bottom:2px;font-size:clamp(20px,2.25vw,27px);line-height:1.05}.attendance-page.tablet-landscape .page-title p,.attendance-page.tablet-landscape .notice span,.attendance-page.tablet-landscape .attendance-professor-current-search>small,.attendance-page.tablet-landscape .attendance-list-heading p{font-size:10px;line-height:1.25}.attendance-page.tablet-landscape .notice{min-height:0;margin:0;padding:5px 8px;gap:6px}.attendance-page.tablet-landscape .attendance-tablet-hint{display:none}.attendance-page.tablet-landscape .panel{padding:8px;border-radius:12px}.attendance-page.tablet-landscape .attendance-professor-current-panel,.attendance-page.tablet-landscape .attendance-filter-panel,.attendance-page.tablet-landscape .attendance-group-navigation{min-height:0;margin:0}.attendance-page.tablet-landscape .attendance-professor-current-panel{grid-template-columns:minmax(0,1fr) auto;gap:8px}.attendance-page.tablet-landscape .teacher-search-box input,.attendance-page.tablet-landscape .attendance-filter-panel select,.attendance-page.tablet-landscape .compact-filters input,.attendance-page.tablet-landscape .compact-filters select,.attendance-page.tablet-landscape .attendance-group-combobox input{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px;font-size:11px}.attendance-page.tablet-landscape .attendance-current-time-card{min-width:105px;padding:5px 9px}.attendance-page.tablet-landscape .attendance-current-time-card strong{font-size:21px}.attendance-page.tablet-landscape .attendance-group-navigation{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px}.attendance-page.tablet-landscape .attendance-group-arrow{width:38px;min-height:54px}.attendance-page.tablet-landscape .attendance-group-current{min-height:48px;padding:5px 8px}.attendance-page.tablet-landscape .attendance-group-current>strong{font-size:13px}.attendance-page.tablet-landscape .attendance-list-panel{min-height:0;flex:1 1 auto}.attendance-page.tablet-landscape .attendance-list-heading{padding:0 0 5px;margin:0}.attendance-page.tablet-landscape .attendance-list-heading h2{margin:1px 0;font-size:15px}.attendance-page.tablet-landscape .attendance-physical-wrap{max-height:clamp(280px,48dvh,480px);overflow-y:auto;overscroll-behavior:contain}.attendance-page.tablet-landscape .attendance-physical-table{font-size:9px;line-height:1.12}.attendance-page.tablet-landscape .attendance-physical-table th{position:sticky;top:0;z-index:3;padding:4px 3px!important;font-size:9px!important}.attendance-page.tablet-landscape .attendance-physical-table td{padding:3px!important}.attendance-page.tablet-landscape .attendance-physical-time-cell strong{font-size:12px}.attendance-page.tablet-landscape .attendance-physical-time-cell span,.attendance-page.tablet-landscape .attendance-physical-class-info>small,.attendance-page.tablet-landscape .attendance-physical-status-cell>small,.attendance-page.tablet-landscape .attendance-physical-topic-cell>small{font-size:8px}.attendance-page.tablet-landscape .attendance-physical-class-info>strong,.attendance-page.tablet-landscape .attendance-physical-class-info>span{font-size:9px;line-height:1.1}.attendance-page.tablet-landscape .attendance-inline-coordinator{margin-top:3px;padding-top:3px}.attendance-page.tablet-landscape .attendance-inline-coordinator select,.attendance-page.tablet-landscape .responsible-profile-readonly,.attendance-page.tablet-landscape .attendance-topic-suggestion{min-height:24px;height:24px;padding:2px 3px;font-size:8px}.attendance-page.tablet-landscape .attendance-topic-input{min-height:42px;height:42px;padding:3px;font-size:9px;line-height:1.12;resize:none}.attendance-page.tablet-landscape .attendance-signature-main{min-height:36px;padding:3px 2px;gap:1px;font-size:8px}.attendance-page.tablet-landscape .attendance-signature-main svg{width:13px;height:13px}.attendance-page.tablet-landscape .physical-validation-stack .attendance-validation-actions .mini,.attendance-page.tablet-landscape .attendance-exit-button{min-height:22px;padding:2px 3px;font-size:7px}.attendance-page.tablet-landscape .physical-check-actions{margin-bottom:2px;gap:3px}.attendance-page.tablet-landscape .physical-check-actions .check-button{width:31px;min-width:31px;height:31px;border-radius:8px;font-size:17px}.attendance-page.tablet-landscape .attendance-arrival-time{font-size:9px}.attendance-page.tablet-landscape .attendance-continuous-history{flex:0 1 auto;min-height:0}.attendance-page.tablet-landscape .attendance-continuous-wrap{max-height:clamp(150px,25dvh,260px);overscroll-behavior:contain}.attendance-page.tablet-landscape .attendance-continuous-table th,.attendance-page.tablet-landscape .attendance-continuous-table td{padding:4px 5px;font-size:9px;line-height:1.1}.attendance-page.tablet-landscape .attendance-continuous-table th{position:sticky;top:0;z-index:2}}@media(min-width:760px)and (max-width:1400px){.attendance-report-timeline-panel .section-head,.attendance-timeline-report-panel .section-head{margin-bottom:6px}.attendance-report-timeline-wrap{max-height:40dvh}.attendance-report-timeline-table th,.attendance-report-timeline-table td{padding:5px 6px;font-size:10px;line-height:1.15}.attendance-report-timeline-table th{position:sticky;top:0;z-index:2}}.attendance-page .attendance-physical-status-cell .physical-validation-stack{align-items:center}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page .attendance-physical-col-class{width:28%}.attendance-page .attendance-physical-col-signature{width:14%}.attendance-page .attendance-physical-col-topic{width:27%}.attendance-page .attendance-physical-col-status{width:24%}}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page.tablet-landscape{height:calc(100dvh - 64px);min-height:0;overflow-y:auto;gap:4px;padding-bottom:4px;scrollbar-gutter:stable}.attendance-page.tablet-landscape .page-title p,.attendance-page.tablet-landscape .attendance-default-notice,.attendance-page.tablet-landscape .attendance-current-window,.attendance-page.tablet-landscape .attendance-summary,.attendance-page.tablet-landscape .attendance-professor-current-search>small,.attendance-page.tablet-landscape .attendance-group-selector>small,.attendance-page.tablet-landscape .attendance-list-heading p{display:none!important}.attendance-page.tablet-landscape .page-title{padding:0;min-height:34px}.attendance-page.tablet-landscape .page-title h1{font-size:19px;line-height:1}.attendance-page.tablet-landscape .notice{padding:3px 6px;min-height:24px;font-size:9px}.attendance-page.tablet-landscape .panel{padding:5px 6px;border-radius:9px}.attendance-page.tablet-landscape .attendance-professor-current-panel{grid-template-columns:minmax(0,1fr) 92px;gap:5px}.attendance-page.tablet-landscape .attendance-current-time-card{min-width:92px;padding:3px 6px}.attendance-page.tablet-landscape .attendance-current-time-card strong{font-size:17px}.attendance-page.tablet-landscape .attendance-filter-panel{grid-template-columns:minmax(190px,1.6fr) minmax(105px,.7fr) minmax(105px,.7fr) auto;gap:4px;align-items:center}.attendance-page.tablet-landscape .teacher-search-box input,.attendance-page.tablet-landscape .attendance-filter-panel select,.attendance-page.tablet-landscape .compact-filters input,.attendance-page.tablet-landscape .compact-filters select,.attendance-page.tablet-landscape .attendance-group-combobox input{min-height:27px;height:27px;padding:2px 5px;font-size:9px}.attendance-page.tablet-landscape .attendance-filter-actions button{min-height:27px;padding:3px 5px;font-size:8px}.attendance-page.tablet-landscape .attendance-group-navigation{grid-template-columns:31px minmax(0,1fr) minmax(128px,auto) 31px;gap:4px;padding:4px 5px}.attendance-page.tablet-landscape .attendance-group-arrow{width:31px;min-height:36px}.attendance-page.tablet-landscape .attendance-group-selector .attendance-section-eyebrow,.attendance-page.tablet-landscape .attendance-group-current>span,.attendance-page.tablet-landscape .attendance-group-current>em{display:none}.attendance-page.tablet-landscape .attendance-group-current{min-height:32px;padding:2px 5px}.attendance-page.tablet-landscape .attendance-group-current>strong{font-size:10px}.attendance-page.tablet-landscape .attendance-group-current>small{font-size:8px}.attendance-page.tablet-landscape .attendance-format-header{min-height:34px;padding:3px 6px}.attendance-page.tablet-landscape .attendance-format-header span,.attendance-page.tablet-landscape .attendance-format-header small{font-size:7px}.attendance-page.tablet-landscape .attendance-format-header strong{font-size:10px}.attendance-page.tablet-landscape .attendance-list-heading{padding:2px 0 3px}.attendance-page.tablet-landscape .attendance-list-heading h2{font-size:12px}.attendance-page.tablet-landscape .attendance-result-badge{min-width:62px;padding:3px 5px}.attendance-page.tablet-landscape .attendance-result-badge strong{font-size:13px}.attendance-page.tablet-landscape .attendance-result-badge span{font-size:7px}.attendance-page.tablet-landscape .attendance-physical-wrap{max-height:none;overflow-y:visible}.attendance-page.tablet-landscape .attendance-physical-table th{position:static;padding:3px 2px!important;font-size:9px!important}.attendance-page.tablet-landscape .attendance-physical-table td{padding:2px!important}.attendance-page.tablet-landscape .attendance-physical-time-cell strong{font-size:10px}.attendance-page.tablet-landscape .attendance-physical-time-cell span{font-size:9px;margin-top:1px}.attendance-page.tablet-landscape .attendance-physical-class-info{gap:1px}.attendance-page.tablet-landscape .attendance-physical-class-info>strong,.attendance-page.tablet-landscape .attendance-physical-class-info>span{font-size:10px;line-height:1.08}.attendance-page.tablet-landscape .attendance-physical-class-info>small{font-size:9px;line-height:1.08}.attendance-page.tablet-landscape .attendance-physical-class-info>small:nth-of-type(2){display:none}.attendance-page.tablet-landscape .attendance-inline-coordinator{margin-top:2px;padding-top:2px;gap:1px}.attendance-page.tablet-landscape .attendance-inline-coordinator>span{display:none}.attendance-page.tablet-landscape .attendance-inline-coordinator select,.attendance-page.tablet-landscape .responsible-profile-readonly{min-height:24px;height:24px;padding:1px 3px;font-size:9px}.attendance-page.tablet-landscape .attendance-topic-suggestion{display:none}.attendance-page.tablet-landscape .attendance-topic-input{min-height:34px;height:34px;padding:2px 3px;font-size:10px;line-height:1.05}.attendance-page.tablet-landscape .attendance-physical-topic-cell>small{display:none}.attendance-page.tablet-landscape .attendance-signature-main{min-height:34px;height:34px;padding:2px;font-size:9px}.attendance-page.tablet-landscape .attendance-signature-main svg{width:11px;height:11px}.attendance-page.tablet-landscape .attendance-physical-signature-cell>small{margin-top:1px;font-size:9px}.attendance-page.tablet-landscape .physical-check-actions .check-button{width:34px;min-width:34px;height:34px;font-size:15px}.attendance-page.tablet-landscape .attendance-arrival-time{margin:1px 0;font-size:9px}.attendance-page.tablet-landscape .attendance-physical-status-cell>.pill{margin:1px auto;font-size:9px}.attendance-page.tablet-landscape .attendance-physical-status-cell>small{margin-top:1px;font-size:9px}.attendance-page.tablet-landscape .physical-validation-stack{margin-top:2px}.attendance-page.tablet-landscape .attendance-continuous-wrap{max-height:105px}.attendance-page.tablet-landscape .attendance-continuous-table th,.attendance-page.tablet-landscape .attendance-continuous-table td{padding:3px 4px;font-size:9px}}.attendance-primary-capture-panel{margin-top:0}.attendance-capture-toolbar{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(320px,1.15fr);gap:10px;align-items:end;margin-bottom:8px}.attendance-capture-date-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,.8fr);gap:8px}.attendance-capture-date-controls label,.attendance-global-coordinator{display:grid;gap:4px;min-width:0}.attendance-capture-date-controls label>span,.attendance-global-coordinator>small{color:var(--muted);font-size:10px;font-weight:800}.attendance-capture-date-controls select,.attendance-capture-date-controls input,.attendance-global-coordinator select{width:100%;min-width:0}.attendance-primary-capture-panel>.attendance-group-navigation{margin:0 0 8px}.attendance-capture-message{margin:0 0 8px}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page.tablet-landscape .attendance-capture-toolbar{grid-template-columns:minmax(230px,.8fr) minmax(280px,1.2fr);gap:5px;margin-bottom:4px}.attendance-page.tablet-landscape .attendance-capture-date-controls{gap:4px}.attendance-page.tablet-landscape .attendance-capture-date-controls label>span,.attendance-page.tablet-landscape .attendance-global-coordinator>small{font-size:8px}.attendance-page.tablet-landscape .attendance-capture-date-controls select,.attendance-page.tablet-landscape .attendance-capture-date-controls input,.attendance-page.tablet-landscape .attendance-global-coordinator select{min-height:27px;height:27px;padding:2px 5px;font-size:9px}.attendance-page.tablet-landscape .attendance-global-coordinator .coordinator-select{gap:2px}.attendance-page.tablet-landscape .attendance-primary-capture-panel>.attendance-group-navigation{margin-bottom:4px}}@media(max-width:760px){.attendance-capture-toolbar,.attendance-capture-date-controls{grid-template-columns:1fr}}.attendance-group-navigation-compact{grid-template-columns:48px minmax(0,1fr) auto 48px;align-items:center;margin:8px 0 6px;padding:8px}.attendance-group-navigation-compact .attendance-group-arrow{min-height:48px;height:100%}.attendance-group-navigation-compact .attendance-group-current-inline{grid-column:auto;grid-row:auto;min-height:48px;padding:7px 12px}.attendance-group-navigation-compact .attendance-group-current-inline>strong{padding-right:42px;font-size:15px}.attendance-direct-schedule-button{min-height:48px;width:auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;border:1px solid #9ac9b3;border-radius:14px;background:#fff;color:#0b684a;box-shadow:none;font-weight:850;white-space:nowrap}.attendance-direct-schedule-button:hover:not(:disabled){background:#edf8f2;border-color:#69aa8b}.attendance-direct-schedule-button:disabled{opacity:.45;cursor:not-allowed}.attendance-group-selector-modal{width:min(680px,calc(100vw - 28px));max-height:min(86dvh,760px);display:grid;gap:14px;overflow:hidden}.attendance-group-selector-modal-head{display:grid;gap:4px;padding-right:34px}.attendance-group-selector-modal-head h2,.attendance-group-selector-modal-head p{margin:0}.attendance-group-selector-modal-head p{color:var(--muted);font-size:13px}.attendance-group-selector-search{min-height:46px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.attendance-group-selector-search:focus-within{border-color:#198754;box-shadow:0 0 0 3px #1987541f}.attendance-group-selector-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;box-shadow:none}.attendance-group-selector-options{min-height:0;max-height:56dvh;overflow-y:auto;display:grid;gap:7px;padding-right:3px}.attendance-group-selector-options>button{width:100%;min-height:62px;display:grid;gap:2px;padding:10px 12px;text-align:left;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);box-shadow:none}.attendance-group-selector-options>button:hover,.attendance-group-selector-options>button.selected{border-color:#71b397;background:#eff9f4}.attendance-group-selector-options>button span,.attendance-group-selector-options>button small{color:var(--muted);font-size:11px}.attendance-group-selector-empty{padding:30px 12px;text-align:center;color:var(--muted)}.attendance-signature-capture-only{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;width:100vw;height:100dvh;overflow:hidden;background:#0f171485;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.signature-capture-screen{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(900px,calc(100vw - 32px));height:min(720px,calc(100dvh - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);display:grid;grid-template-rows:auto minmax(180px,1fr) auto;gap:12px;padding:clamp(14px,2vw,24px);overflow:hidden;border:1px solid #d7e2dc;border-radius:20px;background:#f5f8f6;box-shadow:0 24px 70px #0f172a47}.signature-capture-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.signature-capture-header>div{min-width:0;display:grid;gap:2px}.signature-capture-header span{color:#0b684a;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.signature-capture-header h2,.signature-capture-header p{margin:0}.signature-capture-header h2{font-size:clamp(22px,3vw,34px)}.signature-capture-header p{color:var(--muted)}.signature-capture-close{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;padding:0;border-radius:14px;background:#fff;color:#334155;border:1px solid #d7e2dc;box-shadow:none}.signature-capture-pad{min-height:0;display:grid}.signature-canvas.signature-canvas-isolated{width:100%;height:100%;min-height:180px;border:2px solid #184f3d;border-radius:18px;background:#fff;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.signature-capture-actions{display:grid;grid-template-columns:minmax(120px,.4fr) minmax(180px,1fr);gap:12px}.signature-capture-actions button{min-height:54px;font-size:16px}.signature-capture-error{margin:0}:root[data-theme=dark] .attendance-signature-capture-only{background:#020806b8}:root[data-theme=dark] .signature-capture-screen{background:#0f1714;border-color:#294139}@media(min-width:700px)and (max-width:1180px){.calendar-pro-page .calendar-weekday-row,.calendar-pro-page .calendar-month-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important}.calendar-pro-page .calendar-month-cell{display:block!important;min-height:clamp(92px,13vw,118px)!important;padding:7px!important;border-right:1px solid var(--border)!important}.calendar-pro-page .calendar-month-cell.outside-month{display:block!important}.calendar-pro-page .calendar-week-board{grid-template-columns:repeat(7,minmax(0,1fr))!important;min-height:620px!important}.calendar-pro-page .calendar-event-chip{min-height:23px;padding:4px 5px}.calendar-pro-page .calendar-event-chip strong,.calendar-pro-page .calendar-event-chip span{font-size:10px}}.teacher-planning-inline{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);gap:14px;align-items:start}.teacher-planning-status-card{display:grid;gap:12px}.teacher-planning-status-card h3,.teacher-planning-status-card p{margin:0}.teacher-planning-status-card p{color:var(--muted);font-size:13px;line-height:1.45}.teacher-planning-form{display:grid;gap:13px}.teacher-planning-form>label,.teacher-planning-files{display:grid;gap:6px;font-weight:750}.teacher-planning-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teacher-planning-form-grid label{min-width:0;display:grid;gap:6px;font-weight:750}.teacher-planning-form-grid input,.teacher-planning-form-grid select,.teacher-planning-form textarea{width:100%;min-width:0}.teacher-planning-range-help{color:var(--muted);font-size:12px;line-height:1.4}.teacher-planning-selected-files,.teacher-planning-current-files{display:grid;gap:5px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.teacher-planning-selected-files span,.teacher-planning-current-files span{font-size:12px;overflow-wrap:anywhere}@media(max-width:900px){.attendance-group-navigation-compact{grid-template-columns:44px minmax(0,1fr) 44px}.attendance-group-navigation-compact .attendance-group-current-inline{grid-column:auto;grid-row:auto}.attendance-direct-schedule-button{grid-column:1 / -1;min-height:42px}.teacher-planning-inline,.teacher-planning-form-grid{grid-template-columns:1fr}}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page.tablet-landscape .attendance-group-navigation-compact{grid-template-columns:31px minmax(0,1fr) minmax(112px,auto) 31px;gap:4px;margin:3px 0 4px;padding:3px 4px}.attendance-page.tablet-landscape .attendance-group-navigation-compact .attendance-group-current-inline{grid-column:auto;grid-row:auto;min-height:31px;padding:2px 5px}.attendance-page.tablet-landscape .attendance-direct-schedule-button{grid-column:auto;min-height:31px;height:31px;padding:0 8px;border-radius:8px;font-size:9px}.attendance-page.tablet-landscape .attendance-direct-schedule-button svg{width:13px;height:13px}}.planning-table-card{min-width:0;padding:14px;overflow:hidden}.planning-table-card .table-responsive{width:100%;max-width:100%;min-width:0;overflow-x:hidden}.planning-table-card .table-responsive>table{width:100%;min-width:0!important;max-width:100%;table-layout:fixed}.planning-table-card th,.planning-table-card td{min-width:0;padding:9px 7px;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.25;vertical-align:middle}.planning-table-card th{font-size:9px;letter-spacing:.055em}.planning-table-card td{font-size:11px}.planning-table-card td strong{display:block;margin:0;color:var(--text);font-size:13px;line-height:1.2;letter-spacing:-.015em;white-space:normal;overflow-wrap:anywhere}.planning-table-card td small{margin-top:3px;font-size:9px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.planning-table-card .status-pill{max-width:100%;padding:4px 6px;gap:4px;font-size:9px;line-height:1.15;white-space:normal;text-align:center;justify-content:center}.planning-table-card .status-pill svg{flex:0 0 auto;width:13px;height:13px}.planning-table-card .compact-button{width:100%;min-width:0;max-width:112px;min-height:30px;padding:5px 6px;gap:4px;border-radius:9px;font-size:9px;line-height:1.15;white-space:normal;text-align:center;justify-content:center}.planning-table-card .compact-button svg{width:13px;height:13px;flex:0 0 auto}.planning-table-card th:nth-child(1),.planning-table-card td:nth-child(1){width:23%}.planning-table-card th:nth-child(2),.planning-table-card td:nth-child(2){width:10%}.planning-table-card th:nth-child(3),.planning-table-card td:nth-child(3){width:10%}.planning-table-card th:nth-child(4),.planning-table-card td:nth-child(4){width:8%}.planning-table-card th:nth-child(5),.planning-table-card td:nth-child(5){width:17%}.planning-table-card th:nth-child(6),.planning-table-card td:nth-child(6){width:10%}.planning-table-card th:nth-child(7),.planning-table-card td:nth-child(7){width:12%}.planning-table-card th:nth-child(8),.planning-table-card td:nth-child(8){width:10%}@media(min-width:701px)and (max-width:1180px){.planning-page .planning-summary{gap:10px}.planning-table-card{padding:10px}.planning-table-card .planning-filters{gap:8px;margin-bottom:10px}.planning-table-card th,.planning-table-card td{padding:6px 4px}.planning-table-card th{font-size:8px;letter-spacing:.035em}.planning-table-card td{font-size:10px}.planning-table-card td strong{font-size:11px}.planning-table-card td small,.planning-table-card .status-pill,.planning-table-card .compact-button{font-size:8px}.planning-table-card .compact-button{max-width:96px;padding:4px}}@media(max-width:700px){.planning-table-card{padding:8px}.planning-table-card th,.planning-table-card td{padding:5px 3px;font-size:8px}.planning-table-card th{font-size:7px;letter-spacing:0}.planning-table-card td strong{font-size:9px}.planning-table-card td small,.planning-table-card .status-pill,.planning-table-card .compact-button{font-size:7px}.planning-table-card .compact-button{min-height:27px;padding:3px}}.attendance-admin-floor-panel{display:grid;gap:12px;margin-bottom:12px;padding:14px;overflow:hidden}.attendance-admin-floor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.attendance-admin-floor-head h2{margin:2px 0 0;font-size:18px;line-height:1.2}.attendance-admin-floor-head p{max-width:920px;margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.attendance-section-eyebrow{color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.attendance-admin-floor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.attendance-admin-floor-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:0 5px 14px #0f172a0a}.attendance-admin-floor-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent)}.attendance-admin-floor-card.released{border-color:#16a34a}.attendance-admin-floor-view-button{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-width:0;min-height:70px;padding:9px 10px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;box-shadow:none}.attendance-admin-floor-view-button:hover:not(:disabled){background:var(--surface-soft);transform:none}.attendance-admin-floor-view-button:disabled{cursor:not-allowed;opacity:.58}.attendance-admin-floor-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--surface-soft);color:var(--primary)}.attendance-admin-floor-copy{display:grid;min-width:0;gap:2px}.attendance-admin-floor-copy strong,.attendance-admin-floor-copy small,.attendance-admin-floor-copy em{min-width:0;overflow-wrap:anywhere}.attendance-admin-floor-copy strong{font-size:12px;line-height:1.2}.attendance-admin-floor-copy small{color:var(--muted);font-size:10px;line-height:1.25}.attendance-admin-floor-copy em{color:var(--muted);font-size:9px;font-style:normal;line-height:1.2}.attendance-admin-floor-view-label{display:inline-flex;align-items:center;gap:4px;color:var(--primary);font-size:9px;font-weight:800;white-space:nowrap}.attendance-admin-floor-release-button{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:32px;padding:6px 8px;border:0;border-top:1px solid var(--border);border-radius:0;background:var(--surface-soft);color:var(--text);font-size:10px;font-weight:800;box-shadow:none}.attendance-admin-floor-release-button:hover:not(:disabled){transform:none;filter:brightness(.98)}.attendance-admin-floor-release-button.active{background:#16a34a1c;color:#15803d}.attendance-admin-floor-message,.attendance-admin-floor-empty{padding:8px 10px;border-radius:10px;background:var(--surface-soft);color:var(--muted);font-size:11px}.attendance-admin-floor-empty{grid-column:1 / -1;text-align:center}.attendance-admin-view-as-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:9px 10px;border:1px solid var(--primary);border-radius:12px;background:color-mix(in srgb,var(--primary) 7%,var(--surface))}.attendance-admin-view-as-banner.released{border-color:#16a34a;background:#16a34a12}.attendance-admin-view-as-banner>div:first-child{display:grid;min-width:0;gap:1px}.attendance-admin-view-as-banner span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.attendance-admin-view-as-banner strong{font-size:13px;line-height:1.2}.attendance-admin-view-as-banner small{color:var(--muted);font-size:10px;overflow-wrap:anywhere}.attendance-admin-view-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.attendance-admin-view-actions .attendance-admin-floor-release-button,.attendance-admin-view-actions .secondary{width:auto;min-height:32px;padding:6px 10px;border:1px solid var(--border);border-radius:9px;font-size:10px}.attendance-capture-release-notice strong{display:inline-flex;align-items:center;gap:5px}.attendance-capture-release-notice{border-color:#16a34a59;background:#16a34a14}:root[data-theme=dark] .attendance-admin-floor-card,:root[data-theme=dark] .attendance-admin-view-as-banner{background:var(--surface)}:root[data-theme=dark] .attendance-admin-floor-release-button.active,:root[data-theme=dark] .attendance-capture-release-notice,:root[data-theme=dark] .attendance-admin-view-as-banner.released{background:#22c55e1f;color:#bbf7d0}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page.tablet-landscape .attendance-admin-floor-panel{gap:6px;margin-bottom:6px;padding:7px}.attendance-page.tablet-landscape .attendance-admin-floor-head h2{font-size:13px}.attendance-page.tablet-landscape .attendance-admin-floor-head p{margin-top:2px;font-size:9px;line-height:1.25}.attendance-page.tablet-landscape .attendance-section-eyebrow{font-size:8px}.attendance-page.tablet-landscape .attendance-admin-floor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.attendance-page.tablet-landscape .attendance-admin-floor-view-button{grid-template-columns:27px minmax(0,1fr) auto;min-height:53px;gap:5px;padding:5px 6px}.attendance-page.tablet-landscape .attendance-admin-floor-icon{width:27px;height:27px;border-radius:8px}.attendance-page.tablet-landscape .attendance-admin-floor-icon svg{width:14px;height:14px}.attendance-page.tablet-landscape .attendance-admin-floor-copy strong{font-size:10px}.attendance-page.tablet-landscape .attendance-admin-floor-copy small{font-size:8px}.attendance-page.tablet-landscape .attendance-admin-floor-copy em,.attendance-page.tablet-landscape .attendance-admin-floor-view-label{font-size:7px}.attendance-page.tablet-landscape .attendance-admin-floor-view-label svg{width:11px;height:11px}.attendance-page.tablet-landscape .attendance-admin-floor-release-button{min-height:26px;padding:3px 5px;font-size:8px}.attendance-page.tablet-landscape .attendance-admin-view-as-banner{padding:5px 7px;border-radius:9px}.attendance-page.tablet-landscape .attendance-admin-view-as-banner strong{font-size:10px}.attendance-page.tablet-landscape .attendance-admin-view-as-banner span,.attendance-page.tablet-landscape .attendance-admin-view-as-banner small{font-size:8px}.attendance-page.tablet-landscape .attendance-admin-view-actions{gap:4px}.attendance-page.tablet-landscape .attendance-admin-view-actions .attendance-admin-floor-release-button,.attendance-page.tablet-landscape .attendance-admin-view-actions .secondary{min-height:27px;padding:3px 6px;font-size:8px}}@media(max-width:759px){.attendance-admin-floor-grid{grid-template-columns:1fr}.attendance-admin-floor-view-button{grid-template-columns:32px minmax(0,1fr)}.attendance-admin-floor-view-label{grid-column:2}.attendance-admin-view-as-banner{align-items:stretch;flex-direction:column}.attendance-admin-view-actions{display:grid;grid-template-columns:1fr}.attendance-admin-view-actions .attendance-admin-floor-release-button,.attendance-admin-view-actions .secondary{width:100%}}.teacher-schedule-panel{padding:18px;min-width:0;overflow:hidden}.teacher-schedule-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.teacher-schedule-heading h3{margin:2px 0 4px}.teacher-schedule-heading p:last-child{margin:0;color:var(--text-muted, #64748b)}.teacher-schedule-range{flex:0 0 auto;padding:7px 11px;border-radius:999px;font-weight:800;background:#2563eb1a;color:#1d4ed8}.teacher-schedule-scroll{overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--border, #dbe2ea);border-radius:14px}.teacher-schedule-grid{position:relative;display:grid;grid-template-columns:minmax(76px,.72fr) repeat(5,minmax(150px,1fr));min-width:850px;background:var(--surface, #fff)}.teacher-schedule-corner,.teacher-schedule-day,.teacher-schedule-time,.teacher-schedule-slot{border-right:1px solid var(--border, #e2e8f0);border-bottom:1px solid var(--border, #e2e8f0)}.teacher-schedule-corner,.teacher-schedule-day{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:10px 8px;background:var(--surface-strong, #f8fafc);font-weight:850}.teacher-schedule-corner{left:0;z-index:7}.teacher-schedule-time{position:sticky;left:0;z-index:4;display:flex;flex-direction:column;justify-content:center;padding:8px 10px;background:var(--surface-strong, #f8fafc);line-height:1.1}.teacher-schedule-time strong{font-size:.86rem}.teacher-schedule-time span{margin-top:4px;font-size:.73rem;color:var(--text-muted, #64748b)}.teacher-schedule-slot{min-height:58px;background:#94a3b806}.teacher-schedule-class{z-index:3;align-self:stretch;margin:4px;padding:8px 9px;border:1px solid rgba(37,99,235,.22);border-left:4px solid #2563eb;border-radius:10px;background:linear-gradient(145deg,#dbeafef7,#eff6fff7);box-shadow:0 4px 12px #0f172a14;overflow:hidden;display:flex;flex-direction:column;gap:2px}.teacher-schedule-class strong{font-size:.82rem;line-height:1.2;overflow-wrap:anywhere}.teacher-schedule-class span{font-size:.73rem;font-weight:800;color:#1d4ed8}.teacher-schedule-class small{font-size:.7rem;line-height:1.2;color:#475569;overflow-wrap:anywhere}.teacher-schedule-empty{text-align:center;padding:30px;color:var(--text-muted, #64748b)}.absence-report-page{display:grid;gap:16px}.absence-report-title .back-button{margin-bottom:10px}.absence-report-filters{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(230px,1.5fr) auto auto;gap:12px;align-items:end;padding:14px}.absence-report-filters label{display:grid;gap:6px;min-width:0}.absence-report-filters label>span{font-size:.78rem;font-weight:800;color:var(--text-muted, #64748b)}.absence-report-filters input,.absence-report-filters select{min-width:0;width:100%}.absence-report-filters button{white-space:nowrap;min-height:42px}.absence-report-context{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--text-muted, #64748b);font-size:.9rem}.absence-report-context span,.absence-report-context strong{padding:5px 9px;border-radius:999px;background:#94a3b81a}.absence-report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.absence-report-metric{display:flex;align-items:center;gap:12px;min-width:0;padding:14px}.absence-report-metric>div:last-child{display:grid;min-width:0}.absence-report-metric span{font-size:.78rem;color:var(--text-muted, #64748b);font-weight:750}.absence-report-metric strong{margin-top:2px;font-size:1.55rem;line-height:1.1}.absence-report-metric small{margin-top:4px;font-size:.72rem;color:var(--text-muted, #64748b)}.absence-calendar-panel{padding:16px;min-width:0}.absence-calendar-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.absence-calendar-month{min-width:0;border:1px solid var(--border, #e2e8f0);border-radius:14px;padding:12px;background:var(--surface, #fff)}.absence-calendar-month h3{margin:0 0 10px;text-transform:capitalize;font-size:1rem}.absence-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.absence-calendar-weekday{text-align:center;padding:5px 2px;font-size:.7rem;font-weight:850;color:var(--text-muted, #64748b)}.absence-calendar-day{min-height:58px;width:100%;padding:6px;border:1px solid transparent;border-radius:9px;background:#94a3b80e;display:flex;flex-direction:column;gap:4px;text-align:left;color:inherit;font:inherit;cursor:pointer;box-shadow:none}.absence-calendar-day:hover:not(.is-empty){border-color:#2563eb61;transform:translateY(-1px)}.absence-calendar-day:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.absence-calendar-day.is-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb24}.absence-calendar-day>span{font-size:.75rem;font-weight:850}.absence-calendar-day strong{font-size:.68rem;color:#b91c1c;line-height:1.15}.absence-calendar-day small{color:#94a3b8}.absence-calendar-day.is-range{border-color:#3b82f61f}.absence-calendar-day.has-absence{background:#fee2e2cc;border-color:#ef444438}.absence-calendar-day.is-empty{background:transparent}.absence-report-columns{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,2fr);gap:14px;align-items:start}.absence-ranking-panel,.absence-detail-panel{min-width:0;padding:14px}.absence-ranking-panel td:first-child,.absence-detail-panel td:nth-child(2),.absence-detail-panel td:nth-child(3){min-width:0}.absence-ranking-panel td strong,.absence-detail-panel td strong{display:block}.absence-ranking-panel td small,.absence-detail-panel td small{display:block;margin-top:2px;color:var(--text-muted, #64748b);line-height:1.2}.absence-detail-wrap table{table-layout:fixed;width:100%;min-width:0}.absence-detail-wrap th,.absence-detail-wrap td{padding:8px 7px;vertical-align:top;overflow-wrap:anywhere;white-space:normal}.absence-detail-wrap th:nth-child(1){width:12%}.absence-detail-wrap th:nth-child(2){width:18%}.absence-detail-wrap th:nth-child(3){width:21%}.absence-detail-wrap th:nth-child(4){width:12%}.absence-detail-wrap th:nth-child(5){width:17%}.absence-detail-wrap th:nth-child(6){width:7%}.absence-detail-wrap th:nth-child(7){width:13%}.absence-report-loading{padding:24px;text-align:center;color:var(--text-muted, #64748b)}.absence-selected-day-panel{margin-top:16px;padding-top:16px;border-top:1px solid var(--border, #e2e8f0);display:grid;gap:12px}.absence-selected-day-panel h3{margin:2px 0 4px;font-size:1.05rem}.absence-selected-day-wrap table{width:100%;table-layout:fixed;min-width:760px}.absence-selected-day-wrap th,.absence-selected-day-wrap td{padding:8px 7px;vertical-align:top;overflow-wrap:anywhere;white-space:normal}.absence-selected-day-wrap td strong,.absence-selected-day-wrap td small{display:block}.absence-selected-day-wrap td small{margin-top:2px;color:var(--text-muted, #64748b)}.absence-chart-panel{min-width:0;padding:16px}.absence-chart-canvas{width:100%;height:320px;min-height:260px}.absence-chart-canvas .empty-chart{min-height:260px}.absence-results-section{display:grid;gap:14px;min-width:0}.absence-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px}.absence-results-toolbar h2{margin:2px 0 4px;font-size:1.05rem}.absence-results-toolbar p{margin:0}.absence-results-toolbar>button{flex:0 0 auto;white-space:nowrap}.absence-results-section.is-collapsed .absence-results-toolbar{margin-bottom:0}.absence-teacher-link{display:inline-flex;flex-direction:column;min-width:0;color:inherit;text-decoration:none;transition:color .16s ease}.absence-teacher-link:hover,.absence-teacher-link:focus-visible{color:#2563eb}.absence-teacher-link:focus-visible{outline:2px solid rgba(37,99,235,.45);outline-offset:2px;border-radius:4px}.absence-teacher-link strong,.absence-teacher-link small{color:inherit}@media(max-width:1180px){.teacher-schedule-panel{padding:12px}.teacher-schedule-grid{min-width:760px;grid-template-columns:70px repeat(5,minmax(132px,1fr))}.teacher-schedule-class{margin:3px;padding:6px 7px}.teacher-schedule-class strong{font-size:.76rem}.teacher-schedule-class small{font-size:.66rem}.absence-report-filters{grid-template-columns:repeat(2,minmax(150px,1fr)) minmax(220px,1.5fr)}.absence-report-filters button{width:100%}.absence-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.absence-report-columns{grid-template-columns:1fr}.absence-results-toolbar{align-items:stretch;flex-direction:column}.absence-results-toolbar>button{width:100%}.absence-detail-wrap th,.absence-detail-wrap td{font-size:.78rem;padding:6px 5px}}@media(max-width:700px){.teacher-schedule-heading{flex-direction:column}.absence-report-filters{grid-template-columns:1fr}.absence-report-metrics{grid-template-columns:1fr 1fr}.absence-calendar-months{grid-template-columns:1fr}.absence-calendar-day{min-height:50px;padding:4px}.absence-calendar-day strong{font-size:.62rem}.absence-chart-canvas{height:280px}.absence-selected-day-wrap,.absence-detail-wrap{overflow-x:auto}.absence-detail-wrap table{min-width:720px}}:root[data-theme=dark] .teacher-schedule-class{background:linear-gradient(145deg,#1e40af47,#0f172ae0);border-color:#60a5fa52}:root[data-theme=dark] .teacher-schedule-class span{color:#93c5fd}:root[data-theme=dark] .teacher-schedule-class small{color:#cbd5e1}:root[data-theme=dark] .absence-calendar-day.has-absence{background:#7f1d1d47;border-color:#f8717140}:root[data-theme=dark] .absence-calendar-day strong{color:#fca5a5}:root[data-theme=dark] .absence-calendar-day.is-selected{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa2e}:root[data-theme=dark] .absence-teacher-link:hover,:root[data-theme=dark] .absence-teacher-link:focus-visible{color:#60a5fa}.absence-report-filters{grid-template-columns:minmax(130px,.6fr) minmax(130px,.6fr) minmax(190px,1.2fr) minmax(170px,1fr) auto auto minmax(220px,auto)}.absence-excel-button{min-width:220px}.attendance-admin-orphan-panel{display:grid;gap:12px;margin-bottom:14px;padding:14px}.attendance-admin-orphan-head{display:flex;justify-content:space-between;align-items:end;gap:16px}.attendance-admin-orphan-head h2{margin:3px 0 4px;font-size:1.05rem}.attendance-admin-orphan-head p{margin:0;color:var(--text-muted, #64748b);font-size:.82rem;line-height:1.35}.attendance-admin-orphan-filter{display:flex;align-items:end;gap:10px;flex:0 0 auto}.attendance-admin-orphan-filter label{display:grid;gap:5px;min-width:210px}.attendance-admin-orphan-filter label>span{font-size:.72rem;font-weight:850;color:var(--text-muted, #64748b)}.attendance-admin-orphan-filter select{min-width:0;width:100%}.attendance-admin-orphan-counter{min-width:92px;min-height:42px;padding:6px 10px;border-radius:12px;background:#f59e0b17;border:1px solid rgba(245,158,11,.22);display:grid;align-content:center}.attendance-admin-orphan-counter strong{font-size:1rem;line-height:1}.attendance-admin-orphan-counter span{margin-top:3px;font-size:.66rem;color:var(--text-muted, #64748b)}.attendance-admin-orphan-actions{display:flex;flex-wrap:wrap;gap:8px}.attendance-orphan-present,.attendance-orphan-absent{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;padding:8px 10px;font-weight:800;font-size:.76rem}.attendance-orphan-present{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.attendance-orphan-absent{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.attendance-orphan-present:hover:not(:disabled){background:#d1fae5}.attendance-orphan-absent:hover:not(:disabled){background:#ffe4e6}.attendance-admin-orphan-wrap{max-height:330px}.attendance-admin-orphan-table{width:100%;table-layout:fixed}.attendance-admin-orphan-table th,.attendance-admin-orphan-table td{padding:7px 6px;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}.attendance-admin-orphan-table th:nth-child(1){width:5%}.attendance-admin-orphan-table th:nth-child(2){width:16%}.attendance-admin-orphan-table th:nth-child(3){width:20%}.attendance-admin-orphan-table th:nth-child(4){width:23%}.attendance-admin-orphan-table th:nth-child(5){width:13%}.attendance-admin-orphan-table th:nth-child(6){width:23%}.attendance-admin-orphan-table td strong,.attendance-admin-orphan-table td small{display:block}.attendance-admin-orphan-table td small{margin-top:2px;color:var(--text-muted, #64748b);font-size:.68rem;line-height:1.2}.attendance-admin-orphan-table tr.selected td{background:#3b82f60e}.attendance-orphan-check-col{text-align:center}.attendance-orphan-check-col input{width:17px;height:17px}.attendance-admin-orphan-row-actions{display:flex;flex-wrap:wrap;gap:5px}.attendance-admin-orphan-message{margin:0}.payroll-filter-panel-top{margin-top:0;margin-bottom:16px;grid-template-columns:repeat(6,minmax(130px,1fr)) auto}.payroll-report-idle-state{min-height:150px;display:flex;align-items:center;justify-content:center;gap:14px;text-align:left;color:var(--text-muted, #64748b)}.payroll-report-idle-state h2{margin:0 0 5px;color:var(--text, #0f172a);font-size:1rem}.payroll-report-idle-state p{margin:0;max-width:680px;line-height:1.45}:root[data-theme=dark] .attendance-orphan-present{background:#064e3b59;color:#a7f3d0;border-color:#34d3994d}:root[data-theme=dark] .attendance-orphan-absent{background:#88133752;color:#fecdd3;border-color:#fb71854d}:root[data-theme=dark] .payroll-report-idle-state h2{color:var(--text, #e2e8f0)}@media(max-width:1180px){.absence-report-filters{grid-template-columns:repeat(2,minmax(150px,1fr)) minmax(220px,1.5fr)}.absence-excel-button{min-width:0}.attendance-admin-orphan-head{align-items:stretch;flex-direction:column}.attendance-admin-orphan-filter{width:100%}.attendance-admin-orphan-filter label{flex:1 1 auto;min-width:0}.attendance-admin-orphan-table th,.attendance-admin-orphan-table td{padding:6px 5px;font-size:.74rem}.attendance-admin-orphan-row-actions{flex-direction:column}.attendance-orphan-present,.attendance-orphan-absent{padding:6px 7px;font-size:.68rem}.payroll-filter-panel-top{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(orientation:landscape)and (min-width:1181px)and (max-width:1400px){.attendance-page.tablet-landscape .attendance-admin-orphan-panel{padding:9px;gap:8px}.attendance-page.tablet-landscape .attendance-admin-orphan-head h2{font-size:.86rem}.attendance-page.tablet-landscape .attendance-admin-orphan-head p{font-size:.68rem}.attendance-page.tablet-landscape .attendance-admin-orphan-filter label>span{font-size:.62rem}.attendance-page.tablet-landscape .attendance-admin-orphan-wrap{max-height:250px}.attendance-page.tablet-landscape .attendance-admin-orphan-table th,.attendance-page.tablet-landscape .attendance-admin-orphan-table td{padding:4px;font-size:.66rem}.attendance-page.tablet-landscape .attendance-admin-orphan-table td small{font-size:.58rem}.attendance-page.tablet-landscape .attendance-orphan-present,.attendance-page.tablet-landscape .attendance-orphan-absent{padding:5px 6px;font-size:.61rem}}@media(max-width:700px){.attendance-admin-orphan-filter{flex-direction:column;align-items:stretch}.attendance-admin-orphan-counter{width:100%}.attendance-admin-orphan-wrap{overflow-x:auto}.attendance-admin-orphan-table{min-width:760px}.payroll-filter-panel-top{grid-template-columns:1fr}.payroll-report-idle-state{align-items:flex-start}}.teacher-notification-email-gate{z-index:2200!important;background:#071812b8!important}.teacher-notification-email-gate-card{width:min(520px,calc(100vw - 28px));padding:28px}.teacher-notification-email-gate-card h2{margin-bottom:10px}.teacher-notification-email-gate-card>p:not(.eyebrow){color:var(--muted);line-height:1.55}.teacher-notification-email-gate-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;margin-bottom:16px;background:#103a2c1a;color:var(--primary, #103a2c)}.teacher-notification-email-privacy{display:flex;align-items:flex-start;gap:10px;margin:18px 0}.teacher-notification-email-privacy svg{flex:0 0 auto;margin-top:1px}.teacher-notification-email-loading{padding:18px 0;color:var(--muted)}.teacher-notification-email-gate-card button{width:100%;margin-top:16px}.teacher-notification-email-profile{margin-top:16px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft, #f7faf8);max-width:620px}.teacher-notification-email-profile label{margin:0;font-weight:700}.teacher-notification-email-profile-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center;margin-top:8px}.teacher-notification-email-profile-row input{margin:0;min-width:0}.teacher-notification-email-profile-row button{margin:0;white-space:nowrap}.teacher-notification-email-profile>small{display:block;margin-top:8px;color:var(--muted);line-height:1.4}.teacher-notification-email-profile-message{display:block;margin-top:8px;font-size:12px;color:var(--primary, #103a2c);font-weight:700}@media(max-width:720px){.teacher-notification-email-profile-row{grid-template-columns:1fr}.teacher-notification-email-profile-row button{width:100%}.teacher-notification-email-gate-card{padding:22px}}:root[data-theme=dark] .teacher-notification-email-profile{background:#ffffff0a}.exam-schedules-hub-tabs{grid-template-columns:repeat(3,minmax(180px,1fr))}.partial-exams-page{display:grid;gap:18px;min-width:0}.partial-exams-config,.partial-exams-preview{overflow:hidden}.partial-exams-config .panel-heading-row,.partial-exams-preview .panel-heading-row{align-items:flex-start}.partial-exams-config .panel-heading-row h2,.partial-exams-preview .panel-heading-row h2{margin:3px 0 5px}.partial-exams-config .panel-heading-row p,.partial-exams-preview .panel-heading-row p{margin:0;color:var(--muted, #6f827a);max-width:780px}.partial-exams-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.partial-exams-context>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border, #dce8e3);border-radius:13px;background:var(--surface-muted, #f8fbf9)}.partial-exams-context small{color:var(--muted, #6f827a)}.partial-exams-context strong{color:var(--text, #173f32)}.partial-exams-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.partial-exams-date-grid label,.partial-exams-general-time label,.partial-exams-day-time label{display:grid;gap:6px}.partial-exams-date-grid label>span,.partial-exams-general-time label>span,.partial-exams-day-time label>span{font-size:.86rem;font-weight:750;color:var(--text, #2e5144)}.partial-exams-date-grid input,.partial-exams-general-time input,.partial-exams-day-time input{width:100%;min-height:42px;border:1px solid var(--border, #d5e2dd);border-radius:11px;background:var(--surface, #fff);color:var(--text, #173e32)}.partial-exams-days{display:grid;gap:7px;margin-top:14px;padding:14px;border:1px solid var(--border, #e0ebe6);border-radius:14px;background:var(--surface-muted, #f8fcfa)}.partial-exams-days>span{font-weight:800;color:var(--text, #2d5144)}.partial-exams-days>small{color:var(--muted, #6f827a)}.partial-exams-days>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.partial-exams-days button{min-height:38px;padding:7px 13px;border:1px solid var(--border, #d5e2dd);border-radius:999px;background:var(--surface, #fff);color:var(--muted, #506a60);cursor:pointer}.partial-exams-days button.active{border-color:#0d7352;background:#e7f6f0;color:#075d42;font-weight:800}.partial-exams-time-section{display:grid;gap:12px;margin-top:14px;padding:15px;border:1px solid var(--border, #e0ebe6);border-radius:14px}.partial-exams-time-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.partial-exams-time-heading h3{margin:2px 0 0}.partial-exams-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.partial-exams-mode button{display:grid;gap:3px;padding:11px 13px;border:1px solid var(--border, #d5e2dd);border-radius:12px;background:var(--surface, #fff);color:var(--text, #23493b);text-align:left;cursor:pointer}.partial-exams-mode button small{color:var(--muted, #74887f)}.partial-exams-mode button.active{border-color:#0d7352;box-shadow:inset 0 0 0 1px #0d7352;background:#f1faf6}.partial-exams-general-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.partial-exams-specific-time{display:grid;gap:9px}.partial-exams-day-time{display:grid;grid-template-columns:minmax(115px,.7fr) repeat(2,minmax(130px,1fr));gap:10px;align-items:end;padding:10px 12px;border:1px solid var(--border, #e2ebe7);border-radius:12px;background:var(--surface-muted, #fafdfc)}.partial-exams-day-time>strong{align-self:center;color:var(--text, #294e40)}.partial-exams-actions{display:flex;align-items:center;gap:12px;margin-top:15px}.partial-exams-actions button{display:inline-flex;align-items:center;gap:8px;min-height:42px}.partial-exams-message{color:var(--muted, #60756c);font-size:.9rem}.partial-exams-balance{display:grid;justify-items:end;min-width:110px}.partial-exams-balance small{color:var(--muted, #6f827a)}.partial-exams-balance strong{font-size:1.5rem;color:var(--text, #173f32)}.partial-exams-day-loads{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;margin:15px 0}.partial-exams-day-loads>div{display:grid;gap:2px;padding:11px 12px;border:1px solid var(--border, #dce8e3);border-radius:12px;background:var(--surface-muted, #f8fbf9)}.partial-exams-day-loads small,.partial-exams-day-loads span{color:var(--muted, #6f827a);font-size:.78rem}.partial-exams-day-loads strong{font-size:1.2rem;color:var(--text, #173f32)}.partial-exams-preview-days{display:grid;gap:13px}.partial-exams-preview-day{overflow:hidden;border:1px solid var(--border, #dce8e3);border-radius:14px;background:var(--surface, #fff)}.partial-exams-preview-day>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border, #e0e9e5);background:var(--surface-muted, #f8fbf9)}.partial-exams-preview-day header small{color:var(--muted, #6f827a);font-weight:750}.partial-exams-preview-day header h3{margin:1px 0 0}.partial-exams-preview-day header>span{padding:5px 9px;border-radius:999px;background:#e7f6f0;color:#075d42;font-size:.78rem;font-weight:800;white-space:nowrap}.partial-exams-preview-day table{width:100%;min-width:760px;border-collapse:collapse}.partial-exams-preview-day th,.partial-exams-preview-day td{padding:10px 12px;border-bottom:1px solid var(--border, #edf2ef);text-align:left;vertical-align:top}.partial-exams-preview-day th{color:var(--muted, #60756c);font-size:.78rem}.partial-exams-preview-day tr:last-child td{border-bottom:0}:root[data-theme=dark] .partial-exams-days button.active,body.dark .partial-exams-days button.active,:root[data-theme=dark] .partial-exams-mode button.active,body.dark .partial-exams-mode button.active,:root[data-theme=dark] .partial-exams-preview-day header>span,body.dark .partial-exams-preview-day header>span{background:#0d735233;color:#8be0bd}@media(max-width:1180px){.exam-schedules-hub-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.partial-exams-preview-day table{min-width:680px}}@media(max-width:760px){.exam-schedules-hub-tabs,.partial-exams-context,.partial-exams-date-grid,.partial-exams-mode,.partial-exams-general-time{grid-template-columns:1fr}.partial-exams-day-time{grid-template-columns:1fr 1fr}.partial-exams-day-time>strong{grid-column:1 / -1}.partial-exams-actions{align-items:stretch;flex-direction:column}.partial-exams-actions button{justify-content:center;width:100%}.partial-exams-balance{justify-items:start}}.evaluation-admin-page{display:grid;gap:18px;min-width:0}.evaluation-admin-hero{display:flex;align-items:center;justify-content:space-between;gap:22px}.evaluation-admin-hero h1{margin:3px 0 7px;font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.055em}.evaluation-admin-hero p{margin:0;max-width:720px;color:var(--muted);line-height:1.55}.evaluation-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:8px;min-width:min(100%,460px)}.evaluation-kpi-strip>div{display:grid;gap:2px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);text-align:center}.evaluation-kpi-strip strong{font-size:1.35rem}.evaluation-kpi-strip span{color:var(--muted);font-size:.77rem}.evaluation-tabs{display:flex;flex-wrap:wrap;gap:8px}.evaluation-tabs button{display:inline-flex;align-items:center;gap:7px;background:var(--surface-solid);color:var(--muted);border:1px solid var(--border)}.evaluation-tabs button.active{background:#eaf8f1;border-color:#138a4b;color:#0b6d3c}.evaluation-message{display:flex;align-items:center;gap:10px}.evaluation-builder{display:grid;gap:16px}.evaluation-config-panel .panel-heading-row{align-items:flex-start}.evaluation-config-panel .panel-heading-row h2,.evaluation-list-panel .panel-heading-row h2,.evaluation-results-panel .panel-heading-row h2{margin:3px 0 4px}.evaluation-config-panel .panel-heading-row p{margin:0;color:var(--muted);max-width:740px}.evaluation-period-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:15px}.evaluation-period-grid label,.evaluation-header-fields label,.evaluation-question-body>label,.evaluation-question-controls>label,.evaluation-results-toolbar label{display:grid;gap:6px}.evaluation-period-grid label>span,.evaluation-header-fields label>span,.evaluation-question-body label>span,.evaluation-question-controls label>span,.evaluation-results-toolbar label>span{font-size:.82rem;font-weight:800;color:var(--muted)}.evaluation-period-grid input,.evaluation-header-fields input,.evaluation-header-fields textarea,.evaluation-question-body input,.evaluation-question-body textarea,.evaluation-question-controls select,.evaluation-results-toolbar select{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--surface-solid);color:var(--text);padding:10px 12px}.evaluation-header-fields{display:grid;gap:12px;margin-top:15px}.evaluation-image-upload-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.evaluation-upload-button{display:inline-flex!important;align-items:center;gap:7px!important;width:fit-content;padding:10px 13px;border-radius:12px;background:var(--primary);color:#fff!important;cursor:pointer;font-weight:800}.evaluation-upload-button input{display:none}.evaluation-image-upload-row img{width:120px;height:72px;object-fit:cover;border:1px solid var(--border);border-radius:12px}.evaluation-question-list{display:grid;gap:12px;margin-top:15px}.evaluation-question-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface-soft)}.evaluation-question-number{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#138a4b;color:#fff;font-weight:900}.evaluation-question-body{display:grid;gap:10px;min-width:0}.evaluation-question-controls{display:grid;grid-template-columns:minmax(170px,1fr) minmax(180px,auto) auto;gap:10px;align-items:end}.evaluation-required-toggle{display:flex!important;align-items:center;gap:8px!important;min-height:42px}.evaluation-required-toggle input{width:17px;height:17px}.evaluation-options-builder{display:grid;gap:8px;padding:11px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface-solid)}.evaluation-options-builder>span{color:var(--muted);font-size:.8rem;font-weight:800}.evaluation-options-builder>div{display:flex;gap:7px;align-items:center}.evaluation-options-builder>div button{width:36px;height:36px;display:grid;place-items:center;padding:0;background:transparent;color:var(--danger);box-shadow:none}.evaluation-options-builder>button{width:fit-content}.evaluation-builder-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding-top:4px}.evaluation-builder-actions button,.evaluation-admin-card-actions button,.evaluation-results-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.evaluation-admin-list{display:grid;gap:10px;margin-top:14px}.evaluation-admin-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface-soft)}.evaluation-admin-card-main{min-width:0}.evaluation-admin-card-main h3{margin:7px 0 3px}.evaluation-admin-card-main p{margin:0;color:var(--muted)}.evaluation-admin-card-main>div{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:7px;color:var(--muted);font-size:.82rem}.evaluation-admin-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.evaluation-empty{display:grid;place-items:center;gap:7px;min-height:100px;padding:20px;text-align:center;color:var(--muted)}.evaluation-results-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:15px}.evaluation-results-toolbar label{flex:1 1 320px}.evaluation-result-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin:15px 0}.evaluation-result-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-soft)}.evaluation-result-summary small{color:var(--muted)}.evaluation-teacher-results{display:grid;gap:9px}.evaluation-teacher-result{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface-solid)}.evaluation-teacher-result-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:0;background:transparent;color:var(--text);text-align:left;box-shadow:none}.evaluation-teacher-result-head:hover{transform:none;background:var(--surface-soft);box-shadow:none}.evaluation-teacher-result-head>div{display:grid;gap:2px}.evaluation-teacher-result-head span{color:var(--muted);font-size:.82rem}.evaluation-teacher-result.open .evaluation-teacher-result-head svg{transform:rotate(180deg)}.evaluation-teacher-result-body{display:grid;gap:12px;padding:0 14px 14px;border-top:1px solid var(--border)}.evaluation-result-question{padding-top:12px}.evaluation-result-question h4{margin:0 0 9px}.evaluation-option-results{display:grid;gap:8px}.evaluation-option-results>div>div{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:.86rem}.evaluation-option-results progress{width:100%;height:9px;accent-color:#138a4b}.evaluation-open-results{display:grid;gap:7px}.evaluation-open-results blockquote{margin:0;padding:10px 12px;border-left:3px solid #138a4b;border-radius:0 10px 10px 0;background:var(--surface-soft);color:var(--text)}.green-qr-code{display:grid;place-items:center;gap:8px;padding:12px;border-radius:18px;background:#fff;border:1px solid #dce8e2}.green-qr-canvas{display:grid;place-items:center;line-height:0}.green-qr-canvas img,.green-qr-canvas canvas{max-width:100%;height:auto!important}.green-qr-fallback{display:grid;gap:6px;color:#173f32;text-align:center;font-size:.8rem}.green-qr-fallback a{color:#0b6d3c;text-decoration:underline}.teacher-evaluation-qr-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px}.teacher-evaluation-qr-info{display:grid;gap:10px}.teacher-evaluation-qr-info h2{margin:0}.teacher-evaluation-qr-info p{margin:0;color:var(--muted)}.teacher-evaluation-window{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:.88rem}.teacher-evaluation-qr-wrap{display:grid;gap:8px;justify-items:center}.teacher-evaluation-qr-wrap>a{color:#0b6d3c;font-weight:800;font-size:.86rem;text-decoration:underline}.teacher-evaluation-empty{display:grid;place-items:center;gap:8px;min-height:210px;text-align:center;color:var(--muted)}.teacher-admin-evaluation-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center}.public-evaluation-shell{min-height:100vh;display:grid;place-items:start center;padding:clamp(14px,4vw,42px);background:linear-gradient(180deg,#f1f8f4,#eef3f1);color:#173f32}.public-evaluation-card{width:min(760px,100%);overflow:hidden;border-radius:24px;background:#fff;border:1px solid #dfe9e4;box-shadow:0 22px 60px #133f321a}.public-evaluation-image{display:block;width:100%;max-height:280px;object-fit:cover}.public-evaluation-header{display:grid;justify-items:start;gap:8px;padding:clamp(20px,5vw,38px);border-bottom:1px solid #e6eee9}.public-evaluation-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#e7f5ed;color:#138a4b}.public-evaluation-header h1{margin:1px 0;font-size:clamp(1.9rem,5vw,3rem);line-height:1.05;letter-spacing:-.045em}.public-evaluation-header p{margin:0;color:#60756c;line-height:1.55}.public-evaluation-teacher{display:grid;gap:2px;margin-top:8px;padding:10px 13px;border-radius:12px;background:#f2f8f5}.public-evaluation-teacher small{color:#71857c}.public-evaluation-window{display:flex;align-items:center;gap:6px;margin-top:4px;color:#60756c;font-size:.86rem}.public-evaluation-form{display:grid;gap:0;padding:0 clamp(20px,5vw,38px) clamp(24px,5vw,38px)}.public-evaluation-question{padding:24px 0;border-bottom:1px solid #e8efeb}.public-evaluation-question-title{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:10px}.public-evaluation-question-title>span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#138a4b;color:#fff;font-weight:900}.public-evaluation-question-title h2{margin:3px 0 13px;font-size:1.06rem;line-height:1.45}.public-evaluation-question-title em{margin-left:3px;color:#c0392b;font-style:normal}.public-evaluation-options{display:grid;gap:8px;margin-left:44px}.public-evaluation-options label{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #dce7e1;border-radius:12px;cursor:pointer;transition:.15s ease}.public-evaluation-options label.selected{border-color:#138a4b;background:#eef9f3}.public-evaluation-options input{accent-color:#138a4b}.public-evaluation-question>textarea{width:calc(100% - 44px);min-height:120px;margin-left:44px;padding:12px;resize:vertical;border:1px solid #dce7e1;border-radius:12px;font:inherit;color:#173f32;background:#fff}.public-evaluation-inline-message{margin-top:18px;padding:11px 13px;border-radius:12px;background:#fff4e5;color:#805b16}.public-evaluation-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:22px;background:#138a4b}.public-evaluation-submit:hover{background:#0e7440}.public-evaluation-closed{display:grid;gap:5px;margin:24px clamp(20px,5vw,38px);padding:16px;border:1px solid #efd49b;border-radius:14px;background:#fff9eb;color:#72531c}.public-evaluation-status,.public-evaluation-thanks{width:min(620px,100%);margin-top:8vh;padding:30px;border-radius:22px;background:#fff;border:1px solid #dfe9e4;box-shadow:0 18px 48px #133f3214;text-align:center}.public-evaluation-status.error{color:#a42e2e}.public-evaluation-thanks{display:grid;justify-items:center;gap:8px}.public-evaluation-thanks svg{color:#138a4b}.public-evaluation-thanks h1{margin:8px 0 0}.public-evaluation-thanks p{margin:0;color:#60756c}.partial-exams-drop-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;margin:12px 0;padding:12px 14px;border-radius:13px}.partial-exams-drop-alert.error{border:1px solid #f0c2c2;background:#fff2f2;color:#9f2f2f}.partial-exams-drop-alert.success{border:1px solid #b9dfcc;background:#edf9f3;color:#12643d}.partial-exams-drop-alert strong{display:block}.partial-exams-drop-alert ul{margin:6px 0 0;padding-left:18px}.partial-exams-drop-alert li+li{margin-top:3px}.partial-exams-grid-help{display:flex;align-items:center;gap:7px;margin:10px 0;color:var(--muted);font-size:.86rem}.partial-exams-calendar-scroll{overflow:auto;border:1px solid var(--border);border-radius:15px;background:var(--surface-solid)}.partial-exams-calendar{min-width:max(840px,calc(105px + (var(--partial-days) * 190px)))}.partial-exams-calendar-corner,.partial-exams-calendar-day,.partial-exams-calendar-time,.partial-exams-calendar-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.partial-exams-calendar-corner{position:sticky;top:0;left:0;z-index:6;width:105px;min-height:65px;display:grid;place-items:center;float:left;background:var(--surface-soft);color:var(--muted);font-size:.78rem;font-weight:900}.partial-exams-calendar-day{position:sticky;top:0;z-index:5;display:inline-grid;align-content:center;gap:2px;width:calc((100% - 105px) / var(--partial-days));min-width:190px;min-height:65px;padding:8px 10px;background:var(--surface-soft)}.partial-exams-calendar-day strong{color:var(--text);font-size:.78rem}.partial-exams-calendar-day span{color:var(--muted);font-size:.76rem}.partial-exams-calendar-row{clear:both;display:grid;grid-template-columns:105px repeat(var(--partial-days),minmax(190px,1fr));min-height:116px}.partial-exams-calendar-time{position:sticky;left:0;z-index:3;display:grid;align-content:start;justify-items:center;gap:1px;padding:11px 6px;background:var(--surface-soft)}.partial-exams-calendar-time strong{font-size:.88rem}.partial-exams-calendar-time small{color:var(--muted);font-size:.72rem}.partial-exams-calendar-cell{display:grid;align-content:start;gap:7px;min-width:190px;min-height:116px;padding:7px;background:var(--surface-solid);transition:background .12s ease,box-shadow .12s ease}.partial-exams-calendar-cell.disabled{background:repeating-linear-gradient(-45deg,var(--surface-soft),var(--surface-soft) 8px,rgba(148,163,184,.08) 8px,rgba(148,163,184,.08) 16px)}.partial-exams-calendar-cell.drop-ready{box-shadow:inset 0 0 0 1px #138a4b47;background:#138a4b09}.partial-exams-calendar-cell.drop-ready:hover{box-shadow:inset 0 0 0 2px #138a4b;background:#138a4b14}.partial-exam-card{display:grid;gap:3px;padding:8px 9px;border:1px solid #b9dfcc;border-radius:11px;background:#edf9f3;color:#184a35;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 5px 14px #13643d14}.partial-exam-card:active{cursor:grabbing}.partial-exam-card.dragging{opacity:.45}.partial-exam-card-top{display:flex;align-items:center;gap:5px;min-width:0}.partial-exam-card-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.partial-exam-card-top span{margin-left:auto;font-size:.7rem;font-weight:850;white-space:nowrap}.partial-exam-card>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.partial-exam-card>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#567265;font-size:.69rem}:root[data-theme=dark] .evaluation-tabs button.active,body.dark .evaluation-tabs button.active,:root[data-theme=dark] .partial-exam-card,body.dark .partial-exam-card{background:#138a4b2e;color:#a9e6c4}:root[data-theme=dark] .partial-exam-card,body.dark .partial-exam-card{border-color:#4abe8173}:root[data-theme=dark] .partial-exam-card>small,body.dark .partial-exam-card>small{color:#99b7aa}@media(max-width:980px){.evaluation-admin-hero{align-items:stretch;flex-direction:column}.evaluation-kpi-strip{min-width:0;width:100%}.evaluation-period-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.evaluation-question-controls{grid-template-columns:1fr 1fr}.evaluation-question-controls>button{grid-column:1 / -1;width:fit-content}.teacher-evaluation-qr-card,.teacher-admin-evaluation-grid{grid-template-columns:1fr}.teacher-evaluation-qr-wrap{justify-self:start}}@media(max-width:640px){.evaluation-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.evaluation-period-grid,.evaluation-question-controls,.evaluation-result-summary,.evaluation-question-card{grid-template-columns:1fr}.evaluation-question-number{width:30px;height:30px}.evaluation-admin-card{align-items:stretch;flex-direction:column}.evaluation-admin-card-actions{justify-content:flex-start}.public-evaluation-options{margin-left:0}.public-evaluation-question>textarea{width:100%;margin-left:0}}.green-qr-image{display:block;max-width:100%;height:auto}.partial-exam-card{touch-action:none}.partial-exams-calendar-cell.drop-hover{box-shadow:inset 0 0 0 3px #138a4b;background:#138a4b1c}.planning-admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.planning-concentrate-button,.planning-history-button{min-height:38px}.planning-filters.with-week-filter{grid-template-columns:minmax(220px,1fr) minmax(145px,180px) minmax(175px,220px)}.planning-table-card td strong.planning-teacher-name,.planning-table-card td strong.planning-teacher-reviewed,.planning-table-card td strong.planning-teacher-review-pending{color:#000!important}.planning-table-card td small.planning-review-pending-list{color:#a16207;font-weight:700;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.planning-table-card td small.planning-review-complete{color:#dc2626;font-weight:700}.planning-files-modal{width:min(1100px,calc(100vw - 28px));height:min(90vh,880px);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;gap:16px}.planning-files-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-right:34px}.planning-files-heading h2,.planning-files-heading p{margin-top:0}.planning-review-summary{flex:0 0 auto;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.planning-review-summary.pending{background:#fef3c7;color:#92400e}.planning-review-summary.reviewed{background:#fee2e2;color:#b91c1c}.planning-submission-list{min-height:0;max-height:calc(90vh - 185px);overflow-y:auto;overscroll-behavior:contain;display:grid;gap:12px;padding-right:8px}.planning-submission-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface)}.planning-submission-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:12px 14px;background:var(--surface-soft);border-bottom:1px solid var(--border)}.planning-submission-head>div{min-width:0;display:grid;gap:4px}.planning-submission-head>div:last-child{justify-items:end;text-align:right}.planning-submission-head small,.planning-submission-file small{color:var(--muted)}.planning-submission-files{display:grid}.planning-submission-file{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border-bottom:1px solid var(--border)}.planning-submission-file:last-child{border-bottom:0}.planning-submission-file>div{min-width:0;display:flex;align-items:center;gap:10px}.planning-submission-file>div>svg{flex:0 0 auto}.planning-submission-file span{min-width:0}.planning-submission-file strong,.planning-submission-file small{display:block;overflow-wrap:anywhere}.planning-submission-file .button{flex:0 0 auto;min-height:34px;padding:6px 10px}.planning-file-unavailable{flex:0 0 auto;color:#b91c1c;font-size:12px;font-weight:800}.planning-concentrate-modal{width:min(520px,calc(100vw - 28px));text-align:center}.planning-concentrate-icon{width:58px;height:58px;margin:4px auto 12px;border-radius:18px;display:grid;place-items:center;background:var(--primary-soft, #eef2ff);color:var(--primary)}.planning-concentrate-modal h2{margin:6px 0 10px}.planning-concentrate-modal>p:not(.eyebrow){color:var(--muted);line-height:1.55}.planning-concentrate-actions{display:flex;justify-content:center;gap:10px;margin-top:20px;flex-wrap:wrap}:root[data-theme=dark] .planning-table-card td strong.planning-teacher-name,:root[data-theme=dark] .planning-table-card td strong.planning-teacher-reviewed,:root[data-theme=dark] .planning-table-card td strong.planning-teacher-review-pending{color:#000!important}:root[data-theme=dark] .planning-table-card td small.planning-review-complete{color:#f87171}:root[data-theme=dark] .planning-table-card td small.planning-review-pending-list{color:#facc15}:root[data-theme=dark] .planning-review-summary.pending{background:#92400e42;color:#fde68a}:root[data-theme=dark] .planning-review-summary.reviewed{background:#991b1b47;color:#fecaca}@media(max-width:900px){.planning-admin-actions{width:100%;justify-content:flex-start}.planning-files-heading,.planning-submission-head,.planning-submission-file{flex-direction:column;align-items:stretch}.planning-submission-head>div:last-child{justify-items:start;text-align:left}.planning-submission-file .button{width:100%}}.planning-document-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.planning-review-check.reviewed,.planning-review-check.reviewed:disabled{background:#16a34a;border-color:#16a34a;color:#fff;opacity:1;cursor:default}:root[data-theme=dark] .planning-review-check.reviewed,:root[data-theme=dark] .planning-review-check.reviewed:disabled{background:#15803d;border-color:#22c55e;color:#fff}.drive-page,.notices-page{display:grid;gap:18px}.drive-page-head h1,.notices-page-head h1{display:flex;align-items:center;gap:10px}.drive-breadcrumb-panel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px}.drive-breadcrumb-panel button{background:transparent;color:var(--text);border:0;box-shadow:none;padding:7px 9px}.drive-breadcrumb-panel button:hover{background:var(--surface-soft);transform:none}.drive-breadcrumb-home{display:inline-flex;align-items:center;gap:7px;font-weight:900}.drive-breadcrumb-item{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.drive-create-folder{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(240px,1.3fr) auto;gap:16px;align-items:end}.drive-create-folder h3,.drive-create-folder p{margin:0}.drive-create-folder input{margin-bottom:0}.drive-drop-zone{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;border:2px dashed var(--border-strong);background:color-mix(in srgb,var(--accent-soft) 48%,var(--surface-solid));transition:border-color .16s ease,background .16s ease,transform .16s ease}.drive-drop-zone.is-dragging{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.005)}.drive-drop-zone>svg{color:var(--accent)}.drive-drop-zone div{display:grid;gap:4px}.drive-drop-zone div span{color:var(--muted);font-size:.9rem}.drive-root-hint,.drive-readonly-note{display:flex;align-items:center;gap:9px}.drive-content-panel{display:grid;gap:16px}.drive-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.drive-folder-card-shell{position:relative;min-width:0}.drive-folder-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;min-height:86px;padding:15px 52px 15px 15px;color:var(--text);background:var(--surface-soft);border:1px solid var(--border);box-shadow:none}.drive-folder-card:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--text)}.drive-folder-card>svg{color:#e3a008;fill:color-mix(in srgb,#fbbf24 22%,transparent);flex:0 0 auto}.drive-folder-card span{min-width:0;display:grid;gap:5px}.drive-folder-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-folder-card small,.drive-file-main small{color:var(--muted);font-size:.8rem;font-weight:650}.drive-file-list{display:grid;border:1px solid var(--border);border-radius:16px;overflow:hidden}.drive-file-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,.4fr) auto;align-items:center;gap:13px;padding:12px 14px;background:var(--surface-solid);border-bottom:1px solid var(--border)}.drive-file-row:last-child{border-bottom:0}.drive-file-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--muted);background:var(--surface-soft);border:1px solid var(--border)}.drive-file-icon.kind-image{color:#0f766e;background:#ecfdf5}.drive-file-icon.kind-pdf{color:#b91c1c;background:#fef2f2}.drive-file-main{min-width:0;display:grid;gap:4px}.drive-file-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-file-owner{color:var(--muted);font-size:.86rem}.drive-file-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.drive-file-actions .secondary{display:inline-flex;align-items:center;gap:7px}.drive-delete-button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid #fecaca;border-radius:10px;background:#fff1f2;color:#b91c1c;box-shadow:none}.drive-folder-card-shell>.drive-delete-button{position:absolute;top:50%;right:10px;z-index:2;transform:translateY(-50%)}.drive-folder-card-shell>.drive-delete-button:hover{transform:translateY(-50%) scale(1.04)}.drive-delete-button:hover{border-color:#ef4444;background:#fee2e2;color:#991b1b}.drive-delete-button.inline{flex:0 0 auto}.drive-delete-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1250;display:grid;place-items:center;padding:22px;background:#0f172aad;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.drive-delete-modal{width:min(560px,96vw);display:grid;grid-template-columns:auto 1fr;gap:16px;padding:22px;border:1px solid #fecaca;border-radius:20px;background:var(--surface-solid);box-shadow:0 26px 80px #00000047}.drive-delete-modal-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:#fee2e2;color:#b91c1c}.drive-delete-modal h2,.drive-delete-modal p{margin:0}.drive-delete-modal>div:nth-child(2){display:grid;gap:8px}.drive-delete-modal>div:nth-child(2)>p:not(.eyebrow),.drive-delete-modal small{color:var(--muted);line-height:1.55}.drive-delete-target-name{display:block;padding:10px 12px;border-radius:11px;background:var(--surface-soft);overflow-wrap:anywhere}.drive-delete-modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.drive-delete-confirm{display:inline-flex;align-items:center;gap:7px;border-color:#dc2626!important;background:#dc2626!important;color:#fff!important}.drive-delete-confirm:hover{background:#b91c1c!important;border-color:#b91c1c!important}.drive-empty-state{min-height:90px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:22px}.drive-viewer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;padding:22px;background:#020617d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.drive-viewer{width:min(1180px,96vw);height:min(860px,92vh);display:grid;grid-template-rows:auto 1fr;overflow:hidden;border-radius:22px;background:var(--surface-solid);box-shadow:0 30px 100px #00000061}.drive-viewer:fullscreen{width:100vw;height:100vh;border-radius:0}.drive-viewer-head{min-height:64px;padding:11px 14px 11px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border)}.drive-viewer-head>div:first-child{min-width:0;display:grid;gap:2px}.drive-viewer-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-viewer-head span{color:var(--muted);font-size:.8rem}.drive-viewer-head>div:last-child{display:flex;gap:6px}.drive-viewer-body{min-height:0;display:grid;place-items:center;background:#0b1220;overflow:auto}.drive-viewer-body iframe{width:100%;height:100%;border:0;background:#fff}.drive-viewer-body img{display:block;max-width:100%;max-height:100%;object-fit:contain}.notices-unread-badge{min-width:120px;display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;column-gap:7px;padding:11px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-solid)}.notices-unread-badge span{grid-column:1 / -1;color:var(--muted);font-size:.76rem;text-align:center}.notices-unread-badge.has-unread{border-color:#fdba74;background:#fff7ed;color:#9a3412}.notice-composer{display:grid;gap:16px}.notice-message-field{display:grid!important;gap:8px;margin:0!important}.notice-message-field textarea{min-height:128px;resize:vertical;margin:0;text-transform:none;letter-spacing:normal}.notice-audience-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notice-audience-options>label{display:grid!important;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;min-height:76px;margin:0!important;padding:13px;border:1px solid var(--border);border-radius:15px;background:var(--surface-soft);text-transform:none!important;letter-spacing:normal!important;cursor:pointer}.notice-audience-options>label.selected{border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:var(--accent-soft)}.notice-audience-options input{width:auto!important;min-height:0!important;margin:0!important}.notice-audience-options span{display:grid;gap:4px}.notice-audience-options small{color:var(--muted);font-weight:600}.notice-recipient-picker{display:grid;gap:10px;padding:13px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}.notice-recipient-picker-head,.notice-read-tracking-head{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.86rem}.notice-recipient-picker-head strong,.notice-read-tracking-head strong{color:var(--text)}.notice-recipient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.notice-recipient-grid label{display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin:0!important;padding:10px 11px;border:1px solid var(--border);border-radius:12px;background:var(--surface-solid);text-transform:none!important;letter-spacing:normal!important}.notice-recipient-grid label.selected{border-color:#86efac;background:#f0fdf4}.notice-recipient-grid input{width:auto!important;min-height:0!important;margin:0!important}.notice-recipient-grid span{display:grid;gap:2px;min-width:0}.notice-recipient-grid small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-composer-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.notice-composer-actions>span{color:var(--muted);font-size:.8rem}.notice-composer-actions button{display:inline-flex;align-items:center;gap:7px}.notices-list{display:grid;gap:12px}.notice-card{display:grid;gap:13px;position:relative;overflow:hidden}.notice-card.is-unread{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 12px 34px #2563eb1a}.notice-card.is-unread:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}.notice-card-head,.notice-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.85rem}.notice-scope-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;font-weight:850}.notice-scope-badge.general{color:#1d4ed8;background:#eff6ff}.notice-scope-badge.specific{color:#7c3aed;background:#f5f3ff}.notice-card-message{margin:0;white-space:pre-wrap;line-height:1.65;font-size:.98rem}.notice-card-footer button{display:inline-flex;align-items:center;gap:7px}.notice-acknowledged{display:inline-flex;align-items:center;gap:6px;color:var(--success);font-weight:800}.notice-read-tracking{display:grid;gap:9px;padding-top:11px;border-top:1px solid var(--border)}.notice-recipient-statuses{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:8px}.notice-recipient-statuses>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft)}.notice-recipient-statuses>div>span:first-child{min-width:0;display:grid;gap:2px}.notice-recipient-statuses small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-recipient-statuses>div>span:last-child{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:800;white-space:nowrap}.notice-recipient-statuses .acknowledged>span:last-child{color:var(--success)}.notice-recipient-statuses .pending>span:last-child{color:var(--warning)}.notice-no-recipients{grid-column:1 / -1;color:var(--muted);font-size:.85rem}@media(max-width:900px){.drive-create-folder{grid-template-columns:1fr;align-items:stretch}.drive-drop-zone{grid-template-columns:auto 1fr}.drive-drop-zone>button{grid-column:1 / -1}.drive-file-row{grid-template-columns:auto minmax(0,1fr) auto}.drive-file-owner{display:none}.notice-audience-options{grid-template-columns:1fr}}@media(max-width:620px){.drive-file-row{grid-template-columns:auto minmax(0,1fr)}.drive-file-actions{grid-column:1 / -1;justify-content:stretch}.drive-file-actions .secondary{flex:1;justify-content:center}.drive-viewer-backdrop{padding:0}.drive-viewer{width:100vw;height:100vh;border-radius:0}.drive-delete-backdrop{padding:10px}.drive-delete-modal{grid-template-columns:1fr}.drive-delete-modal-icon{width:46px;height:46px}.drive-delete-modal-actions{grid-column:1;flex-direction:column-reverse}.drive-delete-modal-actions button{justify-content:center}.notice-card-head,.notice-card-footer{align-items:flex-start;flex-direction:column}.notice-recipient-statuses>div{align-items:flex-start;flex-direction:column}}.drive-page .notice.danger,.notices-page .notice.danger{background:#fef2f2;color:#991b1b;border-color:#fecaca}.print-schedules-page{display:grid;gap:18px}.print-schedules-mode-panel{padding:10px}.print-schedules-mode-tabs{display:flex;gap:8px}.print-schedules-mode-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font-weight:800}.print-schedules-mode-tabs button.active{border-color:#198754;background:#eaf8ef;color:#11633c}.print-schedules-floor-panel{display:grid;gap:18px}.print-schedules-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#0f5e42}.print-schedules-panel-heading h2{margin:2px 0 0}.print-schedules-floor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.print-schedules-floor-button{min-height:132px;display:grid;place-items:center;align-content:center;gap:7px;padding:18px;border:1px solid #b9d7c9;border-radius:18px;background:linear-gradient(180deg,#f7fcf9,#edf8f2);color:#0b4c3a;box-shadow:0 10px 24px #073b2d0f}.print-schedules-floor-button:hover{transform:translateY(-2px);border-color:#2f9b67;box-shadow:0 15px 30px #073b2d1c}.print-schedules-floor-button strong{font-size:18px}.print-schedules-floor-button span{color:#5d756c;font-size:11px;font-weight:800}.print-schedules-group-search{display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--muted)}.print-schedules-group-search input{flex:1;border:0;background:transparent;color:var(--text);font-size:14px}.print-schedules-group-search input:focus{outline:none}.print-schedules-group-hint{margin:0;color:var(--muted);font-size:13px}.print-schedules-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.print-schedules-group-button{display:grid;gap:5px;padding:16px 18px;border:1px solid #b9d7c9;border-radius:16px;background:linear-gradient(180deg,#f7fcf9,#edf8f2);color:#0b4c3a;text-align:left;box-shadow:0 10px 24px #073b2d0f}.print-schedules-group-button:hover{transform:translateY(-2px);border-color:#2f9b67;box-shadow:0 15px 30px #073b2d1c}.print-schedules-group-button strong{font-size:17px}.print-schedules-group-button span{color:#45605e;font-size:12px;font-weight:700}.print-schedules-group-button small{color:#5d756c;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.print-schedules-preview-shell{display:grid;gap:14px}.print-schedules-preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px}.print-schedules-preview-toolbar>div{display:grid;gap:3px}.print-schedules-preview-toolbar span{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.print-schedules-preview-toolbar strong{color:#0b4c3a;font-size:15px}.print-schedules-preview-toolbar small{color:var(--muted)}.print-schedules-preview-actions{display:flex;gap:10px}.print-schedules-preview-actions button{display:inline-flex;align-items:center;gap:7px}.print-schedules-print-area{display:grid;gap:18px}.print-schedules-document-heading{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid #b9d7c9;border-radius:16px;background:#f4fbf7;color:#0b4c3a}.print-schedules-document-heading img{width:54px;height:54px;object-fit:contain}.print-schedules-document-heading h1{margin:0;font-size:20px}.print-schedules-document-heading p{margin:3px 0 0;color:#567166;font-size:12px;font-weight:750}.print-schedules-sheets{display:grid;gap:18px}.print-schedule-sheet{background:#fff;border:1px solid #879d93;border-radius:14px;overflow:hidden;box-shadow:0 10px 24px #073b2d0e}.print-schedule-sheet-header{display:flex;align-items:stretch;justify-content:space-between;gap:14px;padding:12px 16px;background:#2f9b67;color:#062e23}.print-schedule-sheet-location span,.print-schedule-sheet-group span{display:block;font-size:9px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.print-schedule-sheet-location h2{margin:2px 0 0;font-size:19px}.print-schedule-sheet-group{min-width:190px;padding:7px 12px;border-radius:10px;background:#ffffffe6;text-align:center}.print-schedule-sheet-group span{color:#5a746a}.print-schedule-sheet-group strong{display:block;margin-top:2px;color:#073b2d;font-size:15px}.print-schedule-sheet-meta{display:flex;flex-wrap:wrap;gap:8px 24px;padding:8px 14px;border-bottom:1px solid #9eb2a9;background:#f7fbf9;color:#415a50;font-size:10px}.print-schedule-permission-note{margin:0;padding:8px 14px;background:#fffbeb;color:#92400e;font-size:11px;font-weight:700}.print-schedule-table-wrap{border:0}.print-schedule-table{table-layout:fixed}.print-schedule-table .print-schedule-col-time{width:10%}.print-schedule-table .print-schedule-col-class{width:26%}.print-schedule-table .print-schedule-col-status{width:13%}.print-schedule-table .print-schedule-col-activity{width:30%}.print-schedule-table .print-schedule-col-signature{width:21%}.print-schedule-table thead th{background:#e4f4ea;color:#0b3f30}.print-schedule-table tbody tr{min-height:72px;height:72px}.print-schedule-time-cell strong{font-size:15px}.print-schedule-time-cell span:before{content:"a ";font-weight:700;color:#6a7c74}.print-schedule-status-cell{text-align:center}.print-schedule-activity-cell{min-height:72px;vertical-align:top!important;padding:10px!important}.print-schedule-activity-cell span{font-size:12px;line-height:1.35;color:var(--text)}.print-schedule-writing-lines{min-height:40px;display:grid;align-content:space-evenly;gap:9px}.print-schedule-writing-lines i{display:block;border-bottom:1px solid #9aa9a2}.print-schedule-signature-cell{min-height:72px;text-align:center}.print-schedule-signature-line{min-height:54px;border-bottom:1px solid #243c32}.print-schedule-signature-img{max-width:140px;max-height:46px;object-fit:contain}.print-schedule-signature-status{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:700}.print-schedule-signature-status.pending{color:#92400e}.print-schedule-signature-status.error{color:#b91c1c}.print-schedules-modal{width:min(620px,96vw)}.print-schedules-modal-title{display:flex;align-items:center;gap:12px;color:#0f5e42;padding-right:42px}.print-schedules-modal-title span{display:block;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.09em}.print-schedules-modal-title h2{margin:2px 0 0;color:var(--text)}.print-schedules-modal>p{color:var(--muted)}.print-schedules-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.print-schedules-date-range label{display:grid;gap:6px;font-weight:700;font-size:12px;color:var(--muted)}.print-schedules-date-range input[type=date]{padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.print-schedules-modal-shortcuts{display:flex;gap:8px;margin-top:12px}.print-schedules-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}.print-schedules-modal-actions button{display:inline-flex;align-items:center;gap:7px}:root[data-theme=dark] .print-schedules-mode-tabs button{background:var(--surface);color:var(--text);box-shadow:none}:root[data-theme=dark] .print-schedules-mode-tabs button.active{background:#19875438;color:#b7f7d2}:root[data-theme=dark] .print-schedules-floor-button{background:#162b24;color:#b9f3d6;border-color:#365a4c}:root[data-theme=dark] .print-schedules-floor-button span{color:#9fb9ad}:root[data-theme=dark] .print-schedules-group-button{background:#162b24;color:#b9f3d6;border-color:#365a4c}:root[data-theme=dark] .print-schedules-group-button span{color:#cfe6df}:root[data-theme=dark] .print-schedules-group-button small{color:#9fb9ad}:root[data-theme=dark] .print-schedules-document-heading{background:#132821;border-color:#365a4c}:root[data-theme=dark] .print-schedule-sheet{background:#101f1a;border-color:#70897f}:root[data-theme=dark] .print-schedule-sheet-meta{background:#162821;color:#c6d7cf}:root[data-theme=dark] .print-schedule-table thead th{background:#17362b;color:#ecfdf5}:root[data-theme=dark] .print-schedule-permission-note{background:#2a2110;color:#fbd88a}.print-schedules-subtabs{margin:-4px 0 2px}.print-schedules-subtabs button{padding:8px 14px;font-size:13px}.weekly-schedule-option{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:14px 15px;border:1px solid #cfe0d8;border-radius:16px;background:#f4fbf7;color:#0f5e42;text-align:left}.weekly-schedule-option>svg{margin-bottom:2px}.weekly-schedule-option strong{font-size:17px}.weekly-schedule-option span{color:#45605e;font-size:12px;font-weight:700}.weekly-schedule-option small{color:#5d756c;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.weekly-schedule-option-actions{display:flex;gap:8px;margin-top:auto;padding-top:12px;width:100%}.weekly-schedule-option-actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;font-size:13px}.weekly-schedule-table-wrap{border:0;overflow-x:auto}.weekly-schedule-table{width:100%;min-width:880px;table-layout:fixed;border-collapse:collapse}.weekly-schedule-table th,.weekly-schedule-table td{border:1px solid #9eb2a9;padding:7px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.weekly-schedule-table thead th{background:#e4f4ea;color:#0b3f30;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;text-align:center}.weekly-schedule-table thead th:first-child,.weekly-schedule-time{width:88px}.weekly-schedule-time{background:#f2f8f4;text-align:center;vertical-align:middle}.weekly-schedule-time strong{display:block;font-size:14px;color:#0b3f30}.weekly-schedule-time span{display:block;font-size:10px;font-weight:700;color:#6a7c74}.weekly-schedule-cell{height:64px}.weekly-schedule-cell.empty{background:repeating-linear-gradient(135deg,transparent 0 7px,rgba(15,94,66,.045) 7px 14px)}.weekly-schedule-card{display:grid;gap:2px;padding:6px 7px;border:1px solid #8fc4a8;border-radius:9px;background:#eaf6ef}.weekly-schedule-card+.weekly-schedule-card{margin-top:5px}.weekly-schedule-card strong{font-size:12px;line-height:1.25;color:#123c2e;overflow-wrap:anywhere}.weekly-schedule-card span{font-size:11px;line-height:1.25;color:#4f6a60;overflow-wrap:anywhere}.weekly-schedule-card small{font-size:10px;font-weight:850;color:#0f5e42}.weekly-schedule-card.outside{background:#fdf4e3;border-color:#d8b063}.weekly-schedule-card.outside small{color:#92400e}.weekly-schedule-empty-row{padding:20px!important;text-align:center;color:var(--muted);font-weight:700}.weekly-schedule-note{margin:0;padding:8px 14px;background:#fffbeb;color:#92400e;font-size:11px;font-weight:700}:root[data-theme=dark] .weekly-schedule-option{background:#162b24;border-color:#365a4c;color:#b9f3d6}:root[data-theme=dark] .weekly-schedule-option span{color:#cfe6df}:root[data-theme=dark] .weekly-schedule-option small{color:#9fb9ad}:root[data-theme=dark] .weekly-schedule-table th,:root[data-theme=dark] .weekly-schedule-table td{border-color:#3c5a4f}:root[data-theme=dark] .weekly-schedule-table thead th{background:#17362b;color:#ecfdf5}:root[data-theme=dark] .weekly-schedule-time{background:#162821}:root[data-theme=dark] .weekly-schedule-time strong{color:#d9ece4}:root[data-theme=dark] .weekly-schedule-time span{color:#a9c7bb}:root[data-theme=dark] .weekly-schedule-cell.empty{background:repeating-linear-gradient(135deg,transparent 0 7px,rgba(185,243,214,.05) 7px 14px)}:root[data-theme=dark] .weekly-schedule-card{background:#16333d;border-color:#2f5a68}:root[data-theme=dark] .weekly-schedule-card strong{color:#d7ecf3}:root[data-theme=dark] .weekly-schedule-card span{color:#9fc2ce}:root[data-theme=dark] .weekly-schedule-card small{color:#8fe0b6}:root[data-theme=dark] .weekly-schedule-card.outside{background:#3a2f16;border-color:#7d6528}:root[data-theme=dark] .weekly-schedule-card.outside small{color:#fbd88a}:root[data-theme=dark] .weekly-schedule-note{background:#2a2110;color:#fbd88a}@media(max-width:900px){.print-schedules-floor-grid,.print-schedules-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.print-schedules-date-range{grid-template-columns:1fr}.print-schedules-preview-toolbar{align-items:stretch;flex-direction:column}.print-schedules-preview-actions{flex-direction:column}}@media(max-width:560px){.print-schedules-floor-grid,.print-schedules-group-grid{grid-template-columns:1fr}.print-schedule-sheet-header{flex-direction:column}.print-schedule-sheet-group{min-width:0;width:100%}}@media print{@page{size:A4 landscape;margin:7mm}html,body{background:#fff!important}body *{visibility:hidden!important}.print-schedules-print-area,.print-schedules-print-area *{visibility:visible!important}.print-schedules-screen-only,.print-schedules-modal-backdrop{display:none!important}.print-schedules-print-area{position:absolute;inset:0 auto auto 0;width:100%;display:block;background:#fff!important}.print-schedules-document-heading{display:flex;margin:0 0 5mm;padding:3mm 4mm;border:1px solid #3a6e59;border-radius:0;background:#eef8f2!important;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-schedules-document-heading img{width:14mm;height:14mm}.print-schedules-document-heading h1{font-size:15pt}.print-schedules-document-heading p{font-size:8pt}.print-schedules-sheets{display:block}.print-schedule-sheet{display:block;margin:0 0 5mm;border-radius:0;box-shadow:none;page-break-inside:avoid;break-inside:avoid-page;page-break-after:always;break-after:page;background:#fff!important}.print-schedule-sheet:last-child{page-break-after:auto;break-after:auto}.print-schedule-sheet-header,.print-schedule-sheet-meta,.print-schedule-table thead th{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-schedule-sheet-header{padding:2.5mm 4mm;background:#2f9b67!important}.print-schedule-sheet-location h2{font-size:14pt}.print-schedule-sheet-group{padding:1.5mm 4mm;background:#fff!important}.print-schedule-sheet-meta{padding:1.5mm 3mm;background:#f7fbf9!important;font-size:7.5pt}.print-schedule-permission-note{display:none!important}.print-schedule-table{width:100%;min-width:0;font-size:8pt}.print-schedule-table thead{display:table-header-group}.print-schedule-table tbody tr{height:9mm;page-break-inside:avoid;break-inside:avoid}.print-schedule-table th,.print-schedule-table td{padding:1.6mm!important;border:1px solid #17212b!important}.print-schedule-table thead th{background:#e4f4ea!important;color:#0b3f30!important;font-size:7.5pt}.print-schedule-time-cell strong{font-size:10pt}.print-schedule-time-cell span{font-size:7pt}.print-schedule-table .attendance-physical-class-info>strong{font-size:9pt}.print-schedule-table .attendance-physical-class-info>span{font-size:8pt}.print-schedule-activity-cell span{font-size:7.6pt}.print-schedule-writing-lines,.print-schedule-signature-line{min-height:6.5mm}.print-schedule-signature-img{max-width:30mm;max-height:9mm}.print-schedule-status-cell .pill{font-size:6.6pt;padding:3px 6px}.weekly-schedule-table-wrap{overflow:visible!important}.weekly-schedule-table{width:100%;min-width:0;font-size:7.6pt}.weekly-schedule-table thead{display:table-header-group}.weekly-schedule-table th,.weekly-schedule-table td{padding:.9mm!important;border:1px solid #17212b!important;white-space:normal!important}.weekly-schedule-table thead th{background:#e4f4ea!important;color:#0b3f30!important;font-size:7pt}.weekly-schedule-table thead th:first-child,.weekly-schedule-time{width:16mm}.weekly-schedule-time{background:#f2f8f4!important}.weekly-schedule-time strong{font-size:9pt}.weekly-schedule-time span{font-size:6.4pt}.weekly-schedule-cell{height:8mm}.weekly-schedule-cell.empty{background:none!important}.weekly-schedule-card{padding:.8mm 1mm;border-radius:0;background:#eaf6ef!important;border-color:#4f8c6d!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.weekly-schedule-card+.weekly-schedule-card{margin-top:.8mm}.weekly-schedule-card.outside{background:#fdf4e3!important;border-color:#b98c2f!important}.weekly-schedule-card strong{font-size:6.9pt;line-height:1.2}.weekly-schedule-card span{font-size:6.3pt;line-height:1.2}.weekly-schedule-card small{font-size:5.9pt}.print-schedules-print-area:has(.weekly-schedule-sheet) .print-schedules-document-heading{margin-bottom:3mm;padding:2mm 3mm}.print-schedules-print-area:has(.weekly-schedule-sheet) .print-schedules-document-heading img{width:10mm;height:10mm}.print-schedules-print-area:has(.weekly-schedule-sheet) .print-schedules-document-heading h1{font-size:12pt}.print-schedules-print-area:has(.weekly-schedule-sheet) .print-schedules-document-heading p{font-size:7pt}.weekly-schedule-sheet .print-schedule-sheet-header{padding:1.8mm 4mm}.weekly-schedule-sheet .print-schedule-sheet-meta{padding:1mm 3mm;font-size:7pt}.weekly-schedule-note{display:block!important;padding:1.5mm 3mm;background:#fffbeb!important;font-size:7pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.students-page{display:flex;flex-direction:column;gap:18px}.students-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:22px 24px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(135deg,#147a4f1f,#147a4f08)}.students-hero h1{margin:6px 0 4px;font-size:clamp(1.8rem,3vw,2.5rem)}.students-hero p,.students-panel-title p,.students-list-header p{margin:0;color:var(--muted)}.students-eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--primary);font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}.students-total-card{min-width:160px;padding:14px 18px;border-radius:16px;background:var(--surface-solid);border:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-end}.students-total-card strong{font-size:2rem;color:var(--primary);line-height:1}.students-total-card span{margin-top:6px;color:var(--muted);font-size:.85rem}.students-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px}.students-form,.students-import-card,.students-list-panel{padding:20px}.students-panel-title>div{display:flex;align-items:flex-start;gap:10px}.students-panel-title h2,.students-list-header h2{margin:0 0 4px;font-size:1.05rem}.students-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:18px 0}.students-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.9rem}.students-form-grid input{width:100%}.students-import-card{display:flex;flex-direction:column;gap:16px}.students-import-map{display:grid;grid-template-columns:1fr 1fr;gap:9px}.students-import-map span{padding:10px 11px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);font-size:.83rem}.students-import-help{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}.students-file-input{display:none}.students-notice{padding:12px 15px;border-radius:12px;border:1px solid transparent;font-weight:700}.students-notice.success{background:#1987541a;border-color:#19875440;color:#137a4b}.students-notice.error{background:#dc35451a;border-color:#dc354540;color:#b42332}.students-list-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.students-table-wrap table{min-width:680px}.students-table-wrap td,.students-table-wrap th{vertical-align:middle}.students-table-wrap tbody tr:hover{background:#147a4f0b}@media(max-width:900px){.students-grid{grid-template-columns:1fr}.students-hero{align-items:flex-start;flex-direction:column}.students-total-card{align-items:flex-start}.students-form-grid,.students-import-map{grid-template-columns:1fr}}@media screen and (min-width:768px)and (max-width:1100px)and (orientation:portrait){.attendance-page,.attendance-page>*,.attendance-page .attendance-primary-capture-panel,.attendance-page .attendance-list-panel,.attendance-page .attendance-group-navigation,.attendance-page .attendance-capture-toolbar,.attendance-page .attendance-physical-wrap{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.attendance-page{overflow-x:hidden;-webkit-text-size-adjust:100%}.attendance-page .attendance-physical-wrap{position:relative;overflow-y:visible;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.attendance-page .attendance-physical-table{width:100%!important;max-width:100%!important;table-layout:fixed}.attendance-page .attendance-physical-table th,.attendance-page .attendance-physical-table td{min-width:0;padding:5px 4px!important;font-size:10px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}.attendance-page .attendance-physical-table thead th{padding:6px 3px!important;font-size:9px!important;letter-spacing:0}.attendance-page .attendance-physical-time-cell strong{font-size:12px}.attendance-page .attendance-physical-time-cell span,.attendance-page .attendance-physical-class-info>small,.attendance-page .attendance-physical-status-cell>small,.attendance-page .attendance-physical-topic-cell>small{font-size:8.5px;line-height:1.15}.attendance-page .attendance-physical-class-info>strong,.attendance-page .attendance-physical-class-info>span{font-size:10.5px;line-height:1.12}.attendance-page .attendance-inline-coordinator{margin-top:4px;padding-top:4px;gap:3px}.attendance-page .attendance-inline-coordinator>span{font-size:8px}.attendance-page .attendance-inline-coordinator select,.attendance-page .responsible-profile-readonly,.attendance-page .attendance-topic-suggestion{min-width:0;min-height:28px;padding:3px 5px;font-size:9px}.attendance-page .attendance-topic-input{width:100%;min-width:0;min-height:58px;padding:5px 6px;resize:vertical;font-size:9.5px;line-height:1.2}.attendance-page .attendance-signature-main{width:100%;min-width:0;min-height:44px;padding:4px 3px;gap:3px;font-size:9.5px}.attendance-page .attendance-signature-main svg{width:14px;height:14px;flex:0 0 auto}.attendance-page .physical-check-actions{display:flex;flex-wrap:nowrap;gap:4px;margin-bottom:4px}.attendance-page .physical-check-actions .check-button{width:36px;min-width:36px;height:36px;padding:0;border-radius:8px;font-size:18px}.attendance-page .attendance-arrival-time{margin:2px 0;font-size:10px}.attendance-page .physical-validation-stack .attendance-validation-actions{gap:2px}.attendance-page .physical-validation-stack .attendance-validation-actions .mini,.attendance-page .attendance-exit-button{min-height:27px;padding:3px 4px;font-size:8px;line-height:1.1}.attendance-page .attendance-group-navigation-compact{grid-template-columns:38px minmax(0,1fr) minmax(100px,auto) 38px;gap:5px;padding:5px}.attendance-page .attendance-group-navigation-compact .attendance-group-arrow{width:38px;min-height:42px}.attendance-page .attendance-group-navigation-compact .attendance-direct-schedule-button{min-width:0;min-height:38px;padding:5px 7px;font-size:9px;white-space:normal}.attendance-page .attendance-capture-toolbar{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6px}.attendance-page .attendance-capture-date-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.attendance-page .attendance-capture-date-controls select,.attendance-page .attendance-capture-date-controls input,.attendance-page .attendance-global-coordinator select{min-width:0;width:100%}}@media screen and (min-width:768px)and (max-width:1100px)and (orientation:portrait){.attendance-page .attendance-capture-toolbar,.attendance-page .attendance-capture-date-controls{grid-template-columns:1fr}.attendance-page .attendance-physical-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.attendance-page .attendance-physical-wrap::-webkit-scrollbar{height:7px}.attendance-page .attendance-physical-wrap::-webkit-scrollbar-thumb{border-radius:999px;background:#2c654e6b}.attendance-page .attendance-physical-wrap::-webkit-scrollbar-track{background:#2c654e14}.attendance-page .attendance-physical-table{min-width:720px!important;width:100%!important}.attendance-page .attendance-physical-col-time{width:70px}.attendance-page .attendance-physical-col-class{width:210px}.attendance-page .attendance-physical-col-signature{width:105px}.attendance-page .attendance-physical-col-topic{width:185px}.attendance-page .attendance-physical-col-status{width:150px}.attendance-page .attendance-physical-table thead th:nth-child(1),.attendance-page .attendance-physical-table tbody td:nth-child(1){position:sticky;left:0;z-index:4}.attendance-page .attendance-physical-table thead th:nth-child(2),.attendance-page .attendance-physical-table tbody td:nth-child(2){position:sticky;left:70px;z-index:3;box-shadow:5px 0 7px -7px #0f172a8c}.attendance-page .attendance-physical-table thead th:nth-child(1),.attendance-page .attendance-physical-table thead th:nth-child(2){z-index:7;background:#ecf6ef}.attendance-page .attendance-physical-table tbody tr:nth-child(odd) td:nth-child(1),.attendance-page .attendance-physical-table tbody tr:nth-child(odd) td:nth-child(2){background:var(--surface, #fff)}.attendance-page .attendance-physical-table tbody tr:nth-child(2n) td:nth-child(1),.attendance-page .attendance-physical-table tbody tr:nth-child(2n) td:nth-child(2){background:#fbfdfc}:root[data-theme=dark] .attendance-page .attendance-physical-table thead th:nth-child(1),:root[data-theme=dark] .attendance-page .attendance-physical-table thead th:nth-child(2){background:#17362b}:root[data-theme=dark] .attendance-page .attendance-physical-table tbody td:nth-child(1),:root[data-theme=dark] .attendance-page .attendance-physical-table tbody td:nth-child(2){background:var(--surface, #111827)}}.students-list-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.student-name-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;color:var(--text);font:inherit;font-weight:800;text-align:left;cursor:pointer}.student-name-link:hover,.student-name-link:focus-visible{color:#1769d2;text-decoration:underline;text-underline-offset:3px}.student-edit-button{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:10px;background:#147a4f17;color:var(--primary);font-size:.84rem}.student-edit-button:hover{background:#147a4f29}.student-edit-modal{width:min(720px,96vw)}.students-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.students-edit-grid label{font-weight:800;font-size:.9rem}.students-inline-warning{display:flex;align-items:center;gap:8px;margin-top:14px;padding:11px 13px;border:1px solid rgba(202,138,4,.3);border-radius:12px;background:#facc1517;color:#8a5a00;font-weight:700;font-size:.88rem}.students-groups-modal{width:min(1080px,97vw);max-height:min(92vh,900px);overflow:hidden;display:flex;flex-direction:column}.students-groups-modal>.modal-header{flex:0 0 auto}.students-groups-layout{min-height:0;display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:16px;overflow:hidden}.students-group-browser{min-height:0;display:flex;flex-direction:column;gap:9px;padding-right:6px;overflow-y:auto}.students-group-card{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 13px;border:1px solid var(--border);border-radius:13px;background:var(--surface-soft);color:var(--text);text-align:left}.students-group-card strong{font-size:1rem}.students-group-card span{font-size:.83rem;color:var(--muted)}.students-group-card small{font-size:.76rem;color:var(--muted)}.students-group-card:hover,.students-group-card.active{border-color:#147a4f73;background:#147a4f17}.students-group-members{min-width:0;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--surface-solid)}.students-group-members-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:#147a4f0e}.students-group-members-head span{display:block;color:var(--muted);font-size:.78rem}.students-group-members-head h3{margin:2px 0 0}.students-group-members-head>strong{color:var(--primary);white-space:nowrap}.students-group-table-wrap{min-height:0;overflow:auto}.students-group-table-wrap table{min-width:560px}.students-group-empty{min-height:280px;display:grid;place-items:center;align-content:center;gap:8px;padding:24px;text-align:center;color:var(--muted)}.students-group-empty strong{color:var(--text);font-size:1.05rem}.student-profile-modal{width:min(1120px,97vw);max-height:min(94vh,960px);padding:24px;overflow-y:auto}.student-profile-loading{min-height:260px;display:grid;place-items:center;color:var(--muted);font-weight:800}.student-profile-header{display:flex;align-items:center;gap:14px;padding-right:48px}.student-profile-avatar{width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto;border-radius:18px;background:#147a4f1c;color:var(--primary)}.student-profile-header h2{margin:3px 0 4px;font-size:clamp(1.45rem,2.4vw,2rem)}.student-profile-header p{margin:0;color:var(--muted)}.student-profile-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.student-profile-metrics article{padding:14px 16px;border:1px solid var(--border);border-radius:15px;background:var(--surface-soft)}.student-profile-metrics strong{display:block;font-size:1.55rem;color:var(--primary)}.student-profile-metrics span{color:var(--muted);font-size:.82rem}.student-profile-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.student-profile-section-title{display:flex;align-items:flex-start;gap:9px;margin-bottom:12px;color:var(--primary)}.student-profile-section-title h3{margin:0;color:var(--text);font-size:1.04rem}.student-profile-section-title p{margin:3px 0 0;color:var(--muted);font-size:.84rem}.student-profile-list{display:grid;gap:10px}.student-profile-record{padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}.student-profile-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.student-profile-record-head>span{color:var(--muted);font-size:.78rem}.student-profile-record p{margin:7px 0;color:var(--text);line-height:1.45}.student-profile-record small{display:block;margin-top:7px;color:var(--muted)}.student-profile-record-meta{display:flex;gap:8px 14px;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.student-record-status{padding:4px 8px;border-radius:999px;background:#64748b1f;font-weight:800}.student-record-status.status-resuelta{background:#16a34a1f;color:#15803d}.student-record-status.status-abierta,.student-record-status.status-en_revision{background:#f59e0b21;color:#a16207}.student-exam-score{padding:4px 8px;border-radius:999px;background:#147a4f1a;color:var(--primary)!important;font-weight:900}.student-evaluation-answers{display:grid;gap:7px;margin-top:10px}.student-evaluation-answers>div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(160px,.6fr);gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-solid);border:1px solid var(--border)}.student-evaluation-answers span{font-size:.8rem;color:var(--muted)}.student-evaluation-answers strong{font-size:.84rem}.student-profile-empty{padding:18px;border:1px dashed var(--border);border-radius:13px;color:var(--muted);text-align:center}.student-profile-history-note{margin:10px 0 0;padding:10px 12px;border-radius:11px;background:#3b82f612;color:var(--muted);font-size:.78rem;line-height:1.45}.student-exam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-evaluation-student-link{display:grid;gap:7px;margin-top:24px;padding:16px;border:1px solid #dce7e1;border-radius:14px;background:#f7fbf9}.public-evaluation-student-link label{font-weight:900;color:#173f32}.public-evaluation-student-link input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cfe0d7;border-radius:11px;background:#fff;color:#173f32;font:inherit}.public-evaluation-student-link small{color:#60756c;line-height:1.4}@media(max-width:820px){.students-edit-grid{grid-template-columns:1fr}.students-groups-modal{overflow-y:auto}.students-groups-layout{grid-template-columns:1fr;overflow:visible}.students-group-browser{max-height:260px}.students-group-members{min-height:300px}.student-profile-metrics,.student-exam-grid{grid-template-columns:1fr}.student-evaluation-answers>div{grid-template-columns:1fr}.student-profile-record-head{flex-direction:column}.students-list-actions{width:100%;justify-content:flex-start}}.partial-exams-activation-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;border-color:#147a4f47;background:linear-gradient(135deg,rgba(20,122,79,.055),var(--surface-solid))}.partial-exams-activation-copy{min-width:0}.partial-exams-activation-copy h3{margin:4px 0 6px;font-size:1.08rem}.partial-exams-activation-copy p{margin:0;max-width:760px;color:var(--muted);line-height:1.5}.partial-exams-activation-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.partial-exams-activation-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.partial-exams-activate-button{min-width:168px}.partial-exams-normal-button{min-width:230px}.student-partial-schedule-panel .section-title-row h2{display:flex;align-items:center;gap:8px}.student-partial-inline{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}@media(max-width:760px){.partial-exams-activation-panel{align-items:stretch;flex-direction:column}.partial-exams-activation-actions{justify-content:stretch}.partial-exams-activation-actions button{flex:1 1 100%;width:100%}.student-partial-inline{white-space:normal}}@media screen and (min-width:768px)and (max-width:1180px)and (orientation:landscape){.attendance-page .attendance-filter-panel{grid-template-columns:minmax(260px,1.4fr) minmax(190px,.8fr) minmax(190px,.8fr) auto}.attendance-page .attendance-filter-actions{grid-column:auto}.attendance-page .attendance-admin-orphan-head{align-items:end;flex-direction:row}.attendance-page .attendance-admin-orphan-filter{width:auto}}@media screen and (min-width:768px)and (max-width:900px)and (orientation:landscape){.attendance-page .attendance-group-navigation-compact{grid-template-columns:48px minmax(0,1fr) auto 48px}.attendance-page .attendance-group-navigation-compact .attendance-group-current-inline{grid-column:auto;grid-row:auto}.attendance-page .attendance-direct-schedule-button{grid-column:auto;min-height:48px}.attendance-page .attendance-format-header{grid-template-columns:minmax(190px,.8fr) minmax(270px,1.3fr) minmax(220px,.9fr)}.attendance-page .attendance-format-date{grid-column:auto;text-align:right;border-top:0}}.students-directory-ui{gap:20px}.students-directory-hero{align-items:center}.students-directory-summary{display:flex;align-items:stretch;justify-content:flex-end;gap:10px;flex-wrap:wrap}.students-directory-summary .students-total-card{min-width:148px;align-items:flex-start}.students-main-groups-panel,.students-selected-group-panel{padding:22px}.students-main-groups-head,.students-selected-group-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.students-main-groups-head h2,.students-selected-group-head h2{margin:4px 0;font-size:1.3rem}.students-main-groups-head p,.students-selected-group-head p{margin:0;color:var(--muted);line-height:1.45}.students-main-groups-head>button{flex:0 0 auto}.students-main-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.students-main-group-card{position:relative;min-height:158px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:12px;row-gap:8px;align-content:start;padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--surface-solid);color:var(--text);text-align:left;box-shadow:0 8px 24px #0f172a0a;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.students-main-group-card:hover,.students-main-group-card:focus-visible{transform:translateY(-2px);border-color:#147a4f6b;box-shadow:0 12px 28px #0f172a14;background:linear-gradient(145deg,rgba(20,122,79,.055),var(--surface-solid))}.students-main-group-card.active{border-color:#147a4f94;box-shadow:0 0 0 3px #147a4f17,0 12px 28px #0f172a12;background:linear-gradient(145deg,rgba(20,122,79,.1),var(--surface-solid))}.students-main-group-icon{grid-row:1/3;width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#147a4f1a;color:var(--primary)}.students-main-group-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.students-main-group-copy strong{font-size:1.04rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.students-main-group-copy>span{font-size:.82rem;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.students-main-group-count{grid-column:1/3;align-self:end;display:flex;align-items:baseline;gap:5px;padding-top:8px;color:var(--muted);font-size:.8rem;border-top:1px solid var(--border)}.students-main-group-count b{font-size:1.35rem;line-height:1;color:var(--primary)}.students-main-group-open{position:absolute;right:18px;bottom:18px;color:var(--primary);font-size:.78rem;font-weight:900}.students-group-card-skeleton{min-height:158px;pointer-events:none;background:linear-gradient(100deg,var(--surface-soft) 20%,rgba(148,163,184,.13) 40%,var(--surface-soft) 60%);background-size:220% 100%;animation:studentsGroupSkeleton 1.25s ease-in-out infinite}.students-groups-empty-state{grid-column:1/-1;min-height:210px;display:grid;place-items:center;align-content:center;gap:8px;padding:28px;border:1px dashed var(--border);border-radius:18px;background:var(--surface-soft);color:var(--muted);text-align:center}.students-groups-empty-state strong{color:var(--text);font-size:1.05rem}@keyframes studentsGroupSkeleton{0%{background-position:100% 0}to{background-position:-100% 0}}.students-group-selection-hint{display:flex;align-items:center;justify-content:center;gap:13px;padding:24px;border:1px dashed rgba(20,122,79,.28);border-radius:18px;background:#147a4f09;color:var(--primary)}.students-group-selection-hint div{display:flex;flex-direction:column;gap:3px}.students-group-selection-hint strong{color:var(--text)}.students-group-selection-hint span{color:var(--muted);font-size:.88rem}.students-selected-group-panel{scroll-margin-top:18px}.students-selected-group-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.students-selected-group-total{display:inline-flex;align-items:baseline;gap:5px;padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);color:var(--muted);font-size:.82rem}.students-selected-group-total strong{font-size:1.15rem;color:var(--primary)}.students-add-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 16px;border-radius:12px;box-shadow:0 8px 18px #147a4f29}.students-selected-group-table{border:1px solid var(--border);border-radius:15px;overflow:auto}.students-selected-group-table table{min-width:650px;margin:0}.students-selected-group-table th{background:var(--surface-soft)}.students-selected-group-table td,.students-selected-group-table th{vertical-align:middle}.students-selected-group-table tbody tr:hover{background:#147a4f0b}.students-add-modal{width:min(780px,96vw);max-height:min(92vh,880px);overflow-y:auto;padding:24px}.students-add-modal-head{padding-right:42px}.students-add-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.students-add-option{min-height:190px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:9px;padding:20px;border:1px solid var(--border);border-radius:18px;background:var(--surface-soft);color:var(--text);text-align:left;transition:transform .18s ease,border-color .18s ease,background .18s ease}.students-add-option:hover,.students-add-option:focus-visible{transform:translateY(-2px);border-color:#147a4f6b;background:#147a4f12}.students-add-option>span{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#147a4f1c;color:var(--primary)}.students-add-option strong{font-size:1rem}.students-add-option small{color:var(--muted);font-size:.84rem;line-height:1.45}.students-add-content{margin-top:18px}.students-add-section-head>div{display:flex;align-items:flex-start;gap:10px;color:var(--primary)}.students-add-section-head h3{margin:0 0 3px;color:var(--text);font-size:1.05rem}.students-add-section-head p{margin:0;color:var(--muted);font-size:.86rem}.students-add-form-grid{margin:18px 0 0}.students-add-import-map,.students-add-actions{margin-top:18px}.students-add-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.students-directory-ui .student-name-link{color:var(--text)}@media(max-width:900px){.students-directory-hero{align-items:flex-start}.students-directory-summary{width:100%;justify-content:flex-start}.students-main-groups-head,.students-selected-group-head{align-items:flex-start;flex-direction:column}.students-selected-group-actions{width:100%;justify-content:space-between}.students-add-primary{flex:1 1 auto}.students-main-groups-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.students-main-groups-panel,.students-selected-group-panel{padding:16px}.students-main-groups-grid{grid-template-columns:1fr}.students-directory-summary .students-total-card{flex:1 1 140px;min-width:0}.students-group-selection-hint{align-items:flex-start;justify-content:flex-start}.students-selected-group-actions{align-items:stretch;flex-direction:column}.students-selected-group-total{justify-content:center}.students-add-primary{width:100%}.students-add-options{grid-template-columns:1fr}.students-add-modal{padding:20px 16px}.students-main-group-card{min-height:148px}}.monthly-planning-page{gap:18px}.planning-month-overview,.teacher-planning-status-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.planning-month-overview h3,.planning-month-overview p,.teacher-planning-status-card h3,.teacher-planning-status-card p{margin:4px 0 0}.planning-month-summary-chip{flex:0 0 auto;min-width:170px;display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:3px 8px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);color:var(--primary)}.planning-month-summary-chip strong{font-size:1.35rem;line-height:1}.planning-month-summary-chip span{grid-column:1 / -1;color:var(--muted);font-size:.76rem}.planning-month-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.planning-month-card{min-width:0;min-height:138px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-solid, #fff);color:var(--text);display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.planning-month-card.active:hover:not(:disabled),.planning-month-card.active:focus-visible{transform:translateY(-2px);border-color:#18794e85;box-shadow:0 10px 25px #1457391a}.planning-month-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px #18794e1c;background:#18794e0e}.planning-month-card.locked,.planning-month-card:disabled{border-color:#991b1b;background:#b91c1c;color:#fff;cursor:not-allowed;opacity:1}.planning-month-card.locked small,.planning-month-card:disabled small{color:#ffffffe0}.planning-month-card-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#18794e1a;color:var(--primary)}.planning-month-card.locked .planning-month-card-icon{background:#ffffff29;color:#fff}.planning-month-card strong{font-size:.98rem}.planning-month-card small{color:var(--muted);line-height:1.35}.planning-month-delivered-mark{margin-top:auto;display:inline-flex;align-items:center;gap:5px;color:#15803d;font-size:.76rem;font-weight:800}.planning-month-card.locked .planning-month-delivered-mark{color:#fff}.planning-month-upload{display:grid;gap:14px}.planning-month-upload-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.planning-month-upload-heading h3{margin:3px 0 0}.planning-month-file-input{display:grid;gap:7px}.planning-month-file-input input[type=file]{width:100%}.planning-month-file-input small{color:var(--muted)}.planning-month-save{justify-self:start}.planning-month-empty-selection{padding:18px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-soft);color:var(--muted);text-align:center}.planning-month-admin-panel{display:grid;gap:14px}.planning-month-admin-heading h3,.planning-month-admin-heading p{margin:4px 0 0}.planning-month-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.planning-month-admin-card{overflow:hidden;border:1px solid var(--border);border-radius:15px;background:var(--surface-solid, #fff)}.planning-month-admin-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px #18794e1a}.planning-month-admin-card.locked{border-color:#b91c1c6b}.planning-month-admin-select{width:100%;display:flex;align-items:center;gap:10px;padding:14px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.planning-month-admin-select>span{min-width:0;display:grid;gap:2px}.planning-month-admin-select small{color:var(--muted)}.planning-month-lock-toggle{width:100%;min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-top:1px solid var(--border);font-weight:800;cursor:pointer}.planning-month-lock-toggle.open{background:#15803d14;color:#15803d}.planning-month-lock-toggle.locked{background:#b91c1c;color:#fff;border-top-color:#991b1b}.planning-month-lock-toggle:disabled{cursor:wait;opacity:.75}.monthly-planning-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.planning-month-metric-label{font-size:1rem!important;line-height:1.2!important}.planning-month-monitor-panel{display:grid;gap:14px}.planning-month-monitor-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.planning-month-monitor-heading h3,.planning-month-monitor-heading p{margin:4px 0 0}.planning-month-monitor-heading select{min-width:220px}.planning-month-monitor-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.planning-month-monitor-stats>div{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);display:flex;align-items:baseline;gap:7px}.planning-month-monitor-stats strong{font-size:1.35rem;color:var(--primary)}.planning-month-monitor-stats span{color:var(--muted);font-size:.82rem}.planning-month-missing-roster{display:grid;gap:9px}.planning-month-missing-roster>div{display:flex;flex-wrap:wrap;gap:7px;max-height:160px;overflow:auto}.planning-month-missing-roster>div span{padding:5px 9px;border:1px solid #fde68a;border-radius:999px;background:#fffbeb;color:#92400e;font-size:.76rem;font-weight:750}.planning-month-missing-roster p{display:flex;align-items:center;gap:7px;margin:0;color:#15803d;font-weight:800}.monthly-planning-filters{grid-template-columns:minmax(250px,1fr) minmax(160px,220px)}.teacher-planning-month-grid,.teacher-planning-month-upload{margin-top:14px}:root[data-theme=dark] .planning-month-missing-roster>div span{border-color:#fde68a59;background:#92400e38;color:#fde68a}@media(max-width:900px){.planning-month-overview,.teacher-planning-status-card,.planning-month-upload-heading,.planning-month-monitor-heading{align-items:stretch;flex-direction:column}.planning-month-summary-chip{width:100%}.monthly-planning-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-month-monitor-heading select{width:100%;min-width:0}.monthly-planning-filters{grid-template-columns:1fr}}@media(max-width:620px){.planning-month-card-grid,.planning-month-admin-grid,.planning-month-monitor-stats,.monthly-planning-summary{grid-template-columns:1fr}.planning-month-save{width:100%}}.partial-exams-preview-toolbar{display:grid;grid-template-columns:minmax(250px,360px) minmax(0,1fr);gap:12px;align-items:stretch;margin:16px 0 4px}.partial-exams-group-filter,.partial-exams-selected-group{min-width:0;padding:12px 14px;border:1px solid var(--border, #dce8e3);border-radius:14px;background:var(--surface-muted, #f8fbf9)}.partial-exams-group-filter{display:grid;gap:7px}.partial-exams-group-filter>span,.partial-exams-selected-group>small{color:var(--muted, #60756c);font-size:.76rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.partial-exams-group-filter select{width:100%;min-width:0;min-height:42px;margin:0;border:1px solid var(--border, #d5e2dd);border-radius:11px;background:var(--surface, #fff);color:var(--text, #173e32);font-weight:750}.partial-exams-selected-group{display:grid;align-content:center;gap:2px}.partial-exams-selected-group strong{overflow:hidden;color:var(--text, #173f32);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.partial-exams-selected-group span{overflow:hidden;color:var(--muted, #60756c);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.partial-exams-calendar-scroll{width:100%;max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}@media(max-width:760px){.partial-exams-preview-toolbar{grid-template-columns:1fr}.partial-exams-group-filter,.partial-exams-selected-group{padding:11px 12px}.partial-exams-selected-group strong,.partial-exams-selected-group span{white-space:normal}}.attendance-partial-exam-notice{background:#eef5f8;border:1px solid #b9d7e3;color:#1f4a5c;display:flex;align-items:flex-start;gap:10px}.attendance-partial-exam-notice strong{display:block}.attendance-partial-exam-swatch{flex:0 0 auto;width:14px;height:14px;margin-top:2px;border-radius:4px;background:#aec6cf;border:1px solid #7fa3b3}.attendance-row-partial-exam td{background:#dfeef4!important;box-shadow:inset 3px 0 #7fa3b3}.attendance-partial-exam-pill{display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:3px 9px;border-radius:999px;background:#aec6cf;color:#163140;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;width:fit-content}:root[data-theme=dark] .attendance-partial-exam-notice{background:#142a33;border-color:#2c5567;color:#cfe6ef}:root[data-theme=dark] .attendance-row-partial-exam td{background:#16303b!important;box-shadow:inset 3px 0 #5c8ba0}:root[data-theme=dark] .attendance-partial-exam-pill{background:#3f6b7c;color:#eaf5f9}.partial-exams-public-link{display:flex;align-items:center;gap:9px;margin-top:12px;padding:10px 12px;border:1px dashed #9db9ab;border-radius:12px;background:#f2faf5;color:#1f5138;flex-wrap:wrap}.partial-exams-public-link a{color:#0b6a45;font-weight:700;word-break:break-all}.partial-exams-public-link button{display:inline-flex;align-items:center;gap:6px;margin-left:auto;white-space:nowrap}:root[data-theme=dark] .partial-exams-public-link{background:#122921;border-color:#3a6653;color:#cdeadb}:root[data-theme=dark] .partial-exams-public-link a{color:#7fe0ae}.partial-exam-public-page{min-height:100dvh;background:#eef4f1;color:#173d31;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.partial-exam-public-centered{display:grid;place-items:center;gap:12px;padding:24px;text-align:center;color:#4b675d}.partial-exam-public-error-card{width:min(520px,100%);display:grid;justify-items:center;gap:12px;padding:34px;border:1px solid #d3e1da;border-radius:24px;background:#fff;text-align:center;box-shadow:0 24px 70px #05322521}.partial-exam-public-error-card>svg{color:#b52a3c}.partial-exam-public-error-card h1{margin:0;color:#153e31}.partial-exam-public-error-card p{margin:0;color:#7b3742}.partial-exam-public-error-card small{color:#6e8079}.partial-exam-public-hero{min-height:220px;display:grid;align-content:space-between;padding:26px max(24px,calc((100vw - 1120px)/2));background:linear-gradient(135deg,#1f4a5c,#2c6479 58%,#3a83a0);color:#fff}.partial-exam-public-brand{display:flex;align-items:center;gap:12px}.partial-exam-public-brand img{width:52px;height:52px;object-fit:contain;border-radius:8px;background:#fff;padding:4px}.partial-exam-public-brand>div{display:grid;gap:3px}.partial-exam-public-brand strong{letter-spacing:.04em;font-size:13px}.partial-exam-public-brand span{color:#ffffffc2;font-size:11px}.partial-exam-public-title{max-width:820px;padding-top:30px}.partial-exam-public-title>span{color:#aec6cf;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.partial-exam-public-title h1{margin:8px 0 7px;color:#fff;font-size:clamp(24px,4.4vw,38px);line-height:1.1}.partial-exam-public-title p{max-width:700px;margin:0;color:#ffffffd9;font-size:clamp(13px,2vw,15px)}.partial-exam-public-content{width:min(1120px,calc(100% - 32px));display:grid;gap:14px;margin:-18px auto 0;padding-bottom:48px;position:relative;z-index:2}.partial-exam-public-controls{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr) auto;gap:10px}.partial-exam-public-group-filter{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid #d3e2db;border-radius:14px;background:#fff;color:#4b675d;box-shadow:0 16px 42px #05322514}.partial-exam-public-group-filter select{width:100%;border:0;background:transparent;color:#173d31;font-size:14px;font-weight:700;outline:none}.partial-exam-public-search{display:flex;align-items:center;gap:9px;padding:12px 16px;border:1px solid #d3e2db;border-radius:14px;background:#fff;color:#4b675d;box-shadow:0 16px 42px #05322514}.partial-exam-public-search input{flex:1;border:0;background:transparent;font-size:14px;color:#173d31}.partial-exam-public-search input:focus{outline:none}.partial-exam-public-hint{margin:0;padding:0 4px;color:#5b7c70;font-size:12px}.partial-exam-public-folders{display:grid;gap:10px}.partial-exam-public-empty{padding:24px;text-align:center;color:#6e8079}.partial-exam-public-folder{border:1px solid #d3e2db;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 10px 26px #0532250d}.partial-exam-public-folder.open{box-shadow:0 16px 36px #0532251a}.partial-exam-public-folder-header{width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;border:0;background:transparent;color:#173d31;text-align:left;font-weight:800;cursor:pointer}.partial-exam-public-folder-header>svg:first-child{color:#2c6479;flex:0 0 auto}.partial-exam-public-folder-name{flex:1;font-size:15px}.partial-exam-public-folder-count{flex:0 0 auto;padding:3px 10px;border-radius:999px;background:#eef4f1;color:#4b675d;font-size:11px;font-weight:700}.partial-exam-public-folder-body{display:grid;gap:1px;background:#e7eeea;border-top:1px solid #e7eeea}.partial-exam-public-file{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding:12px 16px;background:#fbfdfc}.partial-exam-public-file-main{display:grid;gap:3px;min-width:220px}.partial-exam-public-file-group,.partial-exam-public-file-teacher{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#173d31}.partial-exam-public-file-group{font-weight:800}.partial-exam-public-file-teacher{color:#4b675d}.partial-exam-public-file-meta{display:flex;flex-wrap:wrap;gap:12px;color:#5b7c70;font-size:12px}.partial-exam-public-file-meta span{display:inline-flex;align-items:center;gap:5px}.partial-exam-public-view-toggle{display:inline-flex;align-items:center;gap:4px;padding:5px;border:1px solid #d3e2db;border-radius:14px;background:#fff;box-shadow:0 16px 42px #05322514}.partial-exam-public-view-toggle button{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:0;border-radius:10px;background:transparent;color:#4b675d;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.partial-exam-public-view-toggle button.active{background:#2c6479;color:#fff}.partial-exam-public-selected{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:13px 16px;border:1px solid #d3e2db;border-radius:16px;background:#fff;box-shadow:0 16px 42px #05322514}.partial-exam-public-selected>div{display:grid;gap:2px;min-width:0}.partial-exam-public-selected small{color:#6e8079;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.partial-exam-public-selected strong{color:#153e31;font-size:17px}.partial-exam-public-selected span{color:#5b7c70;font-size:12px}.partial-exam-public-selected-count{justify-items:end;text-align:right}.partial-exam-public-selected-count strong{color:#2c6479;font-size:22px}.partial-exam-public-grid-wrapper{display:grid;gap:10px}.partial-exam-public-grid-scroll{width:100%;max-width:100%;overflow:auto;border:1px solid #d3e2db;border-radius:16px;background:#fff;box-shadow:0 16px 42px #05322514;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.partial-exam-public-grid{min-width:max(760px,calc(92px + (var(--partial-public-days) * 172px)))}.partial-exam-public-grid-corner,.partial-exam-public-grid-day,.partial-exam-public-grid-time,.partial-exam-public-grid-cell{border-right:1px solid #e2ece7;border-bottom:1px solid #e2ece7}.partial-exam-public-grid-corner{position:sticky;top:0;left:0;z-index:6;float:left;width:92px;min-height:60px;display:grid;place-items:center;background:#f2f7f4;color:#6e8079;font-size:12px;font-weight:900}.partial-exam-public-grid-day{position:sticky;top:0;z-index:5;display:inline-grid;align-content:center;gap:2px;width:calc((100% - 92px) / var(--partial-public-days));min-width:172px;min-height:60px;padding:8px 10px;background:#f2f7f4}.partial-exam-public-grid-day strong{color:#153e31;font-size:13px}.partial-exam-public-grid-day span{color:#6e8079;font-size:12px}.partial-exam-public-grid-row{clear:both;display:grid;grid-template-columns:92px repeat(var(--partial-public-days),minmax(172px,1fr));min-height:92px}.partial-exam-public-grid-time{position:sticky;left:0;z-index:3;display:grid;align-content:start;justify-items:center;gap:1px;padding:10px 6px;background:#f2f7f4}.partial-exam-public-grid-time strong{color:#153e31;font-size:14px}.partial-exam-public-grid-time small{color:#6e8079;font-size:11px}.partial-exam-public-grid-cell{display:grid;align-content:start;gap:6px;min-width:172px;min-height:92px;padding:7px;background:#fff}.partial-exam-public-grid-cell.empty{background:repeating-linear-gradient(-45deg,#f7faf8,#f7faf8 8px,#94a3b812 8px,#94a3b812 16px)}.partial-exam-public-grid-card{display:grid;gap:3px;padding:8px 9px;border:1px solid #b9d3df;border-radius:11px;background:#eaf4f8;color:#17414f;box-shadow:0 5px 14px #13476412}.partial-exam-public-grid-card-top{display:flex;align-items:center;gap:5px;min-width:0}.partial-exam-public-grid-card-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.partial-exam-public-grid-card-top span{margin-left:auto;font-size:11px;font-weight:800;white-space:nowrap}.partial-exam-public-grid-card>b{font-size:13px;line-height:1.25}.partial-exam-public-grid-card>small{display:inline-flex;align-items:center;gap:4px;color:#4d6f7c;font-size:11px}.partial-exam-public-grid-card>small>svg{flex:0 0 auto}:root[data-theme=dark] .partial-exam-public-view-toggle,:root[data-theme=dark] .partial-exam-public-selected,:root[data-theme=dark] .partial-exam-public-grid-scroll{background:#12211d;border-color:#2b4a41}:root[data-theme=dark] .partial-exam-public-view-toggle button{color:#a9c7bb}:root[data-theme=dark] .partial-exam-public-view-toggle button.active{background:#2c6479;color:#fff}:root[data-theme=dark] .partial-exam-public-selected strong{color:#d9ece4}:root[data-theme=dark] .partial-exam-public-selected span,:root[data-theme=dark] .partial-exam-public-selected small{color:#a9c7bb}:root[data-theme=dark] .partial-exam-public-selected-count strong{color:#7fc7e0}:root[data-theme=dark] .partial-exam-public-grid-corner,:root[data-theme=dark] .partial-exam-public-grid-day,:root[data-theme=dark] .partial-exam-public-grid-time{background:#162923}:root[data-theme=dark] .partial-exam-public-grid-day strong,:root[data-theme=dark] .partial-exam-public-grid-time strong{color:#d9ece4}:root[data-theme=dark] .partial-exam-public-grid-day span,:root[data-theme=dark] .partial-exam-public-grid-time small{color:#a9c7bb}:root[data-theme=dark] .partial-exam-public-grid-corner,:root[data-theme=dark] .partial-exam-public-grid-day,:root[data-theme=dark] .partial-exam-public-grid-time,:root[data-theme=dark] .partial-exam-public-grid-cell{border-color:#1f3a33}:root[data-theme=dark] .partial-exam-public-grid-cell{background:#12211d}:root[data-theme=dark] .partial-exam-public-grid-cell.empty{background:repeating-linear-gradient(-45deg,#0f1c19,#0f1c19 8px,#94a3b80d 8px,#94a3b80d 16px)}:root[data-theme=dark] .partial-exam-public-grid-card{background:#16333d;border-color:#2f5a68;color:#d7ecf3}:root[data-theme=dark] .partial-exam-public-grid-card>small{color:#9fc2ce}:root[data-theme=dark] .partial-exam-public-page{background:#0c1613;color:#d9ece4}:root[data-theme=dark] .partial-exam-public-search,:root[data-theme=dark] .partial-exam-public-group-filter,:root[data-theme=dark] .partial-exam-public-folder{background:#12211d;border-color:#2b4a41}:root[data-theme=dark] .partial-exam-public-search input,:root[data-theme=dark] .partial-exam-public-group-filter select{color:#d9ece4}:root[data-theme=dark] .partial-exam-public-folder-header{color:#d9ece4}:root[data-theme=dark] .partial-exam-public-folder-count{background:#1c322b;color:#a9c7bb}:root[data-theme=dark] .partial-exam-public-folder-body{background:#0c1613;border-color:#1c322b}:root[data-theme=dark] .partial-exam-public-file{background:#142520}:root[data-theme=dark] .partial-exam-public-file-group{color:#d9ece4}:root[data-theme=dark] .partial-exam-public-file-teacher,:root[data-theme=dark] .partial-exam-public-file-meta,:root[data-theme=dark] .partial-exam-public-hint{color:#a9c7bb}:root[data-theme=dark] .partial-exam-public-error-card{background:#12211d;border-color:#2b4a41}:root[data-theme=dark] .partial-exam-public-error-card h1{color:#d9ece4}@media(max-width:900px){.partial-exam-public-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.partial-exam-public-view-toggle{grid-column:1 / -1;justify-content:center}}@media(max-width:640px){.partial-exam-public-controls{grid-template-columns:1fr}.partial-exam-public-hero{padding:22px 18px}.partial-exam-public-content{width:calc(100% - 24px)}.partial-exam-public-file{flex-direction:column;align-items:flex-start}.partial-exam-public-view-toggle button{flex:1;justify-content:center}.partial-exam-public-grid{min-width:max(620px,calc(76px + (var(--partial-public-days) * 156px)))}.partial-exam-public-grid-corner,.partial-exam-public-grid-day{width:76px}.partial-exam-public-grid-day{width:calc((100% - 76px) / var(--partial-public-days));min-width:156px}.partial-exam-public-grid-row{grid-template-columns:76px repeat(var(--partial-public-days),minmax(156px,1fr))}.partial-exam-public-grid-cell{min-width:156px}}.online-exam-list-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}.online-exam-list-head h3{margin:0 0 4px}.online-exam-list-head p{margin:0;color:var(--muted);max-width:62ch}.online-exam-cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.online-exam-card{display:flex;flex-direction:column;gap:12px}.online-exam-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.online-exam-card header h4{margin:0 0 3px;font-size:1.03rem;line-height:1.3}.online-exam-card header span{color:var(--muted);font-size:.85rem}.online-exam-card-facts{display:grid;gap:6px}.online-exam-card-facts span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.86rem}.online-exam-card footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.online-exam-empty{grid-column:1 / -1;display:grid;justify-items:center;gap:8px;padding:32px 20px;text-align:center;color:var(--muted)}.online-exam-empty strong{color:var(--text)}.online-exam-form{display:grid;gap:16px}.online-exam-form-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.online-exam-form-head h3{margin:0}.online-exam-panel h4{margin:0 0 12px}.online-exam-wide{grid-column:1 / -1}.online-exam-switches{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px}.online-exam-checkbox{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}.online-exam-checkbox input{width:auto;margin:0}.online-exam-hint{color:var(--muted);font-size:.82rem}.online-exam-questions-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.online-exam-questions-head h4{margin:0;display:grid;gap:2px}.online-exam-questions-head small{font-weight:400;color:var(--muted)}.online-exam-questions-list{display:grid;gap:14px}.online-exam-question-editor{display:grid;gap:12px}.online-exam-question-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.online-exam-question-number{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--accent-soft);color:var(--accent);font-weight:800}.online-exam-question-head select{min-width:190px}.online-exam-points{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:var(--muted)}.online-exam-points input{width:84px}.online-exam-remove-question{margin-left:auto}.online-exam-field{display:grid;gap:5px;font-size:.88rem}.online-exam-image-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.online-exam-image-button{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;cursor:pointer;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--muted);font-size:.85rem}.online-exam-image-button:hover{border-color:var(--accent);color:var(--accent)}.online-exam-image-preview{display:flex;align-items:center;gap:10px}.online-exam-image-preview img{width:74px;height:74px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.online-exam-image-preview button{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;font-size:.8rem;background:transparent;border:1px solid var(--border);color:var(--muted)}.online-exam-options-editor{display:grid;gap:8px}.online-exam-option-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px}.online-exam-option-row input[type=radio]{width:auto;margin:0}.online-exam-add-option{justify-self:start}.online-exam-form-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}.online-exam-form-footer span{color:var(--muted);font-size:.85rem;max-width:60ch}.online-exam-detail,.online-exam-review{display:grid;gap:16px}.online-exam-summary-card{display:grid;gap:14px}.online-exam-summary-facts{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.online-exam-summary-facts div{display:grid;gap:2px}.online-exam-summary-facts span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.online-exam-status-actions{display:flex;flex-wrap:wrap;gap:8px}.online-exam-link-card{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}.online-exam-link-info{flex:1 1 320px;display:grid;gap:8px}.online-exam-link-info .eyebrow{display:inline-flex;align-items:center;gap:6px}.online-exam-link-info p{margin:0;color:var(--muted);font-size:.88rem}.online-exam-link-row{display:flex;flex-wrap:wrap;gap:8px}.online-exam-link-row input{flex:1 1 260px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.online-exam-qr{display:grid;justify-items:center;gap:6px}.online-exam-qr img{border-radius:var(--radius-sm);background:#fff;padding:6px;border:1px solid var(--border)}.online-exam-qr small{color:var(--muted)}.online-exam-students-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.online-exam-students-head h4{margin:0;display:inline-flex;align-items:center;gap:8px}.online-exam-review-summary{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.online-exam-review-summary div{display:grid;gap:2px}.online-exam-review-summary small{color:var(--muted)}.online-exam-answer-card{display:grid;gap:10px}.online-exam-answer-card header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px}.online-exam-answer-image{max-width:280px;border-radius:var(--radius-sm);border:1px solid var(--border)}.online-exam-answer-value{margin:0;display:grid;gap:3px}.online-exam-answer-value span{color:var(--muted);font-size:.8rem}.online-exam-answer-reference{margin:0;color:var(--muted);font-size:.85rem}.online-exam-answer-reference span{font-weight:700}.online-exam-grade-panel{display:grid;gap:12px}.online-exam-grade-panel h4{margin:0}.online-exam-grade-panel button{justify-self:start;display:inline-flex;align-items:center;gap:8px}.online-exam-admin-questions{display:grid;gap:12px}.online-exam-admin-question{display:grid;gap:7px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.online-exam-admin-question header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px}.online-exam-admin-question img{max-width:240px;border-radius:var(--radius-sm);border:1px solid var(--border)}.online-exam-admin-question ul{margin:0;padding-left:20px;color:var(--muted)}.online-exam-admin-question li.is-correct{color:var(--success);font-weight:700}.online-exam-admin-question p{margin:0;color:var(--muted);font-size:.87rem}.online-exam-admin-answers{display:grid;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.online-exam-admin-answers h4{margin:0}.online-exam-admin-answer{display:grid;gap:3px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-soft)}.online-exam-admin-answer p{margin:0;font-size:.88rem}.online-exam-admin-answer p span{color:var(--muted)}.online-exam-admin-answer .muted-text{color:var(--muted);font-size:.82rem}.online-exam-admin-feedback{margin:4px 0 0;font-size:.88rem}.public-exam-shell{min-height:100vh;display:grid;place-items:start center;padding:clamp(14px,4vw,42px);background:linear-gradient(180deg,#f1f8f4,#eef3f1);color:#173f32}.public-exam-card{width:min(780px,100%);overflow:hidden;border-radius:24px;background:#fff;border:1px solid #dfe9e4;box-shadow:0 22px 60px #133f321a}.public-exam-header{display:grid;justify-items:start;gap:8px;padding:clamp(20px,5vw,38px);border-bottom:1px solid #e6eee9}.public-exam-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#e7f5ed;color:#138a4b}.public-exam-header h1{margin:1px 0;font-size:clamp(1.7rem,4.4vw,2.5rem);line-height:1.08;letter-spacing:-.04em}.public-exam-header p{margin:0;color:#60756c;line-height:1.55}.public-exam-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:#4d6459;font-size:.88rem}.public-exam-window{display:flex;align-items:center;gap:6px;color:#60756c;font-size:.86rem}.public-exam-identity{display:grid;gap:14px;padding:clamp(20px,5vw,38px)}.public-exam-identity label{display:grid;gap:5px;font-weight:600}.public-exam-identity input{padding:12px 13px;border:1px solid #dce7e1;border-radius:12px;font:inherit;color:#173f32;background:#fff}.public-exam-identity small{color:#71857c}.public-exam-instructions{display:flex;gap:9px;padding:12px 14px;border-radius:12px;background:#fff9eb;border:1px solid #efd49b;color:#72531c;font-size:.89rem}.public-exam-form{display:grid;gap:0;padding:0 clamp(20px,5vw,38px) clamp(24px,5vw,38px)}.public-exam-question{padding:24px 0;border-bottom:1px solid #e8efeb}.public-exam-question-title{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:10px}.public-exam-question-title>span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#138a4b;color:#fff;font-weight:900}.public-exam-question-title h2{margin:3px 0 13px;font-size:1.05rem;line-height:1.45}.public-exam-question-title em{margin-left:3px;color:#c0392b;font-style:normal}.public-exam-question-body{margin-left:44px;display:grid;gap:10px}.public-exam-question-image{max-width:100%;border-radius:12px;border:1px solid #dce7e1}.public-exam-question-points{color:#7d8f87;font-size:.8rem}.public-exam-options{display:grid;gap:8px}.public-exam-options label{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #dce7e1;border-radius:12px;cursor:pointer;transition:.15s ease}.public-exam-options label.selected{border-color:#138a4b;background:#eef9f3}.public-exam-options input{accent-color:#138a4b}.public-exam-question-body>textarea{width:100%;min-height:120px;padding:12px;resize:vertical;border:1px solid #dce7e1;border-radius:12px;font:inherit;color:#173f32;background:#fff}.public-exam-inline-message{margin-top:16px;padding:11px 13px;border-radius:12px;background:#fdecea;color:#a42e2e}.public-exam-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:22px;background:#138a4b;color:#fff;border:0;border-radius:12px;font:inherit;font-weight:700;cursor:pointer}.public-exam-submit:hover{background:#0e7440}.public-exam-submit:disabled{opacity:.6;cursor:progress}.public-exam-closed{display:grid;gap:5px;margin:24px clamp(20px,5vw,38px);padding:16px;border:1px solid #efd49b;border-radius:14px;background:#fff9eb;color:#72531c}.public-exam-status,.public-exam-thanks{width:min(620px,100%);margin-top:8vh;padding:30px;border-radius:22px;background:#fff;border:1px solid #dfe9e4;box-shadow:0 18px 48px #133f3214;text-align:center}.public-exam-status.error{color:#a42e2e}.public-exam-thanks{display:grid;justify-items:center;gap:10px;color:#138a4b}.public-exam-thanks h1,.public-exam-thanks p{margin:0;color:#173f32}.public-exam-thanks-note{color:#71857c;font-size:.88rem}.public-exam-score{display:grid;gap:3px;padding:14px 20px;border-radius:14px;background:#eef9f3;color:#173f32}.public-exam-score span{color:#60756c;font-size:.82rem}.public-exam-score strong{font-size:1.5rem}.public-exam-score small{color:#60756c}.public-exam-timer{position:sticky;top:12px;z-index:20;align-self:center;display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px 18px;border-radius:999px;background:#138a4b;color:#fff;box-shadow:0 10px 26px #133f3238}.public-exam-timer small{display:block;opacity:.82;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.public-exam-timer strong{font-size:1.24rem;font-variant-numeric:tabular-nums}.public-exam-timer.is-low{background:#c0392b;animation:publicExamPulse 1s ease-in-out infinite}@keyframes publicExamPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@media(max-width:720px){.online-exam-link-card{flex-direction:column;align-items:stretch}.online-exam-qr{justify-items:flex-start}.public-exam-question-body{margin-left:0}.public-exam-question-title{grid-template-columns:28px minmax(0,1fr)}}.partial-exams-view-tabs{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:16px}.partial-exams-view-tabs button{display:flex;align-items:center;gap:11px;padding:13px 16px;text-align:left;background:var(--surface-solid);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.partial-exams-view-tabs button:hover{border-color:var(--border-strong)}.partial-exams-view-tabs button.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);color:var(--accent)}.partial-exams-view-tabs button span{display:grid;gap:2px;min-width:0}.partial-exams-view-tabs button strong{font-size:.95rem}.partial-exams-view-tabs button small{color:var(--muted);font-weight:400;line-height:1.35}.partial-exams-view-tabs button.active small{color:var(--muted)}.partial-exams-published-header .partial-exams-context{margin-top:4px}.partial-exams-published-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}:root[data-theme=dark] .partial-exams-view-tabs button.active{box-shadow:0 0 0 3px #2563eb38}.rubrics-page,.rubric-form,.rubric-detail{display:grid;gap:16px}.rubric-form-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.rubric-form-head h3{margin:0;flex:1 1 auto}.rubric-form-head .actions{display:flex;gap:8px}.rubric-header-card h4{margin:0 0 12px}.rubric-inline-warning{margin:12px 0 0;padding:10px 13px;border-radius:var(--radius-sm);background:#fff8e6;border:1px solid #f0d9a3;color:#7a5a17;font-size:.87rem}.rubric-detail-facts{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.rubric-detail-facts div{display:grid;gap:2px}.rubric-detail-facts span{color:var(--muted);font-size:.77rem;text-transform:uppercase;letter-spacing:.04em}.rubric-progress-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-solid)}.rubric-progress-bar>div:first-child{display:grid;gap:1px}.rubric-progress-bar>div:first-child span{color:var(--muted);font-size:.8rem}.rubric-progress-track{flex:1 1 180px;height:8px;border-radius:999px;background:var(--bg-2);overflow:hidden}.rubric-progress-track span{display:block;height:100%;background:var(--accent);transition:width .2s ease}.rubric-progress-counts{display:flex;flex-wrap:wrap;gap:7px}.rubric-section{display:grid;gap:12px}.rubric-section h4{margin:0}.rubric-section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.rubric-section-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.rubric-section-bulk span{color:var(--muted);font-size:.8rem}.rubric-section-bulk button{padding:5px 10px;font-size:.78rem}.rubric-table{display:grid;gap:4px}.rubric-row{display:grid;grid-template-columns:36px minmax(0,1fr) repeat(3,106px);align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-solid)}.rubric-row.is-answered{border-color:var(--accent);background:var(--accent-soft)}.rubric-row-head{background:transparent;border:0;padding-bottom:2px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.rubric-row-head .rubric-cell-option{justify-content:center;text-align:center}.rubric-cell-number{font-weight:700;color:var(--muted);text-align:center}.rubric-cell-text{line-height:1.4;font-size:.9rem}.rubric-cell-option{display:flex;align-items:center;justify-content:center}.rubric-check{flex-direction:column;gap:3px;cursor:pointer}.rubric-check input{position:absolute;opacity:0;width:0;height:0}.rubric-check-box{width:26px;height:26px;display:grid;place-items:center;border:2px solid var(--border-strong);border-radius:7px;background:var(--surface-solid);color:#fff;transition:.12s ease}.rubric-check:hover .rubric-check-box{border-color:var(--accent)}.rubric-check.checked .rubric-check-box{background:var(--accent);border-color:var(--accent)}.rubric-check-label{color:var(--muted);font-size:.68rem;text-align:center;line-height:1.15}.rubric-check.checked .rubric-check-label{color:var(--accent);font-weight:700}.rubric-check.readonly{cursor:default}.rubric-check input:focus-visible+.rubric-check-box{outline:2px solid var(--accent);outline-offset:2px}.rubric-notes-card label{display:grid;gap:6px}.rubric-form-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.rubric-form-footer span{color:var(--muted);font-size:.85rem;max-width:62ch}.rubric-form-footer .actions{display:flex;flex-wrap:wrap;gap:8px}.rubric-row-actions{display:flex;flex-wrap:wrap;gap:6px}.rubric-search{display:flex;align-items:center;gap:7px}.rubric-search input{flex:1 1 auto}:root[data-theme=dark] .rubric-row.is-answered{background:#2563eb29}:root[data-theme=dark] .rubric-inline-warning{background:#f0d9a31f;color:#e8cf95}@media(max-width:860px){.rubric-row{grid-template-columns:30px minmax(0,1fr);row-gap:10px}.rubric-row-head{display:none}.rubric-row .rubric-cell-option{grid-column:span 1}.rubric-row .rubric-cell-text{grid-column:2}.rubric-row .rubric-cell-option:nth-of-type(3){grid-column:2 / 3}.rubric-check{flex-direction:row;gap:7px;justify-content:flex-start}.rubric-check-label{font-size:.8rem}}@media print{.rubrics-page .report-actions,.rubric-form-head .btn-muted,.rubric-form-head .actions,.rubric-section-bulk,.rubric-form-footer .actions,.rubric-progress-track{display:none!important}.rubric-row{break-inside:avoid;page-break-inside:avoid;border-color:#999}.rubric-check-box{border-color:#555;color:#000}.rubric-check.checked .rubric-check-box{background:#fff;border-color:#000}}.rubric-template-editor{display:grid;gap:14px}.rubric-template-hint{display:grid;gap:4px}.rubric-template-section{display:grid;gap:12px}.rubric-template-section-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.rubric-template-section-head input{flex:1 1 260px;font-weight:700;font-size:1rem}.rubric-template-tools{display:flex;align-items:center;gap:6px}.rubric-template-tools button{padding:6px 10px;min-width:34px}.rubric-template-items{display:grid;gap:9px}.rubric-template-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-solid)}.rubric-template-item textarea{width:100%;resize:vertical;font:inherit}.rubric-template-add,.rubric-template-add-section{justify-self:start}@media(max-width:720px){.rubric-template-item{grid-template-columns:minmax(0,1fr)}.rubric-template-tools{justify-content:flex-end}}.teacher-rubric-history{display:grid;gap:14px}.teacher-rubric-summary{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.teacher-rubric-summary div{display:grid;gap:2px}.teacher-rubric-summary span{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em}.teacher-rubric-summary strong{font-size:1.25rem}.teacher-rubric-note{margin:-4px 0 0;color:var(--muted);font-size:.82rem}.teacher-rubric-detail{display:grid;gap:14px;padding-top:14px;border-top:1px solid var(--border)}.teacher-rubric-detail-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.teacher-rubric-detail-head>div:first-child{display:grid;gap:2px}.teacher-rubric-detail-section{display:grid;gap:8px}.teacher-rubric-detail-section h4{margin:0}.teacher-rubric-detail-notes{padding:11px 13px;border-radius:var(--radius-sm);background:var(--surface-soft);font-size:.89rem}.partial-exams-calendar-cell.drop-ready.drop-hover,.partial-exams-calendar-cell.drop-hover{box-shadow:inset 0 0 0 3px #138a4b;background:#138a4b21}.partial-exams-page.is-dragging{cursor:grabbing}.partial-exams-page.is-dragging .partial-exams-calendar,.partial-exams-page.is-dragging .partial-exam-card{-webkit-user-select:none;user-select:none}.partial-exam-card{-webkit-user-drag:none}.partial-exam-drag-ghost{position:fixed;z-index:1200;transform:translate(-50%,-140%);pointer-events:none;display:grid;gap:2px;max-width:220px;padding:8px 11px;border:1px solid #138a4b;border-radius:11px;background:#edf9f3;color:#184a35;box-shadow:0 12px 28px #13643d47}.partial-exam-drag-ghost strong{font-size:.82rem}.partial-exam-drag-ghost span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem}:root[data-theme=dark] .partial-exam-drag-ghost,body.dark .partial-exam-drag-ghost{background:#12281e;border-color:#4abe81;color:#a9e6c4}.teachers-inactive-section{display:grid;gap:12px}.teachers-inactive-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:4px 2px;background:transparent;border:0;color:var(--text);text-align:left;cursor:pointer}.teachers-inactive-toggle span{display:grid;gap:2px}.teachers-inactive-toggle small{color:var(--muted);font-weight:400}.teacher-row-inactive{opacity:.72}.teacher-row-inactive:hover{opacity:1}.teacher-delete-button{display:inline-flex;align-items:center;gap:5px}.teacher-delete-modal{width:min(520px,100%);display:grid;gap:13px}.teacher-delete-modal header{display:flex;align-items:center;gap:10px;color:#c0392b}.teacher-delete-modal header h3{margin:0;font-size:1.05rem;line-height:1.3}.teacher-delete-warning{margin:0;padding:11px 13px;border-radius:var(--radius-sm);background:#fdecea;border:1px solid #f2c2bc;color:#8f2b21;font-size:.89rem;line-height:1.5}.teacher-delete-impact{display:grid;gap:6px;font-size:.89rem}.teacher-delete-impact ul{margin:0;padding-left:20px;display:grid;gap:3px;color:var(--muted)}.teacher-delete-impact b{color:var(--text)}.teacher-delete-confirm{display:grid;gap:6px;font-size:.89rem}.teacher-delete-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}:root[data-theme=dark] .teacher-delete-warning,body.dark .teacher-delete-warning{background:#c0392b29;border-color:#c0392b73;color:#f3b8b1}.teacher-sort-select{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.teacher-sort-select select{min-width:190px}.teacher-compliance-cell{display:grid;gap:3px;justify-items:start}.teacher-compliance-cell small{color:var(--muted);font-size:.74rem}.teacher-score-breakdown{display:grid;gap:16px}.score-summary{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-solid)}.score-summary-final{display:grid;gap:1px}.score-summary-final strong{font-size:2.1rem;line-height:1}.score-summary-final span{color:var(--muted);font-size:.8rem}.score-summary-math{display:grid;gap:3px;font-size:.9rem}.score-summary-math small{color:var(--muted);font-size:.78rem}.score-positive{color:var(--success, #138a4b);font-weight:700}.score-negative{color:#c0392b;font-weight:700}.score-columns{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.score-columns h4{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:.95rem}.score-factor-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}.score-factor-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.score-factor-list li div{display:grid;gap:2px;min-width:0}.score-factor-list li small{color:var(--muted);font-size:.77rem}.score-factor-points{font-weight:800;font-variant-numeric:tabular-nums}.score-factor-list.positive .score-factor-points{color:var(--success, #138a4b)}.score-factor-list.negative .score-factor-points{color:#c0392b}.score-empty{margin:0;color:var(--muted);font-size:.87rem}.score-rules{display:grid;gap:6px;padding:13px 15px;border-radius:var(--radius-sm);background:var(--surface-soft)}.score-rules ul{margin:0;padding-left:20px;display:grid;gap:4px;color:var(--muted);font-size:.87rem}.score-rules ul b{color:var(--text)}.score-timeline h4{margin:0 0 8px;font-size:.95rem}.score-counts-note{margin:0;color:var(--muted);font-size:.83rem}.notification-alerts{position:fixed;right:18px;bottom:18px;z-index:1100;width:min(340px,calc(100vw - 28px));display:grid;gap:9px;padding:12px;border-radius:16px;border:1px solid var(--border-strong);background:var(--surface-solid);box-shadow:0 18px 44px #0f281e38;animation:notificationAlertsIn .22s ease-out}@keyframes notificationAlertsIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.notification-alerts.is-collapsed{gap:0;padding:9px 12px}.notification-alerts-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.notification-alerts-head strong{font-size:.9rem}.notification-alerts-toggle{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.76rem;cursor:pointer}.notification-alerts-toggle:hover{border-color:var(--accent);color:var(--accent)}.notification-alerts-list{display:grid;gap:9px;max-height:60vh;overflow-y:auto}.notification-alert-card{display:grid;gap:8px;padding:11px 12px;border:1px solid var(--border);border-left-width:4px;border-radius:12px;background:var(--surface-soft)}.notification-alert-card.tone-notices{border-left-color:#d98324}.notification-alert-card.tone-calendar{border-left-color:#2563eb}.notification-alert-card header{display:flex;align-items:center;gap:9px}.notification-alert-card header div{display:grid;gap:1px}.notification-alert-card header strong{font-size:.88rem}.notification-alert-card header small{color:var(--muted);font-size:.74rem}.notification-alert-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.notification-alert-card.tone-notices .notification-alert-icon{background:#d9832429;color:#a5651a}.notification-alert-card.tone-calendar .notification-alert-icon{background:#2563eb24;color:#2563eb}.notification-alert-card ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.notification-alert-card li{display:grid;gap:1px}.notification-alert-title{font-size:.84rem;font-weight:600}.notification-alert-message{color:var(--muted);font-size:.8rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-alert-card li small{color:var(--muted);font-size:.72rem}.notification-alert-more{color:var(--muted);font-size:.78rem}.notification-alert-action{width:100%;min-height:36px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:700;font-size:.84rem;cursor:pointer}.notification-alert-action:hover{filter:brightness(.94)}:root[data-theme=dark] .notification-alerts,body.dark .notification-alerts{box-shadow:0 18px 44px #00000080}@media(max-width:620px){.notification-alerts{right:10px;left:10px;bottom:10px;width:auto}.notification-alerts-list{max-height:46vh}}@media(max-width:620px){.notification-alerts.is-collapsed{padding:8px 11px}}.planning-files-scope{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:4px 0 12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.planning-scope-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:.82rem}.planning-scope-chip.active{background:var(--accent-soft);color:var(--accent);font-weight:700}.planning-past-months{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.planning-past-months>p{margin:0;color:var(--muted);font-size:.85rem}.planning-past-month-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.planning-past-month{display:grid;gap:2px;padding:9px 11px;text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid);color:var(--text)}.planning-past-month:hover{border-color:var(--accent)}.planning-past-month.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.planning-past-month small{color:var(--muted);font-size:.74rem}.planning-past-month.active small{color:inherit}.planning-past-picker-modal{width:min(560px,100%);display:grid;gap:12px}.planning-past-search{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}.planning-past-teacher-list{display:grid;gap:7px;max-height:52vh;overflow-y:auto}.planning-past-teacher{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid);color:var(--text)}.planning-past-teacher:hover{border-color:var(--accent);color:var(--accent)}.planning-past-teacher span{display:grid;gap:1px;min-width:0}.planning-past-teacher small{color:var(--muted);font-size:.76rem}.planning-past-teacher:hover small{color:inherit}.calendar-pro-shell{grid-template-columns:232px minmax(0,1fr)}.calendar-pro-shell .calendar-right-rail{display:none}@media(min-width:1500px){.calendar-pro-shell{grid-template-columns:232px minmax(0,1fr) 300px}.calendar-pro-shell .calendar-right-rail{display:block}}@media(max-width:900px){.calendar-pro-shell{grid-template-columns:minmax(0,1fr)}}.calendar-left-rail.is-compact{align-content:start}.rail-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:.85rem;cursor:pointer;text-align:left}.rail-toggle:hover{border-color:var(--accent);color:var(--accent)}.rail-toggle span{font-weight:600}.calendar-legend{display:grid;gap:7px}.calendar-legend h3{margin:0 0 2px;font-size:.9rem}.calendar-legend-item{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.8rem}.calendar-legend-item i{width:11px;height:11px;border-radius:3px;flex:0 0 auto}.calendar-month-board,.calendar-month-weeks{display:grid;gap:0}.calendar-week-row{position:relative}.calendar-week-daycells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-cell{min-height:138px;padding:6px 7px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s ease}.calendar-week-daycells>.calendar-month-cell:first-child{border-left:1px solid var(--border)}.calendar-month-cell:hover{background:var(--surface-soft)}.calendar-month-cell.outside-month{background:var(--bg-2);color:var(--muted)}.calendar-month-cell.is-selected{box-shadow:inset 0 0 0 2px var(--accent)}.calendar-month-cell .cell-date-row{display:flex;justify-content:flex-start}.calendar-month-cell .cell-date-row span{display:grid;place-items:center;min-width:25px;height:25px;border-radius:999px;font-size:.82rem;font-weight:600}.calendar-month-cell.is-today .cell-date-row span{background:var(--accent);color:#fff}.calendar-week-bars{position:absolute;left:0;right:0;top:32px;bottom:4px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:24px;gap:3px;padding:0 4px;pointer-events:none}.calendar-week-bars>*{pointer-events:auto}.calendar-event-bar{display:flex;align-items:center;gap:5px;min-width:0;height:22px;padding:0 8px;border:0;border-radius:6px;cursor:pointer;font:inherit;font-size:.76rem;text-align:left;overflow:hidden}.calendar-event-bar strong{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-bar .bar-time{opacity:.85;font-variant-numeric:tabular-nums;flex:0 0 auto}.calendar-event-bar .bar-arrow{margin-left:auto;font-weight:700}.calendar-event-bar:hover{filter:brightness(1.08)}.calendar-event-bar.is-multiday strong{font-weight:700}.calendar-event-bar.continues-before{border-top-left-radius:0;border-bottom-left-radius:0}.calendar-event-bar.continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.calendar-more-chip{height:20px;padding:0 6px;border:0;border-radius:6px;cursor:pointer;background:var(--surface-soft);color:var(--muted);font:inherit;font-size:.72rem;font-weight:600}.calendar-more-chip:hover{color:var(--accent)}.calendar-event-chip{display:inline-flex;align-items:center;gap:5px}.calendar-event-chip svg{flex:0 0 auto}.calendar-color-field{display:grid;gap:8px}.calendar-color-label{font-size:.85rem;font-weight:600}.calendar-color-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.calendar-color-row input[type=color]{width:44px;height:34px;padding:2px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer}.calendar-color-presets{display:flex;flex-wrap:wrap;gap:5px}.calendar-color-presets button{width:24px;height:24px;padding:0;border:2px solid transparent;border-radius:6px;cursor:pointer}.calendar-color-presets button.active{border-color:var(--text)}.calendar-color-preview{display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:8px;font-size:.82rem;font-weight:600}.calendar-multiday-hint{margin:0;padding:9px 11px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:.82rem}@media(max-width:900px){.calendar-month-cell{min-height:96px}.calendar-week-bars{grid-auto-rows:20px;top:28px}.calendar-event-bar{height:19px;font-size:.7rem;padding:0 5px}}.calendar-pro-shell{grid-template-columns:minmax(0,1fr)}@media(min-width:1500px){.calendar-pro-shell{grid-template-columns:minmax(0,1fr)}}.calendar-panel-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.calendar-panel-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:.84rem;cursor:pointer}.calendar-panel-tab:hover{border-color:var(--accent);color:var(--accent)}.calendar-panel-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.calendar-panel-tab.create{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.calendar-panel-tab.create:hover{filter:brightness(.94);color:#fff}.calendar-panel-drawer{margin-bottom:12px}.calendar-panel-drawer .mini-calendar{max-width:330px}.calendar-panel-drawer .calendar-pro-filters{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.calendar-panel-drawer .calendar-pro-filters .two-col{display:flex;gap:8px}.agenda-panel-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.calendar-legend-grid{display:flex;flex-wrap:wrap;gap:10px 20px}.calendar-todos{display:grid;gap:12px}.todo-add-form{display:flex;flex-wrap:wrap;gap:8px}.todo-add-form input[type=text],.todo-add-form input:not([type]){flex:1 1 260px}.todo-message{margin:0;color:#b23c30;font-size:.85rem}.todo-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.84rem}.todo-toolbar>div{display:flex;flex-wrap:wrap;gap:7px}.todo-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}.todo-row{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-solid)}.todo-row.is-done{opacity:.62}.todo-row.is-done .todo-body strong{text-decoration:line-through}.todo-check{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border:2px solid var(--border-strong);border-radius:8px;background:var(--surface-solid);color:#fff;cursor:pointer}.todo-check:hover{border-color:var(--accent)}.todo-row.is-done .todo-check{background:var(--accent);border-color:var(--accent)}.todo-body{display:grid;gap:2px;min-width:0;flex:1 1 auto}.todo-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:.78rem}.todo-notes{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40ch}.todo-row-actions{display:flex;gap:4px;flex:0 0 auto}.todo-empty,.todo-divider{color:var(--muted);font-size:.82rem;padding:4px 2px}.todo-divider{margin-top:6px;padding-top:9px;border-top:1px dashed var(--border);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.72rem}.todo-drawing-modal{width:min(760px,100%);display:grid;gap:12px}.todo-drawing-pad{display:grid;gap:10px}.todo-drawing-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.todo-pen-colors{display:flex;gap:5px}.todo-pen-colors button{width:26px;height:26px;padding:0;border:2px solid transparent;border-radius:50%;cursor:pointer}.todo-pen-colors button.active{border-color:var(--text)}.todo-pen-width{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted)}.todo-pen-width input{width:110px}.todo-drawing-canvas{width:100%;height:min(52vh,420px);border:1px solid var(--border-strong);border-radius:12px;background:#fff;cursor:crosshair;touch-action:none}.todo-drawing-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.todo-drawing-preview{width:100%;border:1px solid var(--border);border-radius:12px;background:#fff}@media(max-width:720px){.todo-add-form input,.todo-add-form button{flex:1 1 100%}.todo-notes{max-width:22ch}}.practices-page,.practice-form,.practice-detail{display:grid;gap:16px}.practice-form-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.practice-form-head h3{margin:0;flex:1 1 auto}.practice-audience-switch{display:inline-flex;align-items:center;gap:8px}.practice-audience-switch label{color:var(--muted);font-size:.84rem}.practice-audience-switch select{min-width:175px}.practice-form-layout,.practice-detail-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:1180px){.practice-form-layout,.practice-detail-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.practice-form-fields{display:grid;gap:12px;align-content:start}.practice-form-fields h4{margin:0}.practice-form-fields label{display:grid;gap:5px;font-size:.87rem}.practice-groups-picker{display:grid;gap:7px}.practice-groups-picker>span{font-size:.87rem;font-weight:600}.practice-group-options{display:grid;gap:7px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.practice-group-options button{display:grid;gap:2px;padding:9px 11px;text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid);color:var(--text)}.practice-group-options button:hover{border-color:var(--accent)}.practice-group-options button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.practice-group-options small{color:var(--muted);font-size:.74rem}.practice-group-options button.active small{color:inherit}.practice-hint{display:flex;align-items:center;gap:7px;margin:0;padding:9px 11px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:.82rem}.practice-preview-column{display:grid;gap:7px;align-content:start}.practice-preview-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.practice-letter{padding:30px 32px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#14201c;font-size:.78rem;line-height:1.55}.practice-letter-head{display:grid;gap:2px;padding-bottom:10px;border-bottom:2px solid #0d5340;margin-bottom:16px}.practice-letter-head strong{color:#0d5340;font-size:1rem}.practice-letter-head small{color:#667;font-size:.68rem}.practice-letter-title{margin:0 0 14px;text-align:center;font-size:.82rem}.practice-letter-right{margin:0 0 14px;text-align:right;font-weight:700}.practice-letter-greeting{margin:0 0 12px;font-weight:700}.practice-letter p{margin:0 0 11px;text-align:justify}.practice-letter-field{background:#fff3d6;padding:0 2px;border-radius:3px}.practice-letter-signature{margin-top:20px!important;font-weight:700}.practice-letter-foot{display:grid;gap:3px;justify-items:center;margin-top:26px;text-align:center}.practice-letter-foot small{align-self:start;justify-self:start;color:#778}.practice-letter-foot em{font-style:italic}.practice-documents{display:grid;gap:10px}.practice-documents h4{margin:0}.practice-document-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.practice-document{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text)}.practice-document:hover{border-color:var(--accent);color:var(--accent)}.practice-document div{display:grid;gap:1px}.practice-document small{color:var(--muted);font-size:.74rem}.practice-document:hover small{color:inherit}.practice-form-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.practice-form-footer span{color:var(--muted);font-size:.85rem}.practice-row-actions{display:flex;gap:6px}.practice-link-card{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}@media(min-width:940px){.practice-link-card{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}.practice-link-card p{margin:5px 0 10px;color:var(--muted);font-size:.86rem}.practice-link-card .eyebrow{display:inline-flex;align-items:center;gap:6px}.practice-link-row{display:flex;flex-wrap:wrap;gap:8px}.practice-link-row input{flex:1 1 250px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.practice-insurance-send{border-left:1px solid var(--border);padding-left:18px}@media(max-width:939px){.practice-insurance-send{border-left:0;padding-left:0;border-top:1px solid var(--border);padding-top:14px}}.practice-retention-note{margin:0 0 12px;padding:9px 12px;border-radius:8px;background:var(--surface-soft);color:var(--muted);font-size:.82rem}.practice-consent-files{display:flex;flex-wrap:wrap;gap:6px}.practice-consent-files a{font-size:.76rem;text-decoration:underline}.consent-shell{min-height:100vh;display:grid;place-items:start center;padding:clamp(12px,4vw,40px);background:linear-gradient(180deg,#f2f7f4,#eef2f0);color:#14201c}.consent-card{width:min(680px,100%);padding:clamp(20px,5vw,36px);border-radius:20px;background:#fff;border:1px solid #dfe7e3;box-shadow:0 20px 50px #1030241a}.consent-header{display:grid;gap:4px;margin-bottom:18px}.consent-kicker{color:#0d5340;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}.consent-header h1{margin:0;font-size:clamp(1.4rem,4vw,1.9rem)}.consent-header p{margin:0;color:#5e6f68;font-size:.88rem}.consent-steps{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0 0 18px;padding:0}.consent-steps li{display:flex;align-items:center;gap:6px;color:#8b9a94;font-size:.76rem}.consent-steps li span{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#e6ecea;color:#6b7a74;font-size:.7rem;font-weight:700}.consent-steps li.active{color:#0d5340;font-weight:700}.consent-steps li.active span{background:#0d5340;color:#fff}.consent-steps li.done span{background:#7cc4a5;color:#06301f}.consent-step{display:grid;gap:13px}.consent-step h2{margin:0;font-size:1.05rem}.consent-step label{display:grid;gap:5px;font-size:.87rem;font-weight:600}.consent-step input[type=text],.consent-step input:not([type]),.consent-step input[type=tel]{padding:11px 12px;border:1px solid #d8e2de;border-radius:10px;font:inherit}.consent-two-col{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.consent-step button{min-height:46px;padding:0 20px;border:0;border-radius:11px;background:#0d5340;color:#fff;font:inherit;font-weight:700;cursor:pointer}.consent-step button:disabled{opacity:.5;cursor:not-allowed}.consent-secondary{background:#edf2f0!important;color:#14201c!important}.consent-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px}.consent-hint{margin:0;color:#5e6f68;font-size:.85rem}.consent-error{margin:0;padding:10px 12px;border-radius:10px;background:#fdecea;color:#a02f24;font-size:.86rem}.consent-letter{max-height:46vh;overflow-y:auto;padding:18px;border:1px solid #dfe7e3;border-radius:12px;background:#fcfdfc;font-size:.8rem;line-height:1.55}.consent-letter h2{text-align:center;font-size:.9rem}.consent-letter p{text-align:justify;margin:0 0 10px}.consent-letter-right{text-align:right!important;font-weight:700}.consent-letter-foot{text-align:center!important;margin-top:18px;font-weight:700}.consent-matches{display:grid;gap:6px}.consent-matches button{display:grid;gap:1px;padding:10px 12px;text-align:left;background:#f4f8f6!important;color:#14201c!important;border:1px solid #dfe7e3!important}.consent-matches small{color:#6b7a74;font-weight:400}.consent-selected{margin:0;color:#0d5340;font-size:.87rem}.consent-privacy{padding:14px;border:1px solid #e6d9ab;border-radius:12px;background:#fffaed}.consent-privacy strong{display:block;margin-bottom:5px;font-size:.88rem}.consent-privacy p{margin:0 0 10px;font-size:.82rem;line-height:1.55;color:#5f5330}.consent-check-line{display:flex!important;align-items:center;gap:9px;font-weight:600}.consent-check-line input{width:auto}.consent-signature{display:grid;gap:8px}.consent-signature-canvas{width:100%;height:190px;border:2px dashed #c3d2cc;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair}.consent-signature-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px;font-size:.82rem;color:#5e6f68}.consent-signature-actions button{min-height:38px}.consent-file{display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;border:1px dashed #c3d2cc;border-radius:12px;cursor:pointer;font-weight:600}.consent-file input{display:none}.consent-capture{display:grid;gap:9px;justify-items:start}.consent-capture.done{flex-direction:row;display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 15px;border-radius:12px;background:#eef8f2;color:#0d5340;font-weight:700}.consent-camera{width:100%;max-height:320px;border-radius:12px;background:#000}.consent-done{display:grid;justify-items:center;gap:10px;text-align:center}.consent-check{width:62px;height:62px;display:grid;place-items:center;border-radius:50%;background:#0d5340;color:#fff;font-size:2rem}.consent-done small{color:#5e6f68}.practice-gmail-note{display:block;margin-top:8px;color:var(--muted);font-size:.78rem;line-height:1.45}.notes-page{display:grid;gap:16px}.notes-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.notes-search{display:inline-flex;align-items:center;gap:8px;flex:1 1 260px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid)}.notes-search input{flex:1 1 auto;border:0;background:transparent;font:inherit;outline:none}.notes-count{margin-left:auto;color:var(--muted);font-size:.84rem}.notes-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.note-card{display:grid;gap:9px;padding:14px;border-radius:14px;border:1px solid rgba(15,40,30,.1);color:#14201c;box-shadow:0 2px 10px #0f281e0f}.note-card.is-done{opacity:.6}.note-card.is-done header strong{text-decoration:line-through}.note-card header{display:flex;align-items:flex-start;gap:9px}.note-card header strong{font-size:.95rem;line-height:1.35}.note-check{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;border:2px solid rgba(15,40,30,.3);border-radius:6px;background:#ffffffb3;color:#fff;cursor:pointer}.note-card.is-done .note-check{background:#0f766e;border-color:#0f766e}.note-card-content{margin:0;font-size:.85rem;line-height:1.5;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}.note-card-drawing{display:inline-flex;align-items:center;gap:6px;justify-self:start;padding:5px 10px;border:1px solid rgba(15,40,30,.18);border-radius:999px;background:#ffffffa6;color:#14201c;font:inherit;font-size:.76rem;cursor:pointer}.note-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:7px;border-top:1px solid rgba(15,40,30,.1)}.note-card footer small{color:#5f6f68;font-size:.72rem}.note-card footer div{display:flex;gap:3px}.note-card footer .icon-btn{color:#46564f}.notes-empty{grid-column:1 / -1;display:grid;justify-items:center;gap:7px;padding:30px 20px;text-align:center;color:var(--muted)}.notes-empty strong{color:var(--text)}.notes-done-title{margin:6px 0 0;font-size:1rem;color:var(--muted)}.note-editor{width:min(720px,100%);display:grid;gap:12px;max-height:92vh;overflow-y:auto}.note-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.note-editor-head h3{margin:0}.note-title-input{font-size:1rem;font-weight:600}.note-content-input{width:100%;resize:vertical;font:inherit;line-height:1.5}.note-color-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.84rem}.note-color-row>span{color:var(--muted);margin-right:4px}.note-color-row button{width:26px;height:26px;padding:0;border:2px solid var(--border);border-radius:7px;cursor:pointer}.note-color-row button.active{border-color:var(--text)}.note-drawing-section{display:grid;gap:9px}.note-drawing-buttons{display:flex;flex-wrap:wrap;gap:8px}.note-drawing-preview{width:100%;border:1px solid var(--border);border-radius:12px;background:#fff}.note-editor-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.note-canvas-wrap{display:grid;gap:9px}.note-canvas-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.note-pen-colors{display:flex;gap:5px}.note-pen-colors button{width:26px;height:26px;padding:0;border:2px solid transparent;border-radius:50%;cursor:pointer}.note-pen-colors button.active{border-color:var(--text)}.note-pen-width{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted)}.note-pen-width input{width:110px}.note-canvas{width:100%;height:min(55vh,460px);border:1px solid var(--border-strong);border-radius:12px;background:#fff;cursor:crosshair;touch-action:none}.note-canvas-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.note-preview-modal{width:min(680px,100%);display:grid;gap:12px}@media(max-width:620px){.notes-grid{grid-template-columns:minmax(0,1fr)}.notes-count{margin-left:0}}.consent-camera-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:grid;place-items:center;padding:14px;background:#08140fb8}.consent-camera-modal{width:min(560px,100%);display:grid;gap:12px;padding:18px;border-radius:18px;background:#fff;color:#14201c;box-shadow:0 24px 60px #08140f66}.consent-camera-modal header{display:flex;align-items:center;justify-content:space-between;gap:10px}.consent-camera-modal header strong{font-size:1rem}.consent-camera-close{width:32px;height:32px;border:0;border-radius:50%;background:#eef2f0;color:#14201c;font-size:1rem;cursor:pointer}.consent-camera-stage{position:relative;width:100%;aspect-ratio:3 / 4;max-height:58vh;display:grid;place-items:center;border-radius:14px;overflow:hidden;background:#0d1512}@media(min-width:620px){.consent-camera-stage{aspect-ratio:4 / 3}}.consent-camera{width:100%;height:100%;object-fit:cover;background:#0d1512;transform:scaleX(-1)}.consent-camera-loading{position:absolute;color:#d7e5df;font-size:.86rem}.consent-camera-countdown{position:absolute;display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:#dc2626d9;color:#fff;font-size:2.2rem;font-weight:800}.consent-camera-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px}.consent-camera-actions button{min-height:46px;padding:0 20px;border:0;border-radius:11px;background:#0d5340;color:#fff;font:inherit;font-weight:700;cursor:pointer}.consent-camera-actions button:disabled{opacity:.5;cursor:not-allowed}.consent-capture-done{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 15px;border-radius:12px;background:#eef8f2;color:#0d5340;font-weight:700}.practice-file-modal{width:min(720px,100%);display:grid;gap:12px;max-height:92vh;overflow-y:auto}.practice-file-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-file-modal-head h4{margin:0}.practice-file-media{width:100%;max-height:66vh;object-fit:contain;border:1px solid var(--border);border-radius:12px;background:#fff}.practice-file-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.practice-file-link{padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:.76rem;cursor:pointer}.practice-file-link:hover{border-color:var(--accent);color:var(--accent)}.practice-roster-panel{display:grid;gap:12px}.practice-roster-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.practice-roster-head h4{margin:0;display:inline-flex;align-items:center;gap:8px}.practice-roster-head small{color:var(--muted);font-weight:400}.practice-roster-search{flex:1 1 220px;max-width:320px}.practice-roster-list{display:grid;gap:9px;max-height:60vh;overflow-y:auto;padding-right:3px}.practice-student-card{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-solid)}.practice-student-card>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px}.practice-student-card>header div{display:grid;gap:1px;min-width:0}.practice-student-card>header small{color:var(--muted);font-size:.76rem}.practice-student-controls{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.practice-student-controls label{display:grid;gap:3px}.practice-student-controls span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.practice-student-controls select{width:100%;min-height:38px}.practice-roster-empty{margin:0;color:var(--muted);font-size:.87rem}.consent-card,.consent-card *{box-sizing:border-box}.consent-shell{overflow-x:hidden}.consent-step,.consent-step>*{min-width:0;max-width:100%}.consent-step select,.consent-step input,.consent-step textarea{width:100%;max-width:100%;padding:11px 12px;border:1px solid #d8e2de;border-radius:10px;font:inherit;color:#14201c;background:#fff}.consent-step select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:none}.consent-step button{max-width:100%;white-space:normal;word-break:break-word}.consent-nav button{flex:1 1 auto;min-width:0}@media(max-width:560px){.consent-nav{flex-direction:column-reverse;gap:8px}.consent-nav button{width:100%}.consent-two-col{grid-template-columns:minmax(0,1fr)}.consent-steps{gap:4px 10px}.consent-steps li{font-size:.72rem}.consent-letter{max-height:40vh;padding:14px}.consent-privacy{padding:12px}.consent-file{padding:12px;gap:8px}.consent-camera-actions{flex-direction:column-reverse}.consent-camera-actions button{width:100%}}.practice-consent-files{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.practice-consent-files .practice-file-link{display:inline-flex;align-items:center;gap:6px}.practice-consent-files .practice-file-link:disabled{opacity:.6;cursor:progress}.practice-consent-files small{color:var(--muted);font-size:.72rem}.notification-alerts.is-collapsed{display:none}.notification-alerts-head{display:flex;align-items:center;gap:8px;color:#a5651a}.notification-alerts-toggle{display:none}.notification-alerts-foot{display:block;color:var(--muted);font-size:.73rem;text-align:center}.notification-alerts{border-left:4px solid #d98324}.broken-link-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,#f2f7f4,#eef2f0);color:#14201c}.broken-link-card{width:min(520px,100%);padding:clamp(22px,5vw,34px);text-align:center;border-radius:18px;background:#fff;border:1px solid #dfe7e3;box-shadow:0 18px 44px #1030241a}.broken-link-card h1{margin:0 0 10px;font-size:1.3rem}.broken-link-card p{margin:0 0 12px;color:#5e6f68;line-height:1.55}.broken-link-card small{color:#7b8b84}.bulk-student-defaults{display:grid;gap:9px;padding:12px 14px;margin:4px 0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.bulk-student-defaults p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}.bulk-defaults-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.bulk-defaults-grid label{display:grid;gap:4px;font-size:.85rem}.consent-optional-block{display:grid;gap:6px}.consent-optional-tag{justify-self:start;padding:2px 9px;border-radius:999px;background:#eef2f0;color:#5e6f68;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.consent-link-button{padding:0!important;min-height:0!important;background:none!important;color:#0d5340!important;font-weight:700!important;text-decoration:underline;cursor:pointer}.practice-insurance-import{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:var(--surface-solid);color:var(--text);font-size:.82rem;font-weight:600}.practice-insurance-import:hover{border-color:var(--accent);color:var(--accent)}.practice-insurance-import.is-busy{opacity:.6;cursor:progress}.practice-insurance-result{display:grid;gap:8px;padding:12px 14px;margin-bottom:10px;border:1px solid var(--accent);border-radius:10px;background:var(--accent-soft)}.practice-insurance-result ul{margin:0;padding-left:20px;display:grid;gap:4px;font-size:.86rem}.practice-insurance-result button{justify-self:start}.practice-insurance-missing{display:block;margin-top:3px;color:var(--muted);font-size:.78rem;line-height:1.45}.students-import-target{display:grid;gap:10px;padding:12px 14px;margin:4px 0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.students-import-target>p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}.students-import-target-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.students-import-target-grid label{display:grid;gap:4px;font-size:.85rem}.students-import-check{display:flex;align-items:flex-start;gap:9px;font-size:.82rem;line-height:1.45}.students-import-check input{width:auto;margin-top:2px}.students-import-result{display:grid;gap:9px;padding:12px 14px;margin:4px 0 10px;border:1px solid var(--accent);border-radius:10px;background:var(--accent-soft)}.students-import-result ul{margin:0;padding-left:20px;display:grid;gap:5px;font-size:.86rem}.students-import-result button{justify-self:start}.students-import-detail{display:block;margin-top:4px;color:var(--muted);font-size:.76rem;line-height:1.5;max-height:140px;overflow-y:auto}.students-import-result summary{cursor:pointer;font-size:.84rem;font-weight:600}.practice-student-badges{display:flex;flex-wrap:wrap;gap:6px}.practice-student-card.insurance-pagado,.practice-student-card.insurance-exento{border-left:4px solid #138a4b}.practice-student-card.insurance-pendiente{border-left:4px solid #c0392b}.pill.danger{background:#c0392b1f;color:#a3271c}.practice-deadline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px;margin:10px 0 12px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.practice-deadline label{display:grid;gap:4px;font-size:.82rem}.practice-deadline small{flex:1 1 100%;color:var(--muted);font-size:.78rem}.consent-deadline{margin:4px 0 0!important;padding:6px 10px;border-radius:8px;background:#fff6e0;color:#8a6212;font-size:.82rem;font-weight:600}.consent-blocked-modal{width:min(460px,100%);display:grid;gap:11px;justify-items:center;padding:26px 22px;border-radius:18px;background:#fff;color:#14201c;text-align:center;box-shadow:0 24px 60px #08140f66}.consent-blocked-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#fdecea;color:#a02f24;font-size:1.7rem;font-weight:800}.consent-blocked-modal h2,.consent-closed h1{margin:0;font-size:1.15rem}.consent-blocked-modal p{margin:0;line-height:1.55;font-size:.9rem}.consent-blocked-action{color:#8a6212;background:#fff6e0;padding:10px 12px;border-radius:10px}.consent-blocked-modal button{min-height:44px;padding:0 26px;border:0;border-radius:11px;background:#0d5340;color:#fff;font:inherit;font-weight:700;cursor:pointer}.consent-closed{display:grid;gap:11px;justify-items:center;text-align:center}.consent-closed small{color:#5e6f68}.practice-groups-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px}.practice-group-search{flex:1 1 180px;max-width:260px}.practice-selected-groups{display:flex;flex-wrap:wrap;gap:6px}.practice-selected-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;cursor:pointer;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-size:.78rem;font-weight:700}.practice-group-careers{display:grid;gap:12px}.practice-group-career header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.practice-group-career header strong{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.practice-group-career header button{padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--accent);font:inherit;font-size:.74rem;cursor:pointer}.practice-groups-manager{display:grid;gap:10px}.practice-groups-manager>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.practice-groups-manager>header h4{margin:0;display:inline-flex;align-items:center;gap:8px}.practice-groups-manager>header span{color:var(--muted);font-size:.84rem}.practice-groups-manager>small{color:var(--muted);font-size:.78rem;line-height:1.45}.practice-groups-chips{display:flex;flex-wrap:wrap;gap:7px}.practice-group-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.82rem;font-weight:700}.practice-group-chip button{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:#0000001a;color:inherit;cursor:pointer}.practice-groups-add{display:flex;flex-wrap:wrap;gap:8px}.practice-groups-add select{flex:1 1 260px}.students-directory-split{display:grid;gap:16px;align-items:start;grid-template-columns:minmax(0,1fr)}@media(min-width:1180px){.students-directory-split{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}.students-directory-split>.students-main-groups-panel{position:sticky;top:16px;max-height:calc(100vh - 40px);overflow-y:auto}.students-directory-split .students-main-groups-grid{grid-template-columns:minmax(0,1fr)}.students-directory-split .students-main-group-card{min-height:0}}.students-group-filter{width:100%;margin-bottom:12px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}.students-group-selection-hint{align-self:start}.justificants-page,.justificant-detail{display:grid;gap:16px}.justificant-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:1100px){.justificant-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}}.justificant-info{display:grid;gap:11px;align-content:start}.justificant-info h4{margin:0}.justificant-info dl{display:grid;gap:7px;margin:0}.justificant-info dl>div{display:grid;gap:1px}.justificant-info dt{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.justificant-info dd{margin:0;font-size:.9rem}.justificant-reason{margin:0;padding:10px 12px;border-radius:9px;background:var(--surface-soft);font-size:.86rem;line-height:1.5}.justificant-summary{display:grid;gap:6px;justify-items:start;padding:11px 13px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:.87rem}.justificant-summary small{color:inherit;opacity:.85;font-size:.78rem}.justificant-candidates{display:grid;gap:11px;align-content:start}.justificant-candidates>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.justificant-candidates>header h4{margin:0}.justificant-candidates>header span{color:var(--muted);font-size:.84rem}.justificant-list{display:grid;gap:7px;max-height:46vh;overflow-y:auto;padding-right:3px}.justificant-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid)}.justificant-row input{width:auto;margin-top:3px}.justificant-row div{display:grid;gap:2px}.justificant-row small{color:var(--muted);font-size:.77rem}.justificant-row.is-selected{border-color:var(--accent);background:var(--accent-soft)}.justificant-row.is-blocked{opacity:.55;cursor:not-allowed}.justificant-blocked{color:#a3271c!important}.justificant-notes{display:grid;gap:5px;font-size:.85rem}.justificant-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.justificant-hint{color:var(--muted);font-size:.78rem}.justificant-file-modal{width:min(860px,100%);display:grid;gap:12px;max-height:92vh;overflow-y:auto}.justificant-file-frame{width:100%;height:min(70vh,640px);border:1px solid var(--border);border-radius:12px}.teacher-justificants{display:grid;gap:14px}.teacher-justificant-form{display:grid;gap:10px}.teacher-justificant-form h4{margin:0}.teacher-justificant-form label{display:grid;gap:4px;font-size:.86rem}.teacher-justificant-form small{color:var(--muted);font-size:.78rem}.teacher-justificant-file{display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px dashed var(--border-strong);border-radius:10px;cursor:pointer;font-weight:600}.teacher-justificant-file input{display:none}.modal-backdrop,.semester-edit-backdrop,.drive-viewer-backdrop,.drive-delete-backdrop,.consent-camera-backdrop{place-items:start center!important;align-content:safe center!important;padding:16px!important;overflow:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-backdrop>*,.semester-edit-backdrop>*,.drive-viewer-backdrop>*,.drive-delete-backdrop>*,.consent-camera-backdrop>*{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;margin-block:auto;width:100%;max-width:min(960px,100%)}@media(max-height:560px){.modal-backdrop,.semester-edit-backdrop,.drive-viewer-backdrop,.drive-delete-backdrop,.consent-camera-backdrop{padding:8px!important}.modal-backdrop>*,.semester-edit-backdrop>*,.drive-viewer-backdrop>*,.drive-delete-backdrop>*,.consent-camera-backdrop>*{max-height:calc(100dvh - 16px)}}body.modal-open{overflow:hidden!important}.justificant-new-form{display:grid;gap:11px;max-width:720px}.justificant-new-form label{display:grid;gap:4px;font-size:.86rem}.justificant-new-form .two-col{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.calendar-bar-icon{display:grid;place-items:center;flex:0 0 auto;width:18px;height:18px;border-radius:5px;background:#ffffff38}.calendar-event-bar{height:26px;font-size:.79rem;gap:6px}.calendar-week-bars{grid-auto-rows:28px}.calendar-month-cell{min-height:150px}.calendar-event-chip svg{width:16px;height:16px}.calendar-legend-item i{width:13px;height:13px}.calendar-legend-item{font-size:.84rem;gap:8px}.calendar-form-section{display:grid;gap:10px;margin:0;padding:13px 14px 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.calendar-form-section legend{padding:0 8px;margin-left:4px;color:var(--muted);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.calendar-type-picker{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.calendar-type-option{display:flex;align-items:center;gap:9px;padding:9px 11px;cursor:pointer;border:2px solid var(--border);border-radius:11px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:.82rem;font-weight:600;text-align:left;transition:border-color .12s ease,background .12s ease}.calendar-type-option:hover{border-color:var(--accent)}.calendar-type-option.active{font-weight:700}.calendar-type-icon{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:10px}.calendar-color-preview{padding:11px 14px;font-size:.88rem;gap:9px}@media(max-width:620px){.calendar-type-picker{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.calendar-type-icon{width:30px;height:30px}.calendar-month-cell{min-height:104px}.calendar-event-bar{height:22px;font-size:.72rem}.calendar-week-bars{grid-auto-rows:24px}}.notification-alerts-head{justify-content:space-between}.notification-alerts-close{display:grid;place-items:center;width:26px;height:26px;flex:0 0 auto;margin-left:auto;padding:0;cursor:pointer;border:1px solid var(--border);border-radius:50%;background:var(--surface-solid);color:var(--muted)}.notification-alerts-close:hover{border-color:var(--accent);color:var(--accent)}.print-schedules-blank-option{display:flex;align-items:flex-start;gap:10px;margin:4px 0 10px;padding:12px 14px;cursor:pointer;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.print-schedules-blank-option input{width:auto;margin-top:3px}.print-schedules-blank-option span{display:grid;gap:3px;font-size:.82rem;color:var(--muted);line-height:1.45}.print-schedules-blank-option strong{color:var(--text);font-size:.88rem}@media(max-width:1024px){.attendance-physical-table tbody tr{content-visibility:auto;contain-intrinsic-size:auto 132px}.attendance-physical-wrap,.attendance-teacher-card,.attendance-group-card{contain:content}}.print-schedules-day-date{display:grid;gap:6px;max-width:420px;margin:0 0 14px;font-size:.86rem;font-weight:600}.print-schedules-day-date small{color:var(--muted);font-size:.78rem;font-weight:400;line-height:1.45}.calendar-reminders{position:fixed;top:16px;right:16px;z-index:900;display:grid;gap:8px;width:min(340px,calc(100vw - 32px))}.calendar-reminder-card{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:12px 13px;border-radius:12px;background:var(--surface-solid);border:1px solid var(--border);box-shadow:0 12px 30px #0f201924}.calendar-reminder-card.is-today{border-left:4px solid #138a4b}.calendar-reminder-card.is-tomorrow{border-left:4px solid #d98324}.calendar-reminder-card>div{display:grid;gap:2px;min-width:0}.calendar-reminder-card strong{font-size:.87rem;line-height:1.35}.calendar-reminder-card small{color:var(--muted);font-size:.78rem;line-height:1.4}.calendar-reminder-time{font-weight:600}.calendar-reminder-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.calendar-reminder-card>button{display:grid;place-items:center;width:24px;height:24px;padding:0;cursor:pointer;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--muted)}.calendar-reminder-card>button:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:720px){.calendar-reminders{top:10px;right:10px;left:10px;width:auto}}.attendance-capture-toolbar{display:block}.coordinator-cards{display:grid;gap:10px}.coordinator-cards-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.coordinator-cards-head>span{color:var(--muted);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.coordinator-cards-head em{font-style:normal;font-size:.82rem;color:var(--muted)}.coordinator-cards-head em.is-required{color:#a3271c;font-weight:600}.coordinator-cards-grid{display:grid;gap:9px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.coordinator-card{display:flex;align-items:center;gap:11px;padding:10px 12px;cursor:pointer;border:2px solid var(--border);border-radius:14px;background:var(--surface-solid);color:var(--text);font:inherit;text-align:left;transition:border-color .12s ease,background .12s ease,transform .12s ease}.coordinator-card:hover{transform:translateY(-1px)}.coordinator-card:disabled{opacity:.55;cursor:not-allowed;transform:none}.coordinator-card-badge{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:13px;color:#fff;font-size:.86rem;font-weight:800;letter-spacing:.02em}.coordinator-card-name{display:grid;gap:1px;min-width:0}.coordinator-card-name strong{font-size:.87rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coordinator-card-name small{color:var(--muted);font-size:.74rem}.coordinator-card.active .coordinator-card-name strong{font-weight:800}.coordinator-cards-empty{margin:0;color:var(--muted);font-size:.84rem}.attendance-format-date-field{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.82rem;letter-spacing:.02em}.attendance-format-date-field input{padding:2px 6px;min-height:0;border:1px solid var(--border);border-radius:7px;background:transparent;font:inherit;color:inherit}@media(max-width:620px){.coordinator-cards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.coordinator-card-badge{width:34px;height:34px;border-radius:11px}}.attendance-auto-badge{display:inline-block;width:fit-content;margin-top:3px;padding:3px 9px;border-radius:999px;background:#0f766e1f;color:#0f766e;font-size:.72rem;font-weight:700;line-height:1.3}.quick-access-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.quick-access-title small{flex:1 1 100%;color:var(--muted);font-size:.74rem;font-weight:400}.quick-access-item{display:inline-flex;align-items:stretch;gap:0;border-radius:999px;background:var(--surface-solid);border:1px solid var(--border);overflow:hidden}.quick-access-item.active{border-color:var(--accent)}.quick-access-item>a{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:0;background:transparent;text-decoration:none;color:inherit;font-size:.82rem;font-weight:600;white-space:nowrap}.quick-access-item.active>a{color:var(--accent)}.quick-access-item[draggable=true]{cursor:grab}.quick-access-item:active{cursor:grabbing}.quick-access-move{display:grid;place-items:center;width:22px;padding:0;cursor:pointer;border:0;background:transparent;color:var(--muted);font-size:1.05rem;line-height:1}.quick-access-move:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.quick-access-move:disabled{opacity:.25;cursor:default}@media(max-width:720px){.quick-access-move{width:28px}.quick-access-item>a{padding:9px 8px}}.calendar-teacher-select-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.calendar-teacher-select-head>span{color:var(--muted);font-size:.8rem;font-weight:600}.calendar-teacher-select-head input{flex:1 1 160px}.calendar-teacher-clear{padding:4px 11px;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:.75rem}.calendar-teacher-chips{display:flex;flex-wrap:wrap;gap:6px}.calendar-teacher-chips button{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;cursor:pointer;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-size:.76rem;font-weight:700}.calendar-attendance-preview{display:grid;gap:5px;padding:11px 13px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:.82rem}.calendar-attendance-preview ul{margin:0;padding-left:18px;display:grid;gap:2px}.calendar-attendance-preview small{color:inherit;opacity:.8;font-size:.75rem;line-height:1.45}.public-evaluation-options.is-scale{display:grid;gap:6px;grid-template-columns:repeat(10,minmax(0,1fr))}.public-evaluation-options.is-scale .public-evaluation-scale-hint{grid-column:1 / -1;color:var(--muted);font-size:.76rem;margin-bottom:2px}.public-evaluation-options.is-scale label{display:grid;place-items:center;min-height:46px;padding:0;border:2px solid var(--border);border-radius:11px;cursor:pointer;font-weight:700;font-size:.9rem}.public-evaluation-options.is-scale label.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.public-evaluation-options.is-scale input{display:none}@media(max-width:560px){.public-evaluation-options.is-scale{grid-template-columns:repeat(5,minmax(0,1fr))}.public-evaluation-options.is-scale label{min-height:48px}}.note-subitems{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.note-subitems li{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;padding:5px 7px;border-radius:8px;background:#ffffff8c}.note-subitems li.is-done{opacity:.6}.note-subitems li.is-done span{text-decoration:line-through}.note-subitems label{display:flex;align-items:flex-start;gap:7px;font-size:.82rem;line-height:1.4}.note-subitems input{width:auto;margin-top:2px}.note-subitem-add{display:flex;gap:6px;margin-top:6px}.note-subitem-add input{flex:1;padding:6px 9px;font-size:.8rem;min-height:0}.note-subitem-add button{display:grid;place-items:center;width:32px;padding:0;cursor:pointer;border:0;border-radius:8px;background:var(--accent);color:#fff}.note-files{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.note-files button{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 9px;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:#ffffffb3;font:inherit;font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-file-add{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:5px 10px;cursor:pointer;border:1px dashed var(--border-strong);border-radius:999px;font-size:.75rem;color:var(--muted)}.note-share-badge{display:inline-block;margin-top:8px;padding:3px 9px;border-radius:999px;background:#0d53401f;color:#0d5340;font-size:.72rem;font-weight:700}.note-visibility-row{display:grid;gap:7px;margin:4px 0}.note-visibility-row>span{font-size:.8rem;font-weight:600}.note-visibility-row>div{display:flex;flex-wrap:wrap;gap:6px}.note-visibility-row>div button{padding:6px 13px;cursor:pointer;border:2px solid var(--border);border-radius:999px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:.8rem;font-weight:600}.note-visibility-row>div button.active{border-color:var(--accent);color:var(--accent)}.note-visibility-row small{color:var(--muted);font-size:.75rem;line-height:1.45}.note-calendar-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding:7px 9px;border-radius:9px;background:#fff9;font-size:.76rem;color:var(--muted)}.note-calendar-row input{padding:4px 7px;min-height:0;font-size:.76rem}.note-calendar-row input[type=date]{flex:1 1 120px}.note-calendar-row input[type=time]{flex:0 0 92px}.note-calendar-row button{padding:5px 11px;cursor:pointer;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-size:.74rem;font-weight:700}.note-calendar-row.is-linked{color:#0d5340;font-weight:600}.note-calendar-row.is-linked button{background:transparent;color:#a3271c;text-decoration:underline;padding:0 4px}.event-practice-link{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:10px 16px;border-radius:11px;background:#ea580c;color:#fff;text-decoration:none;font-size:.86rem;font-weight:700}.event-practice-link:hover{filter:brightness(1.06)}.print-pdf-viewer{width:min(1000px,100%);display:grid;gap:12px;max-height:92vh}.print-pdf-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.print-pdf-viewer-head h4{margin:0;display:inline-flex;align-items:center;gap:8px}.print-pdf-viewer-frame{width:100%;height:min(74vh,700px);border:1px solid var(--border);border-radius:12px;background:#fff}.print-pdf-viewer-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.print-schedules-day-download{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:4px 10px;border-radius:999px;background:#ffffff38;font-size:.72rem;font-weight:700}.print-schedules-day-download:hover{background:#ffffff59}@media(max-width:720px){.print-pdf-viewer-frame{height:68vh}}.event-practice-link{display:flex;align-items:center;gap:12px;width:100%;margin-top:12px;padding:13px 16px;border-radius:14px;text-decoration:none;color:#fff;background:linear-gradient(135deg,#ea580c,#c2410c);box-shadow:0 8px 20px #ea580c52;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;-webkit-tap-highlight-color:transparent}.event-practice-link:hover{filter:brightness(1.05);box-shadow:0 10px 26px #ea580c66}.event-practice-link:active{transform:scale(.975);box-shadow:0 3px 10px #ea580c4d}.event-practice-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:#ffffff38}.event-practice-text{display:grid;gap:1px;flex:1;min-width:0}.event-practice-text strong{font-size:.95rem;font-weight:800;letter-spacing:-.01em}.event-practice-text small{font-size:.76rem;opacity:.88}.event-practice-arrow{flex:0 0 auto;transition:transform .14s ease}.event-practice-link:hover .event-practice-arrow{transform:translate(3px)}.event-practice-link.is-opening{pointer-events:none;animation:practiceLinkPulse 1s ease-in-out infinite}.event-practice-link.is-opening .event-practice-arrow{transform:translate(6px);opacity:.6}@keyframes practiceLinkPulse{0%,to{box-shadow:0 8px 20px #ea580c52}50%{box-shadow:0 8px 26px #ea580c8c}}@media(prefers-reduced-motion:reduce){.event-practice-link,.event-practice-arrow{transition:none}.event-practice-link.is-opening{animation:none}}@media(max-width:560px){.event-practice-icon{width:36px;height:36px}.event-practice-text strong{font-size:.9rem}}.calendar-practice-choice{width:min(680px,100%);display:grid;gap:16px}.calendar-practice-choice>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.calendar-practice-choice>header span{color:var(--muted);font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.calendar-practice-choice>header h3{margin:2px 0 0}.calendar-practice-choice-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:620px){.calendar-practice-choice-grid{grid-template-columns:minmax(0,1fr)}}.calendar-choice-card{display:grid;gap:7px;justify-items:center;text-align:center;padding:22px 16px;cursor:pointer;text-decoration:none;border:2px solid var(--border);border-radius:16px;background:var(--surface-solid);color:var(--text);font:inherit;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;-webkit-tap-highlight-color:transparent}.calendar-choice-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 24px #0f20191f}.calendar-choice-card:active:not(:disabled){transform:scale(.975);box-shadow:none}.calendar-choice-card:disabled{opacity:.5;cursor:not-allowed}.calendar-choice-card strong{font-size:1rem}.calendar-choice-card small{color:var(--muted);font-size:.8rem;line-height:1.45}.calendar-choice-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;color:#fff}.calendar-choice-card.is-edit{border-color:#0d534059}.calendar-choice-card.is-edit .calendar-choice-icon{background:#0d5340}.calendar-choice-card.is-edit:hover:not(:disabled){border-color:#0d5340}.calendar-choice-card.is-practice{border-color:#ea580c59}.calendar-choice-card.is-practice .calendar-choice-icon{background:#ea580c}.calendar-choice-card.is-practice:hover{border-color:#ea580c}@media(prefers-reduced-motion:reduce){.calendar-choice-card{transition:none}.calendar-choice-card:hover:not(:disabled){transform:none}}:root{--grad-brand: linear-gradient(135deg, #0f6b4f 0%, #15805f 55%, #1a9a72 100%);--grad-brand-deep: linear-gradient(140deg, #073b2d 0%, #0f6b4f 100%);--grad-surface: linear-gradient(160deg, #ffffff 0%, #f7fbf8 100%);--grad-soft: linear-gradient(135deg, #e8f5ef 0%, #f4faf6 100%);--shadow-lift: 0 14px 34px rgba(7, 59, 45, .13);--shadow-float: 0 26px 60px rgba(7, 59, 45, .2);--shadow-ring: 0 0 0 3px rgba(15, 107, 79, .14);--ease-out: cubic-bezier(.22, .8, .34, 1)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(1100px 520px at 12% -8%,rgba(26,154,114,.11),transparent 62%),radial-gradient(900px 460px at 105% 8%,rgba(15,107,79,.09),transparent 58%)}.page-head,.reports-hero{position:relative;overflow:hidden;background:var(--grad-surface);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.page-head:before,.reports-hero:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad-brand)}.page-head h1,.reports-hero h1{letter-spacing:-.045em}.panel{background:var(--grad-surface);transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out)}.panel:hover{box-shadow:var(--shadow-lift)}button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger),.button:not(.secondary){background:var(--grad-brand);border:0;box-shadow:0 6px 16px #0f6b4f42;transition:transform .14s var(--ease-out),box-shadow .14s var(--ease-out),filter .14s var(--ease-out)}button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger):hover:not(:disabled),.button:not(.secondary):hover{filter:brightness(1.06);box-shadow:0 10px 24px #0f6b4f52}button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger):active:not(:disabled),.button:not(.secondary):active{transform:scale(.975);box-shadow:0 3px 10px #0f6b4f38}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--shadow-ring)}.sidebar{background:var(--grad-brand-deep)}.modal-backdrop,.semester-edit-backdrop,.drive-viewer-backdrop,.drive-delete-backdrop,.consent-camera-backdrop{animation:cdtFade .18s var(--ease-out)}.modal-backdrop>*,.semester-edit-backdrop>*,.drive-viewer-backdrop>*,.drive-delete-backdrop>*,.consent-camera-backdrop>*{animation:cdtZoomIn .24s var(--ease-out);box-shadow:var(--shadow-float)}@keyframes cdtFade{0%{opacity:0}to{opacity:1}}@keyframes cdtZoomIn{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.calendar-reminders>*{animation:cdtSlideRight .28s var(--ease-out)}.notification-alerts{animation:cdtSlideUp .3s var(--ease-out)}@keyframes cdtSlideRight{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes cdtSlideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}tbody tr{transition:background .14s var(--ease-out)}tbody tr:hover,thead th{background:var(--grad-soft)}.pill{box-shadow:var(--shadow-xs)}@media(prefers-reduced-motion:reduce){.modal-backdrop,.semester-edit-backdrop,.drive-viewer-backdrop,.drive-delete-backdrop,.consent-camera-backdrop,.modal-backdrop>*,.semester-edit-backdrop>*,.drive-viewer-backdrop>*,.drive-delete-backdrop>*,.consent-camera-backdrop>*,.calendar-reminders>*,.notification-alerts{animation:none}.panel,button,.button,tbody tr{transition:none}button:active,.button:active{transform:none}}@media print{body:before{display:none}.page-head:before,.reports-hero:before{display:none}.panel,.page-head,.reports-hero{background:#fff;box-shadow:none}thead th,tbody tr:hover{background:#fff}}.login-page.modern-login{position:relative;background:#05261d}.login-page.modern-login:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/login-campus.jpg) center / cover no-repeat;filter:blur(2px);transform:scale(1.04)}.login-page.modern-login:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(120deg,#05261de0,#073b2db8 45%,#0f6b4f85)}.login-page.modern-login>*{position:relative;z-index:1}.modern-login .login-hero{display:grid;gap:18px;align-content:center;justify-items:start;background:none;box-shadow:none;border:0;animation:cdtLoginIn .38s var(--ease-out)}.modern-login .login-hero .login-brand-mark{width:96px;height:96px;padding:0;background:none;box-shadow:none;border:0}.modern-login .login-hero .login-brand-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.45))}.modern-login .login-hero h1{display:grid;gap:2px;margin:0;color:#fff;text-shadow:0 3px 20px rgba(0,0,0,.45)}.login-hero-cdt{font-size:clamp(3.2rem,9vw,5.4rem);font-weight:800;letter-spacing:-.05em;line-height:.95}.login-hero-name{font-size:clamp(1.05rem,2.6vw,1.65rem);font-weight:600;letter-spacing:.02em;opacity:.94}.modern-login .login-card.glass-card{background:#fffffff7;border:1px solid rgba(255,255,255,.55);box-shadow:0 30px 70px #00000061;animation:cdtLoginCard .4s var(--ease-out)}.modern-login .login-card h2{margin-bottom:4px}@keyframes cdtLoginIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes cdtLoginCard{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:900px){.modern-login .login-hero{justify-items:center;text-align:center;gap:12px}.modern-login .login-hero .login-brand-mark{width:74px;height:74px}}@media(prefers-reduced-motion:reduce){.modern-login .login-hero,.modern-login .login-card.glass-card{animation:none}}.favorite-row{display:block;border-radius:12px;transition:background .14s var(--ease-out)}.favorite-row[draggable=true]{cursor:grab}.favorite-row:active{cursor:grabbing}.favorite-row.is-drop-target{background:#ffffff24;box-shadow:inset 0 0 0 2px #ffffff59}@media(prefers-reduced-motion:reduce){.favorite-row{transition:none}}.notes-grid{grid-template-columns:minmax(0,1fr);gap:10px}.note-card{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:16px 18px;position:relative;overflow:hidden;transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out),filter .3s var(--ease-out)}.note-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.note-card header,.note-card-content,.note-subitems,.note-subitem-add,.note-files,.note-calendar-row,.note-card-drawing,.note-file-add,.note-share-badge{grid-column:1 / -1}.note-card footer{grid-column:2;grid-row:1;display:grid;gap:6px;justify-items:end;align-content:start;padding-left:14px;border-left:1px solid rgba(15,40,30,.08)}@media(max-width:720px){.note-card{grid-template-columns:minmax(0,1fr)}.note-card footer{grid-column:1;grid-row:auto;justify-items:stretch;padding-left:0;border-left:0;border-top:1px solid rgba(15,40,30,.08);padding-top:9px}}.note-card.is-done{opacity:.72;filter:saturate(.55) brightness(.88);box-shadow:inset 0 0 0 1px #0f281e1a,0 2px 8px #0f281e1a;animation:noteDone .45s var(--ease-out)}.note-card.is-done header strong{text-decoration:none;position:relative}.note-card.is-done header strong:after{content:"";position:absolute;left:0;right:0;top:52%;height:2px;background:currentColor;border-radius:2px;transform-origin:left center;animation:noteStrike .35s var(--ease-out) both}@keyframes noteDone{0%{transform:translateY(-14px);filter:saturate(1) brightness(1)}60%{transform:translateY(3px)}to{transform:translateY(0);filter:saturate(.55) brightness(.88)}}@keyframes noteStrike{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.note-card{transition:none}.note-card:hover{transform:none}.note-card.is-done{animation:none}.note-card.is-done header strong:after{animation:none;transform:scaleX(1)}}.evaluation-groups-grid{display:grid;gap:10px;margin-top:14px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.evaluation-group-card{display:grid;gap:2px;justify-items:start;text-align:left;padding:14px 15px;cursor:pointer;border:2px solid var(--border);border-radius:14px;background:var(--grad-surface);color:var(--text);font:inherit;transition:transform .14s var(--ease-out),border-color .14s var(--ease-out)}.evaluation-group-card:hover{transform:translateY(-2px);border-color:var(--accent)}.evaluation-group-card:active{transform:scale(.98)}.evaluation-group-card strong{font-size:1.05rem}.evaluation-group-card small,.evaluation-group-card span{color:var(--muted);font-size:.78rem}.evaluation-group-card.has-link{border-color:var(--accent)}.evaluation-group-card em{margin-top:5px;padding:2px 9px;border-radius:999px;font-style:normal;background:var(--accent-soft);color:var(--accent);font-size:.7rem;font-weight:700}.evaluation-group-modal{width:min(560px,100%);display:grid;gap:13px}.evaluation-group-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.evaluation-group-modal-head h3{margin:2px 0 0}.evaluation-group-teachers{display:grid;gap:7px;max-height:46vh;overflow-y:auto}.evaluation-group-teachers label{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer;border:2px solid var(--border);border-radius:11px;background:var(--surface-solid)}.evaluation-group-teachers label.selected{border-color:var(--accent);background:var(--accent-soft)}.evaluation-group-teachers input{width:auto;margin-top:2px}.evaluation-group-teachers span{display:grid;gap:1px;min-width:0}.evaluation-group-teachers small{color:var(--muted);font-size:.75rem}.evaluation-group-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.evaluation-group-qr{display:grid;gap:9px;justify-items:center;margin-top:18px;padding:18px;border-radius:16px;background:var(--grad-soft)}.evaluation-group-qr img{width:210px;height:210px;background:#fff;border-radius:12px;padding:8px}.evaluation-group-qr input{text-align:center;font-size:.78rem}.evaluation-group-qr small{color:var(--muted);font-size:.78rem}.evaluation-results-groups{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0}.evaluation-results-groups>span{color:var(--muted);font-size:.8rem;font-weight:600}.evaluation-results-groups button{padding:5px 12px;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:.78rem}.evaluation-results-groups button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.evaluation-results-groups em{font-style:normal;opacity:.65}.group-eval-card{display:grid;gap:15px}.group-eval-head{display:flex;align-items:center;gap:12px}.group-eval-head h1{margin:0;font-size:1.25rem}.group-eval-head p{margin:0;color:var(--muted);font-size:.85rem}.group-eval-hint{color:var(--muted);font-size:.88rem;line-height:1.5}.group-eval-teachers{display:grid;gap:9px}.group-eval-teacher{display:flex;align-items:center;gap:12px;padding:13px 15px;cursor:pointer;border:2px solid var(--border);border-radius:14px;background:var(--surface-solid);color:var(--text);font:inherit;text-align:left;transition:transform .14s var(--ease-out),border-color .14s var(--ease-out)}.group-eval-teacher:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.group-eval-teacher:active:not(:disabled){transform:scale(.98)}.group-eval-teacher.is-done{opacity:.6;cursor:default}.group-eval-teacher span{display:grid;gap:1px;min-width:0}.group-eval-teacher small{color:var(--muted);font-size:.76rem}.group-eval-avatar{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:14px;background:var(--grad-brand);color:#fff;font-size:1.1rem;font-weight:800}.group-eval-teacher.is-done .group-eval-avatar{background:var(--muted)}.group-eval-back{justify-self:start;display:inline-flex;align-items:center;gap:5px}.group-eval-teacher-name{margin:0;font-size:1.1rem}.group-eval-finished{display:grid;gap:5px;justify-items:center;text-align:center;padding:24px;border-radius:16px;background:var(--accent-soft);color:var(--accent)}.group-eval-finished span{color:var(--muted);font-size:.85rem}@media(prefers-reduced-motion:reduce){.evaluation-group-card,.group-eval-teacher{transition:none}.evaluation-group-card:hover,.group-eval-teacher:hover:not(:disabled){transform:none}}button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger),.button:not(.secondary){color:#fff}button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger) svg,.button:not(.secondary) svg{color:#fff;stroke:currentColor}button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger) small,button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger) span,button:not(.secondary):not(.btn-muted):not(.icon-btn):not(.btn-danger) strong{color:inherit}.sidebar,.sidebar a,.sidebar .menu-link,.sidebar strong,.sidebar small,.sidebar span{color:var(--sidebar-text)}.sidebar .sidebar-section-title{color:#ffffffb8}thead th.on-brand,.attendance-format-header,.attendance-format-header *,.print-schedules-head-brand,.print-schedules-head-brand *,.coordinator-card-badge,.calendar-choice-icon,.event-practice-link,.event-practice-link *,.group-eval-avatar,.note-share-badge.on-brand,.practice-hero,.practice-hero *,.evaluation-hero,.evaluation-hero *,.on-brand,.on-brand *{color:#fff}.on-brand .muted-text,.on-brand small{color:#fffc}.group-eval-email{display:grid;gap:9px;justify-items:center;text-align:center;padding:26px 20px;border-radius:16px;background:var(--grad-soft)}.group-eval-email strong{font-size:1.05rem}.group-eval-email p{margin:0;color:var(--muted);font-size:.85rem;line-height:1.5;max-width:340px}.group-eval-email input{max-width:340px;text-align:center}.group-eval-email button{min-width:160px}.evaluation-results-search{display:flex;align-items:center;gap:8px;margin:10px 0 14px;padding:8px 12px;max-width:360px;border:1px solid var(--border);border-radius:999px;background:var(--surface-solid);color:var(--muted)}.evaluation-results-search input{flex:1;border:0;padding:0;min-height:0;background:transparent}.evaluation-results-search input:focus-visible{box-shadow:none}:root{--motion-fast: .15s;--motion-base: .24s;--motion-medium: .36s;--motion-slow: .62s;--motion-ease: cubic-bezier(.22, 1, .36, 1);--motion-spring: cubic-bezier(.2, .8, .2, 1.12);--motion-pop: cubic-bezier(.34, 1.56, .64, 1);--motion-glow: rgba(37, 99, 235, .16);--motion-glow-green: rgba(8, 117, 86, .18)}@keyframes cdt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cdt-slide-up{0%{opacity:0;transform:translate3d(0,14px,0);filter:blur(4px)}to{opacity:1;transform:translateZ(0);filter:blur(0)}}@keyframes cdt-slide-right{0%{opacity:0;transform:translate3d(-14px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes cdt-scale-in{0%{opacity:0;transform:scale(.96) translateY(8px);filter:blur(3px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes cdt-modal-enter{0%{opacity:0;transform:translateY(18px) scale(.965);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes cdt-backdrop-enter{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@keyframes cdt-table-row-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes cdt-shimmer{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes cdt-spin{to{transform:rotate(360deg)}}@keyframes cdt-pulse-ring{0%{box-shadow:0 0 #08755638}70%{box-shadow:0 0 0 10px #08755600}to{box-shadow:0 0 #08755600}}@keyframes cdt-icon-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-2deg)}}@keyframes cdt-logo-breathe{0%,to{transform:translateY(0) scale(1);box-shadow:0 14px 28px #0f172a21}50%{transform:translateY(-2px) scale(1.025);box-shadow:0 18px 38px #0f172a2e}}@keyframes cdt-count-pop{0%{opacity:0;transform:translateY(8px) scale(.96)}70%{opacity:1;transform:translateY(-1px) scale(1.015)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cdt-skeleton-loading{0%{background-position:180% 0}to{background-position:-180% 0}}.fade-in{animation:cdt-fade-in var(--motion-medium) var(--motion-ease) both}.slide-up{animation:cdt-slide-up var(--motion-medium) var(--motion-ease) both}.scale-in{animation:cdt-scale-in var(--motion-medium) var(--motion-pop) both}.hover-lift{transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),border-color var(--motion-base) var(--motion-ease)}.hover-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}.button-press:active{transform:translateY(1px) scale(.985)}.modal-enter{animation:cdt-modal-enter var(--motion-medium) var(--motion-pop) both}.table-row-enter{animation:cdt-table-row-enter var(--motion-medium) var(--motion-ease) both}.page-transition{animation:cdt-slide-up var(--motion-medium) var(--motion-ease) both}.card-hover{transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),border-color var(--motion-base) var(--motion-ease)}.card-hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}.input-focus:focus{transform:translateY(-1px)}.file-upload-animation{position:relative;overflow:hidden}.file-upload-animation:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:translate(-120%)}.file-upload-animation:hover:after{animation:cdt-shimmer 1.15s var(--motion-ease)}.skeleton-loading{min-height:14px;border-radius:999px;background:linear-gradient(90deg,#94a3b82e,#94a3b857,#94a3b82e);background-size:220% 100%;animation:cdt-skeleton-loading 1.4s ease-in-out infinite}.modern-login .login-hero{animation:cdt-slide-right .62s var(--motion-ease) both}.modern-login .login-card{animation:cdt-scale-in .62s var(--motion-pop) .08s both}.login-brand-mark,.login-logo,.brand-logo.image-logo{animation:cdt-logo-breathe 4.8s ease-in-out infinite;transform-origin:center}.login-feature-grid>div{animation:cdt-slide-up .52s var(--motion-ease) both;transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),border-color var(--motion-base) var(--motion-ease)}.login-feature-grid>div:nth-child(1){animation-delay:.12s}.login-feature-grid>div:nth-child(2){animation-delay:.18s}.login-feature-grid>div:nth-child(3){animation-delay:.24s}.login-feature-grid>div:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}.login-card label{transition:color var(--motion-fast) ease,transform var(--motion-fast) ease}.login-card input:focus+label,.login-card label:has(+input:focus){color:var(--accent);transform:translate(2px)}.login-card .status-box,.recovery-modal .status-box{animation:cdt-slide-up .32s var(--motion-ease) both}button,.secondary-link,.file-button,.quick-access-buttons a,.timeline-list a,.file-links a,.evidence-grid-small a,.calendar-day-popup-item{will-change:transform;transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),background var(--motion-base) ease,border-color var(--motion-base) ease,color var(--motion-base) ease,opacity var(--motion-base) ease}button:not(:disabled):active,.secondary-link:active,.file-button:active,.quick-access-buttons a:active,.timeline-list a:active{transform:translateY(1px) scale(.985)}button:not(:disabled):hover svg,.secondary-link:hover svg,.file-button:hover svg,.quick-access-buttons a:hover svg,.icon-button:hover svg{animation:cdt-icon-float .6s ease-in-out}button:disabled{position:relative;overflow:hidden}button:disabled:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:translate(-120%);animation:cdt-shimmer 1.35s ease-in-out infinite}.primary-button,button:not(.icon-button):not(.menu-favorite-button):not(.menu-section-toggle):not(.logout){position:relative;overflow:hidden}.primary-button:before,button:not(.icon-button):not(.menu-favorite-button):not(.menu-section-toggle):not(.logout):before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at var(--x, 50%) var(--y, 50%),rgba(255,255,255,.24),transparent 34%);opacity:0;transition:opacity var(--motion-base) ease}.primary-button:hover:before,button:not(.icon-button):not(.menu-favorite-button):not(.menu-section-toggle):not(.logout):hover:before{opacity:1}.app-shell{animation:cdt-fade-in .36s ease both}.sidebar{animation:cdt-slide-right .48s var(--motion-ease) both}.topbar{animation:cdt-slide-up .44s var(--motion-ease) .05s both}.quick-access-bar{animation:cdt-slide-up .42s var(--motion-ease) .08s both}.content-card{animation:cdt-slide-up .46s var(--motion-ease) .11s both}.route-loading{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;overflow:hidden;border-radius:22px;background:linear-gradient(110deg,#f8fafcbd,#f1f5f9f0,#f8fafcbd);background-size:220% 100%;animation:cdt-skeleton-loading 1.25s ease-in-out infinite}.route-loading:before{content:"";width:26px;height:26px;border-radius:999px;border:3px solid rgba(37,99,235,.18);border-top-color:#2563ebc7;animation:cdt-spin .78s linear infinite;flex:0 0 auto}.sidebar a,.logout,.menu-item-row,.menu-section-toggle,.teacher-portal-nav-list button{position:relative;overflow:hidden;transition:transform var(--motion-base) var(--motion-ease),background var(--motion-base) ease,border-color var(--motion-base) ease,box-shadow var(--motion-base) ease,color var(--motion-base) ease}.sidebar a:before,.teacher-portal-nav-list button:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:999px;background:currentColor;transform:scaleY(0);transform-origin:center;opacity:.78;transition:transform var(--motion-base) var(--motion-ease),opacity var(--motion-base) ease}.sidebar a.active:before,.teacher-portal-nav-list button.active:before{transform:scaleY(1)}.sidebar a:hover,.logout:hover,.menu-section-toggle:hover,.teacher-portal-nav-list button:hover{transform:translate(3px)}.sidebar a svg,.menu-section-toggle svg,.teacher-portal-nav-list button svg{transition:transform var(--motion-base) var(--motion-pop),color var(--motion-base) ease}.sidebar a:hover svg,.menu-section-toggle:hover svg,.teacher-portal-nav-list button:hover svg{transform:translate(1px) scale(1.08)}.menu-section-items{transform-origin:top;animation:cdt-scale-in .24s var(--motion-ease) both}.menu-section-items .menu-item-row{animation:cdt-slide-right .24s var(--motion-ease) both}.menu-section-items .menu-item-row:nth-child(1){animation-delay:20ms}.menu-section-items .menu-item-row:nth-child(2){animation-delay:40ms}.menu-section-items .menu-item-row:nth-child(3){animation-delay:60ms}.menu-section-items .menu-item-row:nth-child(4){animation-delay:80ms}.menu-section-items .menu-item-row:nth-child(5){animation-delay:.1s}.menu-favorite-button:hover{transform:scale(1.08) rotate(-7deg)}.menu-favorite-button.is-favorite{animation:cdt-scale-in .24s var(--motion-pop) both}.sidebar-backdrop.open{animation:cdt-fade-in .22s ease both}.sidebar.tablet-sidebar.open{transition:transform .32s var(--motion-ease)}.search-box,.menu-search-box,.teacher-search-box,.global-search-box{transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) ease,border-color var(--motion-base) ease,background var(--motion-base) ease}.search-box:focus-within,.menu-search-box:focus-within,.teacher-search-box:focus-within,.global-search-box:focus-within{transform:translateY(-1px);border-color:#2563eb6b;box-shadow:0 12px 30px var(--motion-glow),0 0 0 4px #2563eb14}.icon-button:hover,.role-badge:hover,.sidebar-user-card:hover,.quick-access-buttons a:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.global-search-results,.notification-menu,.profile-menu,.dropdown-menu,.system-controls-menu,.search-results{transform-origin:top right;animation:cdt-scale-in .24s var(--motion-ease) both}.page-title,.hero-title,.section-title-row,.teacher-section-heading,.report-actions,.filters,.form-grid,.split-panel,.dashboard-grid,.pro-grid,.student-attendance-grid,.teacher-student-attendance-grid,.teacher-portal-layout{animation:cdt-slide-up .42s var(--motion-ease) both}.grid>*,.dashboard-grid>*,.event-list>*,.timeline-list>*,.teacher-portal-section>*,.student-roster-list>*,.teacher-portal-nav-list>*,.compact-list>*{animation:cdt-slide-up .42s var(--motion-ease) both}.grid>*:nth-child(1),.dashboard-grid>*:nth-child(1),.event-list>*:nth-child(1),.teacher-portal-section>*:nth-child(1){animation-delay:20ms}.grid>*:nth-child(2),.dashboard-grid>*:nth-child(2),.event-list>*:nth-child(2),.teacher-portal-section>*:nth-child(2){animation-delay:55ms}.grid>*:nth-child(3),.dashboard-grid>*:nth-child(3),.event-list>*:nth-child(3),.teacher-portal-section>*:nth-child(3){animation-delay:90ms}.grid>*:nth-child(4),.dashboard-grid>*:nth-child(4),.event-list>*:nth-child(4),.teacher-portal-section>*:nth-child(4){animation-delay:125ms}.grid>*:nth-child(5),.dashboard-grid>*:nth-child(5),.event-list>*:nth-child(5),.teacher-portal-section>*:nth-child(5){animation-delay:.16s}.card,.panel,.event,.modern-panel,.import-box,.file-field,.teacher-portal-nav,.student-class-button,.student-roster-item,.calendar-month-cell,.day-event-card,.agenda-item,.agenda-mini-item,.teacher-doc-card,.teacher-document-card,.teacher-file-card,.document-card,.file-card{transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),border-color var(--motion-base) ease,background var(--motion-base) ease}.card:hover,.panel:hover,.event:hover,.modern-panel:hover,.import-box:hover,.file-field:hover,.student-class-button:hover,.student-roster-item:hover,.calendar-month-cell:hover,.day-event-card:hover,.agenda-item:hover,.agenda-mini-item:hover,.teacher-doc-card:hover,.teacher-document-card:hover,.teacher-file-card:hover,.document-card:hover,.file-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft);border-color:var(--border-strong)}.metric-card strong,.card strong,.kpi-value,.stat-value,.teacher-stat strong{animation:cdt-count-pop .54s var(--motion-pop) both}.metric-icon,.stat-icon,.teacher-portal-nav-title>svg{animation:cdt-scale-in .42s var(--motion-pop) both}input,select,textarea,.date-filter{transition:transform var(--motion-fast) var(--motion-ease),border-color var(--motion-base) ease,box-shadow var(--motion-base) ease,background var(--motion-base) ease}input:focus,select:focus,textarea:focus,.date-filter:focus{transform:translateY(-1px)}input:invalid:not(:placeholder-shown),textarea:invalid:not(:placeholder-shown),select:invalid:not(:placeholder-shown){animation:cdt-pulse-ring .7s ease-out}.status-box,.notice,.info-soft,.warning-box,.empty-state{animation:cdt-slide-up .32s var(--motion-ease) both}.status-box.success{animation:cdt-slide-up .32s var(--motion-ease) both,cdt-pulse-ring .95s ease-out .05s}.file-field,.import-box,.file-tile,.file-button,.secondary-link,input[type=file],.teacher-preview,.avatar,.user-avatar,.image-login-logo,.image-logo-mark{transition:transform var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) ease,border-color var(--motion-base) ease,filter var(--motion-base) ease}.file-field,.import-box,.file-tile{position:relative;overflow:hidden}.file-field:after,.import-box:after,.file-tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:translate(-120%)}.file-field:hover:after,.import-box:hover:after,.file-tile:hover:after{animation:cdt-shimmer 1.12s var(--motion-ease)}input[type=file]:hover{transform:translateY(-1px)}.avatar:hover,.user-avatar:hover,.teacher-preview:hover,.image-login-logo:hover,.image-logo-mark:hover{transform:scale(1.035);filter:saturate(1.05);box-shadow:var(--shadow-soft)}.file-links a:hover,.evidence-grid-small a:hover{transform:translateY(-2px)}.table-wrap{animation:cdt-slide-up .42s var(--motion-ease) both}tbody tr{animation:cdt-table-row-enter .32s var(--motion-ease) both;transition:transform var(--motion-fast) var(--motion-ease),background var(--motion-fast) ease,box-shadow var(--motion-fast) ease}tbody tr:nth-child(1){animation-delay:10ms}tbody tr:nth-child(2){animation-delay:25ms}tbody tr:nth-child(3){animation-delay:40ms}tbody tr:nth-child(4){animation-delay:55ms}tbody tr:nth-child(5){animation-delay:70ms}tbody tr:nth-child(6){animation-delay:85ms}tbody tr:nth-child(7){animation-delay:.1s}tbody tr:nth-child(8){animation-delay:115ms}tbody tr:nth-child(9){animation-delay:.13s}tbody tr:nth-child(10){animation-delay:145ms}tbody tr:hover{transform:translate(2px)}.actions button,.pagination-bar button,.report-actions button,.filter-actions button{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-base) ease,background var(--motion-base) ease}.actions button:hover,.pagination-bar button:hover,.report-actions button:hover,.filter-actions button:hover{transform:translateY(-2px) scale(1.015)}.modal-backdrop,.calendar-modal-backdrop,.semester-edit-backdrop,.extra-modal-backdrop,.bulk-whatsapp-backdrop,.timetable-modal-backdrop{animation:cdt-backdrop-enter .24s ease both;-webkit-backdrop-filter:blur(10px) saturate(1.05);backdrop-filter:blur(10px) saturate(1.05)}.modal-card,.calendar-popup-card,.calendar-day-popup,.semester-edit-modal,.extra-modal-card,.bulk-whatsapp-modal,.timetable-modal,.phase36-modal,.signature-modal,.history-modal,.recovery-modal{transform-origin:center;animation:cdt-modal-enter .34s var(--motion-pop) both}.modal-close:hover{transform:rotate(90deg) scale(1.04)}.teacher-portal-layout{animation-delay:.04s}.teacher-portal-nav{animation:cdt-slide-right .45s var(--motion-ease) both}.teacher-portal-section{animation:cdt-slide-up .36s var(--motion-ease) both}.teacher-portal-nav-list button.active{animation:cdt-pulse-ring .85s ease-out}.teacher-portal-nav-list button em{transition:transform var(--motion-base) var(--motion-pop),background var(--motion-base) ease}.teacher-portal-nav-list button:hover em{transform:scale(1.08)}.teacher-student-submit-bar{animation:cdt-slide-up .36s var(--motion-ease) both}.student-class-button.active{animation:cdt-pulse-ring .9s ease-out}button:has(svg),.secondary-link:has(svg),.file-button:has(svg){display:inline-flex;align-items:center;justify-content:center;gap:8px}button:has(svg):hover,.secondary-link:has(svg):hover,.file-button:has(svg):hover{box-shadow:0 12px 28px #0f172a24}button[disabled],button[aria-busy=true]{cursor:wait}a[download],button[title*=PDF],button[title*=Excel],button[title*=Descargar],button[title*=Exportar]{animation-duration:var(--motion-medium)}@media(pointer:coarse){button:hover,.card:hover,.panel:hover,.event:hover,.student-roster-item:hover,.student-class-button:hover{transform:none}button:active,.quick-access-buttons a:active,.teacher-portal-nav-list button:active{transform:scale(.985)}}@media(max-width:760px){.content-card{animation-duration:.32s}.modal-card,.calendar-popup-card,.calendar-day-popup,.semester-edit-modal,.extra-modal-card,.bulk-whatsapp-modal,.timetable-modal{animation-duration:.28s}.sidebar.tablet-sidebar.open{transition-duration:.28s}}:root[data-theme=dark] .route-loading{background:linear-gradient(110deg,#0f172abd,#1e293be0,#0f172abd);background-size:220% 100%}:root[data-theme=dark] .file-field:after,:root[data-theme=dark] .import-box:after,:root[data-theme=dark] .file-tile:after,:root[data-theme=dark] button:disabled:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}:root[data-theme=dark] .search-box:focus-within,:root[data-theme=dark] .menu-search-box:focus-within,:root[data-theme=dark] .teacher-search-box:focus-within,:root[data-theme=dark] .global-search-box:focus-within{box-shadow:0 12px 30px #2dd4bf1f,0 0 0 4px #2dd4bf14}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
