:root,[data-theme=dark]{--st-bg-page: #0f172a;--st-bg-surface: #1e293b;--st-bg-subtle: #162032;--st-bg-hover: #243044;--st-border: #334155;--st-border-strong: #475569;--st-text-primary: #f1f5f9;--st-text-secondary: #94a3b8;--st-text-muted: #64748b;--st-primary: #818cf8;--st-primary-bg: #1e1b4b;--st-primary-text: #a5b4fc;--st-green: #34d399;--st-green-bg: #064e3b;--st-green-text: #6ee7b7;--st-green-border: #065f46;--st-amber: #fbbf24;--st-amber-bg: #451a03;--st-amber-text: #fcd34d;--st-amber-border: #78350f;--st-red: #f87171;--st-red-bg: #450a0a;--st-red-text: #fca5a5;--st-red-border: #7f1d1d;--st-blue: #60a5fa;--st-blue-bg: #0c1e3e;--st-blue-text: #93c5fd;--st-blue-border: #1e3a5f;--st-purple: #a78bfa;--st-purple-bg: #1e1240;--st-purple-text: #c4b5fd;--st-purple-border: #3b2063;--st-shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--st-shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--st-radius-sm: 8px;--st-radius-md: 12px;--st-radius-lg: 16px}[data-theme=light]{--st-bg-page: #f3f4f6;--st-bg-surface: #ffffff;--st-bg-subtle: #f9fafb;--st-bg-hover: #f3f4f6;--st-border: #e5e7eb;--st-border-strong: #d1d5db;--st-text-primary: #111827;--st-text-secondary: #6b7280;--st-text-muted: #9ca3af;--st-primary: #4f46e5;--st-primary-bg: #eef2ff;--st-primary-text: #3730a3;--st-green: #059669;--st-green-bg: #ecfdf5;--st-green-text: #065f46;--st-green-border: #6ee7b7;--st-amber: #d97706;--st-amber-bg: #fffbeb;--st-amber-text: #92400e;--st-amber-border: #fde68a;--st-red: #ef4444;--st-red-bg: #fef2f2;--st-red-text: #b91c1c;--st-red-border: #fecaca;--st-blue: #2563eb;--st-blue-bg: #eff6ff;--st-blue-text: #1e40af;--st-blue-border: #bfdbfe;--st-purple: #7c3aed;--st-purple-bg: #f5f3ff;--st-purple-text: #6d28d9;--st-purple-border: #ddd6fe;--st-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--st-shadow-md: 0 4px 12px rgba(0, 0, 0, .08)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-hover) 25%,var(--color-divider) 50%,var(--color-hover) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite;border-radius:var(--radius-md)}.skeleton--sm{background:linear-gradient(90deg,var(--color-hover) 25%,var(--color-divider) 50%,var(--color-hover) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite;border-radius:var(--radius-sm)}.skeleton--round{background:linear-gradient(90deg,var(--color-hover) 25%,var(--color-divider) 50%,var(--color-hover) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite;border-radius:9999px}.page-wrapper{min-height:100vh;background:var(--color-bg-main);padding:24px;box-sizing:border-box}@media (max-width: 768px){.page-wrapper{padding:16px}}.page-wrapper--centred{max-width:960px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}.page-header__info h1{margin:0 0 4px;font-size:1.5rem;font-weight:700;color:var(--color-text-primary);line-height:1.3}.page-header__info p{margin:0;font-size:.875rem;color:var(--color-text-secondary)}.page-header__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.section-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:20px;box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease}.section-card:hover{box-shadow:var(--shadow-md)}.section-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--color-divider);background:color-mix(in srgb,var(--color-bg-surface) 60%,var(--color-bg-card))}.section-header mat-icon{font-size:20px;height:20px;width:20px;color:var(--color-primary);flex-shrink:0}.section-header__title{font-size:.92rem;font-weight:700;color:var(--color-text-primary)}.section-body{padding:20px}@media (max-width: 640px){.section-body{padding:14px}}.form-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 640px){.form-grid-2{grid-template-columns:1fr}}.form-grid-2 mat-form-field{width:100%}.form-grid-2 .col-full,.form-grid-2 .col-span-2{grid-column:1/-1}.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 860px){.form-grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.form-grid-3{grid-template-columns:1fr}}.form-grid-3 mat-form-field{width:100%}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:320px}.loading-overlay p{margin:0;font-size:.9rem;color:var(--color-text-secondary)}.icon-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease;padding:0;font-family:inherit}.icon-btn mat-icon{font-size:20px;height:20px;width:20px}.icon-btn:hover{background:var(--color-hover);color:var(--color-text-primary);border-color:var(--color-primary)}.icon-btn--sm{width:32px;height:32px}.icon-btn--sm mat-icon{font-size:16px;height:16px;width:16px}.field-edit-btn{flex-shrink:0;width:32px;height:32px;margin-top:12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;padding:0;min-width:unset;font-family:inherit}.field-edit-btn mat-icon{font-size:15px;height:15px;width:15px}.field-edit-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.field-edit-btn.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.step-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;font-family:inherit;border:none;transition:all .15s ease;line-height:1}.step-btn mat-icon{font-size:18px;height:18px;width:18px}.step-btn--primary{background:var(--persona-color, var(--color-primary));color:#fff}.step-btn--primary:hover:not([disabled]){opacity:.88}.step-btn--primary[disabled]{opacity:.45;cursor:not-allowed}.step-btn--secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.step-btn--secondary:hover{background:var(--color-hover);color:var(--color-text-primary)}.step-btn--ghost{background:transparent;color:var(--color-text-muted);padding:9px 12px}.step-btn--ghost:hover{color:var(--color-text-secondary);text-decoration:underline}.step-btn--submit{padding:9px 24px}.perm-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease}.perm-toggle-btn mat-icon{font-size:15px;height:15px;width:15px}.perm-toggle-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.perm-toggle-btn--active{border-color:var(--color-error);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 6%,transparent)}.perm-action-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid;background:transparent;font-size:.7rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease}.perm-action-btn mat-icon{font-size:12px;height:12px;width:12px}.perm-action-btn--deny{border-color:color-mix(in srgb,var(--color-error) 25%,transparent);color:var(--color-error)}.perm-action-btn--deny:hover{background:color-mix(in srgb,var(--color-error) 8%,transparent)}.perm-action-btn--restore{border-color:color-mix(in srgb,var(--color-success) 25%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.perm-action-btn--restore:hover{background:color-mix(in srgb,var(--color-success) 8%,transparent)}.perm-save-btn,.perm-cancel-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;border:1px solid}.perm-save-btn mat-icon,.perm-cancel-btn mat-icon{font-size:15px;height:15px;width:15px}.perm-save-btn[disabled],.perm-cancel-btn[disabled]{opacity:.45;cursor:not-allowed}.perm-cancel-btn{border-color:var(--color-border);background:transparent;color:var(--color-text-secondary)}.perm-cancel-btn:hover:not([disabled]){background:var(--color-hover);color:var(--color-text-primary)}.perm-save-btn{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.perm-save-btn:hover:not([disabled]){opacity:.88}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:20px 0 4px;flex-wrap:wrap}@media (max-width: 420px){.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.info-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:.82rem;line-height:1.6}.info-card mat-icon{font-size:18px;height:18px;width:18px;flex-shrink:0;margin-top:1px}.info-card strong{display:block;font-size:.84rem;font-weight:700;margin-bottom:2px}.info-card p{margin:0;opacity:.85}.info-card--blue{background:color-mix(in srgb,var(--color-info) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-info) 18%,transparent);color:color-mix(in srgb,var(--color-info) 70%,var(--color-text-primary))}.info-card--blue mat-icon{color:var(--color-info)}.info-card--amber{background:color-mix(in srgb,var(--color-warning) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-warning) 18%,transparent);color:color-mix(in srgb,var(--color-warning) 60%,var(--color-text-primary))}.info-card--amber mat-icon{color:var(--color-warning)}.info-card--green{background:color-mix(in srgb,var(--color-success) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 18%,transparent);color:color-mix(in srgb,var(--color-success) 60%,var(--color-text-primary))}.info-card--green mat-icon{color:var(--color-success)}.info-card--muted{background:var(--color-hover);border:1px solid var(--color-divider);color:var(--color-text-secondary)}.info-card--muted mat-icon{color:var(--color-primary)}.subsection-header{display:flex;align-items:center;gap:8px;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-divider);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.subsection-header:first-of-type{margin-top:0}.subsection-header mat-icon{font-size:15px;height:15px;width:15px;color:var(--color-primary)}.checkbox-row{display:flex;flex-direction:column;gap:4px;padding:8px 0}.checkbox-row.col-full,.checkbox-row.col-span-2{grid-column:1/-1}.checkbox-hint{margin:0 0 0 28px;font-size:.72rem;color:var(--color-text-muted);line-height:1.4}.facilities-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;grid-column:1/-1}.facility-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 8px;border-radius:9999px;border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:.78rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s ease}.facility-chip__icon{font-size:15px;height:15px;width:15px;flex-shrink:0}.facility-chip:hover:not(.facility-chip--selected){border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.facility-chip--selected{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:var(--color-success);color:color-mix(in srgb,var(--color-success) 70%,var(--color-text-primary))}.facility-chip--selected .facility-chip__icon{color:var(--color-success)}.facility-chip:disabled{opacity:.55;cursor:not-allowed}.status-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:9999px;font-size:.72rem;font-weight:700;border:1px solid transparent}.status-chip mat-icon{font-size:12px;height:12px;width:12px}.status-chip--success{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000);border-color:color-mix(in srgb,var(--color-success) 20%,transparent)}.status-chip--error{background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 20%,transparent)}.status-chip--warning{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000);border-color:color-mix(in srgb,var(--color-warning) 20%,transparent)}.status-chip--primary{background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 20%,transparent)}.status-chip--muted{background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted)}.role-chip{padding:1px 6px;border-radius:9999px;font-size:.66rem;font-weight:600}.role-chip--primary-marker{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000)}.role-chip--staff{background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary)}.role-chip--student{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.role-chip--parent{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000)}.edit-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);font-size:.78rem;font-weight:700;border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent)}.edit-badge mat-icon{font-size:14px;height:14px;width:14px}.success-banner{display:flex;align-items:flex-start;gap:16px;padding:20px;background:color-mix(in srgb,var(--color-success) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 25%,transparent);border-radius:var(--radius-md)}.success-banner__icon mat-icon{font-size:28px;height:28px;width:28px;color:var(--color-success)}.success-banner h3{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--color-text-primary)}.success-banner p{margin:0;font-size:.85rem;color:var(--color-text-secondary);line-height:1.5}.field-wrapper{position:relative;display:flex;align-items:flex-start;gap:8px}.field-wrapper .field-input{flex:1;min-width:0;transition:opacity .2s ease;width:100%}.field-wrapper--locked .field-input{opacity:.7;pointer-events:none}.field-wrapper--unlocked .field-input{opacity:1}.field-wrapper.col-span-2,.field-wrapper.col-full{grid-column:1/-1}.optional-label{font-size:.7rem;font-weight:400;color:var(--color-text-muted);margin-left:4px}.table-card{background:var(--color-bg-card);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden;box-shadow:var(--shadow-sm)}.overflow-x{overflow-x:auto}.table-info-bar{padding:10px 16px;background:var(--color-hover);border-bottom:1px solid var(--color-border);font-size:.78rem;color:var(--color-text-secondary);font-weight:500}@media (min-width: 768px){.table-info-bar{padding:10px 18px}}.data-table{width:100%;border-collapse:collapse;min-width:640px}.data-table thead tr{background:var(--color-hover)}.data-table th{padding:12px 14px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-secondary);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}@media (min-width: 768px){.data-table th{padding:13px 16px;font-size:.72rem}}.data-table td{padding:12px 14px;font-size:.85rem;color:var(--color-text-primary);border-bottom:1px solid var(--color-divider);vertical-align:middle}@media (min-width: 768px){.data-table td{padding:14px 16px;font-size:.88rem}}.data-table .table-row{transition:background .12s ease}.data-table .table-row:hover{background:var(--color-hover)}.data-table .table-row:last-child td{border-bottom:none}.data-table .col-action{text-align:right;width:1%;white-space:nowrap}.cell-text{font-size:.875rem;color:var(--color-text-secondary)}.cell-muted{font-size:.875rem;color:var(--color-text-muted)}.student-cell{display:flex;align-items:center;gap:10px;min-width:180px}@media (min-width: 768px){.student-cell{gap:12px;min-width:200px}}.avatar-sm{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}@media (min-width: 768px){.avatar-sm{width:38px;height:38px}}.avatar-sm.avatar-inactive{opacity:.4;filter:grayscale(100%)}.avatar-initials{width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease;-webkit-user-select:none;user-select:none}@media (min-width: 768px){.avatar-initials{width:38px;height:38px;font-size:.75rem}}.avatar-initials.avatar-inactive{background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted)}.student-cell-info{display:flex;flex-direction:column;gap:2px;min-width:0}.cell-name{font-size:.875rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-name.name-inactive{color:var(--color-text-muted);text-decoration:line-through;text-decoration-color:var(--color-text-muted)}.cell-sub{font-size:.72rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width: 768px){.cell-sub{font-size:.75rem}}.search-bar{margin-bottom:14px}@media (min-width: 768px){.search-bar{margin-bottom:16px}}.search-bar .search-field{width:100%}@media (min-width: 768px){.search-bar .search-field{max-width:560px}}.active-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}@media (min-width: 768px){.active-filter-bar{gap:10px;margin-bottom:16px}}.active-filter-bar .filter-label{font-size:.78rem;color:var(--color-text-muted);font-weight:500}.active-filter-bar .filter-count{font-size:.78rem;color:var(--color-text-muted);margin-left:auto}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid transparent}.filter-chip mat-icon{font-size:14px;height:14px;width:14px}.filter-chip .chip-clear{width:20px!important;height:20px!important;line-height:20px!important;padding:0!important;opacity:.7}.filter-chip .chip-clear mat-icon{font-size:14px;height:14px;width:14px}.filter-chip.filter-chip--primary{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 25%,transparent)}.filter-chip.filter-chip--info{background:color-mix(in srgb,var(--color-info) 12%,transparent);color:var(--color-info);border-color:color-mix(in srgb,var(--color-info) 25%,transparent)}.filter-chip.filter-chip--warning{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000);border-color:color-mix(in srgb,var(--color-warning) 25%,transparent)}.filter-chip.filter-chip--error{background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 25%,transparent)}.filter-chip.filter-chip--success{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000);border-color:color-mix(in srgb,var(--color-success) 25%,transparent)}.load-more-bar{display:flex;justify-content:center;padding:14px 16px;border-top:1px solid var(--color-divider);background:var(--color-hover)}@media (min-width: 768px){.load-more-bar{padding:16px}}.load-more-btn{min-width:160px;gap:8px;font-size:.875rem!important;color:var(--color-text-secondary)!important}@media (min-width: 768px){.load-more-btn{min-width:200px}}.load-more-btn:hover{color:var(--color-primary)!important;border-color:var(--color-primary)!important}.load-more-count{font-size:.78rem;color:var(--color-text-muted);margin-left:4px}.cell-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end;flex-wrap:nowrap}.cell-actions-row{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:nowrap}.action-btn{color:var(--color-text-secondary)!important;transition:color .15s ease}.action-btn:hover{color:var(--color-primary)!important}.blood-badge{display:inline-block;background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error);padding:2px 8px;border-radius:4px;font-size:.78rem;font-weight:700}.roll-chip{display:inline-block;font-size:.72rem;font-weight:700;font-family:Courier New,monospace;background:var(--color-hover);color:var(--color-text-secondary);padding:1px 7px;border-radius:4px;border:1px solid var(--color-border);width:fit-content}.capacity-note{font-size:.78rem;color:var(--color-text-muted);margin-left:4px}.empty-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}@media (min-width: 640px){.stats-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:22px}}.stat-card{display:flex;align-items:center;gap:10px;background:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:12px 14px;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;position:relative;box-shadow:var(--shadow-sm);text-align:left;font-family:inherit}@media (min-width: 768px){.stat-card{padding:14px 18px;gap:12px}}.stat-card:hover{border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);box-shadow:0 2px 12px color-mix(in srgb,var(--color-primary) 12%,transparent);transform:translateY(-1px)}.stat-card.active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg-card));box-shadow:0 2px 14px color-mix(in srgb,var(--color-primary) 15%,transparent)}.stat-card.active .stat-card__count{color:var(--color-primary)}.stat-card.stat-card--info{cursor:default}.stat-card.stat-card--info:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--color-border)}.stat-card__icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}@media (min-width: 768px){.stat-card__icon{width:40px;height:40px}}.stat-card__icon mat-icon{font-size:18px;height:18px;width:18px}@media (min-width: 768px){.stat-card__icon mat-icon{font-size:20px;height:20px;width:20px}}.stat-card__icon.icon-default{background:color-mix(in srgb,var(--color-text-muted) 10%,transparent)}.stat-card__icon.icon-default mat-icon{color:var(--color-text-secondary)}.stat-card__icon.icon-primary{background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.stat-card__icon.icon-primary mat-icon{color:var(--color-primary)}.stat-card__icon.icon-info{background:color-mix(in srgb,var(--color-info) 12%,transparent)}.stat-card__icon.icon-info mat-icon{color:var(--color-info)}.stat-card__icon.icon-success{background:color-mix(in srgb,var(--color-success) 10%,transparent)}.stat-card__icon.icon-success mat-icon{color:var(--color-success)}.stat-card__icon.icon-warning{background:color-mix(in srgb,var(--color-warning) 12%,transparent)}.stat-card__icon.icon-warning mat-icon{color:var(--color-warning)}.stat-card__icon.icon-error{background:color-mix(in srgb,var(--color-error) 12%,transparent)}.stat-card__icon.icon-error mat-icon{color:var(--color-error)}.stat-card__icon.icon-secondary{background:color-mix(in srgb,var(--color-secondary) 10%,transparent)}.stat-card__icon.icon-secondary mat-icon{color:var(--color-secondary)}.stat-card__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.stat-card__count{font-size:1.35rem;font-weight:700;color:var(--color-text-primary);line-height:1;transition:color .18s ease}@media (min-width: 768px){.stat-card__count{font-size:1.5rem}}.stat-card__label{font-size:.68rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width: 768px){.stat-card__label{font-size:.72rem}}.stat-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%}@media (min-width: 768px){.stat-dot{top:10px;right:10px;width:8px;height:8px}}.stat-dot.stat-dot--primary{background:var(--color-primary);animation:stat-pulse 2s ease-in-out infinite}.stat-dot.stat-dot--info{background:var(--color-info);animation:stat-pulse 2s ease-in-out infinite}.stat-dot.stat-dot--success{background:var(--color-success);animation:stat-pulse 2s ease-in-out infinite}.stat-dot.stat-dot--warning{background:var(--color-warning);animation:stat-pulse 2s ease-in-out infinite}.stat-dot.stat-dot--error{background:var(--color-error);animation:stat-pulse 2s ease-in-out infinite}@keyframes stat-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.mini-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}@media (min-width: 768px){.mini-stats{gap:12px;margin-bottom:20px}}.mini-stat{display:flex;align-items:center;gap:8px;background:var(--color-bg-card);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-md);padding:10px 14px;box-shadow:var(--shadow-sm);flex-shrink:0}@media (min-width: 768px){.mini-stat{padding:12px 18px;gap:10px}}.mini-stat .ms-icon{font-size:16px;height:16px;width:16px;flex-shrink:0}@media (min-width: 768px){.mini-stat .ms-icon{font-size:18px;height:18px;width:18px}}.mini-stat .ms-value{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);line-height:1}@media (min-width: 768px){.mini-stat .ms-value{font-size:1.5rem}}.mini-stat .ms-label{font-size:.68rem;color:var(--color-text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}@media (min-width: 768px){.mini-stat .ms-label{font-size:.75rem}}.mini-stat.mini-stat--primary{border-left-color:var(--color-primary)}.mini-stat.mini-stat--primary .ms-value,.mini-stat.mini-stat--primary .ms-icon{color:var(--color-primary)}.mini-stat.mini-stat--info{border-left-color:var(--color-info)}.mini-stat.mini-stat--info .ms-value,.mini-stat.mini-stat--info .ms-icon{color:var(--color-info)}.mini-stat.mini-stat--success{border-left-color:var(--color-success)}.mini-stat.mini-stat--success .ms-value,.mini-stat.mini-stat--success .ms-icon{color:var(--color-success)}.mini-stat.mini-stat--warning{border-left-color:var(--color-warning)}.mini-stat.mini-stat--warning .ms-value,.mini-stat.mini-stat--warning .ms-icon{color:color-mix(in srgb,var(--color-warning) 70%,#000)}.mini-stat.mini-stat--error{border-left-color:var(--color-error)}.mini-stat.mini-stat--error .ms-value,.mini-stat.mini-stat--error .ms-icon{color:var(--color-error)}.mini-stat.mini-stat--muted{border-left-color:var(--color-text-muted)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;border-radius:9px;font-size:.68rem;font-weight:700;padding:0 5px;margin-left:6px}@media (min-width: 768px){.tab-badge{min-width:22px;height:20px;border-radius:10px;font-size:.7rem;padding:0 6px;margin-left:8px}}.tab-badge.tab-badge--primary{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary)}.tab-badge.tab-badge--error{background:color-mix(in srgb,var(--color-error) 13%,transparent);color:var(--color-error)}.tab-badge.tab-badge--warning{background:color-mix(in srgb,var(--color-warning) 13%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000)}.tab-badge.tab-badge--success{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.tab-badge.tab-badge--muted{background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted)}.notif-list{padding:4px 0}.notif-row{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-divider);transition:background .12s}.notif-row:last-child{border-bottom:none}.notif-row:hover{background:var(--color-hover)}@media (max-width: 640px){.notif-row{padding:12px 14px;gap:10px}}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0;margin-top:6px}.notif-content{flex:1;min-width:0}.notif-content .notif-title{margin:0 0 3px;font-size:.9rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-content .notif-msg{margin:0;font-size:.8rem;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-date{font-size:.72rem;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;margin-top:2px}.grades-list{padding:4px 0}.grade-row{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--color-divider);transition:background .12s}.grade-row:last-child{border-bottom:none}.grade-row:hover{background:var(--color-hover)}@media (max-width: 640px){.grade-row{padding:10px 14px}}.grade-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.grade-info .grade-exam{font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.grade-info .grade-remarks{font-size:.78rem;color:var(--color-text-muted)}.grade-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.grade-right .grade-marks{font-size:1.1rem;font-weight:700;color:var(--color-text-primary)}.grade-right .grade-letter{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 15%,transparent);padding:1px 6px;border-radius:4px}.class-list{padding:4px 0}.class-row{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--color-divider);transition:background .12s}.class-row:last-child{border-bottom:none}.class-row:hover{background:var(--color-hover)}@media (max-width: 640px){.class-row{padding:10px 14px;gap:10px}}.class-avatar{width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary);font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.class-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.class-info .class-name{font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.class-info .class-subject{font-size:.78rem;color:var(--color-text-secondary)}.primary-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;background:color-mix(in srgb,var(--color-success) 15%,transparent);color:var(--color-success);border-radius:9999px;flex-shrink:0}.perm-section{border-color:var(--color-border);transition:border-color .2s ease}.perm-section--unlocked{border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);box-shadow:var(--shadow-md),0 0 0 1px color-mix(in srgb,var(--color-primary) 15%,transparent)}.perm-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.perm-section-header__left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.perm-section-header__text{display:flex;flex-direction:column;gap:2px;min-width:0}.perm-section-header__subtitle{font-size:.75rem;color:var(--color-text-secondary);font-weight:400}.perm-section-header__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.perm-cat-badge{display:inline-block;padding:1px 8px;border-radius:9999px;font-size:.72rem;font-weight:700}.perm-cat-badge--staff{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.perm-cat-badge--student{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.perm-cat-badge--parent{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000)}.perm-active-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;font-size:.72rem;font-weight:700;border:1px solid transparent}.perm-active-badge mat-icon{font-size:13px;height:13px;width:13px}.perm-active-badge--grant{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000);border-color:color-mix(in srgb,var(--color-success) 20%,transparent)}.perm-active-badge--deny{background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 20%,transparent)}.perm-guide-bar{padding:0 20px 12px;border-bottom:1px solid var(--color-divider)}.perm-guide-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:transparent;border:none;color:var(--color-text-muted);font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit;border-radius:var(--radius-sm);transition:all .15s ease}.perm-guide-toggle mat-icon{font-size:16px;height:16px;width:16px}.perm-guide-toggle:hover{background:var(--color-hover);color:var(--color-text-primary)}.perm-guide-chevron{transition:transform .2s ease}.perm-guide-chevron--open{transform:rotate(180deg)}.perm-guide-content{margin-top:12px;padding:14px;background:var(--color-hover);border-radius:var(--radius-sm);border:1px solid var(--color-divider)}.perm-guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 640px){.perm-guide-grid{grid-template-columns:1fr}}.perm-guide-card{display:flex;gap:10px;font-size:.8rem;line-height:1.5}.perm-guide-card strong{display:block;font-weight:700;color:var(--color-text-primary);margin-bottom:3px}.perm-guide-card p{margin:0;color:var(--color-text-secondary)}.perm-guide-card em{font-style:italic}.perm-guide-card ol{margin:0;padding-left:16px;color:var(--color-text-secondary)}.perm-guide-card ol li{margin-bottom:4px}.perm-guide-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.perm-guide-icon mat-icon{font-size:18px;height:18px;width:18px}.perm-guide-icon--blue{background:color-mix(in srgb,var(--color-info) 12%,transparent)}.perm-guide-icon--blue mat-icon{color:var(--color-info)}.perm-guide-icon--green{background:color-mix(in srgb,var(--color-success) 12%,transparent)}.perm-guide-icon--green mat-icon{color:var(--color-success)}.perm-guide-icon--red{background:color-mix(in srgb,var(--color-error) 12%,transparent)}.perm-guide-icon--red mat-icon{color:var(--color-error)}.perm-guide-icon--purple{background:color-mix(in srgb,var(--color-secondary) 12%,transparent)}.perm-guide-icon--purple mat-icon{color:var(--color-secondary)}.perm-legend-chip{display:inline-block;padding:1px 7px;border-radius:9999px;font-size:.68rem;font-weight:700}.perm-legend-chip--inherited{background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted)}.perm-legend-chip--granted{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.perm-legend-chip--denied{background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-error)}.perm-locked-body{padding:20px}.perm-empty-state{display:flex;align-items:flex-start;gap:14px;padding:16px;background:var(--color-hover);border-radius:var(--radius-sm)}.perm-empty-state__icon{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--color-text-muted) 10%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.perm-empty-state__icon mat-icon{font-size:22px;height:22px;width:22px;color:var(--color-text-muted)}.perm-empty-state__title{font-size:.9rem;font-weight:700;color:var(--color-text-primary);margin:0 0 4px}.perm-empty-state__desc{font-size:.8rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.perm-locked-summary{display:flex;flex-direction:column;gap:8px}.perm-locked-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:.84rem;border:1px solid transparent}.perm-locked-row mat-icon{font-size:17px;height:17px;width:17px;flex-shrink:0;margin-top:1px}.perm-locked-row--grant{background:color-mix(in srgb,var(--color-success) 8%,transparent);border-color:color-mix(in srgb,var(--color-success) 15%,transparent);color:color-mix(in srgb,var(--color-success) 70%,var(--color-text-primary))}.perm-locked-row--grant mat-icon{color:var(--color-success)}.perm-locked-row--deny{background:color-mix(in srgb,var(--color-error) 8%,transparent);border-color:color-mix(in srgb,var(--color-error) 15%,transparent);color:color-mix(in srgb,var(--color-error) 80%,var(--color-text-primary))}.perm-locked-row--deny mat-icon{color:var(--color-error)}.perm-locked-hint{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--color-text-muted);margin:4px 0 0;padding:0 4px}.perm-locked-hint mat-icon{font-size:14px;height:14px;width:14px}.perm-picker-body{padding:0 20px 20px}.perm-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0}.perm-loading span{font-size:.86rem;color:var(--color-text-muted)}.perm-legend-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-divider);margin-bottom:14px}.perm-legend-item{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--color-text-secondary)}.perm-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.perm-legend-dot--inherited{background:var(--color-text-muted)}.perm-legend-dot--granted{background:var(--color-success)}.perm-legend-dot--denied{background:var(--color-error)}.perm-legend-sep{flex:1}.perm-picker-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.perm-picker-search{position:relative;display:flex;align-items:center;flex:1}.perm-picker-search mat-icon{position:absolute;left:10px;font-size:16px;height:16px;width:16px;color:var(--color-text-muted);pointer-events:none}.perm-search-input{width:100%;padding:8px 36px 8px 34px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:.84rem;font-family:inherit;outline:none;transition:border-color .15s ease;box-sizing:border-box}.perm-search-input:focus{border-color:var(--color-primary)}.perm-search-input::placeholder{color:var(--color-text-muted)}.perm-search-clear{position:absolute;right:6px;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;color:var(--color-text-muted)}.perm-search-clear mat-icon{font-size:16px;height:16px;width:16px}.perm-search-clear:hover{color:var(--color-text-primary)}.perm-module-list{display:flex;flex-direction:column;gap:6px;max-height:480px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.perm-module-list::-webkit-scrollbar{width:4px}.perm-module-list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.perm-module{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s ease}.perm-module--expanded{border-color:color-mix(in srgb,var(--color-primary) 30%,transparent)}.perm-module-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:color-mix(in srgb,var(--color-bg-surface) 60%,var(--color-bg-card));cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none}.perm-module-header:hover{background:var(--color-hover)}.perm-module-header__name{flex:1;font-size:.82rem;font-weight:700;color:var(--color-text-primary);text-transform:capitalize}.perm-module-header__count{font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:9999px;background:var(--color-hover);color:var(--color-text-muted)}.perm-module-header__chevron{font-size:18px;height:18px;width:18px;color:var(--color-text-muted);transition:transform .2s ease}.perm-module--expanded .perm-module-header__chevron{transform:rotate(180deg)}.perm-module-deny-badge{display:inline-flex;align-items:center;gap:3px;font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:9999px;background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error);border:1px solid color-mix(in srgb,var(--color-error) 18%,transparent)}.perm-module-deny-badge mat-icon{font-size:11px;height:11px;width:11px}.perm-item-list{display:flex;flex-direction:column;border-top:1px solid var(--color-divider)}.perm-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--color-divider);transition:background .15s ease;cursor:pointer}.perm-item:last-child{border-bottom:none}.perm-item:hover{background:var(--color-hover)}.perm-item--inherited{background:color-mix(in srgb,var(--color-text-muted) 4%,transparent)}.perm-item--granted{background:color-mix(in srgb,var(--color-success) 4%,transparent)}.perm-item--denied{background:color-mix(in srgb,var(--color-error) 4%,transparent);opacity:.85}.perm-item__state{flex-shrink:0;width:24px;display:flex;align-items:center;justify-content:center}.perm-item__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.perm-item__name{font-size:.8rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.perm-item__slug{font-size:.68rem;color:var(--color-text-muted);font-family:Courier New,monospace;background:var(--color-hover);padding:1px 5px;border-radius:3px;max-width:max-content}.perm-item__badges,.perm-item__action{flex-shrink:0}.perm-state-btn{width:24px;height:24px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s ease}.perm-state-btn mat-icon{font-size:14px;height:14px;width:14px}.perm-state-btn--denied{background:color-mix(in srgb,var(--color-error) 15%,transparent);color:var(--color-error)}.perm-state-btn--denied:hover{background:color-mix(in srgb,var(--color-error) 25%,transparent)}.perm-state-inherited{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.perm-state-inherited mat-icon{font-size:13px;height:13px;width:13px}.perm-state-chip{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:.68rem;font-weight:700}.perm-state-chip--inherited{background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted)}.perm-state-chip--granted{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.perm-state-chip--denied{background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-error)}.perm-no-results{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 0;color:var(--color-text-muted);font-size:.84rem;text-align:center}.perm-no-results mat-icon{font-size:28px;height:28px;width:28px;opacity:.5}.perm-action-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 0 0;margin-top:14px;border-top:1px solid var(--color-divider);gap:10px;flex-wrap:wrap}.perm-action-bar__left{display:flex;align-items:center}.perm-action-bar__right{display:flex;align-items:center;gap:8px}.perm-unsaved-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:9999px;font-size:.72rem;font-weight:700;background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,#000);border:1px solid color-mix(in srgb,var(--color-warning) 20%,transparent)}.perm-unsaved-badge mat-icon{font-size:12px;height:12px;width:12px}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-slide-up{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1200;padding:16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:dialog-fade-in .15s ease}.confirm-dialog{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:0 24px 48px #0000002e,0 8px 16px #0000001a;max-width:540px;width:100%;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border);animation:dialog-slide-up .2s cubic-bezier(.34,1.56,.64,1);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.confirm-header{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid var(--color-divider)}.confirm-header__icon{width:44px;height:44px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-primary) 12%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.confirm-header__icon mat-icon{font-size:22px;height:22px;width:22px;color:var(--color-primary)}.confirm-header__text{flex:1}.confirm-header__text h2{margin:0 0 3px;font-size:1rem;font-weight:700;color:var(--color-text-primary)}.confirm-header__text p{margin:0;font-size:.8rem;color:var(--color-text-secondary)}.confirm-header__close{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.confirm-header__close mat-icon{font-size:16px;height:16px;width:16px}.confirm-header__close:hover{background:var(--color-hover);color:var(--color-text-primary)}.confirm-body{padding:20px 24px}.changes-count-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:9999px;font-size:.78rem;font-weight:700;background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);margin-bottom:14px}.changes-count-badge mat-icon{font-size:13px;height:13px;width:13px}.changes-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.change-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.change-label{display:flex;align-items:center;gap:6px;padding:6px 12px;background:color-mix(in srgb,var(--color-bg-surface) 60%,var(--color-bg-card));font-size:.78rem;font-weight:700;color:var(--color-text-primary);border-bottom:1px solid var(--color-divider)}.change-label__icon{font-size:14px;height:14px;width:14px;color:var(--color-primary)}.change-values{display:flex;align-items:center;gap:10px;padding:8px 12px;flex-wrap:wrap}.change-old,.change-new{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.change-badge{padding:1px 6px;border-radius:3px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.change-badge--old{background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error)}.change-badge--new{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.change-value-text{font-size:.8rem;color:var(--color-text-primary);font-weight:500;word-break:break-word}.change-arrow mat-icon{font-size:16px;height:16px;width:16px;color:var(--color-text-muted)}.confirm-warning{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:color-mix(in srgb,var(--color-warning) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-warning) 18%,transparent);border-radius:var(--radius-sm);font-size:.8rem;color:color-mix(in srgb,var(--color-warning) 60%,var(--color-text-primary));line-height:1.5}.confirm-warning mat-icon{font-size:17px;height:17px;width:17px;color:var(--color-warning);flex-shrink:0;margin-top:1px}.confirm-warning p{margin:0}.confirm-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px 20px;border-top:1px solid var(--color-divider)}.confirm-actions button{display:inline-flex;align-items:center;gap:6px}.confirm-actions mat-icon{font-size:17px;height:17px;width:17px}@media (max-width: 420px){.confirm-actions{flex-direction:column-reverse}.confirm-actions button{width:100%}}.tab-bar{display:flex;gap:4px;margin-bottom:20px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px;box-shadow:var(--shadow-sm)}@media (max-width: 480px){.tab-bar{flex-direction:column}}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:none;border-radius:calc(var(--radius-md) - 4px);background:transparent;color:var(--color-text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease;white-space:nowrap;font-family:inherit;position:relative}.tab-btn .tab-icon{font-size:18px;height:18px;width:18px;transition:color .18s ease}.tab-btn .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:.7rem;font-weight:700;background:var(--color-hover);color:var(--color-text-muted);transition:background .18s ease,color .18s ease}.tab-btn:hover:not(.active){background:var(--color-hover);color:var(--color-text-primary)}.tab-btn.active{box-shadow:0 1px 4px #0000001f}.tab-btn.active .tab-count{font-weight:700}.tab-btn.active[data-color=staff]{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary-dark)}.tab-btn.active[data-color=staff] .tab-icon{color:var(--color-primary)}.tab-btn.active[data-color=staff] .tab-count{background:var(--color-primary);color:#fff}.tab-btn.active[data-color=student]{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:color-mix(in srgb,var(--color-success) 70%,#000)}.tab-btn.active[data-color=student] .tab-icon{color:var(--color-success)}.tab-btn.active[data-color=student] .tab-count{background:var(--color-success);color:#fff}.tab-btn.active[data-color=parent]{background:color-mix(in srgb,#f59e0b 12%,transparent);color:#b45309}.tab-btn.active[data-color=parent] .tab-icon{color:#f59e0b}.tab-btn.active[data-color=parent] .tab-count{background:#f59e0b;color:#fff}@media (max-width: 480px){.tab-btn{justify-content:flex-start;padding:10px 14px}}@keyframes inline-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes inline-dialog-slide-up{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1200;padding:16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:inline-dialog-fade-in .15s ease}.custom-dialog{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:0 24px 48px #0000002e,0 8px 16px #0000001a;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;border:1px solid var(--color-border);animation:inline-dialog-slide-up .2s cubic-bezier(.34,1.56,.64,1);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.custom-dialog::-webkit-scrollbar{width:6px}.custom-dialog::-webkit-scrollbar-track{background:transparent}.custom-dialog::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.custom-dialog.delete-dialog{max-width:580px}.dialog-header{display:flex;align-items:center;gap:16px;padding:24px 24px 0}.danger-header{border-bottom:1px solid color-mix(in srgb,var(--color-error) 15%,transparent);padding-bottom:20px}.dialog-icon-wrap{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dialog-icon-wrap mat-icon{font-size:26px;height:26px;width:26px}.dialog-icon-wrap.icon-warn{background:color-mix(in srgb,var(--color-warning) 15%,transparent)}.dialog-icon-wrap.icon-warn mat-icon{color:var(--color-warning)}.dialog-icon-wrap.icon-success{background:color-mix(in srgb,var(--color-success) 15%,transparent)}.dialog-icon-wrap.icon-success mat-icon{color:var(--color-success)}.dialog-icon-wrap.icon-danger{background:color-mix(in srgb,var(--color-error) 15%,transparent)}.dialog-icon-wrap.icon-danger mat-icon{color:var(--color-error)}.dialog-titles h2{margin:0 0 4px;font-size:1.1rem;font-weight:700;color:var(--color-text-primary);line-height:1.3}.dialog-titles .dialog-subtitle{margin:0;font-size:.85rem;color:var(--color-text-muted);font-weight:500}.dialog-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.blocking-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:color-mix(in srgb,var(--color-error) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 25%,transparent);border-radius:var(--radius-sm);color:var(--color-error)}.blocking-banner mat-icon{font-size:22px;height:22px;width:22px;flex-shrink:0;margin-top:1px}.blocking-banner strong{display:block;font-size:.9rem;font-weight:700;margin-bottom:4px}.blocking-banner p{margin:0;font-size:.85rem;line-height:1.5;color:color-mix(in srgb,var(--color-error) 80%,var(--color-text-primary))}.impact-heading{margin:0 0 10px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted)}.impact-section{display:flex;flex-direction:column}.impact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.impact-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.5}.impact-item mat-icon{font-size:18px;height:18px;width:18px;flex-shrink:0;margin-top:1px}.impact-item.info{background:color-mix(in srgb,var(--color-info) 8%,transparent);color:color-mix(in srgb,var(--color-info) 70%,var(--color-text-primary))}.impact-item.info mat-icon{color:var(--color-info)}.impact-item.success{background:color-mix(in srgb,var(--color-success) 8%,transparent);color:color-mix(in srgb,var(--color-success) 60%,var(--color-text-primary))}.impact-item.success mat-icon{color:var(--color-success)}.impact-item.warning{background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:color-mix(in srgb,var(--color-warning) 60%,var(--color-text-primary))}.impact-item.warning mat-icon{color:var(--color-warning)}.impact-item.danger{background:color-mix(in srgb,var(--color-error) 8%,transparent);color:color-mix(in srgb,var(--color-error) 70%,var(--color-text-primary))}.impact-item.danger mat-icon{color:var(--color-error)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}@media (max-width: 360px){.summary-grid{grid-template-columns:repeat(2,1fr)}}.summary-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;border-radius:var(--radius-sm);text-align:center;border:1px solid transparent}.summary-card mat-icon{font-size:22px;height:22px;width:22px;opacity:.8}.summary-card .summary-count{font-size:1.4rem;font-weight:800;line-height:1}.summary-card .summary-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.summary-card.danger{background:color-mix(in srgb,var(--color-error) 8%,transparent);border-color:color-mix(in srgb,var(--color-error) 20%,transparent);color:var(--color-error)}.summary-card.warning{background:color-mix(in srgb,var(--color-warning) 10%,transparent);border-color:color-mix(in srgb,var(--color-warning) 25%,transparent);color:color-mix(in srgb,var(--color-warning) 80%,#000)}.summary-card.info{background:color-mix(in srgb,var(--color-info) 8%,transparent);border-color:color-mix(in srgb,var(--color-info) 20%,transparent);color:var(--color-info)}.check-loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:32px 0}.check-loading p{margin:0;font-size:.88rem;color:var(--color-text-muted)}.dialog-confirm-text{font-size:.88rem;color:var(--color-text-secondary);padding:12px 14px;background:var(--color-hover);border-radius:var(--radius-sm);line-height:1.6}.dialog-confirm-text.danger-text{background:color-mix(in srgb,var(--color-error) 6%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 18%,transparent);color:color-mix(in srgb,var(--color-error) 80%,var(--color-text-primary))}.dialog-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px 24px;border-top:1px solid var(--color-divider)}.dialog-footer .btn-delete-confirm{display:flex;align-items:center;gap:6px}@media (max-width: 420px){.dialog-footer{flex-direction:column-reverse}.dialog-footer button{width:100%}}[data-theme=dark]{--color-bg-main: #0d1117;--color-bg-surface: #161b27;--color-bg-card: #1e2433;--color-border: #2d3748;--color-divider: #252d3d;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-primary: #60a5fa;--color-primary-light: #93c5fd;--color-primary-dark: #3b82f6;--color-on-primary: #0f172a;--color-secondary: #a78bfa;--color-on-secondary: #0f172a;--color-success: #34d399;--color-warning: #fbbf24;--color-error: #f87171;--color-info: #60a5fa;--color-hover: #1e2d3d;--color-active: #1e3a5f;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6), 0 4px 6px -2px rgba(0, 0, 0, .4);--mat-table-background-color: #1e2433;--mat-table-header-headline-color: #94a3b8;--mat-table-row-item-label-text-color: #f1f5f9;--mat-table-row-item-outline-color: #252d3d;--mat-table-header-container-height: 52px;--mat-table-footer-container-height: 52px;--mat-table-row-item-container-height: 52px;--mat-paginator-container-background-color: #1e2433;--mat-paginator-container-text-color: #94a3b8;--mat-paginator-select-trigger-text-color: #f1f5f9;--mat-paginator-enabled-icon-color: #64748b;--mat-paginator-disabled-icon-color: #2d3748;--mdc-outlined-text-field-outline-color: #2d3748;--mdc-outlined-text-field-hover-outline-color: #60a5fa;--mdc-outlined-text-field-focus-outline-color: #60a5fa;--mdc-outlined-text-field-label-text-color: #64748b;--mdc-outlined-text-field-hover-label-text-color: #94a3b8;--mdc-outlined-text-field-focus-label-text-color: #60a5fa;--mdc-outlined-text-field-input-text-color: #f1f5f9;--mdc-outlined-text-field-caret-color: #60a5fa;--mdc-outlined-text-field-disabled-outline-color: #252d3d;--mat-form-field-leading-icon-color: #64748b;--mat-form-field-trailing-icon-color: #64748b;--mat-form-field-focus-leading-icon-color: #60a5fa;--mat-select-trigger-text-color: #f1f5f9;--mat-select-enabled-arrow-color: #64748b;--mat-option-label-text-color: #f1f5f9;--mat-option-hover-state-layer-color: #1e2d3d;--mat-option-selected-state-label-text-color: #60a5fa;--mat-select-panel-background-color: #1e2433;--mat-icon-button-icon-color: #64748b;--mdc-outlined-button-outline-color: #2d3748;--mdc-outlined-button-label-text-color: #94a3b8;--mdc-protected-button-container-color: #60a5fa;--mdc-protected-button-label-text-color: #0f172a;--mdc-plain-tooltip-container-color: #161b27;--mdc-plain-tooltip-supporting-text-color: #f1f5f9;--mdc-circular-progress-active-indicator-color: #60a5fa;--mdc-checkbox-unselected-icon-color: #64748b;--mdc-checkbox-unselected-hover-icon-color: #94a3b8}[data-theme=dark] .mat-mdc-table,[data-theme=dark] .mdc-data-table__content{background:#1e2433!important}[data-theme=dark] .mdc-data-table__row{background-color:#1e2433!important}[data-theme=dark] .mdc-data-table__row:hover,[data-theme=dark] .mdc-data-table__row:hover .mdc-data-table__cell{background-color:#1e2d3d!important}[data-theme=dark] .mdc-data-table__header-row{background-color:color-mix(in srgb,#161b27 60%,#1e2433)!important}[data-theme=dark] .mdc-data-table__cell,[data-theme=dark] .mdc-data-table__header-cell{border-bottom-color:#252d3d!important;color:#f1f5f9!important}[data-theme=dark] .mdc-data-table__header-cell{color:#94a3b8!important}[data-theme=dark] .mat-mdc-paginator{background:#1e2433!important;border-top:1px solid #2d3748}[data-theme=dark] .mat-mdc-paginator-outer-container,[data-theme=dark] .mat-mdc-paginator-container{background:#1e2433!important;color:#94a3b8!important}[data-theme=dark] .mat-mdc-paginator .mat-mdc-select-value{color:#f1f5f9!important}[data-theme=dark] .mat-mdc-paginator-icon{fill:#64748b!important}[data-theme=dark] .mdc-notched-outline__leading,[data-theme=dark] .mdc-notched-outline__notch,[data-theme=dark] .mdc-notched-outline__trailing{border-color:#2d3748!important}[data-theme=dark] .mat-mdc-form-field:hover .mdc-notched-outline__leading,[data-theme=dark] .mat-mdc-form-field:hover .mdc-notched-outline__notch,[data-theme=dark] .mat-mdc-form-field:hover .mdc-notched-outline__trailing,[data-theme=dark] .mat-mdc-form-field.mat-focused .mdc-notched-outline__leading,[data-theme=dark] .mat-mdc-form-field.mat-focused .mdc-notched-outline__notch,[data-theme=dark] .mat-mdc-form-field.mat-focused .mdc-notched-outline__trailing{border-color:#60a5fa!important}[data-theme=dark] .mat-mdc-form-field.mat-focused .mdc-floating-label{color:#60a5fa!important}[data-theme=dark] .mdc-floating-label{color:#64748b!important}[data-theme=dark] .mat-mdc-form-field input::placeholder{color:#64748b!important;opacity:1!important}[data-theme=dark] .mat-mdc-form-field input.mat-mdc-input-element{color:#f1f5f9!important;caret-color:#60a5fa!important}[data-theme=dark] .mat-mdc-form-field .mat-icon{color:#64748b!important}[data-theme=dark] .mat-mdc-select-value{color:#f1f5f9!important}[data-theme=dark] .mat-mdc-select-arrow,[data-theme=dark] .mat-mdc-icon-button{color:#64748b!important}[data-theme=dark] .mat-mdc-icon-button:hover{background-color:#1e2d3d!important;color:#f1f5f9!important}[data-theme=dark] .mat-mdc-icon-button[color=warn]{color:#f87171!important}[data-theme=dark] .mat-mdc-icon-button[color=warn]:hover{background-color:#f871711a!important}[data-theme=dark] .mat-mdc-icon-button[color=primary]{color:#60a5fa!important}[data-theme=dark] .mat-mdc-icon-button[color=primary]:hover{background-color:#60a5fa1a!important}[data-theme=dark] [mat-stroked-button]:not([color]){border-color:#2d3748!important;color:#94a3b8!important}[data-theme=dark] [mat-stroked-button]:not([color]):hover:not([disabled]){border-color:#60a5fa!important;color:#60a5fa!important;background:#60a5fa14!important}[data-theme=dark] .loading-shade{background:#0d1117cc!important}[data-theme=dark] .section-card,[data-theme=dark] .step-main,[data-theme=dark] .step-sidebar,[data-theme=dark] .step-footer,[data-theme=dark] .confirm-dialog,[data-theme=dark] .perm-guide-content,[data-theme=dark] .perm-empty-state{background-color:var(--color-bg-card);border-color:var(--color-border)}[data-theme=dark] .section-header,[data-theme=dark] .perm-module-header{background:color-mix(in srgb,var(--color-bg-main) 40%,var(--color-bg-card))}[data-theme=dark] .perm-module{border-color:var(--color-border)}[data-theme=dark] .perm-module--expanded{border-color:color-mix(in srgb,var(--color-primary) 35%,transparent)}[data-theme=dark] .perm-item--inherited{background:color-mix(in srgb,var(--color-text-muted) 6%,transparent)}[data-theme=dark] .perm-item--granted{background:color-mix(in srgb,var(--color-success) 6%,transparent)}[data-theme=dark] .perm-item--denied{background:color-mix(in srgb,var(--color-error) 6%,transparent)}[data-theme=dark] .perm-item:hover{background:var(--color-hover)}[data-theme=dark] .perm-item__slug{background:color-mix(in srgb,var(--color-bg-main) 60%,transparent)}[data-theme=dark] .perm-search-input{background:var(--color-bg-surface);border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .perm-search-input:focus{border-color:var(--color-primary)}[data-theme=dark] .perm-search-input::placeholder{color:var(--color-text-muted)}[data-theme=dark] .field-edit-btn{background:var(--color-bg-surface)!important;border-color:var(--color-border)!important;color:var(--color-text-secondary)!important}[data-theme=dark] .field-edit-btn:hover,[data-theme=dark] .field-edit-btn.active{border-color:var(--color-primary)!important;color:var(--color-primary)!important;background:color-mix(in srgb,var(--color-primary) 10%,transparent)!important}[data-theme=dark] .facility-chip{background:var(--color-bg-surface);border-color:var(--color-border);color:var(--color-text-secondary)}[data-theme=dark] .confirm-overlay{background:#000000a6}[data-theme=dark] .confirm-dialog{box-shadow:0 24px 48px #0000008c,0 8px 16px #00000059}[data-theme=dark] .change-item{border-color:var(--color-border)}[data-theme=dark] .change-label{background:color-mix(in srgb,var(--color-bg-main) 40%,var(--color-bg-card));border-color:var(--color-border)}[data-theme=dark] .role-search-input,[data-theme=dark] .perm-search-input{background:var(--color-bg-surface);border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .role-search-input::placeholder,[data-theme=dark] .perm-search-input::placeholder{color:var(--color-text-muted)}[data-theme=dark] .role-search-input:focus,[data-theme=dark] .perm-search-input:focus{border-color:var(--color-primary)}[data-theme=dark] .persona-card,[data-theme=dark] .role-option-card{background:var(--color-bg-card);border-color:var(--color-border);color:var(--color-text-secondary)}[data-theme=dark] .tab-bar{background:var(--color-bg-card);border-color:var(--color-border);box-shadow:var(--shadow-sm)}[data-theme=dark] .tab-btn{color:var(--color-text-secondary)}[data-theme=dark] .tab-btn:hover:not(.active){background:var(--color-hover);color:var(--color-text-primary)}[data-theme=dark] .tab-btn .tab-count{background:var(--color-hover);color:var(--color-text-muted)}[data-theme=dark] .tab-btn.active[data-color=staff]{background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-primary-light)}[data-theme=dark] .tab-btn.active[data-color=staff] .tab-icon{color:var(--color-primary)}[data-theme=dark] .tab-btn.active[data-color=staff] .tab-count{background:var(--color-primary);color:var(--color-on-primary)}[data-theme=dark] .tab-btn.active[data-color=student]{background:color-mix(in srgb,var(--color-success) 16%,transparent);color:color-mix(in srgb,var(--color-success) 90%,#fff)}[data-theme=dark] .tab-btn.active[data-color=student] .tab-icon{color:var(--color-success)}[data-theme=dark] .tab-btn.active[data-color=student] .tab-count{background:var(--color-success);color:#0f172a}[data-theme=dark] .tab-btn.active[data-color=parent]{background:color-mix(in srgb,#fbbf24 16%,transparent);color:#fbbf24}[data-theme=dark] .tab-btn.active[data-color=parent] .tab-icon{color:#fbbf24}[data-theme=dark] .tab-btn.active[data-color=parent] .tab-count{background:#fbbf24;color:#0f172a}[data-theme=dark] .dialog-backdrop{background:#000000a6}[data-theme=dark] .custom-dialog{background:var(--color-bg-card);border-color:var(--color-border);box-shadow:0 24px 48px #0000008c,0 8px 16px #00000059;scrollbar-color:var(--color-border) transparent}[data-theme=dark] .custom-dialog::-webkit-scrollbar-thumb{background:var(--color-border)}[data-theme=dark] .dialog-icon-wrap.icon-warn{background:color-mix(in srgb,var(--color-warning) 18%,transparent)}[data-theme=dark] .dialog-icon-wrap.icon-warn mat-icon{color:var(--color-warning)}[data-theme=dark] .dialog-icon-wrap.icon-success{background:color-mix(in srgb,var(--color-success) 18%,transparent)}[data-theme=dark] .dialog-icon-wrap.icon-success mat-icon{color:var(--color-success)}[data-theme=dark] .dialog-icon-wrap.icon-danger{background:color-mix(in srgb,var(--color-error) 18%,transparent)}[data-theme=dark] .dialog-icon-wrap.icon-danger mat-icon{color:var(--color-error)}[data-theme=dark] .dialog-titles h2{color:var(--color-text-primary)}[data-theme=dark] .dialog-titles .dialog-subtitle{color:var(--color-text-muted)}[data-theme=dark] .danger-header{border-bottom-color:color-mix(in srgb,var(--color-error) 20%,transparent)}[data-theme=dark] .blocking-banner{background:color-mix(in srgb,var(--color-error) 10%,transparent);border-color:color-mix(in srgb,var(--color-error) 28%,transparent)}[data-theme=dark] .blocking-banner p{color:color-mix(in srgb,var(--color-error) 90%,var(--color-text-primary))}[data-theme=dark] .impact-item.info{background:color-mix(in srgb,var(--color-info) 10%,transparent);color:color-mix(in srgb,var(--color-info) 80%,var(--color-text-primary))}[data-theme=dark] .impact-item.success{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:color-mix(in srgb,var(--color-success) 70%,var(--color-text-primary))}[data-theme=dark] .impact-item.warning{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:color-mix(in srgb,var(--color-warning) 80%,var(--color-text-primary))}[data-theme=dark] .impact-item.danger{background:color-mix(in srgb,var(--color-error) 10%,transparent);color:color-mix(in srgb,var(--color-error) 80%,var(--color-text-primary))}[data-theme=dark] .summary-card.danger{background:color-mix(in srgb,var(--color-error) 10%,transparent);border-color:color-mix(in srgb,var(--color-error) 25%,transparent)}[data-theme=dark] .summary-card.warning{background:color-mix(in srgb,var(--color-warning) 12%,transparent);border-color:color-mix(in srgb,var(--color-warning) 28%,transparent);color:var(--color-warning)}[data-theme=dark] .summary-card.info{background:color-mix(in srgb,var(--color-info) 10%,transparent);border-color:color-mix(in srgb,var(--color-info) 25%,transparent)}[data-theme=dark] .dialog-confirm-text{background:var(--color-hover);color:var(--color-text-secondary)}[data-theme=dark] .dialog-confirm-text.danger-text{background:color-mix(in srgb,var(--color-error) 8%,transparent);border-color:color-mix(in srgb,var(--color-error) 22%,transparent);color:color-mix(in srgb,var(--color-error) 90%,var(--color-text-primary))}[data-theme=dark] .dialog-footer{border-top-color:var(--color-divider)}html{--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--color-primary: #3b82f6;--color-primary-light: #60a5fa;--color-primary-dark: #1e40af;--color-on-primary: #ffffff;--color-secondary: #8b5cf6;--color-on-secondary: #ffffff;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-bg-main: #f8fafc;--color-bg-surface: #ffffff;--color-bg-card: #ffffff;--color-border: #e2e8f0;--color-divider: #f1f5f9;--color-text-primary: #0f172a;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-hover: #f1f5f9;--color-active: #e0f2fe;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}html,body{height:100%}body{margin:0;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font-family:Roboto,Helvetica Neue,sans-serif;font:var(--mat-sys-body-medium)}.success-toast{--mdc-snackbar-container-color: #4caf50;color:#fff}.error-toast{--mdc-snackbar-container-color: #f44336;color:#fff}.info-toast{--mdc-snackbar-container-color: #2196f3;color:#fff}.warning-toast{--mdc-snackbar-container-color: #ff9800;color:#fff}.bg-primary{background-color:var(--color-primary)}.text-on-primary{color:var(--color-on-primary)}.border-primary{border-color:var(--color-primary)}
