.login-page{place-items:center;min-height:100vh;padding:32px 20px;display:grid;position:relative;overflow:hidden}.login-atmosphere{background-color:#0000;background-image:radial-gradient(70% 50% at 10% 15%,#f07c1d47,#0000 55%),radial-gradient(60% 45% at 90% 10%,#154f8859,#0000 50%),linear-gradient(145deg,#0a2744 0%,#134878 42%,#1c64a8 70%,#e86f12 160%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:140% 140%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;animation:14s ease-in-out infinite alternate shimmer;position:absolute;inset:0}.login-atmosphere:after{content:"";background:linear-gradient(#0a274426,#0a27448c),repeating-linear-gradient(-18deg,#0000 0 18px,#ffffff08 18px 19px);position:absolute;inset:0}.login-shell{z-index:1;grid-template-columns:1.05fr .95fr;align-items:stretch;gap:28px;width:min(1080px,100%);animation:.7s both rise-in;display:grid;position:relative}.login-brand{color:#fff;flex-direction:column;justify-content:center;padding:28px 12px 12px;display:flex}.login-logo{filter:drop-shadow(0 12px 24px #00000047);width:132px;height:auto;margin-bottom:28px;animation:4.5s ease-in-out infinite float-logo}.login-brand__eyebrow{letter-spacing:.04em;text-transform:uppercase;opacity:.85;max-width:28ch;margin-bottom:12px;font-size:14px}.login-brand__title{font-family:var(--font-display);max-width:12ch;margin-bottom:14px;font-size:clamp(2rem,4vw,3.1rem);line-height:1.1}.login-brand__lead{opacity:.9;max-width:34ch;font-size:1.05rem;line-height:1.55}.login-panel{background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:28px;padding:32px 28px;animation:.85s 80ms both rise-in}.login-panel__head h2{font-family:var(--font-display);color:var(--blue-900);font-size:1.7rem}.login-panel__head p{color:var(--muted);margin-top:6px;font-size:.95rem}.login-roles{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.login-roles button{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;padding:10px 12px;font-weight:700}.login-roles button.is-on{background:var(--blue-800);border-color:var(--blue-800);color:#fff}.login-form{gap:14px;margin-top:24px;display:grid}.field{gap:6px;display:grid}.field span{color:var(--blue-900);font-size:.9rem;font-weight:600}.field input{border:1px solid var(--line);background:var(--control);border-radius:14px;width:100%;padding:12px 14px;transition:all .2s}.field input:focus{border-color:var(--blue-700);background:var(--surface);outline:none;box-shadow:0 0 0 4px #1c64a824}.form-alert{background:var(--tint-bad);color:var(--danger);border:1px solid #f0c2c2;border-radius:12px;padding:10px 12px;font-size:.92rem}.btn{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.login-otp{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.35rem}.login-otp-actions{gap:8px;margin-top:12px;display:grid}.login-form .form-ok{background:var(--tint-ok);color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 35%, var(--line));border-radius:12px;padding:10px 12px;font-size:.92rem}.login-panel .btn-ghost{width:100%;color:var(--blue-800);border:1px solid var(--line);box-shadow:none;background:0 0}.login-panel .btn-ghost:hover:not(:disabled){background:var(--blue-50)}.btn-primary{color:#fff;background:linear-gradient(135deg,#b45309,#92400e);width:100%;margin-top:4px;box-shadow:0 10px 24px #92400e47}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #92400e59}.login-divider{color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:22px 0 14px;font-size:.85rem;display:grid}.login-divider:before,.login-divider:after{content:"";background:var(--line);height:1px}.login-hint{color:var(--muted);margin-top:18px;font-size:.82rem;line-height:1.5}.login-hint code{background:var(--orange-100);color:#9a4c00;border-radius:6px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.login-footer{color:var(--blue-800);margin-top:16px;font-size:.88rem;font-weight:600}@media (width<=860px){.login-shell{grid-template-columns:1fr;gap:18px}.login-brand{text-align:center;align-items:center;padding:8px 8px 0}.login-brand__title,.login-brand__lead,.login-brand__eyebrow{max-width:none}.login-logo{width:108px;margin-bottom:16px}}.file-drop{gap:8px;min-width:0;display:grid}.file-drop__label{color:var(--ink);font-size:.88rem;font-weight:600}.file-drop__box{border:1.5px dashed var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--blue-50) 70%, var(--surface)), var(--surface));min-height:108px;color:var(--ink);cursor:pointer;border-radius:16px;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}.file-drop__box input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;position:absolute;inset:0}.file-drop__box:hover,.file-drop__box.is-over,.file-drop__box:focus-within{border-color:var(--blue-700);background:color-mix(in srgb, var(--blue-100) 55%, var(--surface));box-shadow:0 0 0 4px color-mix(in srgb, var(--blue-700) 16%, transparent)}.file-drop__box:focus-within{outline:2px solid var(--blue-700);outline-offset:2px}.file-drop__box.has-file{border-style:solid;border-color:color-mix(in srgb, var(--ok) 45%, var(--line));background:color-mix(in srgb, var(--ok) 8%, var(--surface))}.file-drop__box.is-error{border-color:color-mix(in srgb, var(--danger) 55%, var(--line));background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.file-drop__box.is-off{opacity:.55;cursor:not-allowed}.file-drop__hint,.file-drop__picked{pointer-events:none;align-items:center;gap:12px;min-height:108px;padding:16px 18px;display:flex}.file-drop__hint{text-align:center;flex-direction:column;justify-content:center;gap:4px}.file-drop__hint strong{color:var(--blue-900)}.file-drop__hint span:last-child,.file-drop__picked em{color:var(--muted);font-size:.84rem;font-style:normal}.file-drop__icon{color:var(--blue-700);place-items:center;display:grid}.file-drop__picked{pointer-events:none}.file-drop__picked>div{flex:1;min-width:0;display:grid}.file-drop__picked strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-drop__remove{pointer-events:auto;z-index:2;border:1px solid var(--line);background:var(--surface);color:var(--blue-900);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;position:relative}.file-drop__remove:hover{border-color:var(--danger);color:var(--danger)}.file-drop__error{color:var(--danger);margin:0;font-size:.82rem}.cabinet{background:var(--page-wash);background-attachment:fixed;flex-wrap:wrap;min-height:100vh;display:flex}.impersonation-bar{color:#fff;background:#1d3557;flex:1 0 100%;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;font-size:.9rem;display:flex}.impersonation-bar button{color:#fff;font:inherit;cursor:pointer;background:#f07c1d;border:0;border-radius:8px;flex-shrink:0;padding:8px 14px}.impersonation-bar button:hover{background:#e86f12}.cabinet:has(.impersonation-bar) .sidebar{height:auto;min-height:calc(100vh - 56px)}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:270px;height:100vh;padding:28px 18px;display:flex;position:sticky;top:0}.sidebar__brand{align-items:center;gap:12px;margin-bottom:32px;display:flex}.sidebar__brand img{width:52px;height:auto}.sidebar__brand strong{font-family:var(--font-display);color:var(--blue-900);font-size:1.2rem;display:block}.sidebar__brand span{color:var(--muted);font-size:.8rem}.sidebar__menu{flex-direction:column;flex:1;gap:6px;display:flex}.sidebar__item{text-align:left;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:12px 14px;font-weight:500;transition:all .15s;display:flex}.sidebar__item:hover{background:var(--blue-50);color:var(--ink)}.sidebar__item.active{background:linear-gradient(135deg, var(--blue-800), var(--blue-700));color:#fff;box-shadow:0 8px 18px #154f8840}.sidebar__badge{background:var(--orange-500);color:#fff;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.72rem;font-weight:800;display:inline-grid}.sidebar__item.active .sidebar__badge{color:#0f3a66;background:#dbeaf8}.sidebar__footer{border-top:1px solid var(--line);color:var(--muted);gap:10px;padding-top:16px;font-size:.82rem;display:grid}.btn-logout{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--blue-900);border-radius:999px;padding:10px 14px;font-weight:600}.btn-logout:hover{border-color:var(--orange-500);color:var(--orange-600)}.main{flex:1;width:100%;max-width:1180px;padding:32px 40px 60px;animation:.55s rise-in}.main__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.main__header h1{letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2rem)}.main__header h1 span{color:var(--orange-600)}.main__header p{color:var(--muted);margin-top:6px}.status-badge{background:var(--blue-100);color:var(--blue-900);border-radius:999px;padding:6px 14px;font-size:.88rem;font-weight:600}.cards-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.card-stat{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px 20px;transition:all .2s}.card-stat:hover{border-color:#b9cde3;transform:translateY(-2px)}.card-stat__label{color:var(--muted);font-size:.88rem;font-weight:500}.card-stat__value{letter-spacing:-.03em;margin-top:4px;font-size:1.7rem;font-weight:700}.card-stat__value.ok{color:var(--ok)}.card-stat__value.small{font-size:1.35rem}.card-stat__sub{color:var(--muted);margin-top:4px;font-size:.82rem}.section{background:var(--surface);border:1px solid var(--line);border-radius:24px;margin-bottom:20px;padding:24px 28px}.section__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.section__header h2{font-size:1.15rem;font-weight:600}.status-card{background:var(--tint-ok);border-left:4px solid var(--ok);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.status-card__title{font-weight:600}.status-card__desc{color:var(--muted);margin-top:4px;font-size:.92rem}.status-card strong{color:var(--ok);white-space:nowrap}.status-card--wait{background:var(--tint-wait);border-left-color:var(--orange-500)}.status-card--wait strong{color:var(--orange-600)}.status-card--bad{background:var(--tint-bad);border-left-color:var(--danger)}.status-card--bad strong{color:var(--danger)}.cert-form{gap:14px;max-width:560px;display:grid}.cert-form select,.cert-form textarea{border:1px solid var(--line);background:var(--control);color:var(--ink);width:100%;font:inherit;border-radius:12px;padding:10px 12px}.btn-primary-cab{cursor:pointer;color:#fff;background:linear-gradient(135deg,#f59a45,#f07c1d);border:0;border-radius:12px;justify-content:center;align-items:center;width:fit-content;padding:12px 18px;font-weight:600;display:inline-flex}.btn-primary-cab:disabled{opacity:.55;cursor:not-allowed}.linkish-cab{color:var(--blue-800);cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-weight:600}.form-ok{background:var(--tint-ok);color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 35%, var(--line));border-radius:12px;padding:10px 12px}.form-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:16px;min-width:0;margin-bottom:14px;display:grid}.form-row--2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.form-group{grid-template-rows:2.6em 44px auto;align-content:start;gap:6px;min-width:0;display:grid}.form-group label{overflow-wrap:anywhere;align-items:flex-end;font-size:.88rem;font-weight:600;line-height:1.3;display:flex}.form-group input,.form-group select,.form-group .search-select,.form-group .search-select input,.form-group .search-select__trigger,.form-group .profile-field__row,.form-group .profile-field__row input{box-sizing:border-box;width:100%;min-width:0;height:44px;min-height:44px}.form-group textarea{box-sizing:border-box;width:100%;min-width:0;height:auto;min-height:88px}.form-group:has(textarea){grid-template-rows:2.6em auto auto}.form-group .search-select__trigger{padding-top:0;padding-bottom:0}.form-group input,.form-group textarea,.form-group select{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:12px;padding:10px 12px}.form-group input:not(:disabled),.form-group select,.form-group textarea{background:var(--surface)}.form-group select{border:1px solid var(--line);color:var(--ink);font:inherit;border-radius:12px;width:100%;padding:10px 12px}.cert-form--wide{max-width:860px}.tax-card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;margin-bottom:18px;padding:16px 18px}.tax-card__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;display:grid}.tax-card__grid span{color:var(--muted);font-size:.8rem;display:block}.tax-card__grid strong{font-size:.95rem}.tax-card__actions{justify-items:end;gap:6px;display:grid}.tax-check{align-items:flex-start;gap:10px;font-weight:600;display:flex}.tax-check input{margin-top:3px}.tax-h3{margin:8px 0 0;font-size:1.05rem}.file-list{flex-wrap:wrap;gap:8px;display:flex}.file-tag{background:var(--blue-50);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.86rem}.mobile-burger{cursor:pointer;background:0 0;border:none;margin-bottom:8px;font-size:1.5rem;display:none}.overlay{display:none}.form-alert{background:var(--tint-bad);color:var(--danger);border:1px solid #f0c2c2;border-radius:12px;margin-bottom:16px;padding:10px 12px}@media (width<=980px){.cards-grid{grid-template-columns:1fr 1fr}.form-row,.form-row--2,.tax-card__grid{grid-template-columns:1fr}}@media (width<=820px){.impersonation-bar{flex-wrap:wrap}.sidebar{z-index:1000;transition:left .28s;position:fixed;left:-300px;box-shadow:8px 0 30px #0a27441f}.sidebar.open{left:0}.overlay{z-index:999;background:#0a274447;border:none;display:block;position:fixed;inset:0}.mobile-burger{display:block}.main{padding:20px}}@media (width<=720px){.form-group input,.form-group select,.cert-form textarea,.search-select input{min-height:48px;font-size:16px}}@media (width<=520px){.cards-grid,.profile-grid,.home-grid{grid-template-columns:1fr}.status-card,.section__header,.main__header{flex-direction:column;align-items:flex-start}.main,.main--sched{padding:14px 12px 28px}.grades-table,.stud-sched table{font-size:.92rem}}.grades-table-wrap{overflow-x:auto}.grades-table{border-collapse:collapse;width:100%}.grades-table th,.grades-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px;font-size:.92rem}.grades-table th{color:var(--muted);font-weight:600}.grade-pill{letter-spacing:.01em;border-radius:999px;justify-content:center;align-items:center;min-width:52px;padding:4px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.grade-pill--g5{background:color-mix(in srgb, var(--ok) 18%, var(--surface));color:var(--ok)}.grade-pill--g4{background:color-mix(in srgb, var(--blue-700) 16%, var(--surface));color:var(--blue-900)}.grade-pill--g3{background:var(--tint-wait);color:var(--orange-600)}.grade-pill--g2{background:var(--tint-bad);color:var(--danger)}.grade-pill--none{background:var(--surface-2);color:var(--muted)}.grades-mobile{display:none}.grades-group{margin-bottom:18px}.grades-group h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:.82rem}.grades-group ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.grade-card{background:linear-gradient(180deg, var(--surface), var(--surface-2));border:1px solid var(--line);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 14px 16px;display:flex;box-shadow:0 8px 18px #0f3a660d}.grade-card strong{color:var(--blue-900);font-size:.98rem;line-height:1.3;display:block}.grade-card span{color:var(--muted);margin-top:3px;font-size:.8rem;display:block}.grade-card b.grade-pill{flex-shrink:0;min-width:64px;min-height:36px;font-size:.95rem}.muted{color:var(--muted)}.schedule-section{overflow:hidden}.stud-sched h2{font-family:var(--font-display);color:var(--blue-900);margin:0;font-size:1.35rem}.stud-sched__top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.stud-sched__top p{color:var(--muted);margin:4px 0 0;font-size:.92rem}.stud-sched__sticky{z-index:4;background:var(--surface);margin:0 -8px 4px;padding:0 8px 10px;position:sticky;top:0}.stud-sched__nav{grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin-bottom:10px;display:grid}.stud-sched__arrow{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--heading);cursor:pointer;border-radius:14px;place-items:center;padding:0;font-size:1.5rem;line-height:1;display:grid}.stud-sched__arrow:disabled{opacity:.35;cursor:default}.stud-sched__current{text-align:center;min-width:0}.stud-sched__current strong{color:var(--blue-900);letter-spacing:-.02em;font-size:1.05rem;display:block}.stud-sched__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:4px;display:flex}.stud-sched__today,.stud-sched__pick{background:var(--orange-100);color:var(--orange-600);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.stud-sched__today-mark{color:var(--orange-600);font-size:.78rem;font-weight:700}.stud-sched__pick{color:var(--blue-800);background:#0f3a6614;position:relative;overflow:hidden}.stud-sched__pick input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;inset:0}.day-strip{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;align-items:stretch;gap:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.day-strip::-webkit-scrollbar{display:none}.day-strip__month{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex:none;align-self:center;padding:0 2px 0 6px;font-size:.68rem;font-weight:700}.day-chip{scroll-snap-align:center;border:1px solid var(--line);background:var(--surface);cursor:pointer;min-height:64px;color:var(--ink);border-radius:16px;flex:0 0 56px;place-items:center;gap:2px;padding:8px 4px;display:grid}.day-chip__wd{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:600}.day-chip__num{color:var(--blue-900);font-size:1.15rem;font-weight:800;line-height:1}.day-chip.is-today{box-shadow:inset 0 0 0 2px var(--orange-400)}.day-chip.is-selected{background:linear-gradient(160deg, var(--blue-800), var(--blue-700));border-color:#0000;box-shadow:0 8px 16px #154f8847}.day-chip.is-selected .day-chip__wd,.day-chip.is-selected .day-chip__num{color:#fff}.pair-list{gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.pair-card{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface), var(--surface-2));border-left-width:4px;border-radius:18px;grid-template-columns:92px 1fr;gap:12px;padding:14px 14px 14px 0;display:grid;box-shadow:0 8px 20px #0f3a660d}.pair-card__time{font-variant-numeric:tabular-nums;border-right:1px solid #e6eef6;align-content:start;justify-items:center;gap:6px;padding:2px 8px 0 12px;display:grid}.pair-card__no{background:var(--blue-100);width:28px;height:28px;color:var(--blue-800);border-radius:9px;place-items:center;font-size:.82rem;font-weight:800;display:grid}.pair-card__time strong{color:var(--blue-900);text-align:center;font-size:.78rem;line-height:1.25}.pair-card__body{gap:6px;min-width:0;display:grid}.pair-card__body>strong{color:var(--blue-900);font-size:1.02rem;line-height:1.3}.pair-card__tags{flex-wrap:wrap;gap:6px;display:flex}.pair-card__tags span{background:var(--surface-2);color:var(--heading);border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700}.pair-card__meta{color:var(--ink);gap:2px;font-size:.86rem;display:grid}.pair-card__meta .is-muted{color:var(--muted)}.stud-sched__empty{background:var(--surface-2);border:1px dashed var(--line);text-align:center;border-radius:18px;gap:6px;margin-top:12px;padding:28px 18px;display:grid}.stud-sched__empty strong{color:var(--blue-900)}.stud-sched__empty span{color:var(--muted);font-size:.9rem}.stud-sched__desk{display:none}.stud-sched__pulse{background:var(--surface-2);color:var(--heading);border:1px solid var(--line);border-radius:999px;align-self:center;padding:8px 14px;font-size:.82rem;font-weight:700}.stud-weekbar{grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;min-height:52px;margin-bottom:14px;display:grid}.stud-weekbar>div{text-align:center;place-items:center;gap:4px;min-height:44px;display:grid}.stud-weekbar strong{color:var(--heading);font-size:1.05rem;line-height:1.25;display:block}.stud-week{border:1px solid var(--line);background:var(--surface);border-radius:18px;overflow-x:auto;box-shadow:0 12px 28px #0f3a660f}.stud-week table{border-collapse:collapse;width:100%;min-width:860px}.stud-week th,.stud-week td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top}.stud-week thead th{background:var(--surface-2);padding:8px}.stud-week tbody th{text-align:center;background:var(--surface-2);width:86px;color:var(--blue-900);padding:12px 8px}.stud-week tbody th b{font-size:1.05rem;display:block}.stud-week tbody th span{color:var(--muted);font-size:.72rem;font-weight:600;display:block}.stud-week tbody th em{color:#fff;background:var(--orange-600);border-radius:999px;margin-top:4px;padding:2px 7px;font-size:.68rem;font-style:normal;font-weight:800;display:inline-block}.stud-week td{min-width:128px;padding:8px}.stud-week td.is-selected{background:#154f880a}.stud-week tr.is-now td,.stud-week tr.is-now th{background:var(--tint-warm)}.stud-week tr.is-done td,.stud-week tr.is-done th{opacity:.72}.stud-week__day{cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;border-radius:12px;justify-items:center;gap:2px;padding:4px;display:grid}.stud-week__day span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:700}.stud-week__day b{color:var(--blue-900);font-size:1.15rem}.stud-week__day.is-today{box-shadow:inset 0 0 0 2px var(--orange-400)}.stud-week__day.is-on{background:linear-gradient(160deg, var(--blue-800), var(--blue-700))}.stud-week__day.is-on span,.stud-week__day.is-on b{color:#fff}.stud-week__chip{background:var(--surface-2);border:1px solid var(--line);border-left-width:4px;border-radius:12px;gap:3px;margin-bottom:6px;padding:8px 9px 8px 12px;display:grid}.stud-week__chip strong{color:var(--blue-900);font-size:.82rem;line-height:1.25}.stud-week__chip span{color:var(--muted);font-size:.72rem}.stud-week__empty{color:#c5d0db;font-size:.9rem}.pair-card{border-left-width:4px;position:relative}.pair-card.is-now{box-shadow:0 10px 24px #e86f1229}.pair-card.is-done{opacity:.72}.pair-card__time em{color:var(--orange-600);font-size:.68rem;font-style:normal;font-weight:800}.pair-card__who{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pair-card__who.is-sub b{color:var(--blue-900)}.pair-card__who s{color:var(--muted)}.pair-card__arrow{color:var(--orange-600);font-weight:800}.pair-card__who em{color:var(--muted);font-size:.75rem;font-style:normal}.tone-lecture{border-left-color:#1c64a8}.tone-practice{border-left-color:#0c7e4b}.tone-lab{border-left-color:#7b4bb3}.tone-consult{border-left-color:#0f766e}.tone-credit{border-left-color:#c56a00}.tone-exam{border-left-color:#c62828}.day-chip__dots{color:var(--orange-600);font-size:.62rem;font-style:normal;font-weight:800}.day-chip.is-selected .day-chip__dots{color:#ffd7a8}@media (width>=960px){.stud-sched__mobile{display:none}.stud-sched__desk{display:block}}@media (width<=820px){.grades-desk{display:none}.grades-mobile{display:block}.main--sched .main__header{margin-bottom:10px;padding:0;position:static}.main--sched .main__header h1,.main--sched .main__header p,.main--sched .status-badge{display:none}.main--sched .mobile-burger{margin:0}.main--sched .stud-sched__top{display:none}.main--sched .schedule-section{border-radius:18px;padding:14px 12px 20px;overflow:visible}.main--sched .stud-sched__sticky{z-index:5;background:var(--surface);margin:0 0 8px;padding:4px 0 10px;top:0}.main--sched .stud-sched__day{padding-top:4px}.main--sched .pair-list{margin-top:12px}.pair-card{grid-template-columns:78px 1fr;padding-right:12px}}@media (width<=520px){.main--sched{padding-left:12px;padding-right:12px}.pair-card__time strong{font-size:.72rem}}.profile-field{grid-column:1/-1}.profile-field__row{align-items:stretch;gap:8px;display:flex}.profile-field__row input{flex:1;min-width:0;height:44px}.profile-edit{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--blue-800);cursor:pointer;border-radius:12px;flex:0 0 44px;place-items:center;display:grid}.profile-edit:hover:not(:disabled){border-color:var(--blue-700);background:var(--blue-50)}.profile-edit:disabled{opacity:.4;cursor:default}.field-hint{color:var(--muted);margin:6px 0 0;font-size:.82rem;font-weight:400;line-height:1.4}.nudge-banner{background:var(--tint-warm);border:1px solid color-mix(in srgb, var(--orange-500) 35%, var(--line));border-radius:16px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:16px 18px;display:flex}.nudge-banner p{color:var(--muted);margin:4px 0 0;font-size:.9rem}.toggle-2fa{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.toggle-2fa input{width:18px;height:18px;margin-top:4px}.toggle-2fa strong{color:var(--blue-900);display:block}.toggle-2fa em{color:var(--muted);margin-top:4px;font-size:.88rem;font-style:normal;font-weight:400;line-height:1.45;display:block}.note-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.note-item{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:16px;gap:4px;width:100%;padding:14px 16px;display:grid}.note-item.is-unread{background:var(--blue-50);border-color:color-mix(in srgb, var(--blue-700) 28%, var(--line))}.note-item strong{color:var(--blue-900)}.note-item span{color:var(--ink);font-size:.92rem}.note-item em{color:var(--muted);font-size:.78rem;font-style:normal}.cab-modal-root{z-index:2000;place-items:center;padding:20px 16px;display:grid;position:fixed;inset:0}.cab-modal-backdrop{background:#0a27446b;border:0;position:absolute;inset:0}.cab-modal{z-index:1;background:var(--surface);border-radius:20px;width:min(480px,100%);max-width:100%;padding:24px 22px 20px;position:relative;overflow:hidden;box-shadow:0 24px 60px #081e3747}.cab-modal--wide{width:min(640px,100%)}.cab-modal .form-row{grid-template-columns:1fr}.cab-modal .file-drop{margin:8px 0 12px}.cab-modal h2{font-family:var(--font-display);color:var(--blue-900);margin:0 0 10px}.cab-modal p{color:var(--ink);margin:0 0 16px;line-height:1.5}.cab-modal__actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.note-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.note-toolbar select{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;border-radius:12px;padding:8px 12px}.profile-edit,.toggle-2fa{background:var(--surface)}html[data-compact="1"] .section{padding:16px}html[data-compact="1"] .form-row{margin-bottom:10px}.form-group:has(>.profile-value){grid-template-rows:2.6em auto}.profile-value{box-sizing:border-box;border:1px solid var(--line);background:var(--surface-2);height:auto;min-height:44px;color:var(--ink);overflow-wrap:anywhere;word-break:break-word;white-space:normal;border-radius:12px;align-items:center;padding:10px 12px;line-height:1.35;display:flex}.profile-value.is-empty,.form-group input.is-empty{color:var(--muted)}.status-card>div:first-child{flex:auto;min-width:0}.status-card__side{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.status-card--muted{background:var(--surface-2);border-left-color:var(--muted)}.status-card--muted strong{color:var(--muted)}.status-card__actions{flex-wrap:wrap;gap:16px;margin-top:10px;display:flex}.status-card__actions .linkish-cab{margin-top:0}.linkish-cab--danger{color:var(--danger)}.inline-status{margin:8px 0 0;font-size:.85rem;font-weight:600}.inline-status--ok{color:var(--ok)}.inline-status--bad{color:var(--danger)}@media (width<=520px){.status-card__side{text-align:left;align-items:flex-start}}.note-row{gap:6px;display:grid}.note-item span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.note-list .note-row.is-open .note-item span{-webkit-line-clamp:unset;display:block;overflow:visible}.note-item:hover{border-color:color-mix(in srgb, var(--blue-700) 35%, var(--line))}.note-item__tools{flex-wrap:wrap;justify-content:flex-end;gap:16px;padding:0 4px;display:flex}.note-item__tools .linkish-cab{margin-top:0;font-size:.85rem}.pf-status{align-self:center;font-size:.85rem;font-weight:600}.pf-status--ok{color:var(--ok)}.pf-status--bad{color:var(--danger)}.admin-login{background:radial-gradient(70% 50% at 12% 18%,#f07c1d38,#0000 55%),radial-gradient(50% 40% at 88% 12%,#f07c1d2e,#0000 50%),linear-gradient(155deg,#071b31 0%,#0f3a66 42%,#1a5f9e 100%);place-items:center;min-height:100vh;padding:28px 16px;display:grid;position:relative;overflow:hidden}.admin-login__glow{filter:blur(8px);pointer-events:none;background:radial-gradient(circle,#f07c1d47,#0000 68%);border-radius:50%;width:420px;height:420px;position:absolute;inset:12% auto auto 50%;transform:translate(-50%)}.admin-login__card{z-index:1;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;width:min(420px,100%);padding:36px 32px 28px;animation:.45s both rise-in;position:relative;box-shadow:0 30px 70px #04122459}.admin-login__brand{align-items:center;gap:14px;margin-bottom:8px;display:flex}.admin-login__brand img{object-fit:contain;filter:drop-shadow(0 6px 14px #0f3a6633);width:64px;height:64px}.admin-login__card h1{font-family:var(--font-display);color:var(--blue-900);letter-spacing:-.02em;margin:4px 0 0;font-size:1.85rem}.admin-login__lead,.admin-login__card>p{color:var(--muted);margin:0 0 22px;line-height:1.45}.admin-login__hint{color:var(--muted);margin:-8px 0 16px;font-size:.82rem;line-height:1.4}.admin-login__steps{letter-spacing:.04em;text-transform:uppercase;color:#9fb3c8;align-items:center;gap:10px;margin:-8px 0 18px;font-size:.78rem;font-weight:700;display:flex}.admin-login__steps i{background:var(--line);border-radius:99px;flex:1;height:2px}.admin-login__steps .is-done{color:var(--ok)}.admin-login__steps .is-active{color:var(--heading)}.admin-root.is-impersonating .admin-nav{height:calc(100vh - 52px)}.admin-impersonation-bar{color:#fff;background:#1d3557;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;font-size:.9rem;display:flex}.admin-impersonation-bar button{color:#fff;font:inherit;cursor:pointer;background:#f07c1d;border:0;border-radius:8px;flex-shrink:0;padding:8px 14px}.admin-impersonation-bar button:hover{background:#e86f12}.admin-shell{background:var(--page-wash);background-attachment:fixed;grid-template-columns:272px 1fr;min-height:100vh;display:grid}.admin-root.is-impersonating .admin-shell{min-height:calc(100vh - 52px)}.admin-nav{z-index:2;color:#fff;background:linear-gradient(#0a2744 0%,#0f3a66 52%,#154f88 100%);flex-direction:column;gap:4px;height:100vh;padding:20px 14px 16px;display:flex;position:sticky;top:0;overflow:hidden;box-shadow:8px 0 32px #081e3724}.admin-nav__menu{scrollbar-width:thin;scrollbar-color:#ffffff73 transparent;flex-direction:column;flex:1;gap:14px;min-height:0;padding-right:4px;display:flex;overflow:auto}.admin-nav__group{flex-direction:column;gap:2px;display:flex}.admin-nav__label{letter-spacing:.12em;text-transform:uppercase;color:#ffffff73;margin:0 12px 6px;font-size:.68rem;font-weight:700}.admin-nav__brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;margin-bottom:8px;padding:6px 10px 18px;display:flex}.admin-nav__brand img{object-fit:contain;filter:drop-shadow(0 4px 10px #00000040);flex-shrink:0;width:46px;height:46px}.admin-nav__brand strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.28rem;line-height:1.15;display:block}.admin-nav__brand span{opacity:.72;margin-top:3px;font-size:.8rem;display:block}.admin-nav a,.admin-nav button.linkish{color:#ffffffd6;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;text-decoration:none;transition:background .15s,color .15s;display:flex}.admin-nav a.active{color:#fff;background:#ffffff24;box-shadow:inset 3px 0 #f07c1d}.admin-nav a:hover,.admin-nav button.linkish:hover{color:#fff;background:#ffffff1a}.admin-nav__footer{border-top:1px solid #ffffff1a;gap:8px;margin-top:auto;padding-top:14px;display:grid}.admin-bell{margin-bottom:8px;position:relative}.admin-bell__btn{color:#fff;width:100%;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.admin-bell__btn:hover{background:#ffffff24}.admin-bell__badge{color:#fff;background:#f07c1d;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;font-weight:800;display:inline-grid}.admin-bell__panel{background:var(--surface);color:var(--ink);z-index:30;border-radius:14px;max-height:360px;padding:12px;position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow:auto;box-shadow:0 18px 40px #04122447}.admin-bell__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.admin-bell__panel ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.admin-bell__item{text-align:left;background:var(--surface-2);cursor:pointer;width:100%;color:inherit;font:inherit;border:0;border-radius:10px;gap:3px;padding:10px;display:grid}.admin-bell__item.is-unread{background:var(--blue-50)}.admin-bell__item strong{font-size:.88rem}.admin-bell__item span{color:var(--muted);font-size:.8rem}.admin-bell__item em{color:var(--muted);font-size:.72rem;font-style:normal}.admin-nav__user-name{font-size:.92rem;font-weight:600;display:block}.admin-nav__user-login{opacity:.65;margin-top:2px;font-size:.78rem;display:block}.admin-main{min-width:0;padding:28px 28px 48px;animation:.35s rise-in}.admin-page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.admin-kicker{color:var(--orange-600);letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:.75rem;font-weight:700}.admin-hub{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.admin-hub__col{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 16px;box-shadow:0 12px 32px #0f3a660a}.admin-hub__col h2{letter-spacing:.1em;text-transform:uppercase;color:var(--blue-800);margin:0 0 12px;font-size:.78rem}.admin-hub__item{border-radius:12px;margin:0 -4px 4px;padding:12px;transition:background .15s;display:block}.admin-hub__item:hover{background:var(--blue-50)}.admin-hub__item strong{color:var(--blue-900);font-size:1rem;display:block}.admin-hub__item span{color:var(--muted);margin-top:3px;font-size:.84rem;line-height:1.35;display:block}.admin-login__brand .admin-kicker{text-transform:none;letter-spacing:.02em;max-width:28ch;margin-bottom:2px;font-size:.72rem;line-height:1.35}.admin-subnav{flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:4px 0 18px;display:flex}.admin-subnav a{color:var(--blue-800);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.admin-subnav a:hover{background:var(--surface);border-color:var(--blue-700)}.admin-subnav a.active{color:#fff;background:linear-gradient(135deg,#1c64a8,#0f3a66);border-color:#0000;font-weight:700}.admin-main h1{font-family:var(--font-display);color:var(--blue-900);letter-spacing:-.03em;margin:0 0 6px;font-size:2rem}.admin-main .lead{color:var(--muted);max-width:52ch;margin:0 0 22px;line-height:1.5}.admin-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 18px 16px;position:relative;overflow:hidden;box-shadow:0 10px 28px #0f3a660d}.admin-card:before{content:"";background:linear-gradient(#f07c1d,#1c64a8);width:3px;position:absolute;inset:0 auto 0 0}.admin-card .label{color:var(--muted);padding-left:8px;font-size:.84rem}.admin-card .value{color:var(--blue-900);letter-spacing:-.03em;margin-top:10px;padding-left:8px;font-size:1.9rem;font-weight:700}.admin-panel{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--line);border-radius:18px;margin-bottom:16px;padding:20px;box-shadow:0 12px 32px #0f3a660a}.admin-panel--flush{padding:0;overflow:hidden}.admin-panel--flush .admin-table{margin:0}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 16px;font-size:.92rem}.admin-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);font-size:.8rem;font-weight:600}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover td{background:#e8f1fa73}.admin-table__actions{text-align:right;white-space:nowrap}.admin-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.admin-actions input[type=search],.admin-toolbar select,.admin-actions select,.search-field input,.admin-panel input[type=text],.admin-panel input[type=password],.admin-panel input[type=file],.admin-panel select,.drawer input[type=text],.drawer input[type=password],.drawer select,.modal input[type=text],.modal select{border:1px solid var(--line);font:inherit;background:var(--surface);border-radius:12px;padding:11px 13px;transition:border-color .15s,box-shadow .15s}.admin-actions input[type=search]:focus,.admin-toolbar select:focus,.admin-actions select:focus,.search-field input:focus,.admin-panel input:focus,.admin-panel select:focus,.drawer input:focus,.drawer select:focus,.modal input:focus,.modal select:focus,.field input:focus{border-color:#1c64a8;outline:none;box-shadow:0 0 0 3px #1c64a826}.user-cell{align-items:center;gap:12px;display:flex}.user-avatar{color:#fff;background:linear-gradient(145deg,#1c64a8,#0f3a66);border-radius:12px;flex-shrink:0;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.user-login{color:var(--muted);margin-top:2px;font-size:.84rem;display:block}.muted{color:var(--muted);font-size:.86rem}.perm-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-2);color:var(--heading);border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-family:ui-monospace,Consolas,monospace;font-size:.75rem;display:inline-block}.row-actions{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.perm-grid{gap:8px;margin:8px 0 16px;display:grid}.perm-grid label{background:var(--surface-2);cursor:pointer;border:1px solid #0000;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.92rem;display:flex}.perm-grid label:hover{border-color:var(--line)}.perm-grid small{color:var(--muted);margin-top:2px;font-family:ui-monospace,Consolas,monospace;font-size:.75rem;display:block}.badge{background:var(--blue-100);color:var(--heading);border-radius:999px;padding:4px 9px;font-size:.76rem;font-weight:600;display:inline-block}.badge.sent{background:var(--tint-ok);color:var(--ok)}.badge.failed{background:var(--tint-bad);color:var(--danger)}.badge.pending{background:var(--tint-wait);color:var(--orange-600)}.btn{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:var(--surface);width:auto;max-width:max-content;color:var(--ink);border-radius:11px;flex:none;justify-content:center;align-items:center;gap:6px;padding:8px 13px;font-size:.86rem;font-weight:600;line-height:1.2;text-decoration:none;transition:transform .12s,background .15s,box-shadow .15s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(135deg,#b45309,#92400e);border-color:#0000;box-shadow:0 6px 14px #92400e3d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#92400e,#78350f)}.admin-login .btn{width:100%;max-width:none}.admin-login__otp{letter-spacing:.42em;text-align:center;font-variant-numeric:tabular-nums;padding-left:.42em;font-size:26px;font-weight:700}.admin-login__otp-actions{flex-direction:column;gap:8px;margin-top:10px;display:flex}.icon-btn{cursor:pointer;border:0;border-radius:11px;flex:none;place-items:center;width:34px;height:34px;padding:0;transition:transform .12s,background .15s,box-shadow .15s;display:inline-grid}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn:active:not(:disabled){transform:translateY(1px)}.icon-btn svg{width:15px;height:15px}.icon-btn--add{color:#fff;background:linear-gradient(135deg,#b45309,#92400e);box-shadow:0 6px 14px #92400e47}.icon-btn--add:hover:not(:disabled){background:linear-gradient(135deg,#92400e,#78350f)}.icon-btn--edit{background:var(--blue-50);color:var(--blue-800)}.icon-btn--login{background:var(--tint-ok);color:var(--ok)}.icon-btn--login:hover:not(:disabled){background:color-mix(in srgb, var(--ok) 22%, var(--surface))}.icon-btn--delete{background:var(--tint-bad);color:var(--danger)}.icon-btn--delete:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 22%, var(--surface))}.icon-btn--close{background:var(--surface-2);color:var(--blue-800)}.icon-btn--close:hover:not(:disabled){background:var(--blue-50)}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.admin-toolbar .search-field{flex:1;max-width:520px}.admin-toolbar__grow{flex:1}.field select,.modal select,.drawer select{border:1px solid var(--line);width:100%;font:inherit;background:var(--surface);border-radius:12px;padding:11px 13px}.btn-ghost{color:var(--blue-800);border:1px solid var(--line);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--blue-50)}.btn-danger-ghost{color:#b42318;background:0 0;border:1px solid #f3c4c0}.btn-danger-ghost:hover:not(:disabled){background:var(--tint-bad)}.field{margin-bottom:14px;display:block}.field span{color:var(--muted);margin-bottom:6px;font-size:.88rem;display:block}.field textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:12px;min-height:84px;padding:11px 13px}.form-alert{background:var(--tint-bad);color:var(--danger);border-radius:12px;margin-bottom:14px;padding:12px 14px}.form-ok{color:#1b7a36;background:#e3f8e8;border-radius:12px;margin-bottom:14px;padding:12px 14px}.drawer-root{z-index:4000;place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0;overflow:hidden}.drawer-backdrop{cursor:pointer;background:#0a274485;border:0;position:absolute;inset:0}.drawer{background:var(--surface);border-radius:20px;flex-direction:column;width:min(560px,100%);height:auto;max-height:min(88vh,860px);animation:.24s both modal-in;display:flex;position:relative;overflow:hidden;box-shadow:0 28px 70px #081e3747}.drawer--knd{width:min(920px,100%);height:min(94vh,980px);max-height:min(94vh,980px)}.drawer--knd .drawer__body{flex-direction:column;min-height:0;padding-bottom:12px;display:flex;overflow:hidden}.drawer--knd .drawer__body>:not(.knd-frame){flex-shrink:0}.knd-frame{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;flex:auto;min-height:0;margin:10px 0 14px;overflow:hidden auto}.knd-frame iframe{background:var(--surface-2);border:0;width:100%;height:2400px;display:block;overflow:hidden}.drawer--knd .drawer__footer{border-top:1px solid var(--line);flex-shrink:0;margin:0;padding:12px 20px 18px}.drawer--sign{width:min(920px,100%)}.sign-preview{overscroll-behavior:contain;background:var(--surface-2);cursor:default;border:1px solid #c5d4e4;border-radius:14px;min-height:360px;max-height:64vh;margin:12px 0 8px;position:relative;overflow:auto}.sign-preview iframe{background:var(--surface);pointer-events:auto;border:0;width:100%;height:64vh;display:block}.sign-preview__pages{flex-direction:column;gap:14px;padding:10px;display:flex;position:relative}.sign-preview__page-wrap{flex-direction:column;gap:6px;display:flex}.sign-preview__page-num{color:#486581;padding-left:2px;font-size:12px;font-weight:600}.sign-preview__page{background:var(--surface);position:relative;box-shadow:0 2px 10px #0f3a661a}.sign-preview__page--wait{min-height:120px;color:var(--muted);background:var(--surface-2);place-items:center;display:grid}.sign-preview__page>img,.sign-preview__sheet>img{background:var(--surface);pointer-events:none;width:100%;height:auto;display:block}.sign-preview__sheet{min-width:100%;display:block;position:relative}.sign-stamp{z-index:2;box-sizing:border-box;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;pointer-events:auto;background:0 0;border:0;width:42%;padding:0;position:absolute;box-shadow:0 10px 24px #0f3a6629}.sign-stamp:active{cursor:grabbing}.sign-stamp__img{pointer-events:none;width:100%;height:auto;display:block}.sign-stamp__placeholder{background:var(--surface);min-height:88px;color:var(--muted);border:2px solid #14345c;border-radius:6px;place-items:center;font-size:12px;display:grid}.sign-stamp__emblem{object-fit:cover;object-position:top center;pointer-events:none;flex:0 0 18%;width:18%;max-width:64px;height:auto}.sign-stamp__body{min-width:0;padding-top:2px}.sign-stamp__kicker{letter-spacing:.03em;text-transform:uppercase;color:#14345c;font-size:.62em;font-weight:700;line-height:1.25}.sign-stamp__org{color:#14345c;margin-top:3px;font-size:.85em;font-weight:700}.sign-stamp__who{color:#243447;margin-top:2px;font-size:.78em;font-weight:600}.sign-stamp__rule{background:#b08a3c8c;height:1px;margin:6px 0 5px}.sign-stamp__line{color:#3a4a5c;overflow-wrap:anywhere;word-break:break-word;font-size:.68em;line-height:1.45}.sign-stamp__fp{color:#3a4a5c;overflow-wrap:anywhere;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.64em;line-height:1.4}.sign-stamp__resize{cursor:nwse-resize;touch-action:none;background:#14345c;border:2px solid #fff;border-radius:3px;width:14px;height:14px;padding:0;position:absolute;bottom:-5px;right:-5px}.sign-size{align-items:center;gap:10px;margin:8px 0 12px;display:flex}.sign-size input[type=range]{flex:1;min-width:0}.sign-size span{color:var(--muted,#627d98);white-space:nowrap;font-size:13px}.tax-check{align-items:center;gap:8px;margin:8px 0 12px;font-weight:600;display:flex}.drawer__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 14px;display:flex}.drawer__head h2{font-family:var(--font-display);color:var(--blue-900);margin:0;font-size:1.35rem}.drawer__body{flex:1;padding:18px 20px 28px;overflow:auto}.drawer__section{border:1px solid var(--line);background:linear-gradient(#0f4c810a,#0000 48%);border-radius:14px;margin:0 0 18px;padding:14px 14px 6px}.drawer__section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--blue-900);border-bottom:2px solid #0f4c812e;margin:0 0 12px;padding-bottom:8px;font-size:.78rem;font-weight:700}.check-grid{gap:8px;max-height:220px;padding-bottom:8px;display:grid;overflow:auto}.check-item{color:var(--text);align-items:flex-start;gap:8px;font-size:.92rem;display:flex}.check-item input{margin-top:3px}.admin-table tr.is-selected td{background:#0f4c810f}.drawer__footer{flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:8px;display:flex}.drawer__body .drawer__footer{z-index:2;background:var(--surface);border-top:1px solid var(--line);margin:8px -20px -28px;padding:12px 20px 18px;position:sticky;bottom:-28px}.tax-dl{gap:12px;margin:12px 0 18px;display:grid}.tax-dl>div{border-bottom:1px solid var(--line);padding-bottom:10px}.tax-dl dt{color:var(--muted);margin-bottom:4px;font-size:.82rem}.tax-dl dd{margin:0;line-height:1.4}.tax-actions{flex-wrap:wrap;gap:8px;display:flex}.search-field{flex:1;min-width:220px;max-width:460px;position:relative}.search-field input{width:100%;padding-right:40px}.search-field__clear{background:var(--blue-50);width:28px;height:28px;color:var(--blue-800);cursor:pointer;border:0;border-radius:999px;font-size:1.2rem;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-field__clear:hover{background:var(--line)}.students-meta{color:var(--muted);white-space:nowrap;font-size:.88rem}.students-table-wrap{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--blue-700) 40%, transparent) transparent;-webkit-overflow-scrolling:touch;overflow-x:auto}.students-table-wrap::-webkit-scrollbar{height:8px}.students-table-wrap::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--blue-700) 40%, transparent);border-radius:999px}.admin-table thead th{z-index:2;position:sticky;top:0}.th-filter{align-items:center;gap:6px;display:inline-flex}.th-filter__btn{background:var(--blue-50);color:var(--blue-800);cursor:pointer;border:0;border-radius:8px;width:26px;height:26px;font-size:.78rem;line-height:1}.th-filter__btn.is-on{background:var(--orange-100);color:var(--orange-600)}.col-menu-layer{z-index:90;position:fixed;inset:0}.col-menu{z-index:91;background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:2px;width:260px;padding:8px;display:grid;position:fixed;box-shadow:0 18px 44px #0f3a6629}.col-menu button{text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:10px;padding:8px 10px}.col-menu button:hover,.col-menu button.is-active{background:var(--blue-50);color:var(--blue-900)}.col-menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}.col-menu input{border:1px solid var(--line);width:100%;font:inherit;border-radius:10px;margin-top:6px;padding:9px 11px}.col-menu__actions{justify-content:flex-start;gap:8px;margin-top:8px;display:flex}.col-menu__actions .btn{flex:none;padding:7px 12px}.students-sentinel{color:var(--muted);text-align:center;min-height:12px;padding:14px 4px 8px;font-size:.86rem}.admin-empty{text-align:center;color:var(--muted);padding:36px 16px!important}@keyframes page-spin{to{transform:rotate(360deg)}}html.modal-open,html.modal-open body{overscroll-behavior:none;overflow:hidden!important}.modal-root{z-index:4000;place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0;overflow:hidden}.modal{z-index:1;background:var(--surface);border-radius:20px;flex-direction:column;width:min(560px,100%);max-height:min(88vh,860px);animation:.24s both modal-in;display:flex;position:relative;overflow:hidden;box-shadow:0 28px 70px #081e3747}.modal--wide{width:min(860px,100%);max-height:min(86vh,820px)}@keyframes modal-in{0%{opacity:.55;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}.modal .drawer__body{min-height:0}.admin-topbar,.admin-nav-backdrop{display:none}.admin-kebab{cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:12px;place-items:center;gap:4px;width:44px;height:44px;padding:12px 10px;display:grid}.admin-kebab span{background:#fff;border-radius:50%;width:4px;height:4px;display:block}.dept-cabinet-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.dept-cabinet-grid h3{margin-bottom:8px;font-size:1rem}.dept-cabinet-list{gap:8px;list-style:none;display:grid}.dept-cabinet-list li{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:10px 12px}.dept-cabinet-list span{color:var(--muted);margin-top:2px;font-size:.84rem;display:block}.dept-accounts{gap:8px;margin:8px 0 16px;display:grid}.doc-stamp-preview{gap:8px;max-width:420px;margin-top:12px;display:grid}.sign-stamp.is-readonly{pointer-events:none;position:relative}.dept-account{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.dept-schedule{margin-top:18px}.dept-schedule__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.dept-schedule__head select{border:1px solid var(--line);background:var(--surface);min-width:min(280px,100%);color:var(--ink);font:inherit;border-radius:10px;padding:10px 12px}@media (width<=800px){.dept-cabinet-grid,.admin-stats,.cards-grid{grid-template-columns:1fr}.admin-impersonation-bar,.admin-page-head,.admin-toolbar,.drawer__footer,.dept-schedule__head{flex-wrap:wrap}.admin-toolbar .search-field,.admin-toolbar select,.admin-toolbar .btn{width:100%;max-width:none}.admin-main{padding:16px 12px 32px}.admin-table{font-size:.92rem}.drawer,.drawer--wide,.drawer--sign,.modal,.modal--wide{border-radius:16px 16px 0 0;width:min(100%,100vw);max-height:100dvh}.drawer-root,.modal-root{place-items:end center;padding:0}.sign-preview{max-height:48vh}.sign-size,.drawer__footer{flex-wrap:wrap}}@media (width<=960px){.admin-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr;align-content:start}.admin-topbar{z-index:20;color:#fff;background:linear-gradient(#0a2744 0%,#0f3a66 100%);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0;box-shadow:0 8px 24px #081e3733}.admin-topbar__brand{align-items:center;gap:10px;display:flex}.admin-topbar__brand img{object-fit:contain;width:36px;height:36px}.admin-topbar__brand strong{font-family:var(--font-display);font-size:1.1rem}.admin-nav-backdrop{z-index:28;background:#060e188c;border:0;display:block;position:fixed;inset:0}.admin-nav{z-index:30;flex-direction:column;align-items:stretch;width:min(320px,88vw);height:100vh;display:none;position:fixed;top:0;bottom:0;right:0;overflow:hidden}.admin-nav.is-open{display:flex}.admin-main{padding:22px 16px 40px}.admin-cards{grid-template-columns:1fr 1fr}.admin-hub{grid-template-columns:1fr}.admin-page-head{flex-direction:column}}.field .search-select,.admin-toolbar .search-select,.sched-create .search-select{width:100%}.admin-toolbar .search-select{max-width:280px}.wl-tabs{gap:6px;margin-left:auto;display:flex}.wl-tabs--wrap{flex-wrap:wrap;margin-left:0}.wl-tabs button{border:1px solid var(--line);background:var(--surface);font:inherit;cursor:pointer;color:var(--blue-900);border-radius:10px;padding:8px 14px}.wl-tabs button.is-on{background:var(--blue-900);border-color:var(--blue-900);color:#fff}.wl-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 18px;display:grid}.wl-kpis div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.wl-kpis strong{color:var(--blue-900);font-size:1.45rem;display:block}.wl-kpis span{color:var(--muted);font-size:.86rem}.wl-grid{grid-template-columns:1fr 1.2fr;gap:16px;margin-bottom:18px;display:grid}.wl-chart{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px}.wl-chart h3{color:var(--blue-900);margin:0 0 12px;font-size:1rem}.wl-pie{align-items:center;gap:16px;display:flex}.wl-pie ul{gap:6px;list-style:none;display:grid}.wl-pie li{align-items:center;gap:8px;font-size:.9rem;display:flex}.wl-pie i{border-radius:3px;flex:none;width:10px;height:10px}.clip-names{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:220px;display:flex}.admin-table td:has(.clip-names){vertical-align:middle;width:22%;max-width:240px}.clip-names span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.clip-names__more{color:#1c64a8;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.82rem;line-height:1.2}.clip-names__more:hover{text-decoration:underline}.clip-pop{z-index:4200;background:var(--surface);border:1px solid var(--line);border-radius:12px;max-height:min(320px,45vh);padding:12px 14px;position:fixed;overflow:auto;box-shadow:0 16px 40px #081e3733}.clip-pop__title{color:var(--heading);overflow-wrap:anywhere;margin:0 0 8px;font-size:.82rem;font-weight:700}.clip-pop__list{gap:6px;margin:0;padding-left:18px;display:grid}.clip-pop__list li{overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.wl-bars{gap:8px;max-height:320px;padding-right:4px;display:grid;overflow:auto}.wl-bar{grid-template-columns:140px 1fr 88px;align-items:center;gap:8px;display:grid}.wl-bar__name{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.wl-bar__track{background:var(--surface-2);border-radius:8px;height:12px;position:relative}.wl-bar__norm,.wl-bar__fact{border-radius:8px;height:100%;position:absolute;top:0;left:0}.wl-bar__norm{background:#d7e2ee}.wl-bar__fact{background:#1c64a8}.wl-bar__fact.is-over{background:#e86f12}.wl-bar__val{color:var(--muted);text-align:right;font-size:.78rem}.wl-caption{color:var(--muted);margin:8px 0 0;font-size:.8rem}.wl-row{cursor:pointer}.wl-row:hover td{background:var(--blue-50)}.wl-pct{min-width:72px}.wl-pct b.is-over{color:#e86f12}.wl-pct i{background:var(--surface-2);border-radius:4px;height:4px;margin-top:4px;display:block}.wl-pct em{background:#1c64a8;border-radius:4px;height:100%;display:block}.wl-hours{border:1px solid var(--line);width:72px;font:inherit;border-radius:8px;padding:6px 8px}@media (width<=960px){.wl-grid,.wl-bar{grid-template-columns:1fr}.wl-pie{flex-direction:column;align-items:flex-start}}.admin-panel .note-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-panel .note-item{text-align:left;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:16px;gap:4px;padding:14px 16px;display:grid}.admin-panel .note-item.is-unread{background:color-mix(in srgb, var(--blue-100) 70%, var(--surface));border-color:color-mix(in srgb, var(--blue-700) 35%, var(--line))}.admin-panel .note-item strong{color:var(--blue-900)}.admin-panel .note-item span{color:var(--ink);font-size:.92rem}.admin-panel .note-item em{color:var(--muted);font-size:.78rem;font-style:normal}html[data-theme=dark] .admin-table{color:var(--ink)}html[data-theme=dark] .drawer{background:var(--surface);color:var(--ink)}.btn-danger{color:#fff;background:linear-gradient(135deg,#b42318,#912018);border-color:#0000;box-shadow:0 6px 14px #91201838}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#912018,#7a1b14)}.confirm-box{border:1px solid color-mix(in srgb, var(--danger) 32%, var(--line));background:color-mix(in srgb, var(--danger) 5%, var(--surface));border-radius:14px;gap:10px;width:100%;margin:4px 0;padding:14px;display:grid}.confirm-box p{margin:0;font-size:.92rem;line-height:1.45}.confirm-box__actions{flex-wrap:wrap;gap:8px;display:flex}.confirm-box__actions .btn{min-height:44px}.otp-once{border:1px dashed color-mix(in srgb, var(--orange-600) 55%, var(--line));background:color-mix(in srgb, var(--orange-100) 55%, var(--surface));border-radius:14px;gap:8px;margin:10px 0 4px;padding:14px;display:grid}.otp-once code{letter-spacing:.08em;word-break:break-all;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-family:ui-monospace,Consolas,monospace;font-size:1.15rem;font-weight:700}.otp-once__row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-action-text{display:none}@media (width<=720px){.students-table-wrap:has(.admin-table--cards){overflow-x:visible}.admin-table--cards{width:100%;display:block}.admin-table--cards thead{display:none}.admin-table--cards tbody{display:block}.admin-table--cards tr{border-bottom:1px solid var(--line);padding:10px 14px;display:block}.admin-table--cards tbody tr:last-child{border-bottom:0}.admin-table--cards tbody tr:hover td{background:0 0}.admin-table--cards td{overflow-wrap:anywhere;border-bottom:0;grid-template-columns:104px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:6px 0;font-size:.92rem;display:grid}.admin-table--cards td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:3px;font-size:.74rem;font-weight:600}.admin-table--cards td:not([data-label]):before,.admin-table--cards td.admin-empty:before{content:none}.admin-table--cards td.admin-empty{grid-template-columns:none;padding:14px 0;display:block}.admin-table--cards td .badge{justify-self:start}.admin-table--cards td input[type=checkbox]{justify-self:start;width:22px;height:22px}.admin-table--cards td.admin-table__actions{border-top:1px solid var(--line);text-align:left;white-space:normal;margin-top:8px;padding-top:10px;display:block}.admin-table--cards .row-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;width:100%;display:flex}.admin-table--cards .row-actions .icon-btn{width:44px;height:44px}.admin-table--cards .row-actions .icon-btn svg{width:18px;height:18px}.admin-table--cards .row-actions .btn{min-height:44px;padding:10px 14px;font-size:.9rem}.admin-table--cards .row-action-text{display:inline-flex}.admin-table--cards .row-action-icon{display:none}}.import-step h2,.import-history h2{color:var(--blue-900);letter-spacing:-.01em;margin:0;font-size:1.12rem}.import-step__head{align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.import-step__head p,.import-history__head p{color:var(--muted);max-width:68ch;margin:4px 0 0;font-size:.88rem;line-height:1.45}.import-step__num{color:#fff;background:linear-gradient(135deg,#1c64a8,#0f3a66);border-radius:12px;flex:none;place-items:center;width:34px;height:34px;font-size:.9rem;font-weight:700;display:grid;box-shadow:0 6px 14px #0f3a6633}.import-upload{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.import-upload .file-drop{flex:320px;min-width:0}.import-upload>.btn{min-height:44px}.import-inline-loader{justify-content:flex-start;padding:12px 2px 0;font-size:.9rem}.import-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 12px;display:grid}.import-summary__card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 14px 12px;position:relative;overflow:hidden;box-shadow:0 8px 22px #0f3a660a}.import-summary__card:before{content:"";background:var(--blue-700);width:3px;position:absolute;inset:0 auto 0 0}.import-summary__card span{color:var(--muted);padding-left:6px;font-size:.8rem;display:block}.import-summary__card strong{color:var(--blue-900);letter-spacing:-.03em;margin-top:6px;padding-left:6px;font-size:1.65rem;line-height:1.1;display:block}.import-summary__card small{color:var(--muted);margin-top:5px;padding-left:6px;font-size:.7rem;line-height:1.3;display:block}.import-summary__card.is-new:before{background:var(--ok)}.import-summary__card.is-updated:before{background:var(--blue-700)}.import-summary__card.is-deleted:before{background:var(--danger)}.import-summary__card.is-deleted strong{color:var(--danger)}.import-summary__card.is-deleted.is-active{background:color-mix(in srgb, var(--danger) 6%, var(--surface))}.import-summary__card.is-errors:before{background:var(--orange-600)}.import-groups{border:1px dashed var(--line);color:var(--muted);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:.84rem;display:flex}.import-groups b{color:var(--blue-900);font-weight:700}.import-groups b.is-danger{color:var(--danger)}.import-warnings{border:1px solid color-mix(in srgb, var(--orange-600) 32%, var(--line));background:color-mix(in srgb, var(--orange-600) 7%, var(--surface));border-radius:12px;gap:6px;margin:0 0 14px;padding:10px 12px;font-size:.85rem;line-height:1.4;list-style:none;display:grid}.import-warnings li{padding-left:14px;position:relative}.import-warnings li:before{content:"!";color:var(--orange-600);font-weight:800;position:absolute;top:0;left:0}.import-tabs{scrollbar-width:thin;gap:6px;margin-bottom:6px;padding:2px 0 8px;display:flex;overflow-x:auto}.import-tabs button{border:1px solid var(--line);font:inherit;color:var(--blue-900);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:10px;flex:none;align-items:center;gap:7px;padding:8px 12px;font-size:.86rem;display:inline-flex}.import-tabs button:hover{background:var(--blue-50)}.import-tabs button.is-on{color:#fff;background:linear-gradient(135deg,#1c64a8,#0f3a66);border-color:#0000;font-weight:700}.import-tabs button span{background:var(--surface-2);min-width:20px;color:var(--blue-900);text-align:center;border-radius:999px;padding:1px 6px;font-size:.72rem;font-weight:700}.import-tabs button.is-on span{color:#fff;background:#fff3}.import-samples{border:1px solid var(--line);background:var(--surface-2);overscroll-behavior:contain;scrollbar-width:thin;border-radius:14px;max-height:380px;padding:10px;overflow:auto}.import-samples__note{color:var(--muted);margin:10px 2px 0;font-size:.76rem}.import-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.import-list li{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:4px;min-width:0;padding:10px 12px;display:grid}.import-list li>strong{color:var(--blue-900);overflow-wrap:anywhere;font-size:.94rem}.import-list li>span{color:var(--ink);overflow-wrap:anywhere;font-size:.84rem;line-height:1.35}.import-list li>em{color:var(--muted);overflow-wrap:anywhere;font-size:.8rem;font-style:normal;line-height:1.35}.import-list--errors li{border-color:color-mix(in srgb, var(--danger) 24%, var(--line))}.import-list--errors li>span{color:var(--danger)}.import-changes{border-top:1px dashed var(--line);gap:5px;margin-top:4px;padding-top:6px;display:grid}.import-change{grid-template-columns:minmax(120px,.9fr) minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:7px;font-size:.8rem;line-height:1.35;display:grid}.import-change__label{color:var(--muted)}.import-change__from{color:var(--muted);overflow-wrap:anywhere;text-decoration:line-through}.import-change__arrow{color:var(--orange-600);font-weight:700}.import-change__to{color:var(--blue-900);overflow-wrap:anywhere;font-weight:600}.import-deleted>p{color:var(--danger);margin:0 0 10px;font-size:.86rem;line-height:1.4}.import-fields-head{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:.84rem;display:flex}.import-fields-actions{flex-wrap:wrap;gap:6px;display:flex}.import-fields-actions .btn{padding:6px 10px;font-size:.8rem}.import-fields{flex-wrap:wrap;gap:8px;display:flex}.import-field{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:11px;align-items:flex-start;gap:8px;min-width:0;max-width:100%;padding:8px 11px;font-size:.86rem;line-height:1.3;transition:opacity .15s,border-color .15s,background .15s;display:flex}.import-field:hover{border-color:color-mix(in srgb, var(--blue-700) 45%, var(--line))}.import-field input{flex:none;width:17px;height:17px;margin-top:2px}.import-field span{overflow-wrap:anywhere;min-width:0;display:block}.import-field span em{color:var(--muted);margin-top:2px;font-size:.7rem;font-style:normal;display:block}.import-field.is-sensitive{border-color:color-mix(in srgb, var(--orange-600) 38%, var(--line))}.import-field.is-off{opacity:.5}.import-hint{color:var(--muted);margin:10px 0 0;font-size:.8rem;line-height:1.4}.import-options{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.import-option{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:13px;align-items:flex-start;gap:10px;padding:12px;display:flex}.import-option input{flex:none;width:18px;height:18px;margin-top:2px}.import-option span{gap:3px;min-width:0;display:grid}.import-option strong{color:var(--blue-900);font-size:.9rem}.import-option em{color:var(--muted);font-size:.79rem;font-style:normal;line-height:1.4}.import-danger{border:1px solid color-mix(in srgb, var(--danger) 38%, var(--line));background:color-mix(in srgb, var(--danger) 5%, var(--surface));border-radius:14px;gap:10px;margin-top:14px;padding:12px;display:grid}.import-option--danger{background:0 0;border-color:#0000;padding:0}.import-option--danger strong{color:var(--danger)}.import-confirm-danger{background:var(--surface);border:1px solid color-mix(in srgb, var(--danger) 35%, var(--line));color:var(--danger);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.84rem;font-weight:600;line-height:1.4;display:flex}.import-confirm-danger input{flex:none;width:18px;height:18px;margin-top:2px}.import-confirm{z-index:3;border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:0 0 18px 18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:18px -20px -20px;padding:12px 20px 16px;display:flex;position:sticky;bottom:0}.import-confirm__summary{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}.import-confirm__summary strong{color:var(--blue-900);font-size:.9rem}.import-confirm__summary span{color:var(--muted);font-size:.84rem}.import-confirm__summary .import-confirm__warn{color:var(--danger);flex-basis:100%;font-weight:600}.import-confirm>.btn{min-height:44px;padding:10px 18px}.import-result .import-summary--result{margin-top:14px}.import-history__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.import-history__table td{white-space:nowrap}.import-history__table td:nth-child(2){text-overflow:ellipsis;max-width:260px;overflow:hidden}.import-history__table .row-actions{flex-wrap:nowrap}.import-history__table .btn{padding:6px 10px;font-size:.8rem}@media (width<=960px){.import-summary{grid-template-columns:1fr 1fr}.import-options{grid-template-columns:1fr}}@media (width<=640px){.import-summary{grid-template-columns:1fr}.import-step__head{gap:10px}.import-upload{flex-direction:column;align-items:stretch}.import-upload>.btn{width:100%}.import-fields{flex-direction:column}.import-field{width:100%}.import-change{border-bottom:1px dashed var(--line);grid-template-columns:1fr;gap:2px;padding:6px 0}.import-change:last-child{border-bottom:0}.import-change__arrow{display:none}.import-confirm{flex-direction:column;align-items:stretch;margin:16px -20px -20px}.import-confirm>.btn{width:100%}.import-history__table{min-width:0}.import-history__table td{white-space:normal}.import-history__table td:nth-child(2){white-space:normal;overflow-wrap:anywhere;max-width:none}}.sched{max-width:none}.sched__hero{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.sched__hero h1{font-family:var(--font-display);color:var(--blue-900);margin:0;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1.2}.sched__eyebrow{color:var(--orange-600);letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:.75rem;font-weight:700}.sched__meta{color:var(--muted);margin:6px 0 0}.sched-back{color:var(--blue-700);margin-bottom:8px;font-size:.92rem;display:inline-block}.sched__tabs{flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:4px 0 18px;display:flex}.sched-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0;overflow:hidden;box-shadow:0 10px 30px #0f3a660f}.sched-table{border-collapse:collapse;width:100%}.sched-table th,.sched-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.sched-table th{background:var(--surface-2);color:var(--muted);font-size:.86rem;font-weight:600}.sched-status{color:var(--blue-700);font-weight:600}.sched-id{color:var(--ink);font-variant-numeric:tabular-nums}.sched-empty{text-align:center;color:var(--muted);padding:28px 16px}.sched-create{background:linear-gradient(180deg, var(--surface-2), var(--surface));border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:center;gap:10px;padding:14px;display:grid}.sched-create input,.sched-create select,.slot-row select,.slot-row input,.drawer--wide input,.drawer--wide select{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:10px 12px}.sched-check{align-items:center;gap:8px;min-height:42px;font-weight:600;display:flex}.sched-check input{width:18px;height:18px}.sched-create .btn,.sched-create .icon-btn{justify-self:start;width:auto;min-width:180px;max-width:max-content;height:42px;padding:0 16px}.sched-table th .th-filter{text-transform:none;letter-spacing:0}.sched-table__actions{white-space:nowrap;text-align:right;width:1%}.sched-row-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.sched-open{gap:6px;min-height:44px;padding:0 14px}.sched-open span{color:var(--orange-600);font-weight:800}.sched-editcard{margin-bottom:14px}.sched-edit{gap:12px;padding:16px;display:grid}.sched-edit__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sched-edit__head h2{font-family:var(--font-display);color:var(--blue-900);margin:0;font-size:1.08rem}.sched-edit__head p{color:var(--muted);margin:2px 0 0;font-size:.84rem}.sched-edit__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;display:grid}.sched-edit__field{gap:4px;min-width:0;display:grid}.sched-edit__field>span{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.sched-edit__field .search-select{width:100%}.sched-edit__field--wide{grid-column:1/-1}.sched-edit__field>input{border:1px solid var(--line);background:var(--surface);width:100%;font:inherit;border-radius:10px;padding:10px 12px}.sched-edit__actions{flex-wrap:wrap;gap:8px;display:flex}.sched-edit__actions .btn{min-height:44px;padding:0 16px}.sched-edit .sched-hint{padding:0}.sched-empty--groups{justify-items:center;gap:10px;max-width:620px;margin:0 auto;display:grid}.sched-empty--groups strong{color:var(--blue-900);font-size:1.05rem}.sched-empty--groups p{margin:0;line-height:1.45}.sched-empty__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.sched-empty__actions .btn{min-height:44px;padding:0 14px}.sched-empty__hint{font-size:.84rem}.slot-dates{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:10px;padding:8px 10px}.slot-dates>summary{cursor:pointer;min-height:36px;color:var(--blue-900);align-items:center;gap:8px;font-weight:700;list-style:none;display:flex}.slot-dates>summary::-webkit-details-marker{display:none}.slot-dates>summary:before{content:"▸";color:var(--muted);font-size:.8rem}.slot-dates[open]>summary:before{content:"▾"}.slot-dates__count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.78rem;font-weight:600}.slot-dates__tools{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.slot-dates__tools .btn{min-height:36px;padding:6px 10px;font-size:.8rem}.slot-dates__range{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:8px 10px;display:flex}.slot-dates__range label{color:var(--muted);gap:2px;font-size:.72rem;font-weight:700;display:grid}.slot-dates__range select{border:1px solid var(--line);background:var(--surface);width:auto;min-width:120px;font:inherit;color:var(--ink);border-radius:9px;padding:7px 9px;font-size:.82rem}.slot-dates__range .btn{min-height:36px;padding:6px 12px;font-size:.8rem}.sched-hint{color:var(--muted);margin:0;padding:0 14px 12px;font-size:.86rem}.sched-sideblocks{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:18px;padding:8px 16px 18px;display:grid}.sched-sideblocks h3{color:var(--blue-900);margin:0 0 6px;font-size:.98rem}.sched-weeknav{flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin-bottom:14px;display:flex}.sched-weeknav>button{color:var(--blue-700);cursor:pointer;background:0 0;border:0;border-radius:8px;height:fit-content;padding:6px 10px;font-weight:500}.sched-weeknav button.active{color:#fff;background:linear-gradient(135deg,#1c64a8,#0f3a66);font-weight:700}.sched-weeknav__month{gap:6px;min-width:0;display:grid}.sched-weeknav__month>span{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.sched-weeknav__month>div{flex-wrap:wrap;gap:4px;display:flex}.sched-weeknav__month button{border:1px solid var(--line);background:var(--surface);color:var(--blue-800);cursor:pointer;border-radius:10px;padding:6px 9px;font-size:.78rem;font-weight:600;line-height:1.25}.sched-weeknav__month button.active{color:#fff;background:linear-gradient(135deg,#1c64a8,#0f3a66);border-color:#0000}.sched-actions{flex-wrap:wrap;gap:8px;display:flex}.sched-grid-wrap{max-width:100%;overflow:auto}.sched-grid{border-collapse:collapse;table-layout:fixed;width:100%;min-width:920px}.sched-grid th{background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--muted);text-align:center;padding:10px 8px;font-size:.82rem}.sched-grid__groups{width:180px;text-align:left!important}.sched-grid__pairhead{width:92px}.sched-grid td{border-bottom:1px solid var(--line);vertical-align:stretch;padding:0}.sched-grid__group-start td{border-top:2px solid #c9d7e6}.sched-grid__group{background:var(--surface-2);border-right:1px solid var(--line);vertical-align:top!important;padding:12px!important}.sched-groupnum{color:var(--blue-900);font-size:1.35rem;font-weight:700;line-height:1.1}.sched-grid__group ul{color:var(--muted);margin:8px 0 0;padding:0;font-size:.75rem;line-height:1.35;list-style:none}.sched-stream{color:var(--ink);margin-top:4px;font-size:.8rem}.sched-grid__paircell{background:var(--surface-2);border-right:1px solid #eef3f8;width:92px;vertical-align:middle!important;padding:8px 10px!important}.sched-grid__paircell strong{color:var(--blue-900);font-size:.9rem;display:block}.sched-grid__paircell span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.68rem;display:block}.sched-cell{background:var(--surface);height:100%;min-height:64px;padding:6px;position:relative}.sched-cell.has{background:var(--surface)}.sched-cell.is-locked{background:var(--surface-2)}.sched-plus{background:linear-gradient(180deg, var(--surface), var(--blue-50));width:100%;min-height:48px;color:var(--blue-800);cursor:pointer;border:1px solid #c5d6e6;border-radius:12px;justify-content:center;align-items:center;padding:10px 12px;font-size:.86rem;font-weight:700;display:inline-flex;box-shadow:0 4px 10px #0f3a660f}.sched-plus:hover{border-color:var(--blue-700);color:var(--blue-700);background:var(--blue-50)}.sched-plus.is-empty{cursor:default;color:#c5d0db;border:0}.sched-cell__body{gap:6px;display:grid}.sched-chip{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;align-items:flex-start;gap:4px;margin:0;padding:0;display:flex;overflow:hidden}.sched-chip__main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;min-width:0;padding:8px 8px 8px 10px}.sched-chip__main:disabled{cursor:default}.sched-chip strong{color:var(--heading);word-break:break-word;font-size:.78rem;line-height:1.25;display:block}.sched-chip em{color:var(--muted);margin-top:2px;font-size:.68rem;font-style:normal;display:block}.sched-chip__x{width:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;align-self:stretch;font-size:1.05rem;line-height:1}.sched-chip__x:hover{background:var(--tint-bad);color:var(--danger)}.drawer--wide{width:min(720px,100%)}.slot-block{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;margin-bottom:16px;padding:12px}.slot-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.slot-row select,.slot-row .search-select{flex:200px;min-width:180px}.slot-flag{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;align-items:center;gap:4px;padding:6px 8px;font-size:.86rem;font-weight:600;display:inline-flex}.slot-checks{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.slot-check{background:var(--blue-50);border:1px solid color-mix(in srgb, var(--blue-700) 25%, var(--line));color:var(--blue-900);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.82rem;display:inline-flex}.slot-check input{accent-color:var(--blue-700)}.slot-stream-toggle{cursor:pointer;background:linear-gradient(135deg,#f07c1d1a,#1c64a80f);border:1px solid #f07c1d38;border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;margin:12px 0 8px;padding:10px 12px;display:grid}.slot-stream-toggle input{grid-row:1/span 2}.slot-stream-toggle strong{color:var(--blue-900);font-size:.92rem}.slot-stream-toggle span{color:var(--muted);grid-column:2;font-size:.78rem}.slot-stream{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin:0 0 10px;padding:12px}.slot-stream__modes{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.slot-stream__modes button{border:1px solid var(--line);background:var(--surface-2);font:inherit;color:var(--blue-800);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600}.slot-stream__modes button.is-on{color:#fff;background:linear-gradient(135deg,#1c64a8,#0f3a66);border-color:#0000}.slot-stream__hint{color:var(--ink);margin:0;font-size:.86rem;line-height:1.4}.slot-stream__groups{gap:8px;display:grid}.slot-stream__group{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:8px 10px}.slot-stream__group.is-on{background:var(--surface);border-color:#1c64a859}.slot-stream__group-head{cursor:pointer;align-items:center;gap:8px;display:flex}.slot-stream__group-head strong{color:var(--blue-900)}.slot-footer .btn,.slot-footer .icon-btn{width:auto;max-width:max-content}.slot-form.drawer__body{flex-direction:column;padding-bottom:0;display:flex;overflow:hidden}.slot-form__scroll{flex:1;min-height:0;padding-bottom:8px;overflow:auto}.slot-form .slot-footer{border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;margin:0 -20px;padding:12px 20px 18px}.sched-chip__who{color:var(--blue-900);flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;font-size:.68rem;font-weight:700;display:flex}.sched-chip__who s{color:var(--muted);font-weight:600;text-decoration-thickness:1px}.sched-chip__arrow{color:var(--orange-600);font-weight:800}.slot-hours{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:12px 0 4px;padding:10px 12px;display:flex}.slot-hours label{color:var(--muted);gap:4px;font-size:.78rem;font-weight:700;display:grid}.slot-hours input{border:1px solid var(--line);width:110px;font:inherit;color:var(--blue-900);border-radius:10px;padding:8px 10px;font-weight:700}.slot-hours p{color:var(--muted);flex:220px;margin:0;font-size:.8rem}.slot-hours .btn.is-on{background:var(--blue-100);color:var(--blue-800)}.slot-subs{background:var(--tint-warm);border:1px solid color-mix(in srgb, var(--orange-500) 35%, var(--line));border-radius:12px;margin-top:12px;padding:10px 12px}.slot-subs__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.slot-subs__head strong{color:var(--blue-900);font-size:.86rem}.slot-subs__row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.slot-subs__row .search-select{flex:160px;min-width:160px}.slot-subs__row input{border:1px solid var(--line);min-width:140px;font:inherit;border-radius:10px;flex:140px;padding:8px 10px}@media (width<=900px){.sched-sideblocks,.sched-create{grid-template-columns:1fr}.sched__hero,.sched-actions,.slot-row,.slot-subs__row{flex-direction:column;align-items:stretch}.sched-create .btn{width:100%;max-width:none}.sched-grid-wrap{overflow-x:auto}}@media (width<=720px){.sched .students-table-wrap{overflow:visible}.sched-table,.sched-table tbody{width:100%;display:block}.sched-table thead{background:var(--surface-2);border-bottom:1px solid var(--line);padding:8px 10px;display:block}.sched-table thead tr{flex-wrap:wrap;gap:6px;display:flex}.sched-table thead th{font-size:inherit;background:0 0;border:0;padding:0;display:block}.sched-table thead th:last-child{display:none}.sched-table thead .th-filter{border:1px solid var(--line);background:var(--surface);border-radius:999px;min-height:52px;padding:4px 4px 4px 12px}.sched-table thead .th-filter>span{text-transform:none;letter-spacing:0;color:var(--blue-800);font-size:.8rem}.sched-table thead .th-filter__btn{width:44px;height:44px}.sched-table tr{border-bottom:1px solid var(--line);padding:12px 14px;display:block}.sched-table tr:last-child{border-bottom:0}.sched-table td{border-bottom:0;width:auto;padding:3px 0;display:block}.sched-table td[data-label]:before{content:attr(data-label);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:.68rem;font-weight:700;display:block}.sched-table td[colspan]:before{display:none}.sched-table__actions{text-align:left;width:auto;padding-top:10px!important}.sched-row-actions{justify-content:stretch}.sched-open{flex:auto;justify-content:center;width:100%;max-width:none}.sched-row-actions .icon-btn{width:44px;height:44px}.sched-weeknav>button,.sched-weeknav__month button{min-height:44px;padding:10px 12px}.sched .th-filter__btn{min-width:44px;min-height:44px}.sched-actions .btn,.sched__hero .btn,.sched-chip__main{min-height:44px}.sched-chip__x{align-self:flex-start;width:44px;height:44px;min-height:44px;font-size:1.2rem}.sched-edit{padding:12px}.sched-edit__grid{grid-template-columns:1fr}.sched-edit__actions .btn{flex:auto;width:100%}.slot-form.drawer__body{padding:10px 12px 0}.slot-form__scroll{overscroll-behavior:contain;padding-bottom:4px}.slot-block{margin-bottom:10px;padding:10px}.slot-row{flex-flow:wrap;gap:6px;margin-bottom:8px}.slot-row .search-select{flex:100%;width:100%;min-width:0}.slot-row .icon-btn{justify-self:start;width:44px;height:44px}.slot-flag{flex:calc(25% - 6px);justify-content:center;min-height:44px;padding:10px 6px}.slot-stream-toggle{min-height:44px;margin:8px 0 6px;padding:10px}.slot-stream-toggle span{font-size:.74rem}.slot-stream{padding:10px}.slot-stream__modes button{min-height:44px;padding:10px 14px}.slot-check{min-height:44px;padding:10px 12px}.slot-checks{gap:6px;margin-top:6px}.slot-hours{gap:8px;margin:8px 0 2px;padding:8px 10px}.slot-hours label{flex:120px}.slot-hours input{width:100%}.slot-hours .btn{min-height:44px}.slot-subs{margin-top:8px;padding:8px 10px}.slot-subs__head{flex-wrap:wrap}.slot-subs__head .btn,.slot-subs__row .btn{min-height:44px}.slot-dates{padding:6px 8px}.slot-dates>summary,.slot-dates__tools .btn,.slot-dates__range .btn{min-height:44px}.slot-dates__range label{flex:120px}.slot-dates__range select{width:100%;min-height:44px}.slot-form .slot-footer{padding:10px 12px calc(12px + env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;gap:8px;margin:0 -12px;display:grid}.slot-form .slot-footer .btn{justify-content:center;width:100%;max-width:none;min-height:48px}.slot-form .slot-footer .btn-primary{grid-area:1/1/auto/-1}}@font-face{font-family:Golos Text;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/golos-text-var-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Golos Text;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/golos-text-var-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PT Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/pt-serif-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:PT Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/pt-serif-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--blue-950:#0a2744;--blue-900:#0f3a66;--blue-800:#154f88;--blue-700:#1c64a8;--blue-100:#e8f1fa;--blue-50:#f3f8fc;--orange-600:#b45309;--orange-500:#f07c1d;--orange-400:#f59a45;--orange-100:#fff1e4;--ink:#142033;--heading:#0f3a66;--muted:#5b6b7c;--line:#d7e2ee;--surface:#fff;--surface-2:#f7fafc;--control:#fff;--bg:#eef4fa;--danger:#c62828;--ok:#0c7e4b;--tint-ok:#f3fcf8;--tint-wait:#fff8f0;--tint-bad:#fff4f4;--tint-warm:#fff7ef;--page-wash:radial-gradient(ellipse 90% 58% at 100% -8%, #f07c1d38, transparent 52%), radial-gradient(ellipse 72% 48% at -6% 0%, #1c64a82e, transparent 48%), radial-gradient(ellipse 55% 40% at 42% 108%, #f07c1d1a, transparent 55%), linear-gradient(180deg, #e4eef8 0%, #eef4fa 40%, #fff4e8 100%);--radius:18px;--shadow:0 18px 50px #0f3a661f;--font:"Golos Text", "Segoe UI", sans-serif;--font-display:"PT Serif", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--ink:#eef3f8;--heading:#f3f8fd;--muted:#c2d0de;--line:#3a5268;--surface:#152433;--surface-2:#1b3044;--control:#1b3044;--bg:#0b1520;--blue-900:#dbeaf8;--blue-100:#1b334d;--blue-50:#122536;--orange-100:#3a2818;--danger:#ff8a80;--ok:#6ee7a8;--tint-ok:#16342c;--tint-wait:#3a2a18;--tint-bad:#3a2224;--tint-warm:#33261a;--page-wash:radial-gradient(ellipse 90% 58% at 100% -8%, #f07c1d47, transparent 52%), radial-gradient(ellipse 72% 48% at -6% 0%, #4696dc33, transparent 48%), radial-gradient(ellipse 55% 40% at 42% 108%, #f07c1d1f, transparent 55%), linear-gradient(185deg, #0a131c 0%, #101c28 42%, #121a16 100%);--shadow:0 18px 50px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-font=large]{font-size:18px}html[data-compact="1"]{--radius:14px}html[data-reduce-motion="1"] *,html[data-reduce-motion="1"] :before,html[data-reduce-motion="1"] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);min-height:100%}body,#root{min-height:100%}body{font-family:var(--font);color:var(--ink);background:var(--page-wash);-webkit-font-smoothing:antialiased;background-attachment:fixed}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.boot-screen{min-height:100vh;color:var(--muted);background:var(--page-wash);place-items:center;display:grid}.not-found{z-index:80;text-align:center;background:var(--page-wash);place-content:center;justify-items:center;gap:8px;padding:32px 20px;display:grid;position:fixed;inset:0}.not-found__code{font-family:var(--font-display);letter-spacing:.06em;color:var(--heading);font-size:clamp(3.2rem,8vw,5.5rem);line-height:1}.not-found h1{color:var(--muted);font-size:1.15rem;font-weight:500}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline-offset:2px;outline:2px solid #1c64a8}.admin-nav :focus-visible,.sidebar :focus-visible{outline-color:#f5b544}.not-found__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.not-found__link{border:1px solid var(--line);background:var(--surface);color:var(--heading);border-radius:12px;justify-content:center;align-items:center;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}.not-found__link:hover{border-color:var(--accent,#1c64a8)}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes float-logo{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:0%}to{background-position:100%}}.search-select{width:100%;min-width:0;position:relative}.search-select input{border:1px solid var(--line);background:var(--surface);width:100%;font:inherit;color:var(--ink);border-radius:12px;padding:11px 32px 11px 13px}.search-select.is-disabled input{opacity:.65;cursor:not-allowed}.search-select.is-open input,.search-select input:focus{border-color:#1c64a8;outline:none;box-shadow:0 0 0 3px #1c64a826}.search-select__clear{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:18px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.search-select__clear:hover{background:var(--blue-50);color:var(--heading)}.search-select__list{z-index:5200;background:var(--surface);border:1px solid var(--line);border-radius:12px;max-height:240px;margin:0;padding:6px;list-style:none;position:fixed;overflow:auto;box-shadow:0 16px 40px #081e372e}.search-select__list button{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.search-select__list button strong{color:var(--blue-900);font-weight:600}.search-select__list button span{color:var(--muted);font-size:.8rem}.search-select__list button:hover,.search-select__list button.is-on{background:var(--blue-50)}.search-select__empty{color:var(--muted);padding:10px 12px;font-size:.9rem}.search-select__trigger{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;border-radius:12px;align-items:center;padding:12px 36px 12px 13px;font-size:16px;display:flex}.search-select__trigger .is-placeholder{color:var(--muted)}.search-select-sheet{z-index:5400;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.search-select-sheet__backdrop{background:#0a274459;border:0;position:absolute;inset:0}.search-select-sheet__panel{z-index:1;max-height:min(78vh,640px);padding:8px 12px calc(16px + env(safe-area-inset-bottom,0px));background:var(--surface);border-radius:20px 20px 0 0;flex-direction:column;display:flex;position:relative;box-shadow:0 -12px 40px #081e3733}.search-select-sheet__handle{background:var(--line);border-radius:99px;width:42px;height:4px;margin:4px auto 12px}.search-select-sheet__panel input[type=search]{border:1px solid var(--line);width:100%;min-height:48px;font:inherit;border-radius:12px;margin-bottom:8px;padding:12px 14px;font-size:16px}.search-select-sheet__panel .search-select__list{max-height:none;box-shadow:none;-webkit-overflow-scrolling:touch;border:0;flex:1;padding:0;position:static;overflow:auto}.search-select-sheet__panel .search-select__list button{min-height:52px;padding:12px 14px;font-size:16px}.page-spinner{color:var(--muted);justify-content:center;align-items:center;gap:12px;padding:28px 12px;font-size:.95rem;display:flex}.page-spinner__dot{border:3px solid #d5e2ef;border-top-color:var(--blue-700);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite page-spin}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--control)!important;color:var(--ink)!important;border-color:var(--line)!important}html[data-theme=dark] .section,html[data-theme=dark] .sidebar,html[data-theme=dark] .cab-modal,html[data-theme=dark] .admin-panel,html[data-theme=dark] .admin-card,html[data-theme=dark] .admin-hub__col,html[data-theme=dark] .drawer,html[data-theme=dark] .modal,html[data-theme=dark] .login-panel,html[data-theme=dark] .admin-login__card,html[data-theme=dark] .search-select input,html[data-theme=dark] .search-select__trigger,html[data-theme=dark] .search-select__list,html[data-theme=dark] .search-select-sheet__panel,html[data-theme=dark] .note-item,html[data-theme=dark] .settings-block,html[data-theme=dark] .tax-card,html[data-theme=dark] .toggle-2fa,html[data-theme=dark] .admin-table th,html[data-theme=dark] .admin-table td,html[data-theme=dark] .wl-tabs button,html[data-theme=dark] .wl-kpis div,html[data-theme=dark] .wl-chart,html[data-theme=dark] .btn-ghost,html[data-theme=dark] .btn-logout,html[data-theme=dark] .profile-edit,html[data-theme=dark] .settings-choices button,html[data-theme=dark] .file-drop__remove,html[data-theme=dark] .card-stat,html[data-theme=dark] .grade-card,html[data-theme=dark] .pair-card,html[data-theme=dark] .stud-week,html[data-theme=dark] .stud-week thead th,html[data-theme=dark] .stud-week tbody th,html[data-theme=dark] .stud-sched__arrow,html[data-theme=dark] .stud-sched__empty,html[data-theme=dark] .col-menu,html[data-theme=dark] .admin-bell__panel,html[data-theme=dark] .admin-bell__item,html[data-theme=dark] .admin-subnav a,html[data-theme=dark] .perm-grid label,html[data-theme=dark] .sched-card,html[data-theme=dark] .sched-create,html[data-theme=dark] .sched-cell,html[data-theme=dark] .sched-cell.has,html[data-theme=dark] .sched-cell.is-locked,html[data-theme=dark] .sched-plus,html[data-theme=dark] .sched-grid__group,html[data-theme=dark] .sched-grid__paircell,html[data-theme=dark] .sched-weeknav__month button,html[data-theme=dark] .slot-flag,html[data-theme=dark] .slot-stream,html[data-theme=dark] .slot-stream__group,html[data-theme=dark] .slot-hours,html[data-theme=dark] .slot-form .slot-footer,html[data-theme=dark] .icon-btn--edit,html[data-theme=dark] .icon-btn--close,html[data-theme=dark] .th-filter__btn,html[data-theme=dark] .search-field__clear,html[data-theme=dark] .sched-chip,html[data-theme=dark] .chip,html[data-theme=dark] .stud-sched__pulse,html[data-theme=dark] .pair-card__tags span,html[data-theme=dark] .day-chip{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}html[data-theme=dark] .admin-table th,html[data-theme=dark] .settings-block,html[data-theme=dark] .tax-card,html[data-theme=dark] .toggle-2fa,html[data-theme=dark] .search-select-sheet__panel,html[data-theme=dark] .stud-week thead th,html[data-theme=dark] .stud-week tbody th,html[data-theme=dark] .sched-table th,html[data-theme=dark] .sched-grid__group,html[data-theme=dark] .sched-grid__paircell,html[data-theme=dark] .perm-grid label,html[data-theme=dark] .admin-bell__item{background:var(--surface-2)!important}html[data-theme=dark] .status-card{background:var(--tint-ok)!important;color:var(--ink)!important}html[data-theme=dark] .status-card--wait,html[data-theme=dark] .nudge-banner,html[data-theme=dark] .slot-subs,html[data-theme=dark] .stud-week tr.is-now td,html[data-theme=dark] .stud-week tr.is-now th{background:var(--tint-warm)!important;color:var(--ink)!important}html[data-theme=dark] .status-card--bad,html[data-theme=dark] .form-alert{background:var(--tint-bad)!important;color:var(--danger)!important}html[data-theme=dark] .form-ok{background:var(--tint-ok)!important;color:var(--ok)!important}html[data-theme=dark] .file-drop__box{background:linear-gradient(180deg, var(--blue-50), var(--surface))!important;color:var(--ink)!important;border-color:var(--line)!important}html[data-theme=dark] h1,html[data-theme=dark] h2,html[data-theme=dark] h3,html[data-theme=dark] label,html[data-theme=dark] .lead,html[data-theme=dark] .field span,html[data-theme=dark] .admin-card .value,html[data-theme=dark] .sidebar__brand strong,html[data-theme=dark] .note-item strong,html[data-theme=dark] .settings-block h3,html[data-theme=dark] .toggle-2fa strong,html[data-theme=dark] .card-stat strong,html[data-theme=dark] .grade-card strong,html[data-theme=dark] .pair-card__time strong,html[data-theme=dark] .admin-hub__item strong,html[data-theme=dark] .admin-hub__col h2,html[data-theme=dark] .btn-ghost,html[data-theme=dark] .linkish-cab,html[data-theme=dark] .profile-edit,html[data-theme=dark] .icon-btn--edit,html[data-theme=dark] .icon-btn--close,html[data-theme=dark] .admin-subnav a:not(.active),html[data-theme=dark] .pair-card__no,html[data-theme=dark] .pair-card__tags span,html[data-theme=dark] .stud-sched__pulse,html[data-theme=dark] .chip,html[data-theme=dark] .sched-chip strong,html[data-theme=dark] .search-field__clear,html[data-theme=dark] .th-filter__btn{color:var(--heading)!important}html[data-theme=dark] .muted,html[data-theme=dark] .field-hint,html[data-theme=dark] .lead,html[data-theme=dark] .card-stat__label,html[data-theme=dark] .admin-hub__item span,html[data-theme=dark] .pair-card__meta .is-muted,html[data-theme=dark] .search-select__list button span,html[data-theme=dark] .search-select__empty,html[data-theme=dark] .search-select__trigger .is-placeholder{color:var(--muted)!important}html[data-theme=dark] .wl-tabs button.is-on,html[data-theme=dark] .settings-choices button.is-on,html[data-theme=dark] .admin-subnav a.active{color:#f4f8fc!important;background:#154f88!important;border-color:#154f88!important}html[data-theme=dark] .sidebar__item.active{color:#f4f8fc!important;background:linear-gradient(135deg,#154f88,#1c64a8)!important}html[data-theme=dark] .day-chip.is-selected{color:#f4f8fc!important;background:linear-gradient(160deg,#154f88,#1c64a8)!important;border-color:#0000!important}html[data-theme=dark] .day-chip.is-selected .day-chip__wd,html[data-theme=dark] .day-chip.is-selected .day-chip__num{color:#f4f8fc!important}html[data-theme=dark] .sched-weeknav button.active{color:#f4f8fc!important;background:linear-gradient(135deg,#1c64a8,#0f3a66)!important}html[data-theme=dark] .btn-primary,html[data-theme=dark] .btn-primary-cab,html[data-theme=dark] .icon-btn--add{color:#f4f8fc!important}html[data-theme=dark] .search-select__list button:hover,html[data-theme=dark] .search-select__list button.is-on,html[data-theme=dark] .admin-table tbody tr:hover td,html[data-theme=dark] .wl-row:hover td,html[data-theme=dark] .admin-hub__item:hover{background:var(--blue-100)!important}html[data-theme=dark] .boot-screen,html[data-theme=dark] body,html[data-theme=dark] .cabinet,html[data-theme=dark] .admin-shell{color:var(--ink);background:var(--page-wash)!important;background-attachment:fixed!important}html[data-theme=dark] .stud-sched__sticky{background:linear-gradient(180deg, var(--bg) 55%, color-mix(in srgb, var(--bg) 88%, transparent))!important}html[data-theme=dark] .note-item.is-unread,html[data-theme=dark] .stud-week__chip,html[data-theme=dark] .slot-block,html[data-theme=dark] .wl-bar__track,html[data-theme=dark] .wl-pct i{background:var(--surface-2)!important}html[data-theme=dark] .grade-pill--g5{background:var(--tint-ok)!important;color:var(--ok)!important}html[data-theme=dark] .grade-pill--g4{background:var(--blue-100)!important;color:var(--heading)!important}html[data-theme=dark] .grade-pill--g3{background:var(--tint-wait)!important;color:var(--orange-400)!important}html[data-theme=dark] .grade-pill--g2{background:var(--tint-bad)!important;color:var(--danger)!important}html[data-theme=dark] .grade-pill--none{background:var(--surface-2)!important;color:var(--muted)!important}html[data-theme=dark] .icon-btn--login{background:var(--tint-ok)!important;color:var(--ok)!important}html[data-theme=dark] .icon-btn--delete{background:var(--tint-bad)!important;color:var(--danger)!important}html[data-theme=dark] .badge{background:var(--blue-100)!important;color:var(--heading)!important}html[data-theme=dark] .badge.sent{background:var(--tint-ok)!important;color:var(--ok)!important}html[data-theme=dark] .badge.failed{background:var(--tint-bad)!important;color:var(--danger)!important}html[data-theme=dark] .badge.pending{background:var(--tint-wait)!important;color:var(--orange-400)!important}html[data-theme=dark] .knd-frame,html[data-theme=dark] .knd-frame iframe,html[data-theme=dark] .sign-preview{background:var(--surface-2)!important}html[data-theme=dark] .btn:not(.btn-primary):not(.icon-btn--add){background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}html[data-theme=dark] .admin-nav,html[data-theme=dark] .admin-nav a,html[data-theme=dark] .admin-nav button.linkish,html[data-theme=dark] .theme-switch{color:#f4f8fc!important}html[data-theme=dark] .admin-nav{background:linear-gradient(#0a2744 0%,#0f3a66 52%,#154f88 100%)!important}.settings-block{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;margin-bottom:22px;padding:16px 18px}.settings-block h3{color:var(--blue-900);margin:0 0 6px;font-size:1.02rem}.settings-block>p{color:var(--muted);margin:0 0 12px;font-size:.88rem}.settings-choices{flex-wrap:wrap;gap:8px;display:flex}.settings-choices button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:8px 14px}.settings-choices button.is-on{border-color:var(--blue-700);background:var(--blue-100);color:var(--blue-900);font-weight:700}.theme-switch{color:#fff;width:100%;font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;padding:8px 10px}.theme-switch:hover{background:#ffffff24}.pf-lead{max-width:68ch;margin:0 0 8px}.pf-law{color:var(--muted);margin:10px 0 0;padding-left:18px}.pf-law li+li{margin-top:6px}.pf-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0;display:grid}.pf-stats div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.pf-stats strong{font-family:var(--font-display);color:var(--heading);font-size:1.4rem;display:block}.pf-stats span,.pf-card p,.pf-audit span{color:var(--muted)}.pf-form,.pf-card,.pf-audit{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:16px;padding:16px}.pf-form h3,.pf-card h3,.pf-audit h3{font-family:var(--font-display);color:var(--heading);margin:0 0 10px}.pf .field,.pf-form .field{flex-direction:column;gap:6px;margin:10px 0;display:flex}.pf .field span,.pf-form .field span{color:var(--muted);font-size:.92rem}.pf .field input,.pf .field select,.pf .field textarea,.pf-form .field input,.pf-form .field select,.pf-form .field textarea{border:1px solid var(--line);width:100%;font:inherit;background:var(--control);color:var(--ink);border-radius:12px;padding:11px 13px}.pf-split{grid-template-columns:1fr 180px;gap:12px;display:grid}.pf-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.btn-ghost-cab{border:1px solid var(--line);background:var(--surface);color:var(--heading);font:inherit;cursor:pointer;border-radius:12px;padding:10px 14px;font-weight:600}.btn-ghost-cab:disabled{opacity:.55;cursor:not-allowed}.pf-card header{justify-content:space-between;align-items:center;gap:8px;display:flex}.pf-card--verified{background:var(--tint-ok)}.pf-card--rejected{background:var(--tint-bad)}.pf-card--submitted{background:var(--tint-wait)}.pf-pill{background:var(--blue-100);color:var(--heading);border-radius:999px;align-items:center;padding:3px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.pf-pill--submitted{background:var(--orange-100);color:var(--orange-600)}.pf-pill--verified{background:var(--tint-ok);color:var(--ok)}.pf-pill--rejected{background:var(--tint-bad);color:var(--danger)}.pf-comment{background:var(--surface-2);border-radius:12px;padding:10px 12px}.pf-reviews,.pf-audit ul,.pf-audit-list{margin:8px 0 0;padding-left:18px}.pf-files{flex-wrap:wrap;gap:8px 14px;margin-top:8px;display:flex}.pf-audit li,.pf-audit-list li{overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:2px;margin:8px 0;display:flex}.pf-audit li strong,.pf-audit-list li strong{display:block}.pf-hero{border-radius:var(--radius);background:linear-gradient(135deg, var(--blue-900), #1c64a8);color:#fff;justify-content:space-between;gap:16px;margin:8px 0 16px;padding:18px 20px;display:flex}.pf-hero h3,.pf-hero p{color:#fff;margin:0}.pf-kicker{letter-spacing:.04em;text-transform:uppercase;opacity:.8;margin:0 0 6px;font-size:.82rem}.pf-hero__side{text-align:right;min-width:140px}.pf-hero__side strong{font-family:var(--font-display);font-size:2rem;line-height:1;display:block}.pf-hero__side span,.pf-hero__side em{opacity:.85;font-style:normal;display:block}.pf-sheet{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pf-sheet article,.pf-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:12px;padding:16px}.pf-sheet__wide{grid-column:1/-1}.pf-sheet h3,.pf-block h3{font-family:var(--font-display);color:var(--heading);margin:0 0 10px}.pf-sheet dl{grid-template-columns:1fr 1fr;gap:8px 16px;margin:0;display:grid}.pf-sheet dt{color:var(--muted);font-size:.78rem}.pf-sheet dd{overflow-wrap:anywhere;margin:0}.pf-block header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pf-list{gap:10px;margin-top:12px;display:grid}.pf-empty{color:var(--muted);margin:10px 0 0}.card-stat--link{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}@media (width<=720px){.pf-stats,.pf-split,.pf-sheet,.pf-sheet dl{grid-template-columns:1fr}.pf-hero,.pf-block header{flex-direction:column}.pf-hero__side{text-align:left}}
