:root{font-family:system-ui,sans-serif;color:#1a1a1a;background:#f4f4f5}.app{min-height:100vh}.top{background:#18181b;color:#fafafa}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.25rem}.top-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 1.25rem;border-top:1px solid #27272a}.top a,.link{color:#a1a1aa;text-decoration:none;background:none;border:none;cursor:pointer;font-size:.9rem}.top a.router-link-active{color:#fff}.top a.nav-soon{color:#71717a;opacity:.75}.top a.nav-soon.router-link-active{color:#a1a1aa}.top a.nav-admin{margin-left:.25rem;padding-left:.85rem;border-left:1px solid #3f3f46}.brand{font-weight:700}.user-actions{display:flex;align-items:center;gap:.75rem}.user-actions .link{margin-left:0}.notif-btn{position:relative;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center}.notif-badge{position:absolute;top:-.2rem;right:-.35rem;min-width:.9rem;height:.9rem;padding:0 .2rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.62rem;line-height:.9rem;font-weight:700}.user-name{font-size:.85rem;font-weight:500;color:#d4d4d8}.user-sep{width:1px;height:1.1rem;background:#52525b}.view-as-control{display:inline-flex;align-items:center;gap:.4rem}.view-as-label{font-size:.8rem;font-weight:500;color:#a1a1aa;white-space:nowrap}.view-as-select{display:inline-block;width:auto;max-width:none;margin:0;background:#27272a;color:#d4d4d8;border:1px solid #3f3f46;border-radius:4px;font-size:.8rem;padding:.2rem .4rem;cursor:pointer}.link.accent{color:#fbbf24;white-space:nowrap}main{max-width:960px;margin:0 auto;padding:1.5rem}main.main-flush{max-width:none;margin:0;padding:0}.card{background:#fff;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem;box-shadow:0 1px 3px #00000014}.error{color:#b91c1c;font-size:.9rem}button.primary{background:#2563eb;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;margin-top:.5rem}button.secondary{background:#fff;border:1px solid #d4d4d8;padding:.5rem 1rem;border-radius:6px;cursor:pointer}input,textarea,select{display:block;width:100%;max-width:320px;margin:.5rem 0 1rem;padding:.5rem}label{font-size:.85rem;font-weight:600}.muted[data-v-b5a36031]{color:#71717a;font-size:1.1rem}.landing[data-v-6a191fe6]{min-height:100vh;padding:2.5rem 1.25rem 3.5rem;background:radial-gradient(circle at top left,rgba(37,99,235,.16),transparent 28%),radial-gradient(circle at bottom right,rgba(16,185,129,.18),transparent 24%),#f4f7fb;box-sizing:border-box}.hero-panel[data-v-6a191fe6]{max-width:960px;margin:0 auto;background:#ffffffeb;border:1px solid rgba(15,23,42,.08);border-radius:28px;box-shadow:0 24px 60px #0f172a1f;padding:40px 34px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand-mark[data-v-6a191fe6]{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,#2563eb,#0f766e);color:#fff;font-weight:700;font-size:1.1rem;margin-bottom:22px}.eyebrow[data-v-6a191fe6]{display:inline-flex;padding:8px 12px;border-radius:999px;background:#2563eb1a;color:#2563eb;font-weight:600;font-size:.9rem;margin-bottom:16px}.headline[data-v-6a191fe6]{margin:0;font-size:clamp(2rem,5vw,3rem);line-height:1.1;letter-spacing:-.03em;color:#0f172a}.subtitle[data-v-6a191fe6]{margin:18px 0 0;font-size:1.08rem;line-height:1.75;color:#64748b;max-width:680px}.links-grid[data-v-6a191fe6]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:32px}.link-card[data-v-6a191fe6]{padding:22px;border-radius:20px;border:1px solid rgba(148,163,184,.16);background:#f8fafce6}.link-card strong[data-v-6a191fe6]{display:block;margin-bottom:8px;font-size:1.05rem;color:#0f172a}.link-card p[data-v-6a191fe6]{margin:0 0 16px;color:#64748b;line-height:1.6;font-size:.95rem}.button[data-v-6a191fe6]{display:inline-flex;align-items:center;justify-content:center;width:100%;gap:8px;padding:12px 18px;border-radius:14px;border:1px solid transparent;font-weight:600;font-size:.95rem;text-decoration:none;box-sizing:border-box;transition:transform .2s ease}.button[data-v-6a191fe6]:hover{transform:translateY(-1px)}.button-primary[data-v-6a191fe6]{background:#2563eb;color:#fff;box-shadow:0 16px 30px #2563eb3d}.button-secondary[data-v-6a191fe6]{background:#ffffffc7;color:#0f172a;border-color:#0f172a14}.unavailable[data-v-6a191fe6]{opacity:.72;pointer-events:none}.muted-note[data-v-6a191fe6]{margin-top:28px;color:#64748b;font-size:.92rem;line-height:1.6}@media(max-width:640px){.hero-panel[data-v-6a191fe6]{padding:28px 20px}}.login-page[data-v-e907430e]{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1.5rem;background:#f4f4f5}.login-card[data-v-e907430e]{width:100%;max-width:400px;background:#fff;border-radius:12px;padding:2rem 2rem 1.75rem;box-shadow:0 1px 3px #0000000f,0 8px 24px #00000014;border:1px solid #e4e4e7}.login-header[data-v-e907430e]{margin-bottom:1.75rem;text-align:center}.login-header h1[data-v-e907430e]{margin:0 0 .35rem;font-size:1.625rem;font-weight:700;letter-spacing:-.02em;color:#18181b}.subtitle[data-v-e907430e]{margin:0;font-size:.9rem;color:#71717a;font-weight:400}.login-form[data-v-e907430e]{display:flex;flex-direction:column;gap:1.25rem}.field[data-v-e907430e]{display:flex;flex-direction:column;gap:.4rem}.field label[data-v-e907430e]{font-size:.8125rem;font-weight:600;color:#3f3f46;letter-spacing:.01em}.login-form input[data-v-e907430e]{display:block;width:100%;max-width:none;margin:0;padding:.65rem .75rem;font-size:.9375rem;line-height:1.4;color:#18181b;background:#fafafa;border:1px solid #d4d4d8;border-radius:8px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s,background .15s}.login-form input[data-v-e907430e]::placeholder{color:#a1a1aa}.login-form input[data-v-e907430e]:hover{border-color:#a1a1aa}.login-form input[data-v-e907430e]:focus{outline:none;background:#fff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.password-wrap[data-v-e907430e]{position:relative}.password-wrap input[data-v-e907430e]{padding-right:2.75rem}.password-toggle[data-v-e907430e]{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;width:2.75rem;padding:0;margin:0;border:none;border-radius:0 8px 8px 0;background:transparent;color:#71717a;cursor:pointer;transition:color .15s}.password-toggle[data-v-e907430e]:hover{color:#3f3f46}.password-toggle[data-v-e907430e]:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.error-banner[data-v-e907430e]{margin:0;padding:.6rem .75rem;font-size:.875rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.submit-btn[data-v-e907430e]{width:100%;margin:.25rem 0 0;padding:.7rem 1rem;font-size:.9375rem;font-weight:600;color:#fff;background:#2563eb;border:none;border-radius:8px;cursor:pointer;transition:background .15s,opacity .15s}.submit-btn[data-v-e907430e]:hover:not(:disabled){background:#1d4ed8}.submit-btn[data-v-e907430e]:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.submit-btn[data-v-e907430e]:disabled{opacity:.65;cursor:not-allowed}.muted[data-v-c88fe72c]{color:#71717a;font-size:.9rem}.admin-portal-card[data-v-c88fe72c]{border-left:4px solid #2563eb;background:linear-gradient(135deg,#fff,#f8fafc)}.admin-portal-card h2[data-v-c88fe72c]{margin:0 0 .35rem;font-size:1.05rem}.portal-cta[data-v-c88fe72c]{display:inline-block;margin-top:.5rem;color:#2563eb;font-weight:600;text-decoration:none;font-size:.9rem}.portal-cta[data-v-c88fe72c]:hover{text-decoration:underline}.child-avatar[data-v-727d8944]{display:flex;flex-direction:column;align-items:center;width:6.5rem;background:none;border:none;padding:0;margin:0 .75rem .5rem 0;text-align:center}.child-avatar.button[data-v-727d8944]{cursor:pointer}.child-avatar.button:hover .circle[data-v-727d8944]{transform:scale(1.03)}.child-avatar.button[data-v-727d8944]:disabled{cursor:default}.circle[data-v-727d8944]{display:flex;align-items:center;justify-content:center;width:4.5rem;height:4.5rem;border-radius:50%;color:#fff;font-size:1.35rem;font-weight:700;border:3px solid transparent;transition:transform .15s ease}.child-avatar.selected .circle[data-v-727d8944]{border-color:#1e40af}.name[data-v-727d8944]{margin-top:.5rem;font-size:.85rem;font-weight:600;color:#334155;line-height:1.25}.child-avatar.selected .name[data-v-727d8944]{color:#1e40af}.hero[data-v-0c603b74]{background:linear-gradient(135deg,#1e40af,#2563eb);color:#fff;border:none}.hero h1[data-v-0c603b74]{margin:.25rem 0 0;font-size:1.5rem}.hero-greeting[data-v-0c603b74]{margin:0;font-size:.85rem;color:#bfdbfe}.hero-meta[data-v-0c603b74]{margin:.5rem 0 0;font-size:.9rem;color:#dbeafe}.hero-link[data-v-0c603b74]{color:#fff;font-weight:600;text-decoration:underline}.child-row[data-v-0c603b74]{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 0}.section-hint[data-v-0c603b74]{margin-top:0}.announcement[data-v-0c603b74]{padding:.75rem 0;border-bottom:1px solid #e4e4e7}.announcement[data-v-0c603b74]:last-child{border-bottom:none}.body[data-v-0c603b74]{margin:.35rem 0 0;color:#3f3f46;line-height:1.45}.muted[data-v-0c603b74]{color:#71717a;font-size:.9rem}.child-banner[data-v-e656dea2]{display:flex;align-items:center;gap:1rem}.child-name[data-v-e656dea2]{margin:0;font-size:1.25rem}.hero[data-v-e656dea2]{background:linear-gradient(135deg,#1e40af,#2563eb);color:#fff;border:none}.hero-greeting[data-v-e656dea2]{margin:0;font-size:.85rem;color:#bfdbfe}.hero-name[data-v-e656dea2]{margin:.25rem 0 0;font-size:1.35rem;font-weight:700}.hero-meta[data-v-e656dea2]{margin:.5rem 0 0;font-size:.9rem;color:#dbeafe}.item[data-v-e656dea2]{padding:.5rem 0;border-bottom:1px solid #f4f4f5}.item[data-v-e656dea2]:last-child{border-bottom:none}.muted[data-v-e656dea2]{color:#71717a;font-size:.9rem}.small[data-v-e656dea2]{font-size:.8rem;margin:.15rem 0 0}.link-more[data-v-e656dea2]{display:inline-block;margin-top:.75rem;color:#2563eb;font-weight:600;text-decoration:none}.muted[data-v-90a6bf9b]{color:#71717a}.error[data-v-90a6bf9b]{margin-bottom:1rem}.empty[data-v-90a6bf9b]{margin:.5rem 0 0;padding:1rem;text-align:center;color:#71717a;background:#fafafa;border:1px dashed #d4d4d8;border-radius:6px;font-size:.9rem}.table-wrap[data-v-90a6bf9b]{overflow-x:auto;border:1px solid #e4e4e7;border-radius:8px}.data-table[data-v-90a6bf9b]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-90a6bf9b],.data-table td[data-v-90a6bf9b]{text-align:left;padding:.65rem .85rem;border-bottom:1px solid #e4e4e7;vertical-align:top}.data-table tbody tr:last-child td[data-v-90a6bf9b]{border-bottom:none}.data-table th[data-v-90a6bf9b]{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:#71717a;background:#fafafa}.cell-name[data-v-90a6bf9b]{font-weight:600;color:#18181b}.cell-body[data-v-90a6bf9b]{max-width:240px;color:#3f3f46;font-size:.85rem}.col-actions[data-v-90a6bf9b]{width:1%;white-space:nowrap;text-align:right}.row-action[data-v-90a6bf9b]{background:none;border:none;padding:.15rem .4rem;color:#2563eb;font-size:.85rem;font-weight:600;cursor:pointer}.row-action[data-v-90a6bf9b]:hover{text-decoration:underline}.row-action.danger[data-v-90a6bf9b]{color:#dc2626}.row-action+.row-action[data-v-90a6bf9b]{margin-left:.35rem}.dispatch-item[data-v-90a6bf9b]{padding:1rem 0;border-bottom:1px solid #e4e4e7}.dispatch-item[data-v-90a6bf9b]:last-child{border-bottom:none;padding-bottom:0}.dispatch-head[data-v-90a6bf9b]{margin:0 0 .5rem;font-size:.95rem}.payload[data-v-90a6bf9b]{font-size:.75rem;background:#f4f4f5;padding:.5rem;overflow:auto;max-height:120px;border-radius:6px;margin:0 0 .75rem}.dispatch-actions[data-v-90a6bf9b]{display:flex;gap:.5rem}.secondary[data-v-90a6bf9b]{padding:.5rem 1rem;border-radius:6px;border:1px solid #d4d4d8;background:#fff;cursor:pointer}.searchable-select[data-v-e0f52c8b]{position:relative;width:100%;max-width:420px;margin:.5rem 0 1rem}.trigger[data-v-e0f52c8b]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .65rem;border:1px solid #d4d4d8;border-radius:6px;background:#fff;font-size:.9rem;text-align:left;cursor:pointer}.trigger.open[data-v-e0f52c8b],.trigger[data-v-e0f52c8b]:focus-visible{border-color:#2563eb;outline:none;box-shadow:0 0 0 2px #2563eb26}.trigger.disabled[data-v-e0f52c8b],.trigger[data-v-e0f52c8b]:disabled{opacity:.55;cursor:not-allowed;background:#f4f4f5}.placeholder[data-v-e0f52c8b]{color:#71717a}.caret[data-v-e0f52c8b]{color:#71717a;font-size:.75rem;flex-shrink:0}.dropdown[data-v-e0f52c8b]{position:absolute;z-index:20;top:calc(100% + .25rem);left:0;right:0;background:#fff;border:1px solid #d4d4d8;border-radius:6px;box-shadow:0 4px 12px #0000001a;overflow:hidden}.search[data-v-e0f52c8b]{display:block;width:100%;max-width:none;margin:0;padding:.5rem .65rem;border:none;border-bottom:1px solid #e4e4e7;border-radius:0;font-size:.9rem}.search[data-v-e0f52c8b]:focus{outline:none}.options[data-v-e0f52c8b]{list-style:none;margin:0;padding:.25rem 0;max-height:240px;overflow-y:auto}.option[data-v-e0f52c8b]{padding:.45rem .65rem;font-size:.9rem;cursor:pointer}.option[data-v-e0f52c8b]:hover,.option.active[data-v-e0f52c8b]{background:#eff6ff}.option.selected[data-v-e0f52c8b]{font-weight:600;color:#1d4ed8}.empty[data-v-e0f52c8b]{padding:.65rem;color:#71717a;font-size:.85rem}.attendance-page h2[data-v-ff786041]{margin:0 0 1rem;font-size:1.05rem}.tabs[data-v-ff786041]{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.tabs button[data-v-ff786041]{padding:.5rem 1rem;border:1px solid #d4d4d8;background:#fff;cursor:pointer;border-radius:6px;font-size:.9rem}.tabs button.active[data-v-ff786041]{background:#2563eb;color:#fff;border-color:#2563eb}.enroll-filters[data-v-ff786041]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:.75rem}.enroll-filters .picker-field[data-v-ff786041]{flex:1;min-width:160px;max-width:none;margin-bottom:0}.enroll-filters .picker-field[data-v-ff786041] .searchable-select{margin:0;max-width:none}.enroll-filters .picker-field[data-v-ff786041] .trigger{height:2.375rem;box-sizing:border-box}.field[data-v-ff786041]{display:flex;flex-direction:column;gap:.4rem;min-width:0}.field-action[data-v-ff786041]{justify-content:flex-end}.field-label[data-v-ff786041]{font-size:.8rem;font-weight:600;color:#52525b;line-height:1.2;min-height:1rem}.field input[data-v-ff786041],.field select[data-v-ff786041]{display:block;width:100%;max-width:none;margin:0;padding:0 .65rem;height:2.375rem;box-sizing:border-box;border:1px solid #d4d4d8;border-radius:6px;font-size:.9rem;background:#fff}.field input[data-v-ff786041]:focus,.field select[data-v-ff786041]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.filter-actions .primary[data-v-ff786041]{margin:0}.summary-date-row[data-v-ff786041]{margin-bottom:1rem}.summary-date-row .field-action[data-v-ff786041]{flex:0 0 auto;min-width:140px}.summary-date-row .field-action .primary[data-v-ff786041]{width:100%;margin:0;height:2.375rem;box-sizing:border-box}.summary-breakdown[data-v-ff786041]{margin-top:.5rem}.summary-totals[data-v-ff786041]{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0 .75rem}.total-card[data-v-ff786041]{flex:1;min-width:100px;padding:.85rem 1rem;background:#fafafa;border:1px solid #e4e4e7;border-radius:8px;text-align:center}.total-card.muted-card[data-v-ff786041]{background:#fff}.total-value[data-v-ff786041]{display:block;font-size:1.35rem;font-weight:700;color:#18181b}.total-label[data-v-ff786041]{display:block;margin-top:.2rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#71717a}.student-list[data-v-ff786041]{margin-top:1rem}.mark-table th[data-v-ff786041],.mark-table td[data-v-ff786041]{vertical-align:middle}.mark-table th[data-v-ff786041]{color:#71717a}.mark-table td[data-v-ff786041]{color:#27272a}.mark-table .col-serial[data-v-ff786041]{width:2.5rem;text-align:center}.mark-table td.col-serial[data-v-ff786041]{color:#71717a}.mark-table .col-roll[data-v-ff786041]{width:5rem;text-align:left;font-variant-numeric:tabular-nums}.mark-table .col-student[data-v-ff786041],.mark-table .col-father[data-v-ff786041]{min-width:9rem;text-align:left}.mark-table .col-mark-status[data-v-ff786041]{text-align:left;white-space:nowrap;min-width:16rem}.mark-table .cell-name[data-v-ff786041]{color:#18181b}.status-radios[data-v-ff786041]{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.35rem;justify-content:flex-start}.status-radio[data-v-ff786041]{position:relative;display:inline-flex;flex-shrink:0;cursor:pointer;margin:0}.status-radio input[data-v-ff786041]{position:absolute;opacity:0;width:0;height:0;margin:0}.status-radio span[data-v-ff786041]{display:inline-block;padding:.3rem .6rem;border-radius:999px;border:1px solid #d4d4d8;background:#fff;font-size:.78rem;font-weight:600;color:#52525b;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.status-radio:hover span[data-v-ff786041]{border-color:#a1a1aa}.status-radio.present.active span[data-v-ff786041],.status-radio.present input:focus-visible+span[data-v-ff786041]{background:#dcfce7;border-color:#86efac;color:#166534}.status-radio.absent.active span[data-v-ff786041],.status-radio.absent input:focus-visible+span[data-v-ff786041]{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.status-radio.leave.active span[data-v-ff786041],.status-radio.leave input:focus-visible+span[data-v-ff786041]{background:#fef3c7;border-color:#fcd34d;color:#92400e}.modal-actions[data-v-ff786041]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #e4e4e7}.modal-actions .primary[data-v-ff786041],.modal-actions .secondary[data-v-ff786041]{margin:0}.table-wrap[data-v-ff786041]{overflow-x:auto;border:1px solid #e4e4e7;border-radius:8px}.data-table[data-v-ff786041]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-ff786041],.data-table td[data-v-ff786041]{text-align:left;padding:.65rem .85rem;border-bottom:1px solid #e4e4e7}.data-table tbody tr:last-child td[data-v-ff786041]{border-bottom:none}.data-table tbody tr[data-v-ff786041]:hover{background:#fafafa}.data-table th[data-v-ff786041]{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:#71717a;background:#fafafa}.cell-name[data-v-ff786041]{font-weight:600;color:#18181b}.col-status[data-v-ff786041]{width:1%;white-space:nowrap}.roll[data-v-ff786041]{display:inline-block;min-width:2rem;margin-right:.5rem;color:#71717a;font-size:.85rem;font-weight:400}.status-note[data-v-ff786041]{margin-top:.75rem;color:#52525b;font-size:.9rem}.batch-list[data-v-ff786041]{margin-top:1rem}.batch-item[data-v-ff786041]{border:1px solid #e4e4e7;border-radius:8px;margin-bottom:.5rem;overflow:hidden}.batch-head[data-v-ff786041]{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;padding:.75rem 1rem;background:#fafafa;border:none;cursor:pointer;text-align:left;font-size:.9rem}.batch-meta[data-v-ff786041]{color:#52525b;font-size:.85rem}.locked-note[data-v-ff786041]{margin-top:1rem;padding:.65rem .85rem;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;font-size:.9rem;color:#92400e}.small[data-v-ff786041]{font-size:.85rem;margin:-.5rem 0 1rem}.batch-detail[data-v-ff786041]{padding:.75rem 1rem;border-top:1px solid #e4e4e7}.detail-row[data-v-ff786041]{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid #f4f4f5;font-size:.9rem}.status-badge[data-v-ff786041]{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:capitalize;background:#f4f4f5}.status-badge.draft[data-v-ff786041]{background:#fef3c7;color:#92400e}.status-badge.submitted[data-v-ff786041]{background:#dbeafe;color:#1e40af}.status-badge.verified[data-v-ff786041]{background:#dcfce7;color:#166534}.status-radio input:disabled+span[data-v-ff786041]{opacity:.55;cursor:not-allowed}.pill[data-v-ff786041]{font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;text-transform:capitalize}.pill.present[data-v-ff786041]{background:#dcfce7;color:#166534}.pill.absent[data-v-ff786041]{background:#fee2e2;color:#991b1b}.pill.leave[data-v-ff786041]{background:#fef3c7;color:#92400e}.ok[data-v-ff786041]{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:.5rem .75rem;font-size:.9rem;margin-top:.75rem}.error[data-v-ff786041]{margin-top:.75rem}.empty[data-v-ff786041]{margin:.5rem 0 0;padding:1rem;text-align:center;color:#71717a;background:#fafafa;border:1px dashed #d4d4d8;border-radius:6px;font-size:.9rem}.muted[data-v-ff786041]{color:#71717a;font-size:.9rem}.tabs[data-v-c8031aa3]{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button[data-v-c8031aa3]{padding:.4rem .85rem;border:1px solid #e4e4e7;background:#fff;border-radius:6px;cursor:pointer}.tabs button.active[data-v-c8031aa3]{background:#0f766e;color:#fff;border-color:#0f766e}.form-row[data-v-c8031aa3]{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:1rem}.item[data-v-c8031aa3]{padding:.5rem 0;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;border-bottom:1px solid #f4f4f5}.small[data-v-c8031aa3]{padding:.25rem .5rem;font-size:.85rem}.row-student[data-v-c8031aa3]{display:flex;gap:.5rem;align-items:center;padding:.25rem 0}.badge[data-v-c8031aa3]{font-size:.75rem;padding:.15rem .45rem;border-radius:999px;background:#f4f4f5}.badge[data-status=draft][data-v-c8031aa3]{background:#e4e4e7}.badge[data-status=submitted][data-v-c8031aa3]{background:#fef3c7;color:#92400e}.badge[data-status=verified][data-v-c8031aa3]{background:#dcfce7;color:#166534}.ok[data-v-c8031aa3]{color:#15803d}.error[data-v-c8031aa3]{color:#b91c1c}.muted[data-v-c8031aa3]{color:#71717a}.empty[data-v-c8031aa3]{color:#a1a1aa}.muted[data-v-ab51c4f2]{color:#71717a;font-size:.9rem}.small[data-v-ab51c4f2]{font-size:.85rem}.ok[data-v-ab51c4f2]{color:#15803d;margin-bottom:.75rem}.error[data-v-ab51c4f2]{color:#b91c1c;margin-bottom:.75rem}.empty[data-v-ab51c4f2]{color:#71717a}.tabs[data-v-ab51c4f2]{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.tabs button[data-v-ab51c4f2]{border:1px solid #d4d4d8;background:#fff;padding:.4rem .85rem;border-radius:6px;cursor:pointer}.tabs button.active[data-v-ab51c4f2]{background:#0f766e;border-color:#0f766e;color:#fff}.toolbar[data-v-ab51c4f2]{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.item[data-v-ab51c4f2]{padding:.75rem 0;border-bottom:1px solid #eee}.item-head[data-v-ab51c4f2]{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.meta[data-v-ab51c4f2]{font-size:.9rem;color:#52525b;margin:.25rem 0}.badge[data-v-ab51c4f2]{font-size:.75rem;padding:.15rem .45rem;border-radius:999px;background:#f4f4f5;color:#3f3f46}.badge[data-status=pending_approval][data-v-ab51c4f2]{background:#fffbeb;color:#b45309}.badge[data-status=approved][data-v-ab51c4f2]{background:#ecfdf5;color:#047857}.badge[data-status=rejected][data-v-ab51c4f2]{background:#fef2f2;color:#b91c1c}.row-actions[data-v-ab51c4f2]{display:flex;gap:.5rem;margin-top:.5rem}.danger[data-v-ab51c4f2]{background:#b91c1c;color:#fff;border:none;padding:.4rem .85rem;border-radius:6px;cursor:pointer}.danger[data-v-ab51c4f2]:disabled{opacity:.6;cursor:not-allowed}.tabs[data-v-17cfc660]{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button[data-v-17cfc660]{padding:.4rem .85rem;border:1px solid #e4e4e7;background:#fff;border-radius:6px;cursor:pointer}.tabs button.active[data-v-17cfc660]{background:#0f766e;color:#fff;border-color:#0f766e}.item[data-v-17cfc660]{padding:.75rem 0;border-bottom:1px solid #f4f4f5}.item-head[data-v-17cfc660]{display:flex;gap:.5rem;align-items:center;justify-content:space-between}.meta[data-v-17cfc660]{color:#71717a;font-size:.9rem;margin:.25rem 0}.badge[data-v-17cfc660]{font-size:.75rem;padding:.15rem .45rem;border-radius:999px;background:#f4f4f5}.badge[data-status=pending_approval][data-v-17cfc660]{background:#fef3c7;color:#92400e}.badge[data-status=approved][data-v-17cfc660]{background:#dcfce7;color:#166534}.badge[data-status=rejected][data-v-17cfc660]{background:#fee2e2;color:#991b1b}.row-actions[data-v-17cfc660]{display:flex;gap:.5rem;margin-top:.5rem}.danger[data-v-17cfc660]{background:#b91c1c;color:#fff;border:none;padding:.35rem .75rem;border-radius:6px;cursor:pointer}.link[data-v-17cfc660]{color:#0f766e}.ok[data-v-17cfc660]{color:#15803d}.error[data-v-17cfc660]{color:#b91c1c}.empty[data-v-17cfc660]{color:#a1a1aa}.muted[data-v-17cfc660]{color:#71717a}.item[data-v-0a45ae83]{padding:.5rem 0;border-bottom:1px solid #eee;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.small[data-v-0a45ae83]{padding:.25rem .5rem;font-size:.85rem}.ok[data-v-0a45ae83]{color:#15803d}.muted[data-v-3778344b]{color:#71717a}.small[data-v-3778344b]{font-size:.85rem;margin-top:-.25rem;margin-bottom:1rem}.ok[data-v-3778344b]{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:.5rem .75rem;font-size:.9rem;margin-bottom:1rem}.error[data-v-3778344b]{margin-bottom:1rem}.broadcast-form[data-v-3778344b]{display:flex;flex-direction:column;gap:.25rem}.field[data-v-3778344b]{display:flex;flex-direction:column;gap:.4rem;min-width:0;margin-bottom:.75rem}.field-label[data-v-3778344b]{font-size:.8rem;font-weight:600;color:#52525b;line-height:1.2}.field input[data-v-3778344b],.field select[data-v-3778344b],.field textarea[data-v-3778344b]{display:block;width:100%;max-width:none;margin:0;padding:0 .65rem;box-sizing:border-box;border:1px solid #d4d4d8;border-radius:6px;font-size:.9rem;background:#fff;font-family:inherit}.field input[data-v-3778344b],.field select[data-v-3778344b]{height:2.375rem}.field textarea[data-v-3778344b]{padding:.65rem;resize:vertical;min-height:5rem}.field input[data-v-3778344b]:focus,.field select[data-v-3778344b]:focus,.field textarea[data-v-3778344b]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.checkbox-field[data-v-3778344b]{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:#3f3f46;cursor:pointer;margin:0 0 .75rem}.checkbox-field input[type=checkbox][data-v-3778344b]{width:1rem;height:1rem;margin:0;flex-shrink:0}.picker-field[data-v-3778344b]{max-width:420px}.picker-field[data-v-3778344b] .searchable-select{margin:0}.cascade[data-v-3778344b]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.75rem;padding:1rem;background:#fafafa;border:1px solid #e4e4e7;border-radius:8px}.cascade-row[data-v-3778344b]{display:grid;gap:.75rem 1rem}.cascade-row-2[data-v-3778344b]{grid-template-columns:1fr 1fr}.cascade-field[data-v-3778344b] .searchable-select{margin:0;max-width:none}.cascade-field[data-v-3778344b] .trigger{height:2.375rem;box-sizing:border-box}.empty[data-v-3778344b]{margin:.5rem 0 0;padding:1rem;text-align:center;color:#71717a;background:#fafafa;border:1px dashed #d4d4d8;border-radius:6px;font-size:.9rem}.table-wrap[data-v-3778344b]{overflow-x:auto;border:1px solid #e4e4e7;border-radius:8px}.data-table[data-v-3778344b]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-3778344b],.data-table td[data-v-3778344b]{text-align:left;padding:.65rem .85rem;border-bottom:1px solid #e4e4e7}.data-table tbody tr:last-child td[data-v-3778344b]{border-bottom:none}.data-table tbody tr[data-v-3778344b]:hover{background:#fafafa}.data-table th[data-v-3778344b]{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:#71717a;background:#fafafa}.cell-name[data-v-3778344b]{font-weight:600;color:#18181b}.cell-period[data-v-3778344b]{color:#3f3f46;white-space:nowrap}.col-actions[data-v-3778344b]{width:1%;white-space:nowrap;text-align:right}.row-action[data-v-3778344b]{background:none;border:none;padding:.15rem .4rem;color:#2563eb;font-size:.85rem;font-weight:600;cursor:pointer}.row-action[data-v-3778344b]:hover{text-decoration:underline}.row-action.danger[data-v-3778344b]{color:#dc2626}.row-action+.row-action[data-v-3778344b]{margin-left:.35rem}.status-badge[data-v-3778344b]{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.status-badge.published[data-v-3778344b]{background:#f0fdf4;color:#166534}.status-badge.pending[data-v-3778344b]{background:#fef9c3;color:#854d0e}.status-badge.rejected[data-v-3778344b]{background:#fef2f2;color:#991b1b}.primary[data-v-3778344b]{align-self:flex-start;margin-top:.25rem}@media(max-width:640px){.cascade-row-2[data-v-3778344b]{grid-template-columns:1fr}}.tabs[data-v-140e9890]{display:flex;gap:.5rem;margin-bottom:1rem}.tabs button[data-v-140e9890]{padding:.4rem .85rem;border:1px solid #e4e4e7;background:#fff;border-radius:6px;cursor:pointer}.tabs button.active[data-v-140e9890]{background:#0f766e;color:#fff;border-color:#0f766e}.item[data-v-140e9890]{padding:.5rem 0;border-bottom:1px solid #f4f4f5}.mt[data-v-140e9890]{margin-top:1.25rem}.muted[data-v-140e9890]{color:#71717a}.empty[data-v-140e9890]{color:#a1a1aa}.ok[data-v-140e9890]{color:#15803d}.error[data-v-140e9890]{color:#b91c1c}.item[data-v-16e849b0]{padding:.5rem 0;border-bottom:1px solid #eee;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.muted[data-v-16e849b0]{color:#71717a}.ok[data-v-16e849b0]{color:#15803d}.error[data-v-16e849b0]{color:#b91c1c}.link[data-v-16e849b0]{color:#0f766e}.admin-portal[data-v-59a866a7]{margin:-.25rem 0 2rem}.portal-hero[data-v-59a866a7]{background:linear-gradient(135deg,#18181b,#27272a 55%,#1e3a5f);color:#fafafa;border-radius:12px;padding:1.75rem 1.5rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 8px 24px #0000001f}.portal-kicker[data-v-59a866a7]{margin:0 0 .35rem;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#a1a1aa}.portal-hero h1[data-v-59a866a7]{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.portal-lead[data-v-59a866a7]{margin:0;max-width:36rem;font-size:.95rem;line-height:1.5;color:#d4d4d8}.portal-grid[data-v-59a866a7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.portal-card[data-v-59a866a7]{display:flex;align-items:flex-start;gap:.85rem;background:#fff;border:1px solid #e4e4e7;border-left:4px solid var(--accent, #2563eb);border-radius:10px;padding:1.1rem 1rem 1.1rem .9rem;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000000f;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.portal-card[data-v-59a866a7]:hover{transform:translateY(-2px);box-shadow:0 10px 24px #00000014;border-color:#d4d4d8}.portal-card[data-v-59a866a7]:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.portal-icon[data-v-59a866a7]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:8px;background:color-mix(in srgb,var(--accent, #2563eb) 12%,white);color:var(--accent, #2563eb);font-size:1.15rem;font-weight:700}.portal-card-body[data-v-59a866a7]{flex:1;min-width:0}.portal-card-body h2[data-v-59a866a7]{margin:0 0 .35rem;font-size:1.05rem;font-weight:600;color:#18181b}.portal-card-body p[data-v-59a866a7]{margin:0;font-size:.85rem;line-height:1.45;color:#71717a}.portal-arrow[data-v-59a866a7]{flex-shrink:0;align-self:center;font-size:1.1rem;color:#a1a1aa;transition:transform .15s ease,color .15s ease}.portal-card:hover .portal-arrow[data-v-59a866a7]{transform:translate(3px);color:var(--accent, #2563eb)}.empty-state[data-v-59a866a7]{text-align:center;padding:2rem 1.5rem}.empty-state p[data-v-59a866a7]{margin:0 0 1rem;color:#71717a}.back-link[data-v-59a866a7]{color:#2563eb;text-decoration:none;font-size:.9rem}.back-link[data-v-59a866a7]:hover{text-decoration:underline}.admin-back[data-v-31e50ccf]{margin-bottom:1rem}.admin-back a[data-v-31e50ccf]{color:#2563eb;text-decoration:none;font-size:.9rem;font-weight:500}.admin-back a[data-v-31e50ccf]:hover{text-decoration:underline}.muted[data-v-5fe3306b]{color:#71717a}.small[data-v-5fe3306b]{font-size:.85rem}.ok[data-v-5fe3306b]{color:#15803d;font-size:.9rem}.tabs[data-v-5fe3306b]{display:flex;gap:.5rem;margin:1rem 0}.tabs button[data-v-5fe3306b]{padding:.5rem 1rem;border:1px solid #d4d4d8;background:#fff;cursor:pointer;border-radius:6px}.tabs button.active[data-v-5fe3306b]{background:#2563eb;color:#fff;border-color:#2563eb}.perm-grid[data-v-5fe3306b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.35rem;margin:1rem 0;max-height:360px;overflow:auto}.perm-item[data-v-5fe3306b]{font-size:.85rem;display:flex;gap:.35rem;align-items:flex-start;justify-content:flex-start;text-align:left;width:100%;cursor:pointer}.perm-item input[type=checkbox][data-v-5fe3306b]{display:inline-block;width:auto;margin:.15rem 0 0;flex-shrink:0}.field-label[data-v-5fe3306b]{display:block;font-size:.85rem;font-weight:600}.muted[data-v-b1385109]{color:#71717a}.small[data-v-b1385109]{font-size:.85rem;margin-top:-.25rem;margin-bottom:1rem}.structure-breadcrumb[data-v-b1385109]{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin:0 0 1rem;padding:.65rem .85rem;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:6px;font-size:.9rem}.crumb[data-v-b1385109]{background:none;border:none;padding:0;color:#2563eb;font-weight:600;cursor:pointer}.crumb[data-v-b1385109]:hover{text-decoration:underline}.crumb.current[data-v-b1385109]{color:#27272a;cursor:default;text-decoration:none}.crumb-sep[data-v-b1385109]{color:#a1a1aa}.structure-toolbar[data-v-b1385109]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.structure-level-title[data-v-b1385109]{margin:0;font-size:1.05rem}.structure-table .row-clickable[data-v-b1385109]{cursor:pointer}.col-actions[data-v-b1385109]{width:1%;white-space:nowrap;text-align:right}.row-action[data-v-b1385109]{background:none;border:none;padding:.15rem .4rem;color:#2563eb;font-size:.85rem;font-weight:600;cursor:pointer}.row-action[data-v-b1385109]:hover{text-decoration:underline}.row-action.danger[data-v-b1385109]{color:#dc2626}.row-action+.row-action[data-v-b1385109]{margin-left:.35rem}.linkish[data-v-b1385109]{background:none;border:none;padding:0;color:#1d4ed8;font-weight:600;cursor:pointer;text-decoration:underline}.ok[data-v-b1385109]{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:.5rem .75rem;font-size:.9rem;margin-bottom:1rem}.error[data-v-b1385109]{margin-bottom:1rem}.empty[data-v-b1385109]{margin:.5rem 0 0;padding:1rem;text-align:center;color:#71717a;background:#fafafa;border:1px dashed #d4d4d8;border-radius:6px;font-size:.9rem}.empty.inline[data-v-b1385109]{padding:.65rem .75rem;text-align:left}.tabs[data-v-b1385109]{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.tabs button[data-v-b1385109]{padding:.5rem 1rem;border:1px solid #d4d4d8;background:#fff;cursor:pointer;border-radius:6px;font-size:.9rem}.tabs button.active[data-v-b1385109]{background:#2563eb;color:#fff;border-color:#2563eb}.add-form[data-v-b1385109]{background:#fafafa;border:1px solid #e4e4e7;border-radius:8px;padding:1rem;margin-bottom:1.25rem}.add-form.compact[data-v-b1385109]{margin-bottom:.75rem}.form-grid[data-v-b1385109]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem 1.25rem;align-items:end}.field[data-v-b1385109]{display:flex;flex-direction:column;gap:.4rem;min-width:0}.field.grow[data-v-b1385109]{grid-column:span 1}.field-action[data-v-b1385109]{justify-content:flex-end}.field-label[data-v-b1385109]{font-size:.8rem;font-weight:600;color:#52525b;line-height:1.2;min-height:1rem}.field input[data-v-b1385109],.field select[data-v-b1385109]{display:block;width:100%;max-width:none;margin:0;padding:0 .65rem;height:2.375rem;box-sizing:border-box;border:1px solid #d4d4d8;border-radius:6px;font-size:.9rem;background:#fff}.field input[data-v-b1385109]:focus,.field select[data-v-b1385109]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.checkbox-field[data-v-b1385109]{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:#3f3f46;cursor:pointer;margin:0}.checkbox-field input[type=checkbox][data-v-b1385109]{width:1rem;height:1rem;margin:0;flex-shrink:0}.field-action .primary[data-v-b1385109]{margin:0;white-space:nowrap}.cascade[data-v-b1385109]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;padding:1rem;background:#fafafa;border:1px solid #e4e4e7;border-radius:8px}.cascade-row[data-v-b1385109]{display:grid;gap:.75rem 1rem}.cascade-row-2[data-v-b1385109]{grid-template-columns:1fr 1fr}.cascade-row-3[data-v-b1385109]{grid-template-columns:1fr 1fr 1fr}.structure-path[data-v-b1385109]{margin:0;padding:.65rem .85rem;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:6px;font-size:.95rem;font-weight:500;color:#27272a}.cascade-field[data-v-b1385109] .searchable-select{margin:0;max-width:none}.cascade-field[data-v-b1385109] .trigger{height:2.375rem;box-sizing:border-box}.select-with-add[data-v-b1385109]{display:flex;align-items:center;gap:.5rem}.select-with-add[data-v-b1385109] .searchable-select{flex:1;min-width:0}.add-circle[data-v-b1385109]{flex-shrink:0;width:2.375rem;height:2.375rem;border-radius:999px;border:1px solid #d4d4d8;background:#fff;color:#2563eb;font-size:1.25rem;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.add-circle[data-v-b1385109]:hover:not(:disabled){background:#eff6ff;border-color:#2563eb}.add-circle[data-v-b1385109]:disabled{opacity:.45;cursor:not-allowed;color:#a1a1aa}.edit-circle[data-v-b1385109]{flex-shrink:0;width:2.375rem;height:2.375rem;border-radius:999px;border:1px solid #d4d4d8;background:#fff;color:#52525b;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.edit-circle[data-v-b1385109]:hover:not(:disabled){background:#f4f4f5;border-color:#a1a1aa;color:#18181b}.edit-circle[data-v-b1385109]:disabled{opacity:.45;cursor:not-allowed;color:#a1a1aa}.modal-backdrop[data-v-b1385109]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000059;display:flex;align-items:center;justify-content:center;padding:1rem}.modal[data-v-b1385109]{width:100%;max-width:380px;background:#fff;border-radius:10px;padding:1.25rem;box-shadow:0 12px 32px #0000002e}.modal-enroll[data-v-b1385109]{max-width:560px;max-height:min(90vh,720px);overflow-y:auto}.form-section[data-v-b1385109]{display:flex;flex-direction:column;gap:.65rem}.form-section h4[data-v-b1385109]{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#71717a}.form-section+.form-section[data-v-b1385109]{padding-top:.75rem;border-top:1px solid #e4e4e7}.modal-form-grid[data-v-b1385109]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-form-grid .span-2[data-v-b1385109]{grid-column:span 2}.modal-form-grid .field[data-v-b1385109] .searchable-select{margin:0;max-width:none}.modal-form-grid .field[data-v-b1385109] .trigger{height:2.375rem;box-sizing:border-box}.enroll-header[data-v-b1385109]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.enroll-header h2[data-v-b1385109]{margin:0}.enroll-header .primary[data-v-b1385109]{margin:0;white-space:nowrap;flex-shrink:0}.enroll-filters[data-v-b1385109]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:.75rem}.enroll-filters .picker-field[data-v-b1385109]{flex:1;min-width:160px;max-width:none;margin-bottom:0}.enroll-filters .picker-field[data-v-b1385109] .searchable-select{margin:0;max-width:none}.enroll-search-row[data-v-b1385109]{display:flex;justify-content:flex-end;margin-bottom:1rem}.enroll-search[data-v-b1385109]{width:100%;max-width:280px;margin:0}.enroll-search input[data-v-b1385109]{display:block;width:100%;margin:0;padding:0 .65rem;height:2.375rem;box-sizing:border-box;border:1px solid #d4d4d8;border-radius:6px;font-size:.9rem;background:#fff}.enroll-search input[data-v-b1385109]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.modal h3[data-v-b1385109]{margin:0 0 1rem;font-size:1.05rem}.modal-form[data-v-b1385109]{display:flex;flex-direction:column;gap:.75rem}.modal-actions[data-v-b1385109]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem;padding-top:.75rem;border-top:1px solid #e4e4e7}.modal-actions .primary[data-v-b1385109],.modal-actions .secondary[data-v-b1385109]{margin:0}.table-wrap[data-v-b1385109]{overflow-x:auto;border:1px solid #e4e4e7;border-radius:8px}.data-table[data-v-b1385109]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-b1385109],.data-table td[data-v-b1385109]{text-align:left;padding:.65rem .85rem;border-bottom:1px solid #e4e4e7}.data-table tbody tr:last-child td[data-v-b1385109]{border-bottom:none}.data-table tbody tr[data-v-b1385109]:hover{background:#fafafa}.data-table th[data-v-b1385109]{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:#71717a;background:#fafafa}.cell-name[data-v-b1385109]{font-weight:600;color:#18181b}.cell-period[data-v-b1385109]{color:#3f3f46;white-space:nowrap}.col-status[data-v-b1385109],.col-code[data-v-b1385109]{width:1%;white-space:nowrap}.badge[data-v-b1385109]{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.current[data-v-b1385109]{background:#dcfce7;color:#166534}.code-badge[data-v-b1385109]{display:inline-block;padding:.1rem .45rem;background:#f4f4f5;border-radius:4px;font-family:ui-monospace,monospace;font-size:.8rem;color:#52525b}.picker-field[data-v-b1385109]{max-width:420px;margin-bottom:1rem}.picker-field[data-v-b1385109] .searchable-select{margin:0}.perm-grid[data-v-b1385109]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.35rem;margin:1rem 0;padding:.75rem;background:#fafafa;border:1px solid #e4e4e7;border-radius:8px;max-height:320px;overflow-y:auto}.perm-item[data-v-b1385109]{font-size:.85rem;display:flex;gap:.35rem;align-items:flex-start;cursor:pointer}.perm-item input[type=checkbox][data-v-b1385109]{width:auto;margin:.15rem 0 0;flex-shrink:0}.head[data-v-f6e804e3]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.muted[data-v-f6e804e3]{color:#71717a}.small[data-v-f6e804e3]{font-size:.8rem}.ok[data-v-f6e804e3]{color:#15803d;font-size:.9rem;margin-bottom:.5rem}.table-wrap[data-v-f6e804e3]{overflow-x:auto}.user-filters[data-v-f6e804e3]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:.75rem}.user-filters .picker-field[data-v-f6e804e3]{flex:0 0 auto;min-width:200px;max-width:280px;margin-bottom:0}.user-filters .picker-field[data-v-f6e804e3] .searchable-select{margin:0;max-width:none}.user-search-row[data-v-f6e804e3]{display:flex;justify-content:flex-end;margin-bottom:1rem}.user-search[data-v-f6e804e3]{width:100%;max-width:280px;margin:0}.field[data-v-f6e804e3]{display:flex;flex-direction:column;gap:.4rem;min-width:0}.field-label[data-v-f6e804e3]{font-size:.8rem;font-weight:600;color:#52525b;line-height:1.2;min-height:1rem}.user-search input[data-v-f6e804e3]{display:block;width:100%;margin:0;padding:0 .65rem;height:2.375rem;box-sizing:border-box;border:1px solid #d4d4d8;border-radius:6px;font-size:.9rem;background:#fff}.user-search input[data-v-f6e804e3]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.users-table[data-v-f6e804e3]{width:100%;border-collapse:collapse;font-size:.9rem}.users-table th[data-v-f6e804e3],.users-table td[data-v-f6e804e3]{text-align:left;padding:.6rem .5rem;border-bottom:1px solid #e4e4e7;vertical-align:top}.linkish[data-v-f6e804e3]{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.85rem;padding:0}.modal-backdrop[data-v-f6e804e3]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000059;display:flex;align-items:center;justify-content:center;padding:1rem}.modal[data-v-f6e804e3]{width:100%;max-width:420px;max-height:min(90vh,640px);overflow-y:auto;background:#fff;border-radius:10px;padding:1.25rem;box-shadow:0 12px 32px #0000002e}.modal h3[data-v-f6e804e3]{margin:0 0 1rem;font-size:1.05rem}.modal-form[data-v-f6e804e3]{display:flex;flex-direction:column;gap:.75rem}.modal-form .field input[data-v-f6e804e3]{display:block;width:100%;max-width:none;margin:0;padding:0 .65rem;height:2.375rem;box-sizing:border-box;border:1px solid #d4d4d8;border-radius:6px;font-size:.9rem;background:#fff}.modal-form .field input[data-v-f6e804e3]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.form-section[data-v-f6e804e3]{display:flex;flex-direction:column;gap:.5rem}.role-grid[data-v-f6e804e3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.35rem}.checkbox-field[data-v-f6e804e3]{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:#3f3f46;cursor:pointer;margin:0}.checkbox-field input[type=checkbox][data-v-f6e804e3]{width:1rem;height:1rem;margin:0;flex-shrink:0}.modal-actions[data-v-f6e804e3]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem;padding-top:.75rem;border-top:1px solid #e4e4e7}.modal-actions .primary[data-v-f6e804e3],.modal-actions .secondary[data-v-f6e804e3]{margin:0}.muted[data-v-6c6ad1a0]{color:#71717a}.small[data-v-6c6ad1a0]{font-size:.85rem}.ok[data-v-6c6ad1a0]{color:#15803d;font-size:.9rem}.error[data-v-6c6ad1a0]{color:#b91c1c;margin:.5rem 0}.toolbar[data-v-6c6ad1a0]{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.app-card[data-v-6c6ad1a0]{margin-bottom:1rem}.app-card.locked[data-v-6c6ad1a0]{opacity:.92}.app-head[data-v-6c6ad1a0]{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:.75rem}.app-head h2[data-v-6c6ad1a0]{margin:0;font-size:1.1rem}.status-field[data-v-6c6ad1a0]{min-width:220px}.field-label[data-v-6c6ad1a0]{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.perm-grid[data-v-6c6ad1a0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.35rem;margin:.5rem 0 0}.perm-item[data-v-6c6ad1a0]{font-size:.85rem;display:flex;gap:.35rem;align-items:flex-start;justify-content:flex-start;text-align:left;width:100%;cursor:pointer}.perm-item input[type=checkbox][data-v-6c6ad1a0]{display:inline-block;width:auto;margin:.15rem 0 0;flex-shrink:0}.admin-back[data-v-b4d6a6c6]{margin-bottom:1rem}.import-grid[data-v-b4d6a6c6]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.import-card h2[data-v-b4d6a6c6]{margin:0 0 .25rem;font-size:1.1rem}.file-input[data-v-b4d6a6c6]{display:block;margin:.75rem 0;width:100%}.result-panel[data-v-b4d6a6c6]{margin-top:.75rem;padding:.5rem .75rem;background:#f4f4f5;border-radius:6px;font-size:.85rem}.error-list[data-v-b4d6a6c6]{margin:.5rem 0 0;padding-left:1.25rem;font-size:.8rem;color:#b91c1c}.muted[data-v-b4d6a6c6]{color:#71717a}.small[data-v-b4d6a6c6]{font-size:.85rem}.error[data-v-b4d6a6c6]{color:#b91c1c;margin-bottom:1rem}.item[data-v-93ea12c8]{padding:.65rem 0;border-bottom:1px solid #f4f4f5}.muted[data-v-93ea12c8]{color:#71717a;font-size:.9rem}.small[data-v-93ea12c8]{font-size:.8rem}.error[data-v-93ea12c8]{color:#b91c1c}.item[data-v-aa725f46]{display:block;width:100%;text-align:left;padding:.65rem 0;border:none;border-bottom:1px solid #f4f4f5;background:none;cursor:pointer}.link[data-v-aa725f46]:hover{background:#f8fafc}.back[data-v-aa725f46]{background:none;border:none;color:#2563eb;cursor:pointer;margin-bottom:.75rem}.muted[data-v-aa725f46]{color:#71717a;font-size:.9rem}.item[data-v-14f42a95]{padding:.5rem 0;border-bottom:1px solid #f4f4f5}.muted[data-v-14f42a95]{color:#71717a}.item[data-v-3a17c221]{padding:.5rem 0;border-bottom:1px solid #f4f4f5}.muted[data-v-3a17c221]{color:#71717a;font-size:.9rem}.small[data-v-3a17c221]{font-size:.8rem}.muted[data-v-2617fc05]{color:#71717a}.small[data-v-2617fc05]{font-size:.85rem;margin-top:-.25rem;margin-bottom:1rem}.empty[data-v-2617fc05]{margin:.5rem 0 0;padding:1rem;text-align:center;color:#71717a;background:#fafafa;border:1px dashed #d4d4d8;border-radius:6px;font-size:.9rem}.empty.inline[data-v-2617fc05]{padding:.65rem .75rem;text-align:left}.item[data-v-2617fc05]{display:block;width:100%;text-align:left;padding:.75rem 0;border:none;border-bottom:1px solid #f4f4f5;background:none;cursor:pointer}.item.unread[data-v-2617fc05]{background:#eff6ff;margin:0 -1rem;padding-left:1rem;padding-right:1rem}.hint[data-v-2617fc05]{font-size:.8rem;color:#2563eb;margin:.25rem 0 0}.announcement[data-v-2617fc05]{padding:.75rem 0;border-bottom:1px solid #f4f4f5}.announcement[data-v-2617fc05]:last-child{border-bottom:none}.body[data-v-2617fc05]{margin:.35rem 0 0;color:#3f3f46;font-size:.9rem}.item[data-v-af01071b]{padding:.65rem 0;border-bottom:1px solid #f4f4f5;display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.muted[data-v-af01071b]{color:#71717a}.small[data-v-af01071b]{font-size:.8rem;padding:.25rem .5rem}.link[data-v-af01071b]{color:#0f766e}.ok[data-v-af01071b]{color:#15803d}.error[data-v-af01071b]{color:#b91c1c}.item[data-v-6234ad04]{display:block;padding:.65rem 0;border-bottom:1px solid #f4f4f5;text-decoration:none;color:inherit}.link[data-v-6234ad04]:hover{background:#f8fafc}.muted[data-v-6234ad04]{color:#71717a}.item[data-v-b5fd7323]{padding:.5rem 0;border-bottom:1px solid #f4f4f5}.muted[data-v-b5fd7323]{color:#71717a}.ok[data-v-b5fd7323]{color:#15803d}
