@charset "UTF-8";:root{--color-accent:#4f46e5;--color-accent-hover:#4338ca;--color-accent-soft:#eef2ff;--color-accent-soft-text:#4338ca;--color-bg:#f7f8fb;--color-surface:#fff;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-sidebar-bg:#111827;--color-sidebar-bg-active:#1f2937;--color-sidebar-text:#9ca3af;--color-sidebar-text-active:#fff;--color-sidebar-border:hsla(0,0%,100%,.08);--color-success:#059669;--color-success-soft:#ecfdf5;--color-warning:#d97706;--color-warning-soft:#fffbeb;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-info:#2563eb;--color-info-soft:#eff6ff;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow-md:0 2px 8px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);--shadow-lg:0 8px 24px rgba(16,24,40,.08);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter","Roboto","Helvetica Neue",Arial,sans-serif;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:20px;--text-xl:26px;--transition-fast:150ms ease;--transition-base:200ms ease;--color-surface-2:#f9fafb;--color-accent-strong:#4338ca;--color-success-text:#047857;--color-warning-text:#b45309;--color-danger-text:#b91c1c;--color-info-text:#1d4ed8;--ring:0 0 0 3px var(--color-accent-soft),0 0 0 1px var(--color-accent);--ring-danger:0 0 0 3px var(--color-danger-soft),0 0 0 1px var(--color-danger);--radius-xl:18px;--shadow-xs:0 1px 1px rgba(16,24,40,.04);--sidebar-w:268px;--sidebar-w-collapsed:76px;--header-h:64px;--content-max:1280px}*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.status-badge{border-radius:6px;font-size:11px;padding:6px 12px;white-space:nowrap}.status-badge.draft{background-color:hsla(184,9%,62%,.1);color:#95a5a6}.status-badge.published{background-color:rgba(46,204,113,.1);color:#2ecc71}.status-badge.closed{background-color:rgba(231,76,60,.1);color:#e74c3c}.meta-item{align-items:center;color:#7f8c8d;display:flex;font-size:13px;gap:8px}.meta-icon{font-size:16px;text-align:center;width:20px}.error-banner{background-color:#fff5f5;border:1px solid #fc8181;border-radius:8px;color:#c53030;font-size:14px;gap:12px;margin-bottom:24px;padding:16px 20px}.error-banner,.loading-state{align-items:center;display:flex}.loading-state{flex-direction:column;gap:16px;justify-content:center;padding:60px 20px}.spinner{animation:spin .8s linear infinite;border:4px solid #e9ecef;border-top-color:#667eea;height:48px;width:48px}.loading-state p{color:#7f8c8d;font-size:16px;margin:0}.ui-page{margin-inline:auto;max-width:var(--content-max);padding:28px 32px 56px}.ui-page-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;margin-block-end:24px}.ui-page-title{align-items:center;display:flex;gap:14px;min-width:0}.ui-page-icon{background:var(--color-accent-soft);border-radius:12px;color:var(--color-accent);display:grid;flex:none;height:44px;place-items:center;width:44px}.ui-page-header h1{color:var(--color-text-primary);font-size:26px;font-weight:750;letter-spacing:-.02em;line-height:1.2;margin:0}.ui-page-header p{color:var(--color-text-secondary);font-size:var(--text-base);margin:4px 0 0;max-width:62ch}.ui-page-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ui-btn{align-items:center;border:1px solid transparent;border-radius:10px;cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-base);font-weight:600;gap:8px;height:40px;justify-content:center;line-height:1;padding:0 16px;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),color var(--transition-fast);white-space:nowrap}.ui-btn:focus-visible{box-shadow:var(--ring);outline:none}.ui-btn:disabled,.ui-btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.ui-btn-primary{background:linear-gradient(135deg,#6366f1 0,var(--color-accent) 100%);box-shadow:0 1px 2px rgba(79,70,229,.35),inset 0 1px 0 hsla(0,0%,100%,.12);color:#fff}.ui-btn-primary:hover:not(:disabled){box-shadow:0 4px 12px rgba(79,70,229,.3);filter:brightness(1.06)}.ui-btn-primary:active:not(:disabled){transform:translateY(1px)}.ui-btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);box-shadow:var(--shadow-xs);color:var(--color-text-primary)}.ui-btn-secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:#b8bfc9}.ui-btn-ghost{background:transparent;color:var(--color-text-secondary)}.ui-btn-ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text-primary)}.ui-btn-danger{background:var(--color-danger);box-shadow:0 1px 2px rgba(220,38,38,.3);color:#fff}.ui-btn-danger:hover:not(:disabled){filter:brightness(1.06)}.ui-btn-danger:focus-visible{box-shadow:var(--ring-danger)}.ui-btn-success{background:#16a34a;color:#fff}.ui-btn-success:hover:not(:disabled){filter:brightness(1.06)}.ui-btn-sm{border-radius:8px;font-size:var(--text-sm);height:32px;padding:0 12px}.ui-btn-lg{border-radius:12px;font-size:var(--text-md);height:48px;padding:0 22px}.ui-btn-icon{padding:0;width:40px}.ui-btn-icon.ui-btn-sm{width:32px}.ui-btn-block{width:100%}.ui-spinner{animation:ui-spin .7s linear infinite;border:2px solid;border-inline-end-color:transparent;border-radius:50%;display:inline-block;height:16px;opacity:.8;width:16px}@keyframes ui-spin{to{transform:rotate(1turn)}}.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ui-card-pad{padding:20px}.ui-card-head{align-items:center;border-block-end:1px solid var(--color-border);display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.ui-card-head h2{font-size:var(--text-md);font-weight:700;margin:0}.ui-grid,.ui-stats{grid-gap:16px;display:grid;gap:16px}.ui-stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-block-end:24px}.ui-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:inherit;display:flex;flex-direction:column;gap:6px;padding:18px 20px;position:relative;text-decoration:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}a.ui-stat:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.ui-stat-top{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);font-weight:600;gap:8px;justify-content:space-between}.ui-stat-icon{background:var(--color-accent-soft);border-radius:10px;color:var(--color-accent);display:grid;height:34px;place-items:center;width:34px}.ui-stat-value{font-feature-settings:"tnum";font-size:28px;font-variant-numeric:tabular-nums;font-weight:750;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere}.ui-stat-hint{color:var(--color-text-secondary);font-size:var(--text-sm)}.ui-stat-danger .ui-stat-value{color:var(--color-danger)}.ui-stat-danger .ui-stat-icon{background:var(--color-danger-soft);color:var(--color-danger)}.ui-stat-success .ui-stat-value{color:var(--color-success)}.ui-stat-success .ui-stat-icon{background:var(--color-success-soft);color:var(--color-success)}.ui-stat-warning .ui-stat-icon{background:var(--color-warning-soft);color:var(--color-warning)}.ui-stat-info .ui-stat-icon{background:var(--color-info-soft);color:var(--color-info)}.ui-badge{align-items:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);display:inline-flex;font-size:var(--text-xs);font-weight:650;gap:6px;line-height:1.4;padding:3px 10px;white-space:nowrap}.ui-badge-dot:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.ui-badge-success{background:var(--color-success-soft);border-color:transparent;color:var(--color-success-text)}.ui-badge-warning{background:var(--color-warning-soft);border-color:transparent;color:var(--color-warning-text)}.ui-badge-danger{background:var(--color-danger-soft);border-color:transparent;color:var(--color-danger-text)}.ui-badge-info{background:var(--color-info-soft);border-color:transparent;color:var(--color-info-text)}.ui-badge-accent{background:var(--color-accent-soft);border-color:transparent;color:var(--color-accent-soft-text)}.ui-avatar{border-radius:50%;color:#fff;display:inline-grid;flex:none;font-size:13px;font-weight:700;height:36px;letter-spacing:.02em;place-items:center;-webkit-user-select:none;user-select:none;width:36px}.ui-avatar-sm{font-size:11px;height:28px;width:28px}.ui-avatar-lg{font-size:15px;height:44px;width:44px}.ui-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-block-end:16px}.ui-toolbar-grow{flex:1 1 260px;min-width:0}.ui-search{align-items:center;display:flex;position:relative}.ui-search svg.ui-search-icon{color:var(--color-text-tertiary);inset-inline-start:13px;pointer-events:none;position:absolute}.ui-search input{width:100%}.ui-search-clear{background:none;border:0;border-radius:8px;color:var(--color-text-tertiary);cursor:pointer;display:grid;height:30px;inset-inline-end:6px;padding:0;place-items:center;position:absolute;width:30px}.ui-search-clear:hover{background:var(--color-bg);color:var(--color-text-primary)}.ui-input,.ui-search input,.ui-select,.ui-textarea{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text-primary);font:inherit;font-size:var(--text-base);height:42px;padding:0 14px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ui-search input[type=search]{padding-inline:40px 38px}.ui-textarea{height:auto;padding:10px 14px;resize:vertical}.ui-input:hover,.ui-search input:hover,.ui-select:hover{border-color:#aab1bd}.ui-input:focus,.ui-search input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft);outline:none}.ui-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-inline-end:34px}[dir=rtl] .ui-select{background-position:left 10px center}.ui-chips{background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;display:inline-flex;gap:4px;padding:4px}.ui-chip{background:transparent;border:0;border-radius:9px;color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:var(--text-sm);font-weight:600;height:32px;padding:0 12px}.ui-chip.is-on,.ui-chip:hover{color:var(--color-text-primary)}.ui-chip.is-on{background:var(--color-surface);box-shadow:var(--shadow-sm)}.ui-chip:focus-visible{box-shadow:var(--ring);outline:none}.ui-table-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.ui-table-wrap{overflow-x:auto}.ui-table{border-collapse:separate;border-spacing:0;width:100%}.ui-table th{background:var(--color-surface-2);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;padding:12px 16px;position:sticky;text-align:start;text-transform:uppercase;top:0;white-space:nowrap;z-index:1}.ui-table td,.ui-table th{border-block-end:1px solid var(--color-border)}.ui-table td{font-size:var(--text-base);padding:14px 16px;vertical-align:middle}.ui-table tbody tr{transition:background var(--transition-fast)}.ui-table tbody tr:hover{background:var(--color-surface-2)}.ui-table tbody tr:last-child td{border-block-end:0}.ui-table .ui-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.ui-table .ui-actions-col{text-align:end;white-space:nowrap;width:1%}.ui-cell-person{align-items:center;display:flex;gap:12px;min-width:0}.ui-cell-person strong{display:block;font-weight:650}.ui-cell-person small,.ui-muted{color:var(--color-text-secondary)}.ui-cell-person small{display:block}.ui-cell-person small,.ui-small,.ui-table-foot{font-size:var(--text-sm)}.ui-table-foot{align-items:center;background:var(--color-surface);border-block-start:1px solid var(--color-border);color:var(--color-text-secondary);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.ui-pager{align-items:center;display:inline-flex;gap:8px}.ui-skel{animation:ui-shimmer 1.3s ease infinite;background:linear-gradient(90deg,var(--color-bg) 25%,#eceff4 37%,var(--color-bg) 63%);background-size:400% 100%;border-radius:6px;display:block;height:14px}.ui-skel-circle{border-radius:50%;height:36px;width:36px}@keyframes ui-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.ui-empty{align-items:center;display:flex;flex-direction:column;gap:8px;padding:56px 24px;text-align:center}.ui-empty-icon{background:var(--color-accent-soft);border-radius:16px;color:var(--color-accent);display:grid;height:56px;margin-block-end:6px;place-items:center;width:56px}.ui-empty h3{font-size:var(--text-md);font-weight:700;margin:0}.ui-empty p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0;max-width:44ch}.ui-empty .ui-btn{margin-block-start:10px}.ui-alert{align-items:flex-start;border:1px solid transparent;border-radius:var(--radius-md);display:flex;font-size:var(--text-base);gap:10px;line-height:1.45;margin-block-end:16px;padding:12px 14px}.ui-alert>svg{flex:none;margin-block-start:1px}.ui-alert-error{background:var(--color-danger-soft);border-color:rgba(220,38,38,.25);color:#991b1b}.ui-alert-info{background:var(--color-info-soft);border-color:rgba(37,99,235,.22);color:#1e40af}.ui-alert-success{background:var(--color-success-soft);border-color:rgba(5,150,105,.25);color:#065f46}.ui-alert-warning{background:var(--color-warning-soft);border-color:rgba(217,119,6,.28);color:#92400e}.ui-overlay{align-items:center;animation:ui-fade .15s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgba(15,23,42,.5);display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.ui-dialog{animation:ui-rise .18s ease-out;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:0 24px 60px rgba(15,23,42,.28);max-height:90vh;max-width:440px;overflow-y:auto;padding:24px;width:100%}.ui-dialog-icon{background:var(--color-danger-soft);border-radius:12px;color:var(--color-danger);display:grid;height:44px;margin-block-end:14px;place-items:center;width:44px}.ui-dialog-icon-info{background:var(--color-accent-soft);color:var(--color-accent)}.ui-dialog h2{font-size:var(--text-lg);font-weight:750;margin:0 0 6px}.ui-dialog p{color:var(--color-text-secondary);line-height:1.5;margin:0}.ui-dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-block-start:22px}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-rise{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.ui-menu{display:inline-block;position:relative}.ui-menu-list{animation:ui-rise .14s ease-out;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);inset-block-start:calc(100% + 6px);inset-inline-end:0;min-width:190px;padding:6px;position:absolute;text-align:start;z-index:60}.ui-menu-item{align-items:center;background:none;border:0;border-radius:8px;color:var(--color-text-primary);cursor:pointer;display:flex;font:inherit;font-size:var(--text-base);gap:10px;padding:9px 10px;text-align:start;text-decoration:none;width:100%}.ui-menu-item:focus-visible,.ui-menu-item:hover{background:var(--color-bg);outline:none}.ui-menu-item svg{color:var(--color-text-secondary);flex:none}.ui-menu-item-danger{color:var(--color-danger-text)}.ui-menu-item-danger svg{color:var(--color-danger)}.ui-menu-sep{background:var(--color-border);height:1px;margin:6px 4px}@media (max-width:1024px){.ui-page{padding:22px 20px 48px}}@media (max-width:640px){.ui-page{padding:18px 14px 40px}.ui-page-header h1{font-size:22px}.ui-page-actions{width:100%}.ui-page-actions .ui-btn{flex:1 1}.ui-toolbar>.ui-chips,.ui-toolbar>.ui-select{flex:1 1 100%}.ui-dialog{padding:20px}.ui-dialog-actions{flex-direction:column-reverse}.ui-dialog-actions .ui-btn{width:100%}.ui-table-stack thead{display:none}.ui-table-stack,.ui-table-stack tbody{display:block;width:100%}.ui-table-stack tr{grid-gap:10px 14px;border-block-end:1px solid var(--color-border);display:grid;gap:10px 14px;grid-template-columns:1fr 1fr;padding:14px;position:relative}.ui-table-stack tbody tr:last-child{border-block-end:0}.ui-table-stack td{border:0;display:block;min-width:0;padding:0}.ui-table-stack td:first-child{grid-column:1/-1;padding-inline-end:44px}.ui-table-stack td[data-label]:before{color:var(--color-text-tertiary);content:attr(data-label);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;margin-block-end:3px;text-transform:uppercase}.ui-table-stack .ui-actions-col{inset-block-start:10px;inset-inline-end:8px;position:absolute;width:auto}.ui-chips{max-width:100%;overflow-x:auto;scrollbar-width:none}.ui-chips::-webkit-scrollbar{display:none}.ui-chip{flex:none}}@media (prefers-reduced-motion:reduce){.ui-dialog,.ui-menu-list,.ui-overlay,.ui-skel,.ui-spinner{animation:none}.ui-btn{transition:none}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.ui-sheet-overlay{animation:ui-fade .15s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgba(15,23,42,.45);display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:1000}.ui-sheet{animation:ui-slide-in .22s ease-out;background:var(--color-surface);box-shadow:-24px 0 60px rgba(15,23,42,.25);display:flex;flex-direction:column;height:100%;width:100%}[dir=rtl] .ui-sheet{animation-name:ui-slide-in-rtl;box-shadow:24px 0 60px rgba(15,23,42,.25)}.ui-sheet-head{align-items:center;border-block-end:1px solid var(--color-border);display:flex;flex:none;gap:14px;padding:18px 20px}.ui-sheet-titles{flex:1 1;min-width:0}.ui-sheet-titles h2{font-size:var(--text-lg);font-weight:750;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-sheet-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);margin-block-start:2px}.ui-sheet-body{flex:1 1;overflow-y:auto;padding:20px}.ui-sheet-foot{background:var(--color-surface);border-block-start:1px solid var(--color-border);display:flex;flex:none;flex-wrap:wrap;gap:10px;padding:14px 20px}@keyframes ui-slide-in{0%{opacity:0;transform:translateX(32px)}to{opacity:1;transform:none}}@keyframes ui-slide-in-rtl{0%{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ui-sheet,.ui-sheet-overlay{animation:none}}.nt-list{overflow:hidden}.nt-group{margin-block-end:22px}.nt-group-title{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:700;letter-spacing:.06em;margin:0 0 10px;text-transform:uppercase}.nt-count{background:var(--color-accent);border-radius:99px;color:#fff;font-size:11px;font-weight:750;line-height:18px;margin-inline-start:6px;padding:0 7px}.nt-row{align-items:flex-start;background:transparent;border:0;color:var(--color-text-secondary);cursor:pointer;display:flex;font:inherit;gap:14px;padding:14px 18px;text-align:start;transition:background var(--transition-fast);width:100%}.nt-row+.nt-row{border-block-start:1px solid var(--color-border)}.nt-row:focus-visible,.nt-row:hover{background:var(--color-surface-2);outline:none}.nt-row.is-unread{background:var(--color-accent-soft);color:var(--color-text-primary)}.nt-row.is-unread:hover{background:color-mix(in srgb,var(--color-accent-soft) 80%,var(--color-accent) 8%)}.nt-row.is-compact{gap:11px;padding:11px 14px}.nt-icon{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:11px;color:var(--color-text-secondary);display:grid;flex:none;height:38px;place-items:center;width:38px}.is-compact .nt-icon{border-radius:9px;height:32px;width:32px}.nt-icon-neutral{background:var(--color-accent-soft);border-color:transparent;color:var(--color-accent)}.nt-icon-warning{background:var(--color-warning-soft);border-color:transparent;color:var(--color-warning-text)}.nt-icon-danger{background:var(--color-danger-soft);border-color:transparent;color:var(--color-danger-text)}.nt-body{grid-gap:3px;display:grid;flex:1 1;gap:3px;min-width:0}.nt-title{align-items:center;color:var(--color-text-primary);display:flex;flex-wrap:wrap;font-size:14.5px;font-weight:650;gap:8px}.nt-message{font-size:13.5px;line-height:1.5;overflow-wrap:anywhere}.is-compact .nt-message{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:13px;overflow:hidden}.nt-meta{color:var(--color-text-tertiary);display:flex;font-size:12px;gap:10px}.nt-dot{align-self:center;background:var(--color-accent);border-radius:50%;flex:none;height:9px;width:9px}.nt-bell,.nt-bell-wrap{position:relative}.nt-bell{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:50%;color:var(--color-text-primary);cursor:pointer;display:grid;height:40px;padding:0;place-items:center;transition:background var(--transition-fast),box-shadow var(--transition-fast);width:40px}.nt-bell:hover{background:var(--color-surface-2)}.nt-bell:focus-visible,.nt-bell[aria-expanded=true]{box-shadow:var(--ring);outline:none}.nt-badge{background:var(--color-danger);border:2px solid var(--color-surface);border-radius:99px;color:#fff;font-size:11px;font-weight:750;height:19px;inset-block-start:-4px;inset-inline-end:-4px;line-height:19px;min-width:19px;padding:0 5px;position:absolute;text-align:center}.nt-offline{background:var(--color-text-tertiary);border:2px solid var(--color-surface);border-radius:50%;height:9px;inset-block-end:2px;inset-inline-end:2px;position:absolute;width:9px}.nt-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 18px 50px rgba(15,23,42,.2);inset-block-start:calc(100% + 10px);inset-inline-end:0;overflow:hidden;position:absolute;width:min(400px,calc(100vw - 24px));z-index:70}.nt-panel-foot,.nt-panel-head{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:13px 16px}.nt-panel-head{border-block-end:1px solid var(--color-border)}.nt-panel-foot{background:var(--color-surface-2);border-block-start:1px solid var(--color-border);justify-content:center}.nt-panel-list{max-height:min(420px,60vh);overflow-y:auto}.nt-panel-empty{grid-gap:6px;color:var(--color-text-tertiary);display:grid;gap:6px;justify-items:center;padding:32px 16px}.nt-panel-empty p{font-size:14px;margin:0}.nt-link{background:none;border:0;color:var(--color-accent);cursor:pointer;font:inherit;font-size:13px;font-weight:650;padding:0;text-decoration:none}.nt-link:hover{text-decoration:underline}@media (max-width:640px){.nt-bell-wrap{position:static}.nt-panel{inset-block-start:68px;inset-inline:12px;position:fixed;width:auto}}.lang{display:inline-block;position:relative}.lang-trigger{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-primary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-base);font-weight:500;gap:8px;height:40px;padding:0 12px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.lang-trigger:hover{border-color:var(--color-accent)}.lang-option:focus-visible,.lang-trigger:focus-visible{box-shadow:0 0 0 3px var(--color-accent-soft),0 0 0 1px var(--color-accent);outline:none}.lang-trigger[aria-expanded=true]{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.lang-chevron{color:var(--color-text-secondary);transition:transform var(--transition-fast)}.lang-chevron.is-open{transform:rotate(180deg)}.lang-menu{animation:lang-pop .14s ease-out;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);inset-block-start:calc(100% + 8px);inset-inline-end:0;min-width:200px;padding:6px;position:absolute;z-index:50}.lang-menu,[dir=rtl] .lang-menu{transform-origin:top}@keyframes lang-pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.lang-option{align-items:center;background:none;border:0;border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;display:flex;font:inherit;font-size:var(--text-base);gap:12px;padding:9px 10px;text-align:start;width:100%}.lang-option:hover{background:var(--color-bg)}.lang-option.is-selected{background:var(--color-accent-soft);color:var(--color-accent-soft-text);font-weight:600}.lang-badge{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);display:inline-grid;font-size:11px;font-weight:700;height:22px;letter-spacing:.04em;place-items:center;width:30px}.lang-option.is-selected .lang-badge{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.lang-label{flex:1 1}.lang-check{color:var(--color-accent)}.lang-glass .lang-trigger{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.22);color:#fff}.lang-glass .lang-trigger:hover{background:hsla(0,0%,100%,.16);border-color:hsla(0,0%,100%,.4)}.lang-glass .lang-chevron{color:hsla(0,0%,100%,.75)}@media (max-width:480px){.lang-current{display:none}.lang-trigger{padding:0 12px}}@media (prefers-reduced-motion:reduce){.lang-menu{animation:none}.lang-chevron{transition:none}}.shell{background:var(--color-bg);color:var(--color-text-primary);display:flex;height:100vh;height:100dvh;overflow:hidden}.shell-skip{background:var(--color-accent);border-radius:10px;color:#fff;font-weight:600;inset-block-start:8px;inset-inline-start:8px;padding:10px 16px;position:fixed;text-decoration:none;transform:translateY(-200%);z-index:3000}.shell-skip:focus{box-shadow:var(--ring);outline:none;transform:none}.shell-sidebar{background:#0b1120;border-inline-end:1px solid hsla(0,0%,100%,.06);color:#cbd5e1;display:flex;flex:none;flex-direction:column;transition:width .2s ease;width:var(--sidebar-w);z-index:200}.shell-sidebar.is-collapsed{width:var(--sidebar-w-collapsed)}.shell-brand{align-items:center;border-block-end:1px solid hsla(0,0%,100%,.06);display:flex;flex:none;gap:12px;height:var(--header-h);padding-inline:18px}.shell-brand-mark{background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:11px;box-shadow:0 6px 16px rgba(79,70,229,.4);color:#fff;display:grid;flex:none;height:38px;place-items:center;width:38px}.shell-brand-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.shell-brand-text strong{color:#fff;font-size:var(--text-md);font-weight:700}.shell-brand-text small{color:#94a3b8;font-size:var(--text-xs);margin-block-start:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-drawer-close{background:none;border:0;border-radius:8px;color:#94a3b8;cursor:pointer;display:none;margin-inline-start:auto;padding:6px}.shell-nav{-ms-overflow-style:none;flex:1 1;overflow-y:auto;padding:14px 12px;scrollbar-width:none}.shell-nav::-webkit-scrollbar{display:none}.shell-group+.shell-group{margin-block-start:8px}.shell-group ul{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.shell-group-title{color:#64748b;font-size:11px;font-weight:700;letter-spacing:.08em;padding:14px 12px 6px;text-transform:uppercase;white-space:nowrap}.shell-group-rule{background:hsla(0,0%,100%,.08);display:none;height:1px;margin:10px 8px}.shell-link{align-items:center;border-radius:10px;color:#cbd5e1;display:flex;font-size:var(--text-base);font-weight:500;gap:12px;height:42px;padding-inline:12px;position:relative;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast)}.shell-link svg{color:#94a3b8;flex:none;transition:color var(--transition-fast)}.shell-link-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-link:hover{background:hsla(0,0%,100%,.06);color:#fff}.shell-link:hover svg{color:#e2e8f0}.shell-collapse:focus-visible,.shell-link:focus-visible{box-shadow:inset 0 0 0 2px #818cf8;outline:none}.shell-link.is-active{background:rgba(99,102,241,.2);color:#fff;font-weight:600}.shell-link.is-active svg{color:#a5b4fc}.shell-link.is-active:before{background:#818cf8;border-radius:0 4px 4px 0;content:"";inset-block:9px;inset-inline-start:-12px;position:absolute;width:4px}[dir=rtl] .shell-link.is-active:before{border-radius:4px 0 0 4px}.shell-sidebar-foot{border-block-start:1px solid hsla(0,0%,100%,.06);flex:none;padding:10px 12px 14px}.shell-collapse{align-items:center;background:none;border:0;border-radius:10px;color:#94a3b8;cursor:pointer;display:flex;font:inherit;font-size:var(--text-sm);gap:12px;height:40px;padding-inline:12px;width:100%}.shell-collapse:hover{background:hsla(0,0%,100%,.06);color:#fff}.shell-sidebar.is-collapsed .shell-brand{justify-content:center;padding-inline:0}.shell-sidebar.is-collapsed .shell-brand-text,.shell-sidebar.is-collapsed .shell-group-title,.shell-sidebar.is-collapsed .shell-link-label{display:none}.shell-sidebar.is-collapsed .shell-group-rule{display:block}.shell-sidebar.is-collapsed .shell-collapse,.shell-sidebar.is-collapsed .shell-link{justify-content:center;padding-inline:0}.shell-sidebar.is-collapsed .shell-link.is-active:before{inset-inline-start:-12px}.shell-scrim{display:none}.shell-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.shell-topbar{align-items:center;-webkit-backdrop-filter:saturate(160%) blur(10px);backdrop-filter:saturate(160%) blur(10px);background:hsla(0,0%,100%,.88);border-block-end:1px solid var(--color-border);display:flex;flex:none;gap:14px;height:var(--header-h);padding-inline:28px;z-index:100}.shell-hamburger{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text-primary);cursor:pointer;display:none;height:40px;padding:0;place-items:center;width:40px}.shell-hamburger:focus-visible{box-shadow:var(--ring);outline:none}.shell-crumbs{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--text-base);gap:8px;min-width:0;white-space:nowrap}.shell-crumbs strong{color:var(--color-text-primary);font-weight:650;overflow:hidden;text-overflow:ellipsis}.shell-crumbs .is-flipped{transform:scaleX(-1)}.shell-topbar-end{align-items:center;display:flex;gap:10px;margin-inline-start:auto}.shell-search{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-base);gap:10px;height:40px;padding-inline:12px 8px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.shell-search:hover{border-color:var(--color-accent)}.shell-search:focus-visible{box-shadow:var(--ring);outline:none}.shell-search span{min-width:96px;text-align:start}.shell-palette kbd,.shell-search kbd{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);font:inherit;font-size:11px;font-weight:600;padding:2px 7px}.shell-topbar .notification-bell{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:50%;height:40px;padding:0;width:40px}.shell-topbar .notification-bell:hover{border-color:var(--color-accent)}.shell-topbar .notification-badge{border:2px solid #fff;inset-block-start:-4px;inset-inline-end:-4px;right:auto;top:auto}.shell-user{position:relative}.shell-user-btn{align-items:center;background:none;border:1px solid transparent;border-radius:var(--radius-full);color:inherit;cursor:pointer;display:flex;font:inherit;gap:10px;height:40px;padding-inline:4px 10px}.shell-user-btn:hover,.shell-user-btn[aria-expanded=true]{background:var(--color-bg);border-color:var(--color-border)}.shell-user-btn:focus-visible{box-shadow:var(--ring);outline:none}.shell-user-text{align-items:flex-start;display:flex;flex-direction:column;line-height:1.2;text-align:start}.shell-user-text strong{font-size:var(--text-sm);font-weight:650}.shell-user-text small{color:var(--color-text-secondary);font-size:var(--text-xs)}.shell-user-chevron{color:var(--color-text-tertiary)}.shell-user-menu{min-width:250px}.shell-user-card{align-items:center;display:flex;gap:12px;padding:8px 8px 6px}.shell-user-card strong{display:block;font-size:var(--text-base)}.shell-user-card small{color:var(--color-text-secondary);display:block;font-size:var(--text-sm);max-width:180px;overflow:hidden;text-overflow:ellipsis}.shell-content{flex:1 1;outline:none;overflow-y:auto;scroll-behavior:smooth}.shell-palette-overlay{align-items:flex-start;padding-block-start:12vh}.shell-palette{animation:ui-rise .16s ease-out;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:0 24px 60px rgba(15,23,42,.32);max-width:560px;overflow:hidden;width:100%}.shell-palette-input{align-items:center;border-block-end:1px solid var(--color-border);color:var(--color-text-tertiary);display:flex;gap:12px;padding:14px 16px}.shell-palette-input input{background:none;border:0;color:var(--color-text-primary);flex:1 1;font:inherit;font-size:var(--text-md);min-width:0;outline:none}.shell-palette ul{list-style:none;margin:0;max-height:340px;overflow-y:auto;padding:8px}.shell-palette li{align-items:center;border-radius:10px;color:var(--color-text-primary);cursor:pointer;display:flex;gap:12px;padding:11px 12px}.shell-palette li svg{color:var(--color-text-secondary)}.shell-palette li.is-active{background:var(--color-accent-soft);color:var(--color-accent-soft-text)}.shell-palette li.is-active svg{color:var(--color-accent)}.shell-palette-enter{margin-inline-start:auto}.shell-palette-empty{align-items:center;color:var(--color-text-secondary);display:flex;gap:10px;justify-content:center;padding:36px 16px}@media (max-width:1024px){.shell-sidebar,.shell-sidebar.is-collapsed{box-shadow:none;inset-block:0;inset-inline-start:0;position:fixed;transform:translateX(-102%);transition:transform .22s ease;width:min(300px,86vw)}[dir=rtl] .shell-sidebar,[dir=rtl] .shell-sidebar.is-collapsed{transform:translateX(102%)}.shell-sidebar.is-open{box-shadow:0 0 60px rgba(2,6,23,.5);transform:none}.shell-sidebar.is-collapsed .shell-brand{justify-content:flex-start;padding-inline:18px}.shell-sidebar.is-collapsed .shell-brand-text,.shell-sidebar.is-collapsed .shell-group-title,.shell-sidebar.is-collapsed .shell-link-label{display:revert}.shell-sidebar.is-collapsed .shell-group-rule{display:none}.shell-sidebar.is-collapsed .shell-link{justify-content:flex-start;padding-inline:12px}.shell-sidebar-foot{display:none}.shell-drawer-close{display:grid}.shell-scrim{animation:ui-fade .16s ease-out;background:rgba(15,23,42,.5);display:block;inset:0;position:fixed;z-index:150}.shell-hamburger{display:grid}.shell-topbar{gap:10px;padding-inline:16px}}@media (max-width:860px){.shell-search kbd,.shell-search span{display:none}.shell-search{justify-content:center;padding:0;width:40px}.shell-user-chevron,.shell-user-text{display:none}.shell-user-btn{padding-inline:2px}}@media (max-width:640px){.shell-crumbs>span,.shell-crumbs>svg{display:none}.shell-topbar-end{gap:8px}.shell-palette-overlay{padding-block-start:6vh}}@media (prefers-reduced-motion:reduce){.shell-sidebar{transition:none}.shell-content{scroll-behavior:auto}.shell-palette,.shell-scrim{animation:none}}@media print{.shell-sidebar,.shell-topbar{display:none!important}.shell{display:block;height:auto}.shell,.shell-content{overflow:visible}}.auth-shell{background:var(--color-surface);color:var(--color-text-primary);display:grid;font-family:var(--font-sans);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh}.auth-hero{background:radial-gradient(1200px 600px at 110% -10%,rgba(99,102,241,.55),transparent 60%),radial-gradient(800px 500px at -20% 110%,rgba(56,189,248,.22),transparent 60%),linear-gradient(160deg,#0b1020,#14123a 55%,#1f1a5e);color:#fff;display:flex;flex-direction:column;gap:40px;isolation:isolate;justify-content:space-between;overflow:hidden;padding:44px 56px;position:relative}.auth-hero:before{background-image:radial-gradient(hsla(0,0%,100%,.07) 1px,transparent 0);background-size:22px 22px;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 85%);mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 85%);position:absolute;z-index:-1}.auth-hero-glow{background:radial-gradient(circle,rgba(129,140,248,.35),transparent 65%);border-radius:50%;filter:blur(8px);height:360px;inset-block-start:22%;inset-inline-end:-120px;position:absolute;width:360px;z-index:-1}.auth-brand{align-items:center;display:flex;gap:12px}.auth-brand-mark{background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:12px;box-shadow:0 6px 18px rgba(79,70,229,.45);color:#fff;display:grid;height:40px;place-items:center;width:40px}.auth-brand-name{font-size:var(--text-md);font-weight:700;letter-spacing:.01em}.auth-hero-body{max-width:520px}.auth-eyebrow{background:hsla(0,0%,100%,.09);border:1px solid hsla(0,0%,100%,.16);border-radius:var(--radius-full);color:#c7d2fe;display:inline-block;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;margin-block-end:18px;padding:5px 12px}.auth-hero h2{font-size:clamp(28px,3.1vw,42px);font-weight:750;letter-spacing:-.02em;line-height:1.15;margin:0 0 14px}.auth-hero-sub{color:rgba(226,232,240,.82);font-size:var(--text-md);line-height:1.55;margin:0 0 30px}.auth-features{display:flex;flex-direction:column;gap:16px;list-style:none;margin:0;padding:0}.auth-features li{align-items:flex-start;display:flex;gap:14px}.auth-feature-icon{background:hsla(0,0%,100%,.09);border:1px solid hsla(0,0%,100%,.14);border-radius:10px;color:#a5b4fc;display:grid;flex:none;height:38px;place-items:center;width:38px}.auth-features strong{display:block;font-size:var(--text-base);font-weight:650}.auth-features small{color:rgba(226,232,240,.72);display:block;font-size:var(--text-sm);line-height:1.45;margin-block-start:2px}.auth-preview{animation:auth-float 7s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.16);border-radius:var(--radius-lg);box-shadow:0 18px 40px rgba(2,6,23,.35);max-width:420px;padding:14px 16px}.auth-preview-head{color:rgba(199,210,254,.9);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;margin-block-end:8px;text-transform:uppercase}.auth-preview-row{align-items:center;border-block-start:1px solid hsla(0,0%,100%,.1);display:flex;font-size:var(--text-sm);gap:10px;padding:8px 0}.auth-preview-avatar{background:rgba(129,140,248,.35);border-radius:50%;display:grid;font-size:12px;font-weight:700;height:26px;place-items:center;width:26px}.auth-preview-name{flex:1 1}.auth-preview-wa{align-items:center;background:#25d366;border-radius:var(--radius-full);color:#fff;display:inline-flex;font-size:11px;font-weight:700;gap:4px;padding:3px 9px}@keyframes auth-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.auth-panel{background:var(--color-surface);display:flex;flex-direction:column;min-height:100vh;padding:24px 40px}.auth-panel-top{align-items:center;display:flex;justify-content:space-between;min-height:44px}.auth-brand-compact{display:none}.auth-brand-compact .auth-brand-name{color:var(--color-text-primary)}.auth-main{align-items:center;display:flex;flex:1 1;justify-content:center;padding-block:32px}.auth-form-wrap{max-width:400px;width:100%}.auth-heading h1{font-size:30px;font-weight:750;letter-spacing:-.02em;line-height:1.2;margin:0 0 8px}.auth-heading p{color:var(--color-text-secondary);font-size:var(--text-md);margin:0 0 28px}.auth-alert{align-items:flex-start;border-radius:var(--radius-md);display:flex;font-size:var(--text-base);gap:10px;line-height:1.45;margin-block-end:18px;padding:12px 14px}.auth-alert svg{flex:none;margin-block-start:1px}.auth-alert-error{animation:auth-shake .36s ease-in-out;background:var(--color-danger-soft);border:1px solid rgba(220,38,38,.28);color:#991b1b}.auth-alert-info{background:var(--color-info-soft);border:1px solid rgba(37,99,235,.25);color:#1e40af;margin-block:0 18px}@keyframes auth-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-field label{color:var(--color-text-primary);display:block;font-size:var(--text-base);font-weight:600;margin-block-end:7px}.auth-label-row{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.auth-label-row label{margin-block-end:7px}.auth-link{background:none;border:0;color:var(--color-accent);cursor:pointer;font:inherit;font-size:var(--text-sm);font-weight:600;padding:0}.auth-link:hover{color:var(--color-accent-hover);text-decoration:underline}.auth-eye:focus-visible,.auth-link:focus-visible{border-radius:var(--radius-sm);box-shadow:0 0 0 3px var(--color-accent-soft),0 0 0 1px var(--color-accent);outline:none}.auth-input{align-items:center;display:flex;position:relative}.auth-input input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:12px;color:var(--color-text-primary);font:inherit;font-size:var(--text-md);height:50px;padding-inline:44px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}[dir=rtl] .auth-input input{text-align:end}.auth-input input::placeholder{color:var(--color-text-tertiary)}.auth-input input:hover:not(:disabled){border-color:#9ca3af}.auth-input input:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft);outline:none}.auth-input input:disabled{background:var(--color-bg);color:var(--color-text-secondary)}.auth-input.has-error input{border-color:var(--color-danger)}.auth-input.has-error input:focus{box-shadow:0 0 0 4px var(--color-danger-soft)}.auth-input-icon{color:var(--color-text-tertiary);inset-inline-start:15px;pointer-events:none;position:absolute;transition:color var(--transition-fast)}.auth-input:focus-within .auth-input-icon{color:var(--color-accent)}.auth-eye{background:none;border:0;border-radius:10px;color:var(--color-text-secondary);cursor:pointer;display:grid;height:38px;inset-inline-end:6px;padding:0;place-items:center;position:absolute;transition:background var(--transition-fast),color var(--transition-fast);width:38px}.auth-eye:hover{background:var(--color-bg);color:var(--color-text-primary)}.auth-field-error{color:var(--color-danger);font-size:var(--text-sm);margin:6px 0 0}.auth-hint-warn{align-items:center;color:var(--color-warning);display:flex;font-size:var(--text-sm);gap:6px;margin:8px 0 0}.auth-submit{align-items:center;background:linear-gradient(135deg,#6366f1,#4f46e5);border:0;border-radius:12px;box-shadow:0 8px 20px rgba(79,70,229,.32);color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-md);font-weight:650;gap:10px;height:52px;justify-content:center;margin-block-start:6px;transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast)}.auth-submit:hover:not(:disabled){box-shadow:0 12px 26px rgba(79,70,229,.4);filter:brightness(1.05);transform:translateY(-1px)}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:focus-visible{box-shadow:0 0 0 4px var(--color-accent-soft),0 8px 20px rgba(79,70,229,.32);outline:none}.auth-submit:disabled{cursor:progress;opacity:.85}.auth-submit-arrow{transition:transform var(--transition-fast)}.auth-submit:hover:not(:disabled) .auth-submit-arrow{transform:translateX(3px)}[dir=rtl] .auth-submit-arrow{transform:scaleX(-1)}[dir=rtl] .auth-submit:hover:not(:disabled) .auth-submit-arrow{transform:scaleX(-1) translateX(3px)}.auth-spinner{animation:auth-spin .7s linear infinite;border:2px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:#fff;height:18px;width:18px}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-secure{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);gap:6px;justify-content:center;margin:22px 0 0}.auth-footer{color:var(--color-text-tertiary);font-size:var(--text-xs);text-align:center}@media (max-width:960px){.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.auth-brand-compact{display:flex}.auth-panel{background:radial-gradient(600px 260px at 100% -10%,rgba(99,102,241,.1),transparent 70%),var(--color-surface);padding:20px 20px 16px}.auth-main{align-items:flex-start;padding-block:40px 24px}}@media (max-width:480px){.auth-heading h1{font-size:26px}}@media (prefers-reduced-motion:reduce){.auth-alert-error,.auth-preview,.auth-spinner{animation:none}.auth-submit,.auth-submit-arrow{transition:none}}.auth-shell-solo{background:var(--color-bg);grid-template-columns:1fr}.auth-solo-icon{background:var(--color-accent-soft);border-radius:16px;color:var(--color-accent);display:grid;height:54px;margin-block-end:14px;place-items:center;width:54px}.auth-solo-ok{background:var(--color-success-soft);color:var(--color-success)}.auth-solo-bad{background:var(--color-danger-soft);color:var(--color-danger)}.auth-back{margin:22px 0 0;text-align:center}.auth-back .auth-link{align-items:center;display:inline-flex;gap:6px}.auth-flip{transform:scaleX(-1)}.auth-submit-link{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration:none;width:100%}.auth-rules{grid-gap:5px;color:var(--color-text-secondary);display:grid;font-size:13px;gap:5px;list-style:none;margin:10px 0 0;padding:0}.auth-rules li{align-items:center;display:flex;gap:8px}.auth-rules li svg{flex:none}.auth-rules li.is-met{color:var(--color-success-text)}.fin-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-block-end:var(--space-5)}.fin-header h1{font-size:var(--text-xl);margin:0 0 4px}.fin-header p{margin:0;max-width:560px}.fin-header-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.fin-muted{color:var(--color-text-secondary)}.fin-small{font-size:var(--text-sm)}.fin-ok{color:var(--color-success)}.fin-warn{color:var(--color-warning)}.fin-error{color:var(--color-danger)}.fin-empty{padding:var(--space-8) 0;text-align:center}.fin-banner{background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:var(--radius-md);margin-block-end:var(--space-4);padding:var(--space-3) var(--space-4)}.fin-btn{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text-primary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-base);font-weight:500;gap:6px;justify-content:center;min-height:40px;padding:9px 16px;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.fin-btn:hover:not(:disabled){background:var(--color-bg)}.fin-btn:disabled{cursor:not-allowed;opacity:.5}.fin-btn-primary{border-color:transparent;box-shadow:0 1px 2px rgba(79,70,229,.35);color:#fff}.fin-btn-primary,.fin-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#6366f1 0,var(--color-accent) 100%)}.fin-btn-primary:hover:not(:disabled){filter:brightness(1.06)}.fin-btn-wa{background:#25d366;border-color:#25d366;color:#fff}.fin-btn-wa:hover:not(:disabled){background:#1fb457}.fin-btn-wa.is-done{background:#e8f9ef;border-color:#b7ebcb;color:#167a3f}.fin-btn-danger{border-color:var(--color-danger);color:var(--color-danger)}.fin-btn-danger-solid{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.fin-btn-sm{font-size:var(--text-sm);min-height:32px;padding:5px 10px}.fin-btn-icon{font-size:18px;min-height:36px;padding:0;width:36px}.fin-link{background:none;border:0;color:var(--color-accent);cursor:pointer;font:inherit;font-size:var(--text-sm);padding:0}.fin-summary{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-block-end:var(--space-4)}.fin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:4px;padding:var(--space-4)}.fin-card-label{color:var(--color-text-secondary);font-size:var(--text-sm)}.fin-card-value{font-size:24px;line-height:1.2}.fin-card-danger .fin-card-value{color:var(--color-danger)}.fin-card-ok .fin-card-value{color:var(--color-success)}a.fin-card{color:inherit;text-decoration:none}a.fin-card:hover{border-color:var(--color-accent)}.fin-filters{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block-end:var(--space-4)}.fin-field input,.fin-field select,.fin-field textarea,.fin-filters input,.fin-filters select{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-primary);font:inherit;font-size:var(--text-base);min-height:40px;padding:8px 12px}.fin-search{flex:1 1 220px;min-width:180px}.fin-inline{color:var(--color-text-secondary);font-size:var(--text-sm);gap:6px}.fin-inline,.fin-month-picker{align-items:center;display:inline-flex}.fin-month-picker{font-weight:600;gap:var(--space-2);padding:2px;text-transform:capitalize}.fin-month-picker span{min-width:130px;text-align:center}.fin-segmented{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.fin-segmented button{background:var(--color-surface);border:0;border-inline-end:1px solid var(--color-border);cursor:pointer;font:inherit;font-size:var(--text-sm);min-height:40px;padding:8px 12px}.fin-segmented button:last-child{border-inline-end:0}.fin-segmented button.is-on{background:var(--color-accent-soft);color:var(--color-accent-soft-text);font-weight:600}.fin-list{display:flex;flex-direction:column;gap:var(--space-2);list-style:none;margin:0;padding:0}.fin-row{grid-gap:var(--space-4);align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;gap:var(--space-4);grid-template-columns:1fr auto auto;padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.fin-row-title{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.fin-row-amount{font-size:var(--text-md);font-weight:700;white-space:nowrap}.fin-row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.fin-badge{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);display:inline-block;font-size:var(--text-xs);font-weight:600;padding:2px 8px;white-space:nowrap}.fin-badge-danger{background:var(--color-danger-soft);border-color:transparent;color:var(--color-danger)}.fin-badge-ok{background:var(--color-success-soft);border-color:transparent;color:var(--color-success)}.fin-badge-warn{background:var(--color-warning-soft);border-color:transparent;color:var(--color-warning)}.fin-pill{background:var(--color-danger-soft);border-radius:var(--radius-full);color:var(--color-danger);font-size:var(--text-sm);font-weight:600;padding:3px 10px}.fin-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.fin-table{border-collapse:collapse;width:100%}.fin-table td,.fin-table th{border-bottom:1px solid var(--color-border);padding:10px 14px;text-align:start;vertical-align:top}.fin-table th{background:var(--color-surface-2);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.fin-table tr:last-child td{border-bottom:0}.fin-table .fin-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.fin-table tr.is-out td{color:var(--color-text-tertiary)}.fin-table tr.is-out .fin-num{text-decoration:line-through}.fin-table .fin-row-actions{justify-content:flex-end}.fin-overlay{align-items:center;background:rgba(17,24,39,.5);display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:1000}.fin-sheet{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:92vh;max-width:520px;overflow-y:auto;padding:var(--space-5);width:100%}.fin-sheet-head{align-items:center;display:flex;justify-content:space-between;margin-block-end:var(--space-3)}.fin-sheet-head h2{font-size:var(--text-lg);margin:0}.fin-close{background:none;border:0;cursor:pointer;font-size:26px;line-height:1}.fin-close,.fin-field{color:var(--color-text-secondary)}.fin-field{display:flex;flex-direction:column;font-size:var(--text-sm);gap:6px;margin-block-end:var(--space-3)}.fin-field input,.fin-field textarea{box-sizing:border-box;width:100%}.fin-field input[aria-invalid=true]{border-color:var(--color-danger)}.fin-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:1fr 1fr}.fin-row-between{align-items:center;display:flex;justify-content:space-between}.fin-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-block-start:var(--space-4)}.fin-actions.fin-wrap{flex-wrap:wrap;justify-content:flex-start}.fin-student-card{align-items:center;background:var(--color-bg);border-radius:var(--radius-md);display:flex;gap:var(--space-2);justify-content:space-between;margin-block-end:var(--space-3);padding:var(--space-3)}.fin-months{border:1px solid var(--color-border);border-radius:var(--radius-md);list-style:none;margin:0;padding:0}.fin-months li{align-items:center;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);display:flex;font-size:var(--text-base);gap:var(--space-2);justify-content:space-between;padding:8px 12px;text-transform:capitalize}.fin-months li:last-child{border-bottom:0}.fin-months li:empty{display:none}.fin-small-input{min-height:34px!important;text-align:end;width:96px!important}.fin-pick-list{list-style:none;margin:0;max-height:320px;overflow-y:auto;padding:0}.fin-pick{background:none;border:0;border-bottom:1px solid var(--color-border);cursor:pointer;display:flex;font:inherit;justify-content:space-between;padding:10px 12px;text-align:start;width:100%}.fin-pick:hover{background:var(--color-bg)}.fin-saved{text-align:center}.fin-saved .fin-months{margin-block:var(--space-3);text-align:start}.fin-receipt-no{font-size:28px;font-weight:700;letter-spacing:.02em;margin:0 0 var(--space-2)}.fin-check{align-items:center;cursor:pointer;display:flex;gap:var(--space-3);padding:8px 4px}.fin-check span{flex:1 1}.fin-check-all{border-bottom:1px solid var(--color-border);font-weight:600}.fin-bulk-list{list-style:none;margin:0;max-height:340px;overflow-y:auto;padding:0}.fin-bulk-list li.is-disabled{opacity:.55}.fin-queue{text-align:start}.fin-message{background:var(--color-bg);border-radius:var(--radius-md);padding:var(--space-3);white-space:pre-wrap}.fin-bars{grid-gap:var(--space-3);align-items:end;display:grid;gap:var(--space-3);grid-template-columns:repeat(6,1fr);height:190px;padding-block-start:var(--space-3)}.fin-bar-col{align-items:center;display:flex;flex-direction:column;gap:6px;height:100%;justify-content:flex-end;min-width:0}.fin-bar-track{align-items:flex-end;display:flex;flex:1 1;max-width:54px;position:relative;width:100%}.fin-bar-expected{background:var(--color-accent-soft);border:1px solid var(--color-accent)}.fin-bar-collected,.fin-bar-expected{border-radius:var(--radius-sm) var(--radius-sm) 0 0;inset-inline:0;bottom:0;position:absolute}.fin-bar-collected{background:var(--color-accent)}.fin-bar-label{color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:capitalize}.fin-bar-value{font-feature-settings:"tnum";color:var(--color-text-primary);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.fin-legend{color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);gap:var(--space-4);margin-block-start:var(--space-2)}.fin-legend i{border-radius:2px;display:inline-block;height:10px;margin-inline-end:6px;width:10px}@media (max-width:720px){.fin-row{grid-template-columns:1fr auto}.fin-row-actions{grid-column:1/-1}.fin-row-actions .fin-btn{flex:1 1}.fin-grid{grid-template-columns:1fr}.fin-header-actions{width:100%}}.fin-row:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.dash-section{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:700;letter-spacing:.06em;margin:0 0 12px;text-transform:uppercase}.dash-columns{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);margin-block-end:28px}.dash-glance{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.dash-link{color:var(--color-accent);font-size:var(--text-sm);font-weight:600;text-decoration:none}.dash-link:hover{text-decoration:underline}.dash-arrow{vertical-align:-2px}[dir=rtl] .dash-arrow{transform:scaleX(-1)}.dash-list{list-style:none;margin:0;padding:4px 8px}.dash-list li{align-items:center;border-radius:10px;display:flex;gap:12px;padding:10px 12px}.dash-list li:hover{background:var(--color-surface-2)}.dash-list-main{flex:1 1;min-width:0}.dash-list-main strong{font-weight:650}.dash-list-main small,.dash-list-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-list-main small{color:var(--color-text-secondary);font-size:var(--text-sm)}.dash-list-end{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.dash-amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width:1024px){.dash-columns{grid-template-columns:1fr}}.rd-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-block-end:24px}.rd-panel{overflow:hidden}.rd-pad{padding:16px 20px 20px}.dash-columns.rd-even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rd-panel+.rd-panel{margin-block-start:0}.ui-page>.rd-panel{margin-block-end:28px}.rd-icon{background:var(--color-accent-soft);border-radius:11px;color:var(--color-accent);display:grid;flex:none;height:38px;place-items:center;width:38px}.rd-end{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.rd-date{background:var(--color-accent-soft);border-radius:11px;color:var(--color-accent);display:grid;flex:none;height:46px;line-height:1.1;place-items:center;width:42px}.rd-date b{font-size:17px}.rd-date small{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.rd-bars{grid-gap:18px;display:grid;gap:18px;list-style:none;margin:0;padding:0}.rd-bars-top{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-block-end:6px}.rd-bar{background:var(--color-border);border-radius:99px;height:8px;overflow:hidden}.rd-bar span{border-radius:inherit;display:block;height:100%}.rd-bar-success{background:var(--color-success)}.rd-bar-warning{background:var(--color-warning)}.rd-bar-danger{background:var(--color-danger)}.rd-bar-none{background:transparent}.rd-bars small{display:block;margin-block-start:4px}.rd-child{align-items:center;display:flex;flex-wrap:wrap;gap:14px;margin-block-end:20px}.rd-child h2{font-size:20px;font-weight:750;margin:0}.rd-child p{margin:2px 0 0}.rd-child-tabs{margin-inline-start:auto}@media (max-width:1024px){.dash-columns.rd-even{grid-template-columns:1fr}}@media (max-width:640px){.rd-stats{gap:10px;grid-template-columns:1fr 1fr}.rd-stats .ui-stat{padding:12px 14px}.rd-stats .ui-stat-value{font-size:20px}.rd-stats .ui-stat-icon{display:none}.rd-stats .ui-stat:last-child:nth-child(odd){grid-column:1/-1}.rd-panel .dash-list-main small,.rd-panel .dash-list-main strong{white-space:normal}.rd-child-tabs{flex:1 0 100%;margin-inline-start:0}.dash-list li,.rd-end{flex-wrap:wrap}.rd-end{align-items:flex-start;flex-direction:row}}.modal-overlay{align-items:center;animation:modalFade .15s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgba(15,23,42,.5);display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}@keyframes modalFade{0%{opacity:0}to{opacity:1}}.modal-content{animation:modalRise .18s ease-out;background:#fff;background:var(--color-surface,#fff);border-radius:18px;border-radius:var(--radius-xl,18px);box-shadow:0 24px 60px rgba(15,23,42,.28);max-height:92vh;max-width:600px;overflow-y:auto;width:100%}.modal-content.large{max-width:800px}@keyframes modalRise{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border,#e5e7eb);display:flex;gap:12px;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#111827;color:var(--color-text-primary,#111827);font-size:20px;font-size:var(--text-lg,20px);font-weight:750;margin:0}.close-button,.modal-close{background:none;border:0;border-radius:10px;color:#6b7280;color:var(--color-text-secondary,#6b7280);cursor:pointer;display:grid;font-size:1.5rem;height:36px;line-height:1;padding:0;place-items:center;transition:background .15s ease,color .15s ease;width:36px}.close-button:hover,.modal-close:hover{background:#f3f4f6;background:var(--color-bg,#f3f4f6);color:#111827;color:var(--color-text-primary,#111827)}.modal-content form,.modal-form{padding:24px}.form-group{margin-bottom:18px}.form-group label{color:#111827;color:var(--color-text-primary,#111827);display:block;font-size:14px;font-size:var(--text-base,14px);font-weight:600;margin-bottom:7px}.form-group label .required{color:#dc2626;color:var(--color-danger,#dc2626)}.form-group input,.form-group select,.form-group textarea{background:#fff;background:var(--color-surface,#fff);border:1px solid #d1d5db;border:1px solid var(--color-border-strong,#d1d5db);border-radius:10px;box-sizing:border-box;color:#111827;color:var(--color-text-primary,#111827);font:inherit;font-size:14px;font-size:var(--text-base,14px);min-height:42px;padding:9px 14px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.form-group input:hover:not(:disabled),.form-group select:hover:not(:disabled),.form-group textarea:hover:not(:disabled){border-color:#aab1bd}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4f46e5;border-color:var(--color-accent,#4f46e5);box-shadow:0 0 0 4px #eef2ff;box-shadow:0 0 0 4px var(--color-accent-soft,#eef2ff);outline:none}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f3f4f6;background:var(--color-bg,#f3f4f6);color:#6b7280;color:var(--color-text-secondary,#6b7280);cursor:not-allowed}.form-group small{color:#6b7280;color:var(--color-text-secondary,#6b7280);display:block;font-size:13px;font-size:var(--text-sm,13px);margin-top:6px}.form-group textarea{min-height:90px;resize:vertical}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1 1;min-width:0}.modal-footer{border-top:1px solid #e5e7eb;border-top:1px solid var(--color-border,#e5e7eb);display:flex;gap:10px;justify-content:flex-end;margin-top:8px;padding:16px 24px 20px}.modal-actions button,.modal-footer button{border-radius:10px;transition:filter .15s ease,background .15s ease,box-shadow .15s ease}.modal-actions button,.modal-footer button,.primary-button{cursor:pointer;font:inherit;font-size:14px;font-size:var(--text-base,14px);font-weight:600;min-height:40px;padding:0 18px}.primary-button{align-items:center;background:linear-gradient(135deg,#6366f1,#4f46e5);background:linear-gradient(135deg,#6366f1 0,var(--color-accent,#4f46e5) 100%);border:0;border-radius:10px;box-shadow:0 1px 2px rgba(79,70,229,.35),inset 0 1px 0 hsla(0,0%,100%,.12);color:#fff;display:inline-flex;gap:8px;justify-content:center;transition:filter .15s ease,box-shadow .15s ease}.primary-button:hover:not(:disabled){box-shadow:0 4px 12px rgba(79,70,229,.3);filter:brightness(1.06)}.button-danger:focus-visible,.button-secondary:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible{box-shadow:0 0 0 3px #eef2ff;box-shadow:var(--ring,0 0 0 3px #eef2ff);outline:none}.button-danger:disabled,.button-secondary:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55}.button-secondary,.secondary-button{background:#fff;background:var(--color-surface,#fff);border:1px solid #d1d5db;border:1px solid var(--color-border-strong,#d1d5db);box-shadow:none;box-shadow:var(--shadow-xs,none);color:#111827;color:var(--color-text-primary,#111827)}.button-secondary:hover:not(:disabled),.secondary-button:hover:not(:disabled){background:#f9fafb;background:var(--color-surface-2,#f9fafb);border-color:#b8bfc9}.button-danger{background:#dc2626;background:var(--color-danger,#dc2626);border:0;color:#fff}.button-danger:hover:not(:disabled){filter:brightness(1.06)}.modal-form .error-banner{align-items:center;background:#fef2f2;background:var(--color-danger-soft,#fef2f2);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;gap:.75rem;margin-bottom:18px;padding:12px 14px}.detail-section{margin-bottom:1.25rem}.detail-title{color:var(--color-text-primary);font-size:1.5rem;margin:0 0 .75rem}.detail-badges{display:flex;flex-wrap:wrap;gap:.5rem}.priority-badge{border-radius:4px;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.priority-badge.low{background-color:#dbeafe;color:#1e40af}.priority-badge.medium{background-color:#fef3c7;color:#92400e}.priority-badge.high{background-color:#fed7aa;color:#9a3412}.priority-badge.urgent{background-color:#fecaca;color:#991b1b}.status-badge.overdue{background-color:#fee2e2;color:#991b1b}.status-badge.due-soon{background-color:#fef3c7;color:#92400e}.detail-label{color:#6b7280;display:block;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:.25rem;text-transform:uppercase}.detail-text{color:#1f2937;font-size:.875rem;line-height:1.5;margin:0}.detail-row{display:flex;gap:1.5rem;margin-bottom:1.25rem}.detail-row .detail-section{flex:1 1;margin-bottom:0}.modal-body{padding:24px}.delete-modal-icon{background:#fef2f2;background:var(--color-danger-soft,#fef2f2);border-radius:14px;display:grid;font-size:1.6rem;height:52px;margin:0 auto 14px;place-items:center;width:52px}.delete-modal-message{font-size:16px;font-size:var(--text-md,16px);margin:0 0 8px}.delete-modal-item-name,.delete-modal-message{color:#111827;color:var(--color-text-primary,#111827);text-align:center}.delete-modal-item-name{margin:0 0 10px}.delete-modal-warning{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:13px;font-size:var(--text-sm,13px);margin:0;text-align:center}.modal-actions{border-top:1px solid #e5e7eb;border-top:1px solid var(--color-border,#e5e7eb);display:flex;gap:10px;justify-content:flex-end;padding:16px 24px 20px}@media (max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.modal-content{border-radius:18px 18px 0 0;border-radius:var(--radius-xl,18px) var(--radius-xl,18px) 0 0;max-height:94vh;max-width:none}.detail-row,.form-row{flex-direction:column;gap:0}.detail-row .detail-section{margin-bottom:1.25rem}.modal-body,.modal-content form,.modal-form,.modal-header{padding:16px}.modal-actions,.modal-footer{flex-direction:column-reverse;padding:14px 16px 18px}.modal-actions button,.modal-footer button{width:100%}}@media (prefers-reduced-motion:reduce){.modal-content,.modal-overlay{animation:none}}.class-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.class-card{display:flex;flex-direction:column;gap:16px;padding:18px 20px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.class-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.class-card-head{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.class-card-head h2{font-size:var(--text-md);font-weight:700;margin:0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-card-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.class-card-count{align-items:baseline;display:flex;gap:8px}.class-card-count svg{align-self:center;color:var(--color-text-tertiary)}.class-card-count strong{font-feature-settings:"tnum";font-size:24px;font-variant-numeric:tabular-nums;font-weight:750;letter-spacing:-.02em}.class-bar{background:var(--color-bg);border-radius:var(--radius-full);height:8px;overflow:hidden}.class-bar>span{background:var(--color-accent);border-radius:inherit;display:block;height:100%;transition:width .3s ease}.class-bar-warn>span{background:var(--color-warning)}.class-bar-full>span{background:var(--color-danger)}@media (prefers-reduced-motion:reduce){.class-bar>span{transition:none}}.asg-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.asg-select{min-width:170px}.asg-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.05);box-shadow:var(--shadow-sm,0 1px 2px rgba(15,23,42,.05));display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.asg-card:hover{border-color:var(--color-border-strong);box-shadow:0 6px 20px rgba(15,23,42,.07)}.asg-card.is-late{border-inline-start:3px solid var(--color-danger)}.asg-card-skel{gap:12px}.asg-card-top{gap:8px;justify-content:space-between}.asg-card-top,.asg-tags{align-items:center;display:flex}.asg-tags{flex-wrap:wrap;gap:6px;min-width:0}.asg-card h3{font-size:17px;font-weight:700;line-height:1.35;margin:0}.asg-title{background:none;border:0;color:var(--color-text-primary);cursor:pointer;font:inherit;padding:0;text-align:start}.asg-title:hover{color:var(--color-accent)}.asg-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--text-sm);line-height:1.55;overflow:hidden}.asg-desc,.asg-meta{color:var(--color-text-secondary);margin:0}.asg-meta{display:flex;flex-wrap:wrap;font-size:13px;gap:6px 14px;list-style:none;padding:0}.asg-meta li{align-items:center;display:inline-flex;gap:6px}.asg-card-foot{align-items:center;border-block-start:1px solid var(--color-border);display:flex;gap:8px;justify-content:space-between;margin-block-start:auto;padding-block-start:12px}.asg-foot-end{gap:10px}.asg-foot-end,.asg-subs{align-items:center;display:inline-flex}.asg-subs{gap:4px}.asg-pager{margin-block-start:16px}.asg-form{grid-gap:16px;display:grid;gap:16px}.asg-field,.asg-form label{grid-gap:6px;display:grid;gap:6px}.asg-field>span,.asg-form label>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.asg-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.asg-form .ui-input,.asg-form .ui-select,.asg-form .ui-textarea,.asg-priority{width:100%}.asg-priority .ui-chip{flex:1 1}.asg-badges{display:flex;flex-wrap:wrap;gap:8px;margin-block-end:14px}.asg-detail-text{color:var(--color-text-primary);line-height:1.65;margin:0 0 18px;white-space:pre-wrap}.asg-facts{grid-gap:0;border:1px solid var(--color-border);border-radius:14px;display:grid;gap:0;margin:0;overflow:hidden}.asg-facts>div{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.asg-facts>div+div{border-block-start:1px solid var(--color-border)}.asg-facts dt{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:13px;gap:8px}.asg-facts dd{font-weight:600;margin:0;min-width:0;text-align:end}@media (max-width:640px){.asg-form-row,.asg-grid{grid-template-columns:1fr}}.rel-form{grid-gap:20px;display:grid;gap:20px}.rel-types{flex-wrap:wrap;width:100%}.ppick{grid-gap:8px;display:grid;gap:8px}.ppick-label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.ppick .ui-input{width:100%}.ppick-list{grid-gap:2px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;display:grid;gap:2px;list-style:none;margin:0;max-height:280px;overflow-y:auto;padding:4px}.ppick-list button{align-items:center;background:transparent;border:0;border-radius:8px;cursor:pointer;display:flex;font:inherit;gap:10px;padding:8px 10px;text-align:start;width:100%}.ppick-list button:focus-visible,.ppick-list button:hover{background:var(--color-accent-soft);outline:none}.ppick-chosen strong,.ppick-list strong{display:block;font-weight:650}.ppick-chosen small,.ppick-list small{color:var(--color-text-secondary);display:block}.ppick-none{color:var(--color-text-secondary);font-size:var(--text-sm);padding:14px;text-align:center}.ppick-chosen{align-items:center;background:var(--color-accent-soft);border:1px solid var(--color-accent);border-radius:12px;display:flex;gap:10px;padding:10px 12px}.ppick-chosen>span{flex:1 1;min-width:0}.ppick-clear{background:transparent;border:0;border-radius:8px;color:var(--color-text-secondary);cursor:pointer;display:grid;height:30px;place-items:center;width:30px}.ppick-clear:hover{background:var(--color-surface);color:var(--color-text-primary)}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer;overflow:visible;text-transform:none}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-toolbar{align-items:center;display:flex;flex-wrap:wrap;font-size:16px;justify-content:center;margin-bottom:10px}.rbc-toolbar .rbc-toolbar-label{flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{background:none;background-image:none;border:1px solid #ccc;border-radius:4px;color:#373a3c;display:inline-block;line-height:normal;margin:0;padding:.375rem 1rem;text-align:center;vertical-align:middle;white-space:nowrap}.rbc-toolbar button.rbc-active,.rbc-toolbar button:active{background-color:#e6e6e6;background-image:none;border-color:#adadad;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.rbc-toolbar button.rbc-active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button:active:hover{background-color:#d4d4d4;border-color:#8c8c8c;color:#373a3c}.rbc-toolbar button:focus,.rbc-toolbar button:hover{background-color:#e6e6e6;border-color:#adadad;color:#373a3c}.rbc-toolbar button:hover{cursor:pointer}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width:767px){.rbc-toolbar{flex-direction:column}}.rbc-event{background-color:#3174ad;border:none;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;margin:0;padding:2px 5px;text-align:left;width:100%}.rbc-slot-selecting .rbc-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected{background-color:#265985}.rbc-event:focus{outline:5px auto #3b99fc}.rbc-event-label{display:block;font-size:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-event-overlaps{box-shadow:-1px 1px 5px 0 rgba(51,51,51,.5)}.rbc-event-continues-prior{border-bottom-left-radius:0;border-top-left-radius:0}.rbc-event-continues-after{border-bottom-right-radius:0;border-top-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:flex;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-row-segment .rbc-event-content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-selected-cell{background-color:rgba(0,0,0,.1)}.rbc-show-more{background-color:hsla(0,0%,100%,.3);color:#3174ad;display:block;font-size:85%;height:auto;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:4}.rbc-show-more:focus,.rbc-show-more:hover{color:#265985}.rbc-month-view{border:1px solid #ddd;display:flex;flex:1 0;flex-direction:column;height:100%;position:relative;-moz-user-select:none;user-select:none;-webkit-user-select:none;width:100%}.rbc-month-header{display:flex;flex-direction:row}.rbc-month-row{display:flex;flex:1 0;flex-basis:0px;flex-direction:column;height:100%;overflow:hidden;position:relative}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{flex:1 1;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{bottom:0;display:flex;flex:1 0;flex-direction:row;left:0;overflow:hidden;position:absolute;right:0;right:1px;top:0}.rbc-day-bg{flex:1 0}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 5px 15px rgba(0,0,0,.25);position:absolute;z-index:5}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:flex;flex:1 0;flex-direction:column;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{border:1px solid #ddd;border-collapse:collapse;border-spacing:0;width:100%}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{border-bottom:1px solid #ddd;padding:3px 5px;text-align:left}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:flex;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{flex:1 1}.rbc-timeslot-group{border-bottom:1px solid #ddd;display:flex;flex-flow:column nowrap;min-height:40px}.rbc-header-gutter,.rbc-time-gutter{flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;margin-right:10px;position:absolute;right:0;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-event{align-items:flex-start;border:1px solid #265985;display:flex;flex-flow:column wrap;max-height:100%;min-height:20px;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{word-wrap:break-word;flex:1 1;height:100%;line-height:1;min-height:1em;width:100%}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{background-color:#fff;border-right:1px solid #ddd;left:0;margin-right:-1px;position:sticky;z-index:10}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{flex:1 0;flex-basis:0px;min-width:auto}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-day-bg,.rbc-time-view-resources .rbc-header{flex:1 1;flex-basis:0px;width:140px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{flex:1 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{background-color:rgba(0,0,0,.5);color:#fff;font-size:75%;padding:3px;position:absolute;width:100%;z-index:10}.rbc-slot-selecting{cursor:move}.rbc-time-view{border:1px solid #ddd;display:flex;flex:1 1;flex-direction:column;min-height:0;width:100%}.rbc-time-view .rbc-time-gutter{text-align:right;white-space:nowrap}.rbc-time-view .rbc-allday-cell{box-sizing:content-box;height:100%;position:relative;width:100%}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{box-sizing:border-box;min-height:20px}.rbc-time-header{display:flex;flex:0 0 auto;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-left:1px solid #ddd;border-right-width:0}.rbc-time-header>.rbc-row.rbc-row-resource,.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{border-left:1px solid #ddd;display:flex;flex:1 1;flex-direction:column;min-width:0}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;flex-shrink:0}.rbc-time-content{align-items:flex-start;border-top:2px solid #ddd;display:flex;flex:1 0;overflow-y:auto;position:relative;width:100%}.rbc-time-content>.rbc-time-gutter{flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{-moz-user-select:none;user-select:none;-webkit-user-select:none;width:100%}.rbc-current-time-indicator{background-color:#74ad31;height:1px;left:0;pointer-events:none;position:absolute;right:0;z-index:3}.rbc-resource-grouping.rbc-time-header-content{display:flex;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.rbc-calendar{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;height:100%}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar :after,.rbc-calendar :before{box-sizing:inherit}.rbc-abs-full{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.rbc-ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{border-bottom:1px solid #ddd;flex:1 0;font-size:90%;min-height:0;overflow:hidden;padding:0 3px;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{background:none;border:none;color:inherit;cursor:pointer;margin:0;padding:0;-webkit-user-select:text;-moz-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:flex;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{-ms-overflow-style:none;height:100%;overflow-y:scroll;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.cal-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-block-end:18px}.ui-page{--cal-exam:#0d9488}.cal-select{min-width:160px}.cal-card{padding:16px;position:relative;transition:opacity var(--transition-fast)}.cal-card.is-loading .rbc-agenda-view,.cal-card.is-loading .rbc-month-view,.cal-card.is-loading .rbc-time-view{opacity:.55}.cal-legend{color:var(--color-text-secondary);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 18px;margin-block-end:12px}.cal-legend span{align-items:center;display:inline-flex;gap:7px}.cal-dot{border-radius:3px;display:inline-block;height:10px;width:10px}.cal-dot-assignment{background:var(--color-accent)}.cal-dot-exam{background:var(--cal-exam)}.cal-dot-urgent{background:var(--color-accent);border-inline-start:5px solid var(--color-danger);border-radius:2px;width:13px}.cal-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;margin-block-end:14px}.cal-nav{display:inline-flex;gap:6px}.cal-label{flex:1 1;font-size:17px;font-weight:700;margin:0;min-width:140px;text-align:center;text-transform:capitalize}.cal-badges{display:flex;flex-wrap:wrap;gap:8px;margin-block-end:14px}.cal-desc{line-height:1.65;margin:0 0 18px;white-space:pre-wrap}.rbc-calendar{color:var(--color-text-primary);font-family:inherit}.rbc-agenda-view,.rbc-month-view,.rbc-time-view{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.rbc-header{background:var(--color-surface-2);border-block-end:1px solid var(--color-border);border-inline-start:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px;font-weight:700;letter-spacing:.04em;padding:10px 6px;text-transform:uppercase}.rbc-header:first-child{border-inline-start:0}.rbc-header+.rbc-header{border-inline-start:1px solid var(--color-border)}.rbc-day-bg+.rbc-day-bg,.rbc-day-slot .rbc-time-slot,.rbc-month-row+.rbc-month-row,.rbc-time-content,.rbc-time-content>*+*>*,.rbc-time-header-content,.rbc-timeslot-group{border-color:var(--color-border)}.rbc-off-range-bg{background:var(--color-surface-2)}.rbc-off-range{color:var(--color-text-tertiary)}.rbc-today{background:var(--color-accent-soft)}.rbc-date-cell{font-size:13px;font-weight:600;padding:6px 8px;text-align:end}.rbc-date-cell.rbc-now{color:var(--color-accent);font-weight:800}.rbc-button-link{font:inherit}.rbc-show-more{background:transparent;color:var(--color-accent);font-size:12px;font-weight:700;margin:2px 4px;padding:1px 4px}.rbc-current-time-indicator{background-color:var(--color-danger)}.rbc-time-gutter,.rbc-time-header-gutter{color:var(--color-text-secondary);font-size:12px}.rbc-day-slot .rbc-background-event,.rbc-event{background:var(--color-accent);border:0;border-radius:6px;color:#fff;font-size:12px;line-height:1.3;padding:2px 6px}.rbc-event:focus{outline:2px solid var(--color-accent);outline-offset:1px}.rbc-event.rbc-selected{background:var(--color-accent-hover)}.cal-event-exam{background:var(--cal-exam)}.cal-event-urgent{border-inline-start:4px solid #fca5a5}.cal-event-body{display:flex;flex-direction:column;min-width:0}.cal-event-body strong{font-weight:650}.cal-event-body small,.cal-event-body strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event-body small{font-size:11px;opacity:.85}.rbc-month-view .cal-event-body small{display:none}.rbc-overlay{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px}.rbc-overlay-header{border-block-end:1px solid var(--color-border);font-weight:700;margin:-10px -10px 8px;padding:10px}.rbc-agenda-view table.rbc-agenda-table{border:0;font-size:13px}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{background:var(--color-surface-2);border-block-end:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px;letter-spacing:.04em;padding:10px 12px;text-align:start;text-transform:uppercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{border-block-start:1px solid var(--color-border);padding:10px 12px;vertical-align:middle}.rbc-agenda-view table.rbc-agenda-table tbody>tr:hover{background:var(--color-surface-2);cursor:pointer}.rbc-agenda-view .cal-event-body{color:var(--color-text-primary)}.rbc-agenda-view .rbc-event,.rbc-agenda-view tr.cal-event{background:transparent;color:inherit;padding:0}.rbc-agenda-view tr.cal-event{border:0}.rbc-agenda-view tr.cal-event td:first-child{border-inline-start:4px solid var(--color-accent)}.rbc-agenda-view tr.cal-event-exam td:first-child{border-inline-start-color:var(--cal-exam)}.rbc-agenda-view .cal-event-urgent .cal-event-body strong:after{background:var(--color-danger);border-radius:50%;content:"";display:inline-block;height:7px;margin-inline-start:7px;width:7px}.rbc-agenda-view .cal-event-body small,.rbc-agenda-view .cal-event-body strong{overflow:visible;text-overflow:clip;white-space:normal}.rbc-agenda-empty{color:var(--color-text-secondary);padding:36px 16px;text-align:center}@media (max-width:640px){.cal-stats{gap:10px;grid-template-columns:1fr 1fr}.cal-stats .ui-stat{padding:12px 14px}.cal-stats .ui-stat-value{font-size:18px}.cal-stats .ui-stat-icon{display:none}.cal-select{flex:1 1 100%}.cal-card{padding:12px}.cal-label{flex-basis:100%;order:-1}.cal-views .cal-view-day,.cal-views .cal-view-week{display:none}.cal-views,.cal-views .ui-chip{flex:1 1}.rbc-header{font-size:11px;letter-spacing:0;padding:8px 2px}.rbc-date-cell{font-size:12px;padding:4px}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td,.rbc-agenda-view table.rbc-agenda-table thead>tr>th{font-size:12px;padding:8px 6px}.rbc-agenda-view table.rbc-agenda-table td.rbc-agenda-time-cell{white-space:normal;width:64px}.rbc-agenda-view table.rbc-agenda-table td.rbc-agenda-date-cell{width:74px}}.acct-stats{margin-block-end:18px}.acct-select{min-width:170px}.acct-chips{margin-block-end:16px}.acct-year{font-feature-settings:"tnum";align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:10px;display:inline-flex;font-variant-numeric:tabular-nums;font-weight:650;gap:8px;padding:3px}.acct-year span{min-width:92px;text-align:center}.acct-row{cursor:pointer}.acct-row:hover td{background:var(--color-surface-2)}.acct-name{background:none;border:0;color:var(--color-text-primary);cursor:pointer;display:block;font:inherit;font-weight:650;padding:0;text-align:start}.acct-name:hover{color:var(--color-accent)}.acct-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.acct-bad{color:var(--color-danger-text)}.acct-ok{color:var(--color-success-text)}.acct-tiles{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-block-end:14px}.acct-tiles>div{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;min-width:0;padding:12px 14px}.acct-tiles span{color:var(--color-text-secondary);display:block;font-size:12px}.acct-tiles strong{font-feature-settings:"tnum";display:block;font-size:16px;font-variant-numeric:tabular-nums;margin-block-start:2px;white-space:nowrap}.acct-line{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-block-end:6px}.acct-section{margin-block-start:22px}.acct-section h3{color:var(--color-text-primary);font-size:14px;font-weight:700;margin:0 0 10px}.acct-section-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-block-end:10px}.acct-section-head h3{margin:0}.acct-skel{grid-gap:8px;display:grid;gap:8px}.acct-fee{font-feature-settings:"tnum";font-size:22px;font-variant-numeric:tabular-nums;font-weight:750;margin:0}.acct-fee-editor{grid-gap:8px;display:grid;gap:8px}.acct-fee-row{align-items:center;display:flex;gap:10px}.acct-fee-row .ui-input{max-width:180px}.acct-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.acct-months,.acct-payments{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.acct-months li{border:1px solid var(--color-border);border-radius:12px;padding:10px 12px}.acct-month-amounts,.acct-month-top{align-items:center;display:flex;gap:10px;justify-content:space-between}.acct-month-top strong{text-transform:capitalize}.acct-month-amounts{font-feature-settings:"tnum";font-size:13px;font-variant-numeric:tabular-nums;margin-block-start:2px}.acct-bar{background:var(--color-border);border-radius:99px;height:6px;margin-block-start:8px;overflow:hidden}.acct-bar span{background:var(--color-success);border-radius:inherit;display:block;height:100%}.acct-payments li{grid-gap:10px;align-items:center;border:1px solid var(--color-border);border-radius:12px;display:grid;gap:10px;grid-template-columns:1fr auto auto;padding:10px 12px}.acct-payments li>div:first-child{min-width:0}.acct-payments small{display:block}.acct-payments li.is-out{opacity:.6}.acct-payments li.is-out strong:first-child{text-decoration:line-through}.acct-pay-end{font-feature-settings:"tnum";align-items:flex-end;display:flex;flex-direction:column;font-variant-numeric:tabular-nums;gap:4px}.acct-pdf{display:flex;gap:2px}@media (max-width:640px){.acct-select,.acct-year{flex:1 1 100%}.acct-year{justify-content:space-between}.acct-row td:first-child{padding-inline-end:96px!important}.acct-tiles strong{font-size:14px}.acct-payments li{grid-template-columns:1fr auto}.acct-pdf{grid-column:1/-1}}.fee-tabs{margin-block-end:16px}.fee-table tfoot td{background:var(--color-surface-2);border-block-start:1px solid var(--color-border);color:var(--color-text-secondary);font-size:13px;padding:12px 16px}.fee-desc{display:block;margin-block-start:2px}.fee-check{align-items:center;cursor:pointer;display:inline-flex;font-size:var(--text-base);gap:8px}.fee-form{grid-gap:14px;display:grid;gap:14px}.fee-form label{grid-gap:6px;display:grid;gap:6px}.fee-form label.fee-check{display:inline-flex}.fee-form label>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.fee-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.fee-form .ui-input,.fee-form .ui-select,.fee-form .ui-textarea{width:100%}@media (max-width:640px){.fee-form-row{grid-template-columns:1fr}.fee-table tfoot{display:block}.fee-table tfoot tr{display:flex;justify-content:space-between}.acct-stats{gap:10px;grid-template-columns:1fr 1fr;margin-block-end:14px}.acct-stats .ui-stat{padding:12px 14px}.acct-stats .ui-stat-value{font-size:18px}.acct-stats .ui-stat-icon{display:none}.ui-table-stack td.acct-num{text-align:start;white-space:normal}}.rl-body{grid-gap:14px;display:grid;gap:14px}.rl-text{line-height:1.6;margin:0}.rl-field{grid-gap:6px;display:grid;gap:6px}.rl-field>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.rl-row{display:flex;gap:8px}.rl-row .ui-input{flex:1 1;font-size:13px;min-width:0}.receipt-container{align-items:center;background:#f3f4f6;display:flex;flex-direction:column;min-height:100vh;padding:2rem}.loading-spinner{padding:3rem;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#2563eb;height:50px;margin:0 auto 1rem;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:3rem;text-align:center}.error-message h2{color:#dc2626;margin-bottom:1rem}.error-message p{color:#6b7280;margin-bottom:2rem}.receipt-actions{display:flex;gap:1rem;margin-bottom:2rem}.btn-primary:hover{background:#1d4ed8}.btn-secondary:hover{background:#4b5563}.receipt-paper{background:#fff;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.1);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;max-width:800px;padding:3rem;width:100%}.receipt-header{margin-bottom:2rem;text-align:center}.receipt-header h1{color:#1f2937;font-size:2rem;margin-bottom:.5rem}.school-info{color:#6b7280;font-size:1rem;margin-bottom:1rem}.receipt-number{color:#4b5563;font-size:1.125rem;margin-top:1rem}.receipt-number strong{color:#2563eb;font-weight:700}.divider{background:linear-gradient(90deg,#e5e7eb,#2563eb,#e5e7eb);height:2px;margin:2rem 0}.receipt-section{margin-bottom:2rem}.receipt-section h2{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:1.25rem;margin-bottom:1rem;padding-bottom:.5rem}.receipt-section h3{color:#4b5563;font-size:1rem;margin-bottom:.75rem}.info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{color:#6b7280;font-size:.875rem;font-weight:500}.info-value{color:#1f2937;font-size:1rem;font-weight:600}.amount-table{display:flex;flex-direction:column;gap:.75rem}.amount-row{background:#f9fafb;border-radius:4px;display:flex;justify-content:space-between;padding:.75rem}.amount-row.warning{background:#fef3c7;border:1px solid #fbbf24}.amount-label{color:#4b5563;font-size:1rem;font-weight:500}.amount-value{color:#1f2937;font-size:1rem;font-weight:700}.receipt-total{align-items:center;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:8px;color:#fff;display:flex;justify-content:space-between;margin:2rem 0;padding:1.5rem}.total-label{font-size:1.25rem;font-weight:600}.total-value{font-size:2rem;font-weight:700}.receipt-status{margin:1.5rem 0;text-align:center}.status-badge{font-size:1rem;font-weight:700;letter-spacing:1px;padding:.75rem 2rem}.status-paid{background:#d1fae5;border:2px solid #10b981;color:#065f46}.status-partial{background:#fef3c7;border:2px solid #f59e0b;color:#78350f}.receipt-notes{background:#f9fafb;border-left:4px solid #2563eb;color:#4b5563;line-height:1.6;margin:0;padding:1rem}.receipt-footer{color:#6b7280;font-size:.875rem;margin-top:3rem;text-align:center}.footer-note{line-height:1.5;margin-bottom:.75rem}.footer-date{color:#9ca3af;font-size:.75rem;margin-top:1rem}.signature-section{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1fr 1fr;margin-top:4rem}.signature-box{text-align:center}.signature-line{border-bottom:2px solid #1f2937;height:60px;margin-bottom:.5rem}.signature-label{color:#6b7280;font-size:.875rem;font-weight:600}@media print{.no-print{display:none!important}.receipt-container{background:#fff;padding:0}.receipt-paper{border-radius:0;box-shadow:none;max-width:100%;padding:1.5rem}.receipt-header h1{font-size:1.75rem}.divider{margin:1.5rem 0}.receipt-section{margin-bottom:1.5rem}.info-grid{gap:.75rem}.receipt-total{margin:1.5rem 0}.signature-section{margin-top:3rem;page-break-inside:avoid}@page{margin:1cm}}@media (max-width:768px){.receipt-container{padding:1rem}.receipt-paper{padding:1.5rem}.receipt-header h1{font-size:1.5rem}.info-grid{grid-template-columns:1fr}.receipt-total{flex-direction:column;gap:.5rem;text-align:center}.total-label{font-size:1rem}.total-value{font-size:1.75rem}.signature-section{gap:2rem;grid-template-columns:1fr}}.roll-page{max-width:980px;padding-block-end:120px}.roll-controls{align-items:flex-start;display:flex;flex-wrap:wrap;gap:24px 40px;margin-block-end:16px;padding:18px 20px}.roll-field{display:flex;flex-direction:column;gap:8px;min-width:0}.roll-field>label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.roll-date{align-items:center;display:flex;gap:8px}.roll-date-label{color:var(--color-text-secondary);font-size:var(--text-sm);text-transform:capitalize}.roll-card{overflow:hidden}.roll-head{background:var(--color-surface-2);border-block-end:1px solid var(--color-border);gap:12px;justify-content:space-between;padding:14px 20px}.roll-head,.roll-summary{align-items:center;display:flex;flex-wrap:wrap}.roll-summary{gap:8px}.roll-count{align-items:baseline;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-sm);font-weight:600;gap:6px;padding:5px 12px}.roll-count b{font-feature-settings:"tnum";font-size:var(--text-md);font-variant-numeric:tabular-nums}.roll-count-present{background:var(--color-success-soft);color:var(--color-success-text)}.roll-count-absent{background:var(--color-danger-soft);color:var(--color-danger-text)}.roll-count-late{background:var(--color-warning-soft);color:var(--color-warning-text)}.roll-count-excused{background:var(--color-info-soft);color:var(--color-info-text)}.roll-list{list-style:none;margin:0;padding:0}.roll-row{align-items:center;border-block-end:1px solid var(--color-border);border-inline-start:4px solid transparent;display:flex;gap:16px;padding:12px 20px;transition:background var(--transition-fast),border-color var(--transition-fast)}.roll-row:last-child{border-block-end:0}.roll-row-1{background:hsla(0,86%,97%,.5);border-inline-start-color:var(--color-danger)}.roll-row-2{background:rgba(255,251,235,.6);border-inline-start-color:var(--color-warning)}.roll-row-3{background:rgba(239,246,255,.6);border-inline-start-color:var(--color-info)}.roll-index{font-feature-settings:"tnum";color:var(--color-text-tertiary);flex:none;font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:center;width:22px}.roll-person{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.roll-person strong{display:block;font-weight:650}.roll-person small{color:var(--color-text-secondary);display:block;font-size:var(--text-sm)}.roll-choices{background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;display:inline-flex;flex:none;gap:4px;padding:4px}.roll-choice{align-items:center;background:transparent;border:0;border-radius:9px;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-sm);font-weight:600;gap:6px;height:38px;justify-content:center;min-width:78px;padding:0 12px;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.roll-choice:hover{background:hsla(0,0%,100%,.7);color:var(--color-text-primary)}.roll-choice:focus-visible{box-shadow:var(--ring);outline:none}.roll-choice.is-on{box-shadow:var(--shadow-sm);color:#fff}.roll-choice-present.is-on{background:#16a34a}.roll-choice-absent.is-on{background:var(--color-danger)}.roll-choice-late.is-on{background:#d97706}.roll-choice-excused.is-on{background:var(--color-info)}.roll-savebar{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(0,0%,100%,.94);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;gap:16px;inset-block-end:16px;justify-content:space-between;margin-block-start:16px;padding:12px 14px 12px 20px;position:sticky;z-index:20}[dir=rtl] .roll-savebar{padding:12px 20px 12px 14px}.roll-savebar-text{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:600}@media (max-width:720px){.roll-row{flex-wrap:wrap;gap:10px 12px;padding:12px 14px}.roll-index{display:none}.roll-person{flex-basis:100%}.roll-choices{width:100%}.roll-choice{flex:1 1;flex-direction:column;font-size:11px;gap:2px;height:44px;min-width:0;padding:0 6px}.roll-savebar{inset-block-end:8px;padding:10px 12px}.roll-savebar-text{display:none}.roll-savebar .ui-btn{width:100%}.roll-controls{gap:18px}.roll-date{flex-wrap:wrap}}.report-filters{align-items:flex-end;background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding:1.5rem}.filter-group{display:flex;flex:1 1;flex-direction:column;gap:.5rem;min-width:200px}.filter-group label{color:#374151;font-size:.875rem;font-weight:600}.filter-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#1f2937;cursor:pointer;font-size:1rem;padding:.75rem;transition:border-color .2s}.filter-select:hover{border-color:#2563eb}.filter-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1);outline:none}.btn{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.alert{border-radius:6px;margin-bottom:1.5rem;padding:1rem}.alert-error{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.report-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:2rem}.report-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.report-title h2{color:#1f2937;font-size:1.75rem;margin-bottom:.5rem}.report-period{color:#6b7280;font-size:1.125rem}.attendance-report-page .summary-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.attendance-report-page .summary-card{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;display:flex;gap:1rem;padding:1.5rem;transition:all .2s}.attendance-report-page .summary-card:hover{border-color:#2563eb;box-shadow:0 4px 6px rgba(37,99,235,.1)}.attendance-report-page .summary-card.highlight{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#2563eb}.attendance-report-page .card-icon{font-size:3rem}.attendance-report-page .card-content h3{color:#6b7280;font-size:.875rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.attendance-report-page .card-value{color:#1f2937;font-size:2rem;font-weight:700;margin:0}.students-table-container{border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}.students-table{border-collapse:collapse;width:100%}.students-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.students-table th{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.5px;padding:1rem;text-align:left;text-transform:uppercase}.students-table td{border-top:1px solid #e5e7eb;color:#1f2937;padding:1rem}.students-table tbody tr:hover{background:#f9fafb}.present-cell,.student-name{font-weight:600}.present-cell{color:#059669}.absent-cell{color:#dc2626;font-weight:600}.late-cell{color:#f59e0b;font-weight:600}.percentage-cell{font-size:1.125rem;font-weight:700}.status-badge{border-radius:50px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.375rem .75rem;text-transform:uppercase}.status-badge.excellent{background:#d1fae5;color:#065f46}.status-badge.good{background:#dbeafe;color:#1e40af}.status-badge.warning{background:#fef3c7;color:#92400e}.status-badge.poor{background:#fee2e2;color:#991b1b}.no-data{color:#6b7280;padding:3rem;text-align:center}.no-report{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:4rem 2rem;text-align:center}.no-report-icon{font-size:5rem;margin-bottom:1.5rem;opacity:.5}.no-report p{color:#6b7280;font-size:1.125rem}@media (max-width:768px){.attendance-report-page{padding:1rem}.report-filters{align-items:stretch;flex-direction:column}.filter-group{min-width:100%}.btn{width:100%}.report-header{align-items:flex-start;flex-direction:column;gap:1rem}.report-header .btn-secondary{width:100%}.attendance-report-page .summary-cards{grid-template-columns:1fr}.students-table{font-size:.875rem}.students-table td,.students-table th{padding:.75rem .5rem}.attendance-report-page .card-icon{font-size:2rem}.attendance-report-page .card-value{font-size:1.5rem}}@media print{.btn,.report-filters{display:none!important}.attendance-report-page{padding:0}.report-content{box-shadow:none}.students-table{font-size:.75rem}.students-table td,.students-table th{padding:.5rem}}.imp-steps{color:var(--color-text-tertiary);display:flex;flex-wrap:wrap;font-size:var(--text-sm);font-weight:600;gap:8px 22px;list-style:none;margin:0 0 20px;padding:0}.imp-steps li{align-items:center;display:inline-flex;gap:8px}.imp-steps li span{background:var(--color-border);border-radius:50%;color:var(--color-text-secondary);display:grid;font-size:12px;height:24px;place-items:center;width:24px}.imp-steps li.is-on{color:var(--color-text-primary)}.imp-steps li.is-on span{background:var(--color-accent);color:#fff}.imp-steps li.is-done{color:var(--color-success-text)}.imp-steps li.is-done span{background:var(--color-success);color:#fff}.imp-drop{align-items:center;background:var(--color-surface);border:2px dashed var(--color-border-strong);border-radius:18px;color:var(--color-accent);display:flex;flex-direction:column;gap:10px;margin-block-end:18px;padding:40px 20px;text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}.imp-drop strong{color:var(--color-text-primary);font-size:var(--text-md)}.imp-drop.is-over{background:var(--color-accent-soft);border-color:var(--color-accent)}.imp-help{padding:20px 22px}.imp-creds h2,.imp-help h2,.imp-table-head h2{font-size:var(--text-md);font-weight:700;margin:0 0 8px}.imp-help ol{grid-gap:4px;display:grid;gap:4px;margin:0 0 12px;padding-inline-start:20px}.imp-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-block-end:16px}.imp-table-head{border-block-end:1px solid var(--color-border);padding:14px 16px}.imp-table-head h2{margin:0}.imp-sub{color:var(--color-text-secondary);display:block}.imp-problems{display:inline-flex;flex-wrap:wrap;gap:4px}.imp-bad td{background:var(--color-danger-soft)}.imp-actions{gap:10px;justify-content:flex-end;margin-block-start:18px}.imp-actions,.imp-creds{display:flex;flex-wrap:wrap}.imp-creds{align-items:center;background:var(--color-warning-soft);border-color:var(--color-warning);gap:16px;justify-content:space-between;margin-block-end:18px;padding:18px 22px}.imp-creds p{margin:0;max-width:62ch}@media (max-width:640px){.imp-stats{gap:10px;grid-template-columns:1fr 1fr}.imp-stats .ui-stat-icon{display:none}.imp-actions .ui-btn,.imp-creds .ui-btn{width:100%}.imp-drop{padding:28px 14px}}html:has(.lp){scroll-behavior:smooth}.lp{background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-sans);min-height:100vh}.lp *,.lp :after,.lp :before{box-sizing:border-box}.lp h1,.lp h2,.lp h3,.lp p{margin:0}.lp section[id]{scroll-margin-block-start:76px}.lp-wrap{margin-inline:auto;max-width:1140px;padding-inline:24px;width:100%}.lp-btn{align-items:center;border:1px solid transparent;border-radius:12px;cursor:pointer;display:inline-flex;font:inherit;font-size:15px;font-weight:650;gap:8px;height:46px;justify-content:center;padding:0 22px;text-decoration:none;transition:transform var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.lp-btn:hover{transform:translateY(-1px)}.lp-btn:focus-visible{outline:3px solid #a5b4fc;outline-offset:2px}.lp-btn-solid{background:linear-gradient(135deg,#6366f1,#4f46e5);box-shadow:0 8px 22px rgba(79,70,229,.45);color:#fff}.lp-btn-outline{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.35);color:#fff}.lp-btn-outline:hover{background:hsla(0,0%,100%,.14)}.lp-btn-ghost{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.3);color:#fff;height:40px;padding:0 16px;white-space:nowrap}.lp-btn-ghost:hover{background:hsla(0,0%,100%,.18)}.lp-btn-light{background:#fff;color:#3730a3}.lp-btn-outline-light{border-color:hsla(0,0%,100%,.6);color:#fff}.lp-flip{display:inline-block}[dir=rtl] .lp-flip{transform:scaleX(-1)}.lp-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:rgba(11,16,32,.94);border-block-end:1px solid hsla(0,0%,100%,.08);inset-block-start:0;position:sticky;z-index:50}.lp-header-row{align-items:center;display:flex;gap:24px;height:64px;position:relative}.lp-brand{align-items:center;color:#fff;display:inline-flex;font-size:17px;font-weight:750;gap:10px;letter-spacing:-.01em;text-decoration:none;white-space:nowrap}.lp-brand-dark{color:var(--color-text-primary)}.lp-brand-mark{background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:10px;box-shadow:0 6px 16px rgba(79,70,229,.45);color:#fff;display:grid;height:34px;place-items:center;width:34px}.lp-nav{display:flex;flex:1 1;gap:6px;margin-inline-start:18px}.lp-nav a{border-radius:8px;color:hsla(0,0%,100%,.78);font-size:14px;font-weight:600;padding:8px 12px;text-decoration:none}.lp-nav a:hover{background:hsla(0,0%,100%,.08);color:#fff}.lp-header-actions{align-items:center;display:flex;gap:10px;margin-inline-start:auto}.lp-hero{background:radial-gradient(1200px 600px at 110% -10%,rgba(99,102,241,.55),transparent 60%),radial-gradient(800px 500px at -20% 110%,rgba(56,189,248,.22),transparent 60%),linear-gradient(160deg,#0b1020,#14123a 55%,#1f1a5e);color:#fff;isolation:isolate;overflow:hidden;padding:72px 0 96px;position:relative}.lp-hero:before{background-image:radial-gradient(hsla(0,0%,100%,.07) 1px,transparent 0);background-size:22px 22px;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 85%);mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 85%);position:absolute;z-index:-1}.lp-hero-glow{background:radial-gradient(circle,rgba(129,140,248,.35),transparent 65%);border-radius:50%;filter:blur(10px);height:380px;inset-block-start:18%;inset-inline-end:-120px;position:absolute;width:380px;z-index:-1}.lp-hero-grid{grid-gap:56px;align-items:center;display:grid;gap:56px;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.lp-pill{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.16);border-radius:999px;color:#c7d2fe;display:inline-block;font-size:13px;font-weight:650;padding:6px 14px}.lp-hero h1{font-size:clamp(34px,5vw,56px);font-weight:800;letter-spacing:-.03em;line-height:1.08;margin-block:18px 16px}.lp-hero-copy>p:not(.lp-note){color:rgba(226,232,240,.9);font-size:clamp(16px,1.6vw,19px);line-height:1.6;max-width:52ch}.lp-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-block-start:28px}.lp-note{color:rgba(199,210,254,.8);font-size:13px;margin-block-start:18px}.lp-mock{min-height:380px;position:relative}.lp-card{background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(2,6,23,.35);color:var(--color-text-primary)}.lp-mock-main{margin-inline-start:auto;max-width:420px;padding:18px}.lp-mock-head{display:flex;font-size:14px;gap:12px;justify-content:space-between;margin-block-end:8px}.lp-mock-head span{color:var(--color-danger-text);font-weight:700}.lp-mock-row{grid-gap:10px;align-items:center;border-block-start:1px solid var(--color-border);display:grid;gap:10px;grid-template-columns:34px 1fr auto 30px;padding:10px 0}.lp-av{background:var(--color-accent-soft);border-radius:50%;color:var(--color-accent);display:grid;font-size:14px;font-weight:750;height:34px;place-items:center;width:34px}.lp-mock-who b{display:block;font-size:14px}.lp-mock-who small{color:var(--color-text-secondary);font-size:12px}.lp-mock-amount{color:var(--color-danger-text);font-size:14px;font-weight:750;white-space:nowrap}.lp-wa{background:#25d366;border-radius:9px;color:#fff;display:grid;height:30px;place-items:center;width:30px}.lp-mock-receipt{grid-gap:4px;display:grid;gap:4px;inset-block-end:12px;inset-inline-start:0;padding:14px 16px;position:absolute;width:210px}.lp-mock-receipt small{color:var(--color-text-secondary)}.lp-ok{background:var(--color-success-soft);border-radius:999px;color:var(--color-success-text);padding:2px 10px}.lp-ok,.lp-pdf{align-items:center;display:inline-flex;font-size:12px;font-weight:700;gap:4px;width:fit-content}.lp-pdf{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);margin-block-start:4px;padding:3px 9px}.lp-mock-stat{grid-gap:4px;display:grid;gap:4px;inset-block-end:-30px;inset-inline-end:24px;padding:14px 16px;position:absolute;width:230px}.lp-mock-stat small{color:var(--color-text-secondary)}.lp-mock-stat b{font-size:20px}.lp-bar{background:var(--color-border);border-radius:99px;display:block;height:6px;overflow:hidden}.lp-bar i{background:var(--color-success);border-radius:inherit;display:block;height:100%}.lp-strip{background:var(--color-surface-2);border-block-end:1px solid var(--color-border);padding-block:22px}.lp-strip-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.lp-strip-grid>div{align-items:center;color:var(--color-text-secondary);display:flex;font-size:14px;font-weight:650;gap:10px;justify-content:center}.lp-strip-grid svg{color:var(--color-accent);flex:none}.lp-section{padding-block:88px}.lp-section-tint{background:var(--color-bg)}.lp-section-head{margin:0 auto 44px;max-width:640px;text-align:center}.lp-section h2{font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:-.02em;line-height:1.15}.lp-section-head p{line-height:1.6;margin-block-start:12px}.lp-lead,.lp-section-head p{color:var(--color-text-secondary);font-size:17px}.lp-lead{line-height:1.65;margin-block:14px 22px}.lp-grid{grid-gap:18px;display:grid;gap:18px}.lp-grid-3{grid-template-columns:repeat(3,1fr)}.lp-grid-4{grid-template-columns:repeat(4,1fr)}.lp-feature,.lp-role{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;padding:26px;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.lp-feature:hover,.lp-role:hover{box-shadow:0 14px 34px rgba(15,23,42,.08);transform:translateY(-2px)}.lp-icon{background:var(--color-accent-soft);border-radius:13px;color:var(--color-accent);display:grid;height:46px;margin-block-end:16px;place-items:center;width:46px}.lp-feature h3,.lp-role h3,.lp-steps h3{font-size:18px;font-weight:750;margin-block-end:8px}.lp-feature p,.lp-role p,.lp-steps p{color:var(--color-text-secondary);font-size:15px;line-height:1.6}.lp-split{grid-gap:56px;align-items:center;display:grid;gap:56px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lp-checks{grid-gap:12px;display:grid;gap:12px;list-style:none;margin:0;padding:0}.lp-checks li{align-items:flex-start;display:flex;font-size:16px;gap:12px;line-height:1.5}.lp-checks svg{background:var(--color-success-soft);border-radius:50%;color:var(--color-success-text);flex:none;height:24px;margin-block-start:2px;padding:3px;width:24px}.lp-ledger{border:1px solid var(--color-border);box-shadow:0 18px 50px rgba(15,23,42,.12);padding:22px}.lp-ledger-head{align-items:center;display:flex;font-size:16px;justify-content:space-between;margin-block-end:10px}.lp-chip-ok{background:var(--color-warning-soft);border-radius:999px;color:var(--color-warning-text);font-size:12px;font-weight:700;padding:3px 10px}.lp-ledger-row{grid-gap:14px;align-items:center;border-block-start:1px solid var(--color-border);display:grid;font-size:14px;gap:14px;grid-template-columns:96px 1fr 64px;padding-block:12px}.lp-ledger-row small{font-feature-settings:"tnum";color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-align:end}.lp-steps{grid-gap:28px;counter-reset:step;display:grid;gap:28px;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0}.lp-steps li{padding-block-start:8px;position:relative}.lp-step-n{background:var(--color-accent);border-radius:50%;box-shadow:0 8px 20px rgba(79,70,229,.35);color:#fff;display:grid;font-weight:800;height:40px;margin-block-end:16px;place-items:center;width:40px}.lp-faq-wrap{max-width:800px}.lp-faq{grid-gap:10px;display:grid;gap:10px}.lp-faq details{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px}.lp-faq summary{cursor:pointer;display:flex;font-size:16px;font-weight:650;gap:16px;justify-content:space-between;list-style:none;padding:18px 20px}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq summary:after{color:var(--color-accent);content:"+";flex:none;font-size:22px;line-height:1}.lp-faq details[open] summary:after{content:"–"}.lp-faq p{color:var(--color-text-secondary);font-size:15px;line-height:1.65;padding:0 20px 18px}.lp-final{background:linear-gradient(135deg,#312e81,#4f46e5);color:#fff;padding-block:64px}.lp-final-row{align-items:center;display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between}.lp-final h2{font-size:clamp(24px,3vw,34px);font-weight:800;letter-spacing:-.02em}.lp-final p{color:rgba(224,231,255,.92);font-size:16px;line-height:1.6;margin-block-start:8px;max-width:56ch}.lp-final .lp-cta-row{margin-block-start:0}.lp-footer{background:var(--color-surface);border-block-start:1px solid var(--color-border);color:var(--color-text-secondary);font-size:13px;padding-block:26px}.lp-footer-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}@media (max-width:960px){.lp-hero{padding:48px 0 72px}.lp-hero-grid,.lp-split{gap:40px;grid-template-columns:1fr}.lp-mock{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr;margin-inline:auto;max-width:480px;min-height:0;width:100%}.lp-mock-main{grid-column:1/-1;margin-inline:0;max-width:none}.lp-mock-receipt,.lp-mock-stat{position:static;width:auto}.lp-grid-3,.lp-grid-4{grid-template-columns:1fr 1fr}.lp-steps{gap:22px;grid-template-columns:1fr}.lp-nav{display:none}.lp-section{padding-block:64px}}@media (max-width:600px){.lp-wrap{padding-inline:16px}.lp-header-row{gap:12px}.lp-grid-3,.lp-grid-4{grid-template-columns:1fr}.lp-strip-grid{grid-template-columns:1fr 1fr}.lp-strip-grid>div{font-size:13px;justify-content:flex-start}.lp-cta-row .lp-btn,.lp-final .lp-btn{width:100%}.lp-ledger-row{gap:10px;grid-template-columns:84px 1fr 56px}.lp-header-actions .lp-btn-ghost{padding:0 12px}.lp-brand{font-size:15px}.lp-footer-row{align-items:flex-start;flex-direction:column}}@media (max-width:420px){.lp-header-row .lp-brand-name{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;width:1px}}@media (prefers-reduced-motion:reduce){html:has(.lp){scroll-behavior:auto}.lp-btn,.lp-feature,.lp-role{transition:none}}.tt-class{min-width:220px}.tt-skel{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.tt-daytabs{display:none;margin-block-end:14px;width:100%}.tt-daytabs .ui-chip{flex:1 1;position:relative}.tt-dot{background:var(--color-accent);border-radius:50%;height:6px;inset-block-start:5px;inset-inline-end:7px;position:absolute;width:6px}.tt-week{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-columns:repeat(var(--tt-days,6),minmax(0,1fr))}.tt-day{grid-gap:8px;align-content:start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;display:grid;gap:8px;min-height:120px;padding:12px}.tt-day.is-today{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.tt-day h2{align-items:center;display:flex;font-size:14px;font-weight:750;gap:6px;justify-content:space-between;margin:0 0 2px}.tt-today{background:var(--color-accent);border-radius:99px;color:#fff;font-size:11px;font-weight:700;padding:2px 8px}.tt-free{color:var(--color-text-tertiary);font-size:13px;margin:0;padding:14px 4px;text-align:center}.tt-slot{--tt-bg:var(--color-accent-soft);--tt-fg:var(--color-accent-strong);--tt-bar:var(--color-accent);grid-gap:3px;background:var(--tt-bg);border:0;border-inline-start:4px solid var(--tt-bar);border-radius:10px;color:var(--tt-fg);display:grid;font:inherit;gap:3px;min-width:0;padding:10px 12px;text-align:start;width:100%}button.tt-slot{cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}button.tt-slot:hover{box-shadow:0 6px 16px rgba(15,23,42,.1);transform:translateY(-1px)}.tt-slot strong{color:var(--color-text-primary);font-size:14px;overflow-wrap:anywhere}.tt-slot small{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:12px;gap:4px;overflow-wrap:anywhere}.tt-time{font-feature-settings:"tnum";font-size:12px;font-variant-numeric:tabular-nums;font-weight:750}.tt-c0{--tt-bg:#eef2ff;--tt-fg:#4338ca;--tt-bar:#6366f1}.tt-c1{--tt-bg:#ecfdf5;--tt-fg:#047857;--tt-bar:#10b981}.tt-c2{--tt-bg:#fff7ed;--tt-fg:#c2410c;--tt-bar:#f97316}.tt-c3{--tt-bg:#f0f9ff;--tt-fg:#0369a1;--tt-bar:#0ea5e9}.tt-c4{--tt-bg:#fdf2f8;--tt-fg:#be185d;--tt-bar:#ec4899}.tt-c5{--tt-bg:#faf5ff;--tt-fg:#7e22ce;--tt-bar:#a855f7}.tt-add{background:transparent;border:1px dashed var(--color-border-strong);border-radius:10px;color:var(--color-text-secondary);cursor:pointer;display:grid;height:34px;place-items:center}.tt-add:hover{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.tt-form{grid-gap:16px;display:grid;gap:16px}.tt-field,.tt-form label{grid-gap:6px;display:grid;gap:6px}.tt-field>span,.tt-form label>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.tt-form .ui-input,.tt-form .ui-select{width:100%}.tt-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.tt-days{flex-wrap:wrap;width:100%}.tt-days .ui-chip{flex:1 1}@media (max-width:1024px){.tt-week{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.tt-daytabs{display:flex}.tt-week{grid-template-columns:1fr}.tt-day{display:none}.tt-day.is-active{display:grid}.tt-day h2{display:none}.tt-day{background:transparent;border:0;box-shadow:none!important;padding:0}.tt-class{width:100%}}.abs-filters{margin-block-end:16px;max-width:100%}.abs-list{grid-gap:12px;display:grid;gap:12px}.abs-card{grid-gap:10px;display:grid;gap:10px;padding:18px 20px}.abs-top{align-items:center;display:flex;gap:12px}.abs-who{flex:1 1;min-width:0}.abs-who strong{display:block;font-weight:700}.abs-who small{color:var(--color-text-secondary);display:block}.abs-reason{line-height:1.6;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.abs-meta{color:var(--color-text-secondary);display:flex;flex-wrap:wrap;font-size:13px;gap:12px;justify-content:space-between}.abs-answer{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:10px;font-size:14px;margin:0;padding:10px 12px}.abs-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.abs-form{grid-gap:16px;display:grid;gap:16px}.abs-form label,.abs-notes{grid-gap:6px;display:grid;gap:6px}.abs-form label>span,.abs-notes>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.abs-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.abs-form .ui-input,.abs-form .ui-textarea,.abs-notes .ui-textarea{width:100%}.abs-badges{display:flex;flex-wrap:wrap;gap:8px;margin-block-end:14px}@media (max-width:640px){.abs-row{grid-template-columns:1fr}.abs-top{flex-wrap:wrap}.abs-actions .ui-btn{flex:1 1}}.exm-select{min-width:170px}.exm-chips-row{display:flex;flex-wrap:wrap;gap:10px 16px;margin-block-end:16px}.exm-row{cursor:pointer}.exm-row:hover td{background:var(--color-surface-2)}.exm-title{background:none;border:0;color:var(--color-text-primary);cursor:pointer;display:block;font:inherit;font-weight:650;padding:0;text-align:start}.exm-title:hover{color:var(--color-accent)}.exm-sub{color:var(--color-text-secondary);display:block;font-size:12.5px;margin-block-start:2px}.exm-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.exm-bad{color:var(--color-danger);color:var(--color-danger-text,var(--color-danger))}.exm-form{grid-gap:16px;display:grid;gap:16px}.exm-form label{grid-gap:6px;display:grid;gap:6px}.exm-form label>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.exm-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.exm-form-row-3{grid-template-columns:repeat(3,1fr)}.exm-form .ui-input,.exm-form .ui-select,.exm-form .ui-textarea{width:100%}.exm-form .ui-textarea{height:auto;padding-block:10px}.exm-hint{color:var(--color-text-secondary);font-size:12.5px;line-height:1.5;margin:-6px 0 0}.exm-weights{grid-gap:10px;display:grid;gap:10px;list-style:none;margin:0;padding:0}.exm-weights li{align-items:center;border:1px solid var(--color-border);border-radius:12px;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.exm-weights label{grid-gap:2px;display:grid;gap:2px;min-width:0}.exm-weight-input{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center;width:90px}.exm-back{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:14px;gap:6px;margin-block-end:6px;text-decoration:none}.exm-back:hover{color:var(--color-accent)}.exm-status-row{align-items:center;gap:12px;margin-block-end:12px}.exm-facts,.exm-status-row{display:flex;flex-wrap:wrap}.exm-facts{color:var(--color-text-secondary);font-size:14px;gap:8px 22px;list-style:none;margin:0 0 14px;padding:0}.exm-facts li{align-items:center;display:inline-flex;gap:7px}.exm-desc{line-height:1.65;margin:0 0 18px;max-width:70ch;white-space:pre-wrap}.exm-stats{margin-block-start:6px}.exm-skel{grid-gap:12px;display:grid;gap:12px}.exm-published-note{padding:12px 14px 0}.exm-student{display:block;font-weight:600}.exm-mark{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:end;width:96px}.exm-remark{min-width:180px;width:100%}.exm-check{align-items:center;cursor:pointer;display:inline-flex}.exm-check input{accent-color:var(--color-accent);cursor:pointer;height:18px;width:18px}.exm-problem{color:var(--color-danger);color:var(--color-danger-text,var(--color-danger));display:block;font-size:12px;margin-block-start:4px}.exm-mark.is-invalid,.exm-weight-input.is-invalid{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft)}.exm-changed td{background:var(--color-accent-soft)}.exm-savebar{align-items:center;background:var(--color-surface);border-block-start:1px solid var(--color-border);border-end-end-radius:14px;border-end-start-radius:14px;display:flex;gap:14px;inset-block-end:0;justify-content:space-between;padding:12px 16px;position:sticky}@media (max-width:720px){.exm-form-row,.exm-form-row-3{grid-template-columns:1fr}.exm-mark{text-align:start;width:100%}.ui-table-stack td.exm-num{text-align:start;white-space:normal}.exm-savebar{align-items:stretch;flex-direction:column}}.rc-select{min-width:150px}.rc-class{min-width:220px}.rc-chips-row{margin-block-end:16px}.rc-rank{font-feature-settings:"tnum";color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-weight:700;text-align:center;width:56px}.rc-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.rc-bad{color:var(--color-danger);color:var(--color-danger-text,var(--color-danger))}.rc-sub{color:var(--color-text-secondary);font-weight:400;margin-block-start:2px}.rc-error,.rc-sub{display:block;font-size:12px}.rc-error{color:var(--color-danger);color:var(--color-danger-text,var(--color-danger))}.rc-row{cursor:pointer}.rc-row:hover td{background:var(--color-surface-2)}.rc-name{background:none;border:0;color:var(--color-text-primary);cursor:pointer;display:block;font:inherit;font-weight:650;padding:0;text-align:start}.rc-name:hover{color:var(--color-accent)}.rc-class-table tfoot td{background:var(--color-surface-2);border-block-start:2px solid var(--color-border);font-weight:600}.rc{grid-gap:18px;display:grid;gap:18px}.rc-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}.rc-head h2{font-size:20px;margin:0}.rc-head p{margin:4px 0 0}.rc-pdf{display:flex;flex-wrap:wrap;gap:8px}.rc-skeleton{grid-gap:14px;display:grid;gap:14px}.rc .ui-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-block-end:0}.rc-head>span:empty{flex:1 1}.rc-exams{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:8px 0 0;padding:0}.rc-exams li{align-items:center;background:var(--color-surface-2);border-radius:999px;color:var(--color-text-secondary);display:inline-flex;font-size:12px;gap:6px;max-width:100%;padding:2px 8px}.rc-exams li span{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-exams li b{font-feature-settings:"tnum";color:var(--color-text-primary);font-variant-numeric:tabular-nums}.rc-exams li b.rc-bad{color:var(--color-danger);color:var(--color-danger-text,var(--color-danger))}.rc-table td{vertical-align:top}.rc-remark-cell{min-width:240px}.rc-remark{grid-gap:6px;display:grid;gap:6px;justify-items:start}.rc-remark .ui-textarea{font-size:14px;height:auto;padding-block:8px;width:100%}.rc-h3{font-size:15px;margin:0 0 12px}.rc-terms{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.rc-term{grid-gap:2px;border:1px solid var(--color-border);border-radius:12px;display:grid;gap:2px;padding:12px 14px}.rc-term strong{font-feature-settings:"tnum";font-size:20px;font-variant-numeric:tabular-nums}.rc-general{line-height:1.65;margin:0;white-space:pre-wrap}@media (max-width:720px){.rc-class-table{min-width:560px}.ui-table-stack td.rc-num{text-align:start;white-space:normal}.rc-remark-cell{min-width:0}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.4b0d45c4.css.map*/