:root{--background:#f6f7fb;--surface:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#2563eb}*{box-sizing:border-box}body{background:var(--background);color:var(--text);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.sidebar-scroll-locked{overflow:hidden}button,input,select{font:inherit}.app-shell{min-height:100vh;display:flex}.app-shell.sidebar-closed .sidebar{margin-left:-280px}.app-shell.sidebar-closed .sidebar-backdrop{display:none}.sidebar{color:#fff;z-index:30;background:#111827;flex-direction:column;flex-shrink:0;gap:24px;width:280px;padding:24px;transition:margin-left .2s;display:flex}.sidebar-backdrop{display:none}.brand{align-items:center;gap:12px;display:flex}.brand-logo,.brand-mark{flex-shrink:0;width:44px;height:44px}.brand-logo{object-fit:contain;display:block}.brand-mark{background:var(--primary);border-radius:14px;place-items:center;font-weight:700;display:grid}.brand-name{margin:0;font-weight:700}.brand-sub{color:#cbd5e1;margin:4px 0 0;font-size:12px}.select,.search-input{border:1px solid var(--border);width:100%;height:40px;color:var(--text);background:#fff;border-radius:10px;padding:0 12px}.side-nav{gap:8px;min-height:0;display:grid;overflow-y:auto}.side-nav button{color:#d1d5db;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;height:42px;padding:0 12px;display:flex}.side-nav button:hover,.side-nav button.active{color:#fff;background:#ffffff1f}.side-footer{gap:8px;margin-top:auto;display:grid}.logout-button{color:#d1d5db;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff24;border-radius:12px;align-items:center;gap:10px;height:42px;padding:0 12px;display:flex}.logout-button:hover{color:#fff;background:#ffffff1f}.side-meta{color:#cbd5e1;gap:6px;font-size:12px;display:grid}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;min-height:88px;padding:20px 28px;display:flex}.topbar-title-area{align-items:center;gap:12px;display:flex}.menu-button{flex-shrink:0}.page-title{margin:0;font-size:24px}.page-subtitle{color:var(--muted);margin:6px 0 0;font-size:13px}.toolbar{align-items:center;gap:12px;display:flex}.search-box{width:260px;position:relative}.search-icon{color:var(--muted);position:absolute;top:12px;left:10px}.search-box .search-input{padding-left:32px}.icon-button,.text-button{border:1px solid var(--border);height:40px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px}.icon-button{place-items:center;width:40px;display:grid}.text-button{align-items:center;gap:8px;padding:0 14px;display:inline-flex}.text-button:disabled{opacity:.6;cursor:not-allowed}.primary-button{border-color:var(--primary);background:var(--primary);color:#fff}.primary-button:disabled{border-color:var(--border);color:#9ca3af;background:#f3f4f6}.content{flex:1;padding:28px}.content-placeholder{text-align:center;background:var(--surface);border:1px dashed #cbd5e1;border-radius:20px;place-content:center;min-height:480px;display:grid}.content-placeholder.compact{min-height:180px}.placeholder-label{color:var(--primary);text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.content-placeholder h2{margin:8px 0;font-size:28px}.content-placeholder p{color:var(--muted);margin:0}.launcher-area{gap:20px;display:grid}.launcher-header{border:1px solid var(--border);background:var(--surface);border-radius:20px;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.section-label{color:var(--primary);text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.launcher-header h2{margin:0;font-size:26px}.launcher-header p{color:var(--muted);margin:8px 0 0}.launcher-grid{border-radius:20px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;min-height:196px;display:grid}.launcher-grid.drag-over{outline:1px dashed color-mix(in srgb, var(--primary) 45%, transparent);outline-offset:8px}.launcher-card{border:1px solid var(--border);background:var(--surface);min-height:180px;color:var(--text);text-align:left;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;border-radius:20px;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.launcher-card *,.launcher-group-open,.launcher-group-open *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.launcher-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 12px 28px #0f172a14}.launcher-card.dragging{opacity:.45;touch-action:none;transform:scale(.98)}.launcher-card.group-ready{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, white);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent);transform:scale(1.02)}.launcher-group-card .launcher-icon{background:color-mix(in srgb, var(--group-color,#dbeafe) 65%, white)}.launcher-group-card{background:color-mix(in srgb, var(--group-color,#dbeafe) 64%, white);border-color:color-mix(in srgb, var(--group-color,#dbeafe) 70%, #94a3b8)}.launcher-group-card:hover{border-color:var(--primary)}.group-icon-grid{color:var(--primary);grid-template-columns:repeat(2,1fr);gap:3px;display:grid}.group-ready-label{background:var(--primary);color:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;position:absolute;top:14px;right:14px}.launcher-card.drop-before:before,.launcher-card.drop-after:after{content:"";background:var(--primary);width:4px;box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent);z-index:2;border-radius:999px;position:absolute;top:16px;bottom:16px}.launcher-card.drop-before:before{left:-10px}.launcher-card.drop-after:after{right:-10px}.launcher-icon{background:color-mix(in srgb, var(--primary) 12%, white);width:52px;height:52px;color:var(--primary);border-radius:16px;place-items:center;display:grid}.launcher-icon.compact{border-radius:12px;flex-shrink:0;width:40px;height:40px}.launcher-title{font-size:17px;font-weight:700}.launcher-description{color:var(--muted);font-size:13px;line-height:1.6}.launcher-modal-backdrop{z-index:60;background:#0f172a6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.launcher-group-modal{border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--group-color,#dbeafe) 34%, white), white 150px);border-radius:8px;grid-template-rows:auto auto minmax(0,1fr);gap:16px;width:min(100%,560px);max-height:min(680px,100vh - 48px);padding:20px;display:grid;box-shadow:0 24px 70px #0f172a3d}.launcher-group-modal-header{align-items:center;gap:12px;display:flex}.launcher-group-name-input{border:1px solid var(--border);min-width:0;height:42px;color:var(--text);background:#fff;border-radius:8px;flex:1;padding:0 12px;font-size:20px;font-weight:700}.launcher-group-color-picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.group-color-swatch{border:1px solid color-mix(in srgb, var(--swatch-color) 72%, #64748b);background:var(--swatch-color);cursor:pointer;border-radius:999px;width:30px;height:30px}.group-color-swatch.active{outline:3px solid color-mix(in srgb, var(--primary) 28%, transparent);outline-offset:2px}.group-color-custom{border:1px solid var(--border);color:#374151;background:#ffffffb8;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.group-color-custom input{cursor:pointer;background:0 0;border:0;width:30px;height:30px;padding:0}.launcher-group-items{gap:10px;display:grid;overflow-y:auto}.launcher-group-item{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.launcher-group-open{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;display:flex}.launcher-group-open span:last-child{gap:3px;min-width:0;display:grid}.launcher-group-open strong,.launcher-group-open small{overflow-wrap:anywhere}.launcher-group-open small{color:var(--muted);font-size:12px}.login-page,.tenant-not-found-page{background:linear-gradient(180deg, #ffffffb8, #f6f7fbf0), var(--background);place-items:center;min-height:100vh;padding:24px;display:grid}.login-page.has-login-background-image{background:#111827;min-height:100dvh;position:relative;overflow:hidden}.login-background{z-index:0;position:absolute;inset:0}.login-background:after{content:"";pointer-events:none;background:linear-gradient(#0f172a2e,#0f172a57),#0f172a2e;position:absolute;inset:0}.login-background img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.login-page.has-login-background-image .login-panel{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffd6;border-color:#ffffff94;position:relative;box-shadow:0 24px 70px #0f172a47}.login-panel,.tenant-not-found-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:18px;width:min(100%,420px);padding:32px;display:grid;box-shadow:0 18px 50px #0f172a14}.login-logo,.login-mark{width:56px;height:56px}.login-logo{object-fit:contain}.login-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;font-size:24px;font-weight:700;display:grid}.login-panel h1,.tenant-not-found-panel h1{margin:0;font-size:26px;line-height:1.35}.login-panel p,.tenant-not-found-panel p{color:var(--muted);margin:0;line-height:1.7}.login-form{gap:16px;display:grid}.login-form label{color:#374151;gap:8px;font-size:13px;font-weight:700;display:grid}.login-form input,.login-form select{border:1px solid var(--border);width:100%;height:44px;color:var(--text);background:#fff;border-radius:8px;padding:0 12px;font-weight:400}.login-form select{cursor:pointer}.login-form input:focus,.login-form select:focus{border-color:var(--primary);outline:3px solid color-mix(in srgb, var(--primary) 18%, transparent)}.login-form button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:8px;height:44px;font-weight:700}.login-form button:disabled{opacity:.7;cursor:not-allowed}.login-error{background:#fef2f2;border-radius:8px;padding:12px;font-size:13px;color:#991b1b!important}.login-dev-success{color:#166534;background:#dcfce7;border-radius:10px;margin:0;padding:12px 14px;line-height:1.6}.standalone-page{background:var(--background);min-height:100vh;padding:28px}.user-management{gap:16px;display:grid}.user-management-header{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.user-management-header h2{margin:0;font-size:24px}.user-management-header p{color:var(--muted);margin:8px 0 0}.notice,.error-summary{border-radius:8px;padding:14px 16px;font-size:14px}.notice.success{color:#166534;background:#f0fdf4;border:1px solid #86efac}.notice.error,.error-summary{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.error-summary{gap:6px;display:grid}.error-summary p,.row-errors p{margin:0}.bulk-table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow-x:auto}.bulk-user-table{border-collapse:collapse;width:100%;min-width:1080px}.user-list-table{min-width:720px}.user-management .danger-button,.user-management .danger-icon-button{color:#b91c1c;background:#fff;border-color:#fecaca}.user-management .danger-button:hover,.user-management .danger-icon-button:hover{background:#fef2f2;border-color:#fca5a5}.user-management .primary-button{color:#fff;background:#1f2937;border-color:#1f2937}.user-management .primary-button:hover{background:#111827;border-color:#111827}.user-management .primary-button:disabled{color:#9ca3af;background:#f3f4f6;border-color:#e5e7eb}.bulk-user-table th,.bulk-user-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px}.bulk-user-table th{color:#374151;background:#f9fafb;font-size:12px;font-weight:700}.bulk-user-table tr:last-child td{border-bottom:0}.bulk-user-table tr.has-error td{background:#fff7f7}.bulk-user-table input,.bulk-user-table select{border:1px solid var(--border);width:100%;min-width:120px;height:38px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px}.bulk-user-table input:disabled,.bulk-user-table select:disabled{color:var(--muted);background:#f3f4f6}.row-number{width:52px;color:var(--muted);font-weight:700}.status-pill{color:#3730a3;background:#eef2ff;border-radius:999px;justify-content:center;align-items:center;min-width:72px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.status-pill.created{color:#166534;background:#dcfce7}.status-pill.error{color:#991b1b;background:#fee2e2}.status-pill.existing{color:#374151;background:#f3f4f6}.row-errors{color:#991b1b;gap:4px;margin-top:8px;font-size:12px;line-height:1.5;display:grid}.bulk-actions{justify-content:flex-end;display:flex}.bulk-secondary-actions{justify-content:flex-start;display:flex}.tenant-management-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.tenant-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:16px;padding:20px;display:grid}.tenant-panel-header{align-items:flex-start;gap:10px;display:flex}.tenant-panel-header h3{margin:0;font-size:18px}.tenant-panel-header p,.muted-text,.tenant-tab-description,.tenant-admin-section-header p{color:var(--muted);margin:6px 0 0;font-size:13px}.tenant-list{gap:8px;display:grid}.tenant-list-row{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.tenant-list-row.selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, white)}.tenant-list-row span:first-child{gap:3px;min-width:0;display:grid}.tenant-list-row small{color:var(--muted);overflow-wrap:anywhere}.tenant-counts{color:var(--muted);flex-shrink:0;font-size:12px;font-weight:700}.field-stack{color:#374151;gap:8px;font-size:13px;font-weight:700;display:grid}.field-stack input,.field-stack select{border:1px solid var(--border);width:100%;height:40px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px;font-weight:400}.tenant-existing-selector{gap:12px;display:grid}.segmented-control{border:1px solid var(--border);background:#f9fafb;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:inline-grid}.segmented-control button{color:#374151;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:34px;padding:0 12px}.segmented-control button.active{color:var(--primary);background:#fff;box-shadow:0 1px 3px #0f172a1f}.segmented-control button:disabled{color:#9ca3af;cursor:not-allowed}.user-management>.segmented-control{margin-bottom:16px}.user-management>.segmented-control button.active{color:#1f2937}.agent-organization-panel{border:1px solid var(--border);background:#fff;border-radius:10px;gap:12px;margin-bottom:16px;padding:16px;display:grid}.agent-organization-panel h3{margin:0}.agent-organization-choice{flex-wrap:wrap;gap:16px;display:flex}.agent-organization-choice label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.tenant-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.selected-tenant-summary{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:4px;padding:12px;display:grid}.selected-tenant-summary span,.selected-tenant-summary small{color:var(--muted);font-size:12px}.tenant-admin-section{border-top:1px solid var(--border);gap:16px;padding-top:16px;display:grid}.tenant-admin-section-header h3{margin:0;font-size:18px}.school-settings{gap:16px;display:grid}.school-settings-header,.school-settings-section{border:1px solid var(--border);background:var(--surface);border-radius:8px}.school-settings-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:24px;display:flex}.school-settings-header h2{margin:0;font-size:24px}.school-settings-header p,.school-settings-section-header p{color:var(--muted);margin:8px 0 0}.school-settings .notice{align-items:center;gap:8px;display:flex}.school-settings-section{gap:18px;padding:20px;display:grid}.school-settings-section-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.school-settings-section-header h3{margin:0;font-size:18px}.personal-settings-page{gap:16px;max-width:920px;margin:0 auto;display:grid}.personal-settings-header,.personal-settings-card{border:1px solid var(--border);background:var(--surface);border-radius:12px}.personal-settings-header{padding:24px}.personal-settings-header h2{margin:4px 0 0;font-size:26px}.personal-settings-header p:last-child,.personal-settings-section-heading p{color:var(--muted);margin:8px 0 0;line-height:1.6}.personal-settings-eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.personal-settings-page>.notice{align-items:center;gap:8px;display:flex}.personal-settings-card{grid-template-columns:auto minmax(0,1fr);gap:18px;padding:22px;display:grid}.personal-settings-section-icon{background:color-mix(in srgb, var(--primary) 10%, white);width:44px;height:44px;color:var(--primary);border-radius:12px;place-items:center;display:grid}.personal-settings-section-body{gap:18px;display:grid}.personal-settings-section-heading h3{margin:0;font-size:18px}.personal-settings-field{color:#374151;gap:8px;font-size:13px;font-weight:700;display:grid}.personal-settings-field input,.personal-settings-field select{border:1px solid var(--border);width:100%;height:42px;color:var(--text);background:#fff;border-radius:9px;padding:0 11px;font-weight:400}.personal-settings-field input:focus,.personal-settings-field select:focus{border-color:var(--primary);outline:3px solid color-mix(in srgb, var(--primary) 15%, transparent)}.personal-settings-field small,.personal-settings-password-hint{color:var(--muted);margin:0;font-size:12px;font-weight:400;line-height:1.5}.personal-settings-language-field{max-width:420px}.personal-settings-password-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.password-input-wrap{display:block;position:relative}.password-input-wrap input{padding-right:44px}.password-visibility-button{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.password-visibility-button:hover{color:var(--text);background:#f3f4f6}.personal-settings-actions{justify-content:flex-end;display:flex}.personal-settings-actions .primary-button{color:#fff;cursor:pointer;background:#111827;border:1px solid #111827;border-radius:12px;min-height:46px;padding:0 24px;font-weight:700;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s;box-shadow:0 5px 14px #1118272e}.personal-settings-actions .primary-button:hover:not(:disabled){background:#000;border-color:#000;transform:translateY(-1px);box-shadow:0 7px 18px #1118273d}.personal-settings-actions .primary-button:focus-visible{outline-offset:3px;outline:3px solid #11182738}.personal-settings-actions .primary-button:disabled{border-color:var(--border);color:#9ca3af;cursor:not-allowed;box-shadow:none;background:#e5e7eb}@media (max-width:760px){.personal-settings-card,.personal-settings-password-fields{grid-template-columns:1fr}}.theme-color-editor,.school-logo-editor{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.section-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.reset-button.is-active-action{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.primary-button.is-active-action{border-color:var(--primary);background:var(--primary);color:#fff}.school-logo-preview{border:1px solid var(--border);width:180px;height:180px;color:var(--text);cursor:pointer;background:#f9fafb;border-radius:8px;place-items:center;display:grid;position:relative}.school-logo-preview img{object-fit:contain;width:100%;height:100%;padding:12px}.school-logo-preview span{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:64px;height:64px;font-size:28px;font-weight:700;display:grid}.school-logo-preview small{color:#fff;background:#111827b8;border-radius:999px;padding:4px 8px;font-size:11px;position:absolute;bottom:8px;right:8px}input.visually-hidden-file,.field-stack input.visually-hidden-file{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);border:0;width:1px;min-width:0;height:1px;padding:0;position:absolute;overflow:hidden}.upload-drop-zone{border-style:dashed;transition:border-color .15s,background .15s,box-shadow .15s}.upload-drop-zone:hover,.upload-drop-zone:focus-visible{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 6%, white);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent);outline:0}.field-stack textarea{resize:vertical;border:1px solid var(--border);width:100%;min-height:112px;color:var(--text);font:inherit;background:#fff;border-radius:8px;padding:10px;font-weight:400}.field-stack small{color:var(--muted);font-weight:400}.school-comment-text{white-space:pre-wrap;color:var(--text);margin:0;line-height:1.7}.theme-color-editor{grid-template-columns:160px minmax(180px,1fr) minmax(180px,240px);align-items:end}.theme-color-editor input[type=color]{width:100%;height:40px;padding:3px}.theme-color-preview{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:8px 10px;display:flex}.theme-color-preview span{background:var(--primary);border-radius:999px;width:26px;height:26px;box-shadow:inset 0 0 0 1px #0f172a1f}.login-settings-grid{grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);align-items:start;gap:18px;display:grid}.login-settings-form{gap:16px;display:grid}.background-crop-editor{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:12px;padding:14px;display:grid}.background-upload-zone{aspect-ratio:16/9;border:1px dashed var(--border);width:100%;color:var(--muted);cursor:pointer;background:#f9fafb;border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.background-upload-zone img{object-fit:cover;width:100%;height:100%}.background-upload-zone img.editing{transform:translate(var(--crop-x,0%), var(--crop-y,0%)) scale(var(--crop-zoom,1))}.background-upload-zone span{font-size:13px;font-weight:700}.crop-position-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.login-preview-column{gap:10px;min-width:0;display:grid}.login-preview-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.school-login-preview{aspect-ratio:16/9;border:1px solid var(--border);background:linear-gradient(180deg, #ffffffb8, #f6f7fbf0), var(--background);border-radius:8px;place-items:center;min-height:280px;display:grid;position:relative;overflow:hidden}.school-login-preview.has-image{background:#111827}.school-login-preview-bg{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.school-login-preview-bg.editing{transform:translate(var(--crop-x,0%), var(--crop-y,0%)) scale(var(--crop-zoom,1))}.school-login-preview.has-image:after{content:"";background:linear-gradient(#0f172a2e,#0f172a57),#0f172a2e;position:absolute;inset:0}.school-login-preview-panel{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffdb;border:1px solid #ffffff94;border-radius:8px;gap:12px;width:min(74%,320px);padding:22px;display:grid;position:relative;box-shadow:0 18px 42px #0f172a33}.school-login-preview-logo,.school-login-preview-mark{width:48px;height:48px}.school-login-preview-logo{object-fit:contain}.school-login-preview-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;font-size:20px;font-weight:700;display:grid}.school-login-preview-panel strong{font-size:20px}.school-login-preview-panel p{color:var(--muted);overflow-wrap:anywhere;margin:0;line-height:1.55}.school-login-preview-input,.school-login-preview-button{border-radius:8px;height:34px}.school-login-preview-input{border:1px solid var(--border);background:#fff}.school-login-preview-button{background:var(--primary);color:#fff;place-items:center;font-size:12px;font-weight:700;display:grid}.school-preview-modal{z-index:80;background:#0f172ab8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.school-preview-close{z-index:82;position:fixed;top:18px;right:18px}.school-login-preview.expanded{border:0;width:min(100%,1180px);max-height:calc(100vh - 48px);box-shadow:0 24px 70px #0f172a57}.admissions-page{gap:16px;display:grid}.admission-floating-notice{z-index:120;border:1px solid var(--border);color:#111827;background:#fff;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;width:min(420px,100vw - 36px);padding:14px 16px;font-weight:700;display:flex;position:fixed;top:18px;right:18px;box-shadow:0 18px 42px #0f172a33}.admission-floating-notice.success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.admission-floating-notice.error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.admission-floating-notice-close{color:currentColor;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:18px;line-height:1;display:inline-grid}.admission-floating-notice-close:hover{background:#0f172a14}.admissions-header,.admissions-actionbar,.admission-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px}.admissions-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:24px;display:flex}.admissions-header h2,.admission-panel h3{margin:0}.admissions-header p{color:var(--muted);margin:8px 0 0}.admissions-page .text-button,.admissions-page .icon-button{color:#111827;background:#fff;border-color:#d1d5db}.admissions-page .text-button:hover,.admissions-page .icon-button:hover{background:#f9fafb;border-color:#9ca3af}.admissions-page .primary-button{color:#fff;background:#1f2937;border-color:#1f2937}.admissions-page .primary-button:hover{background:#111827;border-color:#111827}.admissions-page .primary-button:disabled,.admissions-page .text-button:disabled{color:#9ca3af;background:#f3f4f6;border-color:#e5e7eb}.admissions-page .danger-button,.admissions-page .danger-icon-button{color:#b91c1c;background:#fff;border-color:#fecaca}.admissions-page .danger-button:hover,.admissions-page .danger-icon-button:hover{background:#fef2f2;border-color:#fca5a5}.admissions-actionbar{justify-content:flex-end;gap:8px;padding:14px;display:flex}.admissions-table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow-x:auto}.admissions-table{border-collapse:collapse;width:100%;min-width:1060px}.admissions-table th,.admissions-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px}.admissions-table th{color:#374151;background:#f9fafb;font-size:12px}.admissions-table tr:last-child td{border-bottom:0}.admissions-table input,.admissions-table select,.admission-review-controls input,.admission-review-controls select,.admission-upload-controls input{border:1px solid var(--border);min-height:36px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px}.admission-checkbox{accent-color:#1f2937;width:22px;height:22px}.admission-status{color:#374151;white-space:nowrap;background:#f3f4f6;border-radius:999px;align-items:center;min-height:26px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-resubmitted,.status-in_review,.status-submitted{color:#1d4ed8;background:#dbeafe}.status-needs_action,.status-check_required{color:#991b1b;background:#fee2e2}.status-completed{color:#166534;background:#dcfce7}.status-cancelled{color:#4b5563;background:#e5e7eb}.admission-panel{gap:16px;padding:20px;display:grid}.admission-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.admission-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.admission-profile-sections{grid-template-columns:minmax(0,1fr);place-items:start center;gap:18px;display:grid}.admission-profile-group{border:1px solid var(--border);background:#fff;border-radius:8px;gap:14px;width:min(100%,760px);padding:18px;display:grid;box-shadow:0 8px 22px #0f172a0f}.admission-profile-group h4,.admission-repeat-group h5{margin:0}.admission-profile-fields{grid-template-columns:minmax(0,520px);justify-items:start}.admission-profile-fields .field-stack{width:100%;max-width:520px}.admission-setting-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(320px,.9fr) minmax(0,1.4fr);gap:24px;padding:20px 0;display:grid}.admission-setting-preview{border-right:1px solid var(--border);padding-right:24px}.admission-setting-controls{gap:14px;min-width:0;display:grid}.admission-setting-controls fieldset{border:0;gap:8px;padding:0;display:grid}.admission-setting-controls legend{margin-bottom:6px;font-weight:700}.admission-field-settings .admission-profile-group{width:min(100%,1240px)}.admission-setting-radio-options{flex-wrap:wrap;gap:10px 18px;min-width:0;display:flex}.admission-setting-radio-options label{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.admission-field-section-label{color:#111827;margin-bottom:4px;font-size:.9rem;line-height:1.5;display:block}.admission-school-only-label{color:#dc2626}.admission-computed-field output{border:1px solid var(--border);color:#374151;background:#f3f4f6;border-radius:8px;align-items:center;min-height:38px;padding:0 12px;font-weight:700;display:flex}.admission-repeat-group{gap:12px;display:grid}.admission-repeat-header,.admission-repeat-row-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.admission-repeat-row{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:12px;padding:12px;display:grid}.admission-radio-field{border:0;min-width:0;margin:0;padding:0}.admission-radio-field legend{color:#374151;margin-bottom:8px;font-weight:700}.admission-radio-options{flex-wrap:wrap;gap:8px 12px;display:flex}.admission-radio-options label{color:#374151;align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.admission-radio-options input{width:15px;height:15px;min-height:15px!important;padding:0!important}.document-type-form{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end}.document-type-active-checkbox{accent-color:#1f2937;cursor:pointer;width:24px;height:24px;min-height:24px!important;padding:0!important}.document-type-drag-handle{color:#4b5563;cursor:grab;background:0 0;border:0;border-radius:6px;place-items:center;width:40px;height:40px;display:inline-grid}.document-type-drag-handle:hover{color:#111827;background:#f3f4f6}.document-type-drag-handle:active{cursor:grabbing}.document-type-dragging{opacity:.55;background:#f9fafb}.admission-documents-table-wrap{border:1px solid var(--border);background:#fff;border-radius:8px;overflow-x:auto}.admission-documents-table{border-collapse:collapse;width:100%;min-width:980px}.admission-documents-table th,.admission-documents-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px}.admission-documents-table th{color:#374151;background:#f9fafb;font-size:12px;font-weight:700}.admission-documents-table tr:last-child td{border-bottom:0}.admission-document-row strong,.admission-document-row small{display:block}.admission-document-row small{color:var(--muted);margin-top:4px}.admission-document-main-row td{border-bottom:0;padding-bottom:4px}.admission-document-review-unchecked td{background:#fff3dc}.admission-document-review-ok td{background:#e2fbe5}.admission-document-review-needs_correction td,.admission-document-review-deficient td{background:#fde2e2}.admission-document-description-row td{color:var(--muted);padding-top:0;font-size:12px}.admission-document-meta{flex-wrap:wrap;gap:6px;display:flex}.admission-document-meta span{color:#374151;background:#f3f4f6;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.admission-upload-controls,.admission-review-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admission-upload-controls input{max-width:220px}.file-select-button{color:#111827;cursor:pointer;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.file-select-button:hover{background:#f3f4f6;border-color:#9ca3af}.file-select-button.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.admission-uploading-text{color:#1f2937;font-size:13px;font-weight:700;display:inline-block}.field-error{color:#b91c1c;margin-top:4px;font-size:12px;display:block}.pending-file-name{color:#374151;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:13px;font-weight:700;display:inline-block;overflow:hidden}.admissions-page .upload-ready-button{color:#365314;background:#ecfccb;border-color:#84cc16}.admissions-page .upload-ready-button:hover{background:#d9f99d;border-color:#65a30d}.admission-review-controls input{width:180px}.admission-version-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.admission-version-item{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:4px;padding:12px;display:grid}.admission-version-item span,.admission-version-item small{color:var(--muted);font-size:12px}.admission-modal-backdrop{z-index:90;background:#0f172a75;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admission-modal{border:1px solid var(--border);background:#fff;border-radius:8px;gap:16px;width:min(100%,480px);padding:22px;display:grid;box-shadow:0 24px 70px #0f172a3d}.admission-modal h3,.admission-modal p{margin:0}.admission-modal p{color:var(--muted);line-height:1.7}.admission-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admission-preview-backdrop{z-index:95;background:#0f172a9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admission-preview-modal{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:14px;width:min(100%,1040px);height:min(86vh,780px);padding:18px;display:grid;box-shadow:0 24px 70px #0f172a47}.admission-preview-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admission-preview-header h3,.admission-preview-header p{margin:0}.admission-preview-header p{color:var(--muted);margin-top:4px;font-size:12px}.admission-preview-body{border:1px solid var(--border);background:#f9fafb;border-radius:8px;place-items:center;min-height:0;display:grid;overflow:auto}.admission-preview-body img{object-fit:contain;max-width:100%;max-height:100%}.admission-preview-body iframe{background:#fff;border:0;width:100%;height:100%}@media (max-width:900px){.app-shell{position:relative}.sidebar{gap:18px;width:280px;height:100dvh;margin-left:0;position:fixed;top:0;left:0;overflow:hidden}.side-nav{overflow-y:hidden}.app-shell.sidebar-closed .sidebar{margin-left:-280px}.app-shell.sidebar-open .sidebar-backdrop{display:block}.sidebar-backdrop{z-index:20;cursor:pointer;background:#0f172a73;border:0;position:fixed;inset:0}.topbar{flex-direction:column;align-items:flex-start}.toolbar{flex-wrap:wrap;width:100%}.topbar-not-home .toolbar{display:none}.topbar-home{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.topbar-home .topbar-title-area{grid-area:1/1;min-width:0}.topbar-home .toolbar{display:contents}.topbar-home .notification-button{grid-area:1/2;justify-self:end}.search-box{width:100%}.topbar-home .search-box{grid-area:2/1/auto/-1}.launcher-header{flex-direction:column;align-items:flex-start}.standalone-page,.content{padding:18px}.user-management-header{flex-direction:column;align-items:flex-start}.tenant-management-grid,.tenant-form-grid,.segmented-control,.school-logo-editor,.theme-color-editor,.login-settings-grid,.crop-position-grid,.admission-form-grid,.document-type-form{grid-template-columns:1fr}.school-settings-header,.school-settings-section-header,.admissions-header,.admission-panel-header{flex-direction:column}.school-settings-header .text-button,.school-settings-section-header .text-button,.admissions-header .text-button,.admission-panel-header .text-button{justify-content:center;width:100%}.admissions-actionbar{display:grid}.admission-document-row{display:table-row}.admission-upload-controls,.admission-review-controls{flex-direction:column;align-items:stretch}.admission-document-row .text-button,.admission-upload-controls .text-button,.admission-review-controls .text-button{justify-content:center;width:100%}.section-actions{grid-template-columns:1fr;width:100%;display:grid}.school-login-preview{min-height:220px}.school-login-preview-panel{width:min(88%,320px);padding:18px}.bulk-actions,.bulk-secondary-actions{justify-content:stretch}.bulk-actions .text-button,.bulk-secondary-actions .text-button{justify-content:center;width:100%}}@media (max-width:639px){.launcher-grid{grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:10px;min-height:148px}.launcher-card{border-radius:14px;gap:8px;min-height:136px;padding:14px}.launcher-icon{border-radius:12px;width:42px;height:42px}.launcher-icon svg{width:21px;height:21px}.launcher-title{font-size:14px}.launcher-description{font-size:11px;line-height:1.45}.group-icon-grid{gap:2px}.group-icon-grid svg{width:11px;height:11px}.group-ready-label{padding:3px 7px;font-size:10px;top:10px;right:10px}.launcher-card.drop-before:before,.launcher-card.drop-after:after{top:12px;bottom:12px}.launcher-modal-backdrop{padding:14px}.launcher-group-modal{gap:12px;max-height:calc(100vh - 28px);padding:14px}.launcher-group-name-input{height:38px;font-size:17px}.launcher-group-item{flex-direction:column;align-items:stretch;gap:8px}.launcher-group-item .text-button{justify-content:center}.launcher-icon.compact{border-radius:10px;width:34px;height:34px}}
