:root{color:var(--text);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;--brand:#087f72;--brand-hover:#06665d;--brand-soft:#e8f5f1;--brand-ink:#086255;--text:#202d35;--text-2:#4b5c64;--muted:#596c74;--bg:#f5f7f8;--surface:#fff;--surface-2:#f8fafb;--border:#e2e8eb;--border-strong:#c5d1d5;--focus:#079c8b;--success:#23734d;--success-soft:#edf7f0;--warning:#8c5a13;--warning-soft:#fff7e8;--danger:#b3383c;--danger-soft:#fdf0f0;--info:#37658e;--info-soft:#edf4fb;--nav-bg:#122d31;--nav-soft:#1e3c40;--nav-text:#c3d2d3;--nav-muted:#93abad;--white:#fff;--overlay:#10292b85;--radius:10px;--radius-sm:6px;--radius-lg:14px;--shadow:0 2px 4px #20353705;--shadow-pop:0 18px 60px #132e3225;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;font:14px/1.55 Segoe UI,Inter,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--text)}h1{letter-spacing:-.8px;font-size:clamp(24px,2.5vw,30px);font-weight:650;line-height:1.25}h2{letter-spacing:-.2px;font-size:16px;font-weight:650;line-height:1.4}h3{font-size:15px;font-weight:600}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button,a{transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s}button:disabled,fieldset:disabled,input:disabled,select:disabled{opacity:.55;cursor:not-allowed}svg{vertical-align:middle;flex-shrink:0}small{color:var(--muted);font-size:12px;font-weight:400}strong{font-weight:600}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:var(--brand-soft);color:var(--brand-ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;color:var(--white);background:var(--brand);border-radius:6px;padding:12px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.primary,.secondary,.ghost,.icon,.destructive,.link{border-radius:var(--radius-sm);text-align:center;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 15px;font-size:13px;font-weight:600;line-height:1.3;display:inline-flex}.primary{background:var(--brand);color:var(--white);border-color:var(--brand);box-shadow:var(--shadow)}.primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.secondary,.icon{background:var(--surface);color:var(--text-2);border-color:var(--border-strong);box-shadow:var(--shadow)}.secondary:hover:not(:disabled),.icon:hover:not(:disabled){background:var(--surface-2);border-color:var(--muted);color:var(--text)}.ghost{color:var(--text-2);background:0 0}.ghost:hover{background:var(--surface-2);color:var(--text)}.icon{flex-shrink:0;width:38px;min-height:38px;padding:0}.link{color:var(--brand-ink);background:0 0;border:0;min-height:32px;padding:0}.link:hover{text-underline-offset:4px;text-decoration:underline}.danger{color:var(--danger)}.destructive{background:var(--danger);color:var(--white)}.destructive:hover:not(:disabled){box-shadow:inset 0 0 0 30px #00000018}.compact{min-height:32px;padding-inline:10px;font-size:12px}.big{min-height:46px;padding-inline:20px;font-size:14px}.actions,.row-actions,.head-actions,.title-action,.flow-actions,.dialog-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-actions{gap:12px}.title-action{justify-content:flex-end}.title-action>.primary+.primary{background:var(--surface);color:var(--brand-ink);border-color:var(--border-strong)}.muted,.support-note{color:var(--muted)}.support-note{margin-top:14px;font-size:12px;display:block}.inline-icon{align-items:center;gap:7px;display:inline-flex}.inline-icon svg{color:var(--muted)}.inline-success{color:var(--success);align-items:center;gap:5px;font-size:12px;display:flex}.logo{white-space:nowrap;align-items:center;gap:9px;display:inline-flex}.logo>span{background:var(--brand);width:34px;height:34px;color:var(--white);border-radius:9px;place-items:center;display:grid}.logo strong{letter-spacing:-.8px;font-size:21px;font-weight:650}.logo-word{font-weight:400}.app{grid-template-columns:236px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{background:var(--nav-bg);height:100svh;color:var(--nav-text);scrollbar-width:thin;scrollbar-color:var(--nav-soft) transparent;flex-direction:column;padding:24px 14px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar .logo{color:var(--white)}.aside-head{justify-content:space-between;align-items:center;padding:0 10px 24px;display:flex}.workspace-switch{border:1px solid var(--nav-soft);border-radius:6px;align-items:center;gap:10px;margin:0 4px 13px;padding:12px 10px;display:flex}.workspace-switch>span{background:var(--nav-soft);border-radius:5px;place-items:center;width:30px;height:32px;display:grid}.workspace-switch div{min-width:0}.workspace-switch strong{color:var(--white);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.workspace-switch small{color:var(--nav-muted);font-size:11px}.nav-section{color:var(--nav-muted);letter-spacing:1.2px;text-transform:uppercase;margin:16px 12px 7px;font-size:10px;font-weight:600}.nav{min-height:38px;color:var(--nav-text);border-radius:6px;align-items:center;gap:11px;margin:3px 0;padding:8px 12px;font-size:12.5px;display:flex}.nav svg{opacity:.8}.nav:hover{background:var(--nav-soft);color:var(--white)}.nav.active{background:var(--brand);color:var(--white);font-weight:600}.nav.active svg{opacity:1}.nav-indicator{background:var(--white);border-radius:50%;width:5px;height:5px;margin-left:auto}.sidebar-footer{margin-top:auto;padding-top:26px}.workspace-note{color:var(--nav-muted);align-items:center;gap:10px;padding:14px 10px;font-size:11px;line-height:1.6;display:flex}.workspace-note strong{color:var(--nav-text);font-weight:400}.sidebar-profile{border-top:1px solid var(--nav-soft);align-items:center;gap:9px;padding:16px 8px 8px;display:flex}.sidebar-profile div{flex:1;min-width:0}.sidebar-profile strong{color:var(--white);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.sidebar-profile small{color:var(--nav-muted);font-size:10px}.initials{background:var(--brand-soft);width:34px;height:34px;color:var(--brand-ink);text-transform:uppercase;border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;font-weight:650;display:inline-grid}.logout{color:var(--nav-muted);justify-content:start;width:100%;min-height:34px;font-size:12px}.logout:hover{background:var(--nav-soft);color:var(--white)}.app-body{flex-direction:column;min-width:0;display:flex}.topbar{z-index:10;border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:12px 32px;display:flex;position:sticky;top:0}.header-context,.breadcrumbs{align-items:center;gap:12px;min-width:0;display:flex}.breadcrumbs{color:var(--muted);gap:10px;font-size:12px}.breadcrumbs span{color:var(--text);font-weight:500}.breadcrumbs a:hover{color:var(--brand)}.header-date{color:var(--muted);margin-right:10px;font-size:12px}.content{flex:1;width:min(1440px,100%);min-width:0;margin:0 auto;padding:32px}.content>section{min-width:0}.content:focus{outline:none}.title{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.page-description{max-width:640px;color:var(--muted);margin-top:7px;font-size:13px}.workspace-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;margin:12px 32px 0;padding:18px 0;font-size:11px;display:flex}.workspace-footer span:first-child{font-weight:650}.mobile{display:none}.nav-drawer{background:var(--nav-bg);border:0;width:min(300px,86vw);max-width:none;height:100svh;max-height:none;margin:0;padding:0}.nav-drawer::backdrop,.modal::backdrop{background:var(--overlay)}.drawer-sidebar{width:100%;display:flex!important}.panel,.form-card,.table-shell,.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.panel{align-content:start;gap:18px;padding:22px;display:grid}.panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel p{color:var(--muted);font-size:13px}.panel>.secondary{justify-self:start}.split{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}.stack{gap:20px;display:grid}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.metric{padding:20px 22px}.metric-top{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.metric-top svg{color:var(--brand)}.metric>strong{letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:13px 0 7px;font-size:34px;font-weight:600;line-height:1.2;display:block}.metric>small{font-size:11px}.metric-featured{background:var(--brand-soft);border-color:var(--brand-soft)}.metric-featured .metric-top,.metric-featured strong{color:var(--brand-ink)}.dashboard-lower{margin-top:24px}.activity-list{margin:0;padding:0;list-style:none}.activity-list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:17px 0;display:flex}.activity-list li:first-child{padding-top:4px}.activity-list li:last-child{border:0;padding-bottom:0}.activity-list li>div{flex:1;min-width:0}.activity-list strong{font-size:13px;display:block}.activity-list small{font-size:11px;display:block}.workspace-intro{border-bottom:1px solid var(--border);gap:9px;padding:4px 0 16px;display:grid}.workspace-intro svg{color:var(--brand);margin-bottom:3px}.quick-links{gap:12px;display:grid}.quick-links>a{border:1px solid var(--border);background:var(--surface);border-radius:6px;align-items:center;gap:12px;padding:15px;display:flex}.quick-links>a:hover{background:var(--brand-soft);border-color:var(--brand)}.quick-links>a>div{flex:1;min-width:0}.quick-links strong,.quick-links small{display:block}.quick-links strong{font-size:13px}.quick-links>a>svg{color:var(--muted)}.panel .quick-links>a{border:0;padding:6px 0}.panel .quick-links>a:hover{background:var(--surface-2)}.feature-icon,.table-symbol,.state-icon{color:var(--brand);background:var(--brand-soft);border-radius:6px;flex-shrink:0;place-items:center;display:inline-grid}.feature-icon{width:42px;height:42px}.table-symbol{background:var(--surface-2);width:34px;height:36px}.section-label{align-items:center;gap:9px;margin:24px 0 14px;display:flex}.section-label svg{color:var(--brand)}.student-summary>.quick-links{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-hero{gap:19px;padding:8px 0;display:grid}.attendance-number{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.attendance-number>strong{letter-spacing:-2px;font-size:56px;font-weight:600;line-height:1.1}.attendance-number>strong>span{color:var(--muted);margin-left:4px;font-size:28px}.attendance-hero .support-note{margin:0}.attendance-progress{appearance:none;background:var(--border);border:0;border-radius:10px;width:100%;height:8px;display:block;overflow:hidden}.attendance-progress::-webkit-progress-bar{background:var(--border)}.attendance-progress::-webkit-progress-value{background:var(--brand);border-radius:10px}.attendance-progress::-moz-progress-bar{background:var(--brand);border-radius:10px}.summary-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.summary-list li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 0;font-size:13px;display:flex}.summary-list li:last-child{border:0}.summary-list li>strong,.summary-list li>.status{margin-left:auto}.summary-list li>strong{font-size:21px;font-weight:600}.summary-list .feature-icon{width:33px;height:33px}.summary-list a:hover{color:var(--brand)}.next-step,.setup-intro{background:var(--brand-soft);border:1px solid var(--border);border-radius:10px;align-items:center;gap:18px;margin:24px 0;padding:22px;display:flex}.next-step>div,.setup-intro>div{flex:1}.next-step p,.setup-intro p{color:var(--text-2);margin-top:4px;font-size:13px}.attendance-strip{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:32px;margin-bottom:24px;padding:24px 28px;display:flex}.attendance-strip>div:first-child>span{color:var(--muted);font-size:12px;display:block}.attendance-strip strong{letter-spacing:-1px;font-size:40px}.attendance-strip strong small{margin-left:3px;font-size:22px}.attendance-strip-detail{flex:1;max-width:440px}.attendance-strip-detail p{margin:10px 0 2px;font-size:13px}.attendance-strip>svg{color:var(--brand);margin-left:auto}.filter-bar{margin-bottom:20px}.filter-heading{color:var(--muted);align-items:center;gap:16px;margin-bottom:12px;font-size:12px;display:flex}.filter-heading>span{align-items:center;gap:7px;display:flex}.filter-heading b{background:var(--brand-soft);min-width:19px;height:19px;color:var(--brand-ink);border-radius:5px;place-items:center;font-size:10px;display:grid}.filter-heading .link{min-height:24px;font-size:12px}.mobile-filter{display:none}.filters{flex-wrap:wrap;gap:12px;display:flex}.filters label{min-width:120px;max-width:300px;color:var(--muted);flex:145px;gap:6px;font-size:11px;display:grid}.filters label:has(input[type=search]){flex-basis:175px}.input-wrap{min-width:0;position:relative}input:not([type=checkbox]):not([type=file]),textarea,select{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:42px;color:var(--text);border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.5;transition:border-color .15s,box-shadow .15s;display:block}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--muted)}input:focus,textarea:focus,select:focus{outline:2px solid var(--brand-soft);outline-offset:1px;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}textarea{resize:vertical;min-height:100px}select{padding-right:26px}.search-wrap>svg{color:var(--muted);position:absolute;top:13px;left:12px}.search-wrap input{padding-left:36px!important}.field{align-content:start;gap:7px;min-width:0;display:grid}.field>label,.field>span{color:var(--text-2);font-size:12px;font-weight:600}.field small{font-size:11px;line-height:1.5}.field small:empty{display:none}.field-error,.required{color:var(--danger)}.form{gap:24px;display:grid}.form-section{border:0;min-width:0;margin:0;padding:0}.form-section legend{border-bottom:1px solid var(--border);width:100%;color:var(--text);margin-bottom:18px;padding:0 0 14px;font-size:13px;font-weight:650}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;display:grid}.field-wide{grid-column:1/-1}.field-check{grid-column:1/-1;grid-template-columns:22px 1fr;align-items:center}.field-check input{grid-area:1/1}.field-check label,.field-check small{grid-column:2}.form-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-top:20px;display:flex}.form-note{color:var(--muted);font-size:11px}.input-wrap:has(.password-toggle) input{padding-right:46px}.password-toggle{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:4px;position:absolute;top:3px;right:3px}.password-toggle:hover{background:var(--surface-2)}.table-shell{overflow:hidden}.table-scroll{scrollbar-width:thin;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;min-width:640px}th{background:var(--surface-2);color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:13px 20px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-2);overflow-wrap:anywhere;max-width:350px;padding:18px 20px;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-2)}td>strong,.cell-stack strong{color:var(--text);font-weight:600}.cell-title{align-items:center;gap:10px;min-width:130px;display:flex}.cell-stack{gap:3px;display:grid}.cell-stack small{font-size:11px;line-height:1.5}.cell-stack p{color:var(--muted);margin-top:3px;font-size:12px;font-weight:400}.record-id{color:var(--muted);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-size:10px}code{font-family:Cascadia Code,Consolas,monospace;font-size:11px}.pager{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;font-size:11px;display:flex}.pager strong{color:var(--text-2)}.pager-actions{align-items:center;gap:12px;display:flex}.pager .icon{width:30px;min-height:30px}.status{background:var(--surface-2);width:fit-content;min-height:24px;color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:5px;align-items:center;gap:6px;padding:3px 8px;font-size:10px;font-weight:600;line-height:1.5;display:inline-flex}.status-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.status:is(.active,.approved,.present,.completed,.registered,.ready,.available){color:var(--success);background:var(--success-soft);border-color:#0000}.status:is(.pending,.late){color:var(--warning);background:var(--warning-soft);border-color:#0000}.status:is(.scheduled,.ongoing){color:var(--info);background:var(--info-soft);border-color:#0000}.status:is(.rejected,.absent,.cancelled){color:var(--danger);background:var(--danger-soft);border-color:#0000}.day-tag{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:4px 9px;font-size:11px;display:inline-block}.callout{border:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:11px;margin:16px 0;padding:15px 17px;font-size:12px;display:flex}.callout>svg{margin-top:1px}.callout strong{font-size:12px;font-weight:600}.callout p{color:inherit;opacity:1;margin-top:3px;font-size:12px}.callout.info{color:var(--info);background:var(--info-soft);border-color:#0000}.callout.warn{color:var(--warning);background:var(--warning-soft);border-color:#0000}.callout.danger{color:var(--danger);background:var(--danger-soft);border-color:#0000}.callout.ok{color:var(--success);background:var(--success-soft);border-color:#0000}.form>.callout,.panel>.callout{margin:0}.state{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-items:center;gap:10px;padding:56px 24px;display:grid}.state-icon{border-radius:12px;width:54px;height:54px;margin-bottom:6px}.state h2{font-size:15px}.state p{max-width:340px;color:var(--muted);font-size:12px}.state .secondary{margin-top:8px}.error-state .state-icon{background:var(--danger-soft);color:var(--danger)}.panel>.state{border:0;padding:36px 12px}.rows{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:8px 20px;display:grid;overflow:hidden}.skeleton-row{border-bottom:1px solid var(--border);grid-template-columns:2fr 1fr .7fr;gap:32px;padding:22px 0;display:grid}.skeleton-row:last-child{border:0}.skeleton-row span,.skeleton-line,.skeleton-number{background:var(--border);border-radius:4px;height:12px;animation:1.5s ease-in-out infinite pulse;display:block}.skeleton-line{width:70%}.skeleton-number{width:45%;height:35px;margin-top:20px}.skeleton-metrics{margin-bottom:24px}.modal{border:1px solid var(--border);background:var(--surface);width:min(680px,100% - 32px);max-height:calc(100svh - 40px);box-shadow:var(--shadow-pop);color:var(--text);border-radius:14px;padding:0}.modal-head{border-bottom:1px solid var(--border);background:var(--surface);z-index:1;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 28px 20px;display:flex;position:sticky;top:0}.modal-head h2{font-size:20px}.modal-head p{color:var(--muted);margin-top:5px;font-size:12px}.modal-head .icon{box-shadow:none;background:var(--surface-2);border:0}.modal-body{padding:24px 28px}.dialog-actions{border-top:1px solid var(--border);justify-content:flex-end;margin-top:24px;padding-top:20px}.credential-box{gap:12px;margin:20px 0;display:grid}.credential-box>div{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:15px}.credential-box dt{color:var(--muted);font-size:11px}.credential-box dd{overflow-wrap:anywhere;margin:5px 0 0;font-family:Consolas,monospace;font-size:14px}.timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.timeline>a{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:22px}.timeline>a:hover{border-color:var(--brand);box-shadow:var(--shadow)}.setup-top{color:var(--brand);justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.step-number{color:var(--muted);font-size:11px;font-weight:600}.timeline p{color:var(--muted);min-height:38px;margin:7px 0 20px;font-size:12px}.setup-action{color:var(--brand-ink);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:16px;font-size:12px;font-weight:600;display:flex}.records{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.records>li{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0;padding:22px}.list-caption{color:var(--muted);margin:-6px 0 16px;font-size:12px}.course-card-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.course-code{color:var(--brand-ink);font-size:12px;font-weight:650}.course-card h2{margin-bottom:8px;font-size:19px}.course-meta{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:20px;padding-top:16px;font-size:12px;display:flex}.timetable-card .schedule-time{color:var(--text-2);justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;font-size:12px;display:flex}.timetable-card h2{margin-top:8px}.notification-cell{gap:12px;display:flex}.notification-cell.unread .table-symbol{background:var(--brand-soft)}.notification-cell.unread strong:after{content:"";background:var(--brand);border-radius:50%;width:6px;height:6px;margin-left:8px;display:inline-block}.audit-details{min-width:110px}.audit-details summary{color:var(--brand-ink);cursor:pointer;padding-block:8px;font-size:12px}.audit-details pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;max-width:340px;max-height:300px;padding:14px;font-size:11px;overflow:auto}.mobile-flow{gap:20px;max-width:800px;margin-inline:auto;display:grid}.mobile-flow .title{margin-bottom:4px}.mobile-flow .callout{margin:0}.mobile-flow .support-note{text-align:center;margin:0}.checkin-steps{grid-template-columns:repeat(4,1fr);gap:8px;margin:2px 0 8px;padding:0;list-style:none;display:grid}.checkin-steps li{border-bottom:2px solid var(--border);color:var(--muted);align-items:center;gap:8px;padding-bottom:14px;font-size:12px;display:flex}.checkin-steps li>span{border:1px solid var(--border-strong);border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;display:grid}.checkin-steps .current,.checkin-steps .done{border-color:var(--brand);color:var(--brand-ink);font-weight:600}.checkin-steps .current>span{background:var(--brand);border-color:var(--brand);color:var(--white)}.checkin-steps .done>span{background:var(--brand-soft);border:0}.file-box{gap:10px;display:grid}.upload{border:1px dashed var(--border-strong);background:var(--surface-2);text-align:center;border-radius:10px;justify-items:center;gap:8px;padding:28px 20px;display:grid;position:relative}.upload:hover{border-color:var(--brand);background:var(--brand-soft)}.upload:focus-within{outline:3px solid var(--focus);outline-offset:3px}.upload>strong{overflow-wrap:anywhere;max-width:100%;font-size:13px}.upload>small{font-size:11px}.upload .secondary{margin-top:7px}.upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.camera-frame{background:var(--brand-soft);width:68px;height:68px;color:var(--brand);border-radius:50%;place-items:center;margin-bottom:8px;display:grid}.camera-frame:has(img){aspect-ratio:4/3;border-radius:6px;width:min(260px,100%);height:auto;overflow:hidden}.camera-frame img{object-fit:contain;width:100%;height:100%}.checkin-camera{justify-items:start;gap:12px;display:grid}.checkin-camera-frame{aspect-ratio:4/3;border:1px solid var(--border-strong);background:var(--surface-2);border-radius:10px;place-items:center;width:min(100%,420px);display:grid;position:relative;overflow:hidden}.checkin-camera-frame video,.checkin-camera-frame img{object-fit:cover;width:100%;height:100%}.checkin-camera-frame>span{color:var(--muted);text-align:center;justify-items:center;gap:8px;font-size:13px;display:grid;position:absolute}.photo-guidance{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:15px;font-size:12px;display:flex}.photo-guidance span{align-items:center;gap:7px;display:flex}.photo-guidance svg{color:var(--brand)}.flow-actions{background:var(--surface);border:1px solid var(--border);z-index:2;box-shadow:var(--shadow);border-radius:10px;justify-content:space-between;padding:16px;position:sticky;bottom:12px}.result-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;justify-items:center;gap:16px;padding:48px 28px;display:grid}.result-card>svg{color:var(--success)}.result-card h2{font-size:24px}.result-card p{color:var(--muted);max-width:400px}.result-card .primary{margin-top:8px}.profile-banner{background:var(--brand-soft);border:1px solid var(--border);border-radius:10px;align-items:center;gap:20px;margin-bottom:24px;padding:28px;display:flex}.profile-avatar{background:var(--surface);border:4px solid var(--surface);width:72px;height:72px;color:var(--brand);border-radius:50%;place-items:center;font-size:25px;display:grid}.profile-banner>div{flex:1;min-width:0}.profile-banner h2{font-size:23px}.profile-banner p{color:var(--text-2);overflow-wrap:anywhere;margin:4px 0 8px}.profile-banner>svg{color:var(--brand);opacity:.6}.details{margin:0}.details>div{border-bottom:1px solid var(--border);grid-template-columns:140px minmax(0,1fr);gap:16px;padding:18px 0;font-size:13px;display:grid}.details>div:last-child{border:0}.details dt{color:var(--muted)}.details dd{overflow-wrap:anywhere;margin:0}.boot{background:var(--bg);place-content:center;justify-items:center;gap:24px;min-height:100svh;display:grid}.boot p{color:var(--muted);font-size:13px}.boot-loader{background:var(--border);border-radius:3px;width:200px;height:3px;overflow:hidden}.boot-loader:after{content:"";background:var(--brand);width:40%;height:100%;animation:1.4s infinite slide;display:block}.public{background:var(--surface);min-height:100svh;padding:0 40px}.public>nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;max-width:1160px;min-height:86px;margin:auto;display:flex}.public nav>div{align-items:center;gap:9px;display:flex}.eyebrow{color:var(--brand-ink);letter-spacing:1.8px;text-transform:uppercase;margin-bottom:14px;font-size:10px;font-weight:650}.landing-hero{grid-template-columns:minmax(0,1fr) minmax(0,.88fr);align-items:center;gap:70px;max-width:1160px;margin:0 auto;padding:86px 0 76px;display:grid}.hero-copy h1{letter-spacing:-2.5px;font-size:clamp(38px,4.5vw,62px);font-weight:600;line-height:1.1}.hero-copy h1 em{color:var(--brand);font-style:normal}.lead{color:var(--muted);max-width:490px;margin:24px 0 27px;font-size:15px;line-height:1.8}.hero-trust{color:var(--muted);flex-wrap:wrap;gap:13px;margin-top:26px;font-size:10px;display:flex}.hero-trust span{align-items:center;gap:5px;display:flex}.hero-trust svg{color:var(--brand);width:13px}.product-preview{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:12px;padding:22px;position:relative}.preview-topbar{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding-bottom:16px;font-size:12px;display:flex}.preview-topbar>span{background:var(--brand);border-radius:50%;width:7px;height:7px}.preview-topbar small{color:var(--muted);margin-left:auto;font-size:9px}.preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px;display:grid}.preview-grid article{background:var(--surface-2);border:1px solid var(--border);border-radius:7px;gap:8px;padding:12px;display:grid}.preview-grid article:first-child{background:var(--brand-soft);border-color:var(--brand-soft)}.preview-grid svg{color:var(--brand)}.preview-grid span{color:var(--muted);font-size:9px}.preview-grid strong{letter-spacing:-.7px;font-size:26px;line-height:1.2}.preview-session{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding:16px 0;display:flex}.preview-session strong{font-size:12px;display:block}.preview-session div>span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.preview-list{color:var(--text-2);gap:12px;padding-top:18px;font-size:11px;display:grid}.preview-list>span{align-items:center;gap:9px;display:flex}.preview-list svg{color:var(--brand)}.preview-caption{border-top:1px solid var(--border);color:var(--muted);text-align:center;margin-top:16px;padding-top:12px;font-size:10px}.role-entry-section,.workflow-section,.landing-band{border-top:1px solid var(--border);max-width:1160px;margin:0 auto;padding:54px 0}.section-heading{max-width:560px;margin-bottom:28px}.section-heading h2{letter-spacing:-.8px;font-size:28px;font-weight:600;line-height:1.25}.role-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.role-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;gap:12px;padding:26px;display:grid}.role-card:hover{border-color:var(--brand);background:var(--surface-2)}.role-card>svg{color:var(--brand);margin-bottom:10px}.role-card>strong{font-size:18px;font-weight:600}.role-card p{color:var(--muted);font-size:13px;line-height:1.7}.role-card>span{color:var(--brand-ink);justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;font-weight:600;display:flex}.workflow-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;display:grid}.card{align-content:start;gap:11px;padding:0;display:grid}.card svg{color:var(--brand);margin-bottom:8px}.card strong{font-size:14px}.card p{color:var(--muted);font-size:12px;line-height:1.7}.landing-band{background:var(--brand-soft);border:0;border-radius:14px;justify-content:space-between;align-items:center;gap:36px;margin-block:30px 64px;padding:38px;display:flex}.landing-band h2{letter-spacing:-.6px;font-size:26px;font-weight:600}.landing-band p:not(.eyebrow){color:var(--text-2);max-width:580px;margin-top:12px;font-size:13px}.landing-band .primary{flex-shrink:0}.public-footer{border-top:1px solid var(--border);max-width:1160px;color:var(--muted);justify-content:space-between;align-items:center;margin:auto;padding:24px 0;font-size:11px;display:flex}.auth-public{background:var(--bg)}.auth-shell{border:1px solid var(--border);background:var(--surface);max-width:1000px;box-shadow:var(--shadow);border-radius:14px;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);margin:54px auto;display:grid;overflow:hidden}.auth-panel{background:var(--nav-bg);color:var(--nav-text);flex-direction:column;align-items:flex-start;padding:48px 36px;display:flex}.auth-icon{background:var(--nav-soft);width:52px;height:52px;color:var(--nav-text);border-radius:12px;place-items:center;margin-bottom:42px;display:grid}.auth-panel .eyebrow{color:var(--nav-muted)}.auth-panel h2{letter-spacing:-1px;color:var(--white);margin-bottom:20px;font-size:34px;font-weight:500;line-height:1.2}.auth-panel p:not(.eyebrow){color:var(--nav-text);font-size:13px;line-height:1.8}.auth-panel ul{border-top:1px solid var(--nav-soft);gap:16px;width:100%;margin:28px 0 0;padding:28px 0 0;font-size:12px;list-style:none;display:grid}.auth-panel li{align-items:center;gap:10px;display:flex}.auth-panel li svg{color:var(--nav-muted)}.auth-card{box-shadow:none;border:0;border-radius:0;padding:40px}.auth-heading{margin-bottom:28px}.auth-heading h1{letter-spacing:-.7px;font-size:26px}.auth-heading>p:not(.eyebrow){color:var(--muted);margin-top:10px;font-size:12px}.auth-card .form-grid{grid-template-columns:1fr}.auth-card .form-footer{border:0;flex-direction:column-reverse;padding-top:4px}.auth-card .form-footer .primary{width:100%;min-height:44px}.auth-card .form-note{display:none}.auth-links{text-align:center;border-top:1px solid var(--border);justify-items:center;gap:8px;margin-top:28px;padding-top:22px;display:grid}.auth-links .link{font-size:11px}.auth-shell.request-shell{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);max-width:1160px}.request-shell .auth-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.request-shell .auth-panel{padding:40px 30px}.request-shell .auth-panel h2{font-size:30px}.public.small{background:var(--bg);align-content:center;justify-items:center;gap:28px;padding:28px;display:grid}.simple-brand{color:var(--brand-ink);letter-spacing:-.8px;font-size:22px;font-weight:650}.form-card.center{text-align:center;justify-items:center;gap:20px;width:100%;max-width:500px;padding:44px 32px;display:grid}.center p{color:var(--muted);overflow-wrap:anywhere;max-width:100%}@keyframes pulse{50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide{to{transform:translate(250%)}}.spin{animation:1s linear infinite spin}@media (width>=1600px){.metrics:has(.metric:nth-child(6)){grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width<=1180px){.app{grid-template-columns:216px minmax(0,1fr)}.content{padding:26px}.topbar{padding-inline:26px}.split{grid-template-columns:minmax(0,1fr)}.student-summary>.quick-links{grid-template-columns:1fr}.dashboard-lower{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.activity-list li{flex-wrap:wrap}.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-hero{gap:36px}.hero-copy h1{font-size:46px}.auth-card{padding:32px}}@media (width<=960px){.app{grid-template-columns:minmax(0,1fr)}.app>.sidebar{display:none}.mobile{display:inline-flex}.drawer-sidebar .icon{background:var(--nav-soft);color:var(--nav-text);border:0}.content{padding:28px}.landing-hero{grid-template-columns:1fr 1fr;gap:30px;padding-block:58px}.hero-copy h1{font-size:40px}.public{padding-inline:26px}.hero-trust{gap:9px}.auth-shell,.auth-shell.request-shell{grid-template-columns:minmax(0,1fr);max-width:700px;margin-block:30px}.auth-panel{padding:28px 32px}.auth-icon,.auth-panel ul{display:none}.auth-panel h2,.request-shell .auth-panel h2{margin-bottom:10px;font-size:26px}.auth-panel .eyebrow{margin-bottom:8px}.auth-panel p:not(.eyebrow){font-size:12px}.request-shell .auth-panel{padding:28px 32px}.auth-shell:not(.request-shell) .auth-card{width:100%;max-width:560px;margin:auto}}@media (width<=720px){.content{padding:22px 18px}.topbar{min-height:62px;padding:12px 18px}.breadcrumbs a,.breadcrumbs>svg,.header-date{display:none}.breadcrumbs{font-size:12px}.head-actions{gap:8px}.title{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}.title h1{font-size:26px}.title-action{justify-content:flex-start;gap:8px;width:100%}.title-action .primary{min-height:42px}.page-description{font-size:12px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{padding:17px}.metric>strong{font-size:30px}.metric-top{font-size:11px}.metric-top svg{width:17px}.metric>small{font-size:10px}.dashboard-lower,.split{grid-template-columns:minmax(0,1fr);gap:18px}.panel{padding:20px}.panel-head{gap:8px}.panel-head .link{font-size:11px}.next-step{flex-wrap:wrap;padding:20px}.next-step>div{flex-basis:calc(100% - 65px)}.next-step .primary{width:100%}.attendance-strip{gap:20px;padding:20px}.attendance-strip>svg{display:none}.attendance-strip strong{font-size:32px}.attendance-strip-detail p{font-size:11px}.filter-heading{min-height:40px;margin-bottom:0}.mobile-filter{min-height:40px;margin-left:auto;font-size:12px;display:inline-flex}.filters{padding-top:10px;display:none}.filter-bar.expanded .filters{display:flex}.filters label{flex:calc(50% - 12px);max-width:none}input:not([type=checkbox]):not([type=file]),textarea,select{min-height:44px;font-size:16px}.filter-bar{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:6px 12px}.pager{flex-wrap:wrap;padding:14px 16px}.pager-actions{gap:10px;margin-left:auto}.pager .icon{width:38px;min-height:38px}th,td{padding:14px 16px}table{min-width:640px}.timeline{gap:12px}.timeline>a{padding:18px}.setup-intro{flex-wrap:wrap;padding:18px}.setup-intro .status{margin-left:60px}.records,.form-grid,.request-shell .auth-card .form-grid{grid-template-columns:1fr}.form-footer{text-align:center;flex-direction:column-reverse;align-items:stretch}.modal{width:calc(100% - 24px);max-height:calc(100svh - 24px)}.modal-head,.modal-body{padding:20px}.dialog-actions{flex-wrap:wrap}.dialog-actions>button{flex:1;min-height:44px}.flow-actions{gap:8px;padding:12px;bottom:8px}.flow-actions>*{flex:1;min-height:44px;padding-inline:8px;font-size:12px}.checkin-steps{gap:8px}.checkin-steps li{flex-direction:column;align-items:flex-start;gap:7px;font-size:11px}.photo-guidance{gap:9px;font-size:10px}.photo-guidance svg{width:16px}.profile-banner{gap:14px;padding:22px}.profile-banner>svg{display:none}.profile-avatar{width:55px;height:55px;font-size:20px}.profile-banner h2{font-size:20px}.profile-banner p{font-size:12px}.details>div{grid-template-columns:1fr;gap:5px}.workspace-footer{margin-inline:18px}.public{padding-inline:20px}.public>nav{flex-wrap:wrap;gap:12px;min-height:78px;padding-block:16px}.public .logo strong{font-size:19px}.public nav>div{gap:3px}.public nav .ghost,.public nav .primary{min-height:38px;padding-inline:10px;font-size:11px}.landing-hero{grid-template-columns:1fr;gap:40px;padding-block:44px}.hero-copy h1{letter-spacing:-1.5px;font-size:clamp(38px,8vw,52px)}.lead{margin-block:20px;font-size:14px}.hero-trust{gap:12px;font-size:10px}.product-preview{width:100%;max-width:500px;margin-inline:auto;padding:18px}.role-entry-section,.workflow-section{padding-block:36px}.section-heading h2{font-size:25px}.role-cards{grid-template-columns:1fr;gap:14px}.role-card{padding:22px}.workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.landing-band{flex-direction:column;align-items:flex-start;gap:24px;margin:20px 0 40px;padding:26px}.landing-band h2{font-size:25px}.landing-band .primary{width:100%;font-size:12px}.public-footer{flex-wrap:wrap;gap:8px}.auth-shell{margin-block:24px}.auth-panel,.request-shell .auth-panel,.auth-card{padding:26px}.auth-heading h1{font-size:24px}.auth-heading{margin-bottom:24px}}@media (width<=400px){.timeline{grid-template-columns:1fr}.public>nav>div{justify-content:space-between;width:100%}.hero-copy .actions{flex-direction:column;align-items:stretch}.preview-grid{gap:7px}.preview-grid article{padding:9px}.summary-list li{font-size:11px}.summary-list .status{font-size:9px}.attendance-number>strong{font-size:46px}.pager-actions{margin-left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.public.small.embedded-state{min-height:60svh;padding:28px 0}.back-link{margin-bottom:18px}.review-banner{background:var(--brand-soft);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:16px;margin-bottom:24px;padding:22px;display:flex}.review-banner>div:first-of-type{flex:1;min-width:0}.review-banner h2{overflow-wrap:anywhere;font-size:21px}.review-banner p{color:var(--text-2);margin-top:4px;font-size:12px}.review-submitted{text-align:right;gap:3px;font-size:12px;display:grid}.request-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.review-sidebar{min-width:0;position:sticky;top:88px}.review-sidebar .primary,.review-sidebar .secondary{width:100%}.review-reference{border-top:1px solid var(--border);gap:5px;padding-top:16px;display:grid}.review-reference code{overflow-wrap:anywhere;color:var(--muted)}.request-details>div{padding:13px 0}.detail-link{color:var(--brand-ink);overflow-wrap:anywhere}.detail-link:hover{text-underline-offset:3px;text-decoration:underline}.detail-link svg{margin-left:5px}.request-message{white-space:pre-wrap;overflow-wrap:anywhere}.rejection-preview{background:var(--surface-2);border-radius:var(--radius-sm);padding:18px}.decision-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.decision-layout .request-details>div{grid-template-columns:1fr;gap:3px;padding:10px 0}@media (width<=1180px){.request-layout,.decision-layout{grid-template-columns:minmax(0,1fr)}.review-sidebar{position:static}}@media (width<=720px){.review-banner{flex-wrap:wrap;padding:18px}.review-banner h2{font-size:18px}.review-submitted{text-align:left;border-top:1px solid var(--border-strong);flex-basis:100%;padding-top:12px}.request-layout{gap:18px}}.audit-change-list{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;min-width:180px;padding:12px}.audit-change-list dt{font-weight:600}.audit-change-list dd{margin:4px 0 12px}.audit-change-list div:last-child dd{margin-bottom:0}.setup-guide{max-width:1000px}.guide-preparation{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-block:24px;padding:24px}.guide-preparation p{margin-block:12px;line-height:1.7}.guide-index{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin-block:24px;display:grid}.guide-index a{color:var(--brand-ink);text-underline-offset:4px;padding:8px;text-decoration:underline}.guide-steps{gap:20px;display:grid}.guide-step{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:24px;scroll-margin-top:100px}.guide-step-heading{align-items:flex-start;gap:16px;display:flex}.guide-step-heading p{margin-top:8px;line-height:1.6}.guide-step dl{gap:16px;margin-block:20px;display:grid}.guide-step dt{margin-bottom:4px;font-weight:600}.guide-step dd{margin:0;line-height:1.7}.guide-example{background:var(--surface-2);border-left:3px solid var(--brand-ink);border-radius:4px;padding:16px}@media (width<=600px){.guide-index{grid-template-columns:1fr}.guide-step,.guide-preparation{padding:18px}.guide-step .secondary{width:100%}}.overview-setup{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:22px 24px;display:flex}.overview-setup h2{font-size:17px}.overview-setup p{max-width:640px;margin-top:6px;line-height:1.6}.overview-setup>a{flex-shrink:0}@media (width<=720px){.overview-setup{flex-direction:column;align-items:stretch;gap:16px;padding:18px}}.option-list{gap:8px;margin-top:14px;display:grid}.option-row{text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.option-row:hover,.option-row.selected{border-color:var(--brand);background:var(--brand-soft)}.compact-records li{justify-content:space-between;align-items:center;gap:16px;display:flex}.face-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border));background:color-mix(in srgb, var(--danger) 8%, var(--surface));border-radius:10px;align-items:flex-start;gap:12px;padding:14px;display:flex}.face-error svg{color:var(--danger);flex-shrink:0}.face-error h2{margin-bottom:6px;font-size:15px}.face-error-detail{color:var(--text);font-weight:650}.face-error-solution{color:var(--muted);margin-top:6px}
