@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";.welcome-widgets-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch}.welcome-widget-card{background:var(--weather-surface, var(--surface-card, #ffffff));border:1.5px solid var(--weather-surface-border, var(--border-color-card, #ede9fe));border-radius:24px;padding:22px 25px 20px;box-shadow:var(--shadow-card, 0 10px 30px rgba(112, 89, 186, .08));display:flex;flex-direction:column;justify-content:flex-start;min-height:274px;box-sizing:border-box;transition:transform var(--transition-bounce),box-shadow var(--transition-bounce)}@media(hover:hover)and (pointer:fine){.welcome-widget-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover, 0 14px 36px rgba(112, 89, 186, .12))}}.widget-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;margin:0;padding:0 0 14px;border-bottom:1px solid var(--weather-surface-border, var(--border-color-card, #ede9fe));box-sizing:border-box}.widget-header-left{display:flex;align-items:center;gap:8px}.widget-icon{font-size:18px;line-height:1}.widget-title{font:800 16px var(--font-family-display);color:var(--color-primary, #6366f1);line-height:1.2;letter-spacing:-.2px}.widget-header-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.weather-live-indicator{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;line-height:1.2}.weather-live-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(145deg,#34d058,#08a62d);box-shadow:inset 0 1px 2px #fff9,0 2px 5px #10b98152;flex-shrink:0}.season-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px;line-height:1.2}.season-badge.tone-autumn{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.season-badge.tone-spring{background:#fdf2f8;color:#be185d;border:1px solid #fbcfe8}.season-badge.tone-summer{background:#fefce8;color:#a16207;border:1px solid #fef08a}.season-badge.tone-winter{background:#f0fdfa;color:#0f766e;border:1px solid #99f6e4}.season-badge.tone-rainy{background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd}.season-badge.tone-dry{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.season-badge.tone-neutral{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}.clock-display-wrap{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;column-gap:24px;padding:20px 0 0;flex:1}.analog-clock{width:128px;height:128px;border-radius:50%;background:linear-gradient(145deg,#fff,#f1ecfd);border:4px solid #ffffff;position:relative;box-shadow:0 10px 24px #7059ba29,inset 0 2px 4px #fff,inset 0 -2px 4px #7059ba1a;flex-shrink:0}.clock-face{position:relative;width:100%;height:100%}.clock-mark{position:absolute;font-size:10px;font-weight:800;color:var(--color-primary, #7059ba);opacity:.85}.mark-12{top:4px;left:50%;transform:translate(-50%)}.mark-3{right:6px;top:50%;transform:translateY(-50%)}.mark-6{bottom:4px;left:50%;transform:translate(-50%)}.mark-9{left:6px;top:50%;transform:translateY(-50%)}.clock-hand{position:absolute;bottom:50%;left:50%;transform-origin:bottom center;border-radius:4px}.hand-hour{width:3.5px;height:32px;background:var(--color-primary-dark, #43336d);margin-left:-1.75px}.hand-min{width:2.5px;height:44px;background:var(--color-primary, #7059ba);margin-left:-1.25px}.hand-sec{width:1.5px;height:50px;background:#ef4444;margin-left:-.75px}.clock-center-dot{position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--color-primary-dark, #43336d);border:1.5px solid #ffffff;transform:translate(-50%,-50%)}.clock-content-wrap{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.digital-time-display{font-family:var(--font-family-display);font-size:32px;font-weight:800;line-height:1;letter-spacing:-.6px;color:var(--color-primary, #6366f1)}.digital-date-display{margin-top:12px;font-size:14px;line-height:1.25;font-weight:700;color:var(--color-primary-dark, #2d3748);font-family:var(--font-family-body)}.clock-timezone-pill{display:inline-flex;margin-top:9px;padding:4px 8px;border-radius:7px;background:var(--color-primary-subtle, #ede9fe);color:var(--color-text-muted, #64748b);font-size:11px;font-weight:600;line-height:1;font-family:var(--font-family-body)}.weather-main-row{display:grid;grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;column-gap:20px;min-height:55px;margin-bottom:16px;padding-top:4px}.weather-temp-highlight{display:flex;align-items:baseline;color:var(--color-primary, #6366f1);line-height:1}.weather-temp-number{font-family:var(--font-family-display);font-size:40px;font-weight:800;line-height:.95;color:var(--color-primary, #6366f1);letter-spacing:-1.5px}.weather-temp-unit{font-family:var(--font-family-display);font-size:22px;font-weight:800;color:var(--color-primary, #6366f1);margin-left:1px}.weather-temp-details{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.weather-condition-text{font-family:var(--font-family-display);font-size:15px;font-weight:800;line-height:1.2;color:var(--color-primary-dark, #2d3748)}.weather-feels-like{margin-top:5px;font-size:12px;font-weight:600;line-height:1.2;color:var(--color-text-muted, #6b7280);font-family:var(--font-family-body);cursor:help}.weather-metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}.weather-metric-box{min-width:0;min-height:56px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;column-gap:10px;padding:9px 14px;border-radius:14px;background:var(--weather-surface-subtle, var(--color-primary-subtle, #fcfbfe));border:1px solid var(--weather-surface-border, var(--border-color-card, #ede9fe));box-sizing:border-box;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease,border-color .2s ease}@media(hover:hover)and (pointer:fine){.weather-metric-box:hover{background:var(--color-primary-subtle);border-color:var(--color-primary-light);box-shadow:0 6px 14px #6366f11f,inset 0 1px 1px #ffffffbf;transform:translateY(-2px)}.weather-metric-box:hover .metric-icon{transform:scale(1.06)}}.metric-icon{width:32px;display:grid;place-items:center;font-size:20px;line-height:1;transition:transform .2s ease}.metric-content{min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}.metric-label{display:block;margin:0;font-size:11px;font-weight:600;line-height:1;color:var(--color-text-muted, #6b7280);font-family:var(--font-family-body)}.metric-value{display:block;margin:0;font-family:var(--font-family-display);font-size:15px;font-weight:800;line-height:1.05;color:var(--color-primary, #6366f1)}.uv-badge-pill{margin:0;min-height:22px;display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;padding:1.5px 6px;border-radius:10px;width:fit-content;box-sizing:border-box}.uv-badge-pill.tone-mint{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.uv-badge-pill.tone-amber{background:#fefce8;color:#a16207;border:1px solid #fef08a}.uv-badge-pill.tone-orange{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.uv-badge-pill.tone-rose{background:#fff1f2;color:#e11d48;border:1px solid #fecdd3}.uv-badge-pill.tone-purple{background:#faf5ff;color:#7e22ce;border:1px solid #e9d5ff}.uv-badge-pill.tone-muted{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.preschool-advice-banner{min-height:55px;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;column-gap:8px;padding:10px 14px;border-radius:14px;background:var(--weather-advice-surface, #f0f9ff);border:1px solid var(--weather-advice-border, #bae6fd);box-sizing:border-box;box-shadow:0 1px 3px #0369a10a}.preschool-advice-banner.tone-mint{background:#f0fdf4;border-color:#bbf7d0}.preschool-advice-banner.tone-sky{background:var(--weather-advice-surface, #f0f9ff);border-color:var(--weather-advice-border, #bae6fd)}.preschool-advice-banner.tone-amber{background:#fffbeb;border-color:#fde68a}.preschool-advice-banner.tone-rose{background:#fff1f2;border-color:#fecdd3}.preschool-advice-banner.tone-lavender{background:#f5f3ff;border-color:#ddd6fe}.advice-banner-icon{font-size:14px;line-height:1.3;display:grid;place-items:center}.advice-banner-body{min-width:0;display:inline;font-size:12px;line-height:1.45}.advice-banner-title{display:inline;margin-right:4px;font-weight:800;color:var(--weather-advice-title, var(--color-primary-dark, #0369a1));font-family:var(--font-family-display)}.preschool-advice-banner.tone-mint .advice-banner-title{color:#15803d}.preschool-advice-banner.tone-amber .advice-banner-title{color:#b45309}.preschool-advice-banner.tone-rose .advice-banner-title{color:#be123c}.preschool-advice-banner.tone-lavender .advice-banner-title{color:#6d28d9}.advice-banner-text{display:inline;color:var(--color-text-body, #1e293b);font-family:var(--font-family-body)}.weather-state-box{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:16px 8px;flex:1}.weather-state-icon-wrap{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #0000000a}.weather-state-title{font:700 13.5px var(--font-family-display);color:var(--weather-accent-strong, var(--color-text-title, #2d3748))}.weather-state-desc{font-size:11.5px;color:var(--color-text-muted, #6b7280);font-family:var(--font-family-body);max-width:280px;line-height:1.35;margin-top:2px}@media(max-width:768px){.welcome-widgets-grid{grid-template-columns:1fr;gap:16px}.clock-display-wrap{grid-template-columns:112px minmax(0,1fr);column-gap:18px}.analog-clock{width:112px;height:112px}}@media(max-width:600px){.welcome-widget-card{padding:16px;min-height:auto}.widget-header{flex-wrap:wrap}.clock-display-wrap{grid-template-columns:104px minmax(0,1fr);column-gap:14px}.analog-clock{width:104px;height:104px}.digital-time-display{font-size:27px}.weather-metrics-grid{grid-template-columns:1fr;gap:8px}.weather-metric-box{padding:8px 12px}}@media(prefers-reduced-motion:reduce){.welcome-widget-card,.weather-metric-box,.analog-clock,.clock-hand{transition:none!important;transform:none!important;animation:none!important}}.school-setup-card{background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, var(--border-color-subtle, #e2e8f0));border-radius:24px;padding:22px 25px 20px;box-shadow:var(--shadow-card, 0 10px 30px rgba(0, 0, 0, .06));margin-bottom:22px;box-sizing:border-box;transition:transform var(--transition-bounce, .2s ease),box-shadow var(--transition-bounce, .2s ease)}.school-setup-card:focus-within{border-color:var(--color-primary, #0284c7)}.setup-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.setup-header-left{display:flex;align-items:center;gap:10px}.setup-header-icon{font-size:20px;line-height:1}.setup-header-title{font:800 17px var(--font-family-display, inherit);color:var(--color-primary, #0f172a);margin:0;line-height:1.3}.setup-header-right{display:flex;align-items:center;gap:10px}.setup-badge-count{display:inline-flex;align-items:center;padding:4px 10px;background:var(--color-primary-subtle, #f0f9ff);color:var(--color-primary, #0284c7);font:700 13px var(--font-family-sans, inherit);border-radius:999px;white-space:nowrap}.setup-toggle-btn{background:transparent;border:none;font:600 13px var(--font-family-sans, inherit);color:var(--color-text-muted, #64748b);cursor:pointer;padding:4px 8px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;transition:background .15s ease,color .15s ease}.setup-toggle-btn:hover{background:var(--surface-hover, #f8fafc);color:var(--color-text-main, #1e293b)}.setup-progress-wrap{margin:14px 0 6px}.setup-progress-meta{display:flex;justify-content:space-between;align-items:center;font:600 12.5px var(--font-family-sans, inherit);color:var(--color-text-muted, #64748b);margin-bottom:6px}.setup-progress-percent{font-weight:700;color:var(--color-primary, #0284c7)}.setup-progress-track{width:100%;height:8px;background:var(--border-color-subtle, #f1f5f9);border-radius:999px;overflow:hidden;position:relative}.setup-progress-fill{height:100%;background:var(--color-primary-gradient, var(--color-primary, #0284c7));border-radius:999px;transition:width .4s ease}.setup-subtitle{margin:4px 0 14px;font:500 13.5px var(--font-family-sans, inherit);color:var(--color-text-muted, #64748b);line-height:1.45}.setup-section-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.setup-section-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;background:var(--surface-secondary, #f8fafc);border:1px solid var(--border-color-subtle, #f1f5f9);border-radius:14px;transition:background .15s ease,border-color .15s ease,transform .15s ease}.setup-section-row:hover{background:var(--surface-hover, #f1f5f9);border-color:var(--border-color-card, #e2e8f0)}.setup-section-row--completed{background:var(--surface-card, #ffffff);border-color:var(--border-color-subtle, #f1f5f9)}.setup-section-row--incomplete{background:var(--surface-secondary, #f8fafc);border-left:3.5px solid var(--color-primary, #0284c7)}.setup-section-row--unknown{background:#fefce8;border-left:3.5px solid #eab308}.setup-section-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.setup-section-icon{font-size:18px;line-height:1;flex-shrink:0}.setup-section-info{display:flex;flex-direction:column;gap:2px;min-width:0}.setup-section-title-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.setup-section-title{font:700 14px var(--font-family-sans, inherit);color:var(--color-text-main, #1e293b)}.setup-section-desc{font:500 12.5px var(--font-family-sans, inherit);color:var(--color-text-muted, #64748b);line-height:1.35}.setup-section-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.setup-section-status-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.setup-section-reason{font:500 12px var(--font-family-sans, inherit);color:#d97706}.setup-section-reason--unknown{color:var(--color-primary, #64748b)}.setup-status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font:700 11.5px var(--font-family-sans, inherit);white-space:nowrap}.setup-status-badge--completed{background:var(--color-primary-subtle, #f0edfe);color:var(--color-primary-dark, #3f2e96);border:1px solid var(--color-primary-light, #ddd6fe)}.setup-status-badge--incomplete{background:#fee2e2;color:#b91c1c}.setup-status-badge--unknown{background:#fef3c7;color:#b45309}.setup-section-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.setup-action-btn{background:var(--primary-surface, var(--color-primary, #0284c7));color:var(--text-on-primary, #ffffff);border:none;border-radius:10px;padding:6px 12px;font:700 12px var(--font-family-sans, inherit);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:opacity .15s ease,transform .15s ease;white-space:nowrap}.setup-action-btn:hover{background:var(--primary-surface-hover, var(--color-primary-hover, #0369a1));opacity:.95;transform:translateY(-1px)}.setup-action-btn:active{background:var(--primary-surface-pressed, var(--color-primary-active, #075985));transform:translateY(0)}.setup-action-unauthorized{font:500 12px var(--font-family-sans, inherit);color:#94a3b8;font-style:italic}.school-setup-card--loading,.school-setup-card--error{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:12px}.setup-loading-content,.setup-error-content{display:flex;align-items:center;gap:10px;font:600 14px var(--font-family-sans, inherit);color:#64748b}.setup-retry-btn{background:var(--color-primary-subtle, #f0f9ff);color:var(--color-primary, #0284c7);border:none;border-radius:8px;padding:6px 14px;font:700 13px var(--font-family-sans, inherit);cursor:pointer;transition:background .15s ease}.setup-retry-btn:hover{background:var(--color-primary-light, #e0f2fe)}@media(max-width:640px){.setup-section-row{flex-direction:column;align-items:flex-start}.setup-section-right{width:100%;justify-content:flex-end}}.setup-return-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, var(--border-color-subtle, #e2e8f0));border-radius:16px;padding:12px 18px;margin-bottom:20px;box-shadow:var(--shadow-card, 0 4px 16px rgba(0, 0, 0, .05));box-sizing:border-box;flex-wrap:wrap}.setup-return-banner__content{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}.setup-return-banner__icon{display:flex;align-items:center;color:var(--color-primary, #0284c7);flex-shrink:0}.setup-return-banner__info{display:flex;flex-direction:column;gap:4px;min-width:0}.setup-return-banner__text{font:600 13.5px var(--font-family-sans, inherit);color:var(--color-text-main, #1e293b);line-height:1.4}.setup-return-banner__progress-wrap{display:inline-flex;align-items:center;gap:8px;font:600 12px var(--font-family-sans, inherit);color:var(--color-text-muted, #64748b)}.setup-return-banner__progress-track{width:80px;height:6px;background:var(--border-color-subtle, #f1f5f9);border-radius:999px;overflow:hidden;position:relative;flex-shrink:0}.setup-return-banner__progress-fill{height:100%;background:var(--color-primary-gradient, var(--primary-surface, var(--color-primary, #0284c7)));border-radius:999px;transition:width .3s ease}.setup-return-banner__badge{display:inline-flex;align-items:center;padding:2px 8px;background:var(--color-primary-subtle, #f0f9ff);color:var(--color-primary, #0284c7);font:700 12px var(--font-family-sans, inherit);border-radius:999px;white-space:nowrap}.setup-return-banner__unknown-badge{display:inline-flex;align-items:center;padding:2px 8px;background:var(--border-color-subtle, #f1f5f9);color:#64748b;font:600 12px var(--font-family-sans, inherit);border-radius:999px;white-space:nowrap}.setup-return-banner__loading-text,.setup-return-banner__unknown-hint{font:500 12px var(--font-family-sans, inherit);color:#64748b;white-space:nowrap}.setup-return-banner__btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-focus, var(--color-primary, #0284c7));border-radius:10px;color:var(--color-primary, #0284c7);font:700 13px var(--font-family-sans, inherit);cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.setup-return-banner__btn:hover{background:var(--primary-surface, var(--color-primary, #0284c7));color:var(--text-on-primary, #ffffff);border-color:var(--color-primary-hover, #0369a1);box-shadow:0 4px 12px #0000001a}@media(max-width:640px){.setup-return-banner{flex-direction:column;align-items:flex-start}.setup-return-banner__btn{width:100%;justify-content:center}}.setup-bottom-bar{position:fixed;bottom:0;left:var(--sidebar-actual-width, 288px);right:0;z-index:40;background:var(--surface-card, #ffffff);border-top:1px solid var(--border-color, #e2e8f0);box-shadow:0 -4px 16px #00000014;padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom,10px));transition:transform .25s ease,opacity .25s ease,left .2s ease}@media(max-width:1023px){.setup-bottom-bar{left:0!important}.sidebar{z-index:100!important}}.setup-bottom-bar__content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.setup-bottom-bar__left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.setup-bottom-bar__steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.setup-step-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;font:600 12px var(--font-family-sans, inherit);border:1px solid transparent;background:var(--border-color-subtle, #f1f5f9);color:var(--color-text-muted, #64748b);cursor:pointer;transition:all .15s ease;white-space:nowrap}.setup-step-pill:hover{filter:brightness(.95)}.setup-step-pill--completed{background:var(--color-primary-subtle, #f0edfe);color:var(--color-primary-dark, #3f2e96);border-color:var(--color-primary-light, #ddd6fe)}.setup-step-pill--incomplete{background:#fef3c7;color:#d97706;border-color:#fde68a}.setup-step-pill--unknown{background:#f1f5f9;color:#64748b;border-color:#cbd5e1}.setup-step-pill__icon{font-size:11px;line-height:1}.setup-step-pill__label{line-height:1.2}.setup-bottom-bar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.setup-sound-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--border-color, #e2e8f0);background:var(--surface-card, #ffffff);color:var(--color-text-muted, #64748b);cursor:pointer;font-size:14px;transition:all .15s ease}.setup-sound-toggle-btn:hover{background:var(--border-color-subtle, #f1f5f9)}.setup-sound-toggle-btn--muted{color:#94a3b8;opacity:.7}.setup-next-cta-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;font:700 13px var(--font-family-sans, inherit);border:none;background:var(--color-primary-gradient, var(--primary-surface, var(--color-primary, #0284c7)));color:#fff;cursor:pointer;box-shadow:0 2px 6px #0284c74d;transition:all .15s ease;white-space:nowrap}.setup-next-cta-btn:hover{opacity:.95;box-shadow:0 4px 10px #0284c766}.setup-banner-confirm-year-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font:700 12.5px var(--font-family-sans, inherit);border:1.5px solid var(--color-primary, #0284c7);background:var(--color-primary-subtle, #f0f9ff);color:var(--color-primary, #0284c7);cursor:pointer;transition:all .15s ease;white-space:nowrap}.setup-banner-confirm-year-btn:hover:not(:disabled){background:var(--primary-surface, var(--color-primary, #0284c7));color:#fff;box-shadow:0 2px 8px #0284c740}.setup-banner-confirm-year-btn:disabled{opacity:.65;cursor:not-allowed}.setup-banner-save-profile-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font:700 12.5px var(--font-family-sans, inherit);border:1.5px solid var(--color-primary, #0284c7);background:var(--color-primary, #0284c7);color:#fff;cursor:pointer;transition:all .15s ease;white-space:nowrap;box-shadow:0 2px 6px #0284c740}.setup-banner-save-profile-btn:hover:not(:disabled){background:var(--primary-surface-hover, var(--color-primary-hover, #0369a1));box-shadow:0 4px 10px #0284c759;transform:translateY(-1px)}.setup-banner-save-profile-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.setup-year-ack-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:999px;font:700 12px var(--font-family-sans, inherit);background:var(--color-primary-subtle, #f0edfe);color:var(--color-primary-dark, #3f2e96);border:1px solid var(--color-primary-light, #ddd6fe);white-space:nowrap}.setup-celebration-toast{position:fixed;bottom:76px;right:24px;z-index:101;background:var(--color-primary-dark, #1e1b4b);color:var(--text-on-primary, #ffffff);border:1px solid var(--color-primary, #6c5ce7);padding:12px 18px;border-radius:12px;box-shadow:0 6px 20px #0003;font:600 13px var(--font-family-sans, inherit);animation:setupToastSlideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes setupToastSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.setup-bottom-bar,.setup-return-banner__progress-fill,.setup-step-pill,.setup-sound-toggle-btn,.setup-next-cta-btn,.setup-celebration-toast{transition:none!important;animation:none!important}}body:has(.setup-bottom-bar) .content,.app-main:has(.setup-bottom-bar) .content,.app-main:has(.setup-bottom-bar) main{padding-bottom:96px!important}@media(max-width:640px){body:has(.setup-bottom-bar) .content,.app-main:has(.setup-bottom-bar) .content,.app-main:has(.setup-bottom-bar) main{padding-bottom:130px!important}}.setup-return-banner__icon-done{color:var(--color-primary, #6c5ce7)}.welcome-operations-section{margin-top:28px;display:flex;flex-direction:column;gap:18px}.welcome-operations-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:0 4px}.welcome-operations-title-group{display:flex;align-items:center;gap:10px}.welcome-operations-heading{font:800 20px var(--font-family-display, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);color:var(--color-primary-dark, #4338ca);margin:0;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.welcome-operations-heading-icon{display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:var(--color-primary, #6c5ce7)}.welcome-operations-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.welcome-operations-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:14px;display:inline-flex;align-items:center;gap:5px;line-height:1.2}.welcome-operations-badge--school{background:var(--color-primary-light, #ede9fe);color:var(--color-primary-dark, #6d28d9);border:1px solid var(--border-color-card, #ddd6fe)}.welcome-operations-badge--assigned{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.welcome-operations-badge--time{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.welcome-operations-refresh-btn{background:#fff;border:1.5px solid #e0e7ff;color:#4f46e5;font-size:12px;font-weight:600;padding:5px 12px;border-radius:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;box-shadow:0 2px 6px #6366f10f}.welcome-operations-refresh-btn:hover:not(:disabled){background:#f5f3ff;border-color:#c7d2fe;transform:translateY(-1px)}.welcome-operations-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.welcome-operations-notices{display:flex;flex-direction:column;gap:10px}.welcome-operations-notice-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-radius:16px;box-shadow:0 4px 12px #00000008;transition:transform .2s ease}.welcome-operations-notice-card:hover{transform:translateY(-1px)}.welcome-operations-notice-card--safety{background:#fff7ed;border:1.5px solid #ffedd5;color:#9a3412}.welcome-operations-notice-card--attendance{background:#fefce8;border:1.5px solid #fef08a;color:#854d0e}.welcome-operations-notice-card--care{background:#f0fdf4;border:1.5px solid #bbf7d0;color:#166534}.welcome-operations-notice-left{display:flex;align-items:center;gap:10px}.welcome-operations-notice-icon{font-size:20px;line-height:1}.welcome-operations-notice-text{font-size:13.5px;font-weight:600;line-height:1.3}.welcome-operations-notice-count{font-weight:800;font-size:15px}.welcome-operations-notice-action{background:#fff;border:1px solid currentColor;color:inherit;font-size:12px;font-weight:700;padding:6px 14px;border-radius:12px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .2s ease;white-space:nowrap}.welcome-operations-notice-action:hover{background:currentColor;color:#fff}.welcome-operations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}@media(min-width:1024px){.welcome-operations-grid{grid-template-columns:repeat(4,1fr)}}.welcome-operations-card{background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, #ede9fe);border-radius:20px;padding:16px 18px 14px;box-shadow:0 8px 24px #7059ba0d;display:flex;flex-direction:column;justify-content:space-between;gap:12px;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease;min-height:132px;box-sizing:border-box}.welcome-operations-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #7059ba17}.welcome-operations-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.welcome-operations-card-label{font-size:13px;font-weight:700;color:#475569;line-height:1.25}.welcome-operations-card-icon{font-size:20px;line-height:1}.welcome-operations-card-value-wrap{display:flex;align-items:baseline;gap:6px}.welcome-operations-card-value{font-size:28px;font-weight:800;font-family:var(--font-family-display, -apple-system, BlinkMacSystemFont, sans-serif);color:#1e1b4b;line-height:1}.welcome-operations-card-value--zero{color:#64748b}.welcome-operations-card-unit{font-size:12px;font-weight:600;color:#94a3b8}.welcome-operations-card-status{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;padding:4px 8px;border-radius:8px;line-height:1.2}.welcome-operations-card-status--unavailable{background:#f1f5f9;color:#64748b;border:1px dashed #cbd5e1}.welcome-operations-card-status--forbidden{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.welcome-operations-card-footer{font-size:11px;color:#94a3b8;display:flex;align-items:center;justify-content:space-between;gap:4px;border-top:1px solid #f1f5f9;padding-top:8px;margin-top:auto}.welcome-operations-card-reason{font-size:10.5px;color:#64748b;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-operations-error-card{background:#fff1f2;border:1.5px solid #fecdd3;border-radius:18px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#be123c}.welcome-operations-error-text{font-size:13.5px;font-weight:600}.welcome-operations-error-retry{background:#be123c;color:#fff;border:none;border-radius:10px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:opacity .2s ease}.welcome-operations-error-retry:hover{opacity:.9}.welcome-operations-skeleton-card{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:20px;padding:16px 18px;min-height:132px;animation:welcome-pulse 1.5s ease-in-out infinite}@keyframes welcome-pulse{0%,to{opacity:1}50%{opacity:.5}}.class-daily-menu-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-subtle, #e2e8f0);border-radius:12px;padding:16px 20px;margin-bottom:20px;box-shadow:0 1px 3px #0000000a}.class-daily-menu-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.class-daily-menu-title-area{display:flex;align-items:center;gap:10px}.class-daily-menu-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#f0fdf4;color:#16a34a}.class-daily-menu-title{margin:0;font-size:16px;font-weight:700;color:var(--text-primary, #1e293b)}.class-daily-menu-context{margin:2px 0 0;font-size:13px;color:var(--text-secondary, #64748b)}.class-daily-menu-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;border-radius:9999px;background:#f1f5f9;color:#475569}.class-daily-menu-badge.has-menu{background:#ecfdf5;color:#065f46}.class-daily-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}@media(max-width:768px){.class-daily-menu-grid{grid-template-columns:1fr;gap:12px}}.class-daily-menu-field{display:flex;flex-direction:column;gap:6px}.class-daily-menu-label{font-size:13px;font-weight:600;color:var(--text-primary, #1e293b);display:flex;justify-content:space-between}.class-daily-menu-char-count{font-size:11px;color:var(--text-tertiary, #94a3b8);font-weight:400}.class-daily-menu-textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;line-height:1.5;padding:8px 12px;border-radius:8px;border:1px solid var(--border-color, #cbd5e1);background:var(--surface-input, #f8fafc);color:var(--text-primary, #1e293b);resize:vertical;min-height:72px;transition:border-color .15s ease,box-shadow .15s ease}.class-daily-menu-textarea:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626;background:#fff}.class-daily-menu-textarea:disabled{background:#f1f5f9;color:#64748b;cursor:not-allowed;border-color:#e2e8f0}.class-daily-menu-helper{font-size:11px;color:var(--text-tertiary, #64748b);margin-top:2px;line-height:1.4}.class-daily-menu-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:12px;border-top:1px solid var(--border-subtle, #f1f5f9)}.class-daily-menu-status{font-size:13px;color:var(--text-secondary, #64748b);display:flex;align-items:center;gap:6px}.class-daily-menu-btn-save{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;border-radius:8px;border:none;background:var(--primary-surface, var(--color-primary, #6366f1));color:var(--text-on-primary, #ffffff);cursor:pointer;transition:all .15s ease}.class-daily-menu-btn-save:hover:not(:disabled){background:var(--primary-surface-hover, var(--color-primary-hover, #4f46e5))}.class-daily-menu-btn-save:disabled{opacity:.6;cursor:not-allowed}.class-daily-menu-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:13px;line-height:1.4}.class-daily-menu-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.class-daily-menu-alert-warning{background:#fffbeb;border:1px solid #fef3c7;color:#92400e}.class-daily-menu-alert-info{background:#f0f9ff;border:1px solid #e0f2fe;color:#0369a1}.class-daily-menu-btn-retry{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid #fcd34d;background:#fef3c7;color:#92400e;cursor:pointer;margin-top:6px}.class-daily-menu-btn-retry:hover{background:#fde68a}.class-daily-menu-btn-reload{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;cursor:pointer;margin-top:6px}.class-daily-menu-btn-reload:hover{background:#dbeafe}.date-and-menu-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.date-and-menu-action .filter-field-inline{display:flex;flex-direction:row;align-items:center;gap:8px}.date-and-menu-action .filter-field-inline .filter-label{white-space:nowrap;margin:0;font-size:13px;font-weight:600;color:var(--color-text-muted, #7e7a94)}.btn-open-class-menu{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;height:38px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid var(--border-subtle, #cbd5e1);background:#fff;color:#1e293b;cursor:pointer;white-space:nowrap;transition:all .15s ease;box-shadow:0 1px 2px #0000000d}.btn-open-class-menu:hover{background:#f8fafc;border-color:#94a3b8;color:#0f172a}.btn-open-class-menu:focus-visible{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f633}.menu-header-status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;border-radius:9999px;white-space:nowrap;line-height:1.4;transition:all .15s ease}.menu-header-status-badge.status-updated{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.menu-header-status-badge.status-empty{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.menu-header-status-badge.status-loading{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.menu-header-status-badge.status-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.menu-header-status-badge.status-unknown{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.class-daily-menu-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172aa6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;animation:menuFadeIn .2s ease-out}.class-daily-menu-modal-card{background:#fff;border-radius:16px;width:100%;max-width:760px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(226,232,240,.8);padding:24px;display:flex;flex-direction:column;position:relative;animation:menuSlideUp .2s ease-out}@keyframes menuFadeIn{0%{opacity:0}to{opacity:1}}@keyframes menuSlideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.class-daily-menu-btn-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;color:#64748b;cursor:pointer;transition:all .15s ease}.class-daily-menu-btn-close:hover{background:#f1f5f9;color:#0f172a}.class-daily-menu-btn-close:focus-visible{outline:none;border-color:#94a3b8;background:#f1f5f9}.class-daily-menu-btn-cancel{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#475569;cursor:pointer;transition:all .15s ease}.class-daily-menu-btn-cancel:hover{background:#f8fafc;color:#1e293b}.class-daily-menu-btn-cancel:focus-visible{outline:none;border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b833}.class-daily-menu-footer-btns{display:flex;align-items:center;gap:10px}.class-matrix{display:grid;gap:16px;width:100%;min-width:0;font-family:var(--font-family-body);color:var(--color-text-body)}.class-matrix header,.class-matrix footer,.matrix-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.class-matrix h2,.class-matrix p{margin:0}.class-matrix h2{font-size:22px;color:var(--color-text-title)}.class-matrix label{display:flex;gap:8px;align-items:center;font-size:13px}.class-matrix input,.class-matrix select,.class-matrix textarea,.class-matrix button{font:inherit;border:1px solid var(--border-color-card,#ded9ea);border-radius:8px;padding:8px;background:var(--surface-card,#fff);color:inherit;min-height:38px;max-width:100%;box-sizing:border-box}.class-matrix button{cursor:pointer;box-shadow:0 2px #e4dfee}.class-matrix button:disabled{opacity:.55;cursor:default}.class-matrix .matrix-primary{background:var(--color-primary,#6c5ce7);color:#fff;border-color:transparent}.matrix-scroll{overflow:auto;max-height:65vh;border:1px solid #e4dfed;border-radius:14px;background:#fff;min-width:0;width:100%;position:relative}.class-matrix table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.class-matrix th,.class-matrix td{min-width:190px;max-width:240px;padding:10px;border-right:1px solid #eee9f5;border-bottom:1px solid #eee9f5;vertical-align:top;text-align:left}.class-matrix thead th{position:sticky;top:0;background:var(--table-header-bg,#ede9fe);z-index:2;color:var(--table-header-color,#3f2e96);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a}.class-matrix tr>:first-child{position:sticky;left:0;z-index:1;background:var(--surface-card,#faf8fe);min-width:170px}.class-matrix thead tr>:first-child{z-index:3;background:var(--table-header-bg,#ede9fe);color:var(--table-header-color,#3f2e96);border-right:1px solid var(--table-header-separator, #ffffff)}.class-matrix th strong,.class-matrix th span{display:block}.class-matrix th span{font-size:11px;color:var(--color-text-muted,#7e7a94);margin-bottom:6px}.class-matrix thead th span{color:#ffffffe0}.class-matrix th details{font-weight:400;font-size:12px;margin-top:8px}.class-matrix td select{width:100%;background:transparent;border:0}.class-matrix td button{font-size:11px;min-height:28px;padding:4px 6px;background:transparent;border:0;box-shadow:none}.matrix-note{padding:10px 12px;background:#f1f6fe;border-radius:8px;font-size:12px}.matrix-inline-panel,.matrix-picker{display:grid;gap:12px;padding:18px;background:#fff;border:1px solid #e1d8ed;border-radius:14px}.matrix-picker{max-height:300px;overflow:auto;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.matrix-inline-panel textarea{width:100%;min-height:80px}.class-matrix footer{padding:14px;border:1px solid #e5ddf0;background:#f8f5fd;border-radius:12px}.class-matrix [role=alert]{color:#a52929}.class-matrix .rating-GOOD{background:#e8f7ed}.class-matrix .rating-EMERGING{background:#fff5d9}.class-matrix .rating-SUPPORT{background:#fcece6}.class-matrix .rating-INSUFFICIENT{background:#eef0f8}@media(max-width:640px){.matrix-toolbar{width:100%}.class-matrix th,.class-matrix td{min-width:165px}.class-matrix tr>:first-child{min-width:110px;max-width:140px}.class-matrix label{flex-wrap:wrap}.class-matrix footer{justify-content:flex-start}}.class-matrix{gap:12px}.class-matrix .matrix-chrome{box-sizing:border-box;min-width:0;border:1px solid var(--border-color-card,#ded9ea);border-radius:var(--radius-xl,16px);background:var(--surface-card,#fff);box-shadow:inset 0 1px #ffffffc9,0 3px color-mix(in srgb,var(--color-primary,#6c5ce7) 10%,#e5e7eb),0 8px 22px #0000000a}.class-matrix .matrix-heading{padding:16px 18px;gap:16px;background:linear-gradient(115deg,color-mix(in srgb,var(--color-primary,#6c5ce7) 7%,var(--surface-card,#fff)),var(--surface-card,#fff))}.matrix-heading-copy{display:flex;align-items:center;gap:12px;min-width:0}.matrix-heading-copy>div{min-width:0}.class-matrix .matrix-heading-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;color:var(--color-primary,#6c5ce7);background:var(--surface-card,#fff);border:1px solid color-mix(in srgb,var(--color-primary,#6c5ce7) 22%,white);border-radius:15px;box-shadow:inset 0 2px #fff,0 4px color-mix(in srgb,var(--color-primary,#6c5ce7) 18%,#e5e7eb),0 6px 12px #0000000d}.class-matrix .matrix-heading h2{font-size:19px;font-weight:750;line-height:1.3}.class-matrix .matrix-heading p{font-size:13px;line-height:1.5;color:var(--color-text-muted,#64748b);margin-top:4px}.matrix-context-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;min-width:0}.matrix-context-controls label{min-width:0}.matrix-context-controls select{max-width:220px}.class-matrix .matrix-filters{padding:14px 16px;display:grid;gap:12px}.matrix-filter-fields{display:grid;grid-template-columns:minmax(170px,1fr) minmax(180px,1.2fr) minmax(180px,1fr);gap:14px;min-width:0}.class-matrix .matrix-filter-fields label{display:grid;gap:6px;min-width:0;font-weight:600;color:var(--color-text-muted,#64748b)}.matrix-filter-fields input,.matrix-filter-fields select{width:100%;min-width:0;font-weight:400}.class-matrix .matrix-chrome input,.class-matrix .matrix-chrome select,.class-matrix .matrix-chrome textarea{border-color:var(--border-color-card,#ded9ea);background:var(--surface-input,var(--surface-card,#fff));border-radius:10px;box-shadow:inset 0 2px 3px #00000008}.matrix-filter-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.matrix-badges,.matrix-chrome-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.matrix-badges>span,.class-matrix .matrix-status{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1.4;padding:5px 9px;border-radius:8px;background:var(--surface-input,#f1f5f4);color:var(--color-text-muted,#64748b);font-weight:600;max-width:100%;box-sizing:border-box}.class-matrix .matrix-status-PUBLISHED,.class-matrix .matrix-status-APPROVED{background:#e6f6ee;color:#216347}.class-matrix .matrix-status-READY,.class-matrix .matrix-status-CORRECTED{background:#fff3d8;color:#845b17}.class-matrix .matrix-chrome button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;border-color:var(--border-color-card,#ded9ea);box-shadow:inset 0 1px #fff9,0 2px #0000000f}.class-matrix .matrix-chrome button:hover:not(:disabled){border-color:var(--color-primary,#6c5ce7);color:var(--color-primary,#6c5ce7)}.class-matrix .matrix-chrome .matrix-primary{background:var(--color-primary,#6c5ce7);color:#fff;border-color:transparent;box-shadow:inset 0 1px #fff5,0 3px color-mix(in srgb,var(--color-primary,#6c5ce7) 70%,#000)}.class-matrix .matrix-chrome .matrix-primary:hover:not(:disabled){color:#fff;filter:brightness(.97)}.class-matrix .matrix-chrome :is(button,input,select,textarea):focus-visible,.matrix-help>summary:focus-visible{outline:2px solid var(--color-primary,#6c5ce7);outline-offset:3px}.class-matrix .matrix-note{display:flex;align-items:center;gap:7px;padding:8px 12px;background:color-mix(in srgb,var(--color-primary,#6c5ce7) 6%,var(--surface-card,#fff));color:var(--color-text-muted,#64748b);font-size:12px;line-height:1.5}.matrix-note>svg{flex-shrink:0}.class-matrix .matrix-help{padding:0;box-shadow:0 2px #0000000a}.matrix-help>summary{display:flex;align-items:center;gap:7px;cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600;list-style:none}.matrix-help>summary:after{content:"＋";margin-left:auto;color:var(--color-text-muted)}.matrix-help[open]>summary:after{content:"−"}.matrix-rubric{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 12px 12px}.matrix-rubric>article{border-radius:10px;padding:12px;background:#eef2f7;font-size:12px;line-height:1.5}.matrix-rubric strong{display:block;margin-bottom:5px}.matrix-rubric .matrix-rubric-GOOD{background:#e8f7ed}.matrix-rubric .matrix-rubric-EMERGING{background:#fff5d9}.matrix-rubric .matrix-rubric-SUPPORT{background:#fcece6}.matrix-rubric .matrix-rubric-INSUFFICIENT{background:#eef0f8}.class-matrix .matrix-source-help{font-size:12px;color:var(--color-text-muted);line-height:1.6;padding:0 14px 12px}.class-matrix .matrix-pending{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff8e8;border-color:#ead7ab;color:#79551b}.matrix-pending>svg{flex-shrink:0}.matrix-pending>div{flex:1;min-width:0}.matrix-pending strong{font-size:13px}.class-matrix .matrix-pending p{font-size:12px;line-height:1.5;margin-top:3px}.matrix-pending button{max-width:100%;text-align:left;white-space:normal}.class-matrix .matrix-actionbar{padding:14px 16px;gap:14px;background:var(--surface-card,#fff);position:static}.matrix-save-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.matrix-actionbar>.matrix-chrome-actions{margin-left:auto}.class-matrix .matrix-inline-panel{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;align-items:end}.matrix-inline-panel h3,.matrix-inline-panel>textarea{grid-column:1/-1;margin:0;font-size:15px}.class-matrix .matrix-inline-panel label{display:grid;gap:6px;font-weight:600;align-self:stretch}.matrix-inline-panel input,.matrix-inline-panel select,.matrix-inline-panel textarea{width:100%;min-width:0;font-weight:400}.matrix-inline-panel button{justify-self:start}.class-matrix .matrix-picker{gap:8px;padding:12px}.class-matrix .matrix-picker label{padding:8px;border-radius:8px;background:var(--surface-input,#f5f8f6);font-size:12px;align-items:flex-start}.matrix-picker input[type=checkbox]{flex:0 0 16px;min-height:16px;margin:2px 0;accent-color:var(--color-primary,#10b981)}.assessment-composed-page>.assessment-page-tabs{background:var(--surface-input,#f1f5f4);border:1px solid var(--border-color-card,#dce9e3);box-shadow:inset 0 1px 3px #203b2d05;gap:4px}.assessment-composed-page>.assessment-page-tabs>.assessment-page-tab-btn[aria-selected=true]{background:var(--surface-card,#fff);color:var(--color-primary,#10b981);box-shadow:0 2px #203b2d12,0 2px 6px #203b2d08}@media(max-width:1000px){.matrix-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-filter-fields>label:last-child{grid-column:1/-1}.matrix-context-controls{width:100%}.matrix-rubric{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.class-matrix .matrix-heading{padding:14px}.matrix-filter-fields{grid-template-columns:minmax(0,1fr)}.matrix-filter-fields>label:last-child{grid-column:auto}.matrix-context-controls{align-items:stretch}.matrix-context-controls label{flex:1 1 140px;display:grid}.matrix-context-controls select,.matrix-context-controls input{width:100%;max-width:100%;min-width:0}.matrix-heading-copy{align-items:flex-start}.matrix-heading-copy .matrix-heading-icon{flex-basis:40px;height:40px}.class-matrix .matrix-heading h2{font-size:17px}.matrix-rubric{grid-template-columns:minmax(0,1fr)}.class-matrix .matrix-pending{flex-wrap:wrap}.matrix-pending>div{flex-basis:75%}.matrix-actionbar>.matrix-chrome-actions{margin-left:0;width:100%}.class-matrix .matrix-inline-panel{grid-template-columns:minmax(0,1fr)}}.matrix-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));box-sizing:border-box;background:#0f172a73;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:matrix-dialog-dim .18s ease-out}.class-matrix .matrix-dialog{width:720px;max-width:100%;max-height:calc(100dvh - 36px);display:flex;flex-direction:column;overflow:hidden;border-radius:22px;box-shadow:inset 0 1px #fff,0 5px color-mix(in srgb,var(--color-primary,#6c5ce7) 18%,#e2e8f0),0 24px 70px #0000002e;animation:matrix-dialog-spring .32s cubic-bezier(.18,.8,.3,1.15)}.matrix-dialog-header{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--border-color-card,#ded9ea);background:linear-gradient(115deg,color-mix(in srgb,var(--color-primary,#6c5ce7) 8%,var(--surface-card,#fff)),var(--surface-card,#fff));flex-shrink:0}.matrix-dialog-header>div{flex:1;min-width:0}.class-matrix .matrix-dialog-header h2{font-size:19px;line-height:1.3;font-weight:750}.class-matrix .matrix-dialog-header p{font-size:12px;color:var(--color-text-muted,#64748b);line-height:1.5;margin-top:4px;overflow-wrap:anywhere}.matrix-dialog-header>button{flex-shrink:0}.matrix-dialog-header .matrix-heading-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:var(--color-primary,#6c5ce7);background:var(--surface-card,#fff);box-shadow:inset 0 1px #fff,0 3px #0000000f;flex-shrink:0}.matrix-dialog-content{padding:18px;min-height:0;overflow:auto;overscroll-behavior:contain}.matrix-dialog .matrix-rubric{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 0 14px}.matrix-dialog .matrix-source-help{padding:0;font-size:12px;line-height:1.6;margin:8px 0 12px}.matrix-dialog .matrix-picker{max-height:none;padding:0;grid-template-columns:repeat(2,minmax(0,1fr));border:0}.matrix-dialog-picker-tools{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.matrix-dialog-picker-tools>label{min-width:0;flex:1;display:grid;gap:6px}.matrix-dialog-picker-tools input{width:100%;min-width:0}.class-matrix .matrix-dialog-note{display:grid;gap:8px;font-size:13px;font-weight:600}.matrix-dialog-note textarea{width:100%;min-height:150px;resize:vertical;max-height:45dvh}@keyframes matrix-dialog-spring{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes matrix-dialog-dim{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.matrix-dialog-backdrop{padding:12px}.class-matrix .matrix-dialog{max-height:calc(100dvh - 24px);border-radius:18px}.matrix-dialog-header,.matrix-dialog-content{padding:14px}.matrix-dialog .matrix-rubric,.matrix-dialog .matrix-picker{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.matrix-dialog-backdrop,.class-matrix .matrix-dialog{animation:none}}.class-matrix .matrix-scroll{--matrix-body-tint:color-mix(in srgb,var(--color-primary) 24%,transparent);--matrix-sticky-tint:color-mix(in srgb,var(--color-primary) 24%,var(--surface-card));background:var(--surface-card);border-color:var(--border-color-card);font-family:var(--font-family-body);color:var(--color-text-body)}.class-matrix .matrix-scroll thead th{background:var(--table-header-bg, var(--color-sidebar-gradient, var(--color-primary)))!important;color:var(--table-header-color, #ffffff)!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0, 0, 0, .1));text-align:center!important;vertical-align:middle!important;padding-right:38px}.class-matrix .matrix-scroll thead tr>:first-child,.class-matrix .matrix-scroll tbody tr>:first-child{text-align:left!important}.class-matrix .matrix-scroll thead th>span{color:var(--text-on-primary-muted,var(--text-on-primary,var(--color-text-on-primary)));padding-right:0}.class-matrix .matrix-scroll thead th>strong{font-weight:700}.class-matrix .matrix-scroll tbody td{background:var(--matrix-body-tint);color:var(--color-text-body);text-align:center!important}.class-matrix .matrix-scroll tbody tr>:first-child{background:var(--matrix-sticky-tint);color:var(--color-text-title);text-align:left!important}.class-matrix .matrix-scroll td.rating-GOOD{background:color-mix(in srgb,var(--color-success,#319368) 12%,var(--matrix-sticky-tint));box-shadow:inset 3px 0 0 var(--color-success,#319368)}.class-matrix .matrix-scroll td.rating-EMERGING{background:color-mix(in srgb,var(--color-warning,#d5a531) 12%,var(--matrix-sticky-tint));box-shadow:inset 3px 0 0 var(--color-warning,#d5a531)}.class-matrix .matrix-scroll td.rating-SUPPORT{background:color-mix(in srgb,var(--color-danger,#c56d57) 12%,var(--matrix-sticky-tint));box-shadow:inset 3px 0 0 var(--color-danger,#c56d57)}.class-matrix .matrix-scroll td.rating-INSUFFICIENT{background:color-mix(in srgb,var(--color-text-muted) 8%,var(--matrix-sticky-tint));box-shadow:inset 3px 0 0 var(--color-text-muted)}.class-matrix .matrix-scroll td :is(select,button):disabled{opacity:1;color:var(--color-text-muted);cursor:not-allowed}.class-matrix .matrix-scroll td button:not(:disabled){color:var(--color-text-body)}.class-matrix .matrix-scroll thead .matrix-criterion-info{position:absolute;right:8px;top:8px;display:grid;place-items:center;width:24px;min-height:24px;padding:3px;border:1px solid color-mix(in srgb,var(--text-on-primary,var(--color-text-inverse)) 45%,transparent);border-radius:50%;background:color-mix(in srgb,var(--text-on-primary,var(--color-text-inverse)) 12%,transparent);color:inherit;box-shadow:inset 0 1px #fff3;cursor:pointer}.class-matrix .matrix-scroll thead .matrix-criterion-info:focus-visible{outline:2px solid var(--text-on-primary,var(--color-text-inverse));outline-offset:2px}.matrix-dialog .matrix-inline-panel{display:block;padding:0;border:0;box-shadow:none;background:transparent}.matrix-dialog .matrix-inline-panel fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.matrix-dialog .matrix-inline-panel fieldset>label:nth-child(-n+2){grid-column:1/-1}.matrix-criterion-description{font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-text-body);margin-bottom:16px}.matrix-criterion-metadata{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}.matrix-criterion-metadata>div{padding:12px;border-radius:10px;background:color-mix(in srgb,var(--color-primary) 7%,var(--surface-card));min-width:0}.matrix-criterion-metadata dt{font-size:11px;font-weight:600;color:var(--color-text-muted);margin-bottom:5px}.matrix-criterion-metadata dd{margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere;color:var(--color-text-title)}.matrix-criterion-source{color:var(--color-primary);font-size:13px;font-weight:600}@media(max-width:640px){.matrix-dialog .matrix-inline-panel fieldset,.matrix-criterion-metadata{grid-template-columns:minmax(0,1fr)}}.class-matrix .matrix-scroll thead tr>th:last-child>button{background:color-mix(in srgb,var(--text-on-primary,var(--color-text-inverse)) 12%,transparent);color:var(--text-on-primary,var(--color-text-on-primary,var(--color-text-inverse)));border-color:color-mix(in srgb,var(--text-on-primary,var(--color-text-inverse)) 45%,transparent)}.class-matrix .matrix-scroll{--matrix-body-tint:color-mix(in srgb,var(--color-primary) 10%,transparent);--matrix-sticky-tint:color-mix(in srgb,var(--color-primary) 10%,var(--surface-card))}.class-matrix .matrix-scroll tbody tr:nth-child(odd)>td{background:var(--surface-card,#fff)}.class-matrix .matrix-scroll tbody tr:nth-child(2n)>td{background:var(--matrix-body-tint)}.class-matrix .matrix-scroll tbody tr:nth-child(odd)>th{background:var(--surface-card,#fff)}.class-matrix .matrix-scroll tbody tr:nth-child(2n)>th{background:var(--matrix-sticky-tint)}.class-matrix .matrix-scroll tbody .matrix-child-code{font-size:11px;color:var(--color-text-muted);font-weight:400;margin-top:5px;overflow-wrap:anywhere}.class-matrix .matrix-scroll td[class*=rating-]{border-bottom-width:2px}.assessment-composed-page>.assessment-page-tabs .assessment-policy-tab{margin-left:auto}.assessment-composed-page>.assessment-page-tabs{width:100%;box-sizing:border-box;display:flex}@media(max-width:760px){.assessment-composed-page>.assessment-page-tabs .assessment-policy-tab{margin-left:0}}.class-matrix.matrix-unified-card{display:flex;flex-direction:column;gap:0;border:1px solid var(--border-color-card, #ded9ea);border-radius:var(--radius-xl, 16px);background:var(--surface-card, #fff);box-shadow:inset 0 1px #ffffffc9,0 3px color-mix(in srgb,var(--color-primary, #6c5ce7) 10%,#e5e7eb),0 8px 22px #0000000a;overflow:visible;position:relative;width:100%;box-sizing:border-box}.matrix-unified-card .matrix-heading{border:0;border-radius:var(--radius-xl, 16px) var(--radius-xl, 16px) 0 0;box-shadow:none;border-bottom:1px solid var(--border-color-card, #ded9ea);padding:14px 18px;gap:14px}.matrix-unified-card .matrix-filters{border:0;border-radius:0;box-shadow:none;border-bottom:1px solid var(--border-color-card, #ded9ea);padding:12px 18px;gap:12px;background:color-mix(in srgb,var(--color-primary, #6c5ce7) 3%,var(--surface-card, #fff))}.matrix-unified-card .matrix-scroll{border-left:0;border-right:0;border-radius:0;border-top:0;border-bottom:0;box-shadow:none;width:100%;max-height:62vh}.matrix-unified-card .matrix-actionbar{border:0;border-radius:0 0 var(--radius-xl, 16px) var(--radius-xl, 16px);box-shadow:0 -4px 14px #0000000f;border-top:1px solid var(--border-color-card, #ded9ea);padding:12px 18px;background:var(--surface-card, #fff);position:sticky;bottom:0;z-index:15}.class-matrix .btn-matrix-picker-prominent,.btn-matrix-picker-prominent{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:700;background:var(--primary-surface, var(--color-primary, #6c5ce7))!important;color:var(--text-on-primary, #ffffff)!important;border:1px solid transparent!important;box-shadow:inset 0 1px #ffffff59,0 3px color-mix(in srgb,var(--primary-surface, var(--color-primary, #6c5ce7)) 70%,#000),0 4px 8px #0000001f;cursor:pointer;transition:transform .08s ease,filter .1s ease}.class-matrix .btn-matrix-picker-prominent:hover:not(:disabled),.btn-matrix-picker-prominent:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);background:var(--primary-surface-hover, color-mix(in srgb, var(--primary-surface, var(--color-primary, #6c5ce7)) 90%, #000))!important;color:var(--text-on-primary, #ffffff)!important}.class-matrix .btn-matrix-picker-prominent:active:not(:disabled),.btn-matrix-picker-prominent:active:not(:disabled){transform:translateY(2px);background:var(--primary-surface-pressed, color-mix(in srgb, var(--primary-surface, var(--color-primary, #6c5ce7)) 80%, #000))!important;color:var(--text-on-primary, #ffffff)!important;box-shadow:inset 0 1px #fff3,0 1px color-mix(in srgb,var(--primary-surface, var(--color-primary, #6c5ce7)) 70%,#000)}.class-matrix .btn-matrix-picker-prominent:focus-visible,.btn-matrix-picker-prominent:focus-visible{outline:2px solid var(--border-focus, var(--color-primary, #6c5ce7));outline-offset:3px}.class-matrix .btn-matrix-picker-prominent:disabled,.btn-matrix-picker-prominent:disabled{opacity:.55;cursor:not-allowed;transform:none;filter:none}.btn-matrix-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;padding:7px 12px;font-size:13px;font-weight:600;background:var(--surface-card, #fff);border:1px solid var(--border-color-card, #ded9ea);color:var(--color-text-body, inherit);box-shadow:inset 0 1px #fff9,0 2px #0000000d;cursor:pointer}.btn-matrix-secondary:hover:not(:disabled){border-color:var(--color-primary, #6c5ce7);color:var(--color-primary, #6c5ce7)}.class-matrix .matrix-scroll thead th.matrix-col-header{padding:8px 10px!important;min-width:170px;max-width:220px;min-height:46px}.matrix-header-cell-inner{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;box-sizing:border-box}.matrix-criterion-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.35;font-weight:700;font-size:13px;word-break:break-word;text-align:center;color:inherit}.class-matrix .matrix-scroll thead .matrix-criterion-info{position:static;flex-shrink:0;display:grid;place-items:center;width:22px;height:22px;min-height:22px;padding:2px;border:1px solid color-mix(in srgb,var(--text-on-primary, var(--color-text-inverse)) 45%,transparent);border-radius:50%;background:color-mix(in srgb,var(--text-on-primary, var(--color-text-inverse)) 12%,transparent);color:inherit;box-shadow:inset 0 1px #fff3;cursor:pointer}.class-matrix .matrix-scroll thead .matrix-criterion-info:hover:not(:disabled){background:color-mix(in srgb,var(--text-on-primary, var(--color-text-inverse)) 24%,transparent)}.class-matrix .matrix-scroll thead .matrix-criterion-info:focus-visible{outline:2px solid var(--text-on-primary, var(--color-text-inverse));outline-offset:2px}.matrix-dialog-picker-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-color-card, #ded9ea)}.matrix-picker-item--checked{background:color-mix(in srgb,var(--color-primary, #6c5ce7) 12%,var(--surface-card, #fff))!important;border:1px solid color-mix(in srgb,var(--color-primary, #6c5ce7) 35%,transparent)!important}.class-rounds .measurement-round-tools{display:flex;flex-wrap:wrap;align-items:end;gap:14px;padding:16px}.class-rounds .measurement-round-tools label{display:grid;gap:7px;min-width:0;flex:1}.class-rounds .measurement-round-tools select{width:100%}.measurement-round-scroll{max-width:100%;overflow:auto;max-height:65vh;border:1px solid var(--border-color-card);border-radius:16px;background:var(--surface-card)}.class-rounds .measurement-round-scroll table{min-width:850px;width:100%;font-family:var(--font-family-body)}.class-rounds .measurement-round-scroll th,.class-rounds .measurement-round-scroll td{min-width:150px;border-color:var(--border-color-card);text-align:center!important}.class-rounds .measurement-round-scroll thead th{background:var(--table-header-bg, var(--color-sidebar-gradient, var(--color-primary)))!important;color:var(--table-header-color, #ffffff)!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0,0,0,.1));text-align:center!important;vertical-align:middle!important;position:sticky;top:0}.class-rounds .measurement-round-scroll tr>:first-child{min-width:180px;position:sticky;left:0;background:var(--surface-card);color:var(--color-text-title);text-align:left!important}.class-rounds .measurement-round-scroll thead tr>:first-child{background:var(--table-header-bg, var(--color-sidebar-gradient, var(--color-primary)))!important;color:var(--table-header-color, #ffffff)!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;text-align:left!important;vertical-align:middle!important;z-index:3}.measurement-round-scroll th small{display:block;font-size:11px;font-weight:400;color:var(--color-text-muted);margin-top:5px}.class-rounds .measurement-round-scroll td input,.class-rounds .measurement-round-scroll td select{width:100%;border:1px solid var(--border-color-card);background:var(--surface-card);min-height:40px}.class-rounds .measurement-round-scroll tr:nth-child(2n)>td,.class-rounds .measurement-round-scroll tr:nth-child(2n)>th{background:color-mix(in srgb,var(--color-primary) 8%,var(--surface-card))}.measurement-round-summary{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:13px}.measurement-round-summary small{color:var(--color-text-muted)}.measurement-chart{margin:0 0 18px}.measurement-chart svg{width:100%;height:auto;max-height:280px;color:var(--color-text-muted)}.measurement-chart svg text{font-size:11px;fill:currentColor}.measurement-chart figcaption{font-weight:700;font-size:14px;margin-bottom:8px}.measurement-chart small{font-size:11px;color:var(--color-text-muted)}.measurement-history-item{padding:14px;border:1px solid var(--border-color-card);border-radius:12px;margin-top:12px;font-size:13px;line-height:1.6}.class-rounds .matrix-dialog-content>p{line-height:1.7;margin-bottom:12px}.class-rounds .matrix-actionbar{flex-wrap:wrap}@media(max-width:640px){.class-rounds .measurement-round-tools{display:grid;grid-template-columns:minmax(0,1fr)}.measurement-round-tools input{width:100%}}.measurement-datetime-controls{display:flex;gap:8px;min-width:0;align-items:center}.measurement-datetime-controls>div{flex:1;min-width:0}.measurement-datetime-controls>input[type=time]{width:120px;min-width:90px}.class-rounds .measurement-bulk-posture{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:12px 16px;min-width:0}.measurement-bulk-posture label{display:grid;gap:6px;font-size:13px;min-width:0}.measurement-bulk-posture small{flex:1 1 240px;align-self:center;color:var(--color-text-muted);line-height:1.5}.class-rounds .measurement-savebar{position:fixed;bottom:max(8px,env(safe-area-inset-bottom));z-index:40;box-sizing:border-box;margin:0;max-width:100%;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid var(--border-color-card);border-radius:16px;background:var(--surface-card);box-shadow:0 -5px 22px color-mix(in srgb,var(--color-primary) 14%,transparent),var(--shadow-soft-raised,0 4px 12px #0002)}.measurement-savebar>span{font-size:13px;overflow-wrap:anywhere;flex:1 1 220px;min-width:0}.measurement-savebar .measurement-correction-reason{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;flex-basis:100%;min-width:0;font-size:13px}.measurement-correction-reason input{width:100%;min-width:0;box-sizing:border-box}.measurement-save-pending{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex-basis:100%;font-size:13px;min-width:0}.measurement-save-pending span{flex:1 1 220px;overflow-wrap:anywhere}@media(max-width:640px){.class-rounds .measurement-savebar{padding:10px;gap:8px;border-radius:12px}.measurement-savebar>button,.measurement-save-pending>button{width:100%}.measurement-savebar .measurement-correction-reason{grid-template-columns:minmax(0,1fr);gap:5px}.measurement-bulk-posture label{flex:1 1 130px}.measurement-bulk-posture button{flex:1 1 150px}.measurement-bulk-posture select{width:100%;min-width:0}}.class-rounds .measurement-round-scroll thead select{margin-top:8px;display:block;width:100%;min-width:150px;color:var(--color-text-title);background:var(--surface-card)}.measurement-class-results{margin-top:20px;padding:16px;border-radius:16px;background:var(--surface-card);border:1px solid var(--border-color-card);min-width:0}.measurement-class-results p,.measurement-class-results small{font-size:12px;color:var(--color-text-muted)}.measurement-results-scroll{overflow:auto;max-height:50vh;max-width:100%;margin:12px 0;border:1px solid var(--border-color-card);border-radius:12px}.measurement-results-scroll table{min-width:600px;width:100%}.measurement-results-scroll th,.measurement-results-scroll td{min-width:160px;padding:10px;border:1px solid var(--border-color-card)}.measurement-results-scroll th:first-child{position:sticky;left:0;background:var(--surface-card);z-index:2}.measurement-results-scroll thead th{position:sticky;top:0;background:var(--surface-card);z-index:3}.measurement-results-scroll thead th:first-child{z-index:4}.measurement-results-scroll small{display:block}.measurement-results-scroll button{white-space:normal;text-align:left}.class-rounds .measurement-results-scroll thead th{background:var(--table-header-bg, var(--color-sidebar-gradient, var(--color-primary)))!important;color:var(--table-header-color,#fff)!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0,0,0,.1));text-align:center!important;vertical-align:middle!important}.class-rounds .measurement-results-scroll tr>:first-child{background:var(--surface-card);color:var(--color-text-title);text-align:left!important}.class-rounds .measurement-results-scroll thead tr>:first-child{background:var(--table-header-bg, var(--color-sidebar-gradient, var(--color-primary)))!important;color:var(--table-header-color,#fff)!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;text-align:left!important;vertical-align:middle!important}.class-rounds .measurement-results-scroll td{text-align:center!important}.class-rounds .measurement-class-results h3{font-size:16px;color:var(--color-text-title)}.class-rounds .measurement-class-results button{padding:8px 12px;border:1px solid var(--border-color-card);background:var(--surface-card);color:var(--color-text-title);border-radius:10px;box-shadow:var(--shadow-soft-raised,0 2px 0 #0001)}.class-rounds{gap:18px}.class-rounds .measurement-title{display:flex;align-items:center;gap:12px;min-width:0}.class-rounds .measurement-title>div{min-width:0}.class-rounds .measurement-title h2{font-size:21px;line-height:1.3}.class-rounds .measurement-title p{font-size:13px;margin-top:5px;color:var(--color-text-muted)}.measurement-raised-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border-radius:15px;color:var(--color-primary);background:var(--surface-card);box-shadow:inset 0 1px #fff8,0 4px color-mix(in srgb,var(--color-primary) 17%,var(--border-color-card)),0 6px 15px #0001}.class-rounds button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:13px;font-weight:600;min-height:40px;padding:9px 13px;border:1px solid var(--border-color-card);background:var(--surface-card);color:var(--color-text-title);border-radius:12px;box-shadow:inset 0 1px #fff8,0 3px color-mix(in srgb,var(--border-color-card) 80%,transparent),0 4px 9px #0001;transition:transform .15s,box-shadow .15s,background .15s}.class-rounds button:hover:not(:disabled){transform:translateY(-1px);background:color-mix(in srgb,var(--color-primary) 7%,var(--surface-card))}.class-rounds button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 2px #0001}.class-rounds button:focus-visible,.class-rounds input:focus-visible,.class-rounds select:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 40%,transparent);outline-offset:3px}.class-rounds button:disabled{opacity:1;box-shadow:none;background:var(--surface-card);color:var(--color-text-muted);border-color:var(--border-color-card);cursor:not-allowed}.class-rounds button.matrix-primary{color:var(--text-on-primary,#fff);background:var(--color-primary);border-color:transparent;box-shadow:0 3px color-mix(in srgb,var(--color-primary) 70%,#000),0 4px 12px #0001}.class-rounds .measurement-round-tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1.15fr) auto auto;gap:12px;padding:18px;align-items:end}.class-rounds .measurement-round-tools label{font-size:12px;font-weight:600;color:var(--color-text-muted)}.class-rounds .measurement-round-tools select,.class-rounds .measurement-round-tools input{font-size:13px;color:var(--color-text-title)}.measurement-round-summary{padding:0 4px;align-items:center}.measurement-round-summary>span{font-weight:650;color:var(--color-text-title)}.measurement-empty-hint{padding:12px 16px;border:1px dashed var(--border-color-card);border-radius:12px;background:var(--surface-card);font-size:13px;color:var(--color-text-muted)}.class-rounds>p[role=alert],.measurement-class-results>p[role=alert]{padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--color-danger,#b42318) 8%,var(--surface-card));font-size:13px}.class-rounds>p[role=status],.measurement-class-results>p[role=status]{padding:12px 16px;font-size:13px;color:var(--color-text-muted)}.class-rounds .measurement-class-results{padding:18px;margin-top:4px;border-radius:20px;box-shadow:var(--shadow-soft-raised,0 4px 14px #0001)}.measurement-results-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.measurement-results-heading .measurement-title h3{font-size:17px;margin:0}.measurement-results-heading p{margin-top:5px}.measurement-results-scroll{border-radius:16px;box-shadow:0 3px 12px #0001}.class-rounds .measurement-results-scroll th,.class-rounds .measurement-results-scroll td{padding:13px 14px;border-color:var(--border-color-card);vertical-align:middle}.class-rounds .measurement-results-scroll thead button{width:100%;min-width:170px;justify-content:flex-start;background:color-mix(in srgb,var(--surface-card) 94%,transparent);color:var(--color-text-title);text-align:left}.class-rounds .measurement-results-scroll thead button small{font-size:11px;font-weight:400;color:var(--color-text-muted);margin-top:3px}.class-rounds .measurement-results-scroll tbody tr:nth-child(2n)>*{background:color-mix(in srgb,var(--color-primary) 5%,var(--surface-card))}.class-rounds .measurement-results-scroll tbody th{font-weight:600}.class-rounds .measurement-results-scroll tbody th small{margin-top:4px;font-size:11px}.measurement-metric{display:inline-flex;align-items:baseline;gap:6px;min-width:72px;line-height:1.7}.measurement-metric strong{font-size:15px;font-variant-numeric:tabular-nums;font-weight:650}.measurement-metric small{font-size:11px}.measurement-results-paging{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:6px}.measurement-results-paging>span{font-size:12px;color:var(--color-text-muted)}@media(max-width:1050px){.class-rounds .measurement-round-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.class-rounds .measurement-round-tools>button{width:100%}}@media(max-width:640px){.class-rounds .measurement-round-tools{grid-template-columns:minmax(0,1fr);padding:14px}.class-rounds .matrix-heading{gap:16px}.measurement-results-heading{align-items:flex-start;flex-direction:column}.measurement-results-heading>button{align-self:flex-end}.class-rounds .measurement-class-results{padding:14px}.measurement-results-paging{justify-content:space-between;gap:8px}.measurement-results-paging button{font-size:12px;padding:8px}.class-rounds .measurement-title h2{font-size:18px}.measurement-raised-icon{flex-basis:40px;height:40px}}@media(prefers-reduced-motion:reduce){.class-rounds button{transition:none}.class-rounds button:hover:not(:disabled),.class-rounds button:active:not(:disabled){transform:none}}.class-rounds .parent-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;display:flex;align-items:center;justify-content:center;padding:18px;background:#173a2e42;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.class-rounds .parent-modal-card{width:620px;max-width:100%;max-height:calc(100dvh - 36px);overflow:auto;padding:20px;background:var(--surface-card);color:var(--color-text-body);border:1px solid var(--border-color-card);border-radius:20px;box-shadow:var(--shadow-soft-raised,0 16px 45px #0003);font-family:var(--font-family-body)}.class-rounds .parent-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.class-rounds .parent-modal-header h2{font-size:18px}.class-rounds .parent-modal-subtitle{font-size:12px;line-height:1.6;color:var(--color-text-muted)}.measurement-save-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.measurement-save-actions>small{flex-basis:100%;text-align:right;color:var(--color-text-muted);font-size:11px}@media(max-width:640px){.measurement-save-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.measurement-save-actions>small{grid-column:1/-1}.measurement-save-actions>button{width:100%;padding:8px;font-size:12px}}.class-rounds button.matrix-primary:hover:not(:disabled),.measurement-publication button.matrix-primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 88%,#000);color:var(--text-on-primary,#fff)}.class-rounds button.matrix-primary:active:not(:disabled),.measurement-publication button.matrix-primary:active:not(:disabled){background:color-mix(in srgb,var(--color-primary) 78%,#000);color:var(--text-on-primary,#fff)}.measurement-publication{display:grid;gap:18px;color:var(--color-text-title)}.measurement-publication-status{padding:16px;border:1px solid var(--border-color-card);border-radius:16px;background:var(--surface-card);box-shadow:var(--shadow-soft-raised,0 3px 10px #0001)}.measurement-publication p{line-height:1.6}.measurement-publication label{display:grid;gap:8px}.measurement-publication textarea{min-height:90px;padding:12px;border-radius:12px;border:1px solid var(--border-color-card);background:var(--surface-card);color:var(--color-text-title);font:inherit}.measurement-publication-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}.measurement-publication button{padding:10px 16px;border-radius:12px;border:1px solid var(--border-color-card);background:var(--surface-card);color:var(--color-text-title);box-shadow:var(--shadow-soft-raised,0 3px 0 #0001);font:inherit;cursor:pointer}.measurement-publication button:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 8%,var(--surface-card));color:var(--color-text-title)}.measurement-publication button.matrix-primary{background:var(--color-primary);color:var(--text-on-primary,#fff)}.measurement-publication button.measurement-danger{background:var(--surface-card);color:var(--color-danger,#b42318)}.measurement-publication button.measurement-danger:hover:not(:disabled),.measurement-publication button.measurement-danger:active:not(:disabled){background:color-mix(in srgb,var(--color-danger,#b42318) 10%,var(--surface-card));color:var(--color-danger,#b42318)}.class-rounds button.matrix-primary:disabled,.measurement-publication button:disabled{background:var(--surface-card);color:var(--color-text-muted);opacity:1;box-shadow:none;cursor:not-allowed}.measurement-publication button:focus-visible,.measurement-publication textarea:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}@media(max-width:640px){.measurement-publication-actions>button{flex:1 1 140px}}.daily-review-queue{padding:16px;margin-bottom:16px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff}.daily-review-queue label{display:inline-flex;gap:8px;margin:8px}.daily-review-queue button{margin:6px;padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.daily-review-queue h3{margin:0 0 8px}.daily-review-queue [role=alert]{color:#b91c1c}.class-learning-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 14px);box-shadow:var(--shadow-subtle, 0 1px 3px rgba(0, 0, 0, .05));margin-bottom:var(--space-5, 20px);padding:18px 20px;display:flex;flex-direction:column;gap:var(--space-4, 16px);transition:border-color var(--transition-fast, .15s ease)}.class-learning-card:focus-within{border-color:var(--border-color-focus, var(--color-primary, #6c5ce7))}.class-learning-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.class-learning-title-area{display:flex;align-items:center;gap:12px}.class-learning-icon{width:42px;height:42px;border-radius:var(--radius-sm, 10px);background:var(--color-primary-light, #f0edfe);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-subtle, none)}.class-learning-title{font-size:1.15rem;font-weight:700;color:var(--color-text-title, #27253a);margin:0;line-height:1.3}.class-learning-context,.class-learning-subtitle{font-size:.85rem;color:var(--color-text-muted, #7e7a94);margin:3px 0 0}.class-learning-title-group{display:flex;flex-direction:column;gap:8px}.class-learning-title-row{display:flex;align-items:center;gap:12px}.class-learning-badges-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.class-learning-badge{display:inline-flex;align-items:center;font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:var(--radius-full, 9999px);background:var(--surface-input, #f1f5f9);color:var(--color-text-body, #475569);border:1px solid var(--border-color-card, #e2e8f0)}.class-learning-badge.has-plan,.class-learning-badge-class{background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);border-color:var(--color-primary-light, #dbeafe)}.class-learning-badge-saved{background:var(--pastel-green-bg, #dcfce7);color:var(--pastel-green-text, #15803d);border-color:var(--pastel-green-border, #bbf7d0)}.class-learning-badge-empty,.class-learning-badge-date{background:var(--surface-input, #f1f5f9);color:var(--color-text-muted, #7e7a94);border-color:var(--border-color-card, #e2e8f0)}.class-learning-badge-readonly{background:var(--pastel-yellow-bg, #fef3c7);color:var(--pastel-yellow-text, #b45309);border-color:var(--pastel-yellow-border, #fde68a)}.class-learning-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius-sm, 10px);font-size:.88rem;line-height:1.45}.class-learning-alert-error{background:var(--pastel-pink-bg, #ffe4e6);border:1px solid var(--pastel-pink-border, #fecdd3);color:var(--pastel-pink-text, #9f1239)}.class-learning-alert-warning{background:var(--pastel-yellow-bg, #fef3c7);border:1px solid var(--pastel-yellow-border, #fde68a);color:var(--pastel-yellow-text, #b45309)}.class-learning-alert-info{background:var(--color-primary-light, #f0edfe);border:1px solid var(--color-primary, #6c5ce7);color:var(--color-primary-dark, #3f2e96)}.class-learning-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:768px){.class-learning-grid{grid-template-columns:1fr}}.class-learning-field{display:flex;flex-direction:column;gap:6px}.class-learning-field.full-width{grid-column:1 / -1}.class-learning-label{display:flex;justify-content:space-between;align-items:center;font-size:.86rem;font-weight:600;color:var(--color-text-title, #27253a)}.class-learning-input,.class-learning-textarea{width:100%;border:1px solid var(--border-color-card, #cbd5e1);border-radius:var(--radius-sm, 10px);padding:9px 13px;font-size:.9rem;font-family:inherit;color:var(--color-text-title, #27253a);background:var(--surface-input, #f6f5fa);box-sizing:border-box;transition:all var(--transition-fast, .15s ease)}.class-learning-input:focus,.class-learning-textarea:focus{outline:none;background:var(--surface-card, #ffffff);border-color:var(--border-color-focus, var(--color-primary, #6c5ce7));box-shadow:0 0 0 3px var(--color-primary-light, rgba(108, 92, 231, .15))}.class-learning-input:disabled,.class-learning-textarea:disabled{background:var(--surface-input, #f8fafc);color:var(--color-text-muted, #94a3b8);cursor:not-allowed;opacity:.75}.class-learning-helper{font-size:.78rem;color:var(--color-text-muted, #7e7a94);font-weight:400}.class-learning-selected-section,.class-learning-manual-section{display:flex;flex-direction:column;gap:12px;margin-top:6px}.class-learning-section-title{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:700;color:var(--color-text-title, #27253a)}.class-learning-section-title svg{color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.class-learning-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px;text-align:center;background:var(--surface-input, #f6f5fa);border:1.5px dashed var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 12px);color:var(--color-text-muted, #7e7a94);gap:6px}.class-learning-empty p{margin:0;font-size:.9rem;font-weight:500}.class-learning-empty-hint{font-size:.82rem!important;color:var(--color-text-muted, #7e7a94);font-weight:400!important}.class-learning-lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.class-learning-lesson-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 12px);padding:14px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-subtle, none);transition:all var(--transition-fast, .15s ease)}.class-learning-lesson-card:hover{border-color:var(--color-primary, #6c5ce7);box-shadow:0 4px 12px #0000000d}.class-learning-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.class-learning-card-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.class-learning-picked-section{border-top:1px dashed var(--border-color-card, #e2e8f0);padding-top:14px;display:flex;flex-direction:column;gap:12px}.class-learning-picked-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.class-learning-picked-title{font-size:.94rem;font-weight:700;color:var(--color-text-title, #27253a);display:flex;align-items:center;gap:8px}.class-learning-btn-pick{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm, 10px);font-size:.85rem;font-weight:600;background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);border:1px solid var(--color-primary-light, #dbeafe);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.class-learning-btn-pick:hover:not(:disabled){background:var(--color-primary, #6c5ce7);color:var(--color-text-on-primary, #ffffff);border-color:var(--color-primary, #6c5ce7)}.class-learning-btn-pick:disabled{opacity:.6;cursor:not-allowed}.class-learning-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full, 9999px);background:var(--color-primary, #6c5ce7);color:var(--color-text-on-primary, #ffffff);font-size:11px;font-weight:700}.class-learning-picked-list{display:flex;flex-direction:column;gap:10px}.class-learning-picked-card{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 16px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 10px);gap:12px;box-shadow:var(--shadow-subtle, none)}.class-learning-card-info{display:flex;flex-direction:column;gap:4px;flex:1}.class-learning-card-title{font-weight:700;font-size:.92rem;color:var(--color-text-title, #27253a)}.class-learning-card-category{font-size:.8rem;color:var(--color-text-muted, #7e7a94);margin:0}.class-learning-card-meta{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--color-text-muted, #7e7a94);flex-wrap:wrap}.class-learning-card-section{font-size:.82rem;color:var(--color-text-body, #4a455e);margin-top:6px;background:var(--surface-input, #f8fafc);padding:8px 12px;border-radius:var(--radius-xs, 6px)}.class-learning-card-section strong{color:var(--color-text-title, #27253a)}.class-learning-card-section ul,.class-learning-card-section ol{margin:4px 0 0 16px;padding:0}.class-learning-tag{display:inline-block;padding:2px 7px;border-radius:var(--radius-xs, 6px);font-size:.72rem;font-weight:600}.class-learning-tag-builtin{background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);border:1px solid var(--color-primary-light, #dbeafe)}.class-learning-tag-school{background:var(--pastel-pink-bg, #ffe4e6);color:var(--pastel-pink-text, #9f1239);border:1px solid var(--pastel-pink-border, #fecdd3)}.class-learning-btn-remove{background:transparent;border:none;color:var(--color-text-muted, #94a3b8);cursor:pointer;padding:5px;border-radius:var(--radius-xs, 6px);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast, .15s ease)}.class-learning-btn-remove:hover{color:var(--pastel-pink-text, #dc2626);background:var(--pastel-pink-bg, #fee2e2)}.class-learning-actions,.class-learning-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-color-card, #e2e8f0);padding-top:16px;flex-wrap:wrap;gap:12px}.class-learning-scope-note,.class-learning-version-tag{font-size:.82rem;color:var(--color-text-muted, #7e7a94);font-weight:500}.class-learning-btn-save{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;background:var(--color-primary, #6c5ce7);color:var(--color-text-on-primary, #ffffff);border:none;border-radius:var(--radius-sm, 10px);font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-raised-sm, 0 2px 4px rgba(0, 0, 0, .08));transition:all var(--transition-fast, .15s ease)}.class-learning-btn-save:hover:not(:disabled){background:var(--color-primary-hover, #5848c2);transform:translateY(-1px);box-shadow:var(--shadow-raised-hover, 0 4px 10px rgba(0, 0, 0, .12))}.class-learning-btn-save:active:not(:disabled){background:var(--color-primary-active, #4a3cb0);transform:translateY(0)}.class-learning-btn-save:disabled{background:var(--surface-input, #e2e8f0);color:var(--color-text-muted, #94a3b8);cursor:not-allowed;box-shadow:none}.class-learning-btn-retry,.class-learning-btn-reload{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-xs, 6px);font-size:.82rem;font-weight:600;cursor:pointer;margin-top:8px;background:var(--surface-card, #ffffff);border:1px solid currentColor}.class-learning-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:modalFadeIn .18s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.class-learning-modal{background:var(--surface-card, #ffffff);border-radius:var(--radius-md, 16px);box-shadow:var(--shadow-floating, 0 20px 25px -5px rgba(0, 0, 0, .1));border:1px solid var(--border-color-card, #e2e8f0);width:100%;max-width:760px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;animation:modalPop .18s ease-out}.class-learning-modal.class-learning-modal-large{max-width:860px}@keyframes modalPop{0%{transform:scale(.97);opacity:0}to{transform:scale(1);opacity:1}}.class-learning-modal-header{padding:16px 22px;border-bottom:1px solid var(--border-color-card, #e2e8f0);display:flex;justify-content:space-between;align-items:center;background:var(--surface-card, #ffffff)}.class-learning-modal-title{font-size:1.15rem;font-weight:700;color:var(--color-text-title, #27253a);margin:0}.class-learning-modal-subtitle{font-size:.84rem;color:var(--color-text-muted, #7e7a94);margin:4px 0 0}.class-learning-modal-body{padding:20px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:var(--surface-card, #ffffff)}.class-learning-modal-footer{padding:14px 22px;border-top:1px solid var(--border-color-card, #e2e8f0);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface-input, #f8fafc)}.class-learning-filters-age{display:flex;flex-direction:column;gap:8px}.class-learning-filters-label{font-size:.85rem;font-weight:600;color:var(--color-text-title, #27253a)}.class-learning-pill-group{display:flex;flex-wrap:wrap;gap:8px}.class-learning-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:var(--radius-full, 9999px);font-size:.82rem;font-weight:500;background:var(--surface-input, #f1f5f9);color:var(--color-text-body, #4a455e);border:1px solid var(--border-color-card, #e2e8f0);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.class-learning-pill:hover{background:var(--surface-hover, #f8f7fd);border-color:var(--color-primary-light, #dbeafe);color:var(--color-text-title, #27253a)}.class-learning-pill.active{background:var(--color-primary-light, #f0edfe);border-color:var(--color-primary, #6c5ce7);color:var(--color-primary-dark, #3f2e96);font-weight:700;box-shadow:0 1px 3px #0000000d}.class-learning-filters-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.class-learning-search-box{position:relative;display:flex;align-items:center;flex:1;min-width:240px}.class-learning-search-icon{position:absolute;left:12px;color:var(--color-text-muted, #7e7a94);pointer-events:none}.class-learning-search-input{width:100%;padding:8px 32px 8px 36px;border-radius:var(--radius-sm, 10px);border:1px solid var(--border-color-card, #cbd5e1);background:var(--surface-input, #f6f5fa);color:var(--color-text-title, #27253a);font-size:.88rem;font-family:inherit;transition:all var(--transition-fast, .15s ease)}.class-learning-search-input:focus{outline:none;background:var(--surface-card, #ffffff);border-color:var(--border-color-focus, var(--color-primary, #6c5ce7));box-shadow:0 0 0 3px var(--color-primary-light, rgba(108, 92, 231, .15))}.class-learning-search-clear{position:absolute;right:10px;background:transparent;border:none;color:var(--color-text-muted, #94a3b8);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--radius-full, 9999px)}.class-learning-search-clear:hover{color:var(--color-text-title, #27253a)}.class-learning-domain-box{min-width:180px}.class-learning-domain-select{width:100%;padding:8px 12px;border-radius:var(--radius-sm, 10px);border:1px solid var(--border-color-card, #cbd5e1);background:var(--surface-input, #f6f5fa);color:var(--color-text-title, #27253a);font-size:.88rem;font-family:inherit;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.class-learning-domain-select:focus{outline:none;background:var(--surface-card, #ffffff);border-color:var(--border-color-focus, var(--color-primary, #6c5ce7));box-shadow:0 0 0 3px var(--color-primary-light, rgba(108, 92, 231, .15))}.class-learning-btn-add-school-lesson{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm, 10px);font-size:.86rem;font-weight:600;border:1px dashed var(--color-primary, #6c5ce7);background:var(--color-primary-subtle, #faf8ff);color:var(--color-primary-dark, #3f2e96);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.class-learning-btn-add-school-lesson:hover{background:var(--color-primary-light, #f0edfe);border-style:solid}.class-learning-select{width:100%;border:1px solid var(--border-color-card, #cbd5e1);border-radius:var(--radius-sm, 10px);padding:8px 12px;font-size:.88rem;background:var(--surface-input, #f6f5fa);color:var(--color-text-title, #27253a)}.class-learning-catalog-list{display:flex;flex-direction:column;gap:12px;min-height:220px}.class-learning-catalog-item{border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 12px);padding:14px 18px;background:var(--surface-card, #ffffff);display:flex;flex-direction:column;gap:10px;transition:all var(--transition-fast, .15s ease);box-shadow:var(--shadow-subtle, none)}.class-learning-catalog-item:hover{border-color:var(--color-primary-light, #cbd5e1);box-shadow:0 4px 12px #0000000a}.class-learning-catalog-item.selected{border-color:var(--color-primary, #6c5ce7);background:var(--color-primary-subtle, #faf8ff)}.class-learning-catalog-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.class-learning-catalog-item-info{display:flex;flex-direction:column;gap:4px;flex:1}.class-learning-catalog-item-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:2px}.class-learning-badge-builtin{background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);border-color:var(--color-primary-light, #dbeafe)}.class-learning-badge-custom{background:var(--pastel-purple-bg, #ede9fe);color:var(--pastel-purple-text, #5b21b6);border-color:var(--pastel-purple-border, #ddd6fe)}.class-learning-badge-domain{background:var(--pastel-blue-bg, #e0f2fe);color:var(--pastel-blue-text, #0369a1);border-color:var(--pastel-blue-border, #bae6fd)}.class-learning-badge-age{background:var(--pastel-yellow-bg, #fef3c7);color:var(--pastel-yellow-text, #b45309);border-color:var(--pastel-yellow-border, #fde68a)}.class-learning-catalog-item-title{font-size:.98rem;font-weight:700;color:var(--color-text-title, #27253a);margin:0;line-height:1.35}.class-learning-catalog-item-meta{font-size:.82rem;color:var(--color-text-muted, #7e7a94);margin:0}.class-learning-catalog-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.class-learning-btn-select-lesson{padding:7px 14px;border-radius:var(--radius-sm, 8px);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.class-learning-btn-select-lesson.selected{background:var(--color-primary, #6c5ce7);color:var(--color-text-on-primary, #ffffff);border-color:var(--color-primary, #6c5ce7);box-shadow:var(--shadow-raised-sm, none)}.class-learning-catalog-item-preview{display:flex;flex-direction:column;gap:6px}.class-learning-btn-expand{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;font-size:.82rem;font-weight:600;color:var(--color-text-muted, #7e7a94);cursor:pointer;padding:4px 0;transition:color var(--transition-fast, .15s ease)}.class-learning-btn-expand:hover{color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.class-learning-catalog-item-details{font-size:.84rem;color:var(--color-text-body, #4a455e);background:var(--surface-input, #f6f5fa);padding:12px 14px;border-radius:var(--radius-xs, 8px);border:1px solid var(--border-color-subtle, #f1f5f9);display:flex;flex-direction:column;gap:8px}.class-learning-details-section strong{color:var(--color-text-title, #27253a)}.class-learning-details-section ul,.class-learning-details-section ol{margin:4px 0 0 16px;padding:0}.class-learning-details-section p{margin:4px 0 0}.class-learning-selected-count{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-full, 9999px);background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);font-size:.85rem;font-weight:600;border:1px solid var(--color-primary-light, #dbeafe)}.class-learning-modal-card{background:var(--surface-card, #ffffff);border-radius:var(--radius-md, 16px);width:100%;max-width:820px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:var(--shadow-floating, 0 25px 50px -12px rgba(0, 0, 0, .25));border:1px solid var(--border-color-card, rgba(226, 232, 240, .8));padding:24px;display:flex;flex-direction:column;position:relative;animation:modalSlideUp .18s ease-out;margin-bottom:0}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.class-learning-btn-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-xs, 8px);border:1px solid transparent;background:transparent;color:var(--color-text-muted, #7e7a94);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.class-learning-btn-close:hover{background:var(--surface-input, #f1f5f9);color:var(--color-text-title, #27253a)}.class-learning-btn-close:focus-visible{outline:none;border-color:var(--border-color-focus, var(--color-primary, #6c5ce7));background:var(--surface-input, #f1f5f9)}.class-learning-btn-cancel{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;border-radius:var(--radius-sm, 10px);border:1px solid var(--border-color-card, #cbd5e1);background:var(--surface-card, #ffffff);color:var(--color-text-body, #475569);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.class-learning-btn-cancel:hover{background:var(--surface-hover, #f8fafc);color:var(--color-text-title, #1e293b);border-color:var(--color-text-muted, #94a3b8)}.class-learning-btn-cancel:focus-visible{outline:none;border-color:var(--border-color-focus, var(--color-primary, #6c5ce7));box-shadow:0 0 0 3px var(--color-primary-light, rgba(148, 163, 184, .2))}.class-learning-nested-backdrop{z-index:1100}.class-learning-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:14px;padding:14px 0 4px;border-top:1px solid var(--border-color-card, #e2e8f0);flex-shrink:0}.class-learning-page-indicator{font-size:.85rem;color:var(--color-text-muted, #7e7a94);font-weight:600}.class-learning-age-select-responsive{display:none}@media(max-width:640px){.class-learning-age-select-responsive{display:block;width:100%;margin-bottom:8px}.class-learning-filters-age .class-learning-pill-group{display:none}}.daily-journal-learning-action{display:flex;align-items:center}.btn-open-class-learning{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;height:38px;border-radius:var(--radius-sm, 10px);border:1px solid var(--color-primary, #6c5ce7);background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease);box-sizing:border-box;white-space:nowrap}.btn-open-class-learning:hover{background:var(--color-primary, #6c5ce7);color:var(--color-text-on-primary, #ffffff)}.btn-open-class-learning:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-light, rgba(16, 185, 129, .25))}.learning-header-status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;border-radius:var(--radius-full, 9999px);margin-left:4px}.learning-header-status-badge.status-updated{background:var(--pastel-green-bg, #dcfce7);color:var(--pastel-green-text, #15803d);border:1px solid var(--pastel-green-border, #bbf7d0)}.learning-header-status-badge.status-empty{background:var(--surface-input, #f1f5f9);color:var(--color-text-muted, #7e7a94);border:1px solid var(--border-color-card, #e2e8f0)}.learning-header-status-badge.status-dirty{background:var(--pastel-yellow-bg, #fef3c7);color:var(--pastel-yellow-text, #b45309);border:1px solid var(--pastel-yellow-border, #fde68a)}.learning-header-status-badge.status-loading{background:var(--surface-input, #f8fafc);color:var(--color-text-muted, #7e7a94);border:1px solid var(--border-color-card, #e2e8f0)}.learning-header-status-badge.status-error{background:var(--pastel-pink-bg, #fee2e2);color:var(--pastel-pink-text, #b91c1c);border:1px solid var(--pastel-pink-border, #fecaca)}.learning-header-status-badge.status-unknown{background:var(--pastel-yellow-bg, #ffedd5);color:var(--pastel-yellow-text, #c2410c);border:1px solid var(--pastel-yellow-border, #fed7aa)}.class-learning-provenance{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--color-primary-subtle, #faf8ff);border:1px solid var(--border-color-card, #e2e8f0);border-left:4px solid var(--color-primary, #6c5ce7);border-radius:var(--radius-sm, 10px);margin-bottom:12px;font-size:.88rem;color:var(--color-text-body, #4a455e)}.class-learning-provenance-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.class-learning-provenance-tag{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full, 999px);background:var(--surface-card, #ffffff);color:var(--color-primary, #6c5ce7);border:1px solid var(--border-color-card, #e2e8f0)}.class-learning-provenance-btn{background:none;border:none;color:var(--color-text-muted, #7e7a94);font-size:.8rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:var(--radius-xs, 6px);transition:all .15s ease}.class-learning-provenance-btn:hover{background:var(--surface-hover, #f8f7fd);color:var(--color-primary, #6c5ce7)}.class-learning-usage-badge{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-full, 999px);white-space:nowrap}.class-learning-usage-badge.usage-used{background:var(--pastel-blue-bg, #e0f2fe);color:var(--pastel-blue-text, #0369a1);border:1px solid var(--pastel-blue-border, #bae6fd)}.class-learning-usage-badge.usage-scheduled{background:var(--pastel-purple-bg, #ede9fe);color:var(--pastel-purple-text, #5b21b6);border:1px solid var(--pastel-purple-border, #ddd6fe)}.class-learning-usage-badge.usage-none{background:var(--surface-input, #f1f5f9);color:var(--color-text-muted, #7e7a94);border:1px solid var(--border-color-card, #e2e8f0)}.class-learning-usage-badge.usage-error{background:var(--pastel-pink-bg, #fee2e2);color:var(--pastel-pink-text, #dc2626);border:1px solid var(--pastel-pink-border, #fecdd3)}.class-learning-phases-container{display:flex;flex-direction:column;gap:12px;margin-top:10px}.class-learning-phase-box{background:var(--surface-input, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 10px);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.class-learning-phase-header{display:flex;align-items:center;justify-content:space-between;font-size:.88rem;font-weight:700;color:var(--color-text-title, #27253a)}.class-learning-phase-title-input{width:100%;padding:7px 10px;border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-xs, 6px);font-size:.85rem;background:var(--surface-card, #ffffff);color:var(--color-text-title, #27253a)}.class-learning-phase-steps-textarea{width:100%;min-height:60px;padding:7px 10px;border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-xs, 6px);font-size:.85rem;background:var(--surface-card, #ffffff);color:var(--color-text-body, #4a455e);resize:vertical}.class-learning-badge-pub-public{background:var(--pastel-green-bg, #dcfce7);color:var(--pastel-green-text, #166534);border:1px solid var(--pastel-green-border, #bbf7d0)}.class-learning-badge-pub-pending_review{background:var(--pastel-yellow-bg, #fef9c3);color:var(--pastel-yellow-text, #854d0e);border:1px solid var(--pastel-yellow-border, #fef08a)}.class-learning-badge-pub-not_public{background:var(--surface-input, #f1f5f9);color:var(--color-text-muted, #7e7a94);border:1px solid var(--border-color-card, #e2e8f0)}.class-learning-badge-pub-policy_not_configured,.class-learning-badge-pub-policy_changed{background:var(--pastel-pink-bg, #fee2e2);color:var(--pastel-pink-text, #dc2626);border:1px solid var(--pastel-pink-border, #fecdd3)}.class-learning-tag-internal{font-size:.72rem;font-weight:600;color:var(--color-warning, #d97706);background:var(--pastel-yellow-bg, #fef3c7);padding:2px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}.class-learning-btn-queue{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:.82rem;font-weight:600;color:var(--color-primary-dark, #3f2e96);background:var(--pastel-purple-bg, #ede9fe);border:1px solid var(--pastel-purple-border, #ddd6fe);border-radius:var(--radius-sm, 8px);cursor:pointer;transition:all .15s ease}.class-learning-btn-queue:hover{background:#e0d7fe}.class-review-btn-approve,.class-review-btn-return,.class-review-btn-unpublish{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:.78rem;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid transparent;transition:all .15s ease}.class-review-btn-approve{background:var(--pastel-green-bg, #dcfce7);color:var(--pastel-green-text, #166534);border-color:var(--pastel-green-border, #bbf7d0)}.class-review-btn-approve:hover{background:#bbf7d0}.class-review-btn-return{background:var(--pastel-yellow-bg, #fef9c3);color:var(--pastel-yellow-text, #854d0e);border-color:var(--pastel-yellow-border, #fef08a)}.class-review-btn-return:hover{background:#fef08a}.class-review-btn-unpublish{background:var(--pastel-pink-bg, #fee2e2);color:var(--pastel-pink-text, #dc2626);border-color:var(--pastel-pink-border, #fecdd3)}.class-review-queue-overlay,.class-review-reason-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1050;display:flex;align-items:center;justify-content:center;padding:16px}.class-review-queue-modal{background:var(--surface-card, #ffffff);border-radius:var(--radius-md, 14px);box-shadow:var(--shadow-modal, 0 20px 40px rgba(0, 0, 0, .18));width:100%;max-width:680px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color-card, #e2e8f0)}.class-review-queue-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);background:var(--surface-subtle, #faf8ff)}.class-review-queue-icon{width:32px;height:32px;border-radius:8px;background:var(--pastel-purple-bg, #ede9fe);color:var(--color-primary-dark, #3f2e96);display:grid;place-items:center}.class-review-queue-body{padding:16px 18px;overflow-y:auto;flex:1}.class-review-queue-empty{text-align:center;padding:36px 16px}.class-review-queue-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.class-review-queue-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface-input, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 10px);gap:12px;flex-wrap:wrap}.class-review-queue-item-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.class-review-queue-badge-class{font-weight:700;font-size:.82rem;color:var(--color-primary-dark, #3f2e96)}.class-review-queue-badge-date{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;color:var(--color-text-muted, #7e7a94)}.class-review-queue-badge-ver{font-size:.75rem;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--pastel-purple-bg, #ede9fe);color:var(--pastel-purple-text, #5b21b6)}.class-review-queue-item-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.class-review-btn-open{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;font-size:.78rem;font-weight:600;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #cbd5e1);border-radius:6px;color:var(--color-text-body, #334155);cursor:pointer}.class-review-btn-open:hover{background:#f1f5f9}.class-review-reason-card{background:var(--surface-card, #ffffff);border-radius:var(--radius-md, 12px);padding:20px;max-width:440px;width:100%;box-shadow:0 16px 36px #0003;border:1px solid var(--border-color-card, #e2e8f0)}.class-review-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1055;display:flex;align-items:center;justify-content:center;padding:16px}.class-review-preview-card{background:var(--surface-card, #ffffff);border-radius:var(--radius-md, 14px);padding:22px;max-width:580px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 16px 36px #0003;border:1px solid var(--border-color-card, #e2e8f0)}.class-learning-age-box{min-width:200px;flex-shrink:0}.class-learning-age-select{width:100%;padding:8px 12px;border-radius:var(--radius-sm, 10px);border:1px solid var(--border-color-card, #cbd5e1);background:var(--surface-input, #f6f5fa);color:var(--color-text-title, #27253a);font-size:.88rem;font-family:inherit;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.class-learning-age-select:focus{outline:none;background:var(--surface-card, #ffffff);border-color:var(--border-color-focus, var(--color-primary, #6c5ce7));box-shadow:0 0 0 3px var(--color-primary-light, rgba(108, 92, 231, .15))}.class-learning-lesson-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 10px);box-shadow:0 2px 5px #0000000a,0 1px 2px #00000005;transition:all var(--transition-fast, .15s ease);overflow:hidden}.class-learning-lesson-card:hover{border-color:var(--color-primary-light, #cbd5e1);box-shadow:0 4px 10px #0000000f}.class-learning-lesson-card.selected{border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 2px var(--color-primary-light, rgba(108, 92, 231, .2)),0 2px 6px #0000000d;background:var(--color-primary-subtle, #faf8ff)}.class-learning-lesson-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;min-height:48px}.class-learning-lesson-header-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1;background:none;border:none;padding:0;margin:0;text-align:left;font-family:inherit;cursor:pointer}.class-learning-lesson-header-main:focus-visible{outline:2px solid var(--color-primary, #6c5ce7);outline-offset:2px;border-radius:var(--radius-sm, 6px)}.class-learning-expand-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted, #71717a);margin-left:6px;flex-shrink:0}.class-learning-icon-frame{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;flex-shrink:0}.class-learning-icon-frame.pastel-purple{background:#f3e8ff;color:#7e22ce}.class-learning-icon-frame.pastel-blue{background:#e0f2fe;color:#0369a1}.class-learning-icon-frame.pastel-green{background:#dcfce7;color:#15803d}.class-learning-icon-frame.pastel-amber{background:#fef3c7;color:#b45309}.class-learning-icon-frame.pastel-rose{background:#ffe4e6;color:#be123c}.class-learning-lesson-title-single{font-size:.92rem;font-weight:600;color:var(--color-text-title, #27253a);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:440px}.class-learning-compact-tags{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.class-learning-lesson-details-grouped{padding:14px 18px 16px;border-top:1px solid var(--border-color-card, #e2e8f0);background:var(--surface-card, #ffffff);display:flex;flex-direction:column;gap:14px}.class-learning-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.class-learning-detail-group{background:var(--surface-input, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.class-learning-detail-group-header{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:700;color:var(--color-text-title, #27253a)}.class-learning-detail-group-content{font-size:.84rem;color:var(--color-text-body, #4a455e);line-height:1.5}.class-learning-detail-group-content ul,.class-learning-detail-group-content ol{margin:4px 0 0 18px;padding:0}.class-learning-detail-group-content li{margin-bottom:3px}@media(max-width:768px){.class-learning-lesson-title-single{max-width:220px}.class-learning-filters-bar{flex-direction:column;align-items:stretch}.class-learning-age-box,.class-learning-domain-box{width:100%}}:root{--platform-bg: #f8fafc;--platform-surface: #ffffff;--platform-surface-card: #ffffff;--platform-surface-subtle: #f1f5f9;--platform-surface-hover: #f8fafc;--platform-border: #e2e8f0;--platform-border-strong: #cbd5e1;--platform-primary: #6366f1;--platform-primary-hover: #4f46e5;--platform-primary-glow: rgba(99, 102, 241, .18);--platform-primary-light: #eef2ff;--platform-text: #0f172a;--platform-text-muted: #475569;--platform-text-dim: #64748b;--platform-success: #10b981;--platform-warning: #f59e0b;--platform-danger: #ef4444}.platform-layout{display:flex;min-height:100vh;background-color:var(--platform-bg);color:var(--platform-text);font-family:inherit}.platform-sidebar{width:280px;background:#fff;border-right:1px solid var(--platform-border);box-shadow:2px 0 16px #00000005;display:flex;flex-direction:column;flex-shrink:0;z-index:40;transition:transform .25s cubic-bezier(.4,0,.2,1)}.platform-sidebar-header{padding:20px 16px 16px;border-bottom:1px solid #f1f5f9;position:relative}.platform-workspace-identity{display:flex;align-items:center;gap:12px}.platform-shield-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#a855f7);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 14px #6366f140;flex-shrink:0}.platform-identity-copy{display:flex;flex-direction:column;min-width:0}.platform-identity-tag{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6366f1}.platform-identity-title{font-size:15px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-workspace-picker{margin-top:14px;position:relative}.platform-workspace-trigger{width:100%;padding:9px 12px;background:var(--platform-surface-subtle);border:1px solid var(--platform-border);border-radius:10px;color:#0f172a;display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.platform-workspace-trigger:hover{background:#e2e8f0;border-color:#cbd5e1}.platform-workspace-menu{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:#fff;border:1px solid var(--platform-border);border-radius:12px;box-shadow:0 16px 36px #00000014;padding:6px;z-index:50;max-height:240px;overflow-y:auto}.platform-workspace-menu-item{width:100%;padding:8px 10px;background:transparent;border:none;border-radius:8px;color:#334155;display:flex;align-items:center;gap:10px;font-size:12.5px;text-align:left;cursor:pointer;transition:background .15s ease}.platform-workspace-menu-item:hover{background:#f1f5f9;color:#0f172a}.platform-workspace-menu-item.is-selected{background:#eef2ff;color:#4f46e5;font-weight:600}.platform-sidebar-nav{flex:1;overflow-y:auto;padding:16px 12px;display:flex;flex-direction:column;gap:20px}.platform-nav-group-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--platform-text-dim);padding:0 8px 6px}.platform-nav-items{display:flex;flex-direction:column;gap:4px}.platform-nav-item{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:10px;font-size:13px;font-weight:500;color:var(--platform-text-muted);text-decoration:none;transition:all .15s ease;border:1px solid transparent}.platform-nav-item-content{display:flex;align-items:center;gap:10px}.platform-nav-item:hover:not(.is-disabled){background:#f8fafc;color:#0f172a}.platform-nav-item.is-active{background:#eef2ff;border-color:#c7d2fe;color:#4338ca;font-weight:600;box-shadow:0 1px 3px #6366f114}.platform-nav-item.is-disabled{opacity:.45;cursor:not-allowed}.platform-nav-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:var(--platform-text-dim)}.platform-sidebar-footer{padding:16px;border-top:1px solid #f1f5f9;display:flex;flex-direction:column;gap:12px}.platform-user-card{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#f8fafc;border-radius:10px;border:1px solid var(--platform-border)}.platform-user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4f46e5);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;flex-shrink:0;box-shadow:0 2px 6px #6366f140}.platform-user-copy{display:flex;flex-direction:column;min-width:0}.platform-user-email{font-size:12px;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-user-role-tag{font-size:10.5px;color:#6366f1;font-weight:600}.platform-logout-btn{width:100%;padding:8px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .15s ease}.platform-logout-btn:hover{background:#fee2e2;border-color:#f87171}.platform-main-container{flex:1;display:flex;flex-direction:column;min-width:0;overflow-y:auto}.platform-top-bar{height:64px;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--platform-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:30}.platform-top-bar-left{display:flex;align-items:center;gap:16px}.platform-menu-toggle{display:none;background:transparent;border:none;color:var(--platform-text);cursor:pointer;padding:6px}.platform-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--platform-text-muted)}.platform-breadcrumb .platform-breadcrumb-separator{color:#94a3b8;font-weight:400}.platform-breadcrumb strong{color:#0f172a;font-weight:700;letter-spacing:.02em}.platform-top-bar-right{display:flex;align-items:center;gap:12px}.platform-switch-school-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;background:#fff;border:1px solid var(--platform-border-strong);border-radius:10px;color:#334155;font-size:12.5px;font-weight:600;cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:all .2s cubic-bezier(.4,0,.2,1)}.platform-switch-school-btn:hover{background:#f8fafc;border-color:#0284c7;color:#0f172a;box-shadow:0 4px 12px #0284c71f;transform:translateY(-1px)}.platform-switch-school-btn .platform-switch-icon{color:#0284c7;display:inline-flex;align-items:center}.platform-page-container{padding:28px 24px;display:flex;flex-direction:column;gap:28px;max-width:1360px;margin:0 auto;width:100%}.platform-dashboard-hero{background:linear-gradient(135deg,#6366f10f,#a855f70f);border:1px solid rgba(99,102,241,.2);border-radius:16px;padding:24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 20px #6366f10d}.platform-hero-title{font-size:22px;font-weight:800;color:#0f172a;margin:0 0 6px}.platform-hero-desc{font-size:13.5px;color:#475569;margin:0;line-height:1.5}.platform-hero-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#d1fae5;border:1px solid #a7f3d0;border-radius:20px;color:#065f46;font-size:12px;font-weight:700}.platform-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.platform-card{background:var(--platform-surface-card);border:1px solid var(--platform-border);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 4px 16px #0000000a;transition:all .2s ease}.platform-card:hover{border-color:#c7d2fe;box-shadow:0 8px 24px #6366f114}.platform-card-header{display:flex;align-items:center;justify-content:space-between}.platform-card-title-group{display:flex;align-items:center;gap:10px}.platform-card-icon{width:36px;height:36px;border-radius:10px;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center}.platform-card-title{font-size:15px;font-weight:700;color:#0f172a;margin:0}.platform-status-pill{font-size:11px;font-weight:700;padding:3px 8px;border-radius:12px}.platform-status-pill.success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.platform-status-pill.info{background:#e0e7ff;color:#3730a3;border:1px solid #c7d2fe}.platform-card-body{font-size:13px;color:var(--platform-text-muted);line-height:1.6;margin:0}.platform-card-metrics{display:flex;flex-direction:column;gap:8px;background:#f8fafc;padding:12px;border-radius:8px;border:1px solid var(--platform-border)}.platform-metric-row{display:flex;justify-content:space-between;font-size:12.5px}.platform-metric-label{color:var(--platform-text-dim)}.platform-metric-value{color:#0f172a;font-weight:600;font-family:inherit}@media(max-width:1024px){.platform-cards-grid{grid-template-columns:1fr}}@media(min-width:769px)and (max-width:1200px){.platform-payment-filters{align-items:stretch!important;flex-direction:column}.platform-payment-filter-fields{display:grid!important;flex:none!important;grid-template-columns:minmax(220px,.8fr) minmax(380px,1.2fr);min-width:0!important;width:100%}.platform-payment-search{grid-column:1 / -1;min-width:0;width:100%}.platform-payment-status-filter,.platform-payment-status-filter select{min-width:0;width:100%}.platform-payment-date-filter{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-width:0;width:100%}.platform-payment-date-input{box-sizing:border-box;min-width:0;width:100%}.platform-payment-refresh-btn{align-self:flex-end;justify-content:center;min-width:132px}}@media(max-width:768px){.platform-sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.platform-sidebar.is-open{transform:translate(0)}.platform-menu-toggle{display:block}.platform-dashboard-hero{flex-direction:column;align-items:flex-start;gap:16px}.platform-top-bar{padding:0 16px}.platform-page-container{padding:16px}.platform-payment-filters{align-items:stretch!important;flex-direction:column}.platform-payment-filter-fields{flex:none!important;flex-direction:column;min-width:0!important;width:100%}.platform-payment-search,.platform-payment-status-filter,.platform-payment-status-filter select{min-width:0;width:100%}.platform-payment-date-filter{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%}.platform-payment-date-input{box-sizing:border-box;min-width:0;width:100%}.platform-payment-refresh-btn{justify-content:center;width:100%}}.platform-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}.platform-page-title{font-size:22px;font-weight:800;color:#0f172a;margin:0;display:flex;align-items:center;gap:10px}.platform-page-subtitle{font-size:13.5px;color:var(--platform-text-muted);margin:4px 0 0;line-height:1.5}.platform-btn,.btn-platform-primary,.btn-platform-secondary,.btn-platform-danger,.btn-platform-warning{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .15s ease;white-space:nowrap;border:1px solid transparent;line-height:1.4;text-decoration:none}.platform-btn:disabled,.btn-platform-primary:disabled,.btn-platform-secondary:disabled,.btn-platform-danger:disabled,.btn-platform-warning:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-platform-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff!important;border-color:#fff3;box-shadow:0 4px 12px #6366f140}.btn-platform-primary:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5,#4338ca);box-shadow:0 6px 16px #6366f159;transform:translateY(-1px)}.btn-platform-secondary{background:#fff;color:#334155!important;border:1px solid var(--platform-border-strong);box-shadow:0 1px 2px #0000000d}.btn-platform-secondary:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:#0f172a!important}.btn-platform-danger{background:#fef2f2;color:#b91c1c!important;border:1px solid #fecaca}.btn-platform-danger:hover:not(:disabled){background:#fee2e2;border-color:#f87171;color:#991b1b!important}.btn-platform-warning{background:#fffbeb;color:#b45309!important;border:1px solid #fde68a}.btn-platform-warning:hover:not(:disabled){background:#fef3c7;border-color:#f59e0b;color:#92400e!important}.btn-platform-sm{padding:5px 10px;font-size:12px;border-radius:6px;gap:5px}.btn-platform-icon{padding:6px;border-radius:6px;background:#fff;border:1px solid var(--platform-border);color:#475569;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center}.btn-platform-icon:hover:not(:disabled){background:#f1f5f9;color:#0f172a;border-color:var(--platform-border-strong)}.btn-platform-icon:disabled{opacity:.3;cursor:not-allowed}.platform-layout .btn.btn-primary{background:var(--color-primary-gradient, linear-gradient(135deg, var(--color-primary, #6366f1) 0%, var(--color-primary-dark, #4f46e5) 100%))!important;color:var(--text-on-primary, #ffffff)!important;border-color:#fff3!important}.platform-layout .btn.btn-secondary{background:#fff!important;color:#334155!important;border:1px solid #cbd5e1!important}.platform-layout .btn.btn-danger{background:#fef2f2!important;color:#b91c1c!important;border:1px solid #fecaca!important}.platform-table-wrapper{background:#fff;border:1px solid var(--platform-border);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px #0000000a}.platform-table{width:100%;border-collapse:collapse;text-align:left;background:transparent}.platform-table th{background:var(--table-header-bg, #ede9fe);padding:13px 16px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap;text-align:center}.platform-table td{padding:14px 16px;font-size:13px;color:var(--color-text-body, #0f172a);border-bottom:1px solid var(--border-color-subtle, #f1f5f9);vertical-align:middle;text-align:center}.platform-table th.col-name,.platform-table th.col-school,.platform-table th.col-user,.platform-table td.col-name,.platform-table td.col-school,.platform-table td.col-user{text-align:left}.platform-table tbody tr:hover{background:var(--surface-hover, #f8f7fd)}.platform-table tbody tr:last-child td{border-bottom:none}.platform-actions-cell{display:flex;align-items:center;justify-content:center;gap:8px}.platform-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;padding:14px 18px;border-radius:14px;border:1px solid var(--platform-border);box-shadow:0 2px 10px #00000005}.platform-filter-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}.platform-input,.platform-select,.platform-textarea,.platform-layout input[type=text],.platform-layout input[type=number],.platform-layout input[type=email],.platform-layout input[type=date],.platform-layout select,.platform-layout textarea{background:#fff!important;border:1px solid #cbd5e1!important;border-radius:8px!important;color:#0f172a!important;color-scheme:light!important;font-size:13px!important;padding:8px 12px!important;box-sizing:border-box!important;transition:all .15s ease!important}.platform-input:focus,.platform-select:focus,.platform-textarea:focus,.platform-layout input:focus,.platform-layout select:focus,.platform-layout textarea:focus{outline:none!important;border-color:#6366f1!important;box-shadow:0 0 0 3px #6366f126!important}.platform-label{display:block;font-size:12.5px;font-weight:600;color:#334155;margin-bottom:6px}.platform-form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.platform-form-hint{font-size:11.5px;color:var(--platform-text-dim);margin-top:4px;line-height:1.4}.platform-tab-nav{display:flex;gap:8px;border-bottom:1px solid var(--platform-border);padding-bottom:12px;margin-bottom:20px}.platform-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:8px;font-size:13.5px;font-weight:600;color:#64748b;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.platform-tab-btn:hover{color:#0f172a;background:#f1f5f9}.platform-tab-btn.active{color:#4338ca;background:#eef2ff;border-color:#c7d2fe;box-shadow:0 1px 3px #6366f11a}.platform-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.platform-modal-container{background:#fff;border:1px solid var(--platform-border);border-radius:20px;box-shadow:0 20px 40px #00000026;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;color:#0f172a}.platform-modal-header{padding:18px 24px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between}.platform-modal-title{font-size:17px;font-weight:700;color:#0f172a;margin:0;display:flex;align-items:center;gap:10px}.platform-modal-body{padding:24px;display:flex;flex-direction:column;gap:16px}.platform-modal-footer{padding:16px 24px;border-top:1px solid #f1f5f9;display:flex;align-items:center;justify-content:flex-end;gap:12px;background:#f8fafc}.platform-banner{border-radius:12px;padding:14px 18px;display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.5}.platform-banner.info{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3}.platform-banner.warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.platform-banner.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.platform-banner p{margin:0}.platform-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}.platform-badge.active,.platform-badge.success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.platform-badge.trial{background:#e0e7ff;color:#3730a3;border:1px solid #c7d2fe}.platform-badge.suspended,.platform-badge.warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.platform-badge.closed,.platform-badge.danger,.platform-badge.revoked{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.platform-badge.default{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.platform-toolbar-actions,.platform-page-actions{display:flex!important;align-items:center!important;gap:12px!important;flex-wrap:wrap!important}.platform-sub-status-cell{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important}.platform-sub-status-badge-row{display:block!important}.platform-sub-status-days{display:block!important;font-size:11.5px!important;color:#64748b!important;font-weight:500!important;white-space:nowrap!important;line-height:1.3!important}.platform-pricing-actions-cell{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important}.btn-platform-table-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-width:68px!important;height:32px!important;padding:0 10px!important;font-size:12px!important;font-weight:600!important;border-radius:6px!important;box-sizing:border-box!important;text-align:center!important;white-space:nowrap!important;line-height:1!important}.btn-platform-table-action.btn-platform-secondary,.btn-platform-table-action.btn-platform-danger,.platform-actions-cell button:not(.btn-platform-primary){color:var(--brand-ink, var(--color-primary-dark, #3f2e96))!important}.btn-platform-table-action svg,.platform-actions-cell button svg{stroke:currentColor}.platform-receipts-search-bar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:center!important;width:100%!important;background:#fff;padding:14px 18px;border-radius:14px;border:1px solid var(--platform-border);box-sizing:border-box;box-shadow:0 2px 10px #00000005}.platform-receipts-search-input-wrap{position:relative;width:100%}.platform-receipts-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#64748b;pointer-events:none}.platform-receipts-search-input{width:100%!important;padding-left:38px!important;box-sizing:border-box!important;height:38px!important}.platform-receipts-search-btn{height:38px!important;white-space:nowrap!important;padding:0 18px!important}@media(max-width:640px){.platform-receipts-search-bar{grid-template-columns:1fr!important}.platform-receipts-search-btn{width:100%!important}}.platform-table-scroll-container{width:100%;overflow-x:auto}.platform-table-footer{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:14px 18px!important;background:#f8fafc!important;border-top:1px solid var(--platform-border)!important;gap:12px!important;flex-wrap:wrap!important;font-size:13px!important;color:var(--platform-text-muted)!important}.platform-table-footer-info strong{color:#0f172a}.platform-table-footer-pagination{display:flex!important;align-items:center!important;gap:8px!important}.platform-form-group-full{width:100%!important;display:flex!important;flex-direction:column!important;gap:6px!important;margin-bottom:14px!important}.platform-form-label-row{display:flex!important;justify-content:space-between!important;align-items:center!important;width:100%!important;margin-bottom:4px!important}.platform-char-counter{font-size:11.5px!important;white-space:nowrap!important}.platform-char-counter.valid{color:#64748b!important}.platform-char-counter.invalid{color:#d97706!important}.platform-textarea,.platform-textarea-full,.platform-layout textarea{width:100%!important;min-height:120px!important;box-sizing:border-box!important;resize:vertical!important;display:block!important}.platform-school-cell{display:flex!important;align-items:flex-start!important;gap:10px!important}.platform-school-icon{width:28px!important;height:28px!important;border-radius:6px!important;background:#eef2ff!important;color:#4f46e5!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;margin-top:2px!important}.platform-school-info{display:flex!important;flex-direction:column!important;gap:3px!important;min-width:0!important}.platform-school-name{display:block!important;font-size:13.5px!important;font-weight:700!important;color:#0f172a!important;line-height:1.3!important}.platform-school-slug{display:block!important;font-size:11.5px!important;font-family:inherit!important;color:#64748b!important;line-height:1.2!important}.platform-bank-cell{display:flex!important;flex-direction:column!important;gap:3px!important}.platform-bank-short-name{display:block!important;font-size:13.5px!important;font-weight:700!important;color:#0f172a!important}.platform-bank-full-name{display:block!important;font-size:11.5px!important;color:#64748b!important}.platform-search-input-wrap{position:relative!important;display:flex!important;align-items:center!important}.platform-search-icon,.platform-receipts-search-icon{position:absolute!important;left:12px!important;top:50%!important;transform:translateY(-50%)!important;color:#64748b!important;width:16px!important;height:16px!important;pointer-events:none!important;z-index:3!important}.platform-search-input,.platform-receipts-search-input,.platform-payment-search input,.platform-filter-bar input,.platform-layout .platform-search-input,.platform-layout .platform-payment-search input,.platform-layout .platform-filter-bar input,.platform-layout input.platform-search-input{padding-left:38px!important;width:100%!important;height:38px!important;box-sizing:border-box!important}.platform-accounts-toolbar-bar{display:flex!important;justify-content:space-between!important;align-items:center!important;flex-wrap:wrap!important;gap:16px!important;margin-bottom:20px!important}.platform-settings-page{gap:0!important}.platform-settings-page .platform-page-header{margin-bottom:24px}.platform-settings-tabs{margin:0 0 24px!important;padding-bottom:12px}.platform-settings-content{display:flex;flex-direction:column;gap:18px;min-width:0}.platform-settings-policy-form{padding:24px!important;background:#fff;border:1px solid var(--platform-border);border-radius:16px;box-shadow:0 4px 16px #0000000a}.platform-settings-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.platform-settings-field{display:flex;min-width:0;flex-direction:column}.platform-settings-field-wide{margin-top:22px}.platform-settings-field .platform-label{margin-bottom:7px}.platform-settings-field .platform-form-hint{margin:6px 0 0}.platform-settings-form-actions{display:flex;justify-content:flex-end;margin-top:22px;padding-top:18px;border-top:1px solid #f1f5f9}.platform-settings-accounts-content .platform-accounts-toolbar-bar{margin-bottom:0!important}.platform-settings-accounts-content .platform-accounts-toolbar-bar>p{flex:1 1 640px;margin:0;line-height:1.55}@media(max-width:980px){.platform-settings-policy-grid{grid-template-columns:1fr;gap:18px}.platform-settings-field-wide{margin-top:18px}}@media(max-width:640px){.platform-settings-page .platform-page-header{margin-bottom:18px}.platform-settings-tabs{margin-bottom:18px!important;overflow-x:auto}.platform-settings-policy-form{padding:18px!important}.platform-settings-form-actions .btn-platform-primary{width:100%}}.platform-kpi-card{background:#fff!important;border:1px solid var(--platform-border)!important;border-radius:16px!important;padding:20px!important;display:flex!important;flex-direction:column!important;gap:10px!important;position:relative!important;box-shadow:0 4px 16px #0000000a!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important}.platform-kpi-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00000012!important;border-color:#cbd5e1!important}.platform-kpi-card.emerald{border-top:3px solid #10b981!important}.platform-kpi-card.indigo{border-top:3px solid #6366f1!important}.platform-kpi-card.purple{border-top:3px solid #a855f7!important}.platform-kpi-card.blue{border-top:3px solid #0ea5e9!important}.platform-kpi-header{display:flex!important;align-items:center!important;justify-content:space-between!important}.platform-kpi-label{font-size:11px!important;font-weight:700!important;letter-spacing:.06em!important;color:var(--platform-text-dim)!important;text-transform:uppercase!important}.platform-kpi-icon-wrap{width:36px!important;height:36px!important;border-radius:10px!important;display:flex!important;align-items:center!important;justify-content:center!important}.platform-kpi-icon-wrap.emerald{background:#ecfdf5!important}.platform-kpi-icon-wrap.indigo{background:#eef2ff!important}.platform-kpi-icon-wrap.purple{background:#faf5ff!important}.platform-kpi-icon-wrap.blue{background:#f0f9ff!important}.platform-kpi-value{font-size:24px!important;font-weight:800!important;line-height:1.2!important;font-family:var(--font-family-display, inherit)!important}.platform-kpi-value.emerald{color:#047857!important}.platform-kpi-value.indigo{color:#0f172a!important}.platform-kpi-value.purple{color:#6d28d9!important}.platform-kpi-value.blue{color:#0369a1!important}.platform-kpi-meta{font-size:12px!important;color:var(--platform-text-muted)!important}.platform-kpi-tag{display:inline-flex!important;align-items:center!important;gap:6px!important;font-size:11px!important;font-weight:600!important;padding:4px 10px!important;border-radius:20px!important;width:fit-content!important;margin-top:4px!important}.platform-kpi-tag.emerald{background:#ecfdf5!important;color:#047857!important;border:1px solid #a7f3d0!important}.platform-kpi-tag.indigo{background:#eef2ff!important;color:#4338ca!important;border:1px solid #c7d2fe!important}.platform-kpi-tag.purple{background:#faf5ff!important;color:#6d28d9!important;border:1px solid #ddd6fe!important}.platform-kpi-tag.blue{background:#f0f9ff!important;color:#0369a1!important;border:1px solid #bae6fd!important}.platform-distribution-bar-wrap{width:100%!important}.platform-distribution-bar{display:flex!important;height:14px!important;border-radius:8px!important;overflow:hidden!important;background:#f1f5f9!important;padding:2px!important;gap:3px!important}.platform-distribution-segment{height:100%!important;border-radius:4px!important;transition:width .3s ease!important}.platform-distribution-segment.active{background:#10b981!important}.platform-distribution-segment.trial{background:#6366f1!important}.platform-distribution-segment.expiring{background:#f59e0b!important}.platform-distribution-segment.grace{background:#ec4899!important}.platform-distribution-segment.expired{background:#ef4444!important}.platform-distribution-segment.unprovisioned{background:#94a3b8!important}.platform-status-stat-card{background:#f8fafc!important;border:1px solid var(--platform-border)!important;border-radius:12px!important;padding:14px 12px!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important;text-align:center!important}.platform-status-stat-count{font-size:22px!important;font-weight:800!important;color:#0f172a!important;margin:4px 0 2px!important}.platform-status-stat-pct{font-size:11.5px!important;color:var(--platform-text-dim)!important;font-weight:600!important}.platform-dashboard-kpi-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;margin-top:18px!important}@media(max-width:1120px){.platform-dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:640px){.platform-dashboard-kpi-grid{grid-template-columns:1fr!important}}.platform-dashboard-breakdown-card{background:#fff!important;border:1px solid var(--platform-border)!important;border-radius:16px!important;padding:24px!important;margin-top:24px!important;box-shadow:0 4px 16px #0000000a!important}.platform-dashboard-breakdown-header{display:flex!important;justify-content:space-between!important;align-items:center!important;flex-wrap:wrap!important;gap:12px!important;margin-bottom:16px!important}.platform-dashboard-breakdown-title{font-size:15.5px!important;font-weight:700!important;color:#0f172a!important;display:flex!important;align-items:center!important;gap:8px!important;margin:0!important}.platform-dashboard-breakdown-subtitle{font-size:12.5px!important;color:var(--platform-text-dim)!important;margin-top:3px!important}.platform-dashboard-breakdown-total{font-size:13px!important;color:var(--platform-text-muted)!important}.platform-dashboard-breakdown-total strong{color:#0f172a!important;font-weight:700!important}.platform-status-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:12px!important}@media(max-width:960px){.platform-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:520px){.platform-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.platform-dashboard-actions-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important;margin-top:24px!important}@media(max-width:900px){.platform-dashboard-actions-grid{grid-template-columns:1fr!important}}.platform-dashboard-action-card{background:#fff!important;border:1px solid var(--platform-border)!important;border-radius:16px!important;padding:22px!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;min-height:260px!important;box-shadow:0 4px 16px #0000000a!important}.platform-dashboard-action-header{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-bottom:16px!important;flex-wrap:wrap!important;gap:8px!important}.platform-dashboard-action-title{font-size:15px!important;font-weight:700!important;color:#0f172a!important;display:flex!important;align-items:center!important;gap:8px!important;margin:0!important}.platform-dashboard-action-link{font-size:12.5px!important;color:#4f46e5!important;font-weight:600!important;display:inline-flex!important;align-items:center!important;gap:4px!important;background:none!important;border:none!important;cursor:pointer!important;padding:0!important;transition:color .15s ease!important}.platform-dashboard-action-link:hover{color:#4338ca!important;text-decoration:underline!important}.platform-dashboard-action-list{display:flex!important;flex-direction:column!important;gap:8px!important}.platform-dashboard-action-item{background:#f8fafc!important;border:1px solid var(--platform-border)!important;border-radius:12px!important;padding:12px 14px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;cursor:pointer!important;transition:all .15s ease!important}.platform-dashboard-action-item:hover{border-color:#cbd5e1!important;background:#f1f5f9!important;transform:translateY(-1px)}.platform-dashboard-action-info{display:flex!important;flex-direction:column!important;gap:2px!important}.platform-dashboard-order-code{font-family:inherit!important;font-size:11.5px!important;font-weight:700!important;color:#4f46e5!important}.platform-dashboard-tenant-name{font-size:12.5px!important;color:#0f172a!important;font-weight:600!important}.platform-dashboard-timestamp{font-size:11.5px!important;color:var(--platform-text-dim)!important}.platform-dashboard-action-right{text-align:right!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:4px!important}.platform-dashboard-amount{font-size:13.5px!important;font-weight:700!important;color:#047857!important;font-variant-numeric:tabular-nums!important}.platform-dashboard-empty-state{padding:32px 20px!important;text-align:center!important;color:var(--platform-text-dim)!important;background:#f8fafc!important;border-radius:12px!important;border:1px dashed var(--platform-border-strong)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important}.platform-dashboard-empty-title{font-size:13px!important;font-weight:600!important;color:#334155!important;margin:0!important}.platform-dashboard-empty-desc{font-size:11.5px!important;color:var(--platform-text-dim)!important;margin:0!important}.platform-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:640px){.platform-grid-2{grid-template-columns:1fr}}.platform-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:640px){.platform-grid-3{grid-template-columns:1fr}}.platform-detail-card{background-color:#fff;padding:16px;border-radius:14px;border:1px solid var(--platform-border);box-shadow:0 2px 8px #00000008;font-size:13px}.platform-detail-box{background-color:#f8fafc;padding:12px;border-radius:8px;border:1px solid var(--platform-border)}.platform-detail-box-highlight{background-color:#ecfdf5;padding:12px;border-radius:8px;border:1px solid #a7f3d0}.platform-detail-box-indigo{background-color:#eef2ff;padding:16px;border-radius:12px;border:1px solid #c7d2fe}.platform-empty-state,.platform-loading-state{padding:48px 16px;text-align:center;color:var(--platform-text-muted)}.platform-flex-center{display:flex;align-items:center;gap:8px}.platform-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--platform-text)}.platform-checkbox{width:16px;height:16px;border-radius:4px;accent-color:var(--platform-primary);cursor:pointer}.platform-text-muted{color:var(--platform-text-muted)}.platform-text-dim{color:var(--platform-text-dim)}.platform-text-primary{color:#4f46e5}.platform-text-success{color:#047857}.platform-text-danger{color:var(--platform-danger)}.platform-font-mono{font-family:inherit}.platform-partner-guide-card{background:var(--platform-surface);border:1px solid var(--platform-border);border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px #0000000a}.platform-partner-banner-icon{width:32px;height:32px;border-radius:8px;background:var(--platform-primary-light);color:var(--platform-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.platform-partner-code-badge{background:var(--platform-primary-light);border:1px solid #c7d2fe;color:var(--platform-primary-hover);padding:3px 8px;border-radius:6px;font-weight:700}.platform-partner-admin-form-card{padding:16px;background:var(--platform-surface-subtle);border-radius:12px;border:1px solid var(--platform-border)}.platform-partner-admin-empty{padding:30px 16px;text-align:center;background:var(--platform-surface-subtle);border-radius:10px;border:1px solid var(--platform-border);color:var(--platform-text-dim)}.platform-status-info-box{padding:12px 14px;background:var(--platform-surface-subtle);border-radius:8px;border:1px solid var(--platform-border);font-size:13px}.platform-form-hint{font-size:11px;color:var(--platform-text-dim);margin-top:4px;display:block}.platform-error-box{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:20px;color:var(--platform-danger);font-size:13.5px;display:flex;align-items:center;justify-content:space-between}.platform-empty-box{background:var(--platform-surface);border:1px solid var(--platform-border);border-radius:12px;padding:48px 16px;text-align:center;color:var(--platform-text-dim)}.platform-text-main{color:var(--platform-text)}.platform-card-title{margin:0;font-size:13.5px;font-weight:700;color:var(--platform-text)}.platform-modal-confirm-text{margin:0;font-size:13px;color:var(--platform-text);line-height:1.5}.platform-banner-desc{margin:0;font-size:12.5px;line-height:1.4;color:var(--platform-text)}.platform-partner-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--platform-surface);border:1px solid var(--platform-border);border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px #0000000a}.platform-partner-filter-fields{display:flex;gap:12px;align-items:center;flex:1;min-width:280px;flex-wrap:wrap}.platform-partner-search-wrap{position:relative;flex:1;min-width:240px}.platform-partner-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--platform-text-dim);pointer-events:none;z-index:1}.platform-partner-search-input,.platform-layout input.platform-partner-search-input,.platform-layout input[type=text].platform-partner-search-input{width:100%;height:38px!important;padding-left:38px!important;padding-right:12px!important;background:#fff!important;border:1px solid var(--platform-border)!important;border-radius:8px!important;color:var(--platform-text)!important;font-size:13px!important;outline:none;box-sizing:border-box!important;transition:border-color .15s ease,box-shadow .15s ease}.platform-partner-search-input:focus,.platform-layout input.platform-partner-search-input:focus,.platform-layout input[type=text].platform-partner-search-input:focus{border-color:var(--platform-primary)!important;box-shadow:0 0 0 3px #6366f11f!important}.platform-partner-status-select-wrap{display:flex;align-items:center;gap:6px}.platform-partner-select{height:38px;padding:0 12px;background:#fff;border:1px solid var(--platform-border);border-radius:8px;color:var(--platform-text);font-size:13px;outline:none;cursor:pointer;box-sizing:border-box;transition:border-color .15s ease}.platform-partner-select:focus{border-color:var(--platform-primary)}.platform-partner-refresh-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:8px;border:1px solid var(--platform-border);background:#fff;color:var(--platform-text);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.platform-partner-refresh-btn:hover{background:var(--platform-surface-subtle);border-color:#cbd5e1}.platform-partner-name-cell{display:flex;flex-direction:column;gap:2px}.platform-partner-display-name{font-size:13.5px;font-weight:600;color:var(--platform-text)}.platform-partner-legal-name{font-size:12px;color:var(--platform-text-dim)}.platform-table-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}.platform-action-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:500;border-radius:6px;white-space:nowrap;cursor:pointer}.platform-partner-form-modal-container{max-width:580px;width:100%}.platform-partner-status-modal-container{max-width:480px;width:100%}.platform-partner-admins-modal-container{max-width:760px;width:100%}.platform-modal-confirm-overlay{z-index:1200}.platform-modal-confirm-container{max-width:440px;width:100%}.platform-modal-reason-textarea{width:100%;resize:vertical;min-height:80px}.platform-hero-btn-add{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px;font-size:13.5px}.platform-partner-admin-form-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.platform-partner-admin-input-wrap{position:relative;flex:1;min-width:260px}.platform-partner-admin-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--platform-text-dim);pointer-events:none;z-index:2}.platform-partner-admin-input-field,.platform-layout input.platform-partner-admin-input-field,.platform-layout input[type=email].platform-partner-admin-input-field{width:100%;padding-left:38px!important;padding-right:12px!important;height:40px!important;border-radius:8px!important;border:1px solid var(--platform-border)!important;background:#fff!important;color:var(--platform-text)!important;font-size:13px!important;outline:none;box-sizing:border-box!important;transition:border-color .15s ease,box-shadow .15s ease}.platform-partner-admin-input-field:focus,.platform-layout input.platform-partner-admin-input-field:focus,.platform-layout input[type=email].platform-partner-admin-input-field:focus{border-color:var(--platform-primary)!important;box-shadow:0 0 0 3px #6366f11f!important}.platform-partner-admin-submit-btn{height:40px;padding:0 16px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.platform-badge.revoked{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}:root{--partner-bg-dark: #0b0f19;--partner-bg-surface: #0f172a;--partner-bg-surface-elevated: #1e293b;--partner-bg-surface-subtle: rgba(15, 23, 42, .6);--partner-border: rgba(51, 65, 85, .6);--partner-border-strong: rgba(71, 85, 105, .8);--partner-text-main: #f8fafc;--partner-text-muted: #cbd5e1;--partner-text-dim: #94a3b8;--partner-primary: #10b981;--partner-primary-hover: #059669;--partner-primary-light: rgba(16, 185, 129, .12);--partner-primary-border: rgba(16, 185, 129, .25);--partner-danger: #ef4444;--partner-danger-light: rgba(239, 68, 68, .12);--partner-warning: #f59e0b;--partner-warning-light: rgba(245, 158, 11, .12);--partner-blue: #3b82f6;--partner-blue-light: rgba(59, 130, 246, .12)}.partner-layout{display:flex;min-height:100vh;background:var(--partner-bg-dark);color:var(--partner-text-main);font-family:inherit;position:relative;overflow-x:hidden}.partner-main-container{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.partner-main-content{flex:1;overflow-y:auto;padding:28px 32px;background:radial-gradient(circle at 10% 20%,rgba(16,185,129,.03) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(59,130,246,.02) 0%,transparent 40%),var(--partner-bg-dark)}.partner-mobile-header{display:none;height:60px;align-items:center;justify-content:space-between;padding:0 16px;background:#0f172ad9;border-bottom:1px solid var(--partner-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}.partner-mobile-menu-btn{background:transparent;border:none;color:var(--partner-text-dim);padding:8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.partner-mobile-menu-btn:hover{background:var(--partner-bg-surface-elevated);color:#fff}.partner-mobile-title{font-size:14px;font-weight:700;letter-spacing:.05em;color:var(--partner-primary)}.partner-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;background:var(--partner-bg-surface);border-right:1px solid var(--partner-border);color:#fff;z-index:50;transition:transform .25s cubic-bezier(.4,0,.2,1)}.partner-sidebar-backdrop{display:none}.partner-brand-header{display:flex;flex-direction:column;padding:18px 20px;border-bottom:1px solid var(--partner-border);background:#02061773;gap:14px}.partner-brand-info{display:flex;align-items:center;gap:12px}.partner-brand-logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--partner-primary-hover) 0%,var(--partner-primary) 100%);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#fff;box-shadow:0 4px 12px #10b98140;flex-shrink:0}.partner-brand-titles{min-width:0;flex:1}.partner-brand-title{font-size:13.5px;font-weight:700;letter-spacing:.05em;color:var(--partner-primary);line-height:1.3}.partner-brand-subtitle{font-size:11.5px;color:var(--partner-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.partner-nav-links{display:flex;flex-direction:column;gap:6px;padding:18px 14px;flex:1;overflow-y:auto}.partner-nav-link{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--partner-text-muted);text-decoration:none;transition:all .15s ease}.partner-nav-link:hover{background:#33415566;color:#fff}.partner-nav-link-active,.partner-nav-link.active{background:var(--partner-primary-hover);color:#fff!important;font-weight:600;box-shadow:0 4px 12px #0596694d}.partner-sidebar-footer{padding:16px;border-top:1px solid var(--partner-border);background:#0206174d;display:flex;flex-direction:column;gap:12px}.partner-user-profile{display:flex;align-items:center;gap:10px}.partner-user-avatar{width:34px;height:34px;border-radius:10px;background:var(--partner-primary-light);border:1px solid var(--partner-primary-border);color:var(--partner-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.partner-user-details{min-width:0;flex:1}.partner-user-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.partner-user-email{font-size:11.5px;color:var(--partner-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.partner-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px 12px;background:#ef444414;border:1px solid rgba(239,68,68,.2);color:#f87171;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.partner-logout-btn:hover{background:#ef444429;color:#fff;border-color:#ef444459}.partner-hero-card{background:#0f172aa6;border:1px solid var(--partner-border);border-radius:16px;padding:22px 26px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px #0003;margin-bottom:24px}.partner-hero-flex{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.partner-hero-title-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.partner-hero-title{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em;color:#fff}.partner-hero-subtitle{margin:4px 0 0;font-size:13.5px;color:var(--partner-text-dim)}.partner-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:24px}.partner-stat-card{background:#0f172a80;border:1px solid var(--partner-border);border-radius:16px;padding:22px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;justify-content:space-between}.partner-stat-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.partner-stat-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--partner-text-dim)}.partner-stat-value{margin-top:8px;font-size:32px;font-weight:800;color:#fff;line-height:1.1;font-family:inherit}.partner-stat-icon-wrap{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.partner-stat-icon-wrap.emerald{background:var(--partner-primary-light);border:1px solid var(--partner-primary-border);color:var(--partner-primary)}.partner-stat-icon-wrap.blue{background:var(--partner-blue-light);border:1px solid rgba(59,130,246,.25);color:var(--partner-blue)}.partner-stat-icon-wrap.amber{background:var(--partner-warning-light);border:1px solid rgba(245,158,11,.25);color:var(--partner-warning)}.partner-stat-desc{margin-top:14px;font-size:12px;color:var(--partner-text-dim)}.partner-filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px;background:#0f172a80;border:1px solid var(--partner-border);border-radius:14px;padding:14px 18px}.partner-filter-fields{display:flex;gap:12px;align-items:center;flex:1;min-width:260px;flex-wrap:wrap}.partner-search-wrap,.partner-search-box{position:relative;flex:1;min-width:220px}.partner-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--partner-text-dim);pointer-events:none}.partner-search-input{width:100%;height:38px;padding-left:38px;padding-right:12px;background:#02061780;border:1px solid var(--partner-border);border-radius:8px;color:#fff;font-size:13px;outline:none;transition:border-color .15s ease}.partner-search-input:focus{border-color:var(--partner-primary)}.partner-select{height:38px;padding:0 12px;background:#02061780;border:1px solid var(--partner-border);border-radius:8px;color:#fff;font-size:13px;outline:none;cursor:pointer;box-sizing:border-box;transition:border-color .15s ease}.partner-select:focus{border-color:var(--partner-primary);box-shadow:0 0 0 3px #10b9811f}.partner-input,.partner-form-input{height:38px;padding:0 12px;background:#02061780;border:1px solid var(--partner-border);border-radius:8px;color:#fff;font-size:13px;outline:none;box-sizing:border-box;transition:border-color .15s ease}.partner-input:focus,.partner-form-input:focus{border-color:var(--partner-primary);box-shadow:0 0 0 3px #10b9811f}.partner-month-picker-wrap{position:relative;display:inline-flex;align-items:center}.partner-month-picker-wrap .partner-month-picker-icon{position:absolute;left:12px;color:var(--partner-text-dim);pointer-events:none}.partner-month-picker{height:38px;padding-left:36px;padding-right:12px;background:#02061780;border:1px solid var(--partner-border);border-radius:8px;color:#fff;font-size:13px;outline:none;color-scheme:dark;box-sizing:border-box;transition:border-color .15s ease}.partner-month-picker:focus{border-color:var(--partner-primary);box-shadow:0 0 0 3px #10b9811f}.partner-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--partner-primary-hover) 0%,var(--partner-primary) 100%);color:#fff;border:none;border-radius:10px;padding:9px 18px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 12px #10b98140;white-space:nowrap}.partner-btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.partner-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#1e293bb3;border:1px solid var(--partner-border);color:var(--partner-text-main);border-radius:10px;padding:9px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.partner-btn-secondary:hover{background:#33415599;border-color:var(--partner-border-strong);color:#fff}.partner-btn-sm{padding:6px 12px;font-size:12px;border-radius:8px}.partner-btn-danger{background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:#f87171}.partner-btn-danger:hover{background:#ef444440;color:#fff}.partner-table-card{background:#0f172a8c;border:1px solid var(--partner-border);border-radius:16px;box-shadow:0 4px 20px #0003;overflow:hidden}.partner-table-scroll{overflow-x:auto;width:100%}.partner-table{width:100%;border-collapse:collapse;text-align:left;font-size:13.5px}.partner-table th{background:#02061799;padding:14px 18px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--partner-text-dim);border-bottom:1px solid var(--partner-border);white-space:nowrap;text-align:center}.partner-table td{padding:14px 18px;border-bottom:1px solid rgba(51,65,85,.35);color:var(--partner-text-main);vertical-align:middle;text-align:center}.partner-table th.col-name,.partner-table th.col-main-entity,.partner-table td.col-name,.partner-table td.col-main-entity{text-align:left!important}.partner-table th.col-actions,.partner-table td.col-actions{text-align:center!important}.partner-table tr:hover td{background:#1e293b59}.partner-table tr:last-child td{border-bottom:none}.partner-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:9999px;font-size:11.5px;font-weight:600;white-space:nowrap}.partner-badge.active{background:var(--partner-primary-light);border:1px solid var(--partner-primary-border);color:var(--partner-primary)}.partner-badge.inactive,.partner-badge.suspended{background:var(--partner-danger-light);border:1px solid rgba(239,68,68,.25);color:#f87171}.partner-badge.pending{background:var(--partner-warning-light);border:1px solid rgba(245,158,11,.25);color:var(--partner-warning)}.partner-badge.info{background:var(--partner-blue-light);border:1px solid rgba(59,130,246,.25);color:var(--partner-blue)}.partner-code-pill{font-family:inherit;background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:var(--partner-primary);padding:2px 7px;border-radius:6px;font-size:12px;font-weight:600}.partner-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;animation:partnerFadeIn .15s ease-out}.partner-modal-container{background:#0f172a;border:1px solid var(--partner-border-strong);border-radius:16px;box-shadow:0 20px 40px #0006;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:partnerScaleUp .15s ease-out}.partner-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--partner-border);background:#02061766}.partner-modal-title{margin:0;font-size:17px;font-weight:700;color:#fff}.partner-modal-close-btn{background:transparent;border:none;color:var(--partner-text-dim);padding:6px;border-radius:8px;cursor:pointer;display:flex}.partner-modal-close-btn:hover{background:#33415566;color:#fff}.partner-modal-body{padding:22px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.partner-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--partner-border);background:#0206174d}.partner-form-group{display:flex;flex-direction:column;gap:6px}.partner-form-label{font-size:12.5px;font-weight:600;color:var(--partner-text-muted)}.partner-form-input,.partner-form-textarea{width:100%;padding:9px 12px;background:#02061799;border:1px solid var(--partner-border);border-radius:8px;color:#fff;font-size:13.5px;outline:none;transition:border-color .15s ease}.partner-form-input:focus,.partner-form-textarea:focus{border-color:var(--partner-primary)}.partner-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 24px;text-align:center;color:var(--partner-text-dim)}.partner-empty-icon{margin-bottom:12px;color:var(--partner-text-dim);opacity:.6}.partner-empty-title{font-size:15px;font-weight:700;color:#fff;margin:0 0 6px}.partner-empty-desc{font-size:13px;color:var(--partner-text-dim);max-width:420px;margin:0}.partner-loading-box{display:flex;align-items:center;justify-content:center;padding:64px 24px}@keyframes partnerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes partnerScaleUp{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:1024px){.partner-sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.partner-sidebar.open{transform:translate(0)}.partner-sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40}.partner-mobile-header{display:flex}.partner-main-content{padding:20px 16px}}.workspace-switcher{position:relative;display:block;width:100%;min-width:0;text-align:left}.workspace-switcher__trigger{box-sizing:border-box;width:100%;min-height:54px;padding:8px 10px;border:1px solid transparent;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font:inherit;text-align:left;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.workspace-switcher--light .workspace-switcher__trigger{color:#0f172a;background:#f8fafc;border-color:#dbe3ee}.workspace-switcher--light .workspace-switcher__trigger:hover{background:#f1f5f9;border-color:#cbd5e1;box-shadow:0 4px 12px #0f172a0f}.workspace-switcher--dark .workspace-switcher__trigger{color:#f8fafc;background:#1e293beb;border-color:#475569e6}.workspace-switcher--dark .workspace-switcher__trigger:hover{background:#334155f5;border-color:#64748b}.workspace-switcher__trigger:disabled,.workspace-switcher__option:disabled{cursor:wait;opacity:.7}.workspace-switcher__trigger-main,.workspace-switcher__option-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.workspace-switcher__copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.workspace-switcher__label,.workspace-switcher__sublabel{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-switcher__label{font-size:12px;font-weight:700;line-height:1.25}.workspace-switcher__sublabel{color:#64748b;font-size:10.5px;font-weight:500;line-height:1.3}.workspace-switcher--dark .workspace-switcher__sublabel{color:#94a3b8}.workspace-switcher__icon{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px}.workspace-switcher__icon svg,.workspace-switcher__chevron,.workspace-switcher__check{width:16px;height:16px;flex-shrink:0}.workspace-switcher__icon--school{color:#0284c7;background:#e0f2fe}.workspace-switcher__icon--platform{color:#4f46e5;background:#e0e7ff}.workspace-switcher__icon--partner{color:#059669;background:#d1fae5}.workspace-switcher__icon--technician{color:#d97706;background:#fef3c7}.workspace-switcher__icon--parent{color:#7c3aed;background:#ede9fe}.workspace-switcher__chevron{color:#64748b;transition:transform .15s ease}.workspace-switcher__trigger[aria-expanded=true] .workspace-switcher__chevron{transform:rotate(180deg)}.workspace-switcher__menu{position:absolute;top:calc(100% + 8px);left:0;z-index:100;box-sizing:border-box;width:min(320px,calc(100vw - 32px));max-height:min(480px,calc(100vh - 150px));padding:8px;overflow-y:auto;border:1px solid #dbe3ee;border-radius:14px;background:#fff;color:#0f172a;box-shadow:0 18px 45px #0f172a2e}.workspace-switcher--dark .workspace-switcher__menu{border-color:#334155;background:#0f172a;color:#f8fafc;box-shadow:0 20px 50px #0000006b}.workspace-switcher__menu-title{padding:4px 8px 8px;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.workspace-switcher--dark .workspace-switcher__menu-title{border-bottom-color:#334155;color:#94a3b8}.workspace-switcher__options{display:flex;flex-direction:column;gap:4px;padding-top:6px}.workspace-switcher__option{box-sizing:border-box;width:100%;min-height:52px;padding:8px 10px;border:1px solid transparent;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;color:#334155;cursor:pointer;font:inherit;text-align:left;transition:background .12s ease,border-color .12s ease}.workspace-switcher__option:hover{background:#f1f5f9}.workspace-switcher--dark .workspace-switcher__option{color:#e2e8f0}.workspace-switcher--dark .workspace-switcher__option:hover{background:#1e293b}.workspace-switcher__option--selected{border-color:#c7d2fe;background:#eef2ff}.workspace-switcher--dark .workspace-switcher__option--selected{border-color:#4f46e5;background:#4f46e52e}.workspace-switcher__option--selected.workspace-switcher__option--school{border-color:#bae6fd;background:#f0f9ff}.workspace-switcher__option--selected.workspace-switcher__option--partner{border-color:#a7f3d0;background:#ecfdf5}.workspace-switcher__option--selected.workspace-switcher__option--technician{border-color:#fde68a;background:#fffbeb}.workspace-switcher__option--selected.workspace-switcher__option--parent{border-color:#ddd6fe;background:#f5f3ff}.workspace-switcher--dark .workspace-switcher__option--selected.workspace-switcher__option--school{background:#0ea5e929}.workspace-switcher--dark .workspace-switcher__option--selected.workspace-switcher__option--partner{background:#10b98129}.workspace-switcher--dark .workspace-switcher__option--selected.workspace-switcher__option--technician{background:#f59e0b29}.workspace-switcher--dark .workspace-switcher__option--selected.workspace-switcher__option--parent{background:#7c3aed29}.workspace-switcher__check{color:#4f46e5}@media(max-width:640px){.workspace-switcher__menu{width:min(300px,calc(100vw - 24px))}}.tech-container{display:flex;flex-direction:column;min-height:100vh;background-color:#0b0f19;background-image:radial-gradient(at 0% 0%,rgba(245,158,11,.08) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(59,130,246,.05) 0px,transparent 50%);color:#f1f5f9;font-family:inherit;-webkit-font-smoothing:antialiased}.tech-header{position:sticky;top:0;z-index:40;background:#0f172ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(51,65,85,.6)}.tech-header-inner{max-width:1280px;margin:0 auto;padding:0 1rem;height:4rem;display:flex;align-items:center;justify-content:space-between}@media(min-width:640px){.tech-header-inner{padding:0 1.5rem}}.tech-brand{display:flex;align-items:center;gap:.75rem}.tech-brand-logo{width:2.25rem;height:2.25rem;border-radius:.75rem;background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff;font-weight:800;font-size:.875rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #f59e0b40}.tech-brand-title{font-size:.875rem;font-weight:700;letter-spacing:.025em;color:#fbbf24}.tech-brand-sub{font-size:.6875rem;color:#94a3b8}.tech-nav-desktop{display:none;align-items:center;gap:.375rem}@media(min-width:768px){.tech-nav-desktop{display:flex}}.tech-nav-link{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:.75rem;font-size:.875rem;font-weight:500;color:#94a3b8;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent}.tech-nav-link:hover{background:#1e293b99;color:#f8fafc}.tech-nav-link.active{background:#f59e0b1f;color:#fbbf24;border-color:#f59e0b4d;font-weight:600}.tech-nav-mobile{display:flex;border-top:1px solid rgba(51,65,85,.5);background:#0b0f19f2;padding:.375rem .75rem;gap:.25rem}@media(min-width:768px){.tech-nav-mobile{display:none}}.tech-nav-mobile-link{flex:1;text-align:center;padding:.5rem .25rem;border-radius:.5rem;font-size:.75rem;font-weight:500;color:#94a3b8;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:all .15s}.tech-nav-mobile-link.active{background:#f59e0b26;color:#fbbf24;font-weight:700}.tech-main{flex:1;max-width:1280px;width:100%;margin:0 auto;padding:1.5rem 1rem 3rem}@media(min-width:640px){.tech-main{padding:2rem 1.5rem 4rem}}.tech-page-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}@media(min-width:640px){.tech-page-header{flex-direction:row;align-items:center;justify-content:space-between}}.tech-page-title{font-size:1.5rem;font-weight:800;letter-spacing:-.025em;color:#fff}.tech-page-desc{font-size:.875rem;color:#94a3b8;margin-top:.25rem}.tech-card{background:#0f172ab3;border:1px solid rgba(51,65,85,.6);border-radius:1rem;padding:1.25rem;box-shadow:0 10px 25px -5px #0000004d,0 8px 10px -6px #0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}@media(min-width:640px){.tech-card{padding:1.5rem}}.tech-card-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(51,65,85,.6);padding-bottom:.875rem;margin-bottom:1rem}.tech-card-title{font-size:1rem;font-weight:700;color:#f8fafc;display:flex;align-items:center;gap:.5rem}.tech-kpi-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}@media(min-width:768px){.tech-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1280px){.tech-kpi-grid{grid-template-columns:repeat(4,1fr)}}.tech-kpi-card{background:#0f172aa6;border:1px solid rgba(51,65,85,.6);border-radius:.875rem;padding:1.125rem;display:flex;flex-direction:column;justify-content:space-between;gap:.75rem;transition:transform .2s,border-color .2s}.tech-kpi-card:hover{transform:translateY(-2px);border-color:#f59e0b66}.tech-kpi-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.tech-kpi-val{font-size:1.5rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}.tech-kpi-sub{font-size:.75rem;color:#64748b}.tech-grid-2{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:768px){.tech-grid-2{grid-template-columns:repeat(2,1fr)}}.tech-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:.625rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease-in-out;border:1px solid transparent}.tech-btn-primary{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 12px #f59e0b40}.tech-btn-primary:hover{background:linear-gradient(135deg,#fbbf24,#d97706);box-shadow:0 6px 16px #f59e0b59}.tech-btn-secondary{background:#1e293bcc;color:#e2e8f0;border-color:#334155cc}.tech-btn-secondary:hover{background:#334155cc;color:#fff}.tech-table-wrapper,.tech-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:.75rem;border:1px solid rgba(51,65,85,.6);background:#0f172a99}.tech-table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.tech-table th{background:#0b0f19cc;color:#94a3b8;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.75rem 1rem;border-bottom:1px solid rgba(51,65,85,.7);white-space:nowrap;text-align:center}.tech-table td{padding:.875rem 1rem;border-bottom:1px solid rgba(51,65,85,.4);color:#cbd5e1;vertical-align:middle;text-align:center}.tech-table th.col-name,.tech-table th.col-main-entity,.tech-table td.col-name,.tech-table td.col-main-entity{text-align:left!important}.tech-table tbody tr{transition:background-color .15s}.tech-table tbody tr:hover{background-color:#1e293b80}.tech-table tbody tr.tech-highlight-row{background-color:#f59e0b1f;border-left:3px solid #f59e0b}.tech-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1}.tech-badge-active{background:#10b9811f;color:#34d399;border:1px solid rgba(16,185,129,.25)}.tech-badge-trial{background:#3b82f61f;color:#60a5fa;border:1px solid rgba(59,130,246,.25)}.tech-badge-grace{background:#f59e0b1f;color:#fbbf24;border:1px solid rgba(245,158,11,.25)}.tech-badge-expired,.tech-badge-inactive,.tech-badge-suspended{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25)}.tech-badge-gold{background:linear-gradient(135deg,#f59e0b40,#d977064d);color:#fbbf24;border:1px solid rgba(245,158,11,.5);font-weight:800}.tech-badge-silver{background:#94a3b833;color:#e2e8f0;border:1px solid rgba(148,163,184,.4);font-weight:700}.tech-badge-bronze{background:#b4530933;color:#f97316;border:1px solid rgba(180,83,9,.4);font-weight:700}.tech-state-container{padding:3rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.tech-spinner{width:2rem;height:2rem;border:3px solid rgba(245,158,11,.2);border-top-color:#f59e0b;border-radius:50%;animation:tech-spin .8s linear infinite}@keyframes tech-spin{to{transform:rotate(360deg)}}.tech-empty-icon{width:3.5rem;height:3.5rem;border-radius:1rem;background:#1e293b99;color:#64748b;display:flex;align-items:center;justify-content:center}.tech-empty-title{font-size:1.125rem;font-weight:700;color:#cbd5e1}.tech-empty-desc{font-size:.875rem;color:#64748b;max-width:28rem}.tech-error-box{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.75rem;padding:1.25rem;color:#fca5a5;display:flex;flex-direction:column;align-items:center;gap:.75rem}.tech-alert-info{background:#3b82f614;border:1px solid rgba(59,130,246,.25);border-radius:.75rem;padding:1rem;display:flex;gap:.75rem;color:#93c5fd;font-size:.8125rem;line-height:1.5}.tech-search-bar{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.tech-search-input{flex:1;min-width:200px;background:#0f172acc;border:1px solid rgba(51,65,85,.7);border-radius:.625rem;padding:.5rem .875rem;color:#fff;font-size:.875rem;outline:none;transition:border-color .15s}.tech-search-input:focus{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.tech-search-input::placeholder{color:#64748b}.tech-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(51,65,85,.5);font-size:.8125rem;color:#94a3b8}.tech-pagination-btns{display:flex;gap:.5rem}.tech-header-actions{display:flex;align-items:center;gap:.75rem}.tech-user-info{text-align:right;display:none}@media(min-width:640px){.tech-user-info{display:block}}.tech-user-name{font-size:.75rem;font-weight:600;color:#f8fafc}.tech-user-email{font-size:.625rem;color:#94a3b8}.tech-btn-logout{padding:.375rem .625rem}.tech-brand-logo-lg{width:3.25rem;height:3.25rem;font-size:1.25rem}.tech-btn-sm{padding:.25rem .5rem;font-size:.75rem}.tech-btn-full{width:100%}.tech-flex-col-gap{display:flex;flex-direction:column;gap:1.5rem}.tech-flex-between-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.tech-flex-center-gap{display:flex;align-items:center;gap:1rem}.tech-flex-wrap-gap{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.tech-text-gold{color:#fbbf24}.tech-text-blue{color:#38bdf8}.tech-text-green{color:#34d399}.tech-text-amber{color:#f59e0b}.tech-text-muted{color:#94a3b8}.tech-text-light{color:#f8fafc}.tech-font-mono{font-family:inherit}.tech-partner-pill{margin-left:.75rem;color:#94a3b8}.tech-profile-list{display:flex;flex-direction:column;gap:.875rem;font-size:.875rem}.tech-profile-row{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:1px solid rgba(51,65,85,.4)}.tech-profile-row-last{display:flex;justify-content:space-between;align-items:center}.tech-profile-label{color:#94a3b8}.tech-profile-value{color:#fff}.tech-profile-code{color:#fbbf24;font-family:inherit}.tech-profile-phone{color:#34d399;font-family:inherit;display:flex;align-items:center;gap:.375rem}.tech-profile-email{color:#60a5fa;display:flex;align-items:center;gap:.375rem}.tech-profile-partner-code{color:#38bdf8;font-family:inherit;font-weight:600}.tech-profile-partner-legal{color:#cbd5e1}.tech-profile-date{color:#cbd5e1;display:flex;align-items:center;gap:.375rem}.tech-profile-empty-partner{padding:2rem 1rem;text-align:center;color:#64748b}.tech-security-card-inner{display:flex;align-items:flex-start;gap:1rem}.tech-security-icon-box{padding:.625rem;border-radius:.75rem;background:#10b9811a;color:#34d399;border:1px solid rgba(16,185,129,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tech-security-title{font-weight:700;color:#f8fafc;margin-bottom:.25rem}.tech-security-desc{color:#94a3b8;font-size:.8125rem;line-height:1.6;margin:0}.tech-search-input-wrapper{position:relative;flex:1;min-width:240px}.tech-search-input-padded{width:100%;padding-left:2.25rem}.tech-search-icon-inside{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#64748b;pointer-events:none}.tech-card-flush{padding:0;overflow:hidden}.tech-table-wrapper-flush{border:none;border-radius:0}.tech-th-right{text-align:right}.tech-td-school-name{font-weight:700;color:#f8fafc}.tech-school-ordinal{font-size:12px;color:var(--color-text-muted)}.tech-school-name-cell{display:flex;align-items:center;gap:.5rem}.tech-school-icon{color:#38bdf8;flex-shrink:0}.tech-tenant-id-pill{font-family:inherit;font-size:.75rem;color:#60a5fa}.tech-date-cell{font-size:.8125rem;color:#94a3b8;display:flex;align-items:center;gap:.375rem}.tech-date-icon{color:#64748b}.tech-payment-count-cell{text-align:right;font-weight:600;color:#e2e8f0}.tech-payment-count-inner{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.tech-payment-icon{color:#94a3b8}.tech-td-revenue{text-align:right;font-weight:700;color:#38bdf8;font-variant-numeric:tabular-nums}.tech-td-commission{text-align:right;font-weight:700;color:#34d399;font-variant-numeric:tabular-nums}.tech-pagination-padded{padding:.875rem 1.25rem}.tech-page-indicator{display:flex;align-items:center;padding:0 .5rem;font-weight:600}.tech-rank-highlight-card{background:linear-gradient(135deg,#0f172ae6,#1e293bb3);border-color:#f59e0b4d}.tech-rank-highlight-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem}.tech-rank-trophy-box{padding:.875rem;border-radius:1rem;background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tech-rank-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.tech-rank-number{font-size:1.75rem;font-weight:900;color:#fff;display:flex;align-items:center;gap:.5rem}.tech-rank-total{font-size:.875rem;font-weight:500;color:#94a3b8}.tech-rank-metrics-group{display:flex;gap:2rem;flex-wrap:wrap}.tech-rank-metric-label{font-size:.75rem;color:#94a3b8}.tech-rank-metric-val-schools{font-size:1.25rem;font-weight:800;color:#f8fafc}.tech-rank-metric-val-revenue{font-size:1.25rem;font-weight:800;color:#38bdf8}.tech-leaderboard-header{padding:1.25rem 1.5rem;margin-bottom:0}.tech-privacy-badge{font-size:.75rem;color:#94a3b8;display:flex;align-items:center;gap:.375rem}.tech-th-rank{width:100px}.tech-rank-avatar{width:1.75rem;height:1.75rem;border-radius:50%;background:#33415599;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:.75rem;font-weight:700;flex-shrink:0}.tech-rank-avatar-own{background:#f59e0b33;color:#fbbf24}.tech-rank-name{font-weight:600;color:#f1f5f9}.tech-rank-name-own{font-weight:800;color:#fbbf24}.tech-badge-own-pill{font-size:.625rem;padding:.1rem .375rem}.tech-td-rank-schools{text-align:right;font-weight:700;color:#f8fafc}.tech-td-rank-revenue{text-align:right;font-weight:800;color:#38bdf8;font-variant-numeric:tabular-nums}.tech-td-rank-revenue-own{color:#fbbf24}.tech-rank-plain{font-weight:700;color:#94a3b8;padding:0 .5rem}*{box-sizing:border-box}*:focus:not(:focus-visible){outline:none!important}html,body,#root{width:100%;min-height:100%;min-height:100dvh;margin:0;padding:0}body{min-width:320px;background:var(--surface-app);color:var(--color-text-title);font-family:var(--font-family-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit}button{cursor:pointer;border:0;background:transparent}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--border-color-focus);outline-offset:2px}.app-shell{display:flex;min-height:100vh;position:relative;background:var(--surface-app)}.sidebar{width:260px;position:fixed;top:14px;left:14px;bottom:14px;height:calc(100vh - 28px);background:var(--color-sidebar-gradient);border-radius:24px;border:1.5px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .25));box-shadow:0 20px 48px #37287840,inset 0 1.5px 2px #ffffff59;color:var(--color-text-on-sidebar, #ffffff);padding:16px 12px 12px;z-index:30;display:flex;flex-direction:column;overflow:hidden}.sidebar-header-unified{display:block;flex-shrink:0;margin-bottom:8px}.sidebar-tenant-picker{position:relative;flex-shrink:0}.sidebar-tenant-trigger,.sidebar-tenant-static{width:100%;min-height:68px;box-sizing:border-box;padding:8px 10px;border-radius:16px;border:1px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .22));background:var(--color-sidebar-tenant-chip-bg, rgba(255, 255, 255, .12));color:var(--color-text-on-sidebar, #ffffff);box-shadow:0 4px 16px #00000014,inset 0 1px 1px #ffffff40;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.sidebar-tenant-trigger{cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.sidebar-tenant-trigger:hover:not(:disabled){background:var(--color-sidebar-item-hover-bg, rgba(255, 255, 255, .2));border-color:#ffffff59;box-shadow:0 6px 20px #0000001f,inset 0 1px 1px #ffffff4d}.sidebar-tenant-trigger:focus-visible,.sidebar-tenant-option:focus-visible{outline:3px solid var(--color-focus-ring, rgba(255, 255, 255, .7));outline-offset:2px}.sidebar-tenant-trigger:disabled,.sidebar-tenant-option:disabled{cursor:wait;opacity:.82}.sidebar-tenant-logo{grid-column:1}.sidebar-tenant-copy{grid-column:2;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px}.sidebar-tenant-action{grid-column:3;display:flex;align-items:center;justify-content:center}.sidebar-tenant-picker .tenant-label{font-size:8.5px;font-weight:700;letter-spacing:.08em;opacity:.8;text-transform:uppercase}.sidebar-tenant-picker .tenant-name{font:700 12.5px var(--font-family-display, sans-serif);line-height:1.3}.sidebar-tenant-picker .tenant-year{font-size:10px;opacity:.85}@keyframes marqueePingPong{0%,15%{transform:translate(0)}45%,65%{transform:translate(var(--marquee-distance, -40px))}85%,to{transform:translate(0)}}.tenant-marquee-container{overflow:hidden;white-space:nowrap;min-width:0;width:100%}.tenant-marquee-text.animate-marquee{animation:marqueePingPong var(--marquee-duration, 6s) ease-in-out infinite;will-change:transform}.sidebar-tenant-trigger:hover .tenant-marquee-text.animate-marquee,.sidebar-tenant-trigger:focus-within .tenant-marquee-text.animate-marquee{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.tenant-marquee-text.animate-marquee{animation:none!important;transform:none!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:block!important}}.tenant-picker-chevron{flex-shrink:0;transition:transform var(--transition-fast)}.tenant-picker-chevron.is-open{transform:rotate(180deg)}.tenant-switch-spinner{flex-shrink:0;animation:tenantSpin .8s linear infinite}@keyframes tenantSpin{to{transform:rotate(360deg)}}.sidebar-tenant-menu{margin-top:6px;max-height:min(280px,42vh);overflow-y:auto;padding:6px;border-radius:var(--radius-md, 14px);border:1px solid var(--border-color-card, rgba(0, 0, 0, .08));background:var(--surface-card, #ffffff);color:var(--color-text-title, #1e1b4b);box-shadow:0 16px 36px #0000002e;position:absolute;top:100%;left:0;right:0;z-index:50}.sidebar-tenant-option{width:100%;min-height:52px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-sm, 10px);background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.sidebar-tenant-option:hover:not(:disabled){background:var(--color-primary-subtle, rgba(99, 102, 241, .08))}.sidebar-tenant-option.is-selected{border-color:var(--color-primary-light, #a5b4fc);background:var(--color-primary-subtle, rgba(99, 102, 241, .1));color:var(--color-primary-dark, #4338ca)}.sidebar-tenant-option-copy{min-width:0;display:flex;flex-direction:column}.sidebar-tenant-divider{height:1px;background:var(--border-color-card, rgba(0, 0, 0, .08));margin:6px 4px}.sidebar-workspace-platform-option{background:linear-gradient(135deg,#6366f114,#a855f714);border:1px dashed rgba(99,102,241,.35)}.sidebar-workspace-platform-option:hover:not(:disabled){background:linear-gradient(135deg,#6366f126,#a855f726);border-color:#6366f1b3}.sidebar-workspace-partner-option{background:linear-gradient(135deg,#10b98114,#14b8a614);border:1px dashed rgba(16,185,129,.35)}.sidebar-workspace-partner-option:hover:not(:disabled){background:linear-gradient(135deg,#10b98126,#14b8a626);border-color:#10b981b3}.sidebar-workspace-technician-option{background:linear-gradient(135deg,#f59e0b14,#f9731614);border:1px dashed rgba(245,158,11,.35)}.sidebar-workspace-technician-option:hover:not(:disabled){background:linear-gradient(135deg,#f59e0b26,#f9731626);border-color:#f59e0bb3}.sidebar-workspace-parent-option{background:linear-gradient(135deg,#a855f714,#ec489914);border:1px dashed rgba(168,85,247,.35)}.sidebar-workspace-parent-option:hover:not(:disabled){background:linear-gradient(135deg,#a855f726,#ec489926);border-color:#a855f7b3}.sidebar-platform-option-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;border-radius:8px;background:#ffffff26;box-shadow:0 2px 6px #0000001a}.sidebar-tenant-option-copy strong{font:700 12px var(--font-family-display, sans-serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-tenant-option-copy small{margin-top:2px;font-size:10px;color:var(--color-text-muted, #64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-close{display:none;position:absolute;top:6px;right:6px;background:var(--color-sidebar-item-hover-bg, rgba(255, 255, 255, .2));border:1px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .25));color:var(--color-text-on-sidebar, #ffffff);padding:4px;border-radius:var(--radius-sm, 8px);cursor:pointer;z-index:10}.sidebar-nav-scroll{flex:1;overflow-y:auto;padding-right:4px;margin-right:-4px;margin-top:4px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--color-sidebar-item-border, rgba(255, 255, 255, .22)) transparent}.sidebar-nav-scroll::-webkit-scrollbar{width:4px}.sidebar-nav-scroll::-webkit-scrollbar-thumb{background:var(--color-sidebar-item-border, rgba(255, 255, 255, .25));border-radius:4px}.sidebar-group{display:flex;flex-direction:column;gap:4px}.sidebar-group+.sidebar-group{position:relative;margin-top:15px}.sidebar-group+.sidebar-group:before{content:"";position:absolute;top:-15px;left:10px;right:10px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);pointer-events:none}.sidebar-group-title{padding:0 8px 3px}.sidebar-nav-group-title{font-size:11px;font-weight:800;color:var(--color-text-on-sidebar-muted, rgba(255, 255, 255, .75));padding:0 12px;margin:14px 0 6px;letter-spacing:.06em;text-transform:uppercase}.sidebar-nav-list{display:flex;flex-direction:column;gap:4px}.sidebar-nav-item{display:flex;align-items:center;gap:12px;color:var(--color-text-on-sidebar, rgba(255, 255, 255, .92));text-decoration:none;padding:5px 9px;border-radius:16px;font-size:13px;font-weight:700;background:transparent;border:1.5px solid transparent;box-shadow:none;transition:transform var(--transition-bounce),box-shadow var(--transition-bounce),background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);position:relative;-webkit-user-select:none;user-select:none;min-height:44px}@media(hover:hover)and (pointer:fine){.sidebar-nav-item:hover{background:var(--color-sidebar-item-hover-bg, rgba(255, 255, 255, .12));border-color:var(--color-sidebar-item-border, rgba(255, 255, 255, .18));color:var(--color-text-on-sidebar, #ffffff);transform:translate(4px);box-shadow:0 4px 12px #1e0f5026}.sidebar-nav-item:hover .raised-icon{transform:translateY(-2px) scale(1.08)}}.sidebar-nav-item.active{background:#fff!important;border-color:#fff!important;color:var(--color-primary-dark)!important;font-weight:800!important;border-radius:18px!important;transform:none!important;box-shadow:0 10px 24px #23145f42,inset 0 1.5px 2px #fff!important;outline:none!important}.sidebar-nav-item.active .sidebar-nav-label{font-weight:800!important}.sidebar-nav-item:active{transform:translateY(1px) scale(.98)!important;box-shadow:0 1px 3px #0000001a,inset 0 2px 4px #00000026!important}.sidebar-nav-item:focus-visible{outline:2px solid var(--color-text-on-sidebar, rgba(255, 255, 255, .9))!important;outline-offset:2px!important}.sidebar-nav-label{flex:1;font-weight:700;letter-spacing:-.1px}.sidebar-active-pill{display:none;width:5px;height:20px;background:var(--color-primary);border-radius:4px;margin-left:auto}.sidebar-nav-item.active .sidebar-active-pill{display:block}.sidebar-foot{margin-top:8px;border-top:1px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .16));padding:10px 6px 0;display:flex;align-items:center;gap:10px;flex-shrink:0}.sidebar-foot-info strong{display:block;font-size:10px;color:var(--color-text-on-sidebar, #ffffff)}.sidebar-foot-info span{display:block;font-size:10px;color:var(--color-text-on-sidebar-muted, rgba(255, 255, 255, .7));margin-top:1px}.sidebar-account-footer{margin-top:auto;padding-top:10px;border-top:1px solid transparent;position:relative;flex-shrink:0}.sidebar-account-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--color-sidebar-tenant-chip-bg, rgba(255, 255, 255, .12));border:1px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .22));border-radius:16px;padding:6px 8px;box-shadow:0 4px 12px #00000014}.sidebar-user-trigger{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:none;padding:2px 4px;cursor:pointer;text-align:left;color:var(--color-text-on-sidebar, #ffffff);border-radius:12px;transition:opacity var(--transition-fast)}.sidebar-user-trigger:hover{opacity:.9}.sidebar-user-trigger:focus-visible{outline:2px solid var(--color-focus-ring, rgba(255, 255, 255, .7));outline-offset:2px}.sidebar-user-avatar{flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;min-width:0;gap:2px}.sidebar-user-name{font-size:13px;font-weight:700;color:var(--color-text-on-sidebar, #ffffff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.2px}.sidebar-role-badge{display:inline-block;align-self:flex-start;font-size:9.5px;font-weight:800;letter-spacing:.05em;padding:1px 6px;border-radius:6px;background:#ffffff38;color:var(--color-text-on-sidebar, #ffffff);text-transform:uppercase;white-space:nowrap}.sidebar-account-actions{flex-shrink:0;display:flex;align-items:center}.sidebar-account-menu{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:#fff;color:#1e293b;border-radius:16px;border:1px solid #e2e8f0;box-shadow:0 20px 35px -5px #00000040,0 10px 15px -6px #00000026;padding:14px;z-index:100;animation:popoverFadeIn .15s ease-out}@keyframes popoverFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sidebar-account-menu-header{display:flex;flex-direction:column;gap:3px}.sidebar-account-menu-name{font-size:14px;font-weight:700;color:#0f172a}.sidebar-account-menu-email{font-size:12px;color:#64748b;word-break:break-all}.sidebar-account-menu-school{font-size:11.5px;font-weight:600;color:#6366f1;margin-top:2px}.sidebar-account-menu-divider{height:1px;background:#f1f5f9;margin:10px 0}.sidebar-account-menu-logout{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff1f2;border:1px solid #ffe4e6;border-radius:10px;color:#e11d48;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.sidebar-account-menu-logout:hover:not(:disabled){background:#ffe4e6}.sidebar-account-menu-logout:disabled{opacity:.6;cursor:not-allowed}.app-main{margin-left:288px;width:calc(100% - 288px);min-height:100vh;display:flex;flex-direction:column}.header{margin:14px 20px 0 0;height:68px;background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);border:1.5px solid var(--border-color-card);border-radius:20px;box-shadow:var(--shadow-card);position:sticky;top:14px;z-index:20}.header-left{display:flex;align-items:center;gap:14px}.menu-button,.school-identity--header-compact{display:none!important}.header-title-block{display:block}.header-title-block h1{font:800 18px var(--font-family-display);color:var(--color-text-title);margin:0;line-height:1.2}.header-title-block span{font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.header-search-wrap{flex:1;max-width:440px;margin:0 var(--space-6)}.header-search{display:flex;align-items:center;gap:10px;background:var(--surface-input);border:1.5px solid var(--border-color-card);border-radius:var(--radius-full);padding:8px 18px;color:var(--color-text-muted);box-shadow:var(--shadow-subtle);transition:all var(--transition-fast)}.header-search:focus-within{background:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce726,var(--shadow-raised-sm)}.header-search input{border:0;outline:0;background:transparent;width:100%;font-size:12.5px;color:var(--color-text-title)}.header-actions{display:flex;align-items:center;gap:12px}.header-profile-btn{display:flex;align-items:center;gap:8px;border:1.5px solid var(--border-color-card);background:#fff;border-radius:var(--radius-full);padding:3px 10px 3px 4px;transition:all var(--transition-fast);box-shadow:var(--shadow-raised-sm);max-width:240px;height:40px;box-sizing:border-box}@media(hover:hover)and (pointer:fine){.header-profile-btn:hover{border-color:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-raised-hover)}.header-profile-btn:active{transform:translateY(1px);box-shadow:var(--shadow-pressed)}}.header-avatar{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;flex-shrink:0;overflow:hidden;display:grid;place-items:center}.header-user-text{display:flex;align-items:center;gap:6px;text-align:left;min-width:0;overflow:hidden}.header-user-text strong{font-size:12px;font-weight:700;color:var(--color-text-title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;display:inline-block}.role-pill{background:var(--color-primary-light);color:var(--color-primary-hover);font-size:9px;font-weight:800;padding:2px 7px;border-radius:var(--radius-xs);letter-spacing:.04em;flex-shrink:0;white-space:nowrap}.profile-chevron{color:var(--color-text-muted);flex-shrink:0}.app-avatar{border-radius:50%;position:relative;display:inline-grid;place-items:center;overflow:hidden;flex-shrink:0;-webkit-user-select:none;user-select:none;background:var(--color-primary-light, #ede9fe);color:var(--color-primary-dark, #4338ca);font-weight:700;box-shadow:inset 0 1px 2px #fffc,0 2px 4px #00000014;border:1.5px solid rgba(255,255,255,.9);box-sizing:border-box}.app-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;transition:opacity .15s ease-in-out}.app-avatar-img.is-loading{opacity:0}.app-avatar-img.is-loaded{opacity:1}.app-avatar--fallback{background:linear-gradient(135deg,var(--color-primary-light, #ede9fe) 0%,#f3e8ff 100%);color:var(--color-primary, #6c5ce7)}.app-avatar-fallback-text{display:flex;align-items:center;justify-content:center;line-height:1;font-family:var(--font-family-display, inherit);letter-spacing:-.02em}.notification-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#ef4444;right:7px;top:7px;border:2px solid #ffffff;box-shadow:0 2px 4px #ef444466}.school-identity--sidebar{padding:0 4px 2px}.school-identity__brand-row{display:flex;align-items:center;gap:12px;margin-bottom:6px}.school-identity__mark{border-radius:var(--radius-md);display:grid;place-items:center;background:var(--color-sidebar-brand-mark-bg, rgba(255, 255, 255, .22));border:1.5px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .35));font:800 14px var(--font-family-display);color:var(--color-sidebar-brand-mark-color, #ffffff);flex-shrink:0;box-shadow:0 4px 12px #0000001a}.school-identity__mark--sm{width:34px;height:34px;border-radius:10px;font-size:16px;background:var(--color-primary-light);border-color:#ddd6fe;color:var(--color-primary)}.school-identity__mark--md{width:42px;height:42px;font-size:15px}.school-identity__mark--lg{width:52px;height:52px;font-size:24px}.school-identity__brand-info strong{display:block;font:700 14.5px var(--font-family-display);color:var(--color-text-on-sidebar, #ffffff)}.school-identity__brand-info span{display:block;font-size:9.5px;letter-spacing:.06em;color:var(--color-text-on-sidebar-muted, rgba(255, 255, 255, .75));margin-top:2px}.school-identity__tenant-chip{background:var(--color-sidebar-tenant-chip-bg, rgba(255, 255, 255, .12));border:1px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .14));border-radius:var(--radius-md);padding:8px 11px;margin-top:2px;box-shadow:inset 0 1px 1px #fff3}.tenant-label{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-on-sidebar-muted, rgba(255, 255, 255, .7))}.tenant-name{display:block;font-size:11.5px;font-weight:700;margin:2px 0 1px;color:var(--color-text-on-sidebar, #ffffff)}.tenant-year{display:block;font-size:9px;color:var(--color-text-on-sidebar-muted, rgba(255, 255, 255, .75))}.school-identity--header-compact{align-items:center;gap:10px}.school-identity--header-compact .school-identity__title{font:700 13.5px var(--font-family-display);color:var(--color-text-title);display:block}.school-identity--header-compact .school-identity__sub{font-size:10px;color:var(--color-text-muted);display:block}.raised-icon{border-radius:var(--radius-md);display:grid;place-items:center;flex-shrink:0;transition:transform var(--transition-bounce),box-shadow var(--transition-bounce);-webkit-user-select:none;user-select:none;position:relative}.raised-icon--sm{width:32px;height:32px;font-size:15px;border-radius:10px;box-shadow:var(--shadow-raised-sm)}.raised-icon--md{width:44px;height:44px;font-size:21px;border-radius:13px;box-shadow:var(--shadow-raised-md)}.raised-icon--lg{width:56px;height:56px;font-size:28px;border-radius:var(--radius-lg);box-shadow:var(--shadow-raised-lg)}.raised-icon--xl{width:72px;height:72px;font-size:36px;border-radius:var(--radius-lg);box-shadow:var(--shadow-raised-lg)}.module-icon-emoji{display:inline-block;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.1))}.raised-icon--sm .module-icon-emoji{font-size:15px}.raised-icon--md .module-icon-emoji{font-size:21px}.raised-icon--lg .module-icon-emoji{font-size:28px}.raised-icon--xl .module-icon-emoji{font-size:36px}.raised-icon--primary{background:var(--sidebarGradient, var(--color-primary-gradient, linear-gradient(135deg, var(--color-primary-light, #ede9fe), var(--color-primary, #6366f1))));color:var(--text-on-primary, #ffffff);border:1.5px solid var(--color-primary-border, rgba(99, 102, 241, .2))}.raised-icon--purple{background:var(--pastel-purple-gradient);color:var(--pastel-purple-text);border:1.5px solid var(--pastel-purple-border)}.raised-icon--pink{background:var(--pastel-pink-gradient);color:var(--pastel-pink-text);border:1.5px solid var(--pastel-pink-border)}.raised-icon--blue{background:var(--pastel-blue-gradient);color:var(--pastel-blue-text);border:1.5px solid var(--pastel-blue-border)}.raised-icon--green{background:var(--pastel-green-gradient);color:var(--pastel-green-text);border:1.5px solid var(--pastel-green-border)}.raised-icon--yellow{background:var(--pastel-yellow-gradient);color:var(--pastel-yellow-text);border:1.5px solid var(--pastel-yellow-border)}.raised-icon--neutral{background:var(--pastel-neutral-gradient);color:var(--pastel-neutral-text);border:1.5px solid var(--pastel-neutral-border)}.raised-icon--white{background:#fff;color:var(--color-primary);border:1.5px solid #ffffff;box-shadow:0 6px 16px #4e3c961f,inset 0 2px 3px #fff}@media(hover:hover)and (pointer:fine){.raised-icon--interactive:hover{transform:translateY(-5px) scale(1.08) rotate(1deg);box-shadow:var(--shadow-raised-hover)}}.raised-icon--interactive:active{transform:translateY(2px) scale(.96)!important;box-shadow:var(--shadow-pressed)!important}.soft-card{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-7);box-shadow:var(--shadow-card);transition:transform var(--transition-bounce),box-shadow var(--transition-bounce),border-color var(--transition-fast);position:relative}.soft-card--raised{box-shadow:var(--shadow-card)}.soft-card--floating{box-shadow:var(--shadow-floating)}@media(hover:hover)and (pointer:fine){.soft-card--interactive:hover{transform:translateY(-6px) scale(1.015);box-shadow:var(--shadow-card-hover);border-color:#c8bef0e6}}.soft-card--purple{background:var(--pastel-purple-gradient);border-color:var(--pastel-purple-border);color:var(--pastel-purple-text)}.soft-card--pink{background:var(--pastel-pink-gradient);border-color:var(--pastel-pink-border);color:var(--pastel-pink-text)}.soft-card--blue{background:var(--pastel-blue-gradient);border-color:var(--pastel-blue-border);color:var(--pastel-blue-text)}.soft-card--green{background:var(--pastel-green-gradient);border-color:var(--pastel-green-border);color:var(--pastel-green-text)}.soft-card--yellow{background:var(--pastel-yellow-gradient);border-color:var(--pastel-yellow-border);color:var(--pastel-yellow-text)}.metric-card{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-lg);padding:20px 22px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-card);transition:transform var(--transition-bounce),box-shadow var(--transition-bounce),border-color var(--transition-fast);cursor:pointer}@media(hover:hover)and (pointer:fine){.metric-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-card-hover);border-color:#c8bef0e6}.metric-card:hover .raised-icon{transform:translateY(-3px) scale(1.08);box-shadow:var(--shadow-raised-hover)}}.metric-card__body{flex:1}.metric-card__label{display:block;font-size:11.5px;color:var(--color-text-muted);font-weight:600}.metric-card__value{display:block;font:800 26px var(--font-family-display);color:var(--color-text-title);margin:3px 0 2px;letter-spacing:-.5px}.metric-card__note{display:block;font-size:10px;color:var(--color-text-subtle);font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-md);font-weight:700;transition:transform var(--transition-tactile),box-shadow var(--transition-tactile),background var(--transition-fast);cursor:pointer;border:0;text-decoration:none;-webkit-user-select:none;user-select:none}.btn--sm{padding:7px 14px;font-size:11.5px}.btn--md{padding:10px 18px;font-size:12.5px}.btn--lg{padding:13px 24px;font-size:14px;border-radius:var(--radius-lg)}.btn--primary{background:var(--primary-surface, var(--color-primary-gradient));color:var(--text-on-primary, var(--color-text-on-primary, #ffffff));box-shadow:0 8px 22px #6c5ce759,inset 0 1.5px 2px #fff6}.btn--primary .btn__icon{color:inherit}@media(hover:hover)and (pointer:fine){.btn--primary:hover:not(:disabled){background:var(--primary-surface-hover, var(--color-primary-hover));transform:translateY(-3px);box-shadow:0 12px 28px #6c5ce773,inset 0 1.5px 2px #fff6}[data-spring-bounce=on] .btn--primary:hover:not(:disabled),[data-spring-bounce=on] .btn--secondary:hover:not(:disabled),[data-spring-bounce=on] .interactive-bounce-target:hover{transform:translateY(var(--motion-distance, -4px)) scale(var(--motion-scale, 1.025));transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease,background .15s ease}[data-spring-bounce=off] .btn--primary:hover:not(:disabled),[data-spring-bounce=off] .btn--secondary:hover:not(:disabled),[data-spring-bounce=off] .interactive-bounce-target:hover{transform:translateY(-1px) scale(1);transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s ease,background .15s ease}}.btn--primary:active:not(:disabled){transform:translateY(2px) scale(.97)!important;background:var(--primary-surface-pressed, var(--color-primary-active));box-shadow:var(--shadow-pressed)!important}.btn--secondary{background:#fff;color:var(--color-text-title);border:1.5px solid var(--border-color-card);box-shadow:var(--shadow-raised-sm)}.btn--secondary .btn__icon{color:inherit}@media(hover:hover)and (pointer:fine){.btn--secondary:hover:not(:disabled){background:var(--surface-subtle);border-color:#dcd7ec;transform:translateY(-3px);box-shadow:0 8px 20px #4e3c9626}}.btn--secondary:active:not(:disabled){transform:translateY(2px) scale(.97)!important;box-shadow:var(--shadow-pressed)!important}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}.icon-btn{border-radius:var(--radius-md);display:grid;place-items:center;position:relative;transition:transform var(--transition-tactile),box-shadow var(--transition-tactile),background var(--transition-fast);cursor:pointer}.icon-btn--sm{width:34px;height:34px}.icon-btn--md{width:40px;height:40px}.icon-btn--lg{width:48px;height:48px}.icon-btn--default{background:#fff;border:1.5px solid var(--border-color-card);color:var(--color-text-body);box-shadow:var(--shadow-raised-sm)}@media(hover:hover)and (pointer:fine){.icon-btn--default:hover{background:var(--surface-subtle);border-color:#dcd7ec;transform:translateY(-3px);box-shadow:0 8px 20px #4e3c9626}}.icon-btn--default:active{transform:translateY(2px) scale(.97)!important;box-shadow:var(--shadow-pressed)!important}.status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-full);font-weight:700;letter-spacing:.02em;width:fit-content;box-shadow:var(--shadow-subtle)}.status-badge--sm{padding:3px 8px;font-size:10px}.status-badge--md{padding:5px 13px;font-size:11.5px}.status-badge__dot{width:8px;height:8px;border-radius:50%}.status-badge--success{background:var(--pastel-green-bg);color:var(--pastel-green-text);border:1.5px solid var(--pastel-green-border)}.status-badge--success .status-badge__dot{background:#22c55e;box-shadow:0 0 0 2px #22c55e40}.status-badge--warning{background:var(--pastel-yellow-bg);color:var(--pastel-yellow-text);border:1.5px solid var(--pastel-yellow-border)}.status-badge--warning .status-badge__dot{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b40}.status-badge--danger{background:var(--pastel-pink-bg);color:var(--pastel-pink-text);border:1.5px solid var(--pastel-pink-border)}.status-badge--danger .status-badge__dot{background:#ef4444}.status-badge--primary,.status-badge--info{background:var(--color-primary-light, #e0f2fe);color:var(--brand-ink, var(--color-primary-dark, #0369a1));border:1.5px solid var(--color-primary-border, rgba(99, 102, 241, .2))}.status-badge--primary .status-badge__dot,.status-badge--info .status-badge__dot{background:var(--color-primary, #6366f1);box-shadow:0 0 0 2px #6366f140}.status-badge--purple{background:var(--pastel-purple-bg);color:var(--pastel-purple-text);border:1.5px solid var(--pastel-purple-border)}.status-badge--neutral{background:var(--pastel-neutral-bg);color:var(--pastel-neutral-text);border:1.5px solid var(--pastel-neutral-border)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6);flex-wrap:wrap;gap:16px}.page-header__eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--color-primary);text-transform:uppercase;margin-bottom:4px}.page-header__title-row{display:flex;align-items:center;gap:12px}.page-header__title{font:800 24px var(--font-family-display);color:var(--color-text-title);margin:0}.page-header__subtitle{font-size:13px;color:var(--color-text-muted);margin:4px 0 0}.page-header__actions{display:flex;align-items:center;gap:10px}.state-card{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-xl);padding:48px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow-card)}.state-card__title{font:800 18px var(--font-family-display);color:var(--color-text-title);margin:16px 0 6px}.state-card__description{font-size:12.5px;color:var(--color-text-muted);max-width:460px;line-height:1.5;margin:0 0 20px}.state-card__actions{display:flex;gap:10px}.loader{width:38px;height:38px;border:4px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-card{height:110px;background:linear-gradient(90deg,#fff,#f0edf8,#fff);background-size:200%;border-radius:var(--radius-lg);box-shadow:var(--shadow-subtle);animation:shimmer 1.5s infinite}@keyframes shimmer{to{background-position:-200%}}.content{padding:24px 28px 48px 16px;margin:0;width:100%}.network-offline-banner{background:#fffbeb;border-bottom:1px solid #fde68a;color:#92400e;padding:8px 16px;font-size:12.5px;font-weight:600;text-align:center}.mobile-shell-bar{display:none}.welcome-container{display:flex;flex-direction:column;gap:var(--space-5);animation:fadeIn .35s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.welcome-hero-card{background:var(--color-hero-gradient);border:2px solid rgba(255,255,255,.9);border-radius:var(--radius-xl);padding:28px 36px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-floating),inset 0 2px 4px #fffffff2;position:relative;overflow:hidden}.welcome-hero__content{display:flex;align-items:center;gap:26px;z-index:2}.welcome-hero__avatar-bubble{width:92px;height:92px;border-radius:50%;background:#fff;border:3.5px solid #ffffff;display:flex;align-items:center;justify-content:center;font-size:44px;position:relative;box-shadow:0 14px 32px #5a44a040,inset 0 3px 6px #fff;flex-shrink:0}.welcome-hero__avatar-bubble .avatar-sparkle{position:absolute;top:-4px;right:-4px;font-size:18px}.welcome-hero__text{display:flex;flex-direction:column;gap:6px}.welcome-hero__badge{display:inline-flex;align-items:center;gap:8px;background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:5px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:700;color:#43336d;width:fit-content;box-shadow:0 2px 8px #0000000d}.welcome-hero__text h2{margin:4px 0 2px;font-size:26px;font-weight:800;color:#2b1f4d;letter-spacing:-.5px}.welcome-hero__text p{margin:0 0 8px;font-size:14px;color:#4a3e70;max-width:580px;line-height:1.45}.welcome-hero__actions{display:flex;gap:12px;margin-top:6px}.welcome-hero__deco-plant{font-size:80px;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 12px 18px rgba(90,68,160,.2));transform:rotate(-4deg)}.quick-access-section{margin-top:var(--space-4)}.welcome-section-header{display:flex;align-items:center;gap:10px;margin-bottom:var(--space-4)}.welcome-section-header h3{font:800 17px var(--font-family-display);color:var(--color-text-title);margin:0}.section-title-icon{font-size:17px}.quick-access-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.quick-card{display:flex;align-items:center;gap:15px;padding:18px 20px;border-radius:var(--radius-lg);border:1.5px solid transparent;text-align:left;cursor:pointer;transition:transform var(--transition-bounce),box-shadow var(--transition-bounce),border-color var(--transition-fast);box-shadow:var(--shadow-card)}@media(hover:hover)and (pointer:fine){.quick-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-card-hover)}.quick-card:hover .raised-icon{transform:translateY(-3px) scale(1.1)}}.quick-card:active{transform:translateY(2px) scale(.97)!important;box-shadow:var(--shadow-pressed)!important}.quick-card__content h4{font:700 15px var(--font-family-display);margin:0 0 2px}.quick-card__content p{font-size:11px;margin:0;opacity:.85;line-height:1.35}.quick-card__arrow{margin-left:auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#ffffffb3;color:inherit;box-shadow:0 2px 6px #0000000f;transition:transform var(--transition-fast)}@media(hover:hover)and (pointer:fine){.quick-card:hover .quick-card__arrow{transform:translate(4px)}}.quick-card--purple{background:var(--pastel-purple-gradient);color:var(--pastel-purple-text);border-color:var(--pastel-purple-border)}.quick-card--pink{background:var(--pastel-pink-gradient);color:var(--pastel-pink-text);border-color:var(--pastel-pink-border)}.quick-card--yellow{background:var(--pastel-yellow-gradient);color:var(--pastel-yellow-text);border-color:var(--pastel-yellow-border)}.quick-card--blue{background:var(--pastel-blue-gradient);color:var(--pastel-blue-text);border-color:var(--pastel-blue-border)}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:var(--space-5);margin-top:var(--space-5)}.chart-bars{height:210px;display:flex;align-items:flex-end;justify-content:space-around;gap:13px;padding:30px 10px 0;border-bottom:1.5px solid var(--border-color-card);background:repeating-linear-gradient(to bottom,transparent 0,transparent 49px,#f3f1f7 50px)}.chart-bars div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;flex:1}.chart-bars span{display:block;width:min(28px,60%);border-radius:8px 8px 3px 3px;background:linear-gradient(#8877e5,#6552cf);box-shadow:0 4px 10px #6552cf4d}.chart-bars small{font-size:9px;color:var(--color-text-muted)}.notices{display:grid;gap:9px;margin-top:17px}.notices button{background:var(--surface-subtle);border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);padding:12px 14px;display:flex;align-items:center;gap:10px;color:var(--color-text-title);text-align:left;font-size:11.5px;box-shadow:var(--shadow-subtle);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}@media(hover:hover)and (pointer:fine){.notices button:hover{transform:translate(4px);box-shadow:var(--shadow-raised-sm)}}.notices button span{flex:1}.notices i{width:9px;height:9px;border-radius:50%;box-shadow:0 1px 3px #0003}.notices i.amber{background:#efad45}.notices i.rose{background:#ea7180}.notices i.green{background:#4ab87a}.debt{display:flex;align-items:center;gap:14px;border-top:1.5px solid var(--border-color-card);margin-top:16px;padding-top:16px}.debt span{display:block;font-size:10px;color:var(--color-text-muted)}.debt strong{display:block;font:700 16px var(--font-family-display);margin-top:2px}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin:var(--space-5) 0}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e193766;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:0;z-index:25;animation:fadeIn .2s ease-out}@media(max-width:1120px){.welcome-widgets-grid{grid-template-columns:1fr}.quick-access-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1023px){.sidebar{top:0!important;left:0!important;bottom:0!important;height:100vh!important;margin:0!important;border-radius:0 24px 24px 0!important;transform:translate(-105%)!important;transition:transform var(--transition-standard)!important}.sidebar.is-open{transform:translate(0)!important}.sidebar-close,.menu-button{display:grid!important}.school-identity--header-compact{display:flex!important}.header-title-block{display:none!important}.mobile-shell-bar{display:flex!important;align-items:center;justify-content:space-between;height:56px;padding:0 16px;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1.5px solid var(--border-color-card, #e2e8f0);position:sticky;top:0;z-index:25}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#334155;cursor:pointer}.mobile-shell-school{font-size:14px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 140px)}.mobile-shell-actions{display:flex;align-items:center;gap:8px}.app-main{margin-left:0!important;width:100%!important}.header{margin:0!important;border-radius:0!important;border-top:0!important;border-left:0!important;border-right:0!important;top:0!important}.content{padding:var(--space-4) var(--space-4) var(--space-8)}.card-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:768px){.header{padding:0 var(--space-4)}.welcome-hero-card{padding:22px 20px;flex-direction:column;align-items:flex-start}.welcome-hero__deco-plant{display:none}.welcome-hero__content{gap:16px}.welcome-hero__avatar-bubble{width:68px;height:68px;font-size:32px}.clock-display-wrap{flex-direction:column;align-items:flex-start;gap:16px}.weather-metrics-row,.quick-access-grid{grid-template-columns:1fr}}@media(max-width:640px){.header-search-wrap,.header-user-text strong{display:none}.welcome-hero__actions{flex-direction:column;width:100%}.welcome-hero__actions .btn{width:100%}}.login-page{width:100%;min-height:100vh;min-height:100dvh;margin:0;padding:40px 24px;background:radial-gradient(circle at 10% 20%,#f5f3fff2,#ede9fee6 45%,#fdf2f8e6);display:flex;align-items:center;justify-content:center;box-sizing:border-box;overflow-x:hidden}.login-container{width:100%;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;justify-content:center;gap:48px}.login-hero{padding:20px 0;display:flex;flex-direction:column;gap:16px}.login-hero .brand-mark.large{width:72px;height:72px;border-radius:22px;background:linear-gradient(135deg,#fff,#f5f3ff);display:grid;place-items:center;font-size:36px;box-shadow:var(--shadow-raised-md);border:2px solid rgba(255,255,255,.9)}.brand-eyebrow{font:800 11.5px var(--font-family-display);letter-spacing:.08em;color:var(--color-primary-dark);text-transform:uppercase}.login-hero h1{font:800 38px/1.2 var(--font-family-display);color:var(--color-text-title);letter-spacing:-.02em}.login-hero p{font-size:15px;line-height:1.6;color:var(--color-text-body);max-width:480px}.login-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.feature-pill{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid var(--border-color-card);border-radius:var(--radius-full);font:700 12.5px var(--font-family-display);color:var(--color-text-title);box-shadow:var(--shadow-subtle)}.login-card{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:28px;padding:40px 36px;box-shadow:var(--shadow-floating);display:flex;flex-direction:column;gap:22px;max-width:440px;width:100%;margin:0 auto}.login-card-header{display:flex;flex-direction:column;gap:8px;text-align:center;align-items:center}.login-icon-badge{width:52px;height:52px;border-radius:18px;background:var(--surface-subtle);display:grid;place-items:center;box-shadow:var(--shadow-subtle);border:1.5px solid var(--border-color-card);margin-bottom:4px}.login-card-header h2{font:800 22px var(--font-family-display);color:var(--color-text-title);margin:0}.login-card-header p{font-size:13px;color:var(--color-text-muted);line-height:1.5;margin:0}.login-error-alert{background:#fff1f2;border:1.5px solid #ffe4e6;border-radius:var(--radius-md);padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:12.5px;color:#e11d48;line-height:1.4}.google-button{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;padding:14px 20px;border-radius:var(--radius-full);background:#fff;border:1.5px solid var(--border-color-card);box-shadow:var(--shadow-raised-md);font:800 14.5px var(--font-family-display);color:var(--color-text-title);cursor:pointer;transition:all var(--transition-fast)}.google-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-raised-lg);border-color:var(--color-primary-light)}.google-button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-subtle)}.google-button:disabled{opacity:.65;cursor:not-allowed}.login-footer{display:flex;flex-direction:column;gap:12px;text-align:center;margin-top:6px}.login-security-notice{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:700 11.5px var(--font-family-display);color:#16a34a}.login-footer small{font-size:11px;color:var(--color-text-muted);line-height:1.45}.profile-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;width:250px;background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-floating);padding:12px;z-index:100;display:flex;flex-direction:column;gap:8px;animation:fadeInDown .15s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.profile-dropdown-header{padding:6px 8px;display:flex;flex-direction:column;gap:2px}.dropdown-user-name{font:800 14px var(--font-family-display);color:var(--color-text-title)}.dropdown-user-email{font-size:12px;color:var(--color-text-muted)}.dropdown-user-school{font-size:11px;font-weight:700;color:var(--color-primary);margin-top:4px}.profile-dropdown-divider{height:1px;background:var(--border-color-card);margin:2px 0}.profile-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:none;background:transparent;font:700 13px var(--font-family-display);cursor:pointer;transition:all var(--transition-fast);text-align:left}.profile-dropdown-item.logout-item{color:#e11d48}.profile-dropdown-item.logout-item:hover{background:#fff1f2}@media(max-width:900px){.login-page{padding:32px 20px;align-items:flex-start}.login-container{grid-template-columns:1fr;gap:32px;margin-top:auto;margin-bottom:auto}.login-hero{padding:0;text-align:center;align-items:center}.login-hero h1{font-size:28px}.login-features{justify-content:center}}@media(max-width:480px){.login-page{padding:20px 14px}.login-hero h1{font-size:24px}.login-hero p{font-size:13.5px}.login-card{padding:28px 20px;border-radius:24px}}:root{--color-primary: #6c5ce7;--color-primary-hover: #5848c2;--color-primary-active: #4a3cb0;--color-primary-light: #f0edfe;--color-primary-dark: #3f2e96;--color-primary-subtle: #faf8ff;--color-primary-gradient: linear-gradient(135deg, #7c6df0 0%, #6351e0 50%, #5240d4 100%);--color-hero-gradient: linear-gradient(135deg, #ddd4ff 0%, #c4b5fd 50%, #b8a6ff 100%);--color-sidebar-gradient: linear-gradient(180deg, #6c5ce7 0%, #5848c2 100%);--table-header-bg: var(--color-sidebar-gradient, linear-gradient(180deg, #6c5ce7 0%, #5848c2 100%));--table-header-bg-gradient: var(--color-sidebar-gradient, linear-gradient(180deg, #6c5ce7 0%, #5848c2 100%));--table-header-color: var(--text-on-sidebar, #ffffff);--table-header-border: var(--color-sidebar-item-border, rgba(255, 255, 255, .2));--table-header-separator: #ffffff;--brand-banner-bg: linear-gradient(135deg, rgba(108, 92, 231, .2) 0%, rgba(108, 92, 231, .2) 100%);--brand-banner-border: rgba(108, 92, 231, .2);--brand-banner-text: #000000;--brand-ink: #3f2e96;--color-brand-ink: var(--brand-ink, #3f2e96);--callout-raised-bg: linear-gradient(135deg, color-mix(in srgb, var(--color-primary, #6366f1) 8%, #ffffff) 0%, color-mix(in srgb, var(--color-primary, #6366f1) 16%, #ffffff) 100%);--callout-raised-border: color-mix(in srgb, var(--color-primary, #6366f1) 28%, #ffffff);--callout-raised-shadow: var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05)), inset 0 1px 0 rgba(255, 255, 255, .8);--callout-raised-radius: var(--radius-xl, 14px);--pastel-purple-bg: #ede9fe;--pastel-purple-bg-hover: #e4ddfc;--pastel-purple-text: #5b21b6;--pastel-purple-border: #ddd6fe;--pastel-purple-gradient: linear-gradient(135deg, #ede7ff 0%, #e2d9ff 100%);--pastel-purple-shadow: rgba(109, 40, 217, .16);--pastel-pink-bg: #ffe4e6;--pastel-pink-bg-hover: #fecdd3;--pastel-pink-text: #9f1239;--pastel-pink-border: #fecdd3;--pastel-pink-gradient: linear-gradient(135deg, #ffe6eb 0%, #ffd4dc 100%);--pastel-pink-shadow: rgba(225, 29, 72, .16);--pastel-blue-bg: #e0f2fe;--pastel-blue-bg-hover: #bae6fd;--pastel-blue-text: #0369a1;--pastel-blue-border: #bae6fd;--pastel-blue-gradient: linear-gradient(135deg, #e3f2fd 0%, #cde7fe 100%);--pastel-blue-shadow: rgba(2, 132, 199, .16);--pastel-green-bg: #dcfce7;--pastel-green-bg-hover: #bbf7d0;--pastel-green-text: #15803d;--pastel-green-border: #bbf7d0;--pastel-green-gradient: linear-gradient(135deg, #e8f8ef 0%, #d1f3e0 100%);--pastel-green-shadow: rgba(22, 163, 74, .16);--pastel-yellow-bg: #fef3c7;--pastel-yellow-bg-hover: #fde68a;--pastel-yellow-text: #b45309;--pastel-yellow-border: #fde68a;--pastel-yellow-gradient: linear-gradient(135deg, #fff5dc 0%, #ffe9b8 100%);--pastel-yellow-shadow: rgba(217, 119, 6, .16);--pastel-neutral-bg: #f1f5f9;--pastel-neutral-bg-hover: #e2e8f0;--pastel-neutral-text: #334155;--pastel-neutral-border: #e2e8f0;--pastel-neutral-gradient: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);--pastel-neutral-shadow: rgba(100, 116, 139, .12);--surface-app: #f4f3fa;--surface-card: #ffffff;--surface-panel: #ffffff;--surface-subtle: #faf9fe;--surface-input: #f6f5fa;--surface-hover: #f8f7fd;--font-family-display: "Manrope", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-body: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, sans-serif;--color-text-title: #27253a;--color-text-body: #4a455e;--color-text-muted: #7e7a94;--color-text-subtle: #a5a1b8;--color-text-inverse: #ffffff;--border-color-card: #e2e8f0;--border-color-subtle: #f1f5f9;--border-color-focus: var(--color-primary, #6c5ce7);--border-width-standard: 1.5px;--border-width-highlight: 2px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 40px;--space-10: 48px;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 26px;--radius-2xl: 32px;--radius-full: 999px;--shadow-subtle: 0 2px 6px rgba(78, 60, 150, .04), inset 0 1px 1px rgba(255, 255, 255, .8);--shadow-card: 0 14px 34px rgba(78, 60, 150, .09), 0 3px 10px rgba(78, 60, 150, .04), inset 0 1.5px 2px rgba(255, 255, 255, .95);--shadow-card-hover: 0 24px 50px rgba(78, 60, 150, .16), 0 6px 16px rgba(78, 60, 150, .06), inset 0 1.5px 2px #ffffff;--shadow-raised-sm: 0 4px 10px rgba(85, 65, 160, .14), inset 0 1.5px 2px #ffffff, inset 0 -1.5px 2px rgba(85, 65, 160, .06);--shadow-raised-md: 0 8px 18px rgba(85, 65, 160, .16), 0 2px 5px rgba(85, 65, 160, .08), inset 0 2px 3px #ffffff, inset 0 -2px 3px rgba(85, 65, 160, .08);--shadow-raised-lg: 0 12px 26px rgba(85, 65, 160, .18), 0 3px 8px rgba(85, 65, 160, .09), inset 0 2.5px 3.5px #ffffff, inset 0 -2.5px 3.5px rgba(85, 65, 160, .09);--shadow-raised-hover: 0 14px 28px rgba(85, 65, 160, .22), inset 0 2px 3px #ffffff;--shadow-pressed: 0 1px 3px rgba(85, 65, 160, .1), inset 0 3px 6px rgba(0, 0, 0, .12);--shadow-floating: 0 22px 50px rgba(70, 45, 140, .2), inset 0 2px 4px rgba(255, 255, 255, .9);--shadow-sidebar: 12px 0 38px rgba(64, 50, 135, .18);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-standard: .22s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .28s cubic-bezier(.34, 1.56, .64, 1);--transition-tactile: .18s cubic-bezier(.4, 0, .2, 1)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.google-connect-banner{background:var(--pastel-yellow-gradient);border:1.5px solid var(--pastel-yellow-border);border-radius:var(--radius-xl);padding:20px 24px;margin-bottom:var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:16px;box-shadow:var(--shadow-card)}.google-connect-info h4{margin:0 0 5px;font:700 15px var(--font-family-display);color:var(--pastel-yellow-text);display:flex;align-items:center;gap:8px}.google-connect-info p{margin:0;font-size:12px;color:#79552d;line-height:1.5}.google-connect-connected{background:var(--pastel-green-gradient);border:1.5px solid var(--pastel-green-border);border-radius:var(--radius-xl);padding:16px 22px;margin-bottom:var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:16px;box-shadow:var(--shadow-card)}.google-connect-connected strong{color:var(--pastel-green-text);font-size:13px;display:flex;align-items:center;gap:8px}.google-connect-connected span{font-size:11px;color:#15803d;display:block;margin-top:2px}.permissions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);flex-wrap:wrap;gap:15px}.permissions-header h2{font:800 22px var(--font-family-display);margin:4px 0 0;color:var(--color-text-title)}.permissions-header p{font-size:12px;color:var(--color-text-muted);margin:3px 0 0}.permissions-actions{display:flex;align-items:center;gap:10px}.table-wrapper{background:var(--surface-card);border:1px solid var(--border-color-card);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-card)}.table-responsive{overflow-x:auto;width:100%}.permissions-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.permissions-table th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);padding:14px 16px;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap}.permissions-table th.center,.permissions-table td.center{text-align:center}.permissions-table th.col-actions,.permissions-table td.col-actions{position:sticky;right:0;text-align:center;z-index:2;box-shadow:-4px 0 8px #0000000a}.permissions-table th.col-actions{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);border-right:1px solid var(--table-header-separator, #ffffff)}.permissions-table td.col-actions{background:var(--surface-card, #ffffff)}.permissions-table tr:hover td.col-actions{background:var(--surface-hover, #f1f5f9)}.school-admin-fixed-card{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;background:var(--surface-subtle, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 12px);margin-bottom:16px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .05))}.school-admin-fixed-left{display:flex;align-items:center;gap:12px}.school-admin-fixed-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:9999px;background:var(--pastel-purple-bg, rgba(108, 92, 231, .12));color:var(--pastel-purple-text, #5b21b6);font-size:11.5px;font-weight:700;letter-spacing:.02em}.school-admin-fixed-desc{font-size:12.5px;color:var(--color-text-muted, #64748b)}.permissions-table td{padding:14px 16px;border-bottom:1px solid var(--border-color-subtle);vertical-align:middle}.permissions-table tr:hover td{background:var(--surface-hover)}.staff-info{display:flex;align-items:center;gap:12px}.staff-avatar{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--pastel-purple-bg);color:var(--pastel-purple-text);border:1px solid var(--pastel-purple-border);display:grid;place-items:center;font-weight:700;font-size:12px;flex-shrink:0;box-shadow:var(--shadow-raised-sm)}.staff-details strong{display:block;font-size:13px;color:var(--color-text-title)}.staff-details small{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px}.preset-group{display:flex;gap:6px;flex-wrap:wrap}.preset-chip{background:var(--surface-input);border:1px solid var(--border-color-card);border-radius:var(--radius-sm);padding:4px 9px;font-size:10.5px;font-weight:600;color:var(--color-text-body);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-subtle)}.preset-chip:hover{background:var(--pastel-purple-bg);color:var(--pastel-purple-text);border-color:var(--pastel-purple-border);transform:translateY(-1px)}.preset-chip:active{transform:translateY(1px)}.perm-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.toast-banner{background:var(--pastel-green-bg);border:1.5px solid var(--pastel-green-border);color:var(--pastel-green-text);padding:12px 18px;border-radius:var(--radius-md);margin-bottom:var(--space-5);font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-card);animation:fadeIn .2s ease-out}.toast-banner.warning{background:var(--pastel-yellow-bg);border-color:var(--pastel-yellow-border);color:var(--pastel-yellow-text)}.settings-page{display:flex;flex-direction:column;gap:var(--space-6);padding-bottom:120px}.settings-section{display:flex;flex-direction:column;gap:var(--space-4)}.settings-section-title{display:flex;align-items:center;gap:10px;color:var(--color-primary-dark)}.settings-section-title h3{font:800 17px var(--font-family-display);margin:0;color:var(--color-text-title)}.settings-section-desc{font-size:13px;color:var(--color-text-muted);margin:-6px 0 6px;max-width:650px;line-height:1.45}.theme-presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media(max-width:900px){.theme-presets-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.theme-presets-grid{grid-template-columns:1fr}}.theme-preset-card{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-lg);padding:16px 18px;text-align:left;cursor:pointer;transition:transform var(--transition-bounce),box-shadow var(--transition-bounce),border-color var(--transition-fast);box-shadow:var(--shadow-card);position:relative;display:flex;flex-direction:column;gap:10px}@media(hover:hover)and (pointer:fine){.theme-preset-card:hover{transform:translateY(-4px) scale(1.015);box-shadow:var(--shadow-card-hover);border-color:#b4a5ebcc}}.theme-preset-card.is-selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary),var(--shadow-card-hover);background:var(--surface-card)}.theme-preset-card__header{display:flex;align-items:center;gap:10px}.theme-preset-swatch-badge{width:22px;height:22px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 2px 6px #00000026;flex-shrink:0}.theme-preset-card__header strong{font:700 14px var(--font-family-display);color:var(--color-text-title);flex:1}.theme-preset-check{width:22px;height:22px;border-radius:50%;background:var(--color-primary);color:#fff;display:grid;place-items:center;box-shadow:0 2px 6px #6c5ce74d}.theme-preset-card p{font-size:11.5px;color:var(--color-text-muted);margin:0;line-height:1.4;flex:1}.theme-preset-swatches{display:flex;gap:6px;align-items:center;padding-top:4px}.swatch-circle{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #0000001a}.custom-color-grid{display:grid;grid-template-columns:280px 1fr;gap:var(--space-5);align-items:start}@media(max-width:768px){.custom-color-grid{grid-template-columns:1fr}}.color-wheel-container{display:flex;justify-content:center;align-items:center;padding:10px}.color-wheel-wrapper{position:relative;width:240px;height:240px;aspect-ratio:1 / 1;border-radius:50%;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;outline:none}.color-wheel-wrapper:focus-visible{box-shadow:0 0 0 3px var(--color-primary-light, #ede9fe),0 0 0 5px var(--color-primary, #6c5ce7)}.color-wheel-canvas{width:240px;height:240px;aspect-ratio:1 / 1;border-radius:50%;border:2.5px solid rgba(255,255,255,.95);box-shadow:0 16px 36px #46328c38,inset 0 2px 4px #fff9;cursor:crosshair;touch-action:none;display:block}.color-wheel-marker{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;border:3px solid #ffffff;box-shadow:0 4px 14px #00000061,0 1px 3px #0003,inset 0 1.5px 2px #ffffffe6;pointer-events:none;display:grid;place-items:center;z-index:15;transition:left .14s cubic-bezier(.4,0,.2,1),top .14s cubic-bezier(.4,0,.2,1)}.color-wheel-marker--previewing{transition:none!important;box-shadow:0 6px 18px #00000073,0 2px 5px #00000040,inset 0 1.5px 2px #fff}.color-wheel-marker-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 1px 3px #00000040}.color-wheel-tooltip{position:absolute;background:#1e1a38;color:#fff;padding:4px 9px;border-radius:var(--radius-xs);font-size:11px;font-weight:700;display:flex;align-items:center;gap:6px;box-shadow:0 6px 16px #00000059;pointer-events:none;white-space:nowrap;z-index:25;font-family:inherit}.color-wheel-tooltip--top{transform:translate(-50%,-100%)}.color-wheel-tooltip--bottom{transform:translate(-50%)}.color-wheel-tooltip-swatch{width:10px;height:10px;border-radius:50%;border:1.5px solid #ffffff;flex-shrink:0}.color-adjusters-card{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-xl);padding:22px 26px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:18px}.form-group label{font-size:12.5px;font-weight:700;color:var(--color-text-title)}.hex-input-row{display:flex;align-items:center;gap:10px;background:var(--surface-input);border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);padding:8px 14px;box-shadow:var(--shadow-subtle);transition:all var(--transition-fast)}.hex-input-row:focus-within{background:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce726}.hex-color-chip{width:24px;height:24px;border-radius:var(--radius-xs);border:1.5px solid #ffffff;box-shadow:0 2px 5px #00000026;flex-shrink:0}.hex-text-input{border:0;outline:0;background:transparent;width:100%;font-size:13.5px;font-weight:700;color:var(--color-text-title);letter-spacing:.05em;text-transform:uppercase}.input-error-msg{font-size:11px;color:#ef4444;font-weight:600;margin-top:2px}.slider-label-row{display:flex;justify-content:space-between;align-items:center}.slider-label-row strong{font-size:12px;color:var(--color-primary)}.theme-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;border-radius:4px;background:#e5e1f2;outline:none;cursor:pointer}.theme-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);border:2.5px solid #ffffff;box-shadow:0 2px 6px #0003;cursor:pointer;transition:transform .1s}.theme-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.effects-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:stretch}.effects-grid h4{margin:0 0 12px;font:700 14px var(--font-family-display);color:var(--color-text-title)}.effects-card-full{grid-column:1 / -1}@media(max-width:768px){.effects-grid{grid-template-columns:1fr}.effects-card-full{grid-column:auto}}.segmented-control{display:flex;background:var(--surface-input, #f1f3f9);border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);padding:4px;gap:4px;box-shadow:inset 0 1px 3px #0000000f}.segmented-button{flex:1;padding:9px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;color:var(--color-text-body);transition:all var(--transition-fast);cursor:pointer;text-align:center;border:none;background:transparent;outline:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;line-height:1.3}.segmented-button:hover:not(.is-active){background:#ffffff80;color:var(--color-text-title);transform:translateY(-1px)}.segmented-button:active{transform:translateY(1px) scale(.98)}.segmented-button.is-active{background:#fff;color:var(--color-primary-dark);font-weight:800;box-shadow:var(--shadow-raised-sm),0 2px 6px #6c5ce71f;border:1px solid rgba(108,92,231,.15)}.segmented-button:focus-visible{box-shadow:0 0 0 2.5px var(--color-primary)}.switch-row{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--border-color-subtle)}.theme-switch{width:44px;height:24px;cursor:pointer;accent-color:var(--color-primary)}.sidebar-text-mode-card{display:flex;flex-direction:column;gap:14px}.sidebar-text-mode-header{display:flex;align-items:center;justify-content:space-between}.sidebar-text-mode-title-wrap{display:flex;align-items:flex-start;gap:12px}.sidebar-text-icon{color:var(--color-primary);margin-top:2px;flex-shrink:0}.sidebar-text-mode-hint{font-size:12.5px;line-height:1.5;color:var(--color-text-body);background:var(--color-primary-subtle, #f5f3ff);padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--color-primary-light, #ede9fe);box-shadow:inset 0 1px 2px #fffc}.spring-demo-box{margin-top:14px;padding:14px 18px;background:var(--surface-input, #f1f3f9);border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:10px}.spring-demo-label{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--color-text-muted)}.spring-demo-items{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.spring-demo-icon{font-size:28px;cursor:pointer;display:inline-block;-webkit-user-select:none;user-select:none;transition:transform var(--transition-bounce)}.spring-demo-card{padding:8px 14px;background:#fff;border:1.5px solid var(--border-color-card);border-radius:var(--radius-sm);font-size:12px;font-weight:700;color:var(--color-text-body);box-shadow:var(--shadow-raised-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--transition-bounce),box-shadow var(--transition-fast)}.live-preview-panel{background:var(--surface-card);border:1.5px solid var(--border-color-card);border-radius:var(--radius-xl);padding:22px 26px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:16px;transition:box-shadow .25s ease-out}.preview-top-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.preview-heading h4{font:800 16px var(--font-family-display);margin:2px 0 0;color:var(--color-text-title)}.contrast-badges-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.contrast-indicator{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:700;box-shadow:var(--shadow-subtle);cursor:help;transition:transform var(--transition-fast)}.contrast-indicator:hover{transform:translateY(-1px)}.contrast-indicator--aaa,.contrast-indicator--aa{background:var(--pastel-green-bg);color:var(--pastel-green-text);border:1.5px solid var(--pastel-green-border)}.contrast-indicator--adjusted{background:var(--pastel-yellow-bg);color:var(--pastel-yellow-text);border:1.5px solid var(--pastel-yellow-border)}.contrast-indicator--fail{background:var(--pastel-red-bg, #fef2f2);color:var(--pastel-red-text, #991b1b);border:1.5px solid var(--pastel-red-border, #fecaca)}.preview-grid-container{display:grid;grid-template-columns:210px 1fr;gap:18px;background:var(--surface-app);border:1.5px solid var(--border-color-card);border-radius:var(--radius-lg);padding:16px;overflow:hidden}@media(max-width:768px){.preview-grid-container{grid-template-columns:1fr}}.mini-sidebar-card{border-radius:16px;padding:14px 10px;background:var(--color-sidebar-gradient, var(--preview-sidebar-bg, var(--color-primary-gradient)));color:var(--color-text-on-sidebar, var(--preview-text-sidebar, #ffffff));display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 24px #2d1e5f33;border:1px solid var(--color-sidebar-item-border, var(--preview-sidebar-border, transparent));transition:all .2s ease-out}.mini-sidebar-header{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--color-sidebar-item-border, var(--preview-sidebar-border, rgba(255, 255, 255, .15)))}.mini-school-mark{width:28px;height:28px;border-radius:8px;background:var(--color-sidebar-brand-mark-bg, var(--preview-brand-bg, rgba(255, 255, 255, .24)));color:var(--color-sidebar-brand-mark-color, var(--preview-brand-color, inherit));font:800 11px var(--font-family-display);display:grid;place-items:center;border:1px solid var(--color-sidebar-item-border, var(--preview-sidebar-border, rgba(255, 255, 255, .2)))}.mini-school-text strong{display:block;font-size:11px;line-height:1.2}.mini-school-text small{display:block;font-size:8.5px;opacity:.85}.mini-nav-list{display:flex;flex-direction:column;gap:5px;flex:1}.mini-group-label{font-size:8px;font-weight:800;letter-spacing:.08em;color:var(--color-text-on-sidebar-muted, var(--preview-text-sidebar-muted, rgba(255, 255, 255, .7)));padding:0 4px}.mini-nav-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;transition:all .15s ease-out}.mini-nav-item--inactive{background:transparent;color:var(--color-text-on-sidebar, var(--preview-text-sidebar, rgba(255, 255, 255, .9)))}.mini-nav-item--hover{background:var(--color-sidebar-item-hover-bg, var(--preview-sidebar-hover-bg, rgba(255, 255, 255, .14)));color:var(--color-text-on-sidebar, var(--preview-text-sidebar, #ffffff));border:1px solid var(--color-sidebar-item-border, var(--preview-sidebar-border, transparent));transform:translate(2px)}.mini-nav-item--active{background:#fff;color:var(--color-primary-dark, #1e1a38);font-weight:800;box-shadow:0 4px 10px #00000026}.mini-active-bar{width:3.5px;height:14px;border-radius:3px;margin-left:auto}.mini-sidebar-footer{border-top:1px solid var(--color-sidebar-item-border, rgba(255, 255, 255, .15));padding-top:6px;font-size:7.5px;color:var(--color-text-on-sidebar-muted, var(--preview-text-sidebar-muted, rgba(255, 255, 255, .7)));opacity:.85}.mini-content-stage{display:flex;flex-direction:column;gap:12px;justify-content:center}.mini-hero-banner{border-radius:var(--radius-md, 12px);padding:10px 14px;display:flex;align-items:center;gap:12px;background:var(--color-hero-gradient);box-shadow:var(--shadow-raised-sm, 0 2px 6px rgba(0, 0, 0, .05)),inset 0 1px 2px #ffffffe6;border:1.5px solid rgba(255,255,255,.85)}.mini-hero-avatar-bubble{width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;font-size:18px;position:relative;box-shadow:0 4px 12px #5a44a033,inset 0 1px 2px #fff;flex-shrink:0}.mini-avatar-sparkle{position:absolute;top:-2px;right:-2px;font-size:10px}.mini-hero-text{display:flex;flex-direction:column;gap:3px;min-width:0}.mini-hero-badge{display:inline-flex;align-items:center;gap:4px;background:#ffffffc7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:2.5px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:700;color:var(--brand-ink, var(--color-primary-dark, #4a3e70));width:fit-content;box-shadow:0 1px 3px #0000000a}.mini-hero-banner h5{margin:0;font:800 13px var(--font-family-display);color:var(--brand-ink, var(--color-primary-dark, #1e293b));letter-spacing:-.2px}.mini-callout-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--callout-raised-bg);border:1px solid var(--callout-raised-border);border-radius:var(--callout-raised-radius, 12px);box-shadow:var(--callout-raised-shadow);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));font-size:11.5px;line-height:1.4}.mini-callout-icon{flex-shrink:0;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.mini-table-card{border-radius:var(--radius-md, 10px);overflow:hidden;border:1px solid var(--border-color-card, #e2e8f0);background:var(--surface-card, #ffffff);box-shadow:var(--shadow-raised-sm)}.mini-table{width:100%;border-collapse:collapse;font-size:11px}.mini-table th{background:var(--table-header-bg, var(--color-sidebar-gradient))!important;color:var(--table-header-color, #ffffff)!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;border-bottom:1px solid var(--table-header-border, rgba(255, 255, 255, .2))!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0, 0, 0, .1))!important;padding:6px 10px;font-weight:700;vertical-align:middle}.mini-table th:last-child{border-right:none!important}.mini-table td{padding:6px 10px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);color:var(--color-text-body, #1e293b);vertical-align:middle}.mini-metrics-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mini-actions-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.settings-footer-bar,.settings-action-bar,.school-profile-action-bar{position:sticky;bottom:calc(14px + env(safe-area-inset-bottom,0px));background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px solid var(--border-color-card);border-radius:var(--radius-xl);padding:14px 22px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-floating);z-index:30;gap:16px;flex-wrap:wrap}.settings-footer-left,.settings-footer-right{display:flex;align-items:center;gap:10px}.school-profile-bar-status{font-size:13px;font-weight:500;color:var(--color-text-muted, #64748b);display:inline-flex;align-items:center;gap:6px}.school-profile-readonly-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#0000000d;border-radius:var(--radius-full, 9999px);font-size:12px;font-weight:600;color:var(--color-text-muted, #64748b)}@media(max-width:600px){.settings-footer-bar,.settings-action-bar,.school-profile-action-bar{flex-direction:column;gap:12px;bottom:calc(8px + env(safe-area-inset-bottom,0px));padding:12px 16px}.settings-footer-left,.settings-footer-right{width:100%;justify-content:stretch}.settings-footer-left>button,.settings-footer-right>button{flex:1}}.unsaved-badge,.preview-dirty-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;border-radius:var(--radius-full);background:#fef3c7;border:1.5px solid #fde047;color:#92400e;font-size:11.5px;font-weight:800;box-shadow:var(--shadow-subtle);letter-spacing:-.1px}.dirty-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b;box-shadow:0 0 6px #f59e0bb3;animation:pulseDot 1.8s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.saved-badge{font-size:12px;font-weight:700;color:#16a34a}.btn-save-action{min-width:146px;justify-content:center;transition:all .25s cubic-bezier(.34,1.56,.64,1)!important}.btn-save--saving{opacity:.9;cursor:wait!important}.btn-save--success{background:#16a34a!important;border-color:#16a34a!important;color:#fff!important;box-shadow:0 6px 16px #16a34a59!important}.spin-icon{animation:spin .8s linear infinite}.pop-icon{animation:popIn .35s cubic-bezier(.34,1.75,.64,1)}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.3)}to{transform:scale(1)}}.advanced-toggle-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}.advanced-title{display:flex;align-items:center;gap:10px;color:var(--color-text-title)}.advanced-title h4{margin:0;font:700 14px var(--font-family-display);color:var(--color-text-title)}.advanced-chevron-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;padding:4px;border-radius:6px;transition:all var(--transition-fast)}.advanced-toggle-header:hover .advanced-chevron-btn{color:var(--color-primary);background:#6c5ce714}.advanced-content-body{margin-top:10px;padding-top:14px;border-top:1px solid var(--border-color-subtle);animation:fadeIn .2s ease-out}.toast-viewport{position:fixed;top:88px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;width:calc(100vw - 48px);pointer-events:none}.toast-item{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--radius-lg);background:#fffffff7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1.5px solid var(--border-color-card);box-shadow:0 12px 30px #2d1e5f24,0 2px 6px #0000000a;animation:toastSlideIn .3s cubic-bezier(.34,1.56,.64,1);transition:transform .2s ease,opacity .2s ease}.toast-item:hover{transform:translateY(-2px);box-shadow:0 16px 36px #2d1e5f2e}.toast-item--success{border-color:#86efac}.toast-item--error{border-color:#fca5a5}.toast-item--warning{border-color:#fde047}.toast-item--info{border-color:#c4b5fd}.toast-icon-wrap{flex-shrink:0;margin-top:1px}.toast-icon--success{color:#16a34a}.toast-icon--error{color:#dc2626}.toast-icon--warning{color:#d97706}.toast-icon--info{color:#6c5ce7}.toast-body{flex:1;min-width:0}.toast-title{font-size:13px;font-weight:700;color:var(--color-text-title);line-height:1.4}.toast-desc{font-size:11.5px;color:var(--color-text-muted);margin-top:2px;line-height:1.35}.toast-close-btn{background:none;border:none;padding:3px;border-radius:6px;cursor:pointer;color:var(--color-text-muted);transition:all .15s ease;display:flex;align-items:center}.toast-close-btn:hover{color:var(--color-text-title);background:#0000000f}@keyframes toastSlideIn{0%{opacity:0;transform:translate(35px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.bounce-toggle-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.bounce-toggle-row h4{margin:0 0 4px;font:700 14px var(--font-family-display);color:var(--color-text-title)}.bounce-toggle-row p{margin:0;font-size:12.5px;color:var(--color-text-muted)}.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:#cbd5e1;transition:.3s cubic-bezier(.34,1.56,.64,1);border-radius:26px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s cubic-bezier(.34,1.56,.64,1);border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e143c73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:16px;animation:fadeIn .2s ease-out}.modal-card{background:#fff;border-radius:var(--radius-xl);border:1.5px solid var(--border-color-card);padding:24px 28px;max-width:440px;width:100%;box-shadow:var(--shadow-floating);animation:scaleIn .2s ease-out}.confirm-dialog__header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.confirm-dialog__icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:#f1f5f9;flex-shrink:0}.confirm-dialog__icon--danger{background:#fee2e2}.confirm-dialog__icon--warning{background:#fef3c7}.confirm-dialog__icon--primary{background:#e0e7ff}.confirm-dialog__title{margin:0;font-size:16px;font-weight:700;color:#1e293b}.confirm-dialog__body{color:#475569;font-size:13.5px;line-height:1.55;margin-bottom:22px}.confirm-dialog__footer{display:flex;justify-content:flex-end;align-items:center;gap:10px}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.metric-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}@media(max-width:1100px){.metric-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.metric-grid-4{grid-template-columns:1fr}}.filter-card,.student-filter-panel{background:var(--bg-card-gradient, #ffffff);border:1.5px solid var(--border-color-card);border-radius:var(--radius-xl);padding:14px 18px;box-shadow:var(--shadow-card);margin-bottom:var(--space-5)}.filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.search-field{position:relative;display:flex;align-items:center;width:100%;height:40px;background:#fff;border:1.5px solid var(--border-color-card);border-radius:var(--radius-full, 20px);box-shadow:var(--shadow-subtle, 0 1px 3px rgba(0, 0, 0, .04));box-sizing:border-box;transition:border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease),background var(--transition-fast, .15s ease)}.search-field--sm{height:34px;border-radius:var(--radius-full, 17px)}.search-field--lg{height:46px;border-radius:var(--radius-full, 23px)}.search-field:focus-within{background:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce726,var(--shadow-raised-sm, 0 2px 8px rgba(0, 0, 0, .06))}.search-field--disabled{background:#f8fafc;opacity:.65;cursor:not-allowed}.search-field__icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none;display:flex;align-items:center;justify-content:center;line-height:1;z-index:1}.search-field__input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important;width:100%!important;height:100%!important;padding:0 36px 0 38px!important;font-size:13px!important;color:var(--color-text-title, #1e1a38)!important;box-sizing:border-box!important;margin:0!important;line-height:normal!important}.search-field--sm .search-field__input{padding:0 32px 0 34px!important;font-size:12.5px!important}.search-field__input::placeholder{color:#94a3b8;opacity:1}.search-field__clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;background:#f1f5f9;border:none;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;padding:0;transition:all .15s ease;z-index:2}.search-field__clear-btn:hover{background:#e2e8f0;color:#1e1a38}.search-field__trailing{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;z-index:2}.search-input-wrap,.student-search-box{position:relative;flex:1 1 260px;min-width:200px;border:none!important;background:transparent!important;box-shadow:none!important}.search-input-wrap input,.student-search-box input{width:100%;height:40px;border-radius:20px;border:1.5px solid var(--border-color-card);padding:0 16px 0 38px;font-size:13px;background:#fff;outline:none;transition:all var(--transition-fast);color:var(--color-text-title);box-sizing:border-box}.search-input-wrap input:focus,.student-search-box input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71f}.search-input-wrap .search-icon,.student-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.filter-select,.student-select-control{height:40px;border-radius:20px;border:1.5px solid var(--border-color-card);padding:0 14px;font-size:13px;background:#fff;font-weight:600;color:var(--color-text-title);outline:none;cursor:pointer;transition:all var(--transition-fast);box-sizing:border-box}.filter-select:focus,.student-select-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71f}.checkbox-label,.student-allergy-filter{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;color:#e11d48;padding:0 8px}input[type=checkbox]{accent-color:var(--color-primary, #6366f1);cursor:pointer}input[type=checkbox]:focus-visible{outline:2px solid var(--color-primary, #6366f1);outline-offset:2px}.checkbox-label input[type=checkbox],.student-allergy-filter input[type=checkbox]{width:17px;height:17px;accent-color:var(--color-primary, #6366f1);cursor:pointer}.btn-secondary{background:#fff;border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);padding:8px 14px;font-size:12.5px;font-weight:600;color:var(--color-text-title);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-subtle)}.btn-secondary:hover{background:var(--surface-subtle);border-color:var(--color-primary);color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-raised-sm)}@media(max-width:768px){.filter-row{flex-direction:column;align-items:stretch}.search-input-wrap,.filter-select,.student-search-box,.student-select-control{width:100%;min-width:0}}.student-warnings-grid,.student-warning-grid,.class-warning-grid,.staff-warning-grid,.warning-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:var(--space-6)}@media(max-width:1024px){.student-warnings-grid,.student-warning-grid,.class-warning-grid,.staff-warning-grid,.warning-grid-3{grid-template-columns:1fr}}.warning-box{background:var(--bg-card-gradient, #ffffff);border-radius:var(--radius-xl);padding:16px 18px;border:1px solid var(--border-color-card);box-shadow:var(--shadow-card);display:flex;flex-direction:column}.warning-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-color-card)}.warning-box-title{margin:0;font:800 14px var(--font-family-display);display:flex;align-items:center;gap:6px;color:var(--color-text-title)}.warning-box-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;padding-right:4px}.warning-item{padding:8px 12px;border-radius:var(--radius-md);background:#ffffffbf;border:1px solid var(--border-color-card);display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;transition:all var(--transition-fast);font-size:12.5px}.warning-item:hover{background:#fff;transform:translateY(-1px);box-shadow:var(--shadow-subtle)}.student-table-wrap,.data-table-wrap,.table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-color-card);background:#fff;box-shadow:var(--shadow-subtle)}.student-table,.data-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.student-table th,.data-table th{background:var(--table-header-bg, #ede9fe);padding:12px 14px;font-weight:700;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.3px}thead th,.table-responsive table thead th,.data-table thead th,.student-table thead th,.permissions-table thead th,.guardian-table thead th,.staff-table thead th,.class-table thead th,.attendance-table thead th,.finance-table thead th,.fee-period-table thead th{border-right:1px solid var(--table-header-separator, #ffffff);text-align:center!important;vertical-align:middle!important}thead th>div,thead th .th-content,thead th .header-cell-content{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%}thead th .attendance-col-student-count,thead th .safety-col-student-count,thead th [class*=-count],thead th [class*=-counter]{color:var(--table-header-color, #ffffff)!important;opacity:1}thead th.col-stt,thead th.col-year,thead th.col-index,.class-table thead th.col-stt,.class-table thead th.col-year{color:var(--table-header-color, #ffffff)!important}.page-header__eyebrow,.section-eyebrow,[class*=__eyebrow]{color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.student-table td,.data-table td{padding:12px 14px;border-bottom:1px solid var(--border-color-card);color:var(--color-text-body);vertical-align:middle}.student-table tr:hover td,.data-table tr:hover td{background:var(--surface-hover, rgba(248, 247, 255, .45))}.action-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.action-btn:hover{background:color-mix(in srgb,var(--color-primary, #6c5ce7) 12%,transparent);color:var(--color-primary, #6c5ce7);transform:scale(1.12)}.action-btn svg,td.col-actions button:not(.btn-primary):not([class*=--primary]) svg,.col-actions .action-btn svg{stroke:currentColor}td.col-actions button:not(.btn-primary):not([class*=--primary]),.col-actions .action-btn{color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.student-modal-container{max-width:680px;width:100%;max-height:90vh;overflow-y:auto}.student-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media(max-width:600px){.student-detail-grid{grid-template-columns:1fr}}.student-detail-card{background:#faf8ff80;border:1px solid var(--border-color-card);border-radius:var(--radius-lg);padding:14px 16px}.student-detail-card h5{margin:0 0 10px;font:800 13.5px var(--font-family-display);color:var(--color-primary-dark);display:flex;align-items:center;gap:6px}.detail-line{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:12.5px;margin-bottom:6px}.detail-line span.label{color:var(--color-text-muted)}.detail-line strong.val{color:var(--color-text-title);text-align:right}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}@media(max-width:540px){.form-grid-2{grid-template-columns:1fr}}.form-group label{font-size:12px;font-weight:700;color:var(--color-text-title)}.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);padding:8px 12px;font-size:13px;outline:none;background:#fff;color:var(--color-text-title);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71f}.form-error{font-size:11px;color:#e11d48;font-weight:600}.auth-bootstrap-container{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;background:radial-gradient(circle at 50% 30%,#f5f3ff,#ede9fe,#e0e7ff);padding:24px;box-sizing:border-box}.auth-bootstrap-card{max-width:420px;width:100%;background:#fff;border-radius:var(--radius-xl, 24px);padding:36px 28px;box-shadow:0 20px 40px -15px #6c5ce72e,0 0 0 1px #e2e8f0cc;text-align:center;display:flex;flex-direction:column;align-items:center}.auth-bootstrap-logo{width:76px;height:76px;border-radius:22px;background:linear-gradient(135deg,#a78bfa,#6366f1);box-shadow:0 10px 20px -5px #6366f166,inset 0 2px 4px #fff6;display:flex;align-items:center;justify-content:center;margin-bottom:20px;animation:pulse-gentle 2.5s infinite ease-in-out}.auth-bootstrap-logo-inner{display:flex;align-items:center;justify-content:center;color:#fff}.auth-bootstrap-shield-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.auth-bootstrap-title{font-family:var(--font-family-display, inherit);font-size:20px;font-weight:800;color:var(--color-text-title, #1e293b);margin:0 0 8px;letter-spacing:-.02em}.auth-bootstrap-subtitle{font-size:13.5px;color:var(--color-text-muted, #64748b);margin:0 0 24px;line-height:1.5}.auth-bootstrap-progress-wrap{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}.auth-bootstrap-bar{width:100%;height:6px;background:#f1f5f9;border-radius:999px;overflow:hidden;position:relative}.auth-bootstrap-bar-fill{position:absolute;top:0;left:0;bottom:0;width:45%;background:linear-gradient(90deg,#6366f1,#a855f7);border-radius:999px;animation:auth-bar-slide 1.6s infinite ease-in-out}@keyframes auth-bar-slide{0%{left:-45%}to{left:100%}}@keyframes pulse-gentle{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.auth-bootstrap-hint{font-size:12px;font-weight:600;color:var(--color-primary, #6366f1)}.auth-bootstrap-timeout-wrap{width:100%;display:flex;flex-direction:column;align-items:center;gap:14px}.auth-bootstrap-timeout-alert{background:#fffbeb;border:1px solid #fef3c7;border-radius:12px;padding:10px 14px;font-size:12px;color:#b45309;display:flex;align-items:center;gap:8px;text-align:left;line-height:1.4}.auth-bootstrap-retry-btn{width:100%}.auth-revalidating-pulse{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:#6366f1;background:#6366f114;padding:3px 8px;border-radius:6px}.auth-revalidating-pulse-dot{width:6px;height:6px;border-radius:50%;background:#6366f1;animation:pulse-dot 1.2s infinite ease-in-out}@keyframes pulse-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.network-offline-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#b45309;background:#fef3c7;border:1px solid #fde68a;padding:3px 8px;border-radius:6px}.settings-nav-tabs{display:inline-flex;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#f1f5f9;padding:5px;border-radius:14px;gap:6px;margin-bottom:var(--space-5);box-shadow:inset 0 2px 4px #0000000a}.settings-nav-tab{display:flex;align-items:center;flex-shrink:0;gap:8px;padding:9px 18px;border-radius:10px;font-size:13.5px;font-weight:600;color:#64748b;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.settings-nav-tab:hover:not(.is-active):not([aria-selected=true]):not(:disabled){color:#1e293b;background:#fff9}.settings-nav-tab.is-active,.settings-nav-tab[aria-selected=true]{color:var(--color-primary-dark, #05573c);background:#fff;border-color:var(--color-primary-light, rgba(16, 183, 127, .2));box-shadow:0 2px 8px #00000014;font-weight:700}.settings-nav-tab.is-active:hover,.settings-nav-tab[aria-selected=true]:hover{color:var(--color-primary-dark, #05573c);background:#fff}.settings-nav-tab:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-primary-dark, #05573c)}.settings-nav-tab:disabled,.settings-nav-tab[aria-disabled=true]{color:#94a3b8;background:transparent;cursor:not-allowed;opacity:.6;box-shadow:none}.storage-status-section{margin-top:0;margin-bottom:var(--space-6)}.storage-status-card{padding:24px;border-radius:20px}.storage-status-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}.storage-status-title-row{display:flex;align-items:center;gap:14px}.storage-icon-badge{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#4338ca;box-shadow:0 4px 10px #6366f126;flex-shrink:0}.storage-status-title{margin:0 0 4px;font-size:18px;font-weight:700;color:#1e293b}.storage-status-desc{margin:0;font-size:13.5px;color:#64748b}.storage-status-header__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.storage-banner{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-radius:14px;margin-bottom:22px}.storage-banner--success{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #a7f3d0;color:#065f46}.storage-banner--warning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;color:#92400e}.storage-banner__icon{margin-top:2px;flex-shrink:0}.storage-banner__text strong{display:block;font-size:14px;margin-bottom:3px}.storage-banner__text p{margin:0;font-size:12.5px;line-height:1.45;opacity:.9}.storage-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px}.storage-stat-card{padding:16px;border-radius:16px;border:1px solid transparent;display:flex;flex-direction:column;justify-content:space-between;min-height:115px;transition:transform .15s ease,box-shadow .15s ease}.storage-stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000000f}.storage-stat-card--mint{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#bbf7d0;color:#166534}.storage-stat-card--amber{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fde68a;color:#92400e}.storage-stat-card--rose{background:linear-gradient(135deg,#fff1f2,#ffe4e6);border-color:#fecdd3;color:#9f1239}.storage-stat-card--cyan{background:linear-gradient(135deg,#ecfeff,#cffafe);border-color:#a5f3fc;color:#155e75}.storage-stat-card--purple{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-color:#ddd6fe;color:#5b21b6}.storage-stat-card__head{display:flex;justify-content:space-between;align-items:center;gap:8px}.storage-stat-label{font-size:12px;font-weight:600;opacity:.85}.storage-stat-value{font-size:24px;font-weight:800;margin:6px 0;line-height:1.1}.storage-stat-unit{font-size:13px;font-weight:500;opacity:.8}.storage-stat-foot{font-size:11px;opacity:.75;line-height:1.3}.storage-db-breakdown{border-top:1px solid #f1f5f9;padding-top:20px}.storage-db-breakdown__title{margin:0 0 14px;font-size:14.5px;font-weight:700;color:#334155}.storage-db-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.storage-db-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px}.storage-db-card__head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #edf2f7}.storage-db-card__title-wrap{display:flex;align-items:center;gap:8px;color:#1e293b;font-size:13.5px}.storage-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.storage-badge--success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.storage-badge--warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.storage-badge--neutral{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.storage-db-metric-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;margin-bottom:6px}.storage-db-metric-label{color:#64748b}.storage-db-card__foot{margin-top:12px;padding-top:8px;border-top:1px dashed #e2e8f0;font-size:11.5px;color:#64748b}.storage-capacity-block{margin-top:14px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #00000008}.storage-capacity-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.storage-capacity-title{font-size:12px;font-weight:600;color:#475569}.storage-capacity-percent{font-size:13px;font-weight:800;color:#0f172a}.storage-capacity-quota-row{display:flex;justify-content:space-between;font-size:11.5px;color:#64748b;margin-bottom:6px}.storage-capacity-quota{font-size:11.5px;font-weight:500;color:#64748b}.storage-progress-track{width:100%;height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:8px}.storage-progress-bar{height:100%;border-radius:999px;transition:width .35s cubic-bezier(.4,0,.2,1)}.storage-progress-bar--mint{background:linear-gradient(90deg,#10b981,#059669)}.storage-progress-bar--amber{background:linear-gradient(90deg,#f59e0b,#d97706)}.storage-progress-bar--orange{background:linear-gradient(90deg,#f97316,#ea580c)}.storage-progress-bar--rose{background:linear-gradient(90deg,#ef4444,#dc2626)}.storage-progress-bar--neutral{background:#94a3b8}.storage-capacity-status-row{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;font-size:11.5px}.storage-capacity-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:4px;flex-shrink:0}.storage-capacity-badge--mint{color:#065f46;background:#d1fae5}.storage-capacity-badge--amber{color:#92400e;background:#fef3c7}.storage-capacity-badge--orange{color:#9a3412;background:#ffedd5}.storage-capacity-badge--rose{color:#991b1b;background:#fee2e2}.storage-capacity-badge--neutral{color:#475569;background:#f1f5f9}.storage-capacity-remaining-text{font-size:11.5px;color:#475569;line-height:1.35}.school-profile-container{display:flex;flex-direction:column;gap:24px}.school-profile-header-compact{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;background:linear-gradient(135deg,#fffffff2,#f8fafce6);border-radius:24px;border:1.5px solid rgba(255,255,255,.8);box-shadow:0 10px 28px #0000000d,inset 0 1px 2px #ffffffe6;flex-wrap:wrap}.school-profile-header-info{display:flex;align-items:center;gap:16px;min-width:0;flex:1}.school-profile-title{font-size:20px;font-weight:700;color:var(--color-text-title, #1e1b4b);margin:0;line-height:1.3}.school-admin-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:#6366f11f;color:var(--color-primary-dark, #4338ca);border-radius:20px;font-size:11.5px;font-weight:600}.school-profile-grid-2col{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:24px}.school-card-3d{border-radius:24px;border:1.5px solid rgba(255,255,255,.8);box-shadow:0 12px 36px #0000000a,0 2px 8px #00000005,inset 0 1px 2px #ffffffe6;padding:24px;display:flex;flex-direction:column;gap:20px;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.school-card-3d:hover{box-shadow:0 16px 44px #00000012,0 4px 12px #00000008,inset 0 1px 2px #fff}.school-card--school{background:linear-gradient(145deg,#fff,#f8f6ff,#f3eeff);border-color:#c7d2fe80}.school-card--principal{background:linear-gradient(145deg,#fff,#f2fcf7,#e6f9f0);border-color:#a7f3d080}.school-card-header{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid rgba(0,0,0,.06)}.school-card-icon-bubble{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex-shrink:0;box-shadow:0 4px 12px #0000000f,inset 0 1px 2px #fffc}.school-card-icon-bubble--purple{background:linear-gradient(135deg,#818cf8,#6366f1);color:#fff}.school-card-icon-bubble--mint{background:linear-gradient(135deg,#34d399,#059669);color:#fff}.school-card-header-text h3{font-size:16px;font-weight:700;margin:0 0 2px;color:var(--color-text-title, #1e1b4b)}.school-card-header-text p{margin:0;font-size:12px;color:var(--color-text-muted, #64748b)}.school-card-body{display:flex;flex-direction:column;gap:10px}.info-pill-item{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#ffffffd9;border-radius:16px;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 6px #00000005;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;min-height:48px}.info-pill-item:hover{transform:translateY(-2px);background:#fff;box-shadow:0 6px 16px #0000000f;border-color:#6366f133}.info-pill-item:focus-visible{outline:2px solid var(--primary-color, #6366f1);outline-offset:2px}.info-pill-icon{width:32px;height:32px;border-radius:10px;background:#0000000a;color:var(--color-text-muted, #64748b);display:grid;place-items:center;flex-shrink:0;transition:background .18s ease,color .18s ease}.info-pill-item:hover .info-pill-icon{background:#6366f11a;color:var(--primary-color, #6366f1)}.info-pill-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.info-pill-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #64748b)}.info-pill-value{font-size:13.5px;font-weight:600;color:var(--color-text-title, #1e1b4b);word-break:break-word}.info-pill-value a{color:var(--primary-color, #6366f1);text-decoration:none;display:inline-flex;align-items:center;gap:4px}.info-pill-value a:hover{text-decoration:underline}.info-pill-placeholder{font-size:13px;color:var(--color-text-muted, #94a3b8);font-style:italic;display:inline-flex;align-items:center;gap:8px}.info-pill-add-btn{font-style:normal;font-size:11px;font-weight:600;padding:2px 8px;background:#6366f11a;color:var(--primary-color, #6366f1);border-radius:8px;cursor:pointer;border:none;transition:background var(--transition-fast)}.info-pill-add-btn:hover{background:#6366f133}.badge-school-type{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:linear-gradient(135deg,#6366f126,#8b5cf626);color:#4338ca;border-radius:20px;font-size:12px;font-weight:700;border:1px solid rgba(99,102,241,.25)}.school-edit-form-wrapper{max-width:880px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:24px}.form-panel-3d{background:var(--surface-card, #ffffff);border-radius:24px;border:1.5px solid rgba(255,255,255,.8);box-shadow:0 12px 32px #0000000a,inset 0 1px 2px #ffffffe6;padding:28px;display:flex;flex-direction:column;gap:20px}.form-panel--school{border-top:4px solid var(--color-primary, #6366f1)}.form-panel--principal{border-top:4px solid #10b981}.form-panel-header{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--border-color, rgba(0, 0, 0, .06))}.form-panel-header h3{font-size:16px;font-weight:700;margin:0 0 2px;color:var(--color-text-title)}.form-panel-header p{margin:0;font-size:12px;color:var(--color-text-muted)}.form-fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.form-field-full{grid-column:1 / -1}.school-form-field{display:flex;flex-direction:column;gap:6px}.school-form-field label{font-size:13px;font-weight:600;color:var(--color-text-title)}.school-form-input{width:100%;box-sizing:border-box;padding:10px 14px;border-radius:12px;border:1px solid var(--border-color, rgba(0, 0, 0, .12));background:var(--surface-card, #ffffff);font-size:13.5px;color:var(--color-text-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.school-form-input:hover{border-color:#6366f166}.school-form-input:focus{outline:none;border-color:var(--primary-color, #6366f1);box-shadow:0 0 0 3px #6366f126}.school-form-input.has-error{border-color:#ef4444;box-shadow:0 0 0 2px #ef444426}.school-form-error-msg{color:#ef4444;font-size:12px;font-weight:500}.school-form-hint{font-size:11.5px;color:var(--color-text-muted)}@media(max-width:768px){.school-profile-grid-2col,.form-fields-grid{grid-template-columns:1fr}}.font-preset-section{display:flex;flex-direction:column;gap:14px}.font-preset-header{display:flex;align-items:center;gap:10px}.font-preset-icon{color:var(--color-primary);flex-shrink:0}.font-presets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.font-preset-card{background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, rgba(0, 0, 0, .08));border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:all var(--transition-bounce, .25s cubic-bezier(.34, 1.56, .64, 1));position:relative;-webkit-user-select:none;user-select:none}.font-preset-card:hover{transform:translateY(-2px);border-color:var(--color-primary-light, #a78bfa);box-shadow:0 6px 16px #6c5ce714}.font-preset-card.is-selected{border-color:var(--color-primary, #6366f1);background:var(--color-primary-subtle, #f5f3ff);box-shadow:0 0 0 2px var(--color-primary-light, #c7d2fe),0 8px 20px #6366f11f}.font-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.font-preset-name{font-size:15px;font-weight:800;color:var(--color-text-title, #1e293b);display:block}.font-preset-subname{font-size:11px;color:var(--color-text-muted, #64748b);display:block;margin-top:1px}.font-selected-badge{width:22px;height:22px;border-radius:50%;background:var(--color-primary, #6366f1);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #6366f159}.font-card-sample{font-size:13.5px;font-weight:600;color:var(--color-text-body, #334155);background:#ffffffb3;padding:8px 12px;border-radius:10px;border:1px dashed var(--border-color-card, rgba(0, 0, 0, .06));line-height:1.4}.font-preset-card.is-selected .font-card-sample{background:#fffffff2;border-color:var(--color-primary-light, #a78bfa)}.theme-translucent-callout{background:var(--callout-raised-bg);border:1px solid var(--callout-raised-border);border-radius:var(--callout-raised-radius, 14px);box-shadow:var(--callout-raised-shadow);color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.form-panel--schedule{border-top:4px solid var(--color-primary, #8b5cf6);background:var(--surface-card, #ffffff)}.schedule-view-group{background:color-mix(in srgb,var(--color-primary, #6366f1) 4%,transparent);border:1px solid color-mix(in srgb,var(--color-primary, #6366f1) 12%,transparent);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.schedule-group-label{font-size:11.5px;font-weight:700;color:var(--color-text-title, #1e293b);text-transform:uppercase;letter-spacing:.3px}.schedule-group-val{font-size:13px;color:var(--color-text-body, #334155);line-height:1.4}.schedule-active-days-row{padding:12px 14px;background:#00000005;border-radius:14px;border:1px dashed var(--border-color, rgba(0, 0, 0, .08))}.schedule-day-badge{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:12px;transition:all .15s ease}.schedule-day-badge.is-active{background:#ede9fe;color:#6d28d9;border:1px solid #c4b5fd}.schedule-day-badge.is-inactive{background:#f1f5f9;color:#94a3b8;border:1px solid #e2e8f0}.schedule-edit-group{background:#f8fafccc;border:1px solid var(--border-color, rgba(0, 0, 0, .06));border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}.schedule-group-heading{margin:0;font-size:13.5px;font-weight:800;color:var(--color-text-title, #1e293b)}.schedule-day-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:700;cursor:pointer;background:#f8fafc;color:#64748b;border:1.5px solid #e2e8f0;transition:all .15s ease}.schedule-day-toggle:hover{background:#f1f5f9;border-color:#cbd5e1}.schedule-day-toggle.is-active{background:#ede9fe;color:#5b21b6;border-color:#8b5cf6;box-shadow:0 2px 6px #8b5cf633}.toggle-check-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;transition:background .15s ease}.schedule-day-toggle.is-active .toggle-check-dot{background:#7c3aed}.schedule-preview-box{background:linear-gradient(135deg,#6366f10f,#a855f70f);border:1px solid rgba(99,102,241,.15);border-radius:14px;padding:12px 16px}.schedule-preview-title{font-size:10.5px;font-weight:800;color:#4f46e5;letter-spacing:.5px;display:block;margin-bottom:4px}.schedule-preview-text{font-size:12.5px;color:var(--color-text-title, #1e293b);line-height:1.5}.mutation-pending-indicator{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:inherit;transition:opacity .2s ease}.mutation-pending-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.mutation-spinner{animation:gentle-spin 1s linear infinite;transform-origin:center}.mutation-spinner--sync{animation:gentle-spin 1.2s cubic-bezier(.4,0,.2,1) infinite}.mutation-spinner--pulse{animation:gentle-pulse 1.4s ease-in-out infinite}.mutation-spinner--bounce{animation:gentle-bounce 1.2s ease-in-out infinite}@keyframes gentle-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gentle-pulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.05)}}@keyframes gentle-bounce{0%,to{transform:translate(0)}50%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.mutation-spinner,.mutation-spinner--sync,.mutation-spinner--pulse,.mutation-spinner--bounce,.mutation-pending-indicator,.btn.btn-loading .mutation-spinner{animation:none!important;transition:none!important;transform:none!important}}.mutation-pending--sm{font-size:12px;gap:6px}.mutation-pending--md{font-size:13.5px;gap:8px}.mutation-pending--lg{font-size:15px;gap:10px}.mutation-pending--button{justify-content:center;width:100%}.mutation-pending--banner{display:flex;padding:10px 16px;border-radius:12px;background:var(--color-bg-subtle, rgba(108, 92, 231, .08));border:1px solid var(--border-color-card, rgba(108, 92, 231, .2));color:var(--color-primary, #6c5ce7)}.confirm-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--bg-surface, #fff);color:var(--text-primary, #1e293b);border-radius:var(--radius-xl, 20px)}.confirm-dialog__title{color:var(--text-primary, #1e293b)}.confirm-dialog__body{color:var(--text-secondary, #475569);overflow-wrap:anywhere}.confirm-dialog__icon--primary{background:var(--color-primary-light, #ede9fe);color:var(--color-primary, #7c3aed)}.confirm-dialog__footer{flex-wrap:wrap}.confirm-dialog .input{display:block;width:100%;margin-top:8px}@media(max-width:480px){.confirm-dialog{padding:20px}.confirm-dialog__footer>button{flex:1 1 auto}}@media(prefers-reduced-motion:reduce){.toast-item,.toast-item:hover{animation:none;transition:none;transform:none}}[data-theme-motion=reduced] .toast-item,[data-theme-motion=reduced] .toast-item:hover{animation:none;transition:none;transform:none}html,body,#root{font-family:var(--font-family-body, "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, sans-serif)}input,button,select,textarea,dialog,table,th,td,.sidebar,.topbar,.modal-card,.dialog-content,[role=dialog]{font-family:inherit}h1,h2,h3,h4,h5,h6,.page-title,.modal-title,.card-title,.hero-title{font-family:var(--font-family-display, var(--font-family-body, "Manrope", -apple-system, BlinkMacSystemFont, sans-serif))}.subscription-top-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-radius:12px;margin-bottom:20px;font-size:13.5px;line-height:1.5;box-shadow:0 4px 12px #0000000d;animation:slideDownBanner .25s ease-out}@keyframes slideDownBanner{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.subscription-top-banner .banner-content{display:flex;align-items:center;gap:12px;flex:1}.subscription-top-banner .banner-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.subscription-top-banner .banner-text{color:inherit}.subscription-top-banner .banner-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.subscription-top-banner .banner-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;white-space:nowrap}.subscription-top-banner .banner-close-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:6px;opacity:.7;transition:opacity .2s ease}.subscription-top-banner .banner-close-btn:hover{opacity:1}.subscription-top-banner.banner-trial{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;color:#3730a3}.subscription-top-banner.banner-trial .banner-action-btn{background:#4f46e5;color:#fff}.subscription-top-banner.banner-trial .banner-action-btn:hover{background:#4338ca}.subscription-top-banner.banner-expiring{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;color:#92400e}.subscription-top-banner.banner-expiring .banner-action-btn{background:#d97706;color:#fff}.subscription-top-banner.banner-expiring .banner-action-btn:hover{background:#b45309}.subscription-top-banner.banner-grace{background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fed7aa;color:#9a3412}.subscription-top-banner.banner-grace .banner-action-btn{background:#ea580c;color:#fff}.subscription-top-banner.banner-grace .banner-action-btn:hover{background:#c2410c}.subscription-top-banner.banner-expired{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;color:#991b1b}.subscription-top-banner.banner-expired .banner-action-btn{background:#dc2626;color:#fff}.subscription-top-banner.banner-expired .banner-action-btn:hover{background:#b91c1c}.billing-page-container{max-width:1200px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:28px;font-family:var(--font-family, inherit)}.billing-top-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.billing-page-heading{font-size:24px;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 4px}.billing-page-sub{font-size:14px;color:var(--text-secondary, #64748b);margin:0}.billing-refresh-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;border:1px solid var(--border-color, #e2e8f0);background:var(--card-bg, #ffffff);color:var(--text-primary, #334155);font-size:13.5px;font-weight:500;cursor:pointer;box-shadow:0 2px 5px #0000000a;transition:all .2s ease}.billing-refresh-btn:hover:not(:disabled){background:var(--bg-hover, #f8fafc);border-color:var(--border-hover, #cbd5e1)}.billing-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.is-spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.billing-content-flow{display:flex;flex-direction:column;gap:32px}.billing-section-eyebrow{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--color-primary, #6c5ce7);margin-bottom:4px}.billing-section-title{font-size:18px;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 6px}.billing-section-subtitle{font-size:13.5px;color:var(--text-secondary, #64748b);margin:0;max-width:680px}.billing-status-card{background:var(--card-bg, #ffffff);border:1px solid var(--card-border, #e2e8f0);border-radius:16px;padding:24px;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003;display:flex;flex-direction:column;gap:20px}.billing-status-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.billing-school-name{font-size:20px;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.billing-status-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:9999px;font-size:12.5px;font-weight:700;letter-spacing:.4px}.billing-badge-trial{background:#eef2ff;color:var(--color-primary-dark, #3f2e96);border:1px solid #c7d2fe}.billing-badge-active{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.billing-badge-expiring{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.billing-badge-grace{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.billing-badge-expired{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.billing-badge-unknown{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.billing-status-description{font-size:14px;color:var(--text-secondary, #475569);margin:0;line-height:1.5}.billing-dates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.billing-date-item{background:var(--item-bg, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:16px;display:flex;align-items:center;gap:14px}.billing-date-icon{width:38px;height:38px;border-radius:10px;background:var(--icon-bg, #ffffff);display:flex;align-items:center;justify-content:center;color:var(--color-primary, #6c5ce7);box-shadow:0 2px 4px #0000000a;flex-shrink:0}.billing-date-copy{display:flex;flex-direction:column;gap:2px}.billing-date-label{font-size:11.5px;color:var(--text-secondary, #64748b);text-transform:uppercase;font-weight:600}.billing-date-value{font-size:14.5px;color:var(--text-primary, #1e293b);font-weight:600}.billing-days-highlight{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#bae6fd}.billing-days-number{font-size:26px;font-weight:800;color:#0284c7;min-width:44px;text-align:center;line-height:1}.billing-days-sub{font-size:11.5px;color:#0369a1}.billing-status-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:16px;border-top:1px solid var(--border-color, #e2e8f0);flex-wrap:wrap}.billing-mutation-notice{font-size:13px;font-weight:500}.billing-allowed-text{color:#16a34a;display:inline-flex;align-items:center;gap:6px}.billing-blocked-text{color:#dc2626;display:inline-flex;align-items:center;gap:6px}.billing-btn-cta{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;background:var(--color-primary-gradient, linear-gradient(135deg, #7c6df0 0%, #5240d4 100%));color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #4f46e540;transition:all .2s ease}.billing-btn-cta:hover{background:var(--color-primary-hover, #5848c2);transform:translateY(-1px);box-shadow:0 6px 16px #4f46e559}.billing-btn-cta.is-urgent{background:#ea580c;box-shadow:0 4px 12px #ea580c40}.billing-btn-cta.is-urgent:hover{background:#c2410c;box-shadow:0 6px 16px #ea580c59}.billing-pricing-section{display:flex;flex-direction:column;gap:20px}.billing-plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.billing-plan-card{background:var(--card-bg, #ffffff);border:1px solid var(--card-border, #e2e8f0);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:18px;position:relative;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 12px #00000008}.billing-plan-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px -8px #00000014;border-color:var(--primary-border, #cbd5e1)}.billing-plan-card.is-featured{border:2px solid var(--color-primary, #6c5ce7);background:linear-gradient(180deg,#faf5ff,#fff 40%);box-shadow:0 10px 25px -5px #6366f126}.billing-plan-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--color-primary-gradient, linear-gradient(135deg, #7c6df0 0%, #5240d4 100%));color:#fff;padding:4px 14px;border-radius:9999px;font-size:11.5px;font-weight:700;display:flex;align-items:center;gap:5px;box-shadow:0 4px 10px #6366f14d;white-space:nowrap}.billing-plan-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.billing-plan-name{font-size:18px;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.billing-plan-offer-pill{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.billing-plan-pricing{display:flex;flex-direction:column;gap:4px;padding-bottom:16px;border-bottom:1px solid var(--border-color, #f1f5f9)}.billing-plan-main-price{display:flex;align-items:baseline;gap:4px}.billing-plan-amount{font-size:22px;font-weight:800;color:var(--text-primary, #0f172a)}.billing-plan-period{font-size:13px;color:var(--text-secondary, #64748b)}.billing-plan-list-price{font-size:12.5px;color:#94a3b8}.billing-plan-monthly-rate{font-size:12px;color:var(--text-secondary, #64748b)}.billing-plan-features{display:flex;flex-direction:column;gap:10px;flex:1}.billing-plan-feature-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-primary, #334155);line-height:1.4}.billing-check-icon{color:#10b981;flex-shrink:0;margin-top:1px}.billing-plan-select-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:10px;border:1px solid var(--border-color, #cbd5e1);background:var(--btn-bg, #f8fafc);color:var(--text-primary, #1e293b);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s ease}.billing-plan-select-btn:hover{background:#e2e8f0}.billing-plan-select-btn.is-featured{background:var(--color-primary-gradient, linear-gradient(135deg, #7c6df0 0%, #5240d4 100%));color:#fff;border-color:var(--color-primary, #6c5ce7);box-shadow:0 4px 12px #4f46e540}.billing-plan-select-btn.is-featured:hover{background:var(--color-primary-hover, #5848c2)}.billing-history-section{background:var(--card-bg, #ffffff);border:1px solid var(--card-border, #e2e8f0);border-radius:16px;padding:24px;box-shadow:0 4px 12px #00000008;display:flex;flex-direction:column;gap:20px}.billing-history-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.billing-tabs-nav{display:flex;gap:8px;background:var(--tab-bg, #f1f5f9);padding:4px;border-radius:10px}.billing-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary, #64748b);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.billing-tab-btn:hover{color:var(--color-primary-dark, #3f2e96);background:#ffffffb8}.billing-tab-btn.billing-tab-active{background:var(--color-primary-gradient, linear-gradient(135deg, #7c6df0 0%, #5240d4 100%));color:#fff;box-shadow:0 5px 14px #6c5ce747}.billing-tab-btn.billing-tab-active .billing-tab-badge{background:#ffffff38;color:#fff}.billing-tab-badge{min-width:20px;padding:2px 6px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:11px;line-height:1.2;text-align:center}.billing-table-wrapper{overflow-x:auto}.billing-data-table{width:100%;border-collapse:collapse;font-size:13.5px;text-align:left}.billing-data-table th{padding:10px 14px;font-weight:700;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;background:var(--table-header-bg, #ede9fe);white-space:nowrap}.billing-data-table td{padding:12px 14px;border-bottom:1px solid var(--border-color, #f1f5f9);color:var(--text-primary, #334155)}.billing-mono-code{font-family:inherit;font-size:12.5px;font-weight:600;color:var(--color-primary, #6c5ce7)}.billing-amount{font-weight:700;color:#0f172a}.billing-tag{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.3px;border:1px solid transparent;transition:background .18s ease,color .18s ease,border-color .18s ease}.billing-tag-success{background:#dcfce7;color:#15803d;border-color:#86efac}.billing-tag-success:hover{background:#16a34a;border-color:#15803d;color:#fff}.billing-tag-warning{background:#fef3c7;color:#b45309;border-color:#fde68a}.billing-tag-warning:hover{background:#d97706;border-color:#b45309;color:#fff}.billing-tag-info{background:#e0f2fe;color:#0369a1;border-color:#7dd3fc}.billing-tag-info:hover{background:#0284c7;border-color:#0369a1;color:#fff}.billing-tag-danger{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.billing-tag-danger:hover{background:#dc2626;border-color:#b91c1c;color:#fff}.billing-tag-neutral{background:#f1f5f9;color:#64748b;border-color:#cbd5e1}.billing-tag-neutral:hover{background:#64748b;border-color:#475569;color:#fff}.billing-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;gap:12px;color:var(--text-secondary, #94a3b8);font-size:14px}.billing-empty-icon{opacity:.5}.billing-page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-secondary, #64748b);font-size:14px}.billing-loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}.billing-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:12px;text-align:center;padding:24px}.billing-error-icon{color:#ef4444}.billing-btn-retry{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:13.5px;font-weight:600;cursor:pointer;margin-top:8px;transition:all .2s ease}.billing-btn-retry:hover{background:#f8fafc}@media(max-width:1024px){.billing-plans-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.billing-page-container{padding:16px;gap:20px}.billing-plans-grid{grid-template-columns:1fr}.billing-status-header{flex-direction:column;align-items:flex-start}.billing-dates-grid{grid-template-columns:1fr}.billing-status-footer{flex-direction:column;align-items:stretch}.billing-btn-cta{justify-content:center}.subscription-top-banner{flex-direction:column;align-items:flex-start}}.billing-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeInModal .2s ease-out}@keyframes fadeInModal{0%{opacity:0}to{opacity:1}}.billing-modal-card{background:var(--card-bg, #ffffff);border:1px solid var(--card-border, #e2e8f0);border-radius:20px;width:100%;max-width:820px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;position:relative;animation:scaleUpModal .25s cubic-bezier(.16,1,.3,1)}@keyframes scaleUpModal{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.billing-modal-header{padding:20px 24px;border-bottom:1px solid var(--border-color, #e2e8f0);display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex:0 0 auto}.billing-modal-eyebrow-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.billing-modal-reused-tag{font-size:11px;font-weight:700;background:#f1f5f9;color:#475569;padding:2px 8px;border-radius:4px;border:1px solid #cbd5e1}.billing-modal-title{font-size:18px;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.billing-modal-title code{font-family:inherit;background:#f1f5f9;padding:2px 6px;border-radius:6px;color:var(--color-primary, #6c5ce7)}.billing-modal-close-btn{background:none;border:none;padding:6px;border-radius:8px;color:var(--text-secondary, #64748b);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.billing-modal-close-btn:hover{background:var(--bg-hover, #f1f5f9);color:var(--text-primary, #0f172a)}.billing-modal-body{padding:24px;overflow-y:auto;min-height:0;flex:1 1 auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:16px}.billing-modal-alert{display:flex;align-items:center;gap:10px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:10px 16px;border-radius:10px;font-size:13px}.billing-alert-icon{color:#d97706;flex-shrink:0}.billing-modal-alert-terminal{border-color:#fecaca;color:#991b1b;background:#fef2f2}.billing-report-success-banner{display:flex;align-items:flex-start;gap:14px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:16px;border-radius:12px}.billing-report-success-icon{color:#16a34a;flex-shrink:0;margin-top:2px}.billing-report-success-banner h4{font-size:15px;font-weight:700;margin:0 0 4px}.billing-report-success-banner p{font-size:13px;margin:0;line-height:1.45;color:#15803d}.billing-checkout-grid{display:grid;grid-template-columns:280px 1fr;gap:24px}.billing-qr-column{display:flex;flex-direction:column;align-items:center;gap:12px}.billing-qr-box{width:100%;aspect-ratio:1;background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000000d}.billing-qr-image{width:100%;height:100%;object-fit:contain;border-radius:8px}.billing-qr-hint{font-size:12px;color:var(--text-secondary, #64748b);display:flex;align-items:center;gap:6px;text-align:center;line-height:1.4;margin:0}.billing-details-column{display:flex;flex-direction:column;gap:16px}.billing-order-plan-card{background:var(--item-bg, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:14px 18px;display:flex;flex-direction:column;gap:8px}.billing-order-plan-row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px}.billing-order-plan-label{color:var(--text-secondary, #64748b)}.billing-order-plan-value{font-weight:700;color:var(--text-primary, #0f172a)}.billing-order-plan-amount{font-size:18px;font-weight:800;color:var(--color-primary, #6c5ce7)}.billing-bank-info-card{background:#fff;border:1px solid var(--card-border, #e2e8f0);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}.billing-bank-info-title{font-size:14px;font-weight:700;color:var(--text-primary, #0f172a);margin:0 0 4px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.billing-info-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:4px 0}.billing-info-row.billing-info-copyable{background:var(--item-bg, #f8fafc);padding:8px 12px;border-radius:8px;border:1px solid var(--border-color, #e2e8f0)}.billing-info-row.billing-info-highlight{background:#fffbeb;border-color:#fde68a}.billing-info-meta{display:flex;flex-direction:column;gap:2px}.billing-info-label{font-size:11px;color:var(--text-secondary, #64748b);text-transform:uppercase;font-weight:600}.billing-info-val{color:var(--text-primary, #1e293b);font-size:13.5px}.billing-copy-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.billing-copy-btn:hover{background:#f1f5f9;border-color:#94a3b8}.billing-confirm-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:16px;display:flex;gap:12px;align-items:flex-start}.billing-confirm-box.billing-confirm-danger{background:#fef2f2;border-color:#fecaca}.billing-confirm-icon{color:#16a34a;flex-shrink:0;margin-top:2px}.billing-confirm-icon-danger{color:#dc2626;flex-shrink:0;margin-top:2px}.billing-confirm-copy h5{margin:0 0 4px;font-size:14px;font-weight:700;color:#0f172a}.billing-confirm-copy p{margin:0 0 12px;font-size:13px;color:#475569;line-height:1.4}.billing-confirm-actions{display:flex;gap:10px}.billing-btn-sm{padding:6px 14px;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;border:none;transition:all .15s ease}.billing-btn-cancel{background:#e2e8f0;color:#334155}.billing-btn-confirm{background:#16a34a;color:#fff}.billing-btn-danger{background:#dc2626;color:#fff}.billing-cancel-confirm-dialog{border-color:#fecaca}.billing-cancel-confirm-icon{color:#dc2626;background:#fee2e2}.billing-btn-danger-modal{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border:1px solid #b91c1c;border-radius:8px;font-size:13.5px;font-weight:700;cursor:pointer}.billing-btn-danger-modal:hover:not(:disabled){background:#b91c1c}.billing-modal-footer{padding:16px 24px;border-top:1px solid var(--border-color, #e2e8f0);display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--card-bg, #ffffff);flex:0 0 auto;position:relative;z-index:2}.billing-modal-footer-right{display:flex;align-items:center;gap:12px}.billing-btn-text-danger{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#dc2626;font-size:13px;font-weight:600;cursor:pointer;padding:6px 8px;border-radius:6px;transition:background .15s ease}.billing-btn-text-danger:hover{background:#fee2e2}.billing-btn-secondary{padding:8px 18px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.billing-btn-secondary:hover{background:#f8fafc}.billing-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:8px;border:none;background:var(--color-primary-gradient, linear-gradient(135deg, #7c6df0 0%, #5240d4 100%));color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #6c5ce747;transition:all .15s ease}.billing-btn-primary:hover:not(:disabled){background:var(--color-primary-hover, #5848c2);box-shadow:0 6px 16px #6c5ce75c}.billing-btn-primary:disabled{opacity:.6;cursor:not-allowed}.billing-transfer-confirm-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:grid;place-items:center;padding:24px;background:#0f172aad;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.billing-transfer-confirm-dialog{width:min(460px,100%);padding:28px;border:1px solid var(--color-primary-light, #f0edfe);border-radius:18px;background:#fff;color:var(--color-text, #1e293b);text-align:center;box-shadow:0 24px 60px #0f172a52}.billing-transfer-confirm-icon{width:52px;height:52px;margin:0 auto 14px;display:grid;place-items:center;border-radius:16px;color:var(--color-primary, #6c5ce7);background:var(--color-primary-light, #f0edfe)}.billing-transfer-confirm-dialog h4{margin:0 0 10px;font-size:20px;color:var(--color-text, #1e293b)}.billing-transfer-confirm-dialog p{margin:0;color:var(--color-text-secondary, #64748b);font-size:14px;line-height:1.55}.billing-transfer-confirm-summary{display:flex;justify-content:space-between;gap:16px;margin:18px 0;padding:12px 14px;border-radius:10px;background:var(--color-primary-subtle, #faf8ff);color:var(--color-primary-dark, #3f2e96);font-size:13px}.billing-transfer-confirm-actions{display:grid;grid-template-columns:1fr 1.45fr;gap:10px}.billing-transfer-confirm-actions button{min-height:42px;justify-content:center}.notification-bell-3d{display:block;font-size:23px;line-height:1;filter:drop-shadow(0 2px 2px rgba(15,23,42,.28));transform:translateY(-1px)}@media(max-width:768px){.billing-checkout-grid{grid-template-columns:1fr}.billing-qr-box{max-width:240px}.billing-modal-footer{flex-direction:column;align-items:stretch}.billing-modal-footer-right{flex-direction:column-reverse}.billing-modal-footer-right button{width:100%;justify-content:center}.billing-transfer-confirm-actions{grid-template-columns:1fr}}.billing-review-messages{margin-top:0;flex:0 0 auto;overflow:hidden;border:1px solid #fed7aa;border-radius:16px;background:#fffaf2;box-shadow:0 8px 24px #9a34120f}.billing-review-messages-header{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid #ffedd5;background:linear-gradient(135deg,#fff7ed,#fffbeb)}.billing-review-messages-icon{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;border-radius:11px;color:#c2410c;background:#ffedd5}.billing-review-messages-title{margin:0;color:#9a3412;font-size:16px;font-weight:750;line-height:1.35}.billing-review-messages-subtitle{margin:4px 0 0;color:#9a5b36;font-size:13px;line-height:1.5}.billing-review-messages-list{display:grid;gap:12px;padding:16px 20px 20px}.billing-review-message-item{padding:15px 16px;border:1px solid #fed7aa;border-radius:12px;background:#fff}.billing-review-message-item.is-school-reply{margin-left:40px;border-color:#bbf7d0;background:#f0fdf4}.billing-review-message-item.is-school-reply .billing-review-message-sender,.billing-review-message-item.is-school-reply .billing-review-message-body{color:#15803d}.billing-review-message-item.is-school-reply .billing-review-message-text{color:#14532d}.billing-review-message-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.billing-review-message-sender{color:#7c2d12;font-size:13px;font-weight:700}.billing-review-message-time{color:#9a6b51;font-size:12px;white-space:nowrap}.billing-review-message-body{display:flex;align-items:flex-start;gap:10px;color:#c2410c}.billing-review-message-body>svg{flex:0 0 auto;margin-top:2px}.billing-review-message-text{margin:0;color:#3f2d26;font-size:14px;line-height:1.65;overflow-wrap:anywhere}.billing-payment-row-actionable{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.billing-payment-row-actionable:hover,.billing-payment-row-actionable:focus-visible{background:#fff7e6;box-shadow:inset 3px 0 #f59e0b;outline:none}.billing-payment-row-target:not(:hover):not(:focus-visible){background:#f59e0b14}.billing-payment-code-cell{position:relative}.billing-payment-row-hint{position:absolute;top:50%;right:12px;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid #fcd34d;border-radius:8px;color:#92400e;background:#fffbeb;box-shadow:0 5px 14px #92400e21;font-family:var(--font-family, inherit);font-size:11px;font-weight:700;line-height:1.2;pointer-events:none;opacity:0;white-space:nowrap;transform:translate(5px,-50%);transition:opacity .14s ease,transform .16s ease}.billing-payment-row-actionable:hover .billing-payment-row-hint,.billing-payment-row-actionable:focus-visible .billing-payment-row-hint{opacity:1;transform:translateY(-50%)}.billing-payment-review-count{margin-top:3px;color:#b77905;font-size:11px;font-weight:650}.billing-receipt-timeline{display:grid;gap:9px;margin-bottom:16px;padding:14px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.billing-receipt-timeline h4{margin:0 0 3px;color:#334155;font-size:13px}.billing-receipt-timeline-item{padding:9px 11px;border-left:3px solid #f59e0b;border-radius:7px;background:#fff}.billing-receipt-timeline-item.is-school{border-left-color:#22c55e;background:#f0fdf4}.billing-receipt-timeline-item>div{display:flex;justify-content:space-between;gap:10px;color:#475569;font-size:11px}.billing-receipt-timeline-item time{color:#64748b}.billing-receipt-timeline-item p{margin:5px 0 0;color:#1e293b;font-size:12px;line-height:1.45}@media(max-width:640px){.billing-review-messages{margin-top:20px;border-radius:13px}.billing-review-messages-header,.billing-review-messages-list{padding:14px}.billing-review-message-meta{align-items:flex-start;flex-direction:column;gap:3px}.billing-review-message-time{white-space:normal}.billing-review-message-item.is-school-reply{margin-left:14px}}.student-import-container{display:flex;flex-direction:column;gap:20px;max-width:1200px;margin:0 auto;padding:8px 16px 40px}.import-stepper-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 24px;box-shadow:0 1px 3px #0000000d}.import-stepper-desktop{display:flex;align-items:center;justify-content:space-between;overflow-x:auto}.import-stepper-mobile{display:none;flex-direction:column;gap:8px}.import-stepper-mobile-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#334155}.import-stepper-mobile-count strong{color:var(--color-primary, #6c5ce7);font-size:14px}.import-stepper-mobile-current-name{font-weight:700;color:#0f172a}.import-stepper-mobile-hint{font-size:11.5px;color:#64748b;font-style:italic}.import-stepper-mobile-segments{display:flex;gap:6px;width:100%}.import-stepper-mobile-segment{flex:1;height:6px;border-radius:3px;background:#e2e8f0;transition:all .2s ease}.import-stepper-mobile-segment.completed{background:#10b981}.import-stepper-mobile-segment.active{background:var(--color-primary, #6c5ce7);box-shadow:0 0 0 2px var(--pastel-purple-bg, #ede9fe)}.import-step-item{display:flex;align-items:center;gap:10px;position:relative;cursor:default}.import-step-item.clickable{cursor:pointer}.import-step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:#f1f5f9;color:#64748b;border:2px solid #cbd5e1;transition:all .2s ease}.import-step-item.active .import-step-number{background:var(--color-primary, #6c5ce7);color:#fff;border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 4px var(--pastel-purple-bg, #ede9fe)}.import-step-item.completed .import-step-number{background:#10b981;color:#fff;border-color:#10b981}.import-step-label{font-size:14px;font-weight:600;color:#64748b;white-space:nowrap}.import-step-item.active .import-step-label{color:#1e293b;font-weight:700}.import-step-item.completed .import-step-label{color:#0f172a}.import-step-separator{flex:1;height:2px;background:#e2e8f0;margin:0 16px;min-width:24px}.import-step-separator.completed{background:#10b981}.import-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a}.import-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.import-card-header-text{flex:1}.import-card-header-action{flex-shrink:0}.import-card-header-action button{white-space:nowrap}.import-card-title{font-size:18px;font-weight:700;color:#0f172a;margin-bottom:4px}.import-card-subtitle{font-size:13px;color:#64748b}.import-source-tabs{display:flex;gap:8px;border-bottom:1px solid #e2e8f0;margin-bottom:20px}.import-source-tab{padding:10px 18px;font-size:14px;font-weight:600;color:#64748b;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;display:flex;align-items:center;gap:8px}.import-source-tab.active{color:var(--color-primary, #6c5ce7);border-bottom-color:var(--color-primary, #6c5ce7)}.import-dropzone{border:2px dashed #cbd5e1;border-radius:12px;padding:40px 24px;text-align:center;background:#f8fafc;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:12px}.import-dropzone:hover,.import-dropzone.dragover{border-color:var(--color-primary, #6c5ce7);background:var(--pastel-purple-bg, #ede9fe)}.import-sheet-selector{margin-top:20px;padding:16px;background:#f1f5f9;border-radius:8px;display:flex;align-items:center;gap:12px}.mapping-table{width:100%;border-collapse:collapse}.mapping-table th{background:var(--table-header-bg, #ede9fe);padding:12px 16px;text-align:left;font-size:12px;font-weight:700;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;text-transform:uppercase;letter-spacing:.05em}.mapping-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9;font-size:13px;vertical-align:middle}.mapping-confidence-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700}.mapping-confidence-badge.high{background:#dcfce7;color:#15803d}.mapping-confidence-badge.medium{background:#fef9c3;color:#854d0e}.mapping-confidence-badge.none{background:#f1f5f9;color:#64748b}.staging-filter-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.staging-filter-tabs{display:flex;gap:6px}.staging-filter-btn{padding:6px 12px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:12px;font-weight:600;color:#475569;cursor:pointer;display:flex;align-items:center;gap:6px}.staging-filter-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}.staging-table-container{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.staging-table{width:100%;border-collapse:collapse;min-width:900px}.staging-table th{background:var(--table-header-bg, #ede9fe);padding:10px 12px;text-align:left;font-size:12px;font-weight:700;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a}.staging-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;vertical-align:top}.staging-table tr.has-error{background:#fff1f2}.staging-table tr.has-warning{background:#fffbeb}.duplicate-card{border:1px solid #fde047;background:#fefce8;border-radius:8px;padding:12px 16px;margin-top:8px}.commit-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.commit-summary-card{padding:16px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.commit-summary-card .number{font-size:28px;font-weight:800;color:#0f172a}.commit-summary-card .label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase}.commit-confirm-box{padding:16px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;margin-bottom:24px;display:flex;align-items:flex-start;gap:12px}.import-footer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid #e2e8f0}@media(max-width:640px){.student-import-container{padding:6px 12px 32px;gap:14px}.import-stepper-container{padding:12px 14px;border-radius:10px}.import-stepper-mobile{display:flex}.import-stepper-desktop{margin-top:10px;padding-top:10px;border-top:1px dashed #e2e8f0;gap:8px;justify-content:flex-start;-webkit-overflow-scrolling:touch}.import-step-item{gap:6px;flex-shrink:0}.import-step-number{width:24px;height:24px;font-size:11px}.import-step-label{font-size:12px}.import-step-separator{min-width:14px;margin:0 6px}.import-card{padding:16px 14px;border-radius:10px}.import-card-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.import-card-title{font-size:16px;line-height:1.35}.import-card-subtitle{font-size:12.5px;line-height:1.4}.import-card-header-action{align-self:flex-start}.import-card-header-action button{white-space:nowrap;width:auto}.import-source-tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px}.import-source-tab{padding:8px 12px;font-size:13px}.import-footer-actions{flex-direction:column-reverse;gap:10px;align-items:stretch}.import-footer-actions button{width:100%;justify-content:center}}.import-normalize-review th,.import-normalize-review td{text-align:center}.import-normalize-review th:nth-child(2),.import-normalize-review td:nth-child(2){text-align:left}.import-family-review{width:100%;border-collapse:collapse;font:inherit}.import-family-review th,.import-family-review td{text-align:center;padding:8px}.import-family-review th:first-child,.import-family-review td:first-child{text-align:left}.student-import-container .import-family-scroll{overflow-x:auto;margin-bottom:16px;border:1px solid var(--color-border);border-radius:12px}.student-import-container .import-family-review{min-width:560px;color:var(--color-text);background:var(--color-surface)}.student-import-container .import-family-review th{background:var(--table-header-bg);color:var(--table-header-color,var(--color-text-title));border:1px solid var(--color-border);padding:10px}.student-import-container .import-family-review td{border-bottom:1px solid var(--color-border);padding:10px;vertical-align:middle}.student-import-container .import-family-permissions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:6px;font:inherit}.student-import-container .import-family-permissions label{display:inline-flex;align-items:center;gap:4px}.student-import-container .import-family-permissions input,.student-import-container .commit-confirm-box input{accent-color:var(--color-primary)}.student-import-container .commit-confirm-box{background:var(--callout-raised-bg);color:var(--brand-ink);border:1px solid var(--callout-raised-border);box-shadow:var(--callout-raised-shadow);font:inherit}.student-import-container .commit-confirm-box label{color:var(--brand-ink);font:inherit}.student-import-container .commit-confirm-box:focus-within,.student-import-container .commit-confirm-box.is-confirmed{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:var(--callout-raised-shadow),0 0 12px color-mix(in srgb,var(--color-primary) 22%,transparent)}.attendance-page{display:flex;flex-direction:column;gap:20px;padding-bottom:40px}.attendance-page-container{display:flex;flex-direction:column;gap:24px;padding-bottom:40px}.attendance-conflict-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background-color:#fffbeb;border:1px solid #fef3c7;border-left:4px solid #f59e0b;border-radius:8px;color:#92400e;font-size:14px}.attendance-conflict-banner .banner-actions{display:flex;align-items:center;gap:10px}.banner-btn-reload{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s}.banner-btn-reload:hover{opacity:.9}.banner-btn-close{background:none;border:none;font-size:16px;color:#92400e;cursor:pointer}.attendance-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px}.metric-card--active{box-shadow:0 0 0 2px var(--primary-color, #4f46e5);border-color:var(--primary-color, #4f46e5)!important}.attendance-unified-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 14px);overflow:hidden;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05));display:flex;flex-direction:column}.attendance-unified-card .attendance-filters-container{background:transparent;border:none;border-bottom:1px solid var(--border-color, #e2e8f0);border-radius:0;box-shadow:none;margin:0;padding:14px 18px}.attendance-unified-card .attendance-table-card{background:transparent;border:none;border-radius:0;box-shadow:none;margin:0;overflow:visible}.attendance-unified-card .attendance-bulk-banner{margin:16px 18px}.attendance-unified-card .attendance-empty-card,.attendance-unified-card .attendance-loading-card,.attendance-unified-card .attendance-error-card{background:transparent;border:none;border-radius:0;box-shadow:none}.attendance-filters-container{display:flex;flex-direction:column;gap:0;background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-bottom:none;border-radius:12px 12px 0 0;padding:14px 18px;box-shadow:none;margin-bottom:0}.attendance-status-tabs{display:none!important}.attendance-controls-bar{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.filter-control-group{display:flex;align-items:center;gap:8px}.filter-label{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--text-secondary, #475569);white-space:nowrap}.filter-select{padding:8px 12px;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:14px;color:var(--text-primary, #1e293b);background:var(--input-bg, #ffffff);outline:none;transition:border-color .2s}.filter-select:focus{border-color:var(--primary-color, #4f46e5)}.attendance-date-picker{width:190px;padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;outline:0}.attendance-date-picker:focus,.attendance-date-picker:focus-within{border:0!important;box-shadow:none!important}.filter-search-group{position:relative;display:flex;align-items:center;flex:1;min-width:220px}.search-icon{position:absolute;left:10px;color:var(--text-secondary, #94a3b8);pointer-events:none}.filter-search-input{width:100%;padding:8px 30px 8px 32px;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:14px;color:var(--text-primary, #1e293b);background:var(--input-bg, #ffffff);outline:none}.filter-search-input:focus{border-color:var(--primary-color, #4f46e5)}.search-clear-btn{position:absolute;right:8px;background:none;border:none;color:#94a3b8;cursor:pointer;font-size:12px}.refresh-icon-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--btn-secondary-bg, #f1f5f9);border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:13.5px;font-weight:600;color:var(--text-primary, #334155);cursor:pointer;transition:all .2s}.refresh-icon-btn:hover:not(:disabled){background:#e2e8f0}.refresh-icon-btn:disabled{opacity:.6;cursor:not-allowed}.attendance-status-tabs{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--border-color, #f1f5f9);padding-top:12px}.status-tab{padding:6px 14px;border-radius:20px;border:1px solid transparent;background:var(--bg-tertiary, #f8fafc);color:var(--text-secondary, #64748b);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.status-tab:hover{background:#f1f5f9;color:var(--text-primary, #1e293b)}.status-tab--active{background:var(--primary-color, #4f46e5)!important;color:#fff!important;border-color:var(--primary-color, #4f46e5)!important}.status-tab--present.status-tab--active{background:#16a34a!important;border-color:#16a34a!important}.status-tab--absent.status-tab--active{background:#e11d48!important;border-color:#e11d48!important}.status-tab--unprocessed.status-tab--active{background:#d97706!important;border-color:#d97706!important}.attendance-table-card{background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:0 0 12px 12px;overflow:hidden;box-shadow:0 1px 3px #0000000d;margin-top:0}.attendance-instruction-banner{margin:18px 18px 14px!important;line-height:1.55}thead th .attendance-col-student-count,.attendance-col-student-count{font-weight:500;font-size:11.5px;color:#fff!important;margin-left:3px;opacity:1}@media(max-width:900px){.attendance-page-container{gap:18px}.attendance-stats-grid{gap:12px}.attendance-filters-container{padding:14px 16px}}.table-responsive{overflow-x:auto}.attendance-table-scroll-hint{display:none;align-items:center;gap:8px;padding:8px 18px;font-size:12.5px;color:var(--text-secondary, #64748b);background:var(--surface-ground, #f8fafc);border-bottom:1px solid var(--border-color-card, #e2e8f0)}@media(max-width:1024px){.attendance-table-scroll-hint{display:flex}}.attendance-table{width:100%;min-width:1020px;border-collapse:collapse;text-align:left;font-size:13.5px}.attendance-table th{background:var(--table-header-bg, #ede9fe);padding:12px 14px;font-size:12.5px;font-weight:700;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;text-transform:uppercase;letter-spacing:.3px}.attendance-help-circle-btn:hover{background:#ffffff59!important;transform:scale(1.08)}.attendance-help-circle-btn:focus-visible{outline:2px solid #ffffff;outline-offset:1px}.attendance-table td{padding:12px 14px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);vertical-align:middle}.attendance-table th.col-stt,.attendance-table td.col-stt{width:48px;min-width:48px;text-align:center}.attendance-table th.col-student,.attendance-table td.col-student{width:200px;min-width:190px;text-align:left}.attendance-table th.col-actions,.attendance-table td.col-actions{width:390px;min-width:380px;text-align:center}.attendance-table th.col-notes,.attendance-table td.col-notes{width:230px;min-width:220px;text-align:center}.attendance-table th.col-status,.attendance-table td.col-status{width:160px;min-width:160px;text-align:center}.attendance-table tbody tr:hover{background:var(--surface-hover, #f8f7fd)}.row--in-flight{background:#6366f10a}.student-identity-cell{display:flex;flex-direction:column;gap:2px}.student-name{font-size:14px;color:var(--text-primary, #0f172a)}.student-sub{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary, #64748b)}.student-id,.student-code{font-family:inherit;background:#f1f5f9;padding:1px 4px;border-radius:4px}.status-button-group{display:flex;align-items:center;justify-content:center;gap:6px}.status-btn{display:flex;align-items:center;justify-content:center;gap:4px;padding:7px 11px;border:1px solid var(--border-color, #cbd5e1);border-radius:6px;background:#fff;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.status-btn:disabled{opacity:.6;cursor:not-allowed}.status-btn--present:hover:not(:disabled){border-color:#22c55e;color:#15803d;background:#f0fdf4}.status-btn--sick:hover:not(:disabled){border-color:#f59e0b;color:#b45309;background:#fffbeb}.status-btn--excused:hover:not(:disabled){border-color:#3b82f6;color:#1d4ed8;background:#eff6ff}.status-btn--unexcused:hover:not(:disabled){border-color:#ef4444;color:#b91c1c;background:#fef2f2}.status-btn--present.status-btn--selected{background:#16a34a!important;border-color:#16a34a!important;color:#fff!important;box-shadow:0 2px 4px #16a34a40}.status-btn--sick.status-btn--selected{background:#d97706!important;border-color:#d97706!important;color:#fff!important;box-shadow:0 2px 4px #d9770640}.status-btn--excused.status-btn--selected{background:#2563eb!important;border-color:#2563eb!important;color:#fff!important;box-shadow:0 2px 4px #2563eb40}.status-btn--unexcused.status-btn--selected{background:#dc2626!important;border-color:#dc2626!important;color:#fff!important;box-shadow:0 2px 4px #dc262640}.arrival-context-cell{display:flex;flex-direction:column;gap:4px}.note-text,.reason-text{margin:0;font-size:12px;color:#334155;background:#f8fafc;padding:3px 6px;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.processing-status-row{display:flex;align-items:center;gap:6px}.processing-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}.processing-badge--MỚI{background:#ffe4e6;color:#be123c}.processing-badge--ĐÃ\ TIẾP\ NHẬN{background:#fef3c7;color:#92400e}.processing-badge--ĐÃ\ HOÀN\ TẤT{background:#dcfce7;color:#15803d}.processing-badge--none{background:#f1f5f9;color:#94a3b8}.edit-note-btn{display:flex;align-items:center;gap:3px;background:none;border:none;color:var(--primary-color, #4f46e5);font-size:12px;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:4px}.edit-note-btn:hover{background:#eff6ff}.outcome-cell{display:flex;flex-direction:column;gap:4px}.outcome-badge-container{display:flex;align-items:center;gap:6px}.outcome-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px}.outcome-badge--saving{background:#eff6ff;color:#2563eb}.outcome-badge--confirmed{background:var(--color-primary-subtle, color-mix(in srgb, var(--color-primary, #6366f1) 10%, #ffffff));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));border:1px solid var(--color-primary-border, color-mix(in srgb, var(--color-primary, #6366f1) 20%, transparent))}.outcome-badge--partial{background:#fef3c7;color:#b45309}.outcome-badge--unknown{background:#fff1f2;color:#be123c}.outcome-badge--error{background:#fee2e2;color:#b91c1c}.outcome-badge--conflict{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.outcome-badge--ready{background:#f1f5f9;color:#475569}.outcome-badge--pending{background:#f8fafc;color:#94a3b8;font-style:italic}.outcome-badge--saved-pending{background:#fef9c3;color:#854d0e;border:1px solid #fef08a}.outcome-badge--syncing{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.outcome-badge--synced{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.outcome-badge--delayed{background:#ffedd5;color:#c2410c;border:1px solid #fed7aa}.outcome-badge--action-required{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.retry-inline-btn{display:flex;align-items:center;gap:3px;background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;color:#475569;cursor:pointer}.retry-inline-btn:hover{background:#f1f5f9}.sync-hint-text{font-size:11px;color:#64748b;max-width:220px;word-break:break-word;line-height:1.3}.action-required-conflict-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#9f1239}.error-hint-text{font-size:11px;color:#dc2626;max-width:200px;word-break:break-word}.attendance-empty-card,.attendance-loading-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;text-align:center}.empty-title{font-size:16px;font-weight:700;color:var(--text-primary, #1e293b);margin-bottom:4px}.empty-desc{font-size:13.5px;color:var(--text-secondary, #64748b);margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content.attendance-note-modal{background:#fff;border-radius:14px;width:100%;max-width:480px;padding:20px 24px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.modal-title{margin:0;font-size:16px;font-weight:700;color:#0f172a}.modal-close-btn{background:none;border:none;font-size:18px;color:#94a3b8;cursor:pointer}.modal-form{display:flex;flex-direction:column;gap:14px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:13px;font-weight:600;color:#334155}.form-textarea,.form-input,.form-select{padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13.5px;outline:none;font-family:inherit}.form-textarea:focus,.form-input:focus,.form-select:focus{border-color:var(--primary-color, #4f46e5)}.char-count{font-size:11px;color:#94a3b8;text-align:right}.medication-choice{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:12px;margin-top:4px;padding:14px 16px;border:1.5px solid #ddd6fe;border-radius:14px;background:linear-gradient(135deg,#faf5ff,#fff7ed);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.medication-choice:hover{border-color:#a78bfa;box-shadow:0 8px 22px #7c3aed1a;transform:translateY(-1px)}.medication-choice--selected{border-color:#8b5cf6;background:linear-gradient(135deg,#ede9fe,#fff1f2);box-shadow:0 0 0 3px #8b5cf61f}.medication-choice__input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.medication-choice:has(.medication-choice__input:focus-visible){outline:3px solid rgba(99,102,241,.3);outline-offset:2px}.medication-choice__icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;color:#7c3aed;background:#fff;box-shadow:0 5px 14px #7c3aed24;transform:rotate(-10deg)}.medication-choice__copy{display:flex;flex-direction:column;gap:3px;color:#312e81}.medication-choice__copy strong{font-size:14px}.medication-choice__copy small{color:#6b7280;font-size:12px;line-height:1.45}.medication-choice__check{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #c4b5fd;border-radius:999px;color:#fff;background:#fff}.medication-choice--selected .medication-choice__check{border-color:var(--color-primary, #8b5cf6);background:var(--color-primary, #8b5cf6)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px;padding-top:14px;border-top:1px solid #f1f5f9}.attendance-page-container .btn{padding:8px 16px;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;border:none}.attendance-page-container .btn--secondary{background:#f1f5f9;color:#475569}.attendance-page-container .btn--primary{background:var(--primary-surface, var(--color-primary-gradient));color:var(--text-on-primary, var(--color-text-on-primary, #ffffff))}.attendance-page-container .btn--primary:disabled{opacity:.6;cursor:not-allowed}.attendance-stale-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#92400e;font-size:13px}.attendance-stale-banner .stale-info{display:flex;align-items:center;gap:8px;font-weight:500}.attendance-bulk-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--callout-raised-bg);border:1px solid var(--callout-raised-border);border-radius:var(--callout-raised-radius, 14px);padding:18px 22px;margin:0 18px 18px;box-shadow:var(--callout-raised-shadow)}@media(max-width:768px){.attendance-instruction-banner{margin:14px 12px 12px!important}.attendance-bulk-banner{margin:0 12px 16px;padding:14px 16px;flex-direction:column;align-items:stretch;gap:14px}}.attendance-bulk-banner-left{display:flex;flex-direction:column;gap:6px}.attendance-bulk-badge-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--color-primary, #6c5ce7);font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;width:fit-content;box-shadow:0 1px 2px #0000000d}.attendance-bulk-heading{margin:0;font-size:16px;font-weight:700;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.attendance-bulk-subtext{margin:0;font-size:13px;color:var(--brand-ink, var(--color-primary-dark, #3f2e96));line-height:1.4;opacity:.9}.attendance-bulk-actions{display:flex;align-items:center;gap:10px}@media(max-width:768px){.attendance-bulk-actions{justify-content:flex-start}.attendance-bulk-actions .btn-bulk-attend{width:100%;justify-content:center}}.btn-bulk-attend{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--color-primary, #6c5ce7);color:var(--text-on-primary, #ffffff);border:none;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:0 2px 4px #6c5ce733;transition:all .18s ease}.btn-bulk-attend:hover:not(:disabled){background:var(--color-primary-hover, #5848c2);box-shadow:0 4px 8px #6c5ce740}.btn-bulk-attend:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.guardians-page-container{display:flex;flex-direction:column;gap:24px;padding-bottom:120px}.analytics-3d-icon,.warning-3d-icon,.modal-header-3d-icon,.section-3d-icon,.tab-3d-icon{font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}.modal-header-3d-icon{font-size:24px}.header-bell-btn,.notification-bell-btn{background:#fff!important;border:1.5px solid var(--border-color-card, #e2e8f0)!important;box-shadow:0 4px 12px #0000000f,inset 0 1px #ffffffe6!important;border-radius:12px!important;width:40px!important;height:40px!important;display:grid!important;place-items:center!important;position:relative!important;cursor:pointer!important;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease,border-color .2s ease!important}.header-bell-btn:hover,.notification-bell-btn:hover{transform:translateY(-2px) rotate(-6deg) scale(1.06)!important;box-shadow:0 8px 20px #0000001f!important;border-color:var(--color-primary, #6c5ce7)!important}.header-bell-btn:focus-visible,.notification-bell-btn:focus-visible{outline:2px solid var(--border-color-focus, var(--color-primary, var(--primary-surface, #6c5ce7)))!important;outline-offset:2px!important}.header-bell-btn:active,.notification-bell-btn:active{transform:translateY(1px) scale(.95)!important;box-shadow:inset 0 2px 4px #0000001a!important}.header-bell-btn:disabled,.notification-bell-btn:disabled{opacity:.5!important;cursor:not-allowed!important;pointer-events:none!important;transform:none!important;box-shadow:none!important;border-color:var(--border-color-card, #e2e8f0)!important}.bell-3d-icon,.notification-bell-3d{font-size:19px;line-height:1;display:inline-block;filter:drop-shadow(0 2px 4px rgba(245,158,11,.3))}@media(prefers-reduced-motion:reduce){.header-bell-btn:hover,.notification-bell-btn:hover,.header-bell-btn:active,.notification-bell-btn:active{transform:none!important}}.guardian-analytics-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px}@media(max-width:1024px){.guardian-analytics-grid{grid-template-columns:1fr}}.guardian-analytics-card{background:var(--color-surface, #ffffff);border-radius:16px;padding:18px 20px;border:1.5px solid var(--border-color-card, #e2e8f0);box-shadow:0 4px 16px #0000000a,0 1px 3px #00000005;display:flex;flex-direction:column;gap:14px}.analytics-card-header{display:flex;justify-content:space-between;align-items:center}.analytics-card-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--color-text, #1e1a38)}.analytics-hint{font-size:11px;color:var(--color-text-muted, #71717a)}.distribution-bars-wrap{display:flex;flex-direction:column;gap:8px}.distribution-row-btn{display:flex;align-items:center;gap:10px;background:transparent;border:none;padding:4px 8px;border-radius:8px;cursor:pointer;width:100%;text-align:left;transition:background .15s ease}.distribution-row-btn:hover{background:#00000008}.distribution-label{width:110px;font-size:13px;font-weight:500;color:var(--color-text, #1e1a38);flex-shrink:0}.distribution-track{flex:1;height:8px;background:#0000000d;border-radius:4px;overflow:hidden}.distribution-fill{height:100%;border-radius:4px;transition:width .4s ease}.distribution-fill.fill-primary{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.distribution-fill.fill-danger{background:linear-gradient(90deg,#ef4444,#f87171)}.distribution-count{font-size:12px;font-weight:600;color:var(--color-text-muted, #71717a);width:45px;text-align:right;flex-shrink:0}.analytics-list-wrap{display:flex;flex-direction:column;gap:8px}.analytics-list-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:10px;background:#00000005;border:1px solid rgba(0,0,0,.03);cursor:pointer;transition:all .15s ease}.analytics-list-item:hover{background:#0000000d;transform:translate(2px)}.list-item-main{display:flex;flex-direction:column;gap:4px;flex:1}.list-item-title-row{display:flex;align-items:center;gap:8px}.list-item-name{font-size:13px;font-weight:600;color:var(--color-text, #1e1a38)}.list-item-code{font-size:12px;color:var(--color-text-muted, #71717a)}.badge-count-child{font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;background:var(--color-primary-subtle, #ede9fe);color:var(--color-primary-dark, var(--color-primary, #6d28d9))}.list-item-children-chips{display:flex;flex-wrap:wrap;gap:4px}.child-mini-chip{font-size:11px;background:#fff;padding:1px 6px;border-radius:6px;border:1px solid rgba(0,0,0,.08);color:var(--color-text-muted, #52525b)}.status-tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px}.status-tag--danger{background:#fee2e2;color:#b91c1c}.status-tag--warning{background:#fef3c7;color:#b45309}.analytics-empty-state{font-size:12px;color:var(--color-text-muted, #71717a);text-align:center;padding:14px}.guardian-warnings-container{background:#fffbeb;border:1.5px solid #fde68a;border-radius:16px;padding:16px 20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 4px 14px #d977060f}.warnings-header{display:flex;justify-content:space-between;align-items:center}.warnings-header-title{display:flex;align-items:center;gap:10px}.warnings-header-title h3{font-size:15px;font-weight:700;color:#92400e;margin:0}.btn-toggle-warnings{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#b45309;background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s ease}.btn-toggle-warnings:hover{background:#d977061a}.warnings-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.warning-item-card{background:#fff;border:1px solid #fde68a;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:all .15s ease;text-align:left}.warning-item-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.warning-item-card.is-active{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f64d}.warning-card-head{display:flex;justify-content:space-between;align-items:center}.warning-card-badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px}.badge-danger{background:#fee2e2;color:#dc2626}.badge-warning{background:#fef3c7;color:#d97706}.badge-info{background:#e0f2fe;color:#0284c7}.warning-card-name{font-size:13px;font-weight:700;color:var(--color-text, #1e1a38)}.warning-card-desc{font-size:11px;color:var(--color-text-muted, #71717a);line-height:1.4}.warning-detail-subpanel{margin-top:var(--space-3);background:var(--pastel-pink-bg);border:1px solid var(--pastel-pink-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-subtle);animation:fadeIn .2s ease}.subpanel-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);border-bottom:1px dashed var(--pastel-pink-border);padding-bottom:var(--space-2)}.subpanel-title{display:flex;align-items:center;gap:var(--space-2);font-size:13.5px;color:var(--pastel-pink-text)}.subpanel-hint{font-size:11.5px;color:var(--color-text-muted)}.no-guardian-students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-2)}.no-guardian-student-card{display:flex;justify-content:space-between;align-items:center;background:var(--surface-card);border:1px solid var(--pastel-pink-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%;transition:all var(--transition-fast)}.no-guardian-student-card:hover{background:var(--pastel-pink-bg-hover);border-color:var(--pastel-pink-text);transform:translateY(-1px);box-shadow:var(--shadow-subtle)}.no-guardian-student-card:focus-visible{outline:2px solid var(--pastel-pink-text);outline-offset:2px}.student-card-info{display:flex;align-items:center;gap:var(--space-2)}.student-card-avatar{font-size:20px;line-height:1}.student-card-name{font-size:13px;font-weight:700;color:var(--pastel-pink-text)}.student-card-meta{font-size:11px;color:var(--pastel-pink-text);margin-top:2px}.student-card-class{font-weight:600}.btn-quick-action-link{display:inline-flex;align-items:center;background:var(--pastel-pink-text);color:var(--color-text-inverse);border:none;border-radius:var(--radius-xs);padding:5px 10px;font-size:11.5px;font-weight:600;transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0;pointer-events:none}.form-decision-group{background:var(--surface-subtle);border:1.5px solid var(--border-color-card);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);transition:border-color var(--transition-standard)}.form-decision-header{display:flex;align-items:flex-start;gap:var(--space-2)}.form-decision-header .decision-icon{font-size:18px;line-height:1.2}.form-decision-desc{font-size:12px;color:var(--color-text-muted);margin:2px 0 0}.form-decision-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.btn-decision-choice{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--border-color-card);background:var(--surface-card);color:var(--color-text-body);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-decision-choice:hover{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.btn-decision-choice.is-selected.is-yes{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));box-shadow:var(--shadow-subtle)}.btn-decision-choice.is-selected.is-no{border-color:var(--color-text-muted);background:var(--pastel-neutral-bg);color:var(--color-text-body);box-shadow:var(--shadow-subtle)}.btn-decision-choice:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.decision-required-hint{font-size:11.5px;font-weight:600;color:var(--pastel-pink-text)}.guardian-filter-card{background:var(--color-surface, #ffffff);border-radius:18px;padding:18px 20px;border:1.5px solid var(--border-color-card, #e2e8f0);box-shadow:0 4px 16px #0000000a,0 1px 3px #00000005;display:flex;flex-direction:column;gap:14px}.filter-row--primary{display:flex;gap:12px;align-items:center}.guardian-filter-card .search-input-wrap,.guardian-filter-card .filter-search-box{flex:2;min-width:240px}.guardian-filter-card .search-input-wrap{display:flex;align-items:center;position:relative;background:#f8fafc;border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:12px;transition:all .2s ease}.guardian-filter-card .search-input-wrap:focus-within{background:#fff;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.guardian-filter-card .search-icon{position:absolute;left:12px;color:#94a3b8;pointer-events:none}.guardian-filter-card .search-input{width:100%;padding:10px 36px 10px 38px;border:none;background:transparent;font-size:13.5px;color:var(--color-text, #1e1a38);outline:none}.guardian-filter-card .search-clear-btn{position:absolute;right:10px;background:#e2e8f0;border:none;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:background .15s ease}.guardian-filter-card .search-clear-btn:hover{background:#cbd5e1;color:#1e1a38}.guardian-filter-card .filter-select-wrap{flex:1;min-width:150px}.guardian-filter-card .filter-select{width:100%;padding:10px 14px;border-radius:12px;border:1.5px solid var(--border-color-card, #e2e8f0);background:#f8fafc;font-size:13.5px;font-weight:500;color:var(--color-text, #1e1a38);outline:none;cursor:pointer;transition:all .2s ease}.guardian-filter-card .filter-select:focus{background:#fff;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.guardian-filter-card .filter-select--sm{font-size:13px;padding:8px 12px}.btn-filter-toggle{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;background:#f8fafc;border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:12px;font-size:13.5px;font-weight:600;color:var(--color-text, #1e1a38);cursor:pointer;white-space:nowrap;transition:all .2s ease;position:relative}.btn-filter-toggle:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-filter-toggle.is-open{background:#eff6ff;border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.btn-filter-toggle.has-active{border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:var(--color-primary, #3b82f6);color:#fff;font-size:11px;font-weight:700;line-height:1}.active-filters-chips-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border-radius:12px;border:1px dashed #cbd5e1}.active-chips-summary{font-size:12px;font-weight:600;color:var(--color-text-muted, #64748b);white-space:nowrap}.active-chips-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1}.active-filter-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:16px;font-size:12px;font-weight:500;color:var(--color-text, #1e1a38);box-shadow:0 1px 2px #0000000a}.active-filter-chip .chip-label{line-height:1.3}.btn-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:#f1f5f9;border-radius:50%;color:#64748b;cursor:pointer;padding:0;transition:all .15s ease}.btn-chip-remove:hover{background:#fee2e2;color:#ef4444}.btn-clear-all-chips{border:none;background:transparent;color:#ef4444;font-size:12px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s ease;white-space:nowrap}.btn-clear-all-chips:hover{background:#fee2e2;text-decoration:underline}.advanced-filter-panel{background:#f8fafc;border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;animation:slideDownFade .2s ease-out}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.advanced-filter-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.advanced-filter-title{font-size:13px;font-weight:700;color:var(--color-text, #1e1a38);text-transform:uppercase;letter-spacing:.5px}.btn-close-panel{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;background:transparent;color:#64748b;border-radius:6px;cursor:pointer;transition:all .15s ease}.btn-close-panel:hover{background:#e2e8f0;color:var(--color-text, #1e1a38)}.advanced-filter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-items:end}.filter-field-group{display:flex;flex-direction:column;gap:5px}.filter-field-label{font-size:12px;font-weight:600;color:var(--color-text-muted, #64748b)}.filter-field-group--checkbox{grid-column:span 1;justify-content:flex-end;padding-bottom:2px}.filter-row--secondary{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding-top:4px}.filter-chips-group{display:flex;align-items:center;gap:3px;background:#f1f5f9;padding:3px 6px;border-radius:11px;border:1px solid #e2e8f0}.filter-chips-label{font-size:12px;font-weight:600;color:var(--color-text-muted, #64748b);padding:0 4px}.filter-chip-btn{background:transparent;border:none;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600;color:var(--color-text-muted, #64748b);cursor:pointer;transition:all .15s ease}.filter-chip-btn:hover{color:var(--color-text, #1e1a38)}.filter-chip-btn.is-selected{background:#fff;color:var(--color-primary, #3b82f6);font-weight:700;box-shadow:0 1.5px 4px #00000014}.filter-checkbox-item{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 12px;background:#f8fafc;border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:10px;transition:background .15s ease}.filter-checkbox-item:hover{background:#f1f5f9}.filter-checkbox-input{cursor:pointer;accent-color:var(--color-primary, #6366f1)}.filter-checkbox-text{font-size:13px;font-weight:600;color:var(--color-text, #1e1a38)}.filter-status-bar{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid rgba(0,0,0,.05);margin-top:2px}.filter-status-left{display:flex;align-items:center;gap:10px}.filter-counter-badge{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text, #1e1a38);background:#f1f5f9;padding:4px 10px;border-radius:8px;font-weight:500}.filter-counter-icon{color:var(--color-primary, #3b82f6)}.filter-active-indicator{font-size:12px;color:#7c3aed;font-weight:600}.btn-reset-filters{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--color-text-muted, #64748b);background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-reset-filters:hover{background:#f1f5f9;color:var(--color-text, #1e1a38)}.btn-reset-filters--active{background:var(--color-primary-subtle, #ede9fe);color:var(--color-primary-dark, var(--color-primary, #7c3aed));border-color:var(--color-primary-light, #c4b5fd);font-weight:700;box-shadow:var(--shadow-subtle, 0 2px 6px rgba(0, 0, 0, .08))}@media(max-width:1024px){.filter-row--primary{flex-wrap:wrap}.guardian-filter-card .search-input-wrap,.guardian-filter-card .filter-search-box{flex:1 1 100%}}@media(max-width:768px){.guardian-filter-card .filter-row--primary{flex-direction:column;align-items:stretch;gap:12px}.guardian-filter-card .search-input-wrap,.guardian-filter-card .filter-search-box{flex:0 0 auto!important;width:100%;min-width:0!important}.guardian-filter-card .filter-select-wrap{flex:0 0 auto;width:100%;min-width:0}.guardian-filter-card .filter-select{width:100%}.guardian-filter-card .btn-filter-toggle{width:100%;justify-content:center}.guardian-filter-card .filter-status-bar{flex-direction:column;gap:10px;align-items:stretch}.guardian-filter-card .btn-reset-filters{width:100%;justify-content:center}}@media(max-width:640px){.filter-row--secondary{flex-direction:column;align-items:stretch}.guardian-filter-card .filter-status-bar{flex-direction:column;gap:10px;align-items:stretch}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f238c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:fadeIn .2s ease-out}.modal-card.guardian-form-modal,.modal-card.guardian-detail-modal,.modal-card.guardian-reconcile-modal,.modal-card.confirm-dialog{background:#fff!important;opacity:1!important;border-radius:20px!important;box-shadow:0 25px 60px #00000038,0 4px 16px #00000014!important;border:1.5px solid rgba(0,0,0,.08)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;position:relative!important;animation:scaleIn .2s ease-out}.modal-card.guardian-form-modal{max-width:820px;width:100%;max-height:88vh}.modal-card.guardian-detail-modal{max-width:760px;width:100%;max-height:88vh}.modal-card.guardian-reconcile-modal{max-width:640px;width:100%;max-height:88vh}.modal-card.confirm-dialog{max-width:460px;width:100%}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px 16px;border-bottom:1px solid #f1f5f9;background:#fff;flex-shrink:0}.modal-header-text{display:flex;flex-direction:column;gap:4px;flex:1}.modal-header-title-row{display:flex;align-items:center;gap:10px}.modal-header-title-row h2{font-size:18px;font-weight:800;color:var(--color-text, #1e1a38);margin:0;line-height:1.3}.modal-header-desc{font-size:12.5px;color:var(--color-text-muted, #71717a);margin:0;line-height:1.4}.modal-close-btn{width:36px;height:36px;border-radius:50%;background:#f8fafc;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:all .15s ease;flex-shrink:0;margin-left:16px}.modal-close-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5;transform:rotate(90deg)}.form-mode-tabs{display:flex;background:#f1f5f9;border-radius:12px;padding:4px;gap:4px;margin:14px 24px 0;border:1px solid #e2e8f0;flex-shrink:0}.mode-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:9px;border:none;background:transparent;font-size:13.5px;font-weight:600;color:#64748b;cursor:pointer;transition:all .18s ease}.mode-tab.is-active{background:#fff;color:var(--color-primary, #3b82f6);box-shadow:0 2px 8px #00000014;font-weight:700}.modal-body{flex:1 1 auto;overflow-y:auto;padding:18px 24px 24px;display:flex;flex-direction:column;gap:18px}.form-section{display:flex;flex-direction:column;gap:14px;padding:14px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px}.form-section-header{display:flex;align-items:center;gap:8px}.form-section-title{font-size:14px;font-weight:700;color:var(--color-text, #1e1a38);margin:0}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:640px){.form-grid-2{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:700;color:var(--color-text, #1e1a38)}.form-label.required .label-req{color:#dc2626}.form-input,.form-select{padding:10px 14px;border-radius:10px;border:1.5px solid #d4d4d8;background:#fff;font-size:13.5px;color:var(--color-text, #1e1a38);outline:none;transition:all .15s ease}.form-input:focus,.form-select:focus{border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.form-switches-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.form-switches-row{grid-template-columns:1fr}}.form-switch-card{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:12px 14px;cursor:pointer;transition:all .18s ease}.form-switch-card:hover{background:#f8fafc;border-color:#cbd5e1}.form-switch-card.is-checked{background:#faf5ff;border-color:#c4b5fd;box-shadow:0 2px 10px #7c3aed14}.form-switch-checkbox{margin-top:3px;width:17px;height:17px;accent-color:var(--color-primary, #6366f1);cursor:pointer}.switch-card-content{display:flex;flex-direction:column;gap:3px}.switch-card-title-row{display:flex;align-items:center;gap:6px}.switch-card-title-row strong{font-size:13px;color:var(--color-text, #1e1a38)}.switch-card-content p{font-size:11px;color:var(--color-text-muted, #71717a);margin:0;line-height:1.4}.modal-footer{flex-shrink:0;padding:16px 24px;border-top:1px solid #f1f5f9;background:#fafbfc;display:flex;justify-content:space-between;align-items:center;z-index:10}.combobox-container{position:relative;width:100%}.combobox-input-wrap{display:flex;align-items:center;position:relative;background:#fff;border:1.5px solid #d4d4d8;border-radius:10px;transition:all .15s ease}.combobox-input-wrap:focus-within{border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.combobox-search-icon{position:absolute;left:12px;color:#a1a1aa}.combobox-input{width:100%;padding:10px 36px;border:none;background:transparent;font-size:13.5px;color:var(--color-text, #1e1a38);outline:none}.combobox-dropdown-btn{position:absolute;right:10px;background:transparent;border:none;color:#71717a;cursor:pointer}.combobox-dropdown-menu{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid #e4e4e7;border-radius:12px;box-shadow:0 10px 25px #0000001f;max-height:240px;overflow-y:auto;z-index:100}.combobox-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid #f4f4f5;cursor:pointer;transition:background .12s ease}.combobox-item:last-child{border-bottom:none}.combobox-item:hover{background:#f4f4f5}.combobox-item-name{font-size:13px;font-weight:600;color:var(--color-text, #1e1a38)}.combobox-item-sub{font-size:11px;color:var(--color-text-muted, #71717a)}.combobox-item-meta{font-size:11px;font-weight:600;color:var(--color-primary-dark, var(--color-primary, #6d28d9));background:var(--color-primary-subtle, #ede9fe);padding:2px 6px;border-radius:6px}.combobox-no-results{padding:16px;text-align:center;font-size:13px;color:var(--color-text-muted, #71717a)}.selected-student-card,.selected-guardian-card{display:flex;align-items:center;gap:12px;background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:12px;padding:10px 14px}.selected-card-avatar{font-size:22px;flex-shrink:0}.selected-card-info{flex:1;display:flex;flex-direction:column;gap:2px}.selected-card-name{font-size:14px;color:var(--color-text, #1e1a38)}.selected-card-sub{font-size:12px;color:var(--color-text-muted, #71717a)}.selected-card-badges{display:flex;gap:6px;margin-top:4px}.mini-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:6px}.mini-badge--blue{background:#e0f2fe;color:#0369a1}.mini-badge--purple{background:var(--color-primary-light, #ede9fe);color:var(--color-primary-dark, #5a4ad1);border:1px solid var(--border-color-card, #e8e6f5)}.selected-card-clear{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:6px;transition:all .15s ease}.selected-card-clear:hover{color:#dc2626;background:#fee2e2}.detail-section-card{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.section-card-header{display:flex;justify-content:space-between;align-items:center}.section-title-wrap{display:flex;align-items:center;gap:8px}.section-card-header h4{font-size:14px;font-weight:700;color:var(--color-text, #1e1a38);margin:0}.btn-edit-section{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--color-primary, #3b82f6);background:transparent;border:none;cursor:pointer}.student-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.detail-line{display:flex;align-items:center;gap:8px;font-size:13px}.detail-line-icon{color:#94a3b8;flex-shrink:0}.detail-label{color:var(--color-text-muted, #71717a);font-weight:500}.detail-value{color:var(--color-text, #1e1a38);font-weight:600}.children-cards-list{display:flex;flex-direction:column;gap:10px}.child-detail-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.child-card-head{display:flex;justify-content:space-between;align-items:center}.child-head-left{display:flex;align-items:center;gap:10px}.child-head-avatar{font-size:20px}.child-head-name{font-size:13px;color:var(--color-text, #1e1a38)}.child-head-sub{font-size:11px;color:var(--color-text-muted, #71717a)}.child-head-actions{display:flex;gap:6px}.btn-action-icon{background:#f1f5f9;border:none;padding:6px;border-radius:6px;color:#64748b;cursor:pointer;transition:all .15s ease}.btn-action-icon:hover{background:#e2e8f0;color:var(--color-text, #1e1a38)}.btn-action-icon--danger:hover{background:#fee2e2;color:#dc2626}.child-card-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.tag-relation{font-size:12px;color:var(--color-text, #1e1a38)}.tag-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px}.tag-badge--primary{background:var(--color-primary-subtle, #ede9fe);color:var(--color-primary-dark, var(--color-primary, #6d28d9))}.tag-badge--success{background:#d1fae5;color:#047857}.tag-badge--neutral{background:#f1f5f9;color:#64748b}.child-card-note{font-size:12px;color:var(--color-text-muted, #52525b);background:#f8fafc;padding:6px 10px;border-radius:6px}.reconcile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-group--full{grid-column:span 2}.alert-box{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;font-size:13px}.alert-box--warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.alert-box--danger{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.alert-icon-wrap{flex-shrink:0;margin-top:2px}.alert-text-wrap{flex:1}.duplicate-list{margin:6px 0 0;padding-left:18px;font-size:12px}.btn-switch-link{margin-left:8px;background:var(--primary-surface, var(--color-primary, #7c3aed));color:var(--text-on-primary, #ffffff);border:none;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600;cursor:pointer}.btn-ignore-warning{background:transparent;border:1px solid #d97706;color:#b45309;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600;cursor:pointer;align-self:flex-start}.guardian-profile-cell{display:flex;align-items:center;gap:12px}.guardian-avatar-circle{width:36px;height:36px;border-radius:50%;background:var(--sidebarGradient, var(--color-primary-gradient, linear-gradient(135deg, var(--color-primary-light, #ede9fe), var(--color-primary, #6366f1))));color:var(--text-on-primary, #ffffff);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 2px 6px #0000001f;flex-shrink:0}.guardian-name-info{display:flex;flex-direction:column;gap:2px}.guardian-name-row{display:flex;align-items:center;gap:6px}.guardian-name-link{font-size:14px;font-weight:700;color:var(--color-text, #1e1a38);cursor:pointer}.guardian-name-link:hover{color:var(--color-primary, #3b82f6);text-decoration:underline}.badge-inconsistent{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;background:#fee2e2;color:#dc2626;border:1px solid #fca5a5;border-radius:6px;padding:1px 5px;cursor:pointer}.guardian-code-text{font-size:12px;color:var(--color-text-muted, #71717a);font-family:inherit}.guardian-contact-cell{display:flex;flex-direction:column;gap:4px;font-size:13px}.contact-link{display:inline-flex;align-items:center;gap:5px;color:var(--color-text, #1e1a38);text-decoration:none}.contact-link:hover{color:var(--color-primary, #3b82f6)}.contact-link--email{color:var(--color-text-muted, #71717a);font-size:12px}.guardian-occ-cell{display:flex;flex-direction:column;gap:2px}.occ-title{font-size:13px;font-weight:500;color:var(--color-text, #1e1a38)}.address-sub{font-size:11px;color:var(--color-text-muted, #71717a)}.children-chips-container{display:flex;flex-wrap:wrap;gap:6px}.student-link-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;display:flex;flex-direction:column;gap:4px;cursor:default;transition:all .15s ease;min-width:160px}.student-link-chip:hover{background:#f8fafc;border-color:#cbd5e1}.student-link-chip--primary{border-color:#c4b5fd;background:#faf5ff}.chip-name-row{display:flex;justify-content:space-between;align-items:center;gap:6px}.chip-student-name{font-size:12.5px;font-weight:700;color:var(--color-text, #1e1a38);line-height:1.3}.chip-rel-row{display:flex;align-items:center;gap:6px;margin:1px 0}.chip-rel-label{font-size:11px;font-weight:600;color:var(--color-text-muted, #64748b);white-space:nowrap}.chip-rel-tag{font-size:11.5px;font-weight:700;background:#ede9fe;color:#6d28d9;border:1px solid #ddd6fe;padding:1.5px 7px;border-radius:5px;display:inline-block;line-height:1.25;white-space:nowrap}.student-link-chip--primary .chip-rel-tag{background:#e0e7ff;color:#4338ca;border-color:#c7d2fe}.chip-sub-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--color-text-muted, #71717a)}.chip-status-icons{display:flex;align-items:center;gap:4px}.icon-star-primary{display:inline-flex;align-items:center;gap:2px;font-size:10px;font-weight:700;color:#7c3aed}.icon-pickup{display:inline-flex;align-items:center;gap:2px;font-size:10px;font-weight:600;color:#059669}.guardian-actions-cell{display:flex;align-items:center;justify-content:center;gap:4px}.guardian-empty-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:#fff;border-radius:16px;border:1.5px dashed #e4e4e7;text-align:center}.empty-icon-wrap{width:64px;height:64px;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:32px}.empty-title{font-size:16px;font-weight:700;color:var(--color-text, #1e1a38);margin:0 0 6px}.empty-desc{font-size:13px;color:var(--color-text-muted, #71717a);margin:0 0 20px;max-width:380px}.btn--danger,.btn.btn--danger{background:#ef4444;color:#fff;border:none;font-weight:600;border-radius:10px;padding:10px 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:background .15s ease}.btn--danger:hover,.btn.btn--danger:hover{background:#dc2626}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.warning-detail-subpanel,.no-guardian-student-card,.btn-quick-action-link,.btn-decision-choice,.guardian-filter-card,.guardian-filter-card .search-input-wrap,.guardian-filter-card .filter-select,.guardian-modal-card{animation:none!important;transition:none!important;transform:none!important}}.guardian-form-modal .guardian-form-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;background:var(--surface-card, #ffffff);border-top:1px solid var(--border-color-card, #e2e8f0)}.guardian-form-modal .modal-footer-actions{display:flex;gap:10px;align-items:center}@media(max-width:480px){.guardian-form-modal .guardian-form-modal-footer{flex-direction:column-reverse;align-items:stretch;gap:10px;padding:12px 16px}.guardian-form-modal .modal-footer-actions{flex-direction:column;align-items:stretch;width:100%;gap:8px}.guardian-form-modal .modal-footer-actions>button,.guardian-form-modal .guardian-form-modal-footer>button{width:100%;min-height:44px;justify-content:center;text-align:center;white-space:normal;line-height:1.3;padding:10px 14px;font-size:13.5px}.guardian-form-modal .modal-footer-actions>button:last-child{order:-1}.guardian-form-modal .btn-save-another{font-size:12.5px}}.btn-chip-edit-link{display:inline-flex;align-items:center;justify-content:center;gap:4px;margin-top:4px;padding:3px 8px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #cbd5e1);border-radius:6px;font-size:10.5px;font-weight:600;color:var(--color-primary, #059669);cursor:pointer;transition:all .15s ease;width:100%}.btn-chip-edit-link:hover{background:var(--color-primary-light, #ecfdf5);border-color:var(--color-primary, #059669);color:var(--color-primary-dark, #047857)}.btn-chip-edit-link:focus-visible{outline:2px solid var(--color-primary, #059669);outline-offset:1px}.btn-child-edit-link{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #cbd5e1);border-radius:6px;font-size:12px;font-weight:600;color:var(--color-primary, #059669);cursor:pointer;transition:all .15s ease}.btn-child-edit-link:hover{background:var(--color-primary-light, #ecfdf5);border-color:var(--color-primary, #059669)}.btn-child-edit-link:focus-visible{outline:2px solid var(--color-primary, #059669);outline-offset:1px}.edit-link-target-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:16px;background:var(--surface-subtle, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:10px;font-size:13px}.target-banner-item{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.target-banner-label{color:var(--color-text-muted, #64748b);font-size:12px}.target-banner-name{color:var(--color-text, #1e293b);font-weight:700}.target-banner-code{font-size:11px;padding:1px 5px;background:#0000000d;border-radius:4px;color:var(--color-text-muted, #64748b)}.target-banner-class{font-size:11px;padding:2px 6px;background:var(--color-primary-light, #ecfdf5);color:var(--color-primary-dark, #047857);border-radius:4px;font-weight:600}.target-banner-divider{color:var(--color-text-muted, #94a3b8);font-weight:700}.guardian-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative;border-radius:var(--radius-lg, 12px);background:var(--surface-card, #ffffff)}.guardian-table-wrap::-webkit-scrollbar{height:6px}.guardian-table-wrap::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.guardian-table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.guardian-table-wrap::-webkit-scrollbar-thumb:hover{background:#94a3b8}.guardian-table-scroll-hint{display:none;align-items:center;justify-content:flex-end;gap:6px;font-size:11.5px;color:var(--color-text-muted, #64748b);padding:0 4px 8px 0;font-style:italic}@media(max-width:1360px){.guardian-table-scroll-hint{display:flex}}.guardian-col-count{font-size:11.5px;font-weight:600;color:var(--table-header-color, inherit);opacity:1;letter-spacing:normal;text-transform:none;margin-left:4px}.guardian-table{width:100%;min-width:1250px;border-collapse:separate;border-spacing:0}.guardian-table thead th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;font-size:12.5px;text-transform:uppercase;padding:12px 14px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap;letter-spacing:.3px}.guardian-table tbody td{padding:12px 14px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);font-size:13px;vertical-align:middle}.guardian-table tbody tr{transition:background-color .15s ease}.guardian-table tbody tr:hover{background-color:var(--surface-hover, #f8f7fd)}.guardian-table .col-stt{width:52px;min-width:52px;max-width:52px;text-align:center;white-space:nowrap;font-weight:600}.guardian-table tbody td.col-stt{color:var(--color-text-muted, #64748b)}.guardian-table thead th.col-stt{color:var(--table-header-color, #ffffff)!important}.guardian-table .col-name{min-width:220px;white-space:nowrap;text-align:left}.guardian-table thead th.col-name{text-align:left}.guardian-table .col-phone{min-width:140px;white-space:nowrap;text-align:center}.guardian-table .col-email{min-width:195px;max-width:250px;white-space:nowrap;text-align:center}.guardian-email-cell{display:flex;align-items:center;justify-content:center;gap:6px}.guardian-email-link{display:inline-flex;align-items:center;gap:5px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.guardian-email-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px;color:var(--color-text-muted, #64748b);font-size:12.5px}.guardian-email-link:hover .guardian-email-text{color:var(--color-primary, #3b82f6);text-decoration:underline}.text-email-empty{color:var(--color-text-muted, #94a3b8);font-weight:500}.guardian-table .col-occ{min-width:170px;text-align:center}.guardian-table .col-children{min-width:290px;text-align:center}.guardian-table .col-actions{min-width:140px;width:140px;text-align:center;white-space:nowrap;position:sticky;right:0;z-index:2;box-shadow:-6px 0 10px #0000000a}.guardian-table thead th.col-actions{background:var(--table-header-bg, #ede9fe);border-right:1px solid var(--table-header-separator, #ffffff);z-index:3}.guardian-table tbody td.col-actions{background:var(--surface-card, #ffffff)}.guardian-table tbody tr:hover td.col-actions{background:var(--surface-hover, #f8f7fd)}@media(max-width:768px){.guardian-table .col-actions,.guardian-table thead th.col-actions,.guardian-table tbody td.col-actions{position:static!important;right:auto!important;box-shadow:none!important}}.staff-coverage-page{display:flex;flex-direction:column;gap:20px;width:100%}.staff-coverage-header-controls{display:flex;align-items:center;gap:12px}.coverage-date-picker-wrap{display:flex;align-items:center;min-width:190px}.coverage-date-picker-wrap .themed-datepicker-wrap{width:100%}.staff-coverage-header-controls .themed-datepicker-popup,.coverage-date-picker-wrap .themed-datepicker-popup,.staff-coverage-page .page-header__actions .themed-datepicker-popup{left:auto;right:0;max-width:calc(100vw - 32px);box-sizing:border-box}.coverage-date-input{border:none;font-size:14px;font-weight:600;color:var(--text-primary, #1e293b);background:transparent;outline:none;cursor:pointer}.coverage-totals-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.coverage-stat-card{display:flex;flex-direction:column;gap:6px;background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-lg, 16px);padding:14px 16px;box-shadow:var(--shadow-card, 0 4px 16px rgba(108, 92, 231, .06)),0 1px 3px #0000000a;transition:transform var(--transition-bounce, .28s cubic-bezier(.34, 1.56, .64, 1)),box-shadow var(--transition-bounce, .28s cubic-bezier(.34, 1.56, .64, 1)),border-color var(--transition-fast, .15s ease);position:relative}@media(hover:hover)and (pointer:fine){.coverage-stat-card:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--shadow-card-hover, 0 12px 28px -4px rgba(108, 92, 231, .14));border-color:#c8bef0e6}}.coverage-stat-label{font-size:11.5px;color:var(--color-text-muted, #71717a);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.coverage-stat-value{font-size:24px;font-weight:800;color:var(--color-text-title, #0f172a);line-height:1.15;letter-spacing:-.4px}.coverage-stat-value.covered{color:#16a34a}.coverage-stat-value.partial{color:#d97706}.coverage-stat-value.uncovered{color:#dc2626}.coverage-stat-value.unknown{color:#64748b}.coverage-freshness-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:20px}.coverage-freshness-badge.fresh{background:var(--color-primary-subtle, color-mix(in srgb, var(--color-primary, #6366f1) 8%, #ffffff));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));border:1px solid var(--color-primary-border, color-mix(in srgb, var(--color-primary, #6366f1) 24%, transparent))}.coverage-freshness-badge.stale{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.coverage-freshness-badge.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.coverage-warning-banner{display:flex;align-items:center;justify-content:space-between;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:12px 16px;color:#92400e;font-size:13.5px}.unassigned-pool-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:16px}.unassigned-pool-title{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--text-primary, #1e293b);display:flex;align-items:center;gap:8px}.unassigned-staff-list{display:flex;flex-wrap:wrap;gap:8px}.unassigned-staff-chip{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:20px;padding:4px 12px;font-size:12.5px;font-weight:500;color:#334155}.coverage-classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.class-coverage-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px #0000000d}.class-coverage-header{display:flex;justify-content:space-between;align-items:center}.class-title-wrap{display:flex;align-items:center;gap:8px}.class-name{font-size:16px;font-weight:700;color:var(--text-primary, #0f172a)}.class-grade-tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--color-primary-light, #ede9fe);color:var(--color-primary-dark, #5a4ad1);border:1px solid var(--border-color-card, #e8e6f5)}.slot-coverage-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.slot-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:#475569}.slot-staff-row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px}.slot-staff-name{font-weight:600;color:#0f172a}.slot-staff-name.substituted{color:#2563eb}.slot-override-info{background:#eff6ff;border-left:3px solid #3b82f6;padding:6px 10px;border-radius:4px;font-size:12px;color:#1e40af;display:flex;justify-content:space-between;align-items:center}.teacher-schedule-banner{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#eff6ff,#f0fdf4);border:1px solid #bfdbfe;border-radius:12px;padding:12px 18px;gap:12px;margin-bottom:16px}.teacher-schedule-content{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.teacher-schedule-date{font-size:13.5px;font-weight:600;color:#1e3a8a}.teacher-schedule-assignment{font-size:13px;color:#1e293b}.teacher-schedule-substitute-note{font-size:12px;color:#2563eb;background:#dbeafe;padding:2px 8px;border-radius:6px}.staff-availability-table-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 3px #0000000a;padding:0;overflow:hidden;display:flex;flex-direction:column;gap:0;margin-bottom:20px}.staff-availability-table-card .configured-hours-banner{margin:14px 16px 0}.staff-availability-table-card .configured-hours-pending-warning{margin:6px 16px 0}.staff-table-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0}.staff-table-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:280px}.staff-table-search-box{position:relative;min-width:240px;max-width:320px;flex:1}.staff-table-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.staff-table-search-input{width:100%;padding:6px 12px 6px 32px;border-radius:8px;border:1px solid #cbd5e1;background:#f8fafc;font-size:13px;color:#1e293b;outline:none;transition:all .15s ease}.staff-table-search-input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px #2563eb1f}.staff-table-filter-group{display:flex;align-items:center;gap:6px}.staff-table-filter-select{padding:6px 10px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;font-size:12.5px;color:#334155;outline:none;cursor:pointer}.staff-table-filter-select:focus{border-color:#2563eb}.staff-table-toolbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.staff-table-counter{font-size:12.5px;color:#64748b;white-space:nowrap}.staff-table-selected-badge{color:#2563eb;font-weight:600;margin-left:4px}.staff-table-batch-actions{display:flex;align-items:center;gap:8px}.staff-table-quick-select{padding:6px 10px;border-radius:8px;border:1px dashed #93c5fd;background:#eff6ff;color:#1e40af;font-size:12px;font-weight:600;cursor:pointer}.staff-table-btn-discard{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.staff-table-btn-discard:hover:not(:disabled){background:#f1f5f9;color:#334155}.staff-table-btn-save{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid #cbd5e1;background:#f1f5f9;color:#94a3b8;font-size:12.5px;font-weight:700;cursor:not-allowed;transition:all .15s ease}.staff-table-btn-save.active{background:var(--color-primary, #2563eb);border-color:var(--color-primary-dark, #1d4ed8);color:var(--text-on-primary, #ffffff);cursor:pointer;box-shadow:0 1px 3px #2563eb40}.staff-table-btn-save.active:hover{background:var(--color-primary-hover, #1d4ed8)}.staff-table-scroll-hint{display:none;align-items:center;gap:6px;font-size:11.5px;color:#64748b;background:#f8fafc;padding:6px 10px;border-radius:6px}@media(max-width:1024px){.staff-table-scroll-hint{display:flex}}.staff-table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:none;border-radius:0}.staff-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:13px;text-align:left}.staff-table th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:10px 12px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap}.staff-table td{padding:10px 12px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);color:var(--color-text-body, #1e293b);vertical-align:middle}.staff-table-row:hover{background:var(--surface-hover, #f8f7fd)}.staff-table-row.row-selected{background:#eff6ff}.staff-table-row.row-modified{border-left:3px solid #3b82f6}.staff-cell-profile{display:flex;align-items:center;gap:8px}.staff-cell-avatar{width:28px;height:28px;border-radius:9999px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}.staff-cell-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.staff-cell-name{font-weight:700;color:#0f172a;font-size:14px;line-height:1.35}.staff-cell-code{font-size:12px;color:#64748b;font-family:inherit}.staff-no-assignment,.staff-assignment-empty{font-size:12px;color:#94a3b8;font-style:italic}.staff-assignments-list,.staff-assignment-list{display:flex;flex-direction:column;gap:6px}.staff-assignment-item{font-size:12px}.staff-assignment-frame{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:6px 10px;background:var(--color-background-soft, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 8px);box-shadow:0 1px 2px #00000005;transition:border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease)}.staff-assignment-frame:hover{border-color:#6c5ce759;box-shadow:0 2px 6px #6c5ce70f}.staff-assignment-class,.assignment-class-name{font-weight:700;color:var(--color-text-title, #1e293b);font-size:12px;line-height:1.3}.staff-assignment-role-row{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.staff-assignment-role,.assignment-role-pill{display:inline-flex;align-items:center;padding:1.5px 7px;border-radius:9999px;font-size:10.5px;font-weight:600;line-height:1.25}.staff-assignment-role.role-main,.staff-assignment-role--main,.assignment-role-pill.role--main{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.staff-assignment-role.role-assistant,.staff-assignment-role--assistant,.assignment-role-pill.role--assistant{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.staff-assignment-substitute-hint,.assignment-substitute-hint{font-size:10.5px;color:#d97706;font-style:italic;font-weight:500}.staff-assignment-effective{font-size:10px;color:#16a34a;background:#dcfce7;padding:0 4px;border-radius:4px;font-weight:600}.staff-status-select{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid #cbd5e1;background:#fff;cursor:pointer;outline:none}.staff-status-pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:600}.staff-status-badge--present{background:var(--color-primary-subtle, color-mix(in srgb, var(--color-primary, #6366f1) 8%, #ffffff));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));border-color:var(--color-primary-border, color-mix(in srgb, var(--color-primary, #6366f1) 24%, transparent))}.staff-status-badge--late{background:#fffbeb;color:#b45309;border-color:#fde68a}.staff-status-badge--absent{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.staff-status-badge--leave{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.staff-status-badge--excused{background:#faf5ff;color:#6b21a8;border-color:#e9d5ff}.staff-status-badge--unknown{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.staff-times-wrap{display:flex;align-items:center;gap:6px}.staff-time-chooser{position:relative;display:inline-flex}.staff-time-chooser__control{position:relative;display:inline-flex;align-items:center}.staff-time-input{width:82px;min-width:82px;padding:4px 22px 4px 7px;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;font-weight:500;color:#1e293b;background-color:#fff;outline:none;transition:all .15s ease-in-out;box-shadow:0 1px 2px #00000008}.staff-time-input:hover:not(:disabled){border-color:#cbd5e1;background-color:#f8fafc}.staff-time-input:focus{border-color:#3b82f6;background-color:#fff;box-shadow:0 0 0 3px #3b82f61f}.staff-time-input:disabled{background-color:#f1f5f9;color:#94a3b8;cursor:not-allowed;border-color:#e2e8f0}.staff-time-chooser__toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:transparent;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;transition:color .15s ease}.staff-time-chooser__toggle:hover:not(:disabled){color:#3b82f6}.staff-time-chooser__toggle:disabled{cursor:not-allowed;opacity:.5}.staff-time-chooser__popover{position:fixed;z-index:9999;width:190px;padding:10px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #00000014;animation:staffTimePopoverFadeIn .15s ease-out}@media(max-width:768px){.staff-table th.col-outcome,.staff-table td.col-outcome,.staff-table th.col-actions,.staff-table td.col-actions{position:static!important;right:auto!important;box-shadow:none!important}}@keyframes staffTimePopoverFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.staff-time-chooser__popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #f1f5f9}.staff-time-chooser__popover-title{font-size:11px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.025em}.staff-time-chooser__popover-current{font-size:11px;font-weight:700;color:#2563eb;background:#eff6ff;padding:1px 6px;border-radius:4px}.staff-time-chooser__section-label{font-size:10px;color:#94a3b8;margin-bottom:6px}.staff-time-chooser__preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-bottom:8px}.staff-time-chooser__preset-btn{padding:4px 6px;font-size:11px;font-weight:500;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;text-align:center;transition:all .12s ease}.staff-time-chooser__preset-btn:hover{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}.staff-time-chooser__preset-btn--active{background:var(--color-primary, #2563eb);color:var(--text-on-primary, #ffffff);border-color:var(--color-primary, #2563eb);font-weight:600}.staff-time-chooser__popover-actions{display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid #f1f5f9}.staff-time-chooser__clear-btn{background:transparent;border:none;font-size:11px;color:#ef4444;cursor:pointer;padding:2px 4px;border-radius:4px}.staff-time-chooser__clear-btn:hover:not(:disabled){background:#fef2f2}.staff-time-chooser__clear-btn:disabled{opacity:.4;cursor:not-allowed}.staff-time-chooser__close-btn{background:#f1f5f9;border:1px solid #e2e8f0;font-size:11px;font-weight:500;color:#475569;cursor:pointer;padding:2px 8px;border-radius:6px}.staff-time-chooser__close-btn:hover{background:#e2e8f0}.staff-note-input{width:100%;padding:4px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:12px;color:#334155;outline:none}.staff-note-input:focus{border-color:#2563eb}.outcome-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:9999px;font-size:11px;font-weight:600}.outcome-pill--saved{background:#dcfce7;color:#15803d}.outcome-pill--saving{background:#e0f2fe;color:#0369a1}.outcome-pill--modified{background:#fef3c7;color:#b45309}.outcome-pill--error{background:#fee2e2;color:#b91c1c}.outcome-pill--unrecorded{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.outcome-pill--recorded{background:var(--color-primary-subtle, color-mix(in srgb, var(--color-primary, #6366f1) 8%, #ffffff));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));border:1px solid var(--color-primary-border, color-mix(in srgb, var(--color-primary, #6366f1) 24%, transparent))}.outcome-pill--ambiguous{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.outcome-error-wrap{display:inline-flex;align-items:center;gap:6px}.btn-retry-row{font-size:11px;font-weight:600;color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;padding:1px 6px;border-radius:4px;cursor:pointer}.btn-retry-row:hover{background:#fca5a5}.staff-table-empty-cell{text-align:center;padding:32px 16px;color:#64748b;font-size:13px}.school-administrator-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 16px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.school-admin-main{display:flex;align-items:center;gap:12px}.school-admin-icon-wrap{width:34px;height:34px;border-radius:8px;background:#eff6ff;border:1px solid #dbeafe;display:flex;align-items:center;justify-content:center;flex-shrink:0}.school-admin-info{display:flex;flex-direction:column;gap:2px}.school-admin-title-row{display:flex;align-items:center;gap:8px}.school-admin-role-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:#dbeafe;color:#1e40af;text-transform:uppercase;letter-spacing:.3px}.school-admin-name{font-size:13.5px;font-weight:600;color:#0f172a}.school-admin-note{font-size:12px;color:#64748b;font-style:italic}.school-admin-right{display:flex;align-items:center}.school-admin-tenant-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:#475569;background:#fff;border:1px solid #cbd5e1;padding:3px 8px;border-radius:6px}.configured-hours-banner{background:var(--callout-raised-bg);border:1px solid var(--callout-raised-border);border-radius:var(--callout-raised-radius, 10px);padding:8px 14px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;box-shadow:var(--callout-raised-shadow)}.configured-hours-banner--unavailable{background:#f8fafc;border-color:#e2e8f0}.configured-hours-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.configured-hours-banner--unavailable .configured-hours-info{color:#64748b}.btn-apply-configured-hours{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:6px;background:#fff;border:1px solid var(--color-primary-light, #c4b5fd);color:var(--color-primary, #6c5ce7);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-apply-configured-hours:hover,.btn-apply-configured-hours:focus-visible{background:var(--color-primary, #6c5ce7);border-color:var(--color-primary, #6c5ce7);color:#fff}.btn-apply-configured-hours:active{background:var(--color-primary-dark, #5649c0);border-color:var(--color-primary-dark, #5649c0);color:#fff}.btn-apply-configured-hours:focus-visible{outline:2px solid var(--color-primary-light, #a78bfa);outline-offset:2px}.btn-apply-configured-hours:disabled{background:#f1f5f9;border-color:#cbd5e1;color:#94a3b8;cursor:not-allowed;opacity:1}.staff-name-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.staff-name{font-weight:600;color:#0f172a;font-size:13px;line-height:1.25}.staff-id-badge{font-size:11px;color:#64748b;font-family:inherit}.outcome-pill--conflict{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.outcome-error-text{font-size:11px;color:#b91c1c;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.daily-care-page{display:flex;flex-direction:column;gap:24px;padding-bottom:40px;font-family:inherit;color:var(--color-text-body, #4a455e)}.daily-care-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 16px);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .04))}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:13px;font-weight:600;color:var(--color-text-muted, #7e7a94);white-space:nowrap}.filter-select,.filter-date-input{height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-surface, #ffffff);color:var(--color-text-title, #27253a);font-size:14px;font-weight:500;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.filter-select:focus,.filter-date-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.filter-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.btn-refresh{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:8px;border:1px solid var(--border-color, #cbd5e1);background:#f8fafc;color:var(--color-text-body, #4a455e);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-refresh:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.daily-care-routine-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:20px}@media(max-width:1280px){.daily-care-routine-tabs{grid-template-columns:repeat(3,1fr);gap:10px}}@media(max-width:768px){.daily-care-routine-tabs{grid-template-columns:repeat(2,1fr);gap:8px}}@media(max-width:480px){.daily-care-routine-tabs{grid-template-columns:1fr}}.daily-care-routine-tab{position:relative;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 14px);box-shadow:var(--shadow-card, 0 2px 6px rgba(0, 0, 0, .05));cursor:pointer;text-align:left;transition:transform var(--transition-bounce, .22s cubic-bezier(.34, 1.56, .64, 1)),box-shadow var(--transition-bounce, .22s ease),border-color .18s ease,background .18s ease;overflow:hidden;min-height:76px}@media(hover:hover)and (pointer:fine){.daily-care-routine-tab:hover:not(:disabled){transform:translateY(-3px) scale(1.01);border-color:#cbd5e1;background:#f8fafc;box-shadow:var(--shadow-card-hover, 0 8px 18px -2px rgba(0, 0, 0, .08))}}.daily-care-routine-tab:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media(prefers-reduced-motion:reduce){.daily-care-routine-tab{transition:none!important}.daily-care-routine-tab:hover:not(:disabled){transform:none!important}}.daily-care-routine-tab.active:after{content:"";position:absolute;bottom:0;left:12px;right:12px;height:3px;border-radius:3px 3px 0 0}.daily-care-routine-tab.tab-breakfast.active{border-color:#f59e0b;background:#fffbeb;box-shadow:0 2px 6px #f59e0b26}.daily-care-routine-tab.tab-breakfast.active:after{background:#d97706}.daily-care-routine-tab.tab-breakfast.active .routine-tab-title{color:#92400e;font-weight:700}.daily-care-routine-tab.tab-lunch.active{border-color:#0d9488;background:#f0fdfa;box-shadow:0 2px 6px #0d948826}.daily-care-routine-tab.tab-lunch.active:after{background:#0d9488}.daily-care-routine-tab.tab-lunch.active .routine-tab-title{color:#115e59;font-weight:700}.daily-care-routine-tab.tab-afternoon_snack.active{border-color:#f43f5e;background:#fff1f2;box-shadow:0 2px 6px #f43f5e26}.daily-care-routine-tab.tab-afternoon_snack.active:after{background:#e11d48}.daily-care-routine-tab.tab-afternoon_snack.active .routine-tab-title{color:#9f1239;font-weight:700}.daily-care-routine-tab.tab-nap.active{border-color:#6366f1;background:#eef2ff;box-shadow:0 2px 6px #6366f126}.daily-care-routine-tab.tab-nap.active:after{background:#4f46e5}.daily-care-routine-tab.tab-nap.active .routine-tab-title{color:#3730a3;font-weight:700}.daily-care-routine-tab.tab-poo.active{border-color:#9333ea;background:#faf5ff;box-shadow:0 2px 6px #9333ea26}.daily-care-routine-tab.tab-poo.active:after{background:#9333ea}.daily-care-routine-tab.tab-poo.active .routine-tab-title{color:#6b21a8;font-weight:700}.daily-care-routine-tab.tab-notes.active{border-color:#e11d48;background:#fff1f2;box-shadow:0 2px 6px #e11d4826}.daily-care-routine-tab.tab-notes.active:after{background:#e11d48}.daily-care-routine-tab.tab-notes.active .routine-tab-title{color:#9f1239;font-weight:700}.routine-tab-icon{font-size:24px;line-height:1;flex-shrink:0}.routine-tab-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.routine-tab-header{display:flex;align-items:center;justify-content:space-between;gap:4px}.routine-tab-title{font-size:13.5px;font-weight:700;color:var(--color-text-title, #27253a);line-height:1.25;word-break:break-word}.routine-tab-stale-dot{font-size:10px;font-weight:600;color:#b45309;background:#fef3c7;padding:1px 5px;border-radius:4px}.routine-tab-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.routine-status-pill{display:inline-block;padding:2px 7px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap}.routine-status-pill.status-recorded{background:#dcfce7;color:#166534}.routine-status-pill.status-unrecorded{background:#f1f5f9;color:#64748b}.routine-status-pill.status-has-notes{background:#e0f2fe;color:#0369a1}.routine-tab-totals{font-size:11px;font-weight:500;color:var(--color-text-muted, #7e7a94);line-height:1.35;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routine-exception-badge{display:inline-block;padding:2px 6px;border-radius:6px;background:#fee2e2;color:#991b1b;font-size:11px;font-weight:700;white-space:nowrap}.daily-care-normal-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--callout-raised-bg);border:1px solid var(--callout-raised-border);border-radius:var(--callout-raised-radius, 14px);padding:20px 24px;margin-bottom:24px;box-shadow:var(--callout-raised-shadow)}@media(max-width:768px){.daily-care-normal-banner{flex-direction:column;align-items:stretch}}.normal-banner-left{display:flex;flex-direction:column;gap:8px}.normal-badge-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--color-primary, #6c5ce7);font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;width:fit-content;box-shadow:0 1px 2px #0000000d}.normal-heading{margin:0;font-size:17px;font-weight:700;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.normal-subtext{margin:0;font-size:13px;color:var(--brand-ink, var(--color-primary-dark, #3f2e96));line-height:1.4;opacity:.9}.normal-banner-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}@media(max-width:768px){.normal-banner-actions{justify-content:flex-end}}.daily-care-btn-primary{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border-radius:10px;border:none;background:var(--color-primary, #6c5ce7);color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 2px 4px #6c5ce740;transition:all .15s ease}.daily-care-btn-primary:hover:not(:disabled){background:var(--color-primary-hover, #5848c2);box-shadow:0 4px 8px #6c5ce759}.daily-care-btn-primary:focus-visible{outline:2px solid var(--color-primary, #6c5ce7);outline-offset:2px}.daily-care-btn-primary:disabled{opacity:.6;cursor:not-allowed}.daily-care-btn-reset{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:8px;border:1px solid #fca5a5;background:#fff;color:#b91c1c;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.daily-care-btn-reset:hover:not(:disabled){background:#fef2f2}.view-only-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;color:#475569;font-size:13px;font-weight:600}.daily-care-student-list{background:var(--bg-surface, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;padding:20px;box-shadow:0 1px 3px #0000000a}.student-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.student-list-count{font-size:14px;color:#334155}.student-list-hint{font-size:13px;color:#64748b}.student-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}@media(max-width:640px){.student-card-grid{grid-template-columns:1fr}}.student-care-card{border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;background:#fff;transition:all .15s ease;display:flex;flex-direction:column;gap:10px}.student-care-card:hover{border-color:#cbd5e1}.student-care-card.is-exception{border-color:#f59e0b;background:#fffbeb}.student-care-card.is-editing{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.student-card-top{display:flex;align-items:center;gap:12px}.student-avatar{width:36px;height:36px;border-radius:50%;background:#e0f2fe;color:#0369a1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-main-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.student-name-row{display:flex;align-items:baseline;gap:8px}.student-full-name{font-size:14px;font-weight:700;color:var(--color-text-title, #27253a)}.student-id-code{font-size:12px;color:var(--color-text-muted, #7e7a94);font-family:inherit}.student-tags{display:flex;align-items:center;gap:6px}.attendance-status-pill{font-size:11px;font-weight:600;color:#15803d;background:#dcfce7;padding:1px 6px;border-radius:4px}.mismatch-warning-pill{font-size:11px;font-weight:600;color:#b91c1c;background:#fee2e2;padding:1px 6px;border-radius:4px}.btn-open-exception{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-open-exception:hover{background:#f1f5f9;border-color:#94a3b8}.student-card-summary{font-size:13px;display:flex;flex-direction:column;gap:4px}.status-label-group{display:flex;align-items:center;gap:6px}.status-caption{color:#64748b;font-size:12px}.default-tag{font-weight:600;color:var(--brand-ink, var(--color-primary-dark, #166534))}.exception-tag{font-weight:700;color:#b45309}.student-note-preview{margin:0;font-size:12px;color:#475569;background:#00000008;padding:4px 8px;border-radius:4px}.inline-exception-form{display:flex;flex-direction:column;gap:10px;background:#fff;border-top:1px solid #e2e8f0;padding-top:10px}.form-toggle-row{display:flex;align-items:center}.toggle-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#1e293b;cursor:pointer}.participated-checkbox{width:16px;height:16px;accent-color:var(--color-primary, #6366f1);cursor:pointer}.outcome-selection-group{display:flex;flex-direction:column;gap:6px}.selection-caption{font-size:12px;font-weight:600;color:#475569}.outcome-pill-selector{display:flex;flex-wrap:wrap;gap:6px}.outcome-pill-btn{height:32px;padding:0 12px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.outcome-pill-btn.selected{background:var(--primary-surface, var(--color-primary, #6366f1));color:var(--text-on-primary, #ffffff);border-color:var(--primary-surface, var(--color-primary, #6366f1))}.non-participate-message{font-size:12px;color:#dc2626;background:#fef2f2;padding:6px 10px;border-radius:6px}.exception-note-input{width:100%;height:34px;padding:0 10px;border-radius:6px;border:1px solid #cbd5e1;font-size:13px;box-sizing:border-box}.form-action-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.form-right-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.btn-reset-single-exception{font-size:12px;color:#dc2626;background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}.btn-cancel-edit{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:12px;font-weight:600;cursor:pointer}.btn-save-edit{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border-radius:6px;border:none;background:var(--primary-surface, var(--color-primary, #6366f1));color:var(--text-on-primary, #ffffff);font-size:12px;font-weight:600;cursor:pointer}.btn-save-edit:hover:not(:disabled){background:var(--primary-surface-hover, var(--color-primary-hover, #4f46e5))}.daily-care-conflict-alert{display:flex;gap:16px;background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:16px 20px;margin-bottom:20px}.conflict-alert-icon{flex-shrink:0;padding-top:2px}.conflict-alert-content{flex:1}.conflict-alert-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.conflict-alert-title{margin:0;font-size:15px;font-weight:700;color:#92400e}.conflict-close-btn{background:none;border:none;color:#92400e;cursor:pointer;padding:2px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.conflict-close-btn:hover{background:#fef3c7}.conflict-alert-message{margin:0 0 12px;font-size:13px;color:#78350f;line-height:1.4}.conflict-refresh-status-box{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:6px;margin-bottom:12px;font-size:13px}.conflict-refresh-status-box.loading{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.conflict-refresh-status-box.failed{flex-direction:column;align-items:flex-start;background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.conflict-failed-message{margin:0 0 8px;font-weight:600}.conflict-roster-stale-box{background:#fef3c7;border:1px solid #fde68a;border-radius:8px;padding:12px 16px;margin-bottom:12px}.conflict-roster-desc{margin:0 0 12px;font-size:13px;color:#92400e;line-height:1.5}.conflict-resolution-container{margin-top:12px}.conflict-resolution-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}.conflict-resolution-progress{font-size:13px;font-weight:600;color:#92400e}.conflict-resolution-guide{font-size:12px;color:#78350f;font-style:italic}.conflict-student-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}.conflict-student-item{background:#fff;border:1px solid #fde68a;border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.conflict-student-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.conflict-id{font-size:13px;color:#1e293b}.conflict-reason{font-size:12px;font-weight:500;color:#b45309;background:#fef3c7;padding:2px 8px;border-radius:4px}.conflict-diff-row{display:flex;align-items:center;gap:12px;background:#f8fafc;padding:8px 12px;border-radius:6px;font-size:12px}.conflict-diff-side{flex:1;display:flex;flex-direction:column;gap:2px}.conflict-diff-side.my-draft{color:#1e40af}.conflict-diff-side.server-val{color:#15803d}.diff-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.8}.diff-val{font-weight:600}.diff-note{font-size:11px;font-style:italic;color:#64748b}.diff-arrow{color:#94a3b8;flex-shrink:0}.conflict-item-actions{display:flex;align-items:center;gap:8px;margin-top:2px;flex-wrap:wrap}.btn-conflict-keep,.btn-conflict-discard{padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease-in-out}.btn-conflict-keep{border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8}.btn-conflict-keep:hover{background:#dbeafe}.btn-conflict-keep.selected{background:var(--primary-surface, var(--color-primary, #6366f1));color:var(--text-on-primary, #ffffff);border-color:var(--primary-surface-hover, var(--color-primary-hover, #4f46e5))}.btn-conflict-discard{border:1px solid #cbd5e1;background:#f8fafc;color:#475569}.btn-conflict-discard:hover{background:#f1f5f9}.btn-conflict-discard.selected{background:#475569;color:#fff;border-color:#334155}.resolution-badge{font-size:12px;font-weight:700;color:#15803d;margin-left:4px}.conflict-alert-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn-conflict-acknowledge{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border-radius:6px;border:1px solid var(--color-primary, #6c5ce7);background:var(--color-primary, #6c5ce7);color:#fff;font-size:13px;font-weight:700;cursor:pointer}.btn-conflict-acknowledge:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed;opacity:.7}.btn-conflict-acknowledge:hover:not(:disabled){background:var(--color-primary-hover, #5848c2);border-color:var(--color-primary-hover, #5848c2)}.btn-conflict-refresh{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:6px;border:1px solid #d97706;background:#fff;color:#d97706;font-size:13px;font-weight:600;cursor:pointer}.btn-conflict-refresh:hover{background:#fffbeb}.daily-care-conflict-reopen-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffbeb;border:1px solid #f59e0b;border-radius:8px;padding:10px 16px;margin-bottom:20px}.conflict-reopen-info{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#92400e}.btn-reopen-conflict{background:#f59e0b;border:1px solid #d97706;color:#fff;font-size:12px;font-weight:700;padding:6px 14px;border-radius:6px;cursor:pointer;white-space:nowrap}.btn-reopen-conflict:hover{background:#d97706}.daily-care-empty-roster{text-align:center;padding:48px 24px}.empty-roster-icon{margin:0 auto 12px;color:#94a3b8}.empty-roster-title{margin:0 0 6px;font-size:16px;font-weight:700;color:#334155}.empty-roster-desc{font-size:13px;color:#64748b;max-width:420px;margin:0 auto;line-height:1.5}.daily-care-toast-success{display:flex;align-items:center;gap:8px;background:#dcfce7;border:1px solid #86efac;color:#15803d;padding:12px 16px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:16px}.daily-care-toast-error{display:flex;align-items:center;gap:8px;background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;padding:12px 16px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:16px}.daily-care-bg-refresh-bar{display:flex;align-items:center;gap:8px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:8px 14px;border-radius:6px;font-size:12px;font-weight:600;margin-bottom:12px}.daily-care-absence-warning{--care-warning-bg: var(--pastel-yellow-bg, #fef3c7);--care-warning-border: var(--pastel-yellow-border, #fde68a);--care-warning-text: var(--pastel-yellow-text, #b45309);--care-warning-title: var(--pastel-yellow-text, #92400e);background:var(--care-warning-bg);border:1px solid var(--care-warning-border);border-left:4px solid var(--care-warning-text);border-radius:var(--radius-md, 14px);padding:12px 18px;margin-bottom:20px;box-shadow:var(--shadow-subtle, 0 1px 2px rgba(0, 0, 0, .05));transition:all var(--transition-fast, .15s ease)}.daily-care-absence-warning--expanded{padding:16px 20px}.absence-warning-header{display:flex;align-items:center;justify-content:space-between}.absence-disclosure-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}.absence-disclosure-trigger:focus-visible{outline:2px solid var(--color-primary, #6366f1);outline-offset:2px;border-radius:var(--radius-xs, 6px)}.absence-warning-title-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.absence-warning-heading{margin:0;font-size:14.5px;font-weight:700;color:var(--care-warning-title);letter-spacing:-.01em}.absence-mismatch-badge-indicator{font-size:11px;font-weight:600;color:var(--care-warning-text);background:var(--surface-card, #ffffff);border:1px solid var(--care-warning-border);padding:2px 8px;border-radius:var(--radius-full, 999px);display:inline-flex;align-items:center}.absence-disclosure-action{display:flex;align-items:center;gap:6px;color:var(--care-warning-text);flex-shrink:0}.absence-disclosure-label{font-size:12px;font-weight:600;white-space:nowrap}.absence-disclosure-chevron{transition:transform var(--transition-fast, .2s ease)}.absence-disclosure-chevron--rotated{transform:rotate(180deg)}.absence-disclosure-content{margin-top:12px;padding-top:12px;border-top:1px solid var(--care-warning-border)}.absence-disclosure-content[hidden]{display:none!important}.absence-warning-description{margin:0 0 8px;font-size:13px;color:var(--color-text-body, #4a455e);line-height:1.5}.absence-warning-mismatch-note{margin:0 0 12px;font-size:12px;font-weight:500;color:var(--care-warning-text);line-height:1.5;padding:6px 10px;background:var(--pastel-yellow-bg, #fef3c7);border-radius:var(--radius-xs, 6px);border:1px dashed var(--pastel-yellow-border, #fde68a)}.absence-student-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.absence-student-card{display:flex;align-items:center;gap:10px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 10px);padding:8px 12px;box-shadow:var(--shadow-subtle, 0 1px 2px rgba(0, 0, 0, .04));transition:all var(--transition-fast, .15s ease)}.absence-student-card--mismatch{border-color:var(--pastel-yellow-border, #fde68a);background:var(--surface-subtle, #faf9fe)}.absence-student-avatar{width:32px;height:32px;border-radius:var(--radius-full, 999px);background:var(--pastel-pink-bg, #ffe4e6);color:var(--pastel-pink-text, #9f1239);display:flex;align-items:center;justify-content:center;flex-shrink:0}.absence-student-info{display:flex;flex-direction:column;flex:1;min-width:0}.absence-student-name{font-size:13px;font-weight:700;color:var(--color-text-title, #27253a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.absence-student-id{font-size:11px;color:var(--color-text-muted, #7e7a94);font-weight:500}.absence-badges-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.absence-status-badge{font-size:11px;font-weight:600;background:var(--pastel-pink-bg, #ffe4e6);color:var(--pastel-pink-text, #9f1239);padding:2px 8px;border-radius:var(--radius-full, 999px);white-space:nowrap}.absence-mismatch-badge{font-size:10px;font-weight:600;background:var(--pastel-yellow-bg, #fef3c7);color:var(--pastel-yellow-text, #b45309);border:1px solid var(--pastel-yellow-border, #fde68a);padding:2px 6px;border-radius:var(--radius-xs, 6px);white-space:nowrap}.daily-care-mismatch-alert{background:var(--pastel-yellow-bg, #fef3c7);border:1px solid var(--pastel-yellow-border, #fde68a);border-left:4px solid var(--pastel-yellow-text, #b45309);border-radius:var(--radius-sm, 10px);padding:12px 16px;margin-bottom:16px}.mismatch-alert-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.mismatch-alert-title{font-size:14px;font-weight:700;color:#92400e}.mismatch-alert-desc{margin:0 0 8px;font-size:12px;color:#78350f;line-height:1.4}.mismatch-student-chips{display:flex;flex-wrap:wrap;gap:6px}.mismatch-student-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;background:#fff;border:1px solid #fde68a;border-radius:9999px;color:#92400e}.daily-care-poo-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:20px;margin-bottom:24px}.poo-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.poo-section-title-wrap{display:flex;align-items:center;gap:8px}.poo-section-title{margin:0;font-size:16px;font-weight:700;color:#1e293b}.btn-poo-range-summary{display:inline-flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid #cbd5e1;color:#475569;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease}.btn-poo-range-summary:hover{background:#f1f5f9}.poo-stats-bar{display:flex;flex-wrap:wrap;gap:12px;background:#f8fafc;border:1px solid #edf2f7;border-radius:8px;padding:10px 16px;margin-bottom:16px}.poo-stat-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#475569}.poo-stat-val{font-weight:700}.poo-child-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.poo-child-card{border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:10px;transition:border-color .15s ease}.poo-child-card.is-busy{opacity:.7;pointer-events:none}.poo-child-info{display:flex;align-items:center;gap:10px}.poo-child-avatar{width:28px;height:28px;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;color:#64748b;flex-shrink:0}.poo-child-names{flex:1;display:flex;flex-direction:column;min-width:0}.poo-child-name{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poo-child-id{font-size:11px;color:#64748b}.poo-status-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px;white-space:nowrap}.poo-badge-unrecorded{background:#f1f5f9;color:#64748b}.poo-badge-zero{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.poo-badge-positive{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.poo-control-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-poo-action{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap;border:1px solid transparent}.btn-poo-action:disabled{opacity:.5;cursor:not-allowed}.btn-poo-action-zero{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.btn-poo-action-zero:hover:not(:disabled){background:#e2e8f0;color:#1e293b;border-color:#94a3b8}.btn-poo-action-positive{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.btn-poo-action-positive:hover:not(:disabled){background:#bfdbfe;color:#1e40af;border-color:#93c5fd}.btn-poo-action-reset{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.btn-poo-action-reset:hover:not(:disabled){background:#f1f5f9;color:#334155;border-color:#cbd5e1}.poo-positive-control-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-poo-action-zero-compact,.btn-poo-action-reset-compact{height:30px;padding:0 9px;font-size:11px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;background:#f8fafc;color:#64748b;border:1px solid #cbd5e1}.btn-poo-action-zero-compact:hover:not(:disabled),.btn-poo-action-reset-compact:hover:not(:disabled){background:#f1f5f9;color:#334155;border-color:#94a3b8}.btn-poo-action-zero-compact:disabled,.btn-poo-action-reset-compact:disabled{opacity:.5;cursor:not-allowed}.btn-poo-choice{height:30px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-poo-choice:hover:not(:disabled){border-color:#94a3b8}.btn-poo-choice.is-active{background:var(--color-primary, #3b82f6);color:var(--text-on-primary, #ffffff);border-color:var(--color-primary, #3b82f6)}.poo-stepper{display:flex;align-items:center;border:1px solid #cbd5e1;border-radius:7px;overflow:hidden;background:#f8fafc;box-shadow:0 1px 2px #0000000a}.btn-poo-step{width:32px;height:32px;border:none;background:transparent;color:#334155;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s ease}.btn-poo-step:hover:not(:disabled){background:#e2e8f0}.btn-poo-step:disabled{opacity:.4;cursor:not-allowed}.poo-step-value{min-width:52px;text-align:center;font-size:13px;font-weight:700;color:#0f172a;padding:0 4px}.poo-note-preview{font-size:12px;color:#475569;background:#f8fafc;padding:4px 8px;border-radius:4px}.poo-note-action-wrap{display:flex}.btn-open-poo-note{border:none;background:transparent;color:#2563eb;font-size:11px;font-weight:600;cursor:pointer;padding:0}.btn-open-poo-note:hover{text-decoration:underline}.poo-note-editor{display:flex;align-items:center;gap:6px;width:100%}.poo-note-input{flex:1;height:28px;padding:0 8px;border:1px solid #cbd5e1;border-radius:4px;font-size:12px}.btn-save-poo-note{height:28px;padding:0 8px;border:none;border-radius:4px;background:#10b981;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.daily-care-morning-notes-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:20px;margin-bottom:24px}.morning-notes-header{margin-bottom:16px}.morning-notes-title-wrap{display:flex;align-items:center;gap:8px}.morning-notes-title{margin:0;font-size:16px;font-weight:700;color:#1e293b}.morning-notes-subtitle{margin:4px 0 0;font-size:13px;color:#64748b;line-height:1.4}.morning-notes-instruction-banner{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #0284c7;border-radius:6px;padding:10px 14px;margin-top:12px;margin-bottom:16px;font-size:12.5px;line-height:1.5;color:#334155}.morning-notes-instruction-banner strong{color:#0369a1}.morning-notes-instruction-banner em{font-style:normal;font-weight:600;color:#0284c7}.morning-notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.morning-note-card{border:1px solid #e2e8f0;border-radius:8px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:10px;transition:all .15s ease}.morning-note-card.has-medication{border-left:4px solid #0284c7;background:#f8fafc}.note-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.note-student-meta{display:flex;flex-direction:column}.note-student-name{font-size:14px;font-weight:700;color:#0f172a}.note-student-id{font-size:11px;color:#64748b}.note-badge-group{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.badge-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:9999px}.badge-pill-medication{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.badge-pill-general{background:#f1f5f9;color:#475569}.badge-pill-synced{background:#dcfce7;color:#15803d}.badge-pill-pending{background:#fef3c7;color:#92400e}.badge-pill-failed{background:#fee2e2;color:#b91c1c}.note-content-context{background:#fff;border:1px solid #f1f5f9;border-radius:6px;padding:8px 10px}.note-text-body{margin:0;font-size:13px;color:#334155;line-height:1.5}.medication-admin-block{background:#f0f9ff;border:1px solid #e0f2fe;border-radius:6px;padding:10px}.med-ack-success-state{display:flex;align-items:flex-start;gap:8px}.med-ack-info{display:flex;flex-direction:column;gap:2px}.med-ack-title{font-size:13px;color:#0369a1}.med-ack-note{font-size:12px;color:#475569}.btn-trigger-med-ack{display:inline-flex;align-items:center;gap:6px;background:#0284c7;border:1px solid #0369a1;color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:6px;cursor:pointer;transition:background .15s ease}.btn-trigger-med-ack:hover:not(:disabled){background:#0369a1}.med-prompt-box{display:flex;flex-direction:column;gap:8px}.med-prompt-label{font-size:11px;color:#0369a1;font-weight:600}.med-note-input{height:30px;padding:0 8px;border:1px solid #bae6fd;border-radius:4px;font-size:12px}.med-prompt-actions{display:flex;align-items:center;gap:8px}.btn-confirm-med-ack{display:inline-flex;align-items:center;gap:6px;background:#059669;border:1px solid #047857;color:#fff;font-size:12px;font-weight:700;padding:5px 10px;border-radius:4px;cursor:pointer}.btn-cancel-med-prompt{background:transparent;border:1px solid #cbd5e1;color:#64748b;font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer}.note-card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f1f5f9;padding-top:8px;margin-top:4px}.checkbox-handled-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569;cursor:pointer}.note-sync-actions{display:flex;align-items:center;gap:8px}.btn-retry-sync,.btn-refresh-source{display:inline-flex;align-items:center;gap:4px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;cursor:pointer;transition:all .15s ease}.btn-retry-sync:hover:not(:disabled),.btn-refresh-source:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.daily-care-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:999;padding:16px}.daily-care-modal-content{background:#fff;border-radius:10px;padding:24px;max-width:480px;width:100%;box-shadow:0 10px 25px #0000001a}.range-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:12px}.range-stat-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px;text-align:center}.stat-num{display:block;font-size:20px;font-weight:700;color:#0f172a}.stat-desc{font-size:11px;color:#64748b}.daily-care-revalidating-badge{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:12px;font-weight:500;padding:4px 10px;border-radius:6px;margin-bottom:12px}.daily-care-stale-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#92400e;font-size:13px}.daily-care-stale-banner .stale-info{display:flex;align-items:center;gap:8px;font-weight:500}.care-dialog-confirm-content{display:flex;flex-direction:column;gap:8px}.care-dialog-prior-scroll{max-height:180px;overflow-y:auto;background:var(--bg-subtle, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--color-text-body, #4a455e);line-height:1.6;white-space:pre-line;word-break:break-word}.safety-page-container{display:flex;flex-direction:column;gap:var(--space-5, 20px);padding-bottom:40px;width:100%;box-sizing:border-box}@media(max-width:768px){.safety-page-container{gap:var(--space-4, 16px)}}.safety-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--color-primary, #6c5ce7)!important;color:#fff!important;border:none!important;font-weight:600;border-radius:var(--radius-lg, 10px);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #6c5ce733}.safety-btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover, #5a4ad1)!important;box-shadow:0 4px 8px #6c5ce747;transform:translateY(-1px)}.safety-btn-primary:focus-visible{outline:2px solid var(--color-primary, #6c5ce7);outline-offset:2px}.safety-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.safety-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:var(--radius-xl, 14px);font-size:13px;line-height:1.5;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.safety-alert-banner--readonly{background:var(--pastel-yellow-bg, #fef3c7);border:1px solid var(--pastel-yellow-border, #fde68a);color:var(--pastel-yellow-text, #b45309)}.safety-alert-banner--conflict{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.safety-alert-banner--unknown{background:var(--pastel-yellow-bg, #fffbeb);border:1px solid var(--pastel-yellow-border, #fde68a);color:var(--pastel-yellow-text, #92400e)}.safety-alert-banner__content{display:flex;align-items:center;gap:10px;flex:1}.safety-alert-banner__icon{flex-shrink:0}.safety-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);padding:16px 20px;box-shadow:var(--shadow-card, 0 2px 8px rgba(108, 92, 231, .04))}.safety-toolbar__group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:220px}.safety-toolbar__group--narrow{flex:0 0 200px}.safety-toolbar__group--narrow .themed-datepicker-popup,.safety-toolbar .themed-datepicker-popup{left:auto;right:0;max-width:calc(100vw - 32px);box-sizing:border-box}.safety-toolbar__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #71717a);display:flex;align-items:center;gap:6px}.safety-toolbar__select,.safety-toolbar__input{height:42px;padding:0 14px;border-radius:var(--radius-md, 10px);border:1px solid var(--border-color-card, #e4e4e7);background:var(--color-background-soft, #faf8ff);color:var(--color-text, #18181b);font-size:14px;font-weight:500;outline:none;transition:all .2s ease}.safety-toolbar__select:focus,.safety-toolbar__input:focus{border-color:var(--color-primary, #6c5ce7);background:#fff;box-shadow:0 0 0 3px #6c5ce71f}.safety-kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}@media(max-width:1024px){.safety-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.safety-kpi-grid{grid-template-columns:repeat(2,1fr)}}.safety-kpi-card{background:var(--surface-card, #ffffff);border:1.5px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-lg, 16px);padding:16px 18px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-card, 0 4px 16px rgba(108, 92, 231, .06)),0 1px 3px #0000000a;transition:transform var(--transition-bounce, .3s cubic-bezier(.34, 1.56, .64, 1)),box-shadow var(--transition-bounce, .3s cubic-bezier(.34, 1.56, .64, 1)),border-color var(--transition-fast, .15s ease);position:relative;cursor:default}@media(hover:hover)and (pointer:fine){.safety-kpi-card:hover{transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow-card-hover, 0 12px 28px -4px rgba(108, 92, 231, .14));border-color:#c8bef0e6}.safety-kpi-card:hover .safety-kpi-card__icon-wrap{transform:translateY(-2px) scale(1.08);box-shadow:var(--shadow-raised-hover, 0 6px 14px rgba(108, 92, 231, .16))}}.safety-kpi-card__header{display:flex;align-items:center;justify-content:space-between}.safety-kpi-card__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #71717a)}.safety-kpi-card__icon-wrap{width:32px;height:32px;border-radius:var(--radius-md, 10px);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-raised-sm, 0 2px 6px rgba(0, 0, 0, .06));transition:transform var(--transition-bounce, .3s cubic-bezier(.34, 1.56, .64, 1)),box-shadow var(--transition-bounce, .3s cubic-bezier(.34, 1.56, .64, 1))}.safety-kpi-card__icon-wrap--purple{background:var(--color-primary-subtle, #f5f3ff);color:var(--primary-surface, var(--color-primary, #7c3aed));box-shadow:0 2px 6px #7c3aed1f}.safety-kpi-card__icon-wrap--green{background:var(--color-success-subtle, #ecfdf5);color:var(--color-success, #059669);box-shadow:0 2px 6px #0596691f}.safety-kpi-card__icon-wrap--blue{background:var(--color-info-subtle, #eff6ff);color:var(--color-info, #2563eb);box-shadow:0 2px 6px #2563eb1f}.safety-kpi-card__icon-wrap--yellow,.safety-kpi-card__icon-wrap--amber{background:var(--color-warning-subtle, #fffbeb);color:var(--color-warning, #d97706);box-shadow:0 2px 6px #d977061f}.safety-kpi-card__icon-wrap--pink,.safety-kpi-card__icon-wrap--red{background:var(--color-danger-subtle, #fff1f2);color:var(--color-danger, #e11d48);box-shadow:0 2px 6px #e11d481f}.safety-kpi-card__value{font-size:26px;font-weight:800;color:var(--color-text-title, #1e293b);margin-top:8px;line-height:1.1;letter-spacing:-.5px}.safety-kpi-card__subtitle{font-size:11px;color:var(--color-text-muted, #71717a);margin-top:4px;font-weight:500}.safety-kpi-card--green{background:var(--pastel-green-gradient, linear-gradient(180deg, #ffffff 0%, var(--color-success-subtle, #f0fdf4) 100%));border-color:var(--color-success-border, #bbf7d0)}.safety-kpi-card--green .safety-kpi-card__title,.safety-kpi-card--green .safety-kpi-card__subtitle{color:var(--color-success-text, #15803d)}.safety-kpi-card--green .safety-kpi-card__value{color:var(--color-success-text, #166534)}.safety-kpi-card--blue{background:linear-gradient(180deg,#ffffff 0%,var(--color-info-subtle, #f0f9ff) 100%);border-color:var(--color-info-border, #bae6fd)}.safety-kpi-card--blue .safety-kpi-card__title,.safety-kpi-card--blue .safety-kpi-card__subtitle{color:var(--color-info-text, #0369a1)}.safety-kpi-card--blue .safety-kpi-card__value{color:var(--color-info-text, #075985)}.safety-kpi-card--amber{background:linear-gradient(180deg,#ffffff 0%,var(--color-warning-subtle, #fffbeb) 100%);border-color:var(--color-warning-border, #fde68a)}.safety-kpi-card--amber .safety-kpi-card__title,.safety-kpi-card--amber .safety-kpi-card__subtitle{color:var(--color-warning-text, #b45309)}.safety-kpi-card--amber .safety-kpi-card__value{color:var(--color-warning-text, #92400e)}.safety-kpi-card--red{background:linear-gradient(180deg,#ffffff 0%,var(--color-danger-subtle, #fff1f2) 100%);border-color:var(--color-danger-border, #fecdd3)}.safety-kpi-card--red .safety-kpi-card__title,.safety-kpi-card--red .safety-kpi-card__subtitle{color:var(--color-danger-text, #9f1239)}.safety-kpi-card--red .safety-kpi-card__value{color:var(--color-danger-text, #be123c)}.safety-kpi-card--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.safety-kpi-card--clickable:focus-visible{outline:none;box-shadow:0 0 0 3px #6c5ce759;border-color:var(--color-primary, #6c5ce7)}.safety-kpi-card--active{border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 2px var(--color-primary, #6c5ce7),0 8px 24px #6c5ce726;transform:translateY(-2px)}.safety-kpi-card__mismatch-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:4px;padding:1px 6px;margin-top:6px;width:fit-content}.safety-active-filter-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;background:var(--color-primary-subtle, #f5f3ff);color:var(--color-primary, #6c5ce7);border:1px solid rgba(108,92,231,.25);border-radius:var(--radius-sm, 6px);font-size:11.5px;font-weight:600;white-space:nowrap}.safety-active-filter-clear{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:none;background:#6c5ce726;color:var(--color-primary, #6c5ce7);font-size:12px;line-height:1;cursor:pointer;padding:0;transition:all .15s ease}.safety-active-filter-clear:hover{background:var(--color-primary, #6c5ce7);color:#fff}.safety-tabs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}.safety-tabs-toolbar .safety-search-box{max-width:340px;min-width:240px;flex:1 1 260px}@media(max-width:768px){.safety-tabs-toolbar{flex-direction:column;align-items:stretch;gap:12px}.safety-tabs-toolbar .safety-search-box{flex:0 0 auto!important;max-width:100%;width:100%;min-width:0}.safety-tabs-bar{max-width:100%;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:640px){.safety-tabs-bar{display:flex;flex-direction:column;width:100%;box-sizing:border-box;gap:6px}.safety-tab-btn{width:100%;display:flex;align-items:center;justify-content:flex-start;padding:8px 12px;box-sizing:border-box;white-space:normal}.safety-tab-btn .safety-tab-badge{margin-left:auto}}.safety-roster-status-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;font-size:12px;color:var(--color-text-muted, #71717a);margin-bottom:10px;flex-wrap:wrap}thead th .safety-col-student-count,.safety-col-student-count{font-size:11px;font-weight:500;color:#fff!important;text-transform:none;letter-spacing:normal;margin-left:4px;opacity:1}.safety-tabs-bar{display:inline-flex;align-items:center;gap:4px;background:#f1f5f9;padding:4px;border-radius:10px;border:1px solid #e2e8f0;width:fit-content}.safety-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:7px;border:none;background:transparent;color:#64748b;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.safety-tab-btn:hover:not(.safety-tab-btn--active){color:#1e293b;background:#ffffff80}.safety-tab-btn--active,.safety-tab-btn--active:hover,.safety-tab-btn--active:focus{background:#fff!important;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))!important;font-weight:600;box-shadow:0 1px 3px #00000014}.safety-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9999px;font-size:11px;font-weight:600;background:var(--color-background-soft, #f1f5f9);color:var(--color-text-muted, #64748b);transition:all .2s ease}.safety-tab-btn:hover:not(.safety-tab-btn--active) .safety-tab-badge{background:var(--color-background-hover, #e2e8f0);color:var(--color-text-title, #1e293b)}.safety-tab-btn--active .safety-tab-badge{background:var(--color-primary-light, #ede9fe);color:var(--color-primary, #6c5ce7)}.safety-table-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-card, 0 2px 8px rgba(108, 92, 231, .04));overflow:hidden}.safety-table-scroll-hint{display:none;align-items:center;gap:8px;padding:8px 18px;font-size:12.5px;color:var(--color-text-muted, #71717a);background:var(--color-background-soft, #faf8ff);border-bottom:1px solid var(--border-color-card, #e8e6f5)}@media(max-width:1080px){.safety-table-scroll-hint{display:flex}}.safety-table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.safety-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:13px;text-align:left}.safety-table th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:12px 16px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap}.safety-table td{padding:14px 16px;border-bottom:1px solid var(--border-color-card, #e8e6f5);color:var(--color-text, #18181b);vertical-align:middle}.safety-table th.col-stt,.safety-table td.col-stt{width:48px;min-width:48px;text-align:center}.safety-table th.col-student,.safety-table td.col-student{width:200px;min-width:190px}.safety-table th.col-attendance,.safety-table td.col-attendance{width:130px;min-width:120px;text-align:center}.safety-table th.col-status,.safety-table td.col-status{width:160px;min-width:150px;text-align:center}.safety-table th.col-picker,.safety-table td.col-picker{width:190px;min-width:180px}.safety-table th.col-safety,.safety-table td.col-safety{width:130px;min-width:120px;text-align:center}.safety-table th.col-actions,.safety-table td.col-actions{width:270px;min-width:260px;text-align:center;position:sticky;right:0;z-index:2;background:var(--surface-card, #ffffff);box-shadow:-6px 0 10px #0000000a}.safety-table th.col-actions{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);border-right:1px solid var(--table-header-separator, #ffffff)}@media(max-width:768px){.safety-table th.col-actions,.safety-table td.col-actions{position:static!important;right:auto!important;box-shadow:none!important;width:auto!important;min-width:220px!important}}.safety-table tbody tr:hover,.safety-table tbody tr:hover td.col-actions{background:var(--surface-hover, #faf9ff)}.safety-table tbody tr:last-child td{border-bottom:none}.safety-search-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.safety-search-box{position:relative;flex:1;max-width:380px;min-width:240px;box-sizing:border-box}.safety-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:2;color:var(--color-text-muted, #94a3b8);display:flex;align-items:center;justify-content:center}.safety-search-input{width:100%;height:38px;box-sizing:border-box;padding:8px 14px 8px 40px;border-radius:var(--radius-lg, 10px);border:1px solid var(--border-color-card, #e8e6f5);background:var(--surface-card, #ffffff);color:var(--color-text, #18181b);font-size:13px;line-height:1.4;outline:none;transition:all .2s ease;box-shadow:0 1px 2px #00000008}.safety-search-input:focus{border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 3px #6c5ce726}.safety-search-status-wrap{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--color-text-muted, #71717a)}.safety-student-cell{display:flex;align-items:center;gap:10px}.safety-student-avatar{width:32px;height:32px;border-radius:9px;background:var(--color-primary-gradient, linear-gradient(135deg, #7c6df0 0%, #6351e0 100%));color:var(--color-text-inverse, #ffffff);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13.5px;flex-shrink:0;box-shadow:0 1px 2px #6c5ce726;border:1px solid rgba(255,255,255,.25);transition:opacity .15s ease}.safety-student-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.safety-student-name{font-size:14px;font-weight:700;color:var(--color-text-title, #27253a);line-height:1.35}.safety-student-code{font-size:12px;font-weight:500;font-family:inherit;color:var(--color-text-muted, #7e7a94);background:var(--surface-subtle, #faf9fe);padding:1px 4px;border-radius:var(--radius-xs, 4px);width:fit-content;border:1px solid var(--border-color-card, #e2e8f0);box-shadow:var(--shadow-subtle);display:inline-block}.safety-attendance-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:9999px;font-size:11.5px;font-weight:500;white-space:nowrap;box-shadow:0 1px 2px #00000008;border:1px solid transparent}.safety-attendance-pill--present{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.safety-attendance-pill--absent{background:#fffbeb;color:#92400e;border-color:#fde68a}.safety-attendance-pill--pending{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.safety-handoff-status-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.safety-mismatch-badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600;color:#b45309;background-color:#fffbeb;border:1px solid #fde68a;border-radius:4px;padding:1.5px 5px;line-height:1.3}.safety-picker-info{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:220px;background:var(--color-background-soft, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 8px);padding:6px 10px;box-shadow:0 1px 2px #00000005;transition:border-color var(--transition-fast, .15s ease)}.safety-picker-name{display:flex;align-items:flex-start;gap:6px;font-size:12px;font-weight:600;color:var(--color-text-title, #1e293b);line-height:1.35;word-break:break-word;overflow-wrap:break-word;white-space:normal}.safety-picker-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-sm, 4px);flex-shrink:0;margin-top:1px}.safety-picker-icon-wrap--auth{background:var(--color-info-subtle, #eff6ff);color:var(--color-info-text, #2563eb)}.safety-picker-icon-wrap--parent{background:var(--color-background-soft, #f1f5f9);color:var(--color-text-muted, #64748b)}.safety-picker-name-text{word-break:break-word;overflow-wrap:break-word;white-space:normal;color:var(--color-text-title, #1e293b)}.safety-picker-phone{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--color-text-body, #64748b);line-height:1.3;word-break:break-word;overflow-wrap:break-word;white-space:normal}.safety-picker-phone-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-sm, 4px);flex-shrink:0}.safety-picker-phone-icon{color:var(--color-text-subtle, #94a3b8);flex-shrink:0}.safety-picker-phone-text{word-break:break-word;overflow-wrap:break-word;white-space:normal;color:var(--color-text-body, #64748b)}.safety-handoff-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:9999px;font-size:11.5px;font-weight:500;box-shadow:0 1px 2px #00000008;border:1px solid transparent}.safety-handoff-badge--completed{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.safety-handoff-badge--pending{background:#f8fafc;color:#475569;border-color:#e2e8f0}.safety-handoff-badge--warning{background:#fffbeb;color:#92400e;border-color:#fde68a}.safety-handoff-badge--neutral{background:#f8fafc;color:#475569;border-color:#e2e8f0}.safety-handoff-badge--absent{background:#fef2f2;color:#991b1b;border-color:#fecaca}.safety-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:9999px;font-size:11.5px;font-weight:500;box-shadow:0 1px 2px #00000008;border:1px solid transparent}.safety-status-pill--saving{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.safety-status-pulse{width:6px;height:6px;border-radius:50%;background:#1d4ed8;animation:pulse 1.5s infinite}.safety-status-pill--saved{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.safety-status-pill--error{background:#fef2f2;color:#991b1b;border-color:#fecaca}.safety-status-pill--unknown{background:#fffbeb;color:#92400e;border-color:#fde68a}.safety-checklist-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:9999px;font-size:11.5px;font-weight:500;border:1px solid transparent}.safety-checklist-badge--passed{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.safety-action-group{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.safety-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;line-height:1.25;box-shadow:0 1px 2px #0000000a}.safety-action-btn:hover:not(:disabled){box-shadow:0 2px 4px #0000000f}.safety-action-btn:active:not(:disabled){box-shadow:inset 0 1px 2px #00000014}.safety-action-btn--primary{background:var(--primary-surface, var(--color-primary, #6c5ce7));color:var(--text-on-primary, var(--color-text-inverse, #ffffff));border-color:var(--primary-surface-pressed, var(--color-primary-hover, #5848c2));box-shadow:0 1px 2px #00000014}.safety-action-btn--primary:hover:not(:disabled){background:var(--primary-surface-hover, var(--color-primary-hover, #5848c2));border-color:var(--primary-surface-pressed, var(--color-primary-active, #4a3cb0))}.safety-action-btn--primary:active:not(:disabled){background:var(--primary-surface-pressed, var(--color-primary-active, #4a3cb0));box-shadow:inset 0 1px 2px #0000001f}.safety-action-btn--secondary{background:var(--color-primary-subtle, #eff6ff);color:var(--brand-ink, var(--color-primary-dark, #1d4ed8));border-color:var(--color-primary-border, #bfdbfe)}.safety-action-btn--secondary:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary, #6c5ce7) 16%,transparent);border-color:var(--color-primary, #6c5ce7)}.safety-action-btn--auth{background:var(--color-primary-subtle, #f5f3ff);color:var(--brand-ink, var(--color-primary-dark, #6d28d9));border-color:var(--color-primary-border, #ddd6fe)}.safety-action-btn--auth:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary, #6c5ce7) 16%,transparent);border-color:var(--color-primary, #6c5ce7)}.safety-action-btn--incident{background:var(--color-primary-subtle, #fff1f2);color:var(--brand-ink, var(--color-primary-dark, #be123c));border-color:var(--color-primary-border, #fecdd3)}.safety-action-btn--incident:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary, #6c5ce7) 16%,transparent);border-color:var(--color-primary, #6c5ce7)}.safety-action-btn--disabled{background:#f8fafc;color:#94a3b8;border-color:#e2e8f0;cursor:not-allowed;box-shadow:none}.safety-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.safety-modal{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-2xl, 20px);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1));width:100%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.safety-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color-card, #e8e6f5);background:var(--color-background-soft, #faf8ff)}.safety-modal__title{font-size:17px;font-weight:800;color:var(--color-text, #18181b);margin:0}.safety-modal__body{padding:24px;display:flex;flex-direction:column;gap:18px}.safety-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color-card, #e8e6f5);background:#fff}.safety-modal__close-btn{background:transparent;border:none;color:var(--color-text-muted, #71717a);padding:4px;border-radius:var(--radius-md, 8px);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.safety-modal__close-btn:hover{transform:translateY(-1px)}.safety-modal__subtitle{font-size:13px;color:var(--color-text-muted, #71717a);margin-top:4px;margin-bottom:0}.safety-auth-modal{max-width:680px}.safety-incident-modal{max-width:560px}.safety-modal__title-wrap{display:flex;flex-direction:column;gap:2px}.safety-modal__title-icon{width:22px;height:22px;color:var(--color-primary, #6c5ce7);flex-shrink:0}.safety-modal__title-icon--danger{color:#ef4444}.safety-form-row{display:grid;grid-template-columns:1fr;gap:12px;width:100%}@media(min-width:640px){.safety-form-row--2cols{grid-template-columns:1fr 1fr}}.safety-auth-modal .safety-form-row--2cols>.safety-form-group:last-child .themed-datepicker-popup,.safety-auth-modal .safety-form-group:has(#auth-end-date) .themed-datepicker-popup{left:auto;right:0;max-width:calc(100vw - 32px);box-sizing:border-box}.safety-auth-modal .themed-datepicker-popup{max-width:calc(100vw - 32px);box-sizing:border-box}.safety-form-group{display:flex;flex-direction:column;gap:6px;width:100%}.safety-form-label{font-size:12px;font-weight:600;color:var(--color-text, #374151);display:flex;align-items:center;gap:4px}.safety-form-input,.safety-form-select,.safety-form-textarea{width:100%;box-sizing:border-box;padding:8px 12px;font-size:13px;line-height:1.4;color:var(--color-text, #18181b);background-color:#fff;border:1px solid var(--border-color-card, #d1d5db);border-radius:var(--radius-md, 8px);transition:border-color .15s ease,box-shadow .15s ease;font-family:inherit}.safety-form-input:focus,.safety-form-select:focus,.safety-form-textarea:focus{outline:none;border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 3px var(--color-primary-subtle, rgba(108, 92, 231, .15))}.safety-form-input:disabled,.safety-form-select:disabled,.safety-form-textarea:disabled{background-color:var(--color-background-soft, #f4f4f5);color:var(--color-text-muted, #9ca3af);cursor:not-allowed}.safety-form-textarea{resize:vertical;min-height:60px}.safety-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--border-color-card, #e8e6f5);margin-top:6px}.safety-btn-cancel{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;font-size:13px;font-weight:500;color:var(--color-text, #374151);background:#fff;border:1px solid var(--border-color-card, #d1d5db);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease}.safety-btn-cancel:hover{background:var(--color-background-soft, #f4f4f5);border-color:#9ca3af}.safety-btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;color:#fff;background:var(--color-primary, #6c5ce7);border:1px solid transparent;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease}.safety-btn-submit:hover:not(:disabled){background:var(--color-primary-dark, #5640d8)}.safety-btn-submit:disabled{opacity:.5;cursor:not-allowed}.safety-btn-danger{background:#dc2626}.safety-btn-danger:hover:not(:disabled){background:#b91c1c}.safety-auth-list__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.safety-auth-list__title{font-size:14px;font-weight:600;color:var(--color-text, #1f2937);margin:0}.safety-auth-list__add-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--color-primary, #6c5ce7);background:var(--color-primary-subtle, rgba(108, 92, 231, .08));border:1px solid transparent;padding:6px 12px;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease}.safety-auth-list__add-btn:hover{background:var(--color-primary-light, rgba(108, 92, 231, .16))}.safety-auth-list__empty{border:1px dashed var(--border-color-card, #d1d5db);border-radius:var(--radius-xl, 14px);padding:24px 16px;text-align:center;color:var(--color-text-muted, #6b7280);background:var(--color-background-soft, #fafafa)}.safety-auth-list__empty-icon{margin:0 auto 8px;width:32px;height:32px;color:var(--color-text-muted, #9ca3af)}.safety-auth-list{display:flex;flex-direction:column;gap:8px}.safety-auth-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--radius-xl, 14px);border:1px solid var(--border-color-card, #e5e7eb);background:var(--color-background-soft, #f9fafb);transition:background-color .15s ease}.safety-auth-item:hover{background:#fff}.safety-auth-item__info{display:flex;flex-direction:column;gap:4px}.safety-auth-item__header{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.safety-auth-item__name{font-weight:600;font-size:13px;color:var(--color-text, #111827)}.safety-auth-item__relation-pill{font-size:11px;font-weight:500;padding:2px 8px;border-radius:9999px;background:#3b82f61a;color:#2563eb}.safety-auth-item__status-pill{font-size:11px;font-weight:500;padding:2px 8px;border-radius:9999px}.safety-auth-item__status-pill--active{background:#10b9811a;color:#059669}.safety-auth-item__status-pill--revoked{background:#ef44441a;color:#dc2626}.safety-auth-item__status-pill--expired{background:#6b72801a;color:#4b5563}.safety-auth-item__details{font-size:12px;color:var(--color-text-muted, #6b7280);display:flex;align-items:center;flex-wrap:wrap;gap:12px}.safety-auth-item__detail-span{display:inline-flex;align-items:center;gap:4px}.safety-auth-item__notes{font-size:11px;color:var(--color-text-muted, #4b5563);font-style:italic;margin:0}.safety-auth-item__revoke-btn{background:transparent;border:none;color:#ef4444;padding:6px;border-radius:var(--radius-md, 8px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.safety-auth-item__revoke-btn:hover{background:#ef44441a;color:#b91c1c}.safety-auth-form{border-radius:var(--radius-xl, 14px);border:1px solid var(--border-color-card, #bfdbfe);background:#eff6ff66;padding:16px;display:flex;flex-direction:column;gap:12px}.safety-auth-form__title{font-size:13px;font-weight:600;color:#1e3a8a;display:flex;align-items:center;gap:6px;margin:0}.safety-auth-form__warning{padding:10px 12px;background:#fffbeb;border:1px solid #fef3c7;border-radius:var(--radius-md, 8px);font-size:12px;color:#92400e}.safety-incident-alert{display:flex;align-items:flex-start;gap:10px;border-radius:var(--radius-xl, 14px);padding:12px 14px;font-size:12px}.safety-incident-alert--occ{background:#fffbeb;border:1px solid #fcd34d;color:#78350f}.safety-incident-alert--error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.safety-incident-alert__icon{width:16px;height:16px;flex-shrink:0;margin-top:1px}.safety-incident-alert__content{display:flex;flex-direction:column;gap:4px}.safety-incident-alert__btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-md, 6px);background:#d97706;color:#fff;border:none;font-size:12px;font-weight:600;cursor:pointer;margin-top:4px;width:fit-content;box-shadow:0 1px 2px #0000000d;transition:background-color .15s ease}.safety-incident-alert__btn:hover{background:#b45309}.safety-incident-notify-card{border-radius:var(--radius-xl, 14px);border:1px solid var(--border-color-card, #e5e7eb);background:var(--color-background-soft, rgba(249, 250, 251, .7));padding:12px 14px;display:flex;flex-direction:column;gap:10px}.safety-incident-notify-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--color-text, #1f2937);cursor:pointer}.safety-incident-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}.safety-incident-status-btn{padding:8px;border-radius:var(--radius-lg, 10px);border:1px solid var(--border-color-card, #e5e7eb);background:#fff;color:var(--color-text-muted, #4b5563);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:center}.safety-incident-status-btn:hover{background:var(--color-background-soft, #f9fafb)}.safety-incident-status-btn--active{border-color:var(--color-primary, #6c5ce7);background:var(--color-primary-subtle, rgba(108, 92, 231, .08));color:var(--color-primary-dark, #5640d8);font-weight:700;box-shadow:0 1px 2px #6c5ce71a}.safety-incidents-empty-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-2xl, 20px);padding:48px 24px;text-align:center;box-shadow:var(--shadow-card, 0 2px 8px rgba(108, 92, 231, .04));display:flex;flex-direction:column;align-items:center;justify-content:center}.safety-incidents-empty-card__icon-wrap{width:56px;height:56px;border-radius:50%;background:var(--color-background-soft, #faf8ff);border:1px solid var(--border-color-card, #e8e6f5);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.safety-incidents-empty-card__icon{width:28px;height:28px;color:var(--color-primary, #6c5ce7)}.safety-incidents-empty-card__title{font-size:16px;font-weight:700;color:var(--color-text, #18181b);margin:0 0 6px}.safety-incidents-empty-card__desc{font-size:13px;color:var(--color-text-muted, #71717a);max-width:420px;margin:0;line-height:1.5}.safety-incidents-list{display:flex;flex-direction:column;gap:var(--space-3, 12px);width:100%}.safety-incident-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 14px);padding:16px 20px;box-shadow:var(--shadow-subtle, 0 1px 3px rgba(0, 0, 0, .04));transition:all var(--transition-fast, .15s ease);display:flex;flex-direction:column;gap:12px;overflow-wrap:break-word;word-break:break-word}.safety-incident-card:hover{border-color:var(--pastel-purple-border, #ddd6fe);box-shadow:0 4px 12px #6c5ce714}.safety-incident-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.safety-incident-card__student-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.safety-incident-card__student-name{font-size:15px;font-weight:700;color:var(--color-text-title, #27253a)}.safety-incident-card__student-code{font-size:13px;font-weight:500;color:var(--color-text-muted, #7e7a94)}.safety-incident-card__badges{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.safety-incident-badge{font-size:12px;font-weight:600;padding:2px 10px;border-radius:var(--radius-full, 999px);white-space:nowrap;display:inline-flex;align-items:center;line-height:1.4}.safety-incident-badge--type{background:var(--pastel-neutral-bg, #f1f5f9);color:var(--pastel-neutral-text, #334155);border:1px solid var(--pastel-neutral-border, #e2e8f0)}.safety-incident-badge--severity-high{background:var(--pastel-pink-bg, #ffe4e6);color:var(--pastel-pink-text, #9f1239);border:1px solid var(--pastel-pink-border, #fecdd3)}.safety-incident-badge--severity-medium{background:var(--pastel-yellow-bg, #fef3c7);color:var(--pastel-yellow-text, #b45309);border:1px solid var(--pastel-yellow-border, #fde68a)}.safety-incident-badge--severity-low{background:var(--pastel-blue-bg, #e0f2fe);color:var(--pastel-blue-text, #0369a1);border:1px solid var(--pastel-blue-border, #bae6fd)}.safety-incident-badge--status-resolved{background:var(--pastel-green-bg, #dcfce7);color:var(--pastel-green-text, #15803d);border:1px solid var(--pastel-green-border, #bbf7d0)}.safety-incident-badge--status-monitoring{background:var(--pastel-yellow-bg, #fef3c7);color:var(--pastel-yellow-text, #b45309);border:1px solid var(--pastel-yellow-border, #fde68a)}.safety-incident-badge--status-open{background:var(--pastel-neutral-bg, #f1f5f9);color:var(--pastel-neutral-text, #334155);border:1px solid var(--pastel-neutral-border, #e2e8f0)}.safety-incident-card__btn-action{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm, 10px);background:var(--surface-subtle, #faf9fe);color:var(--color-primary, #6c5ce7);border:1px solid var(--border-color-card, #e2e8f0);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease);flex-shrink:0}.safety-incident-card__btn-action:hover{background:var(--pastel-purple-bg, #ede9fe);border-color:var(--pastel-purple-border, #ddd6fe);color:var(--pastel-purple-text, #5b21b6)}.safety-incident-card__btn-icon{width:14px;height:14px}.safety-incident-card__body{display:flex;flex-direction:column;gap:8px}.safety-incident-card__desc-section,.safety-incident-card__action-section{display:flex;flex-direction:column;gap:4px}.safety-incident-card__action-section{background:var(--surface-subtle, #faf9fe);border:1px solid var(--border-color-subtle, #f1f5f9);border-radius:var(--radius-xs, 6px);padding:8px 12px}.safety-incident-card__section-label{font-size:12px;font-weight:700;color:var(--color-text-muted, #7e7a94);text-transform:uppercase;letter-spacing:.3px}.safety-incident-card__desc-text{font-size:14px;line-height:1.5;color:var(--color-text-body, #4a455e);margin:0;overflow-wrap:break-word;word-break:break-word}.safety-incident-card__action-text{font-size:13px;line-height:1.5;color:var(--color-text-body, #4a455e);margin:0;overflow-wrap:break-word;word-break:break-word}.safety-incident-card__footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--border-color-subtle, #f1f5f9);font-size:12px;color:var(--color-text-muted, #7e7a94)}.safety-incident-card__meta-item{display:inline-flex;align-items:center;gap:6px}.safety-incident-card__meta-divider{color:var(--color-text-subtle, #a5a1b8)}.safety-incident-card__meta-icon{width:13px;height:13px}.safety-incident-card__notify{display:inline-flex;align-items:center;gap:5px;font-weight:500}.safety-incident-card__notify--yes{color:var(--pastel-green-text, #15803d)}.safety-incident-card__notify--no{color:var(--color-text-muted, #7e7a94)}.safety-incident-card__actor{font-weight:500}@media(max-width:640px){.safety-incident-card{padding:12px 14px;gap:10px}.safety-incident-card__header{flex-direction:column;align-items:stretch}.safety-incident-card__btn-action{align-self:flex-start}.safety-incident-card__footer{flex-direction:column;align-items:flex-start;gap:6px}.safety-incident-card__meta-divider{display:none}}.daily-handoff-modal{max-width:620px;max-height:90vh;position:relative;box-sizing:border-box}.daily-handoff-modal__header-title-wrap{display:flex;flex-direction:column;gap:4px}.daily-handoff-modal__title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:var(--color-text, #18181b);margin:0}.daily-handoff-modal__title-icon{width:22px;height:22px;color:#16a34a;flex-shrink:0}.daily-handoff-modal__student-info{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:2px}.daily-handoff-modal__student-name{font-weight:600;font-size:14px;color:#1f2937}.daily-handoff-modal__student-code{font-size:12px;color:#6b7280}.daily-handoff-modal__badge{font-size:11px;padding:2px 8px;border-radius:9999px;font-weight:500;display:inline-flex;align-items:center}.daily-handoff-modal__badge--present{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.daily-handoff-modal__badge--absent{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.daily-handoff-modal__close-btn{background:transparent;border:none;padding:4px;border-radius:8px;color:#9ca3af;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.daily-handoff-modal__close-btn:hover{transform:translateY(-1px)}.daily-handoff-modal__form{padding:20px 24px;display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.daily-handoff-modal__occ-banner{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:14px 16px;color:#78350f;display:flex;align-items:flex-start;gap:12px}.daily-handoff-modal__occ-content{display:flex;flex-direction:column;gap:8px;flex:1}.daily-handoff-modal__occ-title{font-size:13px;font-weight:600;margin:0;color:#78350f}.daily-handoff-modal__occ-desc{font-size:12px;margin:0;color:#92400e;line-height:1.4}.daily-handoff-modal__occ-btn{padding:6px 12px;border-radius:8px;background:#d97706;color:#fff;border:none;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 1px 2px #0000000d;transition:background-color .15s ease;width:fit-content;display:inline-flex;align-items:center;gap:6px}.daily-handoff-modal__occ-btn:hover:not(:disabled){background:#b45309}.daily-handoff-modal__occ-btn:disabled{opacity:.6;cursor:not-allowed}.daily-handoff-modal__error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:12px 14px;color:#b91c1c;font-size:13px;display:flex;align-items:center;gap:8px}.daily-handoff-modal__unknown-banner{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:12px 14px;color:#78350f;font-size:13px;display:flex;align-items:flex-start;gap:10px}.daily-handoff-modal__warning-banner{border-radius:12px;padding:12px 14px;font-size:12px;display:flex;align-items:flex-start;gap:10px;line-height:1.45}.daily-handoff-modal__warning-banner--readonly{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.daily-handoff-modal__warning-banner--attendance{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.daily-handoff-modal__warning-title{font-weight:600;margin:0 0 2px}.daily-handoff-modal__warning-desc{margin:0}.daily-handoff-modal__field{display:flex;flex-direction:column;gap:6px}.daily-handoff-modal__label{font-size:12px;font-weight:600;color:#374151}.daily-handoff-modal__status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.daily-handoff-modal__status-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:all .15s ease}.daily-handoff-modal__status-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 4px #0000000f}.daily-handoff-modal__status-btn:active:not(:disabled){box-shadow:inset 0 1px 2px #00000014}.daily-handoff-modal__status-btn--active-da-tra{border-color:#10b981!important;background:#ecfdf5!important;color:#065f46!important;box-shadow:0 1px 2px #10b98126}.daily-handoff-modal__status-btn--active-tra-muon{border-color:#f59e0b!important;background:#fffbeb!important;color:#92400e!important;box-shadow:0 1px 2px #f59e0b26}.daily-handoff-modal__status-btn--active-nguoi-la{border-color:#f43f5e!important;background:#fff1f2!important;color:#be123c!important;box-shadow:0 1px 2px #f43f5e26}.daily-handoff-modal__picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.daily-handoff-modal__picker-btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:all .15s ease}.daily-handoff-modal__picker-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 4px #0000000f}.daily-handoff-modal__picker-btn:active:not(:disabled){box-shadow:inset 0 1px 2px #00000014}.daily-handoff-modal__picker-btn--active{border-color:var(--color-primary, #6c5ce7)!important;background:var(--color-background-soft, #faf8ff)!important;color:var(--color-primary, #6c5ce7)!important;font-weight:600;box-shadow:0 1px 3px #6c5ce726}.daily-handoff-modal__picker-details{border-radius:12px;border:1px solid #e5e7eb;background:#f9fafbb3;padding:14px;display:flex;flex-direction:column;gap:12px}.daily-handoff-modal__input-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.daily-handoff-modal__select,.daily-handoff-modal__input{width:100%;box-sizing:border-box;height:38px;padding:0 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.daily-handoff-modal__select:focus,.daily-handoff-modal__input:focus{border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 3px #6c5ce71f}.daily-handoff-modal__input--time{width:150px}.daily-handoff-modal__checklist-box{border-radius:12px;border:1px solid #bbf7d0;background:#f0fdf499;padding:16px;display:flex;flex-direction:column;gap:10px}.daily-handoff-modal__checklist-title{font-weight:700;color:#166534;font-size:12px;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.04em;margin:0}.daily-handoff-modal__checklist-list{display:flex;flex-direction:column;gap:10px}.daily-handoff-modal__checklist-item{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:#374151;line-height:1.45;cursor:pointer;-webkit-user-select:none;user-select:none}.daily-handoff-modal__checkbox{margin-top:2px;width:16px;height:16px;border-radius:4px;accent-color:var(--color-primary, #6366f1);cursor:pointer;flex-shrink:0}.daily-handoff-modal__textarea{width:100%;box-sizing:border-box;min-height:56px;padding:8px 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:13px;font-family:inherit;resize:vertical;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.daily-handoff-modal__textarea:focus{border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 3px #6c5ce71f}.daily-handoff-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:14px;border-top:1px solid #e5e7eb;margin-top:4px}.daily-handoff-modal__cancel-btn{padding:8px 16px;border-radius:10px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.daily-handoff-modal__cancel-btn:hover{background:#f9fafb;border-color:#9ca3af}.daily-handoff-modal__submit-btn{padding:9px 20px;font-size:13px}@media(max-width:640px){.daily-handoff-modal{max-width:100%;margin:8px}.daily-handoff-modal__form{padding:16px;gap:14px}.daily-handoff-modal__status-grid,.daily-handoff-modal__picker-grid,.daily-handoff-modal__input-grid{grid-template-columns:1fr}}.safety-empty-icon-wrap{width:48px;height:48px;border-radius:12px;background:#f5f3ff;color:#6d28d9;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.fee-period-container{display:flex;flex-direction:column;gap:16px;background:#fff;border-radius:12px;padding:20px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;font-family:inherit}.fee-period-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);padding:14px 20px;background:var(--surface-card, #ffffff);flex-shrink:0}.fee-period-header__title{display:flex;align-items:center;gap:10px;margin:0}.fee-period-header h3{font-size:15px;font-weight:700;color:#0f172a;margin:0;padding:0;line-height:1.3}.fee-period-header p{font-size:12px;font-weight:400;color:#64748b;margin:2px 0 0;padding:0;line-height:1.3}.fee-period-header__actions{display:flex;align-items:center;gap:8px}.fee-period-info-compact{flex-shrink:0;display:flex;align-items:center;gap:8px;margin:10px 20px 2px;padding:8px 12px;background:#fffbeb;border:1px solid #fef3c7;border-radius:8px;font-size:12px;color:#92400e;line-height:1.35}.fee-period-subhead{display:flex;align-items:center;justify-content:space-between;padding:4px 0 8px;border-bottom:1px dashed var(--border-color-subtle, #e2e8f0);margin-bottom:4px}.fee-period-subhead__title{font-size:14px;font-weight:700;color:#1e293b}.fee-period-subhead__target{font-size:11px;font-weight:600;padding:2px 8px;border-radius:9999px;background:var(--surface-hover, #f1f5f9);color:#475569;border:1px solid #e2e8f0}.fee-period-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 12px);padding:16px;box-shadow:0 1px 3px #0000000a}.fee-period-row{display:grid;grid-template-columns:minmax(175px,1.25fr) minmax(110px,.85fr) minmax(130px,1fr) minmax(130px,1fr);gap:12px;align-items:flex-end;margin-bottom:8px;background:#fff;border:1px solid var(--border-color-card, #e2e8f0);border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px #0000000a;transition:all .15s ease}.fee-period-row:hover{border-color:#cbd5e1;box-shadow:0 3px 6px -1px #0000000f}.fee-period-row--tuition{border-color:#ddd6fe;background:linear-gradient(180deg,#fff,#faf8ff);box-shadow:0 2px 6px -1px #7c3aed0f,0 1px 2px #00000008}.fee-period-row--meal{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffdf5);box-shadow:0 2px 6px -1px #d977060f,0 1px 2px #00000008}.fee-period-row--settlement{border-color:#a7f3d0;background:linear-gradient(180deg,#fff,#f6fdf9);box-shadow:0 2px 6px -1px #10b9810f,0 1px 2px #00000008}.fee-period-chip-container{display:flex;flex-direction:column;gap:3px;min-height:38px;justify-content:center}.fee-period-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.025em;text-transform:uppercase;width:fit-content}.fee-period-chip--tuition{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe}.fee-period-chip--meal{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.fee-period-chip--settlement{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.fee-period-item-title{font-size:12px;font-weight:600;color:#334155;line-height:1.2}@media(max-width:768px){.fee-period-row{grid-template-columns:1fr;gap:8px;padding:10px 12px}}.fee-period-field{display:flex;flex-direction:column;gap:4px}.fee-period-field__label{font-size:13px;font-weight:600;color:#334155}.fee-period-field__input,.fee-period-field__select{height:38px;padding:6px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:14px;color:#0f172a;outline:none;transition:border-color .15s ease}.fee-period-field__input:focus,.fee-period-field__select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.fee-period-field__input--readonly{background:#f1f5f9;color:#64748b;cursor:not-allowed}.fee-period-expandable{margin-top:10px;border-top:1px dashed var(--border-color-subtle, #e2e8f0);padding-top:12px}.fee-period-expandable__toggle{width:100%;background:var(--surface-hover, #f8fafc);border:1px solid var(--border-color-subtle, #e2e8f0);border-radius:10px;color:var(--brand-ink, #1e293b);font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;box-shadow:0 1px 2px #0000000a,inset 0 1px #fffc;transition:all .15s ease;font-family:inherit}.fee-period-expandable__toggle:hover{background:#f1f5f9;border-color:#cbd5e1;box-shadow:0 2px 4px #0000000f}.fee-period-expandable__toggle:focus-visible{outline:2px solid var(--color-primary, #6366f1);outline-offset:2px}.fee-period-expandable__toggle-left{display:flex;align-items:center;gap:10px}.fee-period-expandable__body{margin-top:12px;padding:14px;background:#fff;border:1px solid var(--border-color-subtle, #e2e8f0);border-radius:12px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px #00000008}.fee-period-policy-section{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8fafc;border:1px solid #edf2f7;border-radius:10px}.fee-period-policy-section__header{display:flex;align-items:center;gap:10px}.fee-period-policy-section__title{font-size:13px;font-weight:700;color:#1e293b;display:block;line-height:1.3}.fee-period-policy-section__desc{font-size:11px;color:#64748b;display:block;line-height:1.3;margin-top:1px}.fee-period-policy-section__input{background:#fff}.fee-period-policy-icon-frame{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 1px 2px #0000000a}.fee-period-policy-icon-frame--toggle{background:#eff6ff;border:1px solid #dbeafe;color:#2563eb}.fee-period-policy-icon-frame--calendar{background:#eef2ff;border:1px solid #e0e7ff;color:#4f46e5}.fee-period-policy-icon-frame--holiday{background:#fff7ed;border:1px solid #ffedd5;color:#d97706}.fee-period-policy-icon-frame--refund{background:#ecfdf5;border:1px solid #d1fae5;color:#059669}.fee-period-policy-icon-frame--principle{background:#fef3c7;border:1px solid #fde68a;color:#b45309}.fee-period-weekday-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.fee-period-weekday-chip{position:relative;min-height:38px;padding:6px 14px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #cbd5e1;color:#334155;font-size:12.5px;font-weight:600;box-shadow:0 1px 2px #0000000d,inset 0 1px #fffc;transition:all .15s ease;-webkit-user-select:none;user-select:none}.fee-period-weekday-chip:hover{border-color:#94a3b8;background:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 4px #00000014}.fee-period-weekday-chip--selected{background:var(--brand-ink, var(--color-primary-dark, #3f2e96))!important;border-color:var(--brand-ink, #3f2e96)!important;color:#fff!important;box-shadow:0 2px 5px #3f2e9659,inset 0 1px #ffffff40!important}.fee-period-weekday-chip--selected:hover{filter:brightness(1.08)}.fee-period-weekday-chip:focus-within{outline:2px solid var(--color-primary, #6366f1);outline-offset:2px}.fee-period-weekday-chip__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fee-period-weekday-chip__check-box{width:16px;height:16px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;transition:all .15s ease;flex-shrink:0}.fee-period-weekday-chip--selected .fee-period-weekday-chip__check-box{background:#ffffff40;border-color:#fff9;color:#fff}.fee-period-weekday-chip__label{line-height:1.2}.fee-period-refundable-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:4px}.fee-period-refundable-card{position:relative;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.fee-period-refundable-card:hover{border-color:#94a3b8;background:#f8fafc}.fee-period-refundable-card--selected{border-color:var(--color-primary, #4f46e5);background:#f5f7ff;box-shadow:0 1px 4px #4f46e526}.fee-period-refundable-card:focus-within{outline:2px solid var(--color-primary, #6366f1);outline-offset:2px}.fee-period-refundable-card__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fee-period-refundable-card__check-box{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;color:var(--color-primary, #4f46e5);flex-shrink:0;margin-top:1px;transition:all .15s ease}.fee-period-refundable-card--selected .fee-period-refundable-card__check-box{background:var(--color-primary, #4f46e5);border-color:var(--color-primary, #4f46e5);color:#fff}.fee-period-refundable-card__content{display:flex;flex-direction:column;gap:2px}.fee-period-refundable-card__title{font-size:13px;font-weight:700;color:#1e293b;line-height:1.3}.fee-period-refundable-card__desc{font-size:11px;color:#64748b;line-height:1.3}.fee-period-policy-principle{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#fffbeb;border:1px solid #fef3c7;border-radius:8px;font-size:12px;color:#92400e;line-height:1.4}.fee-period-policy-principle__text{flex:1}.fee-period-confirmation-card{position:relative;display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--surface-card, #ffffff);border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 3px #0000000a,inset 0 1px #fffc}.fee-period-confirmation-card:hover{background:#f8fafc;border-color:#94a3b8}.fee-period-confirmation-card--checked{background:#f0fdf4;border-color:#059669;box-shadow:0 1px 4px #0596692e}.fee-period-confirmation-card:focus-within{outline:2px solid #059669;outline-offset:2px}.fee-period-confirmation-card__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fee-period-confirmation-card__check-box{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;color:#059669;flex-shrink:0;transition:all .15s ease}.fee-period-confirmation-card--checked .fee-period-confirmation-card__check-box{background:#059669;border-color:#059669;color:#fff}.fee-period-confirmation-card__text{font-size:13px;font-weight:700;color:#1e293b;line-height:1.3}.fee-period-checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.fee-period-checkbox-label{font-size:13px;color:#1e293b;display:flex;align-items:center;gap:6px;cursor:pointer}.fee-period-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0}.fee-period-summary-card{padding:12px 14px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:4px}.fee-period-summary-card--highlight{background:#eff6ff;border-color:#bfdbfe}.fee-period-summary-card--credit{background:#f0fdf4;border-color:#bbf7d0}.fee-period-summary-card--excess{background:#fef2f2;border-color:#fecaca}.fee-period-summary-card__label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.025em}.fee-period-summary-card__value{font-size:18px;font-weight:700;color:#0f172a}.fee-period-summary-card--credit .fee-period-summary-card__value{color:#16a34a}.fee-period-summary-card--highlight .fee-period-summary-card__value{color:#2563eb}.fee-period-summary-card--excess .fee-period-summary-card__value{color:#dc2626}.fee-period-resolution-box{background:#fffbeb;border:1px solid #fef3c7;border-radius:8px;padding:14px;margin:12px 0}.fee-period-resolution-title{font-size:14px;font-weight:600;color:#92400e;margin-bottom:8px;display:flex;align-items:center;gap:6px}.fee-period-resolution-item{background:#fff;border:1px solid #fde68a;border-radius:6px;padding:10px 12px;margin-bottom:8px}.fee-period-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px;margin-top:12px}.fee-period-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.fee-period-table th{background:var(--table-header-bg, var(--color-sidebar-gradient, linear-gradient(180deg, #6c5ce7 0%, #5848c2 100%)))!important;padding:10px 12px;font-weight:700;color:var(--table-header-color, var(--text-on-sidebar, #ffffff))!important;border-bottom:2px solid var(--table-header-border, rgba(255, 255, 255, .2))!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0, 0, 0, .1))!important;text-align:center;vertical-align:middle!important}.fee-period-table td{padding:10px 12px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);color:var(--color-text-body, #1e293b);text-align:center}.fee-period-table th.col-name,.fee-period-table th.col-student,.fee-period-table td.col-name,.fee-period-table td.col-student{text-align:left!important}.fee-period-table tr:last-child td{border-bottom:none}.fee-period-table tr:hover td{background:var(--surface-hover, #f8f7fd)}.fee-period-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.fee-period-btn--primary{background:var(--color-primary, #6c5ce7);color:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 4px #0000001a,inset 0 1px #fff3}.fee-period-btn--primary:hover:not(:disabled){background:var(--color-primary-hover, #5848c2);transform:translateY(-1px);box-shadow:0 4px 8px #00000026,inset 0 1px #fff3}.fee-period-btn--primary:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 2px 4px #00000026}.fee-period-btn--secondary{background:var(--surface-card, #ffffff);border-color:var(--border-color-card, #cbd5e1);color:var(--color-text-body, #334155);box-shadow:0 1px 2px #0000000d}.fee-period-btn--secondary:hover:not(:disabled){background:var(--surface-hover, #f8fafc);border-color:var(--border-color-focus, #94a3b8)}.fee-period-btn--success{background:#16a34a;color:#fff}.fee-period-btn--success:hover:not(:disabled){background:#15803d}.fee-period-btn--danger{background:#ef4444;color:#fff}.fee-period-btn--danger:hover:not(:disabled){background:#dc2626}.fee-period-btn:disabled{opacity:.6;cursor:not-allowed}.fee-period-alert{padding:10px 14px;border-radius:8px;font-size:13px;display:flex;align-items:flex-start;gap:8px;margin:8px 0}.fee-period-alert--warning{background:#fffbeb;border:1px solid #fde68a;color:#b45309}.fee-period-alert--danger{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.fee-period-alert--info{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.fee-period-alert--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.fee-period-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;font-family:inherit}.fee-period-modal{background:#fff;border-radius:14px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:540px;width:100%;padding:24px;border:1px solid #e2e8f0;font-family:inherit}.fee-period-dialog-wrapper{background:var(--surface-card, #ffffff);border-radius:var(--radius-xl, 16px);border:1px solid var(--border-color-card, #e2e8f0);box-shadow:0 20px 25px -5px #00000026,0 10px 10px -5px #00000014;max-width:820px;width:100%;max-height:min(92dvh,calc(100dvh - 32px));height:auto;display:flex;flex-direction:column;min-height:0;overflow:hidden;font-family:inherit}@media(max-width:640px){.fee-period-dialog-wrapper{max-height:calc(100dvh - 16px);border-radius:var(--radius-lg, 12px)}}.fee-period-dialog-wrapper .fee-period-container{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden;padding:0;border:none;box-shadow:none;border-radius:0;background:transparent;gap:0}.fee-period-dialog-wrapper .fee-period-header{flex-shrink:0;padding:14px 20px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);background:var(--surface-card, #ffffff)}.fee-period-settings-slot{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}.fee-period-settings-form{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden;background:transparent;border:none;padding:0;margin:0}.fee-period-settings-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px 20px;display:flex;flex-direction:column;gap:10px}.fee-period-settings-footer{flex-shrink:0;padding:12px 20px;border-top:1px solid var(--border-color-subtle, #f1f5f9);background:var(--surface-card, #ffffff);display:flex;justify-content:flex-end;gap:10px;z-index:2}.fee-period-proposal-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px}.fee-period-proposal-footer{flex-shrink:0;padding:12px 20px;border-top:1px solid var(--border-color-subtle, #f1f5f9);background:var(--surface-card, #ffffff);display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:2}.fee-period-banner{padding:12px 14px;border-radius:10px;display:flex;align-items:center;gap:10px;font-family:inherit}.fee-period-banner--warning{background:#fffbeb;border:1px solid #fef3c7;color:#92400e}.fee-period-banner--danger{background:#fef2f2;border:1px solid #fee2e2;color:#991b1b}.fee-period-banner--success{background:#f0fdf4;border:1px solid #dcfce7;color:#166534}.fee-period-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0;font-family:inherit}.fee-period-kpi-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.fee-period-kpi-label{font-size:11px;font-weight:600;text-transform:uppercase;color:#64748b;letter-spacing:.025em}.fee-period-kpi-value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.finance-page-container,.reports-page-container{display:flex;flex-direction:column;gap:var(--space-5, 20px);padding-bottom:40px;width:100%;box-sizing:border-box}@media(max-width:768px){.finance-page-container,.reports-page-container{gap:var(--space-4, 16px)}}.finance-report-view{display:flex;flex-direction:column;gap:24px;width:100%}@media(max-width:768px){.finance-report-view{gap:20px}}.finance-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px!important;min-height:40px!important;padding:0 18px!important;font-size:13px!important;line-height:1!important;background-color:var(--color-primary, #10b981)!important;color:#fff!important;border:none!important;font-weight:600;border-radius:var(--radius-lg, 10px);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #10b98133;box-sizing:border-box!important}.finance-btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover, #059669)!important;box-shadow:0 4px 8px #10b98147;transform:translateY(-1px)}.finance-btn-primary:focus-visible{outline:2px solid var(--color-primary, #10b981);outline-offset:2px}.finance-btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.month-closure-card{padding:10px 16px;border-radius:var(--radius-xl, 14px);display:flex;flex-direction:column;gap:0;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05));transition:all .2s ease}.month-closure-card--closed{background:var(--pastel-neutral-gradient, linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%));border:1px solid var(--pastel-neutral-border, #cbd5e1)}.month-closure-card--open{background:var(--callout-raised-bg, linear-gradient(135deg, #e8f8ef 0%, #d1f3e0 100%));border:1px solid var(--callout-raised-border, #86efac);box-shadow:var(--callout-raised-shadow, 0 1px 3px rgba(0, 0, 0, .05));color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.month-closure-card--open .month-closure-card__title{color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.month-closure-card--open .month-closure-card__desc{color:var(--brand-ink, var(--color-primary-dark, #3f2e96));opacity:.88}.month-closure-card--reopened{background:var(--pastel-yellow-gradient, linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%));border:1px solid var(--pastel-yellow-border, #fde68a)}.month-closure-card__main{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-closure-card__info{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.month-closure-card__icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;flex-shrink:0}.month-closure-card__icon--open{background:var(--color-primary-subtle, color-mix(in srgb, var(--color-primary, #6c5ce7) 12%, #ffffff));color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.month-closure-card__icon--closed{background:#ffe4e6;color:#be123c}.month-closure-card__icon--reopened{background:#dbeafe;color:#1d4ed8}.month-closure-card__content{min-width:0;flex:1 1 auto}.month-closure-card__title{font-size:13px;font-weight:700;color:var(--color-text, #18181b);display:flex;align-items:center;gap:6px;margin:0;line-height:1.2}.month-closure-card__dot{color:#94a3b8;font-size:10px;-webkit-user-select:none;user-select:none}.month-closure-card__badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:9999px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.month-closure-card__badge--open{background:var(--color-primary-subtle, color-mix(in srgb, var(--color-primary, #6c5ce7) 12%, #ffffff));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));border:1px solid var(--color-primary-border, color-mix(in srgb, var(--color-primary, #6c5ce7) 28%, transparent))}.month-closure-card__badge--closed{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.month-closure-card__badge--reopened{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}.month-closure-card__desc{font-size:11px;color:#64748b;margin:2px 0 0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-closure-card__actions{display:flex;align-items:center;flex-shrink:0}.month-closure-card__btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;background:#fff;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0000000d;transition:all .15s ease;white-space:nowrap}.month-closure-card__btn--close{color:#047857;border-color:#a7f3d0}.month-closure-card__btn--close:hover{background:#ecfdf5;border-color:#6ee7b7}.month-closure-card__btn--reopen{color:#be123c;border-color:#fecdd3}.month-closure-card__btn--reopen:hover{background:#fff1f2;border-color:#fda4af}.finance-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 14px);padding:10px 16px;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05))}.finance-toolbar__filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.finance-toolbar__group{display:flex;align-items:center;gap:8px}.finance-toolbar__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #71717a);flex-shrink:0}.finance-toolbar__select,.finance-toolbar__input{height:40px;min-height:40px;padding:0 12px;border-radius:var(--radius-md, 8px);border:1px solid var(--border-color-card, #e4e4e7);background:var(--color-background-soft, #faf8ff);color:var(--color-text, #18181b);font-size:13px;font-weight:500;outline:none;transition:all .2s ease;box-sizing:border-box}.finance-toolbar__select:focus,.finance-toolbar__input:focus{border-color:var(--color-primary, #10b981);background:#fff;box-shadow:0 0 0 3px #10b9811f}.finance-toolbar__date-picker{position:relative;display:inline-flex}.finance-toolbar__date-picker .themed-datepicker-input{height:40px;min-height:40px;width:140px;padding:0 12px;border-radius:var(--radius-md, 8px);border:1px solid var(--border-color-card, #e4e4e7);background:var(--color-background-soft, #faf8ff);color:var(--color-text, #18181b);font-size:13px;font-weight:500;box-sizing:border-box}.finance-toolbar__date-picker .themed-datepicker-input:focus{border-color:var(--color-primary, #ec4899);background:#fff;box-shadow:0 0 0 2px #ec489926}.finance-toolbar__date-picker .themed-datepicker-popup{right:0;left:auto}.finance-table-header--warning{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-card, #ffffff);border-bottom:1px solid var(--border-color-card, #f1f5f9)}.finance-table-header__icon-badge--warning{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#fff1f2;color:#e11d48;border:1px solid #fecdd3;flex-shrink:0}.debtors-compact-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface-card, #ffffff);border-bottom:1px solid var(--border-color-card, #e8e6f5);box-sizing:border-box}.debtors-compact-header__icon-chip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#fff1f2;color:#e11d48;border:1px solid #fecdd3;box-shadow:0 1px 2px #e11d4814;flex-shrink:0}.debtors-compact-header__text{display:flex;flex-direction:column;gap:2px;min-width:0}.debtors-compact-header__heading-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.debtors-compact-header__title{font-size:13.5px;font-weight:700;color:var(--brand-ink, #0f172a);margin:0;padding:0;line-height:1.3}.debtors-compact-header__badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;padding:2.5px 8px;border-radius:9999px;background:#fff1f2;color:#e11d48;border:1px solid #fecdd3;letter-spacing:.02em}.debtors-compact-header__subtitle{font-size:11.5px;font-weight:400;color:#64748b;margin:0;padding:0;line-height:1.3}.finance-tabs-bar{display:flex;align-items:center;gap:8px;background:var(--surface-card, #ffffff);padding:6px;border-radius:var(--radius-xl, 14px);border:1px solid var(--border-color-card, #e8e6f5);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04));overflow-x:auto}.finance-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-lg, 10px);border:1px solid transparent;background:transparent;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.finance-tab-btn:hover:not(.finance-tab-btn--active){color:#0f172a;background:#ffffffb3}.finance-tab-btn--active,.finance-tab-btn--active:hover,.finance-tab-btn--active:focus{background:#fff!important;color:var(--color-primary-dark, #3f2e96)!important;font-weight:700;box-shadow:0 1px 3px #00000014;border:1px solid var(--border-color-card, #cbd5e1)!important}.finance-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media(max-width:1024px){.finance-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.finance-kpi-grid{grid-template-columns:1fr}}.finance-kpi-card{padding:16px 20px;border-radius:var(--radius-xl, 16px);background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05));display:flex;flex-direction:column;justify-content:space-between;min-height:104px;box-sizing:border-box}.finance-kpi-card__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #71717a);display:flex;align-items:center;justify-content:space-between}.finance-kpi-card__value{font-size:20px;font-weight:800;color:var(--color-text, #18181b);margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.25}.finance-kpi-card__sub{font-size:11px;color:var(--color-text-muted, #71717a);margin-top:4px}.finance-kpi-card--primary{background:var(--color-primary-light, #ecfdf5);border-color:var(--color-primary-border, #a7f3d0)}.finance-kpi-card--primary .finance-kpi-card__title,.finance-kpi-card--primary .finance-kpi-card__sub{color:var(--color-primary-dark, #065f46)}.finance-kpi-card--primary .finance-kpi-card__value{color:var(--color-primary-dark, #047857)}.finance-kpi-card--success{background:var(--pastel-green-gradient, linear-gradient(135deg, #e8f8ef 0%, #d1f3e0 100%));border-color:var(--pastel-green-border, #bbf7d0)}.finance-kpi-card--success .finance-kpi-card__title,.finance-kpi-card--success .finance-kpi-card__sub{color:var(--pastel-green-text, #15803d)}.finance-kpi-card--success .finance-kpi-card__value{color:#166534}.finance-kpi-card--danger{background:var(--pastel-pink-gradient, linear-gradient(135deg, #ffe6eb 0%, #ffd4dc 100%));border-color:var(--pastel-pink-border, #fecdd3)}.finance-kpi-card--danger .finance-kpi-card__title,.finance-kpi-card--danger .finance-kpi-card__sub{color:var(--pastel-pink-text, #9f1239)}.finance-kpi-card--danger .finance-kpi-card__value{color:#be123c}.finance-table-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05));overflow:hidden}.finance-table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.finance-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.finance-table thead th,.finance-table-card .finance-table th,.finance-page-container .finance-table th,.finance-page-container .finance-table thead th,.finance-claims-table thead th,.finance-table th{background:var(--table-header-bg, var(--color-sidebar-gradient, linear-gradient(180deg, #6c5ce7 0%, #5848c2 100%)))!important;color:var(--table-header-color, var(--text-on-sidebar, #ffffff))!important;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:12px 16px;border-bottom:2px solid var(--table-header-border, rgba(255, 255, 255, .2))!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0, 0, 0, .1))!important;white-space:nowrap;text-align:center!important;vertical-align:middle!important}.finance-table thead th>div,.finance-table th>div{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%}.finance-table td{padding:14px 16px;border-bottom:1px solid var(--border-color-card, #e8e6f5);color:var(--color-text, #18181b);vertical-align:top}.finance-table tbody tr:hover{background:var(--surface-hover, #f8f7fd)}.finance-table tbody tr:last-child td{border-bottom:none}.finance-table th.col-name,.finance-table th.col-student,.finance-table th.col-fee-name,.finance-table th.col-identity,.finance-table th.col-main-entity,.finance-table td.col-name,.finance-table td.col-student,.finance-table td.col-fee-name,.finance-table td.col-identity,.finance-table td.col-main-entity{text-align:left!important}.finance-table th.col-name>div,.finance-table th.col-student>div,.finance-table th.col-fee-name>div,.finance-table th.col-identity>div,.finance-table th.col-main-entity>div{justify-content:flex-start!important}.finance-table .num-cell{text-align:center;font-variant-numeric:tabular-nums;font-weight:600}.finance-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:var(--radius-xl, 14px);font-size:13px;line-height:1.5;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.finance-alert-banner--readonly{background:var(--pastel-yellow-bg, #fef3c7);border:1px solid var(--pastel-yellow-border, #fde68a);color:var(--pastel-yellow-text, #b45309)}.finance-alert-banner--conflict,.finance-alert-banner--danger{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.finance-alert-banner--warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.finance-alert-banner--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.finance-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.finance-modal{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-2xl, 20px);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1));width:100%;max-width:600px;max-height:90vh;max-height:90dvh;overflow:hidden;display:flex;flex-direction:column}.finance-modal--lg{max-width:720px}.finance-modal--calculate{max-width:640px}.finance-modal--calculate .finance-modal__body{min-height:440px}.finance-issuance-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:640px){.finance-issuance-stats{grid-template-columns:1fr;gap:8px}}.finance-issuance-stat-card{padding:12px 14px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-lg, 12px);display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box}.finance-issuance-stat-card__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #71717a)}.finance-issuance-stat-card__value{font-size:18px;font-weight:800;color:var(--color-text, #18181b);margin-top:4px;line-height:1.25}.finance-issuance-stat-card__badge-warning{display:block;font-size:11px;font-weight:600;color:#b45309;margin-top:2px}.finance-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color-card, #e8e6f5);background:var(--color-background-soft, #faf8ff);flex-shrink:0}.finance-modal__title{font-size:16px;font-weight:800;color:var(--color-text, #18181b);margin:0}.finance-modal__subtitle{font-size:13px;color:#64748b;margin-top:4px}.finance-modal__header-title-wrap{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}.finance-modal__header-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#eff6ff;color:#2563eb;flex-shrink:0}.finance-modal__header-text{display:flex;flex-direction:column;gap:2px;min-width:0}.finance-modal__close-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:#64748b;cursor:pointer;font-size:16px;line-height:1;transition:all .15s ease}.finance-modal__close-btn:hover{background:#f1f5f9;color:#0f172a}.finance-modal__body{padding:24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1 1 auto}.finance-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color-card, #e8e6f5);background:#fff;flex-shrink:0}.finance-form-group{display:flex;flex-direction:column;gap:16px}.finance-form-group>.finance-field+.finance-field,.finance-modal__body>.finance-field+.finance-field{margin-top:16px}.finance-field-grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:640px){.finance-field-grid--2cols{grid-template-columns:repeat(2,1fr)}}.finance-field{display:flex;flex-direction:column;gap:6px}.finance-alert-box{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;font-family:inherit;font-size:12px;line-height:1.45}.finance-alert-box--info{background:#f8fafc;border:1px solid #cbd5e1;color:#475569}.finance-alert-box--warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.finance-alert-box--warning .finance-alert-box__icon{color:#d97706}.finance-alert-box--error{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239}.finance-alert-box--error .finance-alert-box__icon{color:#e11d48}.finance-alert-box__icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:#64748b}.finance-alert-box__content{flex:1 1 auto}.finance-preview-card{border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-xl, 14px);overflow:hidden;background:#fff}.finance-preview-header{background:var(--color-background-soft, #faf8ff);padding:10px 14px;border-bottom:1px solid var(--border-color-card, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.finance-preview-body{max-height:180px;overflow-y:auto}.finance-preview-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-bottom:1px solid var(--border-color-card, #f1f5f9);background:#fff}.finance-preview-row:last-child{border-bottom:none}.finance-preview-row__info{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.finance-preview-row__name{font-weight:600;font-size:13px;color:var(--color-text, #1e293b);white-space:nowrap}.finance-preview-row__count{font-size:11px;font-weight:500;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:9999px;padding:2px 8px;white-space:nowrap}.finance-preview-row__amount{font-family:inherit;font-weight:700;font-size:13px;color:var(--color-text, #0f172a);white-space:nowrap;flex-shrink:0;text-align:right}.finance-issuance-step-box{padding:14px 16px;border-radius:var(--radius-xl, 14px);border:1px solid var(--border-color-card, #e2e8f0);background:var(--color-background-soft, #f8fafc);margin-top:12px}.finance-issuance-step-box--step1{background:#f8fafc;border-color:#e2e8f0;display:flex;flex-direction:column;gap:12px}@media(min-width:640px){.finance-issuance-step-box--step1{flex-direction:row;align-items:center;justify-content:space-between}}.finance-issuance-step-box--step2{background:#f0fdf4;border-color:#bbf7d0;display:flex;flex-direction:column;gap:10px}.finance-issuance-step-box__header{display:flex;align-items:center;gap:10px}.finance-issuance-step-box__icon{flex-shrink:0;color:#16a34a}.finance-issuance-step-box__title{font-size:13px;font-weight:700;color:#166534;margin:0;line-height:1.4}.finance-issuance-step-box__subtitle{font-size:11.5px;color:#64748b;margin-top:2px}.finance-issuance-step-box__confirm{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:#1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.4}.finance-issuance-step-box__checkbox{margin-top:2px;width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #6366f1);flex-shrink:0}.finance-label{display:block;font-size:12px;font-weight:700;color:#334155;letter-spacing:.01em;margin-bottom:2px}.finance-control,.finance-modal input[type=text],.finance-modal input[type=number],.finance-modal input[type=date],.finance-modal input[type=month],.finance-modal select,.finance-card input[type=text],.finance-card input[type=number],.finance-card input[type=date],.finance-card input[type=month],.finance-card select{width:100%;box-sizing:border-box;height:42px;padding:8px 12px;font-family:inherit;font-size:13px;color:#0f172a;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.finance-control:focus,.finance-modal input[type=text]:focus,.finance-modal input[type=number]:focus,.finance-modal input[type=date]:focus,.finance-modal input[type=month]:focus,.finance-modal select:focus,.finance-card input[type=text]:focus,.finance-card input[type=number]:focus,.finance-card input[type=date]:focus,.finance-card input[type=month]:focus,.finance-card select:focus{border-color:var(--color-primary, #ec4899);box-shadow:0 0 0 2px var(--color-primary-soft, rgba(236, 72, 153, .15))}.themed-datepicker-wrap.finance-control{border:none!important;padding:0!important;background:transparent!important;height:auto!important;box-shadow:none!important}.themed-datepicker-wrap.finance-control .themed-datepicker-input{height:42px;border-radius:10px;border:1px solid #cbd5e1;font-size:13px;padding-left:12px;padding-right:64px;background-color:#fff;color:#0f172a;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.themed-datepicker-wrap.finance-control .themed-datepicker-input:focus{outline:none;border-color:var(--color-primary, #ec4899);box-shadow:0 0 0 2px var(--color-primary-soft, rgba(236, 72, 153, .15))}textarea.finance-control,.finance-modal textarea,.finance-card textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;color:#0f172a;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:8px 12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease;height:auto;min-height:68px;resize:vertical;line-height:1.5}textarea.finance-control:focus,.finance-modal textarea:focus,.finance-card textarea:focus{border-color:var(--color-primary, #ec4899);box-shadow:0 0 0 2px var(--color-primary-soft, rgba(236, 72, 153, .15))}.finance-modal label,.finance-card label{display:block;font-size:12px;font-weight:700;color:#334155;margin-bottom:4px}.finance-checkbox-field{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;margin:6px 0!important;padding:0!important}.finance-checkbox-field input[type=checkbox],.finance-modal .finance-checkbox-field input[type=checkbox],.finance-card .finance-checkbox-field input[type=checkbox]{width:16px!important;height:16px!important;border-radius:4px!important;accent-color:var(--color-primary, #6366f1)!important;cursor:pointer!important;margin:0!important;flex-shrink:0!important}.finance-checkbox-field label,.finance-modal .finance-checkbox-field label,.finance-card .finance-checkbox-field label{display:inline!important;font-size:13px!important;font-weight:500!important;color:#334155!important;cursor:pointer!important;margin:0!important;line-height:1.4!important;-webkit-user-select:none;user-select:none}.finance-modal__footer button:not(.finance-btn-primary):not([data-testid=save-cell-btn]):not([data-testid=preview-issue-btn]),.finance-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 18px;font-size:13px;font-weight:600;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;transition:all .15s ease}.finance-modal__footer button:not(.finance-btn-primary):not([data-testid=save-cell-btn]):not([data-testid=preview-issue-btn]):hover,.finance-btn-secondary:hover{background:#f8fafc;border-color:#94a3b8;color:#0f172a}.finance-modal__footer .finance-btn-primary,.finance-modal__footer button[data-testid=save-cell-btn],.finance-modal__footer button[type=submit]{height:40px;padding:0 18px;font-size:13px;border-radius:10px;background-color:var(--color-primary, #ec4899)!important;color:#fff!important;border:none!important}.finance-modal__footer .finance-btn-primary:disabled,.finance-modal__footer button:disabled{opacity:.65!important;background-color:#94a3b8!important;color:#fff!important;cursor:not-allowed!important;box-shadow:none!important;transform:none!important}.finance-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);padding:16px 20px;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05))}.finance-empty-state{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);padding:48px 24px;text-align:center;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05));display:flex;flex-direction:column;align-items:center;justify-content:center}.finance-empty-state__icon{margin-bottom:12px;color:#94a3b8;opacity:.6}.finance-empty-state__title{font-size:15px;font-weight:700;color:var(--color-text, #1e293b);margin:0 0 6px}.finance-empty-state__desc{font-size:13px;color:var(--color-text-muted, #64748b);max-width:440px;margin:0 0 16px;line-height:1.5}.finance-draft-header-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);padding:16px 20px;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .05))}.finance-draft-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.finance-draft-title-row{display:flex;align-items:center;gap:12px;flex:1 1 340px;min-width:0}.finance-draft-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg, 12px);background:var(--color-primary-light, #f0edfe);color:var(--color-primary, #6c5ce7);flex-shrink:0}.finance-draft-title-group{display:flex;flex-direction:column;gap:3px;min-width:0}.finance-draft-heading-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.finance-draft-title{font-size:16px;font-weight:700;color:#0f172a;margin:0;line-height:1.3}.finance-draft-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;background:var(--color-primary-light, #f0edfe);color:var(--color-primary-dark, #3f2e96);white-space:nowrap}.finance-draft-desc{font-size:12px;color:#64748b;margin:0;line-height:1.4}.finance-draft-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.finance-draft-filters{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid #f1f5f9}.finance-filter-group{display:flex;align-items:center;gap:8px}.finance-filter-label{font-size:12px;font-weight:600;color:#475569;white-space:nowrap}.finance-filter-select,.finance-filter-input{height:36px;padding:6px 12px;font-size:13px;border:1px solid #cbd5e1;border-radius:var(--radius-md, 8px);background:#fff;color:#1e293b;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.finance-filter-select:focus,.finance-filter-input:focus{outline:none;border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 3px #6c5ce726}.finance-draft-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}.finance-draft-kpi-item{background:var(--color-background-soft, #faf8ff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-lg, 12px);padding:14px 16px;min-height:104px;display:flex;flex-direction:column;justify-content:flex-start;gap:6px;box-sizing:border-box}.finance-draft-kpi-item--primary{background:var(--color-primary-light, #ecfdf5)!important;border-color:var(--color-primary-border, #a7f3d0)!important}.finance-draft-kpi-item--primary .finance-draft-kpi-label,.finance-draft-kpi-item--primary .finance-draft-kpi-value{color:var(--color-primary-dark, #065f46)!important}.finance-draft-kpi-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin:0;line-height:1.2}.finance-draft-kpi-value{font-size:20px;font-weight:800;color:#0f172a;margin:0;font-variant-numeric:tabular-nums;line-height:1.25}.finance-draft-kpi-status{display:flex;flex-direction:column;gap:3px;margin-top:4px}.finance-draft-kpi-badge{display:inline-flex;align-items:center;align-self:flex-start;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;line-height:1.3}.finance-draft-kpi-badge--warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.finance-draft-kpi-badge--success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.finance-draft-kpi-desc{font-size:11px;color:#b45309;font-weight:500;line-height:1.3}.finance-table__cell-checkbox{width:44px;text-align:center;padding:12px 8px;vertical-align:top}.finance-row-checkbox{width:16px;height:16px;border-radius:4px;accent-color:var(--color-primary, #6366f1);cursor:pointer;margin:0}.finance-table__cell-identity{width:192px;padding:12px 14px;vertical-align:top}.finance-student-identity{display:flex;flex-direction:column;gap:2px;min-width:0}.finance-student-name{font-size:13px;font-weight:700;color:#0f172a;margin:0;line-height:1.3}.finance-student-class{font-size:12px;color:#64748b;margin:0;line-height:1.3}.finance-table__cell-status{width:148px;padding:12px 14px;vertical-align:top}.finance-row-status-wrapper{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.finance-row-status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:9999px;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap}.finance-row-status-badge--warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.finance-row-status-badge--success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.finance-row-warnings{display:flex;flex-direction:column;gap:4px;width:100%}.finance-row-reasons-disclosure{width:100%;margin-top:2px}.finance-row-reasons-summary{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#b45309;cursor:pointer;padding:3px 8px;border-radius:6px;background:#fef3c7;border:1px solid #fde68a;-webkit-user-select:none;user-select:none;transition:all .15s ease;list-style:none}.finance-row-reasons-summary::-webkit-details-marker{display:none}.finance-row-reasons-summary:hover{background:#fde68a;color:#92400e}.finance-row-reasons-summary:focus-visible{outline:2px solid var(--color-primary, #ec4899);outline-offset:1px}.finance-row-reasons-summary .finance-reasons-chevron{transition:transform .2s ease;flex-shrink:0}.finance-row-reasons-disclosure[open] .finance-row-reasons-summary .finance-reasons-chevron{transform:rotate(180deg)}.finance-row-reasons-list{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding-left:2px}.finance-warning-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:#b45309;background:#fffbeb;padding:2px 8px;border-radius:6px;border:1px solid #fef08a;line-height:1.3;word-break:break-word}.finance-table__cell-items{min-width:340px;padding:12px 14px;vertical-align:top}.finance-cells-stack{display:flex;flex-direction:column;gap:8px;width:100%}.finance-cell-card{padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;font-size:12px;transition:all .15s ease}.finance-cell-card--removed{background:#f8fafc;border-color:#cbd5e1;border-left:3px solid #94a3b8}.finance-cell-card--difference{background:#eef2ff;border-color:#c7d2fe}.finance-cell-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.finance-cell-title-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.finance-cell-name{font-weight:600;color:#1e293b}.finance-cell-name--removed{text-decoration:line-through;color:#64748b}.finance-cell-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;line-height:1.3}.finance-cell-badge--removed{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.finance-cell-badge--difference{background:#e0e7ff;color:#3730a3;border:1px solid #c7d2fe}.finance-cell-badge--manual{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.finance-pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--color-background-soft, #faf8ff);border-top:1px solid var(--border-color-card, #e8e6f5);font-size:13px;color:var(--color-text-muted, #64748b);gap:12px;flex-wrap:wrap}.finance-pagination-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.finance-pagination-actions{display:flex;align-items:center;gap:8px}.finance-pagination-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;min-width:34px;padding:0 10px;border-radius:var(--radius-md, 8px);border:1px solid var(--border-color-card, #e2e8f0);background:#fff;color:var(--color-text, #18181b);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.finance-pagination-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.finance-pagination-btn:focus-visible{outline:2px solid var(--color-primary, #ec4899);outline-offset:1px}.finance-pagination-btn:disabled{opacity:.45;cursor:not-allowed;background:#f8fafc;color:#94a3b8}.finance-pagination-page-indicator{font-weight:700;color:#1e293b;font-size:13px;padding:0 4px}.finance-cell-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#475569;cursor:pointer;transition:all .15s ease}.finance-cell-edit-btn:hover{background:var(--bg-hover-subtle, #fdf2f8);border-color:var(--color-primary, #ec4899);color:var(--color-primary-dark, #be185d)}.finance-cell-edit-btn:focus-visible{outline:none;border-color:var(--color-primary, #ec4899);box-shadow:0 0 0 2px var(--color-primary-soft, rgba(236, 72, 153, .2))}.finance-cell-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;font-size:11px;color:#475569;margin-top:4px;padding-top:4px;border-top:1px dashed #e2e8f0}.finance-cell-meta-label{color:#94a3b8}.finance-cell-system,.finance-cell-applied{line-height:1.4}.finance-cell-undo-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:6px;padding-top:4px;border-top:1px solid #e2e8f0}.finance-cell-undo-label{font-size:10px;color:#64748b;font-weight:500}.finance-cell-undo-btn{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 6px;font-size:10px;font-weight:600;border-radius:4px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;transition:all .15s ease}.finance-cell-undo-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.finance-cell-reason{font-size:10px;color:#64748b;font-style:italic;margin-top:3px}.finance-table__cell-total{width:160px;padding:12px 14px;vertical-align:top;text-align:center!important}.finance-student-total-wrapper{text-align:center!important}.finance-student-total{font-family:inherit;font-size:14px;font-weight:700;color:#0f172a;margin:0}.finance-student-total--pending{color:#b45309}.finance-student-total-sub{font-size:10px;color:#b45309;margin:2px 0 0}.finance-table__cell-actions{width:116px;padding:12px 8px;vertical-align:top;text-align:center}.finance-row-actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%}.finance-row-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:28px;width:100%;max-width:124px;padding:0 8px;border-radius:6px;border:1px dashed var(--border-color-card, #cbd5e1);background:#fff;color:#475569;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.finance-row-add-btn:hover{background:var(--color-primary-light, #ecfdf5);border-color:var(--color-primary, #10b981);color:var(--color-primary-dark, #065f46)}.finance-row-add-btn:focus-visible{outline:none;border-color:var(--color-primary, #10b981);box-shadow:0 0 0 2px #10b98133}.finance-row-review-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;width:100%;max-width:124px;padding:0 8px;border-radius:6px;border:1px solid #fcd34d;background:#fffbeb;color:#b45309;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.finance-row-review-btn:hover{background:#fef3c7;border-color:#f59e0b;color:#92400e}.finance-row-review-btn:focus-visible{outline:none;border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.finance-row-approve-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;width:100%;max-width:124px;padding:0 8px;border-radius:6px;border:1px solid #a7f3d0;background:#ecfdf5;color:#047857;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.finance-row-approve-btn:hover{background:#d1fae5;border-color:#10b981;color:#065f46}.finance-row-approve-btn:focus-visible{outline:none;border-color:#10b981;box-shadow:0 0 0 2px #10b98133}.finance-btn-action-ghost{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 12px;border-radius:6px;font-size:11px;font-weight:600;border:1px solid var(--color-primary-border, #cbd5e1);background:var(--surface-card, #ffffff);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));cursor:pointer;white-space:nowrap;transition:all .15s ease}.finance-btn-action-ghost svg{stroke:currentColor}.finance-btn-action-ghost:hover{background:var(--color-primary-subtle, #f8fafc);border-color:var(--color-primary, #6c5ce7);color:var(--color-primary, #6c5ce7)}.finance-btn-action-ghost:focus-visible{outline:none;border-color:var(--color-primary, #ec4899);box-shadow:0 0 0 2px var(--color-primary-soft, rgba(236, 72, 153, .2))}.finance-btn-download{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;padding:0 10px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.finance-btn-download:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.finance-btn-download:disabled{opacity:.6;cursor:not-allowed}.finance-btn-download--sm{height:26px;padding:0 8px;font-size:10px}.finance-batch-progress{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:#0369a1;background:#f0f9ff;padding:4px 10px;border-radius:6px;border:1px solid #bae6fd}@media(max-width:640px){.finance-draft-toolbar{flex-direction:column;align-items:stretch;gap:12px}.finance-draft-title-row{flex:1 1 100%}.finance-draft-actions{width:100%;justify-content:flex-start}.finance-draft-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.finance-filter-group{flex-direction:column;align-items:stretch;gap:4px}.finance-filter-select,.finance-filter-input{width:100%}}@media(max-width:480px){.finance-draft-filters{grid-template-columns:1fr}.month-closure-card{padding:8px 12px}.month-closure-card__main{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.month-closure-card__info{gap:8px;min-width:0}.month-closure-card__icon{width:28px;height:28px}.month-closure-card__title{font-size:12px;gap:4px}.month-closure-card__badge{padding:1px 6px;font-size:9px}.month-closure-card__desc{font-size:10px;max-width:175px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-closure-card__actions{flex-shrink:0}.month-closure-card__btn{padding:4px 8px;font-size:11px;gap:4px}.finance-toolbar{padding:10px 12px;gap:10px}.finance-toolbar__filters{display:flex;flex-wrap:wrap;align-items:center;width:100%;gap:8px}.finance-toolbar__group{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.finance-toolbar__select,.finance-toolbar__input{width:100%;height:34px;padding:0 8px;font-size:12px;box-sizing:border-box}.finance-tabs-bar{gap:4px;padding:4px}.finance-tab-btn{padding:6px 12px;font-size:12px}}@media(max-width:360px){.finance-page-container,.reports-page-container{gap:10px;padding:8px}.month-closure-card{padding:8px 10px}.month-closure-card__main{flex-direction:column;align-items:flex-start;gap:6px}.month-closure-card__info{width:100%;gap:6px}.month-closure-card__content{min-width:0;flex:1 1 auto}.month-closure-card__title{font-size:11px;flex-wrap:nowrap;white-space:nowrap;gap:4px;line-height:1.2}.month-closure-card__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-closure-card__desc{display:none}.finance-toolbar{padding:8px;gap:8px}.finance-tabs-bar{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scrollbar-width:none;gap:4px;padding:3px}.finance-tabs-bar::-webkit-scrollbar{display:none}.finance-tab-btn{flex-shrink:0;white-space:nowrap;padding:6px 10px;font-size:11px;gap:4px}.finance-kpi-card{padding:10px 12px;min-height:84px}.finance-kpi-card__value{font-size:18px}.finance-modal{margin:8px;max-width:calc(100vw - 16px)!important}.finance-modal__header{padding:14px 16px}.finance-modal__header-title-wrap{gap:8px}.finance-modal__header-icon{width:32px;height:32px}.finance-modal__header-icon svg{width:16px;height:16px}.finance-modal__title{font-size:14px;line-height:1.25}.finance-modal__subtitle{font-size:11px;margin-top:2px}.finance-modal__body{padding:14px 16px;gap:12px}.finance-modal__footer{padding:12px 16px}}.finance-modal--review{max-width:820px}.finance-review-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%}@media(max-width:640px){.finance-review-kpis{grid-template-columns:repeat(2,1fr);gap:8px}}.finance-review-kpi-card{padding:12px 14px;border-radius:var(--radius-xl, 14px);background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 2px #0000000a;transition:all .2s ease}.finance-review-kpi-label{font-size:11px;font-weight:500;color:#64748b;line-height:1.2}.finance-review-kpi-value{font-size:15px;font-weight:700;color:#1e293b;line-height:1.3}.finance-review-kpi-value--total{color:#0f172a}.finance-review-kpi-value--unresolved{color:#d97706}.finance-review-kpi-value--confirmed{color:#059669}.finance-review-kpi-value--removed{color:#64748b}.finance-review-table-wrapper{border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-xl, 14px);overflow-x:auto;background:#fff;width:100%;box-shadow:0 1px 2px #00000008}.finance-review-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.finance-review-table thead th,.finance-review-th{background:var(--table-header-bg, var(--color-sidebar-gradient, linear-gradient(180deg, #6c5ce7 0%, #5848c2 100%)))!important;color:var(--table-header-color, var(--text-on-sidebar, #ffffff))!important;font-weight:700;padding:10px 14px;border-bottom:2px solid var(--table-header-border, rgba(255, 255, 255, .2))!important;border-right:1px solid var(--table-header-separator, #ffffff)!important;box-shadow:var(--table-header-shadow, 0 2px 4px rgba(0, 0, 0, .1))!important;font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:center!important;vertical-align:middle!important}.finance-review-th--actions{text-align:right}.finance-review-row{border-bottom:1px solid #f1f5f9;transition:background-color .15s ease}.finance-review-row:last-child{border-bottom:none}.finance-review-row--unresolved{background-color:#fffbeb}.finance-review-row--unresolved:hover{background-color:#fef3c7}.finance-review-td{padding:10px 14px;vertical-align:middle;color:#1e293b}.finance-review-cell-name{font-weight:600;color:#0f172a}.finance-review-cell-system{color:#64748b}.finance-review-cell-applied{font-family:inherit;font-weight:600;color:#1e293b}.finance-review-cell-actions{text-align:right}.finance-review-actions-group{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.finance-btn-confirm{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:11px;font-weight:600;color:#065f46;background-color:#ecfdf5;border:1px solid #a7f3d0;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease;white-space:nowrap}.finance-btn-confirm:hover:not(:disabled){background-color:#d1fae5;border-color:#6ee7b7;color:#047857}.finance-btn-confirm:disabled{opacity:.5;cursor:not-allowed}.finance-btn-edit-cell{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:11px;font-weight:600;color:#334155;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease;white-space:nowrap}.finance-btn-edit-cell:hover:not(:disabled){background-color:#e2e8f0;color:#0f172a}.finance-btn-remove-cell{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:11px;font-weight:600;color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease;white-space:nowrap}.finance-btn-remove-cell:hover:not(:disabled){background-color:#fee2e2;border-color:#fca5a5;color:#7f1d1d}.finance-btn-undo-field{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;font-size:11px;font-weight:500;color:#475569;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease;white-space:nowrap}.finance-btn-undo-field:hover:not(:disabled){background-color:#f1f5f9;border-color:#cbd5e1;color:#1e293b}.finance-review-guidance{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius-xl, 14px);font-size:12px;line-height:1.5}.finance-review-guidance--warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.finance-review-guidance--success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.finance-review-guidance__icon{flex-shrink:0;margin-top:1px}.finance-review-footer-status{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.finance-issuance-success-panel{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:24px;background:linear-gradient(180deg,#ecfdf5,#f0fdf4);border:1px solid #a7f3d0;border-radius:var(--radius-2xl, 20px);box-shadow:0 2px 8px #10b98114}.finance-success-icon-badge{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background-color:#d1fae5;color:#059669;box-shadow:0 2px 6px #05966933}.finance-success-title{font-size:17px;font-weight:700;color:#064e3b;margin:0}.finance-success-prose{font-size:13px;color:#047857;max-width:480px;margin:0 auto;line-height:1.5}.finance-issued-invoices-list{display:flex;flex-direction:column;gap:8px;width:100%;max-height:240px;overflow-y:auto;padding:6px;background:#fff;border:1px solid #a7f3d0;border-radius:var(--radius-xl, 14px)}.finance-issued-invoice-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-lg, 10px);transition:all .15s ease}.finance-issued-invoice-card:hover{background:#f1f5f9;border-color:#cbd5e1}.finance-issued-invoice-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.finance-issued-invoice-code{font-family:inherit;font-size:13px;font-weight:700;color:#0f172a}.finance-issued-invoice-amount{font-family:inherit;font-size:13px;font-weight:700;color:#059669}.finance-issued-invoice-actions{display:flex;align-items:center;gap:8px}.finance-invoice-action31{margin-bottom:18px}.finance-btn-collect31{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--pastel-green-border);border-radius:var(--radius-xs);background:var(--pastel-green-gradient);color:var(--pastel-green-text);box-shadow:var(--shadow-raised-sm);font:inherit;font-size:12px;font-weight:600;transition:transform var(--transition-bounce),box-shadow var(--transition-bounce)}.finance-btn-download{background:var(--pastel-blue-gradient);color:var(--pastel-blue-text);border-color:var(--pastel-blue-border);box-shadow:var(--shadow-raised-sm)}.finance-btn-download svg{color:inherit!important}.finance-btn-collect31 svg,.finance-btn-download svg{filter:drop-shadow(0 1px 1px var(--surface-card))}@media(hover:hover)and (pointer:fine){html[data-spring-bounce=on]:not([data-theme-motion=reduced]) .finance-btn-collect31:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-raised-hover)}}.finance-btn-collect31:disabled,.finance-btn-download:disabled{box-shadow:none;transform:none!important;opacity:.5}html[data-spring-bounce=off] .finance-btn-collect31,html[data-theme-motion=reduced] .finance-btn-collect31,html[data-spring-bounce=off] .finance-btn-download,html[data-theme-motion=reduced] .finance-btn-download{transform:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.finance-btn-collect31,.finance-btn-download{transform:none!important;transition:none!important}}@media(hover:hover)and (pointer:fine){.finance-btn-download:hover:not(:disabled){background:var(--pastel-blue-gradient);color:var(--pastel-blue-text);border-color:var(--pastel-blue-border);box-shadow:var(--shadow-raised-hover)}html[data-spring-bounce=on]:not([data-theme-motion=reduced]) .finance-btn-download:hover:not(:disabled){transform:translateY(-2px)}}.finance-notice-action32{width:90px!important;height:26px!important;min-height:26px!important;padding:0 8px!important;gap:5px!important;box-sizing:border-box;font-size:10px!important;justify-content:center;align-items:center}.finance-notice-action32 svg{width:12px!important;height:12px!important}.finance-draft-actions>small{flex-basis:100%;color:var(--color-text-muted);font-size:11px}.finance-issue-details32{padding:10px;border:1px solid var(--border-color-card);border-radius:var(--radius-xs)}.finance-catalog33{width:max-content;min-width:100%;table-layout:auto}.finance-catalog33 th,.finance-catalog33 td{white-space:nowrap;padding:8px 12px}.finance-catalog33 td:last-child>div{display:flex;flex-wrap:nowrap;gap:8px}.finance-table-card,.finance-table-responsive{min-width:0;max-width:100%}.finance-table-responsive{overflow-x:auto}.finance-notice-action32{width:132px!important}.finance-payment33{display:flex;flex-direction:column;gap:16px;padding:20px}.finance-payment-summary33>div{display:flex;justify-content:space-between;gap:16px;padding:4px 0}.finance-payment-summary33>div>:last-child{text-align:right;overflow-wrap:anywhere}.finance-payment33 .finance-field{display:flex;flex-direction:column;gap:6px}.finance-payment33 .finance-modal__footer{margin-top:18px;gap:10px}@media(max-width:480px){.finance-payment33{padding:16px}.finance-payment33 .finance-field-grid{grid-template-columns:1fr}}.finance-catalog33 td:nth-child(3)>div{display:inline}.finance-catalog33 td:nth-child(3)>div+div:before{content:" · "}.finance-payment33 form{display:flex;flex-direction:column;gap:14px}.finance-payment33 .finance-modal__header{padding:14px;border-radius:12px}.finance-payment33 .finance-modal__header>div{display:flex;align-items:center;gap:12px}.finance-payment33 .finance-modal__header h3{margin:0;font-size:16px}.finance-payment33 .finance-modal__header p{margin:4px 0 0;font-size:12px}.finance-payment33 .finance-modal__footer{margin:4px 0 0;padding:14px 0 0}.finance-payment33{overflow-y:auto}.finance-payment33>*{flex-shrink:0}.finance-edit35{max-height:90vh;display:flex;flex-direction:column}.finance-edit35 .finance-modal__body{overflow-y:auto;min-height:0}.finance-edit35 .finance-modal__header,.finance-edit35 .finance-modal__footer{flex-shrink:0}.finance-error35,.finance-review-guidance--warning{white-space:pre-line;overflow-wrap:anywhere}.finance-alert-banner--danger .text-sm{white-space:pre-line}.finance-steps37{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.finance-step37{position:relative;display:flex;gap:7px;align-items:center;min-height:38px}.finance-step37+.finance-step37:before{content:"→";position:absolute;left:-12px;color:var(--color-text-muted)}.finance-step37__badge{display:inline-flex;justify-content:center;align-items:center;width:22px;height:22px;border-radius:50%;border:1px solid currentColor}.finance-step37__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.finance-step37[aria-current=step]{outline:2px solid var(--color-primary,#7864d9);outline-offset:2px}@media(max-width:600px){.finance-steps37{flex-direction:column;align-items:stretch}.finance-step37+.finance-step37:before{content:none}.finance-step37{justify-content:flex-start}}.finance-draft-toolbar:has(.finance-steps37){flex-direction:column;align-items:stretch}.finance-draft-toolbar:has(.finance-steps37)>:first-child{align-self:flex-start}.finance-steps37{justify-content:center;width:100%;box-sizing:border-box;padding:8px;overflow:visible}.finance-steps37>small{text-align:center}.finance-step37--complete{background:var(--primary-surface,var(--color-primary-gradient))!important;color:var(--text-on-primary,var(--color-text-on-primary))!important;border:1px solid color-mix(in srgb,var(--color-primary) 70%,black)!important;box-shadow:0 4px color-mix(in srgb,var(--color-primary) 65%,black),0 8px 22px color-mix(in srgb,var(--color-primary) 30%,transparent),inset 0 1.5px 2px #fff6}.finance-step38__icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:8px;background:#ffffff24;box-shadow:0 2px 2px #00000018,inset 0 1px 1px #fff6;color:inherit}.finance-catalog-footer38{text-align:center;padding:14px!important}@media(hover:hover)and (pointer:fine){[data-spring-bounce=on] .finance-step37:hover:not(:disabled){transform:translateY(var(--motion-distance,-4px)) scale(var(--motion-scale,1.025))}}[data-spring-bounce=off] .finance-step37:hover:not(:disabled),[data-theme-motion=reduced] .finance-step37:hover:not(:disabled){transform:none!important}@media(prefers-reduced-motion:reduce){.finance-step37{transition:none!important}.finance-step37:hover:not(:disabled){transform:none!important}}@media(max-width:600px){.finance-steps37{align-items:center}.finance-step37{width:100%;max-width:360px}}[data-spring-bounce=off] .finance-step37,[data-theme-motion=reduced] .finance-step37{transition:none!important;transform:none!important}.finance-step37:disabled{transform:none!important}.finance-draft-toolbar:has(.finance-steps37){justify-content:flex-start}.finance-draft-toolbar:has(.finance-steps37)>.finance-draft-title-row{flex:0 1 auto}.finance-issuance40{display:flex;flex-direction:column;max-height:90vh}.finance-issuance40 .finance-modal__body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;min-height:0;padding:20px}.finance-issuance40 .finance-modal__header,.finance-issuance40 .finance-modal__footer{flex-shrink:0}.finance-issuance40 .finance-modal__footer{display:flex;justify-content:space-between;gap:12px;padding:16px 20px}@media(max-width:600px){.finance-issuance40 .finance-modal__body{padding:14px;gap:12px}.finance-issuance40 .finance-modal__footer{padding:14px;flex-wrap:wrap}}.finance-paid42{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--primary-surface,var(--color-primary-gradient));background-image:linear-gradient(180deg,#ffffff26,#00000008);color:var(--text-on-primary,#fff);border:1px solid var(--color-primary);border-radius:var(--radius-xs);box-shadow:0 3px color-mix(in srgb,var(--color-primary) 65%,black),inset 0 1px 1px #ffffff70;font-weight:600}.finance-replacements42{border:1px solid var(--color-primary);border-radius:12px;padding:12px}.finance-replacements42 h4{display:flex;gap:8px;align-items:center;margin:0 0 10px;color:var(--color-primary)}.finance-replacements42>div{max-height:240px;overflow-y:auto}.finance-replacement42{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border-color-card)}.finance-replacement42 small{display:block;color:var(--color-text-muted)}.finance-replacement42__money{display:grid;grid-template-columns:minmax(90px,1fr) 16px minmax(90px,1fr);gap:8px;align-items:center;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}@media(max-width:600px){.finance-replacement42{flex-direction:column}.finance-replacement42__money{grid-template-columns:1fr 16px 1fr}}.finance-row-review-btn.finance-row-review43--ready{display:inline-flex;align-items:center;gap:6px;background:var(--pastel-green-gradient);color:var(--pastel-green-text);border-color:var(--pastel-green-border);box-shadow:var(--shadow-raised-sm)}.finance-info43{display:block;font-size:11px;color:var(--color-text-muted);padding:4px 0}.finance-issuance40{font-family:inherit;color:var(--color-text)}.finance-issuance40 .finance-modal__header{background:var(--surface-card);border-bottom:1px solid var(--border-color-card);padding:20px}.finance-issuance40 .finance-modal__header-icon{background:var(--primary-surface,var(--color-primary));color:var(--text-on-primary,#fff);box-shadow:var(--shadow-raised-sm);border:1px solid color-mix(in srgb,var(--color-primary) 65%,transparent)}.finance-issuance40 .finance-modal__title{font-family:inherit;font-size:18px;line-height:1.4}.finance-issuance40 .finance-modal__subtitle{color:var(--color-text-muted);line-height:1.5;margin-top:4px}.finance-issuance40 .finance-issue-context44{padding:14px;gap:16px;border:1px solid var(--border-color-card);border-radius:12px;background:var(--surface-card);align-items:start}.finance-issuance40 .finance-label{font-size:12px;font-weight:600;color:var(--color-text-muted);margin-bottom:8px;display:block}.finance-issuance40 .finance-issue-scope44{margin:0;font:inherit;font-size:13px;line-height:1.6;padding:8px 0}.finance-issuance40 .finance-issue-preview44{display:flex;flex-direction:column;gap:20px;min-width:0}.finance-issuance40 .finance-issuance-stats{gap:12px;margin:0}.finance-issuance40 .finance-issuance-stat-card{min-width:0;padding:14px;border:1px solid color-mix(in srgb,var(--color-primary) 22%,var(--border-color-card));background:color-mix(in srgb,var(--color-primary) 5%,var(--surface-card));box-shadow:var(--shadow-raised-sm);border-radius:12px}.finance-issuance40 .finance-issuance-stat-card__label{display:flex;align-items:center;gap:8px;font:inherit;font-size:11px;font-weight:600;line-height:1.4;color:var(--color-text-muted);text-transform:none;letter-spacing:normal}.finance-issuance40 .finance-issuance-stat-card__label svg,.finance-issuance40 .finance-replacements42 h4 svg,.finance-issuance40 .finance-issue-details32 summary svg{flex-shrink:0;box-sizing:content-box;padding:6px;border-radius:8px;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--surface-card));box-shadow:var(--shadow-raised-sm)}.finance-issuance40 .finance-issuance-stat-card__value{font-family:inherit;font-size:18px;font-weight:700;line-height:1.4;margin:12px 0 0;color:var(--color-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.finance-issuance40 .finance-issue-state44{font:inherit;font-size:12px;font-weight:600;line-height:1.5;margin:12px 0 0}.finance-issuance40 .finance-replacements42,.finance-issuance40 .finance-issue-details32{padding:16px;border:1px solid var(--border-color-card);border-radius:12px;background:var(--surface-card)}.finance-issuance40 .finance-replacements42 h4{font-size:14px;line-height:1.5;margin:0 0 14px}.finance-issuance40 .finance-replacement42{padding:12px 0;font-size:12px;line-height:1.5}.finance-issuance40 .finance-replacement42 small{margin-top:4px}.finance-issuance40 .finance-issue-details32 summary{display:flex;align-items:center;gap:10px;cursor:pointer;font:inherit;font-size:14px;font-weight:600;line-height:1.5;color:var(--color-primary)}.finance-issuance40 .finance-issue-details32 summary:after{content:"+";margin-left:auto;font-size:18px}.finance-issuance40 .finance-issue-details32[open] summary:after{content:"−"}.finance-issuance40 .finance-issue-details32 summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:6px}.finance-issuance40 .finance-issue-students44{display:flex;flex-direction:column;gap:12px;margin-top:16px}.finance-issuance40 .finance-issue-student44{border-top:1px solid var(--border-color-card);padding-top:14px;min-width:0}.finance-issuance40 .finance-issue-student44 header{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.5}.finance-issuance40 .finance-issue-student44 ul{list-style:none;margin:10px 0 0;padding:0 0 0 12px;border-left:2px solid color-mix(in srgb,var(--color-primary) 20%,transparent)}.finance-issuance40 .finance-issue-student44 li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:12px;line-height:1.5;color:var(--color-text-muted)}.finance-issuance40 .finance-issue-money44{white-space:nowrap;font-family:inherit;font-variant-numeric:tabular-nums}.finance-issuance40 .finance-issue-student44 header>:first-child,.finance-issuance40 .finance-issue-student44 li>:first-child{overflow-wrap:anywhere;min-width:0}@media(max-width:600px){.finance-issuance40 .finance-modal__header{padding:16px}.finance-issuance40 .finance-issue-context44{grid-template-columns:1fr;padding:12px}.finance-issuance40 .finance-issue-preview44{gap:16px}.finance-issuance40 .finance-issuance-stats{grid-template-columns:1fr}.finance-issuance40 .finance-replacements42,.finance-issuance40 .finance-issue-details32{padding:12px}.finance-issuance40 .finance-issue-student44 header{flex-direction:column;gap:4px}}.assessment-page-container{display:flex;flex-direction:column;gap:var(--space-5, 20px);padding:var(--space-5, 20px);max-width:1400px;margin:0 auto;min-height:100vh;box-sizing:border-box}@media(max-width:768px){.assessment-page-container{padding:var(--space-3, 12px);gap:var(--space-4, 16px)}}.assessment-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:var(--radius-xl, 14px);font-size:13px;line-height:1.5;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.assessment-alert-banner--readonly{background:var(--pastel-yellow-bg, #fef3c7);border:1px solid var(--pastel-yellow-border, #fde68a);color:var(--pastel-yellow-text, #b45309)}.assessment-alert-banner--conflict{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.assessment-alert-banner--finalized{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.assessment-alert-banner__content{display:flex;align-items:center;gap:10px;flex:1}.assessment-toolbar-card{background:var(--surface-card, var(--bg-card, #ffffff));border:1px solid var(--border-color-card, var(--border-soft, #e2e8f0));border-radius:var(--radius-2xl, 18px);padding:16px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .05))}.assessment-toolbar__group{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.assessment-toolbar__item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary, #475569);font-weight:500}.assessment-select{padding:8px 14px;border-radius:var(--radius-lg, 10px);border:1px solid var(--border-color-card, var(--border-soft, #cbd5e1));background:#f8fafc;color:var(--text-primary, #1e293b);font-size:13.5px;font-weight:500;cursor:pointer;transition:all .2s ease}.assessment-select:focus{outline:none;border-color:#8b5cf6;background:#fff;box-shadow:0 0 0 3px #8b5cf626}@media(max-width:768px){.assessment-toolbar-card{flex-direction:column;align-items:stretch;gap:14px;padding:14px 16px}.assessment-toolbar__group{flex-direction:column;align-items:stretch;gap:10px;width:100%}.assessment-toolbar__item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px}.assessment-toolbar__item .assessment-select{flex:1;min-width:0;width:100%}.assessment-finalize-btn{width:100%;justify-content:center}}.assessment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px}@media(max-width:480px){.assessment-grid{grid-template-columns:1fr}}.assessment-student-card{background:var(--surface-card, var(--bg-card, #ffffff));border:1px solid var(--border-color-card, var(--border-soft, #e2e8f0));border-radius:var(--radius-xl, 16px);padding:18px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .04));display:flex;flex-direction:column;gap:14px;transition:transform .2s ease,box-shadow .2s ease}.assessment-student-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md, 0 6px 12px rgba(0, 0, 0, .06))}.assessment-student-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f5f9;padding-bottom:10px}.assessment-student-name{font-size:14px;font-weight:700;color:var(--text-primary, #0f172a)}.assessment-criteria-list{display:flex;flex-direction:column;gap:12px}.assessment-criterion-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#f8fafc;border-radius:var(--radius-md, 10px);border:1px solid #f1f5f9}.assessment-criterion-title{font-size:13px;font-weight:500;color:var(--text-secondary, #334155)}.assessment-rating-buttons{display:flex;gap:8px}.assessment-rating-btn{flex:1;padding:6px 10px;font-size:12px;font-weight:600;border-radius:var(--radius-sm, 6px);border:1px solid var(--border-soft, #cbd5e1);background:#fff;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .15s ease}.assessment-rating-btn:hover:not(:disabled){background:#f1f5f9}.assessment-rating-btn--active-dat{background:#dcfce7!important;color:#15803d!important;border-color:#86efac!important}.assessment-rating-btn--active-chuadat{background:#fee2e2!important;color:#b91c1c!important;border-color:#fca5a5!important}.assessment-rating-btn--active-cancogang{background:#fef3c7!important;color:#b45309!important;border-color:#fcd34d!important}.assessment-rating-btn:disabled{opacity:.7;cursor:not-allowed}.assessment-note-input{width:100%;padding:6px 10px;font-size:12px;border-radius:var(--radius-sm, 6px);border:1px solid #e2e8f0;background:#fff;box-sizing:border-box}.assessment-note-input:focus{outline:none;border-color:#8b5cf6}.assessment-empty-state{text-align:center;padding:60px 20px;background:var(--bg-card, #ffffff);border-radius:var(--radius-2xl, 18px);border:1px dashed var(--border-soft, #cbd5e1);color:var(--text-muted, #64748b);display:flex;flex-direction:column;align-items:center;gap:12px}.assessment-loading-spinner{display:flex;justify-content:center;align-items:center;padding:80px 20px;color:#8b5cf6}.assessment-page-tabs{display:flex;gap:8px;background:#f1f5f9;padding:4px;border-radius:var(--radius-xl, 14px);width:fit-content}.assessment-page-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;color:#64748b;border:none;background:transparent;border-radius:var(--radius-lg, 10px);cursor:pointer;transition:all .15s ease}.assessment-page-tab-btn:hover{color:#1e293b}.assessment-page-tab-btn--active{background:var(--surface-card);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));box-shadow:0 1px 3px #00000014}.assessment-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--surface-card);background-color:var(--color-primary);border:none;border-radius:var(--radius-lg, 10px);cursor:pointer;transition:all .15s ease}.assessment-btn-primary:hover:not(:disabled){background-color:var(--color-primary)}.assessment-btn-primary:disabled{opacity:.6;cursor:not-allowed}.assessment-btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:500;color:#334155;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all .15s ease}.assessment-btn-secondary:hover:not(:disabled){background-color:#e2e8f0;color:#0f172a}.assessment-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.assessment-alert-box{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-xl, 14px);font-size:13px;line-height:1.5}.assessment-alert-box--warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.assessment-alert-box--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.assessment-alert-box--success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.daily-journal-container{display:flex;flex-direction:column;gap:16px;width:100%}.daily-journal-toolbar{background:var(--surface-card, var(--surface-card));border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-2xl, 18px);padding:14px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .05))}.daily-journal-picker{display:flex;align-items:center;gap:8px}.daily-journal-picker__label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#475569}.daily-journal-summary-badge{display:inline-flex;align-items:center;padding:6px 12px;background:#f5f3ff;border:1px solid #ddd6fe;color:var(--color-primary);border-radius:var(--radius-lg, 10px);font-size:12.5px}.daily-journal-workspace{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start}@media(max-width:860px){.daily-journal-workspace{grid-template-columns:1fr}}.daily-journal-roster{background:var(--surface-card);border:1px solid #e2e8f0;border-radius:var(--radius-xl, 16px);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.daily-journal-roster__header{padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.daily-journal-roster__header h4{margin:0;font-size:13px;font-weight:700;color:#334155}.daily-journal-roster__list{display:flex;flex-direction:column;max-height:640px;overflow-y:auto}.daily-roster-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border:none;background:var(--surface-card);border-bottom:1px solid #f1f5f9;cursor:pointer;text-align:left;transition:all .12s ease;width:100%}.daily-roster-item:hover{background:#f8fafc}.daily-roster-item--active{background:#f5f3ff!important;border-left:3px solid var(--color-primary)}.daily-roster-item__info{display:flex;align-items:center;gap:8px;min-width:0}.daily-roster-item__index{font-size:11px;color:#94a3b8;font-family:inherit}.daily-roster-item__name{font-size:13px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-roster-item__badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap}.daily-roster-item__badge--saved{background:#dcfce7;color:#166534}.daily-roster-item__badge--pending{background:#f1f5f9;color:#64748b}.daily-journal-editor{background:var(--surface-card);border:1px solid #e2e8f0;border-radius:var(--radius-xl, 16px);padding:20px 24px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .05));display:flex;flex-direction:column}.daily-editor-form{display:flex;flex-direction:column;gap:16px}.daily-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}.daily-editor-title{margin:0;font-size:16px;font-weight:700;color:#0f172a}.daily-editor-title span{color:var(--color-primary)}.daily-editor-subtitle{margin:2px 0 0;font-size:12px;color:#64748b}.daily-editor-nav{display:flex;align-items:center;gap:8px}.daily-form-fields{display:flex;flex-direction:column;gap:14px}.daily-field-group{display:flex;flex-direction:column;gap:6px}.daily-field-group--internal{background:#faf5ff;padding:12px 14px;border-radius:12px;border:1px solid #f3e8ff}.daily-field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;font-weight:600;color:#334155}.daily-field-badge--internal{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:color-mix(in srgb,var(--color-primary) 12%,var(--surface-card));color:var(--color-primary)}.daily-textarea{width:100%;padding:10px 12px;font-size:13px;border-radius:var(--radius-md, 8px);border:1px solid #cbd5e1;background:var(--surface-card);box-sizing:border-box;font-family:inherit;resize:vertical}.daily-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.daily-textarea--internal{background:var(--surface-card);border-color:var(--border-color-card)}.daily-nocomment-option{padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.daily-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none}.daily-capability-notice{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:#64748b;background:#f8fafc;padding:10px 12px;border-radius:8px;border:1px solid #e2e8f0;line-height:1.4}.daily-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid #f1f5f9}.daily-empty-editor{text-align:center;padding:80px 20px;color:#94a3b8;display:flex;flex-direction:column;align-items:center;gap:12px}.assessment-progress-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1050;padding:20px}.assessment-progress-dialog{background:#fff;border-radius:var(--radius-2xl, 20px);width:100%;max-width:780px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg, 0 20px 25px -5px rgba(0, 0, 0, .15))}.assessment-progress-header{padding:16px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.assessment-progress-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.assessment-progress-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.assessment-progress-table th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;padding:8px 12px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;text-transform:uppercase;letter-spacing:.3px}.assessment-progress-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.daily-publication-policy-card{background:var(--surface, var(--surface-card));border:1px solid var(--border, #e2e8f0);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04));overflow:hidden;margin-bottom:var(--space-4, 16px)}.daily-publication-policy-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#f8fafc;border-bottom:1px solid var(--border, #e2e8f0);gap:12px}.daily-publication-policy-title-area{display:flex;align-items:center;gap:12px}.daily-publication-policy-title{margin:0;font-size:14px;font-weight:600;color:var(--text-primary, #0f172a)}.daily-publication-policy-subtitle{margin:2px 0 0;font-size:12px;color:var(--text-secondary, #64748b)}.daily-publication-policy-actions{display:flex;align-items:center;gap:10px}.daily-policy-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:12px;font-weight:500}.daily-policy-status-badge--loading{background:#f1f5f9;color:#64748b}.daily-policy-status-badge--forbidden{background:#fef3c7;color:#b45309}.daily-policy-status-badge--unavailable{background:#fee2e2;color:#b91c1c}.daily-policy-status-badge--configured{background:#dcfce7;color:#166534}.daily-policy-status-badge--unconfigured{background:#f1f5f9;color:#475569}.daily-publication-policy-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px}.daily-policy-notice-banner{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:#f1f5f9;border-radius:8px;font-size:12px;line-height:1.5;color:#334155}.daily-policy-form{display:flex;flex-direction:column;gap:14px}.daily-policy-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.daily-policy-option-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #cbd5e1;border-radius:10px;background:var(--surface-card);cursor:pointer;transition:all .15s ease-in-out}.daily-policy-option-card:hover{border-color:#94a3b8;background:#f8fafc}.daily-policy-option-card--selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--surface-card));box-shadow:0 0 0 1px var(--color-primary)}.daily-policy-option-radio{margin-top:2px}.daily-policy-option-content{display:flex;flex-direction:column;gap:4px}.daily-policy-option-label{font-size:13px;font-weight:600;color:#1e293b}.daily-policy-option-desc{font-size:12px;line-height:1.4;color:#64748b}.daily-policy-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:6px}.daily-policy-pending-retry-banner{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;font-size:13px;color:#92400e}.daily-policy-pending-retry-content{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;flex-wrap:wrap}.daily-photo-manager{margin-top:20px;padding:20px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:18px;box-shadow:var(--shadow-soft-raised, 0 4px 14px rgba(0, 0, 0, .04))}.daily-photo-manager__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.daily-photo-manager__title-wrap{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:260px}.daily-photo-manager__icon-badge{width:40px;height:40px;border-radius:12px;background:var(--color-primary-subtle, #fdf2f8);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px var(--color-primary-subtle, rgba(225, 29, 72, .12))}.daily-photo-manager__title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.daily-photo-manager__title{margin:0;font-size:15px;font-weight:700;color:var(--color-text-title, #27253a)}.daily-photo-manager__count-badge{display:inline-flex;align-items:center;padding:3px 10px;background:var(--surface-input, #f1f5f9);color:var(--color-text-body, #475569);border-radius:9999px;font-size:12px;font-weight:600;border:1px solid var(--border-color-card, #e2e8f0)}.daily-photo-manager__subtitle{margin:4px 0 0;font-size:13px;color:var(--color-text-muted, #7e7a94);line-height:1.45}.daily-photo-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);min-height:40px}.daily-photo-btn--upload{background:var(--color-primary);color:var(--color-text-on-primary, #ffffff);box-shadow:0 3px 8px var(--color-primary-subtle, rgba(225, 29, 72, .25))}.daily-photo-btn--upload:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 5px 12px var(--color-primary-subtle, rgba(225, 29, 72, .35))}.daily-photo-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.daily-photo-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:12px;line-height:1.4}.daily-photo-alert--warning{background:#fffbeb;border:1px solid #fef3c7;color:#92400e}.daily-photo-alert--info{background:#eff6ff;border:1px solid #dbeafe;color:#1e40af}.daily-photo-alert--danger{background:#fef2f2;border:1px solid #fee2e2;color:#991b1b}.daily-photo-alert--neutral{background:#f8fafc;border:1px solid #e2e8f0;color:#475569}.daily-photo-alert__close{background:none;border:none;color:inherit;cursor:pointer;padding:0;margin-left:auto;opacity:.7}.daily-photo-alert__close:hover{opacity:1}.daily-photo-upload-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.daily-photo-upload-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:12px}.daily-photo-upload-item__info{display:flex;align-items:center;gap:6px;min-width:0}.daily-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.daily-photo-empty{grid-column:1 / -1;text-align:center;padding:24px;background:#fafaf9;border:1px dashed #e7e5e4;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.daily-photo-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 6px #00000008}.daily-photo-card:hover{border-color:#cbd5e1;box-shadow:0 8px 20px -4px #00000014;transform:translateY(-2px)}.daily-photo-card__media{position:relative;width:100%;aspect-ratio:1;background:#f8fafc;overflow:hidden;border-bottom:1px solid #f1f5f9}.daily-photo-card__img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;transition:transform .35s ease}.daily-photo-card:hover .daily-photo-card__img{transform:scale(1.04)}.daily-photo-card__placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#94a3b8;font-size:11px}.daily-photo-card__delete-btn{position:absolute;top:8px;right:8px;width:28px!important;height:28px!important;min-height:28px!important;padding:0!important;border-radius:50%!important;background:#ffffffeb!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(0,0,0,.08)!important;color:#64748b!important;display:flex!important;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #0000001f!important;z-index:2}.daily-photo-card__delete-btn:hover:not(:disabled){background:#fee2e2!important;border-color:#fca5a5!important;color:#dc2626!important;transform:scale(1.08)}.daily-photo-overlay-btn{background:#0009;color:var(--surface-card);border:none;border-radius:4px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}.daily-photo-overlay-btn:hover{background:#000000d9}.daily-photo-overlay-btn--danger:hover{background:#dc2626!important}.daily-photo-card__info{padding:10px 10px 12px;display:flex;flex-direction:column;gap:6px;flex:1;justify-content:space-between}.daily-photo-card__name{font-size:12px;font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:1.3}.daily-photo-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.daily-photo-badge--ready{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.daily-photo-badge--pending{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.daily-photo-badge--saving{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.daily-photo-badge--error{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.daily-photo-card__remove-text-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;width:100%;padding:6px 10px!important;font-size:11.5px!important;font-weight:600;border-radius:8px!important;border:1px solid #e2e8f0!important;background:#f8fafc!important;color:#64748b!important;cursor:pointer;transition:all .2s ease;margin-top:4px;min-height:30px!important;box-shadow:none!important}.daily-photo-card__remove-text-btn:hover:not(:disabled){background:#fee2e2!important;border-color:#fca5a5!important;color:#dc2626!important}.daily-photo-card__retry-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;width:100%;padding:6px 10px!important;font-size:11.5px!important;font-weight:600;border-radius:8px!important;border:none!important;background:var(--color-primary)!important;color:var(--color-text-on-primary, #ffffff)!important;cursor:pointer;transition:all .2s ease;margin-top:4px;min-height:30px!important;box-shadow:0 1px 4px var(--color-primary-subtle, rgba(225, 29, 72, .25))!important}.daily-photo-card__retry-btn:hover:not(:disabled){background:var(--color-primary-hover)!important}.daily-photo-dropzone-card{border:2px dashed #cbd5e1!important;border-radius:14px!important;aspect-ratio:1;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;background:#f8fafc!important;cursor:pointer;transition:all .25s ease!important;color:#64748b!important;padding:14px!important;text-align:center;box-shadow:none!important;min-height:unset!important}.daily-photo-dropzone-card:hover:not(:disabled){border-color:var(--color-primary)!important;background:var(--color-primary-subtle, #fdf2f8)!important;color:var(--color-primary)!important;transform:translateY(-2px)}.daily-photo-dropzone-icon{width:40px;height:40px;border-radius:50%;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);display:flex;align-items:center;justify-content:center;color:var(--color-primary);box-shadow:0 2px 6px #0000000a;transition:all .2s ease}.daily-photo-dropzone-card:hover .daily-photo-dropzone-icon{background:var(--color-primary);color:var(--color-text-on-primary, #ffffff);border-color:var(--color-primary);transform:scale(1.1)}.daily-photo-dropzone-text{font-size:13px;font-weight:600;color:inherit}.daily-photo-dropzone-sub{font-size:11px;color:#94a3b8}.daily-photo-modal-img{max-width:100%;max-height:75vh;object-fit:contain;border-radius:12px;display:block;margin:0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.daily-photo-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172abf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.daily-photo-modal-content{background:var(--surface-card);border-radius:12px;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 25px -5px #0000004d}.daily-photo-modal-header{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0}.daily-photo-modal-close{background:none;border:none;color:#64748b;cursor:pointer;padding:4px}.daily-photo-modal-close:hover{color:#0f172a}.daily-photo-modal-body{padding:16px;display:flex;align-items:center;justify-content:center;min-height:250px;background:#0f172a;overflow:auto}.daily-photo-modal-img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:4px}.assessment-composed-page>.assessment-page-tabs{margin:12px 0;gap:8px;flex-wrap:wrap}.assessment-composed-page .assessment-page-tab-btn[aria-selected=true]{background:color-mix(in srgb,var(--color-primary) 12%,var(--surface-card));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));font-weight:700;border-color:var(--border-color-card)}.assessment-composed-page .assessment-page-container,.assessment-composed-page .health-page-container{padding:0}.assessment-composed-page .assessment-policy-tab{margin-left:auto}@media(max-width:640px){.assessment-composed-page .assessment-policy-tab{margin-left:0;flex-basis:100%;text-align:left}}.daily-journal-container,.daily-publication-policy-card{font-family:var(--font-family-body);color:var(--color-text-body)}.daily-journal-toolbar,.daily-editor-card,.daily-publication-policy-card,.daily-photo-manager{background:var(--surface-card);border-color:var(--border-color-card);box-shadow:var(--shadow-soft-raised,0 4px 14px #0001);border-radius:18px}.daily-photo-accent,.daily-publication-policy-title-area>svg{color:var(--color-primary)}.daily-journal-container .assessment-btn-primary,.daily-publication-policy-card .assessment-btn-primary{background:var(--color-primary);color:var(--text-on-primary,#fff);border-color:transparent;box-shadow:0 3px color-mix(in srgb,var(--color-primary) 65%,#000)}.daily-journal-container .daily-save-dock{position:fixed;z-index:40;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border:1px solid var(--border-color-card);border-radius:16px;background:var(--surface-card);color:var(--color-text-title);box-shadow:var(--shadow-soft-raised,0 5px 20px #0002)}.daily-save-actions{display:flex;flex-wrap:wrap;gap:10px}.daily-save-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid var(--border-color-card);border-radius:12px;padding:9px 14px;background:var(--surface-card);color:var(--color-text-title);font:inherit;box-shadow:0 3px color-mix(in srgb,var(--border-color-card) 80%,transparent);cursor:pointer}.daily-save-actions button:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 8%,var(--surface-card));color:var(--color-text-title)}.daily-save-actions button.assessment-btn-primary{background:var(--color-primary);color:var(--text-on-primary,#fff)}.daily-save-actions button.assessment-btn-primary:hover:not(:disabled),.daily-save-actions button.assessment-btn-primary:active:not(:disabled){background:color-mix(in srgb,var(--color-primary) 85%,#000);color:var(--text-on-primary,#fff)}.daily-save-actions button:disabled{background:var(--surface-card);color:var(--color-text-muted);opacity:1;box-shadow:none;cursor:not-allowed}.daily-save-actions button:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}.daily-photo-manager__header h4{display:flex;align-items:center;gap:8px}@media(max-width:640px){.daily-journal-container .daily-save-dock{padding:10px;gap:8px}.daily-save-actions{width:100%}.daily-save-actions button{flex:1 1 130px}}.health-page-container{display:flex;flex-direction:column;gap:var(--space-5, 20px);padding:var(--space-5, 20px);max-width:1200px;margin:0 auto;box-sizing:border-box}@media(max-width:768px){.health-page-container{padding:var(--space-3, 12px);gap:var(--space-4, 16px)}}.health-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:var(--radius-xl, 14px);font-size:13.5px;line-height:1.5;box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .04))}.health-alert-banner--readonly{background:var(--pastel-yellow-bg, #fef3c7);border:1px solid var(--pastel-yellow-border, #fde68a);color:var(--pastel-yellow-text, #b45309)}.health-alert-banner--conflict{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.health-alert-banner--error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.health-alert-banner--retry{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.health-alert-banner__content{display:flex;align-items:center;gap:10px;flex:1}.health-toolbar-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-soft, #e2e8f0);border-radius:var(--radius-2xl, 16px);padding:16px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .05))}.health-student-picker{display:flex;align-items:center;gap:12px;flex:1 1 320px}.health-student-picker__label{font-size:14px;font-weight:600;color:#1e293b;white-space:nowrap}.health-student-select{flex:1;padding:8px 14px;font-size:14px;border:1px solid #cbd5e1;border-radius:8px;background-color:#f8fafc;color:#0f172a;outline:none;transition:all .15s ease-in-out}.health-student-select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f133;background-color:#fff}.health-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.health-metric-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px 22px;display:flex;align-items:center;gap:18px;box-shadow:0 1px 3px #0000000a;transition:transform .15s ease-in-out}.health-metric-card:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #00000014}.health-metric-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.health-metric-icon--height{background:#e0f2fe;color:#0284c7}.health-metric-icon--weight{background:#ecfdf5;color:#059669}.health-metric-info{display:flex;flex-direction:column;gap:4px}.health-metric-label{font-size:13px;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.health-metric-value{font-size:26px;font-weight:700;color:#0f172a;line-height:1.2}.health-metric-date{font-size:12.5px;color:#64748b}.health-section-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px 24px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:16px}.health-section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.health-section-title-area{display:flex;align-items:center;gap:10px}.health-section-title{margin:0;font-size:16px;font-weight:700;color:#0f172a}.health-table-wrapper{overflow-x:auto}.health-table{width:100%;border-collapse:collapse;text-align:left;font-size:13.5px}.health-table th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;padding:12px 14px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap}.health-table td{padding:12px 14px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);color:var(--color-text-body, #1e293b);vertical-align:middle}.health-table tr:hover td{background-color:var(--surface-hover, #f8f7fd)}.health-table-empty{text-align:center;padding:32px 16px;color:#94a3b8;font-size:14px}.health-observation-list{display:flex;flex-direction:column;gap:12px}.health-observation-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px 18px;display:flex;flex-direction:column;gap:8px}.health-observation-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.health-observation-source-meta{display:flex;align-items:center;gap:10px}.health-observation-text{font-size:14px;line-height:1.5;color:#1e293b;margin:0}.health-observation-meta{font-size:12px;color:#64748b;display:flex;align-items:center;gap:12px}.health-source-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600;text-transform:uppercase}.health-source-badge--school{background:#ede9fe;color:#6d28d9}.health-source-badge--family{background:#fef3c7;color:#b45309}.health-version-tag{display:inline-block;font-size:11px;padding:2px 6px;border-radius:4px;background:#f1f5f9;color:#64748b}.health-modal-dialog{background:#fff;border-radius:16px;padding:24px 28px;width:100%;max-width:480px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;gap:18px}.health-modal-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.health-modal-title{margin:0;font-size:17px;font-weight:700;color:#0f172a}.health-form{display:flex;flex-direction:column;gap:14px}.health-form-group{display:flex;flex-direction:column;gap:6px}.health-form-group label{font-size:13px;font-weight:600;color:#334155}.health-form-input,.health-form-textarea,.health-form-select{padding:8px 12px;font-size:13.5px;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#fff;color:#0f172a}.health-form-input:focus,.health-form-textarea:focus,.health-form-select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.health-form-textarea{min-height:80px;resize:vertical}.health-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:10px;border-top:1px solid #f1f5f9}.themed-datepicker-wrap{position:relative;display:inline-block;width:100%}.themed-datepicker-input-group{position:relative;display:flex;align-items:center;width:100%}.themed-datepicker-input{width:100%;padding-right:64px;font-family:inherit;font-size:13.5px;border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 8px);background-color:var(--color-surface, #ffffff);color:var(--color-text, #0f172a);transition:border-color .15s ease,box-shadow .15s ease;height:38px;padding-left:12px}.themed-datepicker-input:focus{outline:none;border-color:var(--color-primary, #6366f1);box-shadow:0 0 0 3px var(--color-primary-soft, rgba(99, 102, 241, .15))}.themed-datepicker-input.is-invalid{border-color:var(--color-danger, #e11d48)!important;background-color:#fff1f2}.themed-datepicker-error-msg{font-size:11.5px;color:var(--color-danger, #e11d48);margin-top:4px;display:block}.themed-datepicker-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:2px}.themed-datepicker-clear-btn,.themed-datepicker-toggle-btn{background:none;border:none;padding:4px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted, #64748b);transition:color .15s ease,background-color .15s ease}.themed-datepicker-clear-btn:hover,.themed-datepicker-toggle-btn:hover{color:var(--color-primary, #6366f1);background-color:var(--color-surface-subtle, #f1f5f9)}.themed-datepicker-toggle-btn:focus-visible,.themed-datepicker-clear-btn:focus-visible{outline:2px solid var(--color-primary, #6366f1)}.themed-datepicker-popup{position:absolute;top:calc(100% + 4px);left:0;z-index:1050;width:280px;max-width:min(280px,calc(100vw - 16px));box-sizing:border-box;background:var(--color-surface, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:12px;box-shadow:0 10px 25px -5px #0000001f,0 8px 10px -6px #00000014;padding:8px 10px;-webkit-user-select:none;user-select:none;animation:datepicker-fade-in .15s ease-out}.themed-datepicker-popup.is-placement-top{top:auto;bottom:calc(100% + 4px);animation:datepicker-fade-in-up .15s ease-out}@keyframes datepicker-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes datepicker-fade-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-color-card, #f1f5f9)}.datepicker-nav-btn{background:none;border:1px solid transparent;border-radius:6px;padding:4px 6px;cursor:pointer;color:var(--color-text, #0f172a);display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s ease,border-color .12s ease}.datepicker-nav-btn:hover{background-color:var(--color-surface-subtle, #f1f5f9);border-color:var(--border-color-card, #e2e8f0)}.datepicker-nav-btn:focus-visible{outline:2px solid var(--color-primary, #6366f1)}.datepicker-selectors{display:flex;gap:4px}.datepicker-select{font-family:inherit;font-size:12.5px;font-weight:600;padding:3px 6px;border:1px solid var(--border-color-card, #e2e8f0);border-radius:6px;background-color:var(--color-surface, #ffffff);color:var(--color-text, #0f172a);cursor:pointer}.datepicker-select:focus{outline:2px solid var(--color-primary, #6366f1)}.datepicker-grid{width:100%;border-collapse:collapse}.datepicker-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 2px}.datepicker-month-btn{height:38px;border-radius:8px;border:1px solid var(--border-color-card, #e2e8f0);background:var(--color-surface, #ffffff);font-size:12.5px;font-weight:600;color:var(--color-text, #1e293b);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .12s ease}.datepicker-month-btn:hover:not(.is-disabled){background-color:var(--color-primary-soft, rgba(236, 72, 153, .12));color:var(--color-primary, #ec4899);border-color:var(--color-primary, #ec4899)}.datepicker-month-btn:focus-visible{outline:2px solid var(--color-primary, #ec4899);outline-offset:1px}.datepicker-month-btn.is-selected{background-color:var(--color-primary, #ec4899)!important;color:#fff!important;font-weight:700;border-color:var(--color-primary, #ec4899)!important}.datepicker-month-btn.is-current-month{border-color:var(--color-primary, #ec4899);font-weight:700}.datepicker-th{font-size:11px;font-weight:700;color:var(--color-text-muted, #64748b);text-align:center;padding:4px 0}.datepicker-day-cell{padding:2px;text-align:center}.datepicker-day-btn{width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:none;font-size:12.5px;font-weight:500;color:var(--color-text, #0f172a);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.datepicker-day-btn:hover:not(.is-disabled){background-color:var(--color-primary-soft, rgba(99, 102, 241, .1));color:var(--color-primary, #6366f1)}.datepicker-day-btn:focus-visible{outline:2px solid var(--color-primary, #6366f1);outline-offset:1px;z-index:2}.datepicker-day-btn.is-other-month{color:var(--color-text-dim, #94a3b8);opacity:.6}.datepicker-day-btn.is-today{font-weight:700;border-color:var(--color-primary, #6366f1)}.datepicker-day-btn.is-today:after{content:"";position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background-color:var(--color-primary, #6366f1)}.datepicker-day-btn.is-selected{background-color:var(--color-primary, #6366f1)!important;color:#fff!important;font-weight:700}.datepicker-day-btn.is-selected:after{background-color:#fff}.datepicker-day-btn.is-disabled{color:var(--color-text-dim, #cbd5e1);cursor:not-allowed;opacity:.4}.datepicker-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color-card, #f1f5f9)}.datepicker-today-btn,.datepicker-cancel-btn{background:none;border:none;font-size:12px;font-weight:600;color:var(--color-primary, #6366f1);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background-color .12s ease}.datepicker-today-btn:hover,.datepicker-cancel-btn:hover{background-color:var(--color-primary-soft, rgba(99, 102, 241, .1))}.datepicker-cancel-btn{color:var(--color-text-muted, #64748b)}@media(prefers-reduced-motion:reduce){.themed-datepicker-input,.themed-datepicker-clear-btn,.themed-datepicker-toggle-btn,.themed-datepicker-popup,.datepicker-day-btn{transition:none!important;animation:none!important}}@media(max-width:640px){.themed-datepicker-popup{width:270px;left:auto;right:0}.datepicker-day-btn{width:28px;height:28px;font-size:12px}}.payroll-datepicker-popup{background:var(--surface-card)!important;color:var(--color-text-body);border:1px solid var(--border-color-card);box-shadow:var(--shadow-floating);bottom:auto;isolation:isolate;animation:none}.history-page{display:flex;flex-direction:column;gap:20px;padding:24px;max-width:1440px;margin:0 auto;width:100%;box-sizing:border-box;font-family:inherit;color:var(--color-text-body, #4a455e)}.history-scope-banner{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--callout-raised-bg, var(--color-primary-subtle, #f5f3ff));border:1px solid var(--callout-raised-border, var(--color-primary-border, #ddd6fe));border-radius:var(--callout-raised-radius, var(--radius-md, 12px));color:var(--brand-ink, var(--color-primary-dark, #3f2e96));font-family:inherit;font-size:13.5px;line-height:1.5;box-shadow:var(--callout-raised-shadow, 0 2px 8px rgba(0, 0, 0, .04))}.history-scope-banner strong{color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.history-scope-banner__icon{font-size:18px;flex-shrink:0;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.history-error-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-radius:var(--radius-md, 12px);font-size:13.5px;line-height:1.5;box-shadow:var(--shadow-subtle, 0 1px 2px rgba(0, 0, 0, .04))}.history-error-banner--forbidden{background-color:#fff1f0;border:1px solid #ffa39e;border-left:4px solid #cf1322;color:#cf1322}.history-error-banner--service-unavailable{background-color:#fffbe6;border:1px solid #ffe58f;border-left:4px solid #d48806;color:#92400e}.history-error-banner--bad-request{background-color:#fff2e8;border:1px solid #ffbb96;border-left:4px solid #d4380d;color:#c2410c}.history-error-banner--general{background-color:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;color:#b91c1c}.history-error-banner__actions{display:flex;gap:8px;flex-shrink:0}.history-error-banner__action-btn{padding:6px 14px;border-radius:var(--radius-sm, 8px);font-size:13px;font-weight:600;cursor:pointer;border:1px solid currentColor;background:#fff;color:inherit;transition:all .15s ease;box-shadow:0 1px 2px #0000000d}.history-error-banner__action-btn:hover{filter:brightness(.95)}.history-filters{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 16px);padding:18px 22px;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .04))}.history-filters-header,.history-filters__header{margin-bottom:14px}.history-filters-title,.history-filters__title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--color-text-title, #1e293b);letter-spacing:-.01em;margin:0 0 4px}.history-filters-subtitle{font-size:13px;color:var(--color-text-muted, #64748b);margin:0}.history-filters-grid,.history-filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;align-items:start}.history-filter-item,.history-filters__field{display:flex;flex-direction:column;gap:6px;min-width:0}.history-filter-label,.history-filters__field label{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--color-text-body, #475569);white-space:nowrap}.history-input,.history-select,.history-filters__field input,.history-filters__field select{height:38px;padding:0 12px;border:1px solid var(--border-color, #cbd5e1);border-radius:var(--radius-sm, 8px);background:var(--bg-surface, #ffffff);color:var(--color-text-title, #1e293b);font-size:13.5px;font-weight:500;outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box;width:100%}.history-input:focus,.history-select:focus,.history-filters__field input:focus,.history-filters__field select:focus{border-color:var(--color-primary, #6366f1);box-shadow:0 0 0 3px #6366f126}.history-date-picker{width:100%}.history-date-picker .themed-datepicker-input-group{height:38px}.history-date-picker .themed-datepicker-input{height:38px;font-size:13.5px;border-radius:var(--radius-sm, 8px);border:1px solid var(--border-color, #cbd5e1);background:var(--bg-surface, #ffffff)}.history-date-picker .themed-datepicker-input:focus{border-color:var(--color-primary, #6366f1);box-shadow:0 0 0 3px #6366f126}.history-filter-error{display:flex;align-items:center;gap:6px;color:#cf1322;font-size:12.5px;font-weight:500;margin-top:8px;padding:6px 10px;background:#fff1f0;border-radius:var(--radius-xs, 6px);border:1px dashed #ffa39e}.history-filters-lower-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-color-card, #f1f5f9);flex-wrap:wrap}.history-filters-dates-wrap{display:flex;align-items:flex-end;gap:14px;flex:1 1 auto;min-width:0;flex-wrap:wrap}.history-filters-dates-wrap .history-filter-item--date{flex:1 1 auto;min-width:160px}.history-filters-lower-row .history-filters-actions{margin-top:0;padding-top:0;border-top:none}@media(max-width:768px){.history-filters-lower-row{flex-direction:column;align-items:stretch;gap:12px}.history-filters-dates-wrap{flex-direction:column;width:100%;flex:1 1 auto}.history-filters-dates-wrap .history-filter-item--date{width:100%;flex:1 1 auto;min-width:0}.history-filters-lower-row .history-filters-actions{width:100%;justify-content:stretch}.history-filters-lower-row .history-filters-actions button{flex:1;justify-content:center}}.history-actor-text-axis{display:flex;flex-direction:column;justify-content:center;min-width:0;max-width:180px;line-height:1.25}.history-actor-text-axis span,.history-actor-text-axis p{margin:0;padding:0;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.history-actor-text-axis .history-actor-name{font-weight:600;color:var(--color-text-title, #1e293b);font-size:12px;line-height:1.25;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-actor-text-axis .history-actor-role{font-size:11px;color:var(--color-text-muted, #64748b);line-height:1.25;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-filters-actions,.history-filters__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-color-card, #f1f5f9)}.history-btn-primary,.history-filters__button--submit{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:var(--radius-sm, 8px);border:none;background:var(--color-primary, #6366f1);color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #6366f133}.history-btn-primary:hover:not(:disabled),.history-filters__button--submit:not(:disabled):hover{filter:brightness(.95);box-shadow:0 2px 4px #6366f140}.history-btn-secondary,.history-filters__button--reset{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:var(--radius-sm, 8px);border:1px solid var(--border-color, #cbd5e1);background:#f8fafc;color:var(--color-text-body, #475569);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.history-btn-secondary:hover:not(:disabled),.history-filters__button--reset:not(:disabled):hover{background:#f1f5f9;border-color:#94a3b8}.history-table-card,.history-table-container{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 16px);overflow:hidden;box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .04))}.history-table-scroll-hint{display:none;align-items:center;gap:6px;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:12px;color:var(--color-text-muted, #64748b)}.history-table-responsive,.history-table-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.history-table{width:100%;border-collapse:collapse;text-align:left;font-size:13.5px}.history-table th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:11px 14px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap}.history-row,.history-row-main{cursor:pointer;transition:background-color .15s ease}.history-row:hover,.history-row-main:hover,.history-row--expanded,.history-row--expanded.history-row-main{background-color:var(--surface-hover, #f8f7fd)}.history-table td.history-cell{padding:11px 14px;vertical-align:middle;border-bottom:1px solid #f1f5f9;box-sizing:border-box}.history-row--expanded td.history-cell{border-bottom-color:#e2e8f0}.history-row-detail td{border-bottom:1px solid var(--border-color-card, #e2e8f0)}.history-cell-content{display:flex;align-items:center;gap:6px}.history-cell--toggle{text-align:center;color:#94a3b8}.history-cell--time{font-family:inherit;font-size:12px;color:#475569;text-align:center}.history-cell--time .history-cell-content{justify-content:center}.history-cell--actor{gap:8px;text-align:left}.history-cell--module{width:140px;flex-shrink:0;text-align:center}.history-cell--action{width:120px;flex-shrink:0;text-align:center}.history-cell--target{width:170px;flex-shrink:0;min-width:0;text-align:center}.history-cell--result{text-align:center}.history-target-wrap{display:flex;flex-direction:column;gap:1px;min-width:0}.history-target-name{font-weight:600;font-size:12.5px;color:var(--color-text-title, #1e293b);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-target-name--empty{font-weight:400;color:var(--color-text-muted, #94a3b8);font-style:italic}.history-target-subid{font-family:inherit;font-size:11px;color:var(--color-text-muted, #64748b);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-cell--result{width:130px;flex-shrink:0}.history-module-tag,.history-badge--module{display:inline-block;padding:3px 8px;border-radius:6px;background:var(--color-primary-light, #ede9fe);color:var(--color-primary-dark, #4f46e5);border:1px solid var(--color-primary-light, #ede9fe);font-size:12px;font-weight:600;white-space:nowrap}.history-action-tag,.history-badge--action{display:inline-block;padding:3px 8px;border-radius:6px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:600;white-space:nowrap}.history-action-tag--create{background:#dcfce7;color:#15803d}.history-action-tag--update{background:#e0f2fe;color:#0369a1}.history-action-tag--delete{background:#fee2e2;color:#b91c1c}.history-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}.history-badge--success{background-color:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.history-badge--recorded{background-color:#fef3c7;color:#b45309;border:1px solid #fde68a}.history-badge--unknown{background-color:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.history-detail-panel{background:#fafafc;padding:16px 20px;border-bottom:1px solid var(--border-color-card, #e2e8f0)}.history-detail-header{margin-bottom:12px}.history-detail-title{margin:0;font-size:14px;font-weight:700;color:var(--color-text-title, #1e293b)}.history-detail-subtitle{margin:4px 0 0;font-size:12px;color:var(--color-text-muted, #64748b);line-height:1.4}.history-detail-unavailable,.history-detail-warning{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-background-soft, #f8fafc);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-xs, 6px);color:var(--color-text-muted, #64748b);font-size:12.5px;margin-bottom:12px}.history-changes-box{margin-bottom:14px}.history-changes-heading{margin:0 0 8px;font-size:12.5px;font-weight:600;color:var(--color-text-body, #475569)}.history-changes-table-wrap{overflow-x:auto;border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-sm, 8px);background:#fff}.history-changes-table{width:100%;border-collapse:collapse;font-size:12.5px}.history-changes-table th{background:var(--table-header-bg, #ede9fe);padding:8px 12px;font-weight:700;color:var(--table-header-color, #3f2e96);border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;text-align:left}.history-changes-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9}.history-tech-disclosure{margin-top:14px;border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-md, 8px);background:var(--color-background-soft, #f8fafc);overflow:hidden}.history-tech-disclosure-summary{padding:8px 12px;font-size:12px;font-weight:600;color:var(--color-text-muted, #64748b);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px;transition:background .15s ease,color .15s ease}.history-tech-disclosure-summary:hover{background:#f1f5f9;color:var(--color-text-title, #1e293b)}.history-tech-disclosure[open] .history-tech-disclosure-summary{border-bottom:1px solid var(--border-color-card, #e2e8f0)}.history-tech-disclosure .history-detail-meta-grid{padding:12px;border-top:none}.history-detail-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;padding-top:12px;border-top:1px dashed var(--border-color-card, #e2e8f0)}.history-meta-item{display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0}.history-meta-label{color:var(--color-text-muted, #64748b);font-weight:500}.history-meta-value{color:var(--color-text-title, #1e293b);font-weight:600;word-break:break-all;overflow-wrap:anywhere}.history-empty-card,.history-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 16px);text-align:center}.history-empty-icon{color:#94a3b8;margin-bottom:14px}.history-empty-title{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--color-text-title, #1e293b)}.history-empty-desc{margin:0;font-size:13.5px;color:var(--color-text-muted, #64748b);max-width:480px}.history-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px;color:var(--color-primary, #6366f1);font-size:14px;font-weight:600}.history-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:var(--radius-lg, 14px);box-shadow:var(--shadow-card, 0 1px 3px rgba(0, 0, 0, .04));flex-wrap:wrap;gap:10px}.history-pagination__info{font-size:13.5px;color:var(--color-text-muted, #64748b)}.history-pagination__actions{display:flex;gap:8px}.history-pagination__btn{padding:7px 14px;border:1px solid var(--border-color, #cbd5e1);background:#f8fafc;color:var(--color-text-body, #475569);border-radius:var(--radius-sm, 8px);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.history-pagination__btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.history-pagination__btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.history-table-scroll-hint{display:flex}}@media(max-width:768px){.history-page{padding:12px;gap:14px}.history-filters{padding:14px}.history-filters-grid,.history-filters__grid{grid-template-columns:1fr;gap:10px}.history-filters-actions,.history-filters__actions{flex-direction:row;justify-content:flex-end;gap:8px}.history-pagination{flex-direction:column;align-items:stretch;text-align:center}.history-pagination__actions{justify-content:center}}:root{--parent-primary: #5b58eb;--parent-primary-hover: #4a47db;--parent-primary-light: #eceffd;--parent-primary-subtle: #f3f5fe;--parent-primary-glow: rgba(91, 88, 235, .12);--parent-bg: #f4f5fd;--parent-card-bg: #ffffff;--parent-text: #2d264b;--parent-text-heading: #1e2448;--parent-muted: #8a92b2;--parent-border: #eaecf8;--parent-border-subtle: #f1f3fc;--parent-radius: 18px;--parent-radius-sm: 10px;--parent-radius-lg: 20px;--parent-shadow: 0 2px 10px rgba(120, 130, 200, .05);--parent-shadow-lg: 0 8px 24px rgba(120, 130, 200, .08);--parent-shadow-hover: 0 6px 18px rgba(91, 88, 235, .08);--routine-breakfast-bg: #fffbeb;--routine-breakfast-border: #fef3c7;--routine-breakfast-text: #92400e;--routine-breakfast-icon: #f59e0b;--routine-lunch-bg: #f0f9ff;--routine-lunch-border: #e0f2fe;--routine-lunch-text: #0369a1;--routine-lunch-icon: #0284c7;--routine-snack-bg: #fff7ed;--routine-snack-border: #ffedd5;--routine-snack-text: #c2410c;--routine-snack-icon: #ea580c;--routine-nap-bg: #f5f3ff;--routine-nap-border: #ede9fe;--routine-nap-text: #6d28d9;--routine-nap-icon: #7c3aed;--routine-pickup-bg: #ecfdf5;--routine-pickup-border: #d1fae5;--routine-pickup-text: #047857;--routine-pickup-icon: #059669;--parent-success: #059669;--parent-success-bg: #ecfdf5;--parent-amber: #d97706;--parent-amber-bg: #fffbeb;--parent-danger: #dc2626;--parent-danger-bg: #fef2f2}.parent-portal-layout,.parent-portal-root{min-height:100vh;background-color:var(--parent-bg);color:var(--parent-text);font-family:var(--font-family-body, inherit);padding-bottom:90px;overflow-x:hidden}.parent-portal-container{max-width:1140px;margin:0 auto;padding:16px 20px 100px}.parent-portal-header,.parent-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px;position:relative}.parent-brand{display:flex;align-items:center;gap:10px}.parent-brand-icon{width:38px;height:38px;border-radius:12px;background:#ede9fe;border:1px solid #d8b4fe;color:var(--parent-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.parent-brand-title{font-size:16px;font-weight:700;color:#252258;letter-spacing:-.2px;margin:0}.parent-brand-sub{font-size:11px;color:var(--parent-muted);margin:1px 0 0}.parent-header-child-capsule{position:relative;background:#fff;border:1px solid var(--parent-border);border-radius:9999px;padding:4px 14px 4px 6px;display:flex;align-items:center;gap:8px;box-shadow:0 1px 6px #7882c80a;cursor:pointer;transition:all .15s ease}.parent-header-child-capsule:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #5b58eb14}.parent-header-child-info{display:flex;flex-direction:column;text-align:left}.parent-header-child-name{font-size:13px;font-weight:700;color:var(--parent-text-heading);line-height:1.2}.parent-header-child-meta{font-size:11px;color:var(--parent-muted);line-height:1.2}.parent-header-child-select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:5}.parent-header-actions{display:flex;align-items:center;gap:10px}.parent-header-bell-btn{position:relative;width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#fff,#f4f6fb);border:1.5px solid rgba(199,210,254,.9);display:flex;align-items:center;justify-content:center;color:#4338ca;cursor:pointer;box-shadow:0 4px 12px #5b58eb1f,0 1px 2px #0000000a,inset 0 2px 2px #fff,inset 0 -1.5px 2px #5b58eb0f;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease,color .15s ease}@media(hover:hover)and (pointer:fine){.parent-header-bell-btn:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 10px 22px #5b58eb38,0 3px 6px #0000000f,inset 0 2px 2px #fff;border-color:#818cf8;color:#3730a3}.parent-header-bell-btn:hover svg{animation:parent-bell-ring .6s cubic-bezier(.36,.07,.19,.97) both}}.parent-header-bell-btn:active{transform:translateY(.5px) scale(.97);box-shadow:0 2px 6px #5b58eb24,inset 0 1.5px 2px #0000000f}@keyframes parent-bell-ring{0%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}to{transform:rotate(0)}}.parent-header-bell-dot{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:#ef4444}.parent-header-user-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4338ca);border:2px solid #ffffff;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:15px;cursor:pointer;box-shadow:0 4px 14px #4f46e552,0 1px 3px #0000001a,inset 0 2px 3px #ffffff73,inset 0 -2px 3px #00000026;text-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease}@media(hover:hover)and (pointer:fine){.parent-header-user-avatar:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 12px 24px #4f46e575,0 3px 6px #00000014,inset 0 2px 3px #ffffff8c}}.parent-header-user-avatar:active{transform:translateY(.5px) scale(.97);box-shadow:0 2px 6px #4f46e540,inset 0 2px 3px #0003}.parent-btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--parent-card-bg);border:1px solid var(--parent-border);border-radius:10px;color:var(--parent-text);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.parent-btn-ghost:hover{background:#f1f5f9;border-color:#cbd5e1}.parent-child-selector-card{background:var(--parent-card-bg);border:1px solid var(--parent-border);border-radius:var(--parent-radius);padding:12px 16px;margin-bottom:20px;box-shadow:var(--parent-shadow);display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px}.parent-child-selector-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--parent-primary);display:flex;align-items:center;gap:6px}.parent-child-select-wrap{flex:1;min-width:240px}.parent-child-select{width:100%;padding:8px 12px;border:1px solid var(--parent-border);border-radius:10px;background-color:#faf9ff;color:var(--parent-text-heading);font-size:13px;font-weight:600;outline:none;cursor:pointer;transition:all .15s ease}.parent-child-select:focus{border-color:var(--parent-primary);background-color:#fff;box-shadow:0 0 0 3px #5b58eb1f}.parent-child-transferred-banner{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--parent-amber);background:var(--parent-amber-bg);padding:10px 14px;border-radius:12px}.parent-today-layout{display:grid;grid-template-columns:1fr 340px;grid-template-areas:"hero attendance" "routines fees" "moments health";gap:18px;align-items:start}.parent-today-hero-area{grid-area:hero}.parent-today-attendance-area{grid-area:attendance}.parent-today-routines-area{grid-area:routines;margin-top:0!important}.parent-today-fees-area{grid-area:fees}.parent-today-moments-area{grid-area:moments;margin-top:0!important}.parent-today-health-area{grid-area:health}@media(max-width:900px){.parent-today-layout{display:flex;flex-direction:column;align-items:stretch!important;width:100%;gap:16px}.parent-today-hero-area,.parent-today-attendance-area,.parent-today-routines-area,.parent-today-fees-area,.parent-today-moments-area,.parent-today-health-area,.parent-today-fees-area .parent-aside-card,.parent-today-health-area .parent-aside-card,.parent-aside-card{width:100%!important;box-sizing:border-box}}.parent-hero-banner{background:url(/assets/parent-hero-cover-full.png) no-repeat right center / cover;border:1px solid rgba(226,232,240,.7);border-radius:var(--parent-radius-lg);padding:20px 26px;min-height:140px;box-shadow:0 4px 16px #646eb40d,inset 0 1.5px 2px #fff;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease}@media(hover:hover)and (pointer:fine){.parent-hero-banner:hover{transform:translateY(-3px);box-shadow:0 16px 36px #646eb414,0 4px 12px #00000008,inset 0 1.5px 2px #fff;border-color:#cbd5e1cc}}.parent-hero-left{max-width:52%;z-index:2;background:transparent;padding:4px 0;border-radius:0;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}@media(max-width:768px){.parent-hero-banner{margin-left:-12px!important;margin-right:-12px!important;width:calc(100% + 24px)!important;max-width:calc(100% + 24px)!important;border-radius:0!important;border-left:none!important;border-right:none!important;padding:16px!important;min-height:125px;box-sizing:border-box}}@media(max-width:640px){.parent-hero-banner{padding:14px!important;min-height:120px}.parent-hero-left{max-width:54%!important}.parent-hero-date{font-size:13px;margin-bottom:2px}.parent-hero-title{font-size:10px;line-height:1.3}.parent-hero-wish{font-size:9.5px;margin-top:3px;line-height:1.3}}.parent-hero-date{font-size:15px;font-weight:750;color:#1e1b4b;margin-bottom:4px;display:flex;align-items:center;gap:6px;text-shadow:0 1px 2px rgba(255,255,255,.9)}.parent-hero-title{font-size:12px;font-weight:600;letter-spacing:0;margin:0;color:#374151;text-shadow:0 1px 2px rgba(255,255,255,.9)}.parent-hero-sub{font-size:11px;color:#8f7f5a;margin:4px 0 0;font-weight:500}.parent-hero-wish{font-size:12px;font-weight:700;color:#ea580c;margin:5px 0 0;text-shadow:0 1px 2px rgba(255,255,255,.9)}.parent-hero-right{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;z-index:1}.parent-hero-girl-img{display:none}.parent-schoolhouse-img{width:72px;height:72px;border-radius:14px;object-fit:cover;display:block;box-shadow:0 4px 14px #646ec826,inset 0 1px 1px #fffc;border:1.5px solid rgba(255,255,255,.9);transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease}@media(hover:hover)and (pointer:fine){.parent-schoolhouse-img:hover{transform:scale(1.06) rotate(-2deg);box-shadow:0 8px 20px #646ec838}}.parent-attendance-time-display{font-size:20px;font-weight:800;color:#1e1b4b;letter-spacing:-.3px}.parent-routine-time{font-size:11px;color:var(--parent-muted);margin-top:3px;font-weight:600}.parent-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.parent-section-title{font-size:15px;font-weight:700;color:var(--parent-text-heading);margin:0;display:flex;align-items:center;gap:8px}.parent-section-link{font-size:12px;font-weight:600;color:var(--parent-primary);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;gap:4px;transition:opacity .12s ease}.parent-section-link:hover{text-decoration:underline;opacity:.85}.parent-routine-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:0}.parent-routine-card{background:#fff;border:1.5px solid var(--parent-border);border-radius:16px;padding:14px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 4px 14px #4e3c960d,inset 0 1.5px 2px #fff;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease;position:relative;cursor:pointer}@media(hover:hover)and (pointer:fine){.parent-routine-card:hover{transform:translateY(-5px) scale(1.03);box-shadow:0 20px 38px #4e3c9624,0 6px 16px #4e3c960f,inset 0 1.5px 2px #fff;border-color:#9382eb99}.parent-routine-card:hover .parent-routine-icon{transform:scale(1.12) rotate(-4deg);box-shadow:0 6px 16px #4e3c9626}}.parent-routine-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:8px;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease;box-shadow:0 3px 8px #0000000a,inset 0 1px 1px #fffc}.parent-routine-card--breakfast .parent-routine-icon{background:#fef3c7;color:var(--routine-breakfast-icon)}.parent-routine-card--lunch .parent-routine-icon{background:#e0f2fe;color:var(--routine-lunch-icon)}.parent-routine-card--snack .parent-routine-icon{background:#ffedd5;color:var(--routine-snack-icon)}.parent-routine-card--nap .parent-routine-icon{background:#ede9fe;color:var(--routine-nap-icon)}.parent-routine-card--poo .parent-routine-icon{background:#fdf2f8;color:#db2777}.parent-routine-card--pickup .parent-routine-icon{background:#ccfbf1;color:#0d9488}.parent-routine-name{font-size:12px;font-weight:700;color:var(--parent-text-heading);margin-bottom:2px}.parent-routine-outcome{font-size:11px;font-weight:500;color:#50577a;line-height:1.2}.parent-routine-status{font-size:11px;color:var(--parent-muted);margin-top:2px}.parent-moments-card{background:#fff;border:1px solid var(--parent-border);border-radius:var(--parent-radius);padding:18px 20px;box-shadow:var(--parent-shadow)}.parent-moments-placeholder-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.parent-moments-placeholder-left{display:flex;align-items:flex-start;gap:14px}.parent-moments-camera-icon{width:42px;height:42px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#94a3b8;display:flex;align-items:center;justify-content:center;flex-shrink:0}.parent-moments-empty-text h4{font-size:13px;font-weight:600;color:#50577a;margin:0 0 4px}.parent-moments-empty-text p{font-size:12px;color:var(--parent-muted);margin:0;line-height:1.4}.parent-moments-placeholder-right{flex-shrink:0}.parent-aside-card{background:#fff;border:1.5px solid var(--parent-border);border-radius:16px;padding:18px 20px;box-shadow:0 4px 14px #4e3c960d,inset 0 1.5px 2px #fff;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease;position:relative;cursor:pointer}@media(hover:hover)and (pointer:fine){.parent-aside-card:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 18px 36px #4e3c961f,0 6px 14px #4e3c960f,inset 0 1.5px 2px #fff;border-color:#9382eb80}}.parent-aside-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.parent-aside-title-wrap{display:flex;align-items:center;gap:8px}.parent-aside-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center}.parent-aside-icon--purple{background:#ede9fe;color:var(--parent-primary)}.parent-aside-icon--orange{background:#ffedd5;color:#ea580c}.parent-aside-icon--green{background:#dcfce7;color:#16a34a}.parent-aside-title{font-size:13px;font-weight:700;color:var(--parent-text-heading);margin:0}.parent-aside-attendance-content{display:flex;align-items:center;justify-content:space-between}.parent-attendance-badge-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:9999px;font-size:11px;font-weight:600;background:#ecfdf5;color:#059669}.parent-attendance-badge-pill--off{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.parent-attendance-time-meta{font-size:11px;color:var(--parent-muted);margin-top:4px}.parent-aside-tuition-amount{font-size:22px;font-weight:800;color:var(--parent-text-heading);margin:6px 0 2px;letter-spacing:-.3px}.parent-aside-tuition-due{font-size:11px;color:var(--parent-muted);margin-bottom:8px}.parent-health-metric-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:12px}.parent-health-metric-label{color:var(--parent-muted)}.parent-health-metric-val{font-weight:700;color:var(--parent-text-heading)}.parent-health-metric-date{font-size:11px;color:var(--parent-muted);margin-left:4px;font-weight:400}.parent-aside-btn-purple{width:100%;margin-top:10px;padding:7px 12px;background:#eef0ff;border:none;border-radius:8px;color:var(--parent-primary);font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all .12s ease}.parent-aside-btn-purple:hover{background:#e0e4fe}.parent-moments-card{background:#fff;border:1px solid var(--parent-border);border-radius:var(--parent-radius);padding:18px 20px;box-shadow:var(--parent-shadow);margin-bottom:16px}.parent-moments-placeholder{border:2px dashed #ddd6fe;background:#faf8ff;border-radius:16px;padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin-top:0}.parent-moments-icon-wrap{width:52px;height:52px;border-radius:16px;background:var(--parent-primary-light);color:var(--parent-primary);display:flex;align-items:center;justify-content:center}.parent-moments-placeholder h4{font-size:15px;font-weight:700;color:var(--parent-text-heading);margin:0}.parent-moments-placeholder p{font-size:12.5px;color:var(--parent-muted);max-width:420px;margin:0;line-height:1.5}.parent-moments-photo-display{margin-top:0;width:100%}.parent-moments-card .parent-diary-photos{margin-top:0;padding-top:0;border-top:none}.parent-today-moments-gallery-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.parent-today-moments-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}.parent-today-moments-thumb{position:relative;aspect-ratio:1;border-radius:14px;border:1px solid #e2e8f0;background:#f8fafc;overflow:hidden;box-shadow:0 2px 6px #0000000a;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,border-color .18s ease}.parent-today-moments-thumb:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 18px #6366f11f;border-color:#cbd5e1}.parent-today-teacher-note{background:#fff;border:1px solid var(--parent-border);border-radius:var(--parent-radius);padding:20px 22px;box-shadow:var(--parent-shadow);margin-top:16px}.parent-today-teacher-note__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.parent-feedback-grid{display:flex;flex-direction:column;gap:12px}.parent-feedback-item{border-radius:14px;padding:14px 16px;transition:transform .18s ease,box-shadow .18s ease;position:relative}.parent-feedback-item:hover{transform:translateY(-1px)}.parent-feedback-item__header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.parent-feedback-item__icon-wrap{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.parent-feedback-item__title{font-size:13.5px;font-weight:700;letter-spacing:-.2px}.parent-feedback-item .parent-feedback-item__body,.parent-feedback-item .parent-quote-box.parent-feedback-item__body{margin:0!important;background:transparent!important;border:none!important;font-size:13.5px;line-height:1.6;color:#334155;padding:0 0 0 36px!important}.parent-feedback-item--well{background:#f0fdf4;border:1px solid #bbf7d0;box-shadow:0 1px 3px #10b9810d}.parent-feedback-item--well .parent-feedback-item__icon-wrap{background:#dcfce7;color:#15803d}.parent-feedback-item--well .parent-feedback-item__title{color:#15803d}.parent-feedback-item--support{background:#fffbeb;border:1px solid #fde68a;box-shadow:0 1px 3px #f59e0b0d}.parent-feedback-item--support .parent-feedback-item__icon-wrap{background:#fef3c7;color:#b45309}.parent-feedback-item--support .parent-feedback-item__title{color:#b45309}.parent-feedback-item--suggestion{background:#faf5ff;border:1px solid #e9d5ff;box-shadow:0 1px 3px #8b5cf60d}.parent-feedback-item--suggestion .parent-feedback-item__icon-wrap{background:#f3e8ff;color:#7e22ce}.parent-feedback-item--suggestion .parent-feedback-item__title{color:#7e22ce}.parent-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700}.parent-badge--success{background:var(--parent-success-bg);color:var(--parent-success)}.parent-badge--pending{background:var(--parent-amber-bg);color:var(--parent-amber)}.parent-badge--neutral{background:#f1f5f9;color:#64748b}.parent-badge--resolved{background:var(--parent-success-bg, #ecfdf5);color:var(--parent-success, #059669)}.parent-stat-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--parent-border)}.parent-stat-row:last-child{border-bottom:none;padding-bottom:0}.parent-stat-icon{width:36px;height:36px;border-radius:10px;background:var(--parent-primary-light);color:var(--parent-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.parent-stat-content h4{font-size:14px;font-weight:700;margin:0 0 2px}.parent-stat-content p{font-size:12px;color:var(--parent-muted);margin:0}.parent-timeline{display:flex;flex-direction:column;gap:18px;position:relative;padding-left:24px;margin-top:16px}.parent-timeline:before{content:"";position:absolute;top:10px;bottom:10px;left:7px;width:2px;background:#e2e8f0}.parent-timeline-item{position:relative}.parent-timeline-item:before{content:"";position:absolute;top:18px;left:-24px;width:14px;height:14px;border-radius:50%;background:var(--parent-primary);border:3px solid #ffffff;box-shadow:0 0 0 2px var(--parent-primary-subtle)}.parent-quote-box{border-left:3px solid var(--parent-primary);background:#f8fafc;padding:14px 18px;border-radius:0 12px 12px 0;margin:12px 0;font-size:14px;line-height:1.6}.parent-money-large{font-size:28px;font-weight:800;color:var(--parent-primary);letter-spacing:-.5px;font-variant-numeric:tabular-nums;margin:6px 0}.parent-balance-due-box{background:#fef2f2;border:1px solid #fee2e2;border-radius:12px;padding:14px 16px;text-align:center;margin-top:14px}.parent-balance-due-label{font-size:12px;font-weight:600;color:#991b1b;display:block;margin-bottom:2px}.parent-balance-due-box .parent-money-large{color:#dc2626;margin:0;font-size:26px}.parent-line-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--parent-border);font-size:14px}.parent-line-item:last-child{border-bottom:none}.parent-copy-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s ease}.parent-copy-pill:hover{background:#e2e8f0}.parent-nav-tabs,.parent-tabs-nav{position:fixed;bottom:18px;left:50%;transform:translate(-50%);display:flex;max-width:580px;width:calc(100% - 32px);padding:6px;background:#fffffff0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--parent-border);border-radius:20px;box-shadow:0 10px 30px #6b5be61f;z-index:50}.parent-tab-btn,.parent-tab-item{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border:none;background:transparent;color:var(--parent-muted);border-radius:14px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.parent-tab-btn--active,.parent-tab-item--active{background:var(--parent-primary-light);color:var(--parent-primary);font-weight:700}.parent-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.parent-modal-card{background:#fff;border-radius:20px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 45px #0003;display:flex;flex-direction:column}.parent-modal-header{padding:18px 22px;border-bottom:1px solid var(--parent-border);display:flex;justify-content:space-between;align-items:flex-start}.parent-modal-header h2{font-size:17px;font-weight:700;margin:0}.parent-modal-subtitle{font-size:12px;color:var(--parent-muted);margin:3px 0 0}.parent-modal-close{background:none;border:none;color:var(--parent-muted);cursor:pointer;padding:4px;border-radius:8px}.parent-modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:16px}.parent-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.parent-btn{padding:10px 18px;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:6px;transition:all .12s ease}.parent-btn--primary{background:var(--parent-primary);color:#fff}.parent-btn--primary:hover{background:var(--parent-primary-hover)}.parent-btn--secondary{background:#f1f5f9;color:var(--parent-text);border:1px solid #cbd5e1}.parent-btn--secondary:hover{background:#e2e8f0}.parent-btn--danger{background:var(--parent-danger);color:#fff}.parent-form-group{display:flex;flex-direction:column;gap:6px}.parent-form-group label{font-size:13px;font-weight:600;color:var(--parent-text)}.parent-form-group input,.parent-form-group select{padding:10px 12px;border:1px solid var(--parent-border);border-radius:10px;font-size:14px;color:var(--parent-text);background:#fff;outline:none}.parent-form-group input:focus,.parent-form-group select:focus{border-color:var(--parent-primary);box-shadow:0 0 0 2px #6b5be626}.parent-form-help{font-size:11px;color:var(--parent-muted)}.parent-alert{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:12px;font-size:13px}.parent-alert--error{background:var(--parent-danger-bg);color:var(--parent-danger);border:1px solid #fca5a5}.parent-alert--warning{background:var(--parent-amber-bg);color:var(--parent-amber);border:1px solid #fde68a}.parent-claim-alert--pending{background:var(--parent-amber-bg);color:var(--parent-amber);border:1px solid #fde68a;padding:12px 14px;border-radius:12px;display:flex;gap:10px;font-size:13px}.parent-claims-list{display:flex;flex-direction:column;gap:8px}.parent-claim-item{padding:12px 14px;border:1px solid var(--parent-border);border-radius:12px;background:#f8fafc}.parent-claim-item-head{display:flex;justify-content:space-between;align-items:center}.parent-claim-item-meta{display:flex;gap:16px;font-size:12px;color:var(--parent-muted);margin-top:4px}.parent-claim-item-reason{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--parent-danger);margin-top:6px}.parent-claim-item-confirmed{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--parent-success);margin-top:6px}.parent-claim-item--resolved{background:#f0fdf4;border-color:#bbf7d0}.parent-claim-item-resolved{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--parent-success);margin-top:6px}.parent-toast{position:fixed;bottom:84px;left:50%;transform:translate(-50%);background:#1e1b4b;color:#fff;padding:10px 18px;border-radius:12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px #0003;z-index:100}.parent-history-day-card{background:var(--parent-card-bg);border:1px solid var(--parent-border);border-radius:var(--parent-radius);padding:18px 20px;margin-bottom:14px;box-shadow:var(--parent-shadow)}.parent-history-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--parent-border)}.parent-history-day-date{font-size:15px;font-weight:700;color:var(--parent-text-heading)}@media(max-width:768px){.parent-portal-container{padding:14px 12px 115px}.parent-portal-header,.parent-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 10px;margin-bottom:16px}.parent-brand{order:1;width:auto!important;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:10px;margin-bottom:0}.parent-brand-copy{display:flex;flex-direction:column;min-width:0}.parent-brand-title{font-size:15px;font-weight:700;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-brand-sub{display:block!important;font-size:10.5px;color:var(--parent-muted);margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-header-actions{order:2;display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.parent-header-child-capsule{order:3;flex:0 0 100%!important;width:100%!important;max-width:none!important;display:flex;align-items:center;justify-content:space-between;padding:6px 14px 6px 8px;margin-top:2px;box-sizing:border-box}.parent-header-child-info{flex:1;min-width:0}.parent-header-child-name{font-size:13px;font-weight:600}.parent-header-child-meta{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.parent-header-child-chevron{margin-left:auto!important;flex-shrink:0}.parent-grid-2col{grid-template-columns:1fr;gap:16px}.parent-routine-grid{display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.parent-routine-card{padding:8px 2px;min-width:58px;border-radius:12px}.parent-routine-icon{width:30px;height:30px;margin-bottom:4px}.parent-routine-name{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-bottom:1px}.parent-routine-outcome{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.parent-routine-time{font-size:8px;margin-top:2px;white-space:nowrap}.parent-money-large{font-size:24px}.parent-nav-tabs{bottom:12px;padding:4px;width:calc(100% - 24px)}.parent-tab-btn{flex-direction:column;gap:2px;font-size:11px;padding:6px 2px}}.parent-diary-photos{margin-top:14px;padding-top:12px;border-top:1px dashed var(--parent-border)}.parent-diary-photos__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.parent-diary-photos__title{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--parent-text)}.parent-diary-photos__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.parent-diary-photo-thumb{position:relative;aspect-ratio:1;border-radius:var(--parent-radius-sm, 12px);overflow:hidden;background:var(--parent-border-subtle);border:1px solid var(--parent-border);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.parent-diary-photo-thumb:hover{transform:translateY(-2px);box-shadow:var(--parent-shadow)}.parent-diary-photo-thumb__img{width:100%;height:100%;object-fit:cover;display:block}.parent-diary-photo-thumb__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.parent-diary-photo-thumb__overlay{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:4px;background:#00000073;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s ease}.parent-diary-photo-thumb:hover .parent-diary-photo-thumb__overlay{opacity:1}.parent-diary-photos-loading,.parent-diary-photos-empty{display:flex;align-items:center;gap:6px;padding:8px 0}.parent-clothesline-stage{position:relative;width:100%;padding-top:14px;box-sizing:border-box}.parent-clothesline-wire{position:absolute;top:14px;left:8px;right:8px;height:2px;background:linear-gradient(90deg,transparent 0%,var(--parent-border, #cbd5e1) 12%,var(--brand-ink, var(--parent-border-strong, #94a3b8)) 50%,var(--parent-border, #cbd5e1) 88%,transparent 100%);opacity:.65;border-radius:1px;z-index:1}.parent-diary-photos__grid.parent-clothesline-grid{display:flex!important;justify-content:center;align-items:flex-start;gap:18px;flex-wrap:wrap;padding:6px 4px 10px;position:relative;z-index:2}.parent-diary-photo-thumb.parent-clothesline-item{position:relative;flex:0 1 180px;max-width:220px;min-width:130px;background:var(--surface-card, #ffffff);border:1px solid var(--parent-border, #e2e8f0);border-radius:10px;padding:6px 6px 10px;box-shadow:0 4px 12px #0000000f,0 1px 3px #0000000a;cursor:pointer;box-sizing:border-box;transform-origin:top center;overflow:visible!important;aspect-ratio:auto!important;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease}.parent-clothesline-clip{position:absolute;top:-10px;left:50%;transform:translate(-50%);width:14px;height:20px;background:linear-gradient(180deg,var(--color-primary-subtle, var(--parent-border-strong, #d97706)) 0%,var(--color-primary, #b45309) 60%,var(--brand-ink, #92400e) 100%);border-radius:3px 3px 2px 2px;box-shadow:0 2px 4px #0003,inset 0 1px #ffffff59;z-index:3;pointer-events:none}.parent-clothesline-clip-spring{position:absolute;top:8px;left:1px;right:1px;height:4px;background:var(--parent-border-strong, #78716c);border-radius:1px;box-shadow:0 .5px 1px #00000059}.parent-clothesline-img-wrap{position:relative;width:100%;aspect-ratio:4/3;min-height:100px;border-radius:6px;overflow:hidden;background:#f1f5f9}.parent-clothesline-img-wrap .parent-diary-photo-thumb__img{width:100%;height:100%;object-fit:cover;display:block}.parent-clothesline-grid--count-1 .parent-clothesline-item{transform:rotate(0)}.parent-clothesline-grid--count-2 .parent-clothesline-item--0{transform:rotate(-1.5deg)}.parent-clothesline-grid--count-2 .parent-clothesline-item--1{transform:rotate(1.5deg)}.parent-clothesline-grid--count-3 .parent-clothesline-item--0{transform:rotate(-1.8deg)}.parent-clothesline-grid--count-3 .parent-clothesline-item--1{transform:rotate(.8deg)}.parent-clothesline-grid--count-3 .parent-clothesline-item--2{transform:rotate(-1.2deg)}.parent-clothesline-item:hover,.parent-clothesline-item:focus-visible{transform:translateY(-4px) rotate(0) scale(1.02)!important;box-shadow:0 10px 24px #0000001f,0 2px 6px #0000000d;border-color:var(--color-primary, #6366f1);z-index:5;outline:2px solid var(--color-primary, #6366f1);outline-offset:2px}@media(max-width:640px){.parent-diary-photos__grid.parent-clothesline-grid{gap:12px;padding:4px 0 8px}.parent-diary-photo-thumb.parent-clothesline-item{flex:1 1 calc(50% - 12px);max-width:100%;min-width:110px;transform:none!important}}@media(prefers-reduced-motion:reduce){.parent-diary-photo-thumb.parent-clothesline-item{transform:none!important;transition:none!important}}[data-theme-motion=reduced] .parent-diary-photo-thumb.parent-clothesline-item,[data-motion=reduced] .parent-diary-photo-thumb.parent-clothesline-item{transform:none!important;transition:none!important}.parent-photo-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ad9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:env(safe-area-inset-top,16px) env(safe-area-inset-right,16px) env(safe-area-inset-bottom,16px) env(safe-area-inset-left,16px)}.parent-photo-modal-content{background:#18181b;border-radius:var(--parent-radius, 20px);width:100%;max-width:900px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000080;border:1px solid rgba(255,255,255,.1)}.parent-photo-modal-header{padding:12px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);color:#f4f4f5}.parent-photo-modal-title{font-size:14px;font-weight:600;color:#f4f4f5}.parent-photo-modal-close{background:#ffffff1a;border:none;border-radius:50%;color:#f4f4f5;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}.parent-photo-modal-close:hover{background:#fff3}.parent-photo-modal-stage{position:relative;flex:1;min-height:280px;display:flex;align-items:center;justify-content:center;padding:16px;background:#09090b}.parent-photo-viewport{max-width:100%;max-height:65vh;display:flex;align-items:center;justify-content:center}.parent-photo-display-img{max-width:100%;max-height:65vh;object-fit:contain;border-radius:8px;box-shadow:0 10px 25px #0000004d}.parent-photo-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;color:#fff;border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:2}.parent-photo-nav-btn:hover:not(:disabled){background:#ffffff4d;transform:translateY(-50%) scale(1.05)}.parent-photo-nav-btn:disabled{opacity:.2;cursor:not-allowed}.parent-photo-nav-btn--prev{left:14px}.parent-photo-nav-btn--next{right:14px}.parent-photo-loading,.parent-photo-error{text-align:center;padding:24px;color:#f4f4f5}.parent-photo-modal-strip{display:flex;gap:8px;padding:10px 16px;background:#18181b;border-top:1px solid rgba(255,255,255,.08);overflow-x:auto}.parent-photo-strip-thumb{width:48px;height:48px;border-radius:6px;overflow:hidden;border:2px solid transparent;padding:0;background:#27272a;cursor:pointer;flex-shrink:0;transition:border-color .15s ease}.parent-photo-strip-thumb--active{border-color:var(--parent-primary, #6b5be6)}.parent-photo-strip-thumb img{width:100%;height:100%;object-fit:cover;display:block}.parent-photo-strip-placeholder{width:100%;height:100%;background:#27272a}.parent-grid-2col,.parent-fees-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:start}@media(max-width:860px){.parent-grid-2col,.parent-fees-grid{grid-template-columns:1fr;gap:16px}}.parent-card{background:#fff;border:1.5px solid var(--parent-border, #e2e8f0);border-radius:18px;padding:22px;box-shadow:0 4px 16px #4e3c960d,inset 0 1.5px 2px #fff;position:relative;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease}@media(hover:hover)and (pointer:fine){.parent-card:hover{box-shadow:0 12px 28px #4e3c9614,inset 0 1.5px 2px #fff;border-color:#9382eb59}}.parent-page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.parent-page-header-titles{display:flex;flex-direction:column}.parent-page-title{font-size:22px;font-weight:700;color:#1e2448;margin:0;letter-spacing:-.3px}.parent-page-sub{font-size:13px;color:var(--parent-muted);margin:4px 0 0}.parent-month-nav,.parent-month-nav--3d{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(145deg,#fff,#f8faff);border:1.5px solid rgba(203,213,225,.95);border-radius:9999px;padding:4px 6px;box-shadow:0 4px 16px #4e3c9612,0 1px 2px #00000008,inset 0 1.5px 2px #fff;position:relative;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease}@media(hover:hover)and (pointer:fine){.parent-month-nav--3d:hover{transform:translateY(-2px);box-shadow:0 10px 24px #4e3c9621,inset 0 1.5px 2px #fff;border-color:#9382eb99}}.parent-month-nav-icon{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#6366f1;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:2px;box-shadow:0 2px 4px #6366f126,inset 0 1px 1px #fff}.parent-month-select-3d{border:none!important;background:transparent!important;padding:6px 28px 6px 8px!important;font-size:13.5px!important;font-weight:700!important;color:#1e1b4b!important;min-width:145px;cursor:pointer;outline:none!important;box-shadow:none!important;-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;z-index:2}.parent-month-nav-chevron{position:absolute;right:12px;color:#818cf8;pointer-events:none;z-index:1;transition:transform .15s ease,color .15s ease}.parent-month-nav--3d:hover .parent-month-nav-chevron{transform:translateY(1.5px);color:#4f46e5}.parent-month-nav-display{display:flex;align-items:center;gap:7px;padding:4px 12px;-webkit-user-select:none;user-select:none}.parent-month-calendar-icon{color:#6366f1;flex-shrink:0}.parent-month-nav-label{font-size:13.5px;font-weight:750;color:#1e1b4b;letter-spacing:-.1px}.parent-month-nav-btn{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,#fff,#f1f3fd);border:1.5px solid rgba(203,213,225,.9);display:flex;align-items:center;justify-content:center;color:#475569;cursor:pointer;box-shadow:0 2px 6px #0000000d,inset 0 1.5px 1.5px #fff;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,background .15s ease,color .15s ease,border-color .15s ease;flex-shrink:0}@media(hover:hover)and (pointer:fine){.parent-month-nav-btn:hover:not(:disabled){transform:scale(1.1);background:#ede9fe;color:#4f46e5;border-color:#c7d2fe;box-shadow:0 4px 12px #6366f140,inset 0 1.5px 1.5px #fff}}.parent-month-nav-btn:active:not(:disabled){transform:scale(.95);box-shadow:0 1px 3px #0000001a}.parent-month-nav-btn:disabled{opacity:.35;cursor:not-allowed;background:#f8fafc;border-color:#e2e8f0;box-shadow:none;color:#94a3b8}.parent-subtabs{display:flex;gap:10px;margin:16px 0 22px;flex-wrap:wrap}.parent-subtab-btn{padding:9px 20px;border-radius:9999px;font-size:13px;font-weight:600;border:1.5px solid var(--parent-border, #e2e8f0);background:#fff;color:#475569;cursor:pointer;box-shadow:0 2px 8px #4e3c960a,inset 0 1.5px 2px #fff;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,background .18s ease,border-color .15s ease;display:inline-flex;align-items:center;gap:6px}.parent-subtab-btn:hover{background:#f8fafc;transform:translateY(-2px);box-shadow:0 8px 18px #4e3c961a,inset 0 1.5px 2px #fff;border-color:#9382eb66}.parent-subtab-btn--active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:#4338ca;box-shadow:0 6px 18px #6366f159,inset 0 1.5px 2px #ffffff59;transform:translateY(-1px)}.parent-subtab-btn--active:hover{background:linear-gradient(135deg,#4f46e5,#3730a3);transform:translateY(-2px);box-shadow:0 8px 22px #6366f173,inset 0 1.5px 2px #ffffff59}@media(max-width:768px){.parent-page-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.parent-page-header-titles{width:100%}.parent-month-nav--3d,.parent-month-nav{align-self:flex-start}.parent-subtabs{display:flex;flex-direction:row;width:100%;gap:6px;margin:2px 0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 1px 6px}.parent-subtabs::-webkit-scrollbar{display:none}.parent-subtab-btn{flex:1 1 0px;min-width:max-content;padding:8px 10px;font-size:12px;justify-content:center;text-align:center;white-space:nowrap}}.parent-balance-due-box{background:linear-gradient(135deg,#fff1f2,#ffe4e6);border:1.5px solid #fecdd3;border-radius:14px;padding:16px 20px;margin-top:14px;text-align:center;box-shadow:0 4px 14px #e11d480f,inset 0 1.5px 2px #fff}.parent-balance-due-box--paid{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1.5px solid #a7f3d0;box-shadow:0 4px 14px #10b98114,inset 0 1.5px 2px #fff}.parent-balance-due-label{font-size:12px;font-weight:700;color:#e11d48;display:block;margin-bottom:2px}.parent-balance-due-box--paid .parent-balance-due-label{color:#059669}.parent-money-large{font-size:26px;font-weight:800;color:#e11d48;letter-spacing:-.5px}.parent-balance-due-box--paid .parent-money-large{color:#059669}.parent-bank-info-table{display:flex;flex-direction:column;gap:10px;margin-top:12px;font-size:13px}.parent-bank-info-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.parent-bank-info-label{color:var(--parent-muted);font-size:12px;flex-shrink:0}.parent-bank-info-value{font-weight:600;color:var(--parent-text-heading);display:flex;align-items:center;gap:6px;text-align:right;word-break:break-all}.parent-copy-pill{padding:2px 6px;border-radius:4px;background:#f1f5f9;border:1px solid #e2e8f0;cursor:pointer;display:inline-flex;align-items:center;color:#64748b;transition:all .12s}.parent-copy-pill:hover{background:#e2e8f0;color:#1e293b}.parent-fees-primary-btn{width:100%;padding:12px 18px;border-radius:12px;background:#5b58eb;color:#fff;font-size:14px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;transition:background .15s ease}.parent-fees-primary-btn:hover{background:#4a47db}.parent-diary-timeline{display:flex;flex-direction:column;gap:20px;position:relative}.parent-timeline-item{display:flex;gap:16px;align-items:flex-start}.parent-timeline-date{width:84px;flex-shrink:0;font-size:12px;font-weight:700;color:#1e2448;line-height:1.3;text-align:right;padding-top:6px}.parent-timeline-line-wrap{display:flex;flex-direction:column;align-items:center;align-self:stretch;width:14px;flex-shrink:0;padding-top:8px}.parent-timeline-dot{width:10px;height:10px;border-radius:50%;background:#5b58eb;flex-shrink:0}.parent-timeline-dot--purple{background:#8b5cf6}.parent-timeline-dot--orange{background:#f97316}.parent-timeline-line{width:2px;flex-grow:1;background:#e2e8f0;margin-top:4px}.parent-timeline-card{flex-grow:1;background:#fff;border:1px solid var(--parent-border);border-radius:16px;padding:16px 20px;box-shadow:0 2px 8px #7882c80a}.parent-timeline-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.parent-timeline-card-title-group{display:flex;gap:12px;align-items:center}.parent-timeline-card-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.parent-timeline-card-icon--purple{background:#f3f0ff;color:#7c3aed}.parent-timeline-card-icon--orange{background:#fff7ed;color:#ea580c}.parent-timeline-card-icon--blue{background:#eff6ff;color:#2563eb}.parent-timeline-card-title{font-size:15px;font-weight:700;color:#1e2448;margin:0}.parent-timeline-card-meta{font-size:11px;color:var(--parent-muted);margin-top:2px}.parent-timeline-card-body{font-size:13px;color:#334155;line-height:1.5;margin:10px 0 14px}.parent-photo-count-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:9999px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12px;font-weight:600;color:#475569;cursor:pointer;transition:all .12s}.parent-photo-count-pill:hover{background:#f1f5f9;color:#1e293b}.parent-history-day-card{background:#fff;border:1.5px solid var(--parent-border);border-radius:16px;padding:16px 20px;margin-bottom:14px;box-shadow:0 4px 14px #4e3c960d,inset 0 1.5px 2px #fff;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,border-color .15s ease}@media(hover:hover)and (pointer:fine){.parent-history-day-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px #4e3c961a,inset 0 1.5px 2px #fff;border-color:#9382eb66}.parent-history-routine-cell:hover .parent-history-routine-circle{transform:scale(1.12) rotate(-3deg);box-shadow:0 6px 14px #4e3c9624}}.parent-history-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.parent-history-day-title-wrap{display:flex;align-items:center;gap:10px}.parent-history-day-title{font-size:15px;font-weight:700;color:#1e1b4b}.parent-history-chevron{color:#94a3b8}.parent-history-routines-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}@media(max-width:1024px){.parent-history-routines-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.parent-history-routines-grid{grid-template-columns:repeat(2,1fr)}}.parent-history-routine-cell{display:flex;align-items:center;gap:10px;padding:4px 2px;cursor:pointer}.parent-history-routine-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #0000000a,inset 0 1px 1px #fffc;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}.parent-history-routine-circle--breakfast{background:#fef3c7;color:#d97706}.parent-history-routine-circle--lunch{background:#dbeafe;color:#2563eb}.parent-history-routine-circle--snack{background:#ffedd5;color:#ea580c}.parent-history-routine-circle--snack-disabled{background:#fee2e2;color:#ef4444}.parent-history-routine-circle--nap{background:#ede9fe;color:#7c3aed}.parent-history-routine-circle--poo{background:#fdf2f8;color:#db2777}.parent-history-routine-circle--pickup{background:#d1fae5;color:#059669}.parent-history-routine-text{display:flex;flex-direction:column;min-width:0}.parent-history-routine-title{font-size:12px;font-weight:700;color:#1e1b4b;margin-bottom:2px;white-space:nowrap}.parent-history-routine-outcome{font-size:11px;color:#4b5563;line-height:1.25}.parent-history-routine-time{font-size:10px;color:#6b7280;margin-top:1px}.parent-learning-card{background:var(--parent-card-bg, #ffffff);border:1px solid var(--parent-border, #e2e8f0);border-radius:16px;box-shadow:0 4px 16px #0000000a;padding:18px 20px;margin-top:14px;width:100%;box-sizing:border-box}.parent-learning-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.parent-learning-title-wrap{display:flex;align-items:center;gap:10px}.parent-learning-icon{width:34px;height:34px;border-radius:10px;background:var(--pastel-purple-bg, #ede9fe);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));display:grid;place-items:center;flex-shrink:0}.parent-learning-title{margin:0;font-size:16px;font-weight:700;color:var(--parent-text-heading, #1e1b4b)}.parent-learning-subtitle{display:block;font-size:11.5px;color:var(--parent-muted, #64748b);margin-top:2px}.parent-learning-date-selector{display:flex;align-items:center;gap:6px}.parent-learning-date-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--parent-primary, #6c5ce7);background:var(--pastel-purple-bg, #ede9fe);padding:4px 10px;border-radius:8px}.parent-learning-empty,.parent-learning-loading,.parent-learning-error{text-align:center;padding:24px 16px;color:var(--parent-muted, #64748b)}.parent-learning-empty h4{margin:0 0 6px;font-size:14px;font-weight:700;color:var(--parent-text-heading, #1e1b4b)}.parent-learning-btn-retry{margin-top:10px;padding:6px 14px;font-size:12px;font-weight:600;border-radius:8px;background:var(--parent-primary, #6c5ce7);color:#fff;border:none;cursor:pointer}.parent-learning-content{display:flex;flex-direction:column;gap:12px}.parent-learning-hero-row{display:flex;flex-direction:column;gap:6px;background:var(--surface-subtle, #faf8ff);border:1px solid var(--border-color-card, #ede9fe);border-radius:12px;padding:14px 16px}.parent-learning-badge-date{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--brand-ink, var(--color-primary-dark, #3f2e96));width:fit-content}.parent-learning-lesson-title{margin:0;font-size:16px;font-weight:700;color:var(--brand-ink, var(--color-primary-dark, #3f2e96));line-height:1.35}.parent-learning-theme{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--color-text-body, #4a455e)}.parent-learning-theme-tag{font-size:10.5px;font-weight:700;text-transform:uppercase;background:var(--pastel-purple-bg, #ede9fe);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));padding:2px 6px;border-radius:4px}.parent-learning-section-block{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-subtle, #f1f5f9);border-radius:10px;padding:12px 14px}.parent-learning-block-title{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--parent-text-heading, #1e1b4b)}.parent-learning-block-text{margin:0;font-size:13px;line-height:1.6;color:var(--parent-text-body, #334155);white-space:pre-line}.parent-learning-history-nav{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.parent-learning-history-label{font-size:12px;font-weight:600;color:var(--parent-muted, #64748b)}.parent-learning-history-pills{display:flex;gap:6px;flex-wrap:wrap}.parent-learning-pill{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:6px;border:1px solid var(--border-color-card, #e2e8f0);background:var(--surface-input, #f8fafc);color:var(--color-text-body, #475569);cursor:pointer;transition:all .15s ease}.parent-learning-pill:hover,.parent-learning-pill.active{background:var(--pastel-purple-bg, #ede9fe);color:var(--brand-ink, var(--color-primary-dark, #3f2e96));border-color:var(--pastel-purple-border, #ddd6fe)}.parent-learning-btn-nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border-color-card, #e2e8f0);background:var(--surface-card, #ffffff);color:var(--color-text-body, #475569);cursor:pointer;transition:all .15s ease}.parent-learning-btn-nav:hover:not(:disabled){background:var(--pastel-purple-bg, #ede9fe);color:var(--parent-primary, #6c5ce7);border-color:var(--pastel-purple-border, #ddd6fe)}.parent-learning-btn-nav:disabled{opacity:.4;cursor:not-allowed}.parent-learning-date-input{font-size:12px;padding:3px 8px;border-radius:6px;border:1px solid var(--border-color-card, #e2e8f0);background:var(--surface-input, #f8fafc);color:var(--color-text-body, #334155)}.parent-learning-btn-today{font-size:11.5px;font-weight:600;padding:4px 8px;border-radius:6px;border:1px solid var(--pastel-purple-border, #ddd6fe);background:var(--pastel-purple-bg, #ede9fe);color:var(--parent-primary, #6c5ce7);cursor:pointer;transition:all .15s ease}.parent-learning-btn-today:hover:not(:disabled){background:var(--parent-primary, #6c5ce7);color:#fff}.school-year-settings-section{display:flex;flex-direction:column;gap:20px}.school-years-table-card{background:var(--bg-card, #ffffff);border:1px solid var(--border-color-card, #e2e8f0);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.school-years-desktop-table{display:block;width:100%}.school-years-table{width:100%;border-collapse:collapse;text-align:left;font-size:13.5px}.school-years-table thead th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a}.school-years-table tbody tr{border-bottom:1px solid var(--border-color-card, #e2e8f0);transition:background-color .15s ease}.school-years-table tbody tr:hover{background:var(--surface-hover, #f8f7fd)}.school-years-table tbody tr.table-row-active-year{background:#10b9810a}.school-years-table td{padding:14px 16px;vertical-align:middle}.school-years-mobile-cards{display:none;flex-direction:column;gap:12px}.school-year-mobile-card{background:var(--bg-card, #ffffff);border:1.5px solid var(--border-color-card, #e2e8f0);border-radius:12px;padding:16px;box-shadow:0 2px 6px #00000008;display:flex;flex-direction:column;gap:10px}.school-year-mobile-card.is-active-year{border-color:#10b981;background:#10b98105}.school-year-mobile-card__header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.school-year-mobile-card__title{font-size:15px;font-weight:700;color:var(--color-text-title, #1e293b);display:flex;align-items:center;gap:6px}.school-year-mobile-card__meta{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--color-text-muted, #64748b)}.school-year-header__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.school-years-table td:last-child{white-space:nowrap}.school-years-table td .d-flex{flex-wrap:wrap;gap:6px}.school-year-mobile-card__actions{display:flex;gap:8px;padding-top:8px;border-top:1px dashed var(--border-color-card, #e2e8f0);justify-content:flex-end;flex-wrap:wrap}.badge-current-year{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:9999px;background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.school-year-action-btn,.school-years-table .btn,.school-years-table .btn-group .btn,.school-year-mobile-card__actions .btn{display:inline-flex!important;align-items:center!important;gap:6px!important}.school-years-table .btn svg,.school-year-action-btn svg,.badge-current-year svg{flex-shrink:0}.badge-status-active{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:#10b981;color:#fff}.badge-status-planned{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:#fef3c7;color:#b45309;border:1px solid #fde68a}.badge-status-ended{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}@media(max-width:768px){.school-years-desktop-table{display:none!important}.school-years-mobile-cards{display:flex!important}}.school-year-settings-section .school-year-icon-line,.school-year-settings-section .school-year-name-group,.school-year-settings-section .school-year-date-group,.school-year-settings-section .school-year-mobile-card__title,.school-year-settings-section .school-year-mobile-card__meta,.school-year-settings-section .badge-current-year,.school-year-settings-section button{display:inline-flex;align-items:center;vertical-align:middle;gap:8px}.school-year-settings-section .school-year-name-group,.school-year-settings-section .school-year-mobile-card__title{flex-wrap:wrap;justify-content:flex-start}.school-year-settings-section .school-year-date-group{display:flex;justify-content:center}.school-year-settings-section .school-year-date-group>span{text-align:center}.school-year-settings-section .school-year-icon-line>svg,.school-year-settings-section .school-year-name-group svg,.school-year-settings-section .school-year-date-group>svg,.school-year-settings-section .school-year-mobile-card__title svg,.school-year-settings-section .school-year-mobile-card__meta>svg,.school-year-settings-section .badge-current-year>svg,.school-year-settings-section button>svg{flex-shrink:0}.school-year-settings-section button .btn__text{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.school-year-settings-section button .btn__text>svg{flex-shrink:0}.school-year-settings-section .btn-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.school-year-settings-section .school-year-icon-line,.school-year-settings-section .school-year-name-group,.school-year-settings-section .school-year-date-group{line-height:1.5}.class-warning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:var(--space-6, 24px)}@media(max-width:1024px){.class-warning-grid{grid-template-columns:1fr}}.class-table-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-card, 0 2px 8px rgba(108, 92, 231, .04));overflow:hidden;margin-bottom:var(--space-6, 24px)}.class-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative;background:var(--color-surface, #ffffff)}.class-table-wrap::-webkit-scrollbar{height:6px}.class-table-wrap::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.class-table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.class-table-wrap::-webkit-scrollbar-thumb:hover{background:#94a3b8}.class-table-scroll-hint{display:none;align-items:center;justify-content:flex-end;gap:6px;font-size:11.5px;color:var(--color-text-muted, #71717a);background:var(--color-background-soft, #faf8ff);border-bottom:1px solid var(--border-color-card, #e8e6f5);padding:8px 18px;font-style:italic}@media(max-width:1360px){.class-table-scroll-hint{display:flex}}.class-col-count{font-size:11.5px;font-weight:600;color:var(--table-header-color, inherit);opacity:1;letter-spacing:normal;text-transform:none;margin-left:4px}.class-table{width:100%;min-width:1440px;border-collapse:separate;border-spacing:0}.class-table thead th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;font-size:12.5px;text-transform:uppercase;padding:12px 14px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap;letter-spacing:.3px}.class-table tbody td{padding:12px 14px;border-bottom:1px solid var(--border-color-subtle, #f1f5f9);font-size:13px;vertical-align:middle}.class-table tbody tr{transition:background-color .15s ease}.class-table tbody tr:hover{background-color:var(--surface-hover, #f8f7fd)}.class-table .col-stt{width:52px;min-width:52px;max-width:52px;text-align:center;white-space:nowrap;font-weight:600}.class-table tbody td.col-stt{color:var(--color-text-muted, #64748b)}.class-table thead th.col-stt{color:var(--table-header-color, #ffffff)!important}.class-table .col-name{min-width:155px;white-space:nowrap;text-align:left}.class-table thead th.col-name{text-align:left}.class-table .col-grade{min-width:85px;white-space:nowrap;text-align:center}.class-table .col-year{min-width:110px;white-space:nowrap;font-weight:700;text-align:center}.class-table tbody td.col-year{color:var(--color-text-title, #1e293b)}.class-table thead th.col-year{color:var(--table-header-color, #ffffff)!important}.class-table .col-teacher{min-width:145px;white-space:nowrap;text-align:center}.class-table .col-assist{min-width:135px;white-space:nowrap;text-align:center}.class-table .col-room{min-width:100px;white-space:nowrap;text-align:center}.class-table .col-enrollment{min-width:140px;white-space:nowrap;text-align:center}.class-table .col-start,.class-table .col-end{min-width:105px;white-space:nowrap;text-align:center}.class-table .col-status{min-width:135px;white-space:nowrap;text-align:center}.class-table .col-note{min-width:140px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.class-table .col-actions{min-width:140px;width:140px;text-align:center;white-space:nowrap;position:sticky;right:0;z-index:2;box-shadow:-6px 0 10px #0000000a}.class-table thead th.col-actions{background:var(--table-header-bg, #ede9fe);border-right:1px solid var(--table-header-separator, #ffffff);z-index:3}.class-table tbody td.col-actions{background:var(--surface-card, #ffffff)}.class-table tbody tr:hover td.col-actions{background:var(--surface-hover, #f8f7fd)}@media(max-width:768px){.class-table .col-actions,.class-table thead th.col-actions,.class-table tbody td.col-actions{position:static!important;right:auto!important;box-shadow:none!important}}.class-secondary-code{display:inline-block;font-size:12px;font-family:inherit;font-weight:600;color:var(--color-text-muted, #64748b);background:#64748b14;padding:1px 6px;border-radius:4px;margin-top:2px;letter-spacing:.02em}.class-enrollment-bar{height:5px;border-radius:3px;background:#e2e8f0;margin-top:4px;overflow:hidden}.class-enrollment-fill{height:100%;border-radius:3px;transition:width .3s ease}.class-action-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:none;background:transparent;color:var(--brand-ink, var(--color-primary-dark, #3f2e96));cursor:pointer;transition:all .15s ease;padding:0}.class-action-btn:hover{background:#0000000d;transform:translateY(-1px)}.class-action-btn:focus-visible{outline:2px solid var(--color-primary, #6c5ce7);outline-offset:1px}.class-filters-container{margin-bottom:var(--space-4, 16px)}.class-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3, 12px)}.class-filter-select{height:38px;padding:0 32px 0 12px;border-radius:var(--radius-md, 8px);border:1px solid var(--color-border, #e2e8f0);background-color:var(--color-surface, #ffffff);color:var(--color-text-body, #334155);font-size:13px;font-weight:500;transition:border-color .15s ease,box-shadow .15s ease;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:16px 16px}.class-filter-select:hover{border-color:#cbd5e1}.class-filter-select:focus-visible{outline:none;border-color:var(--color-primary, #6c5ce7);box-shadow:0 0 0 3px #6c5ce71f}.class-filter-search{flex:1 1 260px;min-width:200px}.class-filter-reset-btn{display:inline-flex;align-items:center;gap:4px;height:38px;padding:0 14px;border-radius:var(--radius-md, 8px);border:1px solid #cbd5e1;background:#f8fafc;color:var(--color-text-body, #334155);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.class-filter-reset-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:var(--color-text-title, #1e293b)}.class-filter-reset-btn:focus-visible{outline:2px solid var(--color-primary, #6c5ce7);outline-offset:1px}@media(max-width:768px){.class-filter-row{flex-direction:column;align-items:stretch;gap:var(--space-3, 12px)}.class-filter-search{flex:0 0 auto;width:100%;min-width:0}.class-filter-select{width:100%}.class-filter-reset-btn{width:100%;justify-content:center}.class-action-btn{width:34px;height:34px}}.student-name-cell{display:flex;align-items:center;gap:10px}.student-avatar-circle{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:var(--pastel-pink-gradient);border:1px solid var(--pastel-pink-border);box-shadow:var(--shadow-subtle);flex-shrink:0}.student-avatar-circle.male{background:var(--pastel-purple-gradient);border-color:var(--pastel-purple-border)}.student-detail-header-card{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1.5px solid var(--border-color-card);margin-bottom:16px}.student-detail-avatar-large{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:32px;background:var(--pastel-pink-gradient);border:2px solid var(--pastel-pink-border);box-shadow:var(--shadow-card)}.student-filter-toolbar .filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.student-filter-search{flex:1 1 260px;min-width:200px}.student-filter-toolbar .filter-select{width:auto;min-width:140px;flex:0 1 auto}@media(min-width:1024px){.student-filter-toolbar .filter-row{flex-wrap:nowrap}}@media(max-width:767px){.student-filter-toolbar .filter-row{flex-direction:column;align-items:stretch;gap:var(--space-3, 12px)}.student-filter-search{flex:0 0 auto;width:100%;min-width:0}.student-filter-toolbar .filter-select{width:100%;min-width:0;flex:0 0 auto}.student-filter-reset-btn{width:100%;justify-content:center}}.student-table-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-card, 0 2px 8px rgba(108, 92, 231, .04));overflow:hidden;margin-bottom:var(--space-6, 24px)}.student-table-module-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative;background:var(--surface-card, #ffffff)}.student-table-module-wrap::-webkit-scrollbar{height:6px}.student-table-module-wrap::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.student-table-module-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.student-table-module-wrap::-webkit-scrollbar-thumb:hover{background:#94a3b8}.student-table-module-scroll-hint{display:none;align-items:center;justify-content:flex-end;gap:6px;font-size:11.5px;color:var(--color-text-muted, #71717a);background:var(--color-background-soft, #faf8ff);border-bottom:1px solid var(--border-color-card, #e8e6f5);padding:8px 18px;font-style:italic}@media(max-width:1360px){.student-table-module-scroll-hint{display:flex}}.student-col-count{font-size:11.5px;font-weight:600;color:var(--table-header-color, inherit);opacity:1;letter-spacing:normal;text-transform:none;margin-left:4px}.student-module-table{width:100%;min-width:1200px;border-collapse:separate;border-spacing:0}.student-module-table thead th{background:var(--table-header-bg, #ede9fe);color:var(--table-header-color, #3f2e96);font-weight:700;font-size:12.5px;text-transform:uppercase;padding:12px 14px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a;white-space:nowrap;letter-spacing:.3px}.student-module-table tbody td{padding:12px 14px;border-bottom:1px solid #f1f5f9;font-size:13px;vertical-align:middle}.student-module-table tbody tr{transition:background-color .15s ease}.student-module-table tbody tr:hover{background-color:#f8fafc}.student-module-table .col-stt{width:52px;min-width:52px;max-width:52px;text-align:center;white-space:nowrap;font-weight:600}.student-module-table tbody td.col-stt{color:var(--color-text-muted, #64748b)}.student-module-table thead th.col-stt{color:var(--table-header-color, #ffffff)!important}.student-module-table .col-name{min-width:210px;white-space:nowrap;text-align:left}.student-module-table thead th.col-name{text-align:left}.student-module-table .col-dob{min-width:110px;white-space:nowrap;text-align:center}.student-module-table .col-gender{min-width:85px;white-space:nowrap;text-align:center}.student-module-table .col-class{min-width:135px;white-space:nowrap;text-align:center}.student-module-table .col-parent{min-width:175px;white-space:nowrap;text-align:center}.student-module-table .col-health{min-width:165px;white-space:nowrap;text-align:center}.student-module-table .col-status{min-width:130px;white-space:nowrap;text-align:center}.student-module-table .col-actions{min-width:110px;width:110px;text-align:center;white-space:nowrap;position:sticky;right:0;z-index:2;box-shadow:-6px 0 10px #0000000a}.student-module-table thead th.col-actions{background:var(--table-header-bg, #ede9fe);border-right:1px solid var(--table-header-separator, #ffffff);z-index:3}.student-module-table tbody td.col-actions{background:var(--surface-card, #ffffff)}.student-module-table tbody tr:hover td.col-actions{background:var(--surface-hover, #f8f7fd)}@media(max-width:768px){.student-module-table .col-actions,.student-module-table thead th.col-actions,.student-module-table tbody td.col-actions{position:static!important;right:auto!important;box-shadow:none!important}}.student-action-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:none;background:transparent;cursor:pointer;transition:all .15s ease;padding:0;color:var(--brand-ink, var(--color-primary-dark, #3f2e96))}.student-action-btn:hover{background:color-mix(in srgb,var(--color-primary, #6c5ce7) 12%,transparent);color:var(--color-primary, #6c5ce7);transform:translateY(-1px)}.student-action-btn:focus-visible{outline:2px solid var(--color-primary, #6c5ce7);outline-offset:1px}.staff-warning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:var(--space-6)}@media(max-width:1024px){.staff-warning-grid{grid-template-columns:1fr}}.staff-table-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, #e8e6f5);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-card, 0 2px 8px rgba(108, 92, 231, .04));overflow:hidden;margin-bottom:var(--space-6, 24px)}.staff-table-wrap{width:100%;overflow-x:auto;position:relative}.staff-col-count{font-size:11.5px;font-weight:600;color:var(--table-header-color, inherit);opacity:1;letter-spacing:normal;text-transform:none;margin-left:4px}.staff-table th{background:var(--table-header-bg, #ede9fe);font-size:12.5px;font-weight:700;color:var(--table-header-color, #3f2e96);text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid var(--table-header-border, #ddd6fe);border-right:1px solid var(--table-header-separator, #ffffff);box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a}.staff-table .col-actions{min-width:200px;width:200px;text-align:center;white-space:nowrap;position:sticky;right:0;z-index:2;box-shadow:-6px 0 10px #0000000a}.staff-table thead th.col-actions{background:var(--table-header-bg, #ede9fe);border-right:1px solid var(--table-header-separator, #ffffff);z-index:3}.staff-table tbody td.col-actions{background:var(--surface-card, var(--color-surface, #ffffff))}.staff-table tbody tr:hover td.col-actions{background:var(--surface-hover, #f8f7fd)}.staff-table tbody tr.staff-row-inactive td.col-actions{background:#fafafa}.staff-table tbody tr.staff-row-inactive:hover td.col-actions{background:#f1f5f9}@media(max-width:768px){.staff-table .col-actions,.staff-table thead th.col-actions,.staff-table tbody td.col-actions{position:static!important;right:auto!important;box-shadow:none!important}}.staff-filter-card{margin-bottom:var(--space-4, 16px)}.staff-filter-search{flex:1 1 260px;min-width:200px}.staff-filter-reset-btn{display:inline-flex;align-items:center;gap:4px}@media(max-width:768px){.staff-filter-row{flex-direction:column;align-items:stretch;gap:var(--space-3, 12px)}.staff-filter-search{flex:0 0 auto;width:100%;min-width:0}.staff-filter-row .filter-select{width:100%}.staff-filter-reset-btn{width:100%;justify-content:center}}.staff-area-container{display:flex;flex-direction:column;gap:16px}.staff-area-tabs-nav{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-color-card, #e2e8f0);padding-bottom:8px;margin-bottom:8px}.staff-area-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--color-text-muted, #64748b);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.staff-area-tab-btn:hover{color:var(--color-primary, #4f46e5);background:var(--color-primary-light, #eef2ff)}.staff-area-tab-btn.active{color:var(--color-primary, #4f46e5);background:var(--color-primary-light, #eef2ff);border-color:var(--color-primary-border, #c7d2fe)}.staff-area-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 24px;background:#fff;border:1px solid #fee2e2;border-radius:12px;gap:12px}.staff-area-denied h2{font-size:18px;font-weight:700;color:#991b1b;margin:0}.staff-area-denied p{font-size:14px;color:#64748b;margin:0}.staff-tab-denied,.permissions-tab-denied{display:flex;align-items:center;gap:12px;padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:13.5px;font-weight:500}.school-admin-email-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#475569}.school-admin-email{font-family:inherit;font-size:12px;color:#334155}.school-admin-school-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;font-weight:600;color:#334155}.parent-payment-card{background:var(--surface-card, #ffffff);border:1px solid var(--border-color-card, var(--border-color, #e2e8f0));border-radius:16px;padding:24px;margin-top:24px;box-shadow:0 1px 3px #0000000d,0 1px 2px -1px #0000000d;transition:border-color .2s ease,box-shadow .2s ease}@media(max-width:640px){.parent-payment-card{padding:16px;border-radius:14px;margin-top:16px}}.parent-payment-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.parent-payment-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.parent-payment-title-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--color-primary-light, var(--color-primary-subtle, #f0edfe));color:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)))}.parent-payment-notice{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:12px;font-size:13px;line-height:1.5;margin-bottom:20px;background:#f8fafc;border:1px solid #e2e8f0;color:#334155}.parent-payment-notice--warning{background:#fffbeb;border-color:#fef3c7;color:#92400e}.parent-payment-notice-icon{flex-shrink:0;margin-top:2px}.parent-payment-section{margin-bottom:24px}.parent-payment-section-title{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 12px}.parent-payment-sharing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.parent-payment-toggle-card{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:12px;border:1.5px solid var(--border-color-card, var(--border-color, #e2e8f0));background:var(--surface-muted, #f8fafc);cursor:pointer;transition:all .15s ease-in-out;-webkit-user-select:none;user-select:none}.parent-payment-toggle-card:hover{border-color:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)));background:#fff}.parent-payment-toggle-card--active{background:var(--color-primary-light, var(--color-primary-subtle, #f0edfe));border-color:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)))}.parent-payment-toggle-checkbox{margin-top:3px;accent-color:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)));cursor:pointer;width:16px;height:16px}.parent-payment-subtitle{font-size:13px;color:var(--text-secondary, #64748b);margin:3px 0 0}.parent-payment-notice-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--color-primary-light, var(--color-primary-subtle, #f0edfe));color:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)));flex-shrink:0}.parent-payment-disclosure-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;font-size:12px;font-weight:600;color:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)));cursor:pointer;padding:2px 6px;border-radius:6px;transition:background .15s ease}.parent-payment-disclosure-btn:hover{background:#0000000a}.parent-payment-disclosure-content{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-color, #e2e8f0);font-size:12px;color:var(--text-muted, #64748b);line-height:1.5}.parent-payment-card-badge{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;flex-shrink:0;box-shadow:0 4px 8px -2px #00000014,inset 0 1px 1px #fff9;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.parent-payment-toggle-card:hover .parent-payment-card-badge{transform:translateY(-2px) scale(1.05)}.parent-payment-card-badge--mint{background:linear-gradient(135deg,#a7f3d0,#34d399);color:#065f46}.parent-payment-card-badge--sky{background:linear-gradient(135deg,#bae6fd,#38bdf8);color:#0369a1}.parent-payment-card-badge--pink{background:linear-gradient(135deg,#fbcfe8,#f472b6);color:#9d174d}.parent-payment-card-badge--violet{background:linear-gradient(135deg,#ddd6fe,#a78bfa);color:#5b21b6}.parent-payment-toggle-card--mint:hover{border-color:#34d399}.parent-payment-toggle-card--mint.parent-payment-toggle-card--active{background:#ecfdf5;border-color:#10b981}.parent-payment-toggle-card--sky:hover{border-color:#38bdf8}.parent-payment-toggle-card--sky.parent-payment-toggle-card--active{background:#f0f9ff;border-color:#0ea5e9}.parent-payment-toggle-card--pink:hover{border-color:#f472b6}.parent-payment-toggle-card--pink.parent-payment-toggle-card--active{background:#fdf2f8;border-color:#ec4899}.parent-payment-toggle-card--violet:hover{border-color:#a78bfa}.parent-payment-toggle-card--violet.parent-payment-toggle-card--active{background:#f5f3ff;border-color:#8b5cf6}.parent-payment-toggle-content{flex:1;display:flex;flex-direction:column;gap:4px}.parent-payment-toggle-header{display:flex;align-items:center;justify-content:space-between}.parent-payment-toggle-card .parent-payment-toggle-label,.parent-payment-toggle-label{font-family:inherit;font-size:14.5px;font-weight:700;line-height:1.35;color:var(--text-primary, #0f172a);margin:0;cursor:pointer}.parent-payment-toggle-card .parent-payment-toggle-desc,.parent-payment-toggle-desc{font-family:inherit;font-size:12.5px;font-weight:400;line-height:1.45;color:var(--text-secondary, #64748b);display:block;cursor:pointer}.parent-payment-qr-preview-card{margin-top:14px;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid var(--border-color-card, var(--border-color, #e2e8f0));border-radius:14px;box-shadow:0 4px 12px -2px #0000000d}.parent-payment-qr-preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px dashed #cbd5e1}.parent-payment-qr-preview-bank{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-primary, #1e293b)}.parent-payment-qr-badge{display:inline-block;padding:2px 8px;background:#e0e7ff;color:#3730a3;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.5px}.parent-payment-qr-preview-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.parent-payment-qr-label{display:block;font-size:11px;color:var(--text-muted, #64748b);margin-bottom:2px}.parent-payment-qr-val{font-family:inherit;font-size:13.5px;font-weight:700;color:var(--text-primary, #0f172a)}.parent-payment-bank-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;padding:18px;border-radius:14px;background:var(--surface-muted, #f8fafc);border:1px solid var(--border-color-card, var(--border-color, #e2e8f0))}@media(max-width:640px){.parent-payment-bank-form{grid-template-columns:1fr;padding:14px;gap:12px}}.parent-payment-field{display:flex;flex-direction:column;gap:6px}.parent-payment-label{font-size:12.5px;font-weight:600;color:var(--text-primary, #334155)}.parent-payment-input,.parent-payment-select{width:100%;padding:9px 12px;font-size:13px;border-radius:10px;border:1px solid var(--border-color, #cbd5e1);background:var(--surface-card, #ffffff);color:var(--text-primary, #1e293b);outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.parent-payment-input:focus,.parent-payment-select:focus{border-color:var(--border-color-focus, var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7))));box-shadow:0 0 0 3px var(--color-primary-light, rgba(108, 92, 231, .15))}.parent-payment-hint{font-size:11px;color:var(--text-muted, #64748b)}.parent-payment-actions{display:flex;justify-content:flex-end;margin-top:24px}.parent-payment-save-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:10px;font-size:13px;font-weight:700;color:var(--text-on-primary, #ffffff);background:var(--primary-surface, var(--color-primary, var(--primary-color, #6c5ce7)));border:none;cursor:pointer;box-shadow:0 2px 4px var(--color-primary-light, rgba(108, 92, 231, .2));transition:opacity .15s ease,transform .1s ease,background .15s ease}.parent-payment-save-btn:hover:not(:disabled){opacity:.95;transform:translateY(-1px);background:var(--primary-surface-hover, var(--color-primary-hover, var(--primary-surface, #5848c2)))}.parent-payment-save-btn:active:not(:disabled){transform:translateY(0);background:var(--primary-surface-pressed, var(--color-primary-active, var(--primary-surface, #4a3cb0)))}.parent-payment-save-btn:disabled{opacity:.6;cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.notification-bell-btn{background:var(--bg-card, #ffffff)!important;border:1.5px solid var(--border-color-card, #e2e8f0)!important;box-shadow:0 4px 12px #0000000f,inset 0 1px #ffffffe6!important;border-radius:12px!important;width:40px!important;height:40px!important;display:grid!important;place-items:center!important;position:relative!important;cursor:pointer!important;padding:0!important;color:var(--text-secondary, #64748b)!important;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease,border-color .2s ease!important}.notification-bell-btn:hover{transform:translateY(-2px) rotate(-6deg) scale(1.06)!important;box-shadow:0 8px 20px #0000001f!important;border-color:var(--color-primary, var(--primary-color, #6c5ce7))!important}.notification-bell-btn:focus-visible{outline:2px solid var(--border-color-focus, var(--color-primary, var(--primary-color, #6c5ce7)))!important;outline-offset:2px!important}.notification-bell-btn:active{transform:translateY(1px) scale(.95)!important;box-shadow:inset 0 2px 4px #0000001a!important}.notification-bell-btn:disabled{opacity:.5!important;cursor:not-allowed!important;pointer-events:none!important;transform:none!important;box-shadow:none!important;border-color:var(--border-color-card, #e2e8f0)!important}.notification-bell-3d{font-size:19px!important;line-height:1!important;display:inline-block!important;filter:drop-shadow(0 2px 4px rgba(245,158,11,.3))!important}.notification-bell-badge{position:absolute!important;top:-2px!important;right:-2px!important;background:#ef4444!important;color:#fff!important;font-size:10.5px!important;font-weight:700!important;min-width:18px!important;height:18px!important;border-radius:999px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 4px!important;box-shadow:0 0 0 2px var(--bg-card, #ffffff)!important}@media(prefers-reduced-motion:reduce){.notification-bell-btn:hover,.notification-bell-btn:active{transform:none!important}}.school-year-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.school-year-header__info{flex:1 1 320px;min-width:0}.school-year-header__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex-shrink:0}.school-year-action-btn{white-space:nowrap}@media(max-width:640px){.school-year-header{flex-direction:column;align-items:stretch;gap:12px}.school-year-header__actions{width:100%;justify-content:flex-start;gap:12px}}
