@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@300;400;500;600;700&family=Cairo:wght@300;400;500;600;700;800&display=swap";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css";@layer tokens{:root{color-scheme:light;--canvas: #EFF1F4;--canvas-alt: #E7EAEE;--surface: #FFFFFF;--text-primary: #262A30;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--text-on-accent: #FFFFFF;--accent: #4C6B74;--accent-hover: #3A555D;--accent-soft: rgba(76,107,116,.12);--success: #6B8F71;--success-soft: rgba(107,143,113,.14);--warning: #B98A4E;--warning-soft: rgba(185,138,78,.14);--danger: #B25D52;--danger-soft: rgba(178,93,82,.14);--info: #6E8FA8;--info-soft: rgba(110,143,168,.14);--border: rgba(15,23,32,.08);--border-strong: rgba(15,23,32,.14);--glass-bg: rgba(255,255,255,.55);--glass-bg-strong: rgba(255,255,255,.72);--glass-border: rgba(255,255,255,.6);--glass-sheen: rgba(255,255,255,.55);--glass-blur: 28px;--glass-sat: 170%;--shadow-ambient: 0 20px 40px -12px rgba(20,22,30,.14);--shadow-contact: 0 1px 2px rgba(20,22,30,.06);--shadow-soft: 0 2px 8px rgba(20,22,30,.05);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 28px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--font-ui: "IBM Plex Sans Arabic", "Cairo", -apple-system, "Segoe UI", sans-serif;--sp-0: 0;--sp-1: var(--space-1);--sp-2: var(--space-2);--sp-3: var(--space-3);--sp-4: var(--space-4);--sp-5: 20px;--sp-6: var(--space-6);--sp-7: 28px;--sp-8: var(--space-8);--sp-9: 36px;--sp-10: 40px;--sp-12: var(--space-12);--sp-14: 56px;--sp-16: 64px;--radius-2xl: 32px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05), 0 0 1px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .04);--glass-edge-top: inset 0 1px 0 rgba(255, 255, 255, .8);--glass-edge-bottom: inset 0 -1px 0 rgba(0, 0, 0, .04);--font-size-xs: .7rem;--font-size-sm: .8rem;--font-size-base: .9rem;--font-size-lg: 1rem;--font-size-xl: 1.15rem;--font-size-2xl: 1.35rem;--font-size-3xl: 1.6rem;--font-size-4xl: 1.9rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-drawer-backdrop: 1035;--z-drawer: 1040;--z-modal-backdrop: 1050;--z-modal: 1060;--z-modal-nested: 1070;--z-modal-dropdown: 1080;--z-popover: 1090;--z-tooltip: 1100;--z-toast: 1110;--z-feedback: 1120;--modal-sidebar-width: 248px;--modal-radius: var(--radius-xl);--modal-margin: var(--sp-5);--modal-max-height: 94vh;--modal-width-sm: 32rem;--modal-width-md: 48rem;--modal-width-lg: 64rem;--modal-width-xl: 80rem;--modal-width-workspace: 90rem;--icon-xs: 12px;--icon-sm: 14px;--icon-md: 16px;--icon-lg: 20px;--icon-xl: 24px;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--easing-out: cubic-bezier(.16, 1, .3, 1);--easing-inout: cubic-bezier(.65, 0, .35, 1);--easing-entrance: cubic-bezier(0, 0, .2, 1);--easing-exit: cubic-bezier(.4, 0, 1, 1);--easing-spring: cubic-bezier(.34, 1.56, .64, 1);--easing-smooth: cubic-bezier(.22, 1, .36, 1);--color-primary: var(--accent);--color-primary-hover: var(--accent-hover);--color-primary-light: var(--accent-soft);--color-primary-subtle: var(--accent-soft);--color-success: var(--success);--color-success-hover: #5A7A60;--color-success-light: var(--success-soft);--color-danger: var(--danger);--color-danger-hover: #9D4F46;--color-danger-light: var(--danger-soft);--color-danger-subtle: var(--danger-soft);--color-warning: var(--warning);--color-warning-hover: #A37842;--color-warning-light: var(--warning-soft);--color-warning-subtle: var(--warning-soft);--color-info: var(--info);--color-info-hover: #5D7D92;--color-info-light: var(--info-soft);--color-success-subtle: var(--success-soft);--color-info-subtle: var(--info-soft);--color-bg: var(--canvas);--color-surface: var(--surface);--color-surface-secondary: var(--canvas-alt);--color-surface-tertiary: #DEE1E7;--color-border: var(--border);--color-border-light: rgba(15,23,32,.04);--color-border-hover: rgba(15,23,32,.16);--color-text: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-muted: var(--text-tertiary);--color-text-on-primary: var(--text-on-accent);--color-text-on-dark: #EDEEF0;--glass-shadow-soft: var(--shadow-soft);--glass-shadow-sharp: var(--shadow-contact);--glass-shadow-raised: var(--shadow-ambient);--glass-shadow-modal: 0 24px 80px rgba(31,38,135,.1), 0 8px 16px rgba(0,0,0,.04);--glass-inner-sm: inset 0 1px 2px rgba(0, 0, 0, .04);--glass-inner-md: inset 0 2px 4px rgba(0, 0, 0, .06);--specular-top: var(--glass-edge-top);--specular-top-soft: inset 0 1px 0 rgba(255, 255, 255, .4);--glass-gradient: linear-gradient(135deg, rgba(255,255,255,.7), rgba(255,255,255,.2));--glass-gradient-strong: linear-gradient(135deg, rgba(255,255,255,.85), rgba(255,255,255,.35));--glass-border-light: 1px solid rgba(255, 255, 255, .5);--glass-border-subtle: 1px solid rgba(255, 255, 255, .2);--glass-border-strong: 1px solid rgba(255, 255, 255, .6);--glass-noise-light: radial-gradient(circle at 25% 30%, rgba(255,255,255,.15) 0%, transparent 60%);--glass-noise-dark: radial-gradient(circle at 75% 70%, rgba(0,0,0,.03) 0%, transparent 50%);--glass-refraction: radial-gradient(ellipse at 20% 20%, rgba(255,255,255,.1) 0%, transparent 50%);--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--blur-effect: blur(24px) saturate(180%);--blur-effect-heavy: blur(40px) saturate(200%);--blur-effect-light: blur(12px) saturate(160%);--mesh-gradient-1: radial-gradient(ellipse at 20% 50%, rgba(76,107,116,.08) 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, rgba(110,143,168,.06) 0%, transparent 50%), radial-gradient(ellipse at 40% 80%, rgba(107,143,113,.05) 0%, transparent 50%);--mesh-gradient-2: radial-gradient(ellipse at 70% 30%, rgba(76,107,116,.1) 0%, transparent 55%), radial-gradient(ellipse at 20% 70%, rgba(110,143,168,.06) 0%, transparent 50%), radial-gradient(ellipse at 50% 10%, rgba(107,143,113,.04) 0%, transparent 50%);--mesh-gradient-3: radial-gradient(ellipse at 30% 20%, rgba(76,107,116,.08) 0%, transparent 55%), radial-gradient(ellipse at 80% 60%, rgba(110,143,168,.05) 0%, transparent 50%), radial-gradient(ellipse at 10% 80%, rgba(107,143,113,.04) 0%, transparent 50%);--edge-top-light: var(--glass-edge-top);--edge-top-subtle: inset 0 1px 0 rgba(255, 255, 255, .4);--edge-bottom-light: var(--glass-edge-bottom);--edge-bottom-subtle: inset 0 -1px 0 rgba(0, 0, 0, .04);--edge-top-thin: inset 0 .5px 0 rgba(255, 255, 255, .6);--refraction-subtle: var(--glass-refraction);--refraction-medium: linear-gradient(135deg, rgba(255, 255, 255, .12) 0%, transparent 60%);--refraction-sidebar: linear-gradient(180deg, rgba(255, 255, 255, .06) 0%, transparent 30%, transparent 70%, rgba(255,255,255,.03) 100%);--refraction-card: linear-gradient(180deg, rgba(255, 255, 255, .1) 0%, transparent 40%);--refraction-modal: linear-gradient(180deg, rgba(255, 255, 255, .12) 0%, transparent 30%, rgba(0,0,0,.02) 100%);--noise-texture: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");--noise-texture-heavy: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");--material-ultrathin-bg: var(--canvas-alt);--material-ultrathin-edge: var(--edge-top-subtle), var(--edge-bottom-subtle);--material-ultrathin-refraction: var(--refraction-subtle);--material-ultrathin-noise: var(--noise-texture);--material-thin-bg: var(--surface);--material-thin-edge: var(--edge-top-light), var(--edge-bottom-subtle);--material-thin-refraction: var(--refraction-card);--material-thin-noise: var(--noise-texture);--material-thin-shadow: var(--shadow-sm);--material-thin-combined: var(--material-thin-edge), var(--glass-inner-sm);--material-regular-bg: var(--surface);--material-regular-edge: var(--edge-top-light), var(--edge-bottom-light);--material-regular-refraction: var(--refraction-modal);--material-regular-noise: var(--noise-texture);--material-regular-shadow: var(--shadow-lg);--material-regular-combined: var(--material-regular-edge), var(--glass-inner-md);--material-thick-bg: var(--surface);--material-thick-edge: var(--edge-top-light), var(--edge-bottom-light);--material-thick-refraction: var(--refraction-modal);--material-thick-noise: var(--noise-texture-heavy);--material-thick-shadow: var(--shadow-xl);--material-thick-combined: var(--material-thick-edge), var(--glass-inner-md);--material-sidebar-bg: var(--glass-bg-strong);--material-sidebar-edge: var(--edge-top-light), inset -1px 0 0 rgba(0,0,0,.06);--material-sidebar-refraction: var(--refraction-sidebar);--material-sidebar-noise: var(--noise-texture);--material-sidebar-shadow: var(--shadow-md);--material-toolbar-bg: var(--glass-bg);--material-toolbar-edge: var(--edge-top-light), var(--edge-bottom-subtle);--material-toolbar-refraction: var(--refraction-subtle);--material-toolbar-noise: var(--noise-texture);--material-toolbar-shadow: var(--shadow-sm);--material-floating-bg: var(--surface);--material-floating-edge: var(--edge-top-light);--material-floating-refraction: var(--refraction-medium);--material-floating-noise: var(--noise-texture);--material-floating-shadow: var(--shadow-lg);--material-floating-combined: var(--material-floating-edge), var(--glass-inner-md);--material-card-bg: var(--surface);--material-card-edge: var(--edge-top-light), var(--edge-bottom-subtle);--material-card-refraction: var(--refraction-card);--material-card-noise: var(--noise-texture);--material-card-shadow: var(--shadow-sm);--material-card-combined: var(--material-card-edge), var(--glass-inner-sm);--material-modal-bg: var(--surface);--material-modal-edge: var(--edge-top-light), var(--edge-bottom-light);--material-modal-refraction: var(--refraction-modal);--material-modal-noise: var(--noise-texture);--material-modal-shadow: var(--shadow-xl);--material-modal-combined: var(--material-modal-edge), var(--glass-inner-md);--material-dropdown-bg: rgba(255, 255, 255, .95);--material-dropdown-edge: var(--edge-top-light), var(--edge-bottom-light);--material-dropdown-refraction: var(--refraction-subtle);--material-dropdown-noise: var(--noise-texture);--material-dropdown-shadow: var(--shadow-lg);--material-popup-bg: rgba(255, 255, 255, .96);--material-popup-edge: var(--edge-top-light), var(--edge-bottom-light);--material-popup-refraction: var(--refraction-subtle);--material-popup-noise: var(--noise-texture);--material-popup-shadow: var(--shadow-lg);--material-nav-bg: transparent;--material-nav-edge: none;--material-nav-refraction: none;--material-nav-noise: none;--material-nav-shadow: none;--sidebar-width: 280px;--sidebar-collapsed: 76px;--header-height: 64px;--navbar-height: 48px;--footer-height: 50px;--max-content-width: 1200px;--max-content-narrow: 720px;--color-fg: var(--text-primary);--color-header-text: var(--text-primary);--color-button-text: var(--text-on-accent);--color-secondary: var(--surface);--color-hover: var(--accent-soft);--success-color: var(--success);--danger-color: var(--danger);--warning-color: var(--warning);--info-color: var(--info);--glass-shadow: var(--shadow-sm);--accent-cyan: var(--accent);--accent-teal: var(--info);--accent-violet: #8B7E9E;--accent-blue: var(--accent);--accent-rose: var(--danger);--accent-amber: var(--warning);--accent-gradient: linear-gradient(135deg, var(--accent), #8B7E9E);--accent-glow: rgba(76,107,116,.15);--surface-primary: var(--surface);--surface-hover: var(--accent-soft);--surface-active: rgba(76,107,116,.12);--text-primary-legacy: var(--text-primary);--text-secondary-legacy: var(--text-secondary);--text-on-accent-legacy: var(--text-on-accent);--white: #FFFFFF;--blue-accent: var(--accent);--blue-hover: var(--accent-hover);--blue-soft: #A3B8C0;--blue-muted: #C5D3D9;--dark-surface-light: var(--surface);--dark-border-light: var(--border);--theme-transition: all var(--duration-fast) var(--easing-out);--opacity-invisible: 0;--opacity-subtle: .08;--opacity-light: .16;--opacity-medium: .32;--opacity-strong: .64;--opacity-solid: 1;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--bp-2xl: 1536px;--primary-color: var(--accent);--primary-dark: var(--accent-hover);--primary-light: var(--accent-soft);--secondary-color: var(--text-secondary);--light-color: var(--canvas-alt);--dark-color: var(--text-primary);--light-bg: var(--canvas);--dark-bg: var(--canvas);--dark-surface: var(--surface);--dark-surface-hover: var(--accent-soft);--dark-text: var(--text-primary);--dark-text-secondary: var(--text-secondary);--dark-text-muted: var(--text-tertiary);--border-color: var(--border);--dark-border: var(--border);--blue-gradient-start: var(--accent);--blue-gradient-end: var(--info)}[data-theme=dark]{color-scheme:dark;--canvas: #14161A;--canvas-alt: #1B1E23;--surface: #202329;--text-primary: #EDEEF0;--text-secondary: #9AA0AA;--text-tertiary: #6B7178;--text-on-accent: #0E1012;--accent: #7FA3AC;--accent-hover: #8FB3BC;--accent-soft: rgba(127,163,172,.16);--success: #86AC8C;--success-soft: rgba(134,172,140,.16);--warning: #D1A876;--warning-soft: rgba(209,168,118,.16);--danger: #CC8079;--danger-soft: rgba(204,128,121,.16);--info: #8FB0C7;--info-soft: rgba(143,176,199,.16);--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.14);--glass-bg: rgba(32,35,41,.55);--glass-bg-strong: rgba(38,42,49,.72);--glass-border: rgba(255,255,255,.1);--glass-sheen: rgba(255,255,255,.08);--shadow-ambient: 0 20px 40px -12px rgba(0,0,0,.45);--shadow-contact: 0 1px 2px rgba(0,0,0,.3);--shadow-soft: 0 2px 8px rgba(0,0,0,.25);--shadow-sm: 0 1px 2px rgba(0,0,0,.3), 0 0 1px rgba(0,0,0,.2);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.4), 0 2px 4px -2px rgba(0,0,0,.3);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.3);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.5), 0 8px 10px -6px rgba(0,0,0,.4);--glass-edge-top: inset 0 1px 0 rgba(255,255,255,.06);--glass-edge-bottom: inset 0 -1px 0 rgba(0,0,0,.2);--glass-inner-sm: inset 0 1px 3px rgba(0,0,0,.15);--glass-inner-md: inset 0 2px 6px rgba(0,0,0,.2);--color-surface-secondary: var(--canvas-alt);--color-surface-tertiary: #2A2D35;--color-border-hover: rgba(255,255,255,.16);--specular-top: var(--glass-edge-top);--specular-top-soft: inset 0 1px 0 rgba(255,255,255,.06);--glass-gradient: linear-gradient(135deg, rgba(32,35,41,.7), rgba(32,35,41,.2));--glass-gradient-strong: linear-gradient(135deg, rgba(38,42,49,.85), rgba(38,42,49,.35));--glass-border-light: 1px solid rgba(255,255,255,.08);--glass-border-subtle: 1px solid rgba(255,255,255,.04);--glass-border-strong: 1px solid rgba(255,255,255,.12);--glass-noise-light: radial-gradient(circle at 25% 30%, rgba(127,163,172,.06) 0%, transparent 60%);--glass-noise-dark: radial-gradient(circle at 75% 70%, rgba(0,0,0,.08) 0%, transparent 50%);--glass-refraction: radial-gradient(ellipse at 20% 20%, rgba(127,163,172,.04) 0%, transparent 50%);--glass-shadow-soft: var(--shadow-soft);--glass-shadow-sharp: var(--shadow-contact);--glass-shadow-raised: var(--shadow-ambient);--glass-shadow-modal: 0 24px 80px rgba(0,0,0,.4), 0 8px 16px rgba(0,0,0,.2);--mesh-gradient-1: radial-gradient(ellipse at 20% 50%, rgba(127,163,172,.06) 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, rgba(143,176,199,.05) 0%, transparent 50%), radial-gradient(ellipse at 40% 80%, rgba(134,172,140,.04) 0%, transparent 50%);--mesh-gradient-2: radial-gradient(ellipse at 70% 30%, rgba(127,163,172,.08) 0%, transparent 55%), radial-gradient(ellipse at 20% 70%, rgba(143,176,199,.05) 0%, transparent 50%), radial-gradient(ellipse at 50% 10%, rgba(134,172,140,.03) 0%, transparent 50%);--mesh-gradient-3: radial-gradient(ellipse at 30% 20%, rgba(127,163,172,.06) 0%, transparent 55%), radial-gradient(ellipse at 80% 60%, rgba(143,176,199,.04) 0%, transparent 50%), radial-gradient(ellipse at 10% 80%, rgba(134,172,140,.03) 0%, transparent 50%);--edge-top-light: inset 0 1px 0 rgba(255,255,255,.06);--edge-top-subtle: inset 0 1px 0 rgba(255,255,255,.03);--edge-bottom-light: inset 0 -1px 0 rgba(0,0,0,.3);--edge-bottom-subtle: inset 0 -1px 0 rgba(0,0,0,.2);--refraction-subtle: linear-gradient(135deg, rgba(255,255,255,.03) 0%, transparent 50%);--refraction-medium: linear-gradient(135deg, rgba(255,255,255,.05) 0%, transparent 60%);--refraction-card: linear-gradient(180deg, rgba(255,255,255,.04) 0%, transparent 40%);--refraction-modal: linear-gradient(180deg, rgba(255,255,255,.04) 0%, transparent 30%, rgba(0,0,0,.05) 100%);--refraction-sidebar: linear-gradient(180deg, rgba(255,255,255,.02) 0%, transparent 30%, transparent 70%, rgba(255,255,255,.01) 100%);--material-sidebar-bg: rgba(15, 15, 18, .92);--material-toolbar-bg: rgba(15, 15, 18, .88);--material-dropdown-bg: rgba(26, 26, 32, .95);--material-popup-bg: rgba(26, 26, 32, .96);--color-primary: var(--accent);--color-primary-hover: var(--accent-hover);--color-primary-light: var(--accent-soft);--color-primary-subtle: var(--accent-soft);--color-success: var(--success);--color-success-hover: #96B89B;--color-success-light: var(--success-soft);--color-danger: var(--danger);--color-danger-hover: #D6928C;--color-danger-light: var(--danger-soft);--color-danger-subtle: var(--danger-soft);--color-warning: var(--warning);--color-warning-hover: #D9B688;--color-warning-light: var(--warning-soft);--color-warning-subtle: var(--warning-soft);--color-info: var(--info);--color-info-hover: #9FBED3;--color-info-light: var(--info-soft);--color-success-subtle: var(--success-soft);--color-info-subtle: var(--info-soft);--color-bg: var(--canvas);--color-surface: var(--surface);--color-text: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-muted: var(--text-tertiary);--color-text-on-primary: var(--text-on-accent);--accent-cyan: var(--accent);--accent-teal: var(--info);--accent-violet: #9E8FB2;--accent-blue: var(--accent);--accent-rose: var(--danger);--accent-amber: var(--warning);--accent-gradient: linear-gradient(135deg, var(--accent), #9E8FB2);--accent-glow: rgba(127,163,172,.15);--blue-accent: var(--accent);--blue-hover: var(--accent-hover);--blue-soft: #7FA3AC;--blue-muted: #6B8B94;--dark-surface-light: var(--surface);--dark-border-light: var(--border)}}@layer tokens{@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass-full{background:var(--glass-bg-strong);backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-contrast:more){.glass-full,.glass-whisper{background:var(--surface);border:2px solid var(--text-primary);backdrop-filter:none;-webkit-backdrop-filter:none}.glass-full:before{display:none}}@media(prefers-reduced-transparency:reduce){.glass-full{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}.glass-full:before{display:none}}}@layer tokens{:root,[data-theme=light],[data-theme=dark]{--teacher-primary: var(--accent);--teacher-primary-hover: var(--accent-hover);--teacher-primary-soft: var(--accent-soft);--teacher-surface: var(--surface);--teacher-surface-muted: var(--canvas-alt);--teacher-border: var(--border);--teacher-text: var(--text-primary);--teacher-text-muted: var(--text-secondary);--teacher-text-on-primary: var(--text-on-accent);--teacher-radius-sm: var(--radius-sm);--teacher-radius-md: var(--radius-md);--teacher-radius-lg: var(--radius-lg);--teacher-space-1: var(--sp-1);--teacher-space-2: var(--sp-2);--teacher-space-3: var(--sp-3);--teacher-space-4: var(--sp-4);--teacher-space-5: var(--sp-5);--teacher-space-6: var(--sp-6);--teacher-space-8: var(--sp-8);--teacher-shadow-soft: var(--shadow-soft);--teacher-shadow-raised: var(--shadow-ambient)}}@layer tokens{:root,[data-theme=light]{--canvas: #EFF1F4;--canvas-alt: #E7EAEE;--surface: #FFFFFF;--color-surface-elevated: #ffffff;--color-card: #ffffff;--color-surface-2: #E7EAEE;--color-surface-3: #D9DDE3;--color-surface-4: #C7CCD4;--color-overlay: rgba(0, 0, 0, .32);--color-scrim: rgba(0, 0, 0, .48)}}@layer tokens{[data-theme=dark],.dark-mode{--canvas: #14161A;--canvas-alt: #1B1E23;--surface: #202329;--text-primary: #EDEEF0;--text-secondary: #9AA0AA;--text-tertiary: #6B7178;--text-on-accent: #0E1012;--accent: #7FA3AC;--accent-hover: #8FB3BC;--accent-soft: rgba(127,163,172,.16);--success: #86AC8C;--success-soft: rgba(134,172,140,.16);--warning: #D1A876;--warning-soft: rgba(209,168,118,.16);--danger: #CC8079;--danger-soft: rgba(204,128,121,.16);--info: #8FB0C7;--info-soft: rgba(143,176,199,.16);--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.14);--glass-bg: rgba(32,35,41,.55);--glass-bg-strong: rgba(38,42,49,.72);--glass-border: rgba(255,255,255,.1);--glass-sheen: rgba(255,255,255,.08);--shadow-ambient: 0 20px 40px -12px rgba(0,0,0,.45);--shadow-contact: 0 1px 2px rgba(0,0,0,.3);--shadow-soft: 0 2px 8px rgba(0,0,0,.25);--shadow-sm: 0 1px 2px rgba(0,0,0,.3), 0 0 1px rgba(0,0,0,.2);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.4), 0 2px 4px -2px rgba(0,0,0,.3);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.3);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.5), 0 8px 10px -6px rgba(0,0,0,.4);--glass-edge-top: inset 0 1px 0 rgba(255,255,255,.06);--glass-edge-bottom: inset 0 -1px 0 rgba(0,0,0,.2);--glass-inner-sm: inset 0 1px 3px rgba(0,0,0,.15);--glass-inner-md: inset 0 2px 6px rgba(0,0,0,.2);--edge-top-light: inset 0 1px 0 rgba(255,255,255,.06);--edge-top-subtle: inset 0 1px 0 rgba(255,255,255,.03);--edge-bottom-light: inset 0 -1px 0 rgba(0,0,0,.3);--edge-bottom-subtle: inset 0 -1px 0 rgba(0,0,0,.2);--color-surface-elevated: #24242d;--color-card: #1e1e26;--color-surface-2: rgba(255,255,255,.04);--color-surface-3: rgba(255,255,255,.08);--color-surface-4: rgba(255,255,255,.16);--color-overlay: rgba(0, 0, 0, .55);--color-scrim: rgba(0, 0, 0, .7);--material-sidebar-bg: rgba(15, 15, 18, .92);--material-toolbar-bg: rgba(15, 15, 18, .88);--material-dropdown-bg: rgba(26, 26, 32, .95);--material-popup-bg: rgba(26, 26, 32, .96)}}@layer base{*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{direction:rtl;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--canvas);color:var(--text-primary)}html.theme-transitioning,html.theme-transitioning body{transition:background-color .25s ease,color .25s ease}body{font-family:var(--font-ui);background:var(--canvas);color:var(--text-primary);min-height:100vh;line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:none;transition:color var(--duration-fast) var(--easing-out)}a:hover{color:var(--accent-hover)}ul,ol{list-style:none}.theme-loading *{transition:none!important}.theme-loading *,.theme-loading *:before,.theme-loading *:after{transition:none!important}::selection{background:var(--accent-soft);color:var(--accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}}@layer base{html{font-family:var(--font-ui)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-4xl);margin-block-end:var(--sp-6)}h2{font-size:var(--font-size-3xl);margin-block-end:var(--sp-6)}h3{font-size:var(--font-size-xl);margin-block-end:var(--sp-4);font-weight:var(--font-weight-semibold)}h4{font-size:var(--font-size-lg);margin-block-end:var(--sp-3)}h5{font-size:var(--font-size-base);margin-block-end:var(--sp-2)}h6{font-size:var(--font-size-sm);margin-block-end:var(--sp-2)}p{color:var(--text-secondary);line-height:var(--line-height-relaxed);font-size:var(--font-size-base)}small{font-size:var(--font-size-sm);color:var(--text-tertiary)}}@layer layout{.container{width:100%;max-width:var(--max-content-width, 1200px);margin:0 auto;padding:var(--sp-6)}.container-narrow{max-width:var(--max-content-narrow, 720px)}.main-content{padding:var(--sp-6);min-height:100vh;box-sizing:border-box}body.teachers-shell{background:var(--canvas);background-image:var(--mesh-gradient-1);background-attachment:fixed}body.teachers-shell .main-content{margin-inline-start:calc(var(--sidebar-width, 280px) + var(--sp-8));margin-inline-end:var(--sp-4);padding:var(--sp-4);padding-block-start:calc(var(--header-height, 64px) + var(--sp-8))}body.teachers-shell .app-header{position:fixed;inset-block-start:var(--sp-4);inset-inline-start:calc(var(--sidebar-width, 280px) + var(--sp-8));inset-inline-end:var(--sp-4);width:auto;margin:0;z-index:50}body.teachers-shell .page-layout{width:100%;max-width:var(--max-content-width, 1200px);margin:0 auto;transition:opacity .15s ease}body.teachers-shell .page-layout--nav-loading{opacity:.55;pointer-events:none}.content-wrapper{max-width:var(--max-content-width, 1200px);margin:0 auto;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-6);gap:var(--sp-4);flex-wrap:wrap}.page-header h1,.page-header h2{margin-bottom:0}.header-text{font-size:var(--font-size-base);color:var(--text-primary);font-weight:var(--font-weight-medium)}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0;display:flex;align-items:center;gap:var(--sp-3)}.page-title i{color:var(--accent);font-size:var(--font-size-3xl)}.page-subtitle{font-size:var(--font-size-base);color:var(--text-secondary);margin-block-start:var(--sp-1)}.header-content{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-block-end:var(--sp-6)}.title-section{flex:1}.section{margin-bottom:var(--sp-8)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.page-loader{display:flex;align-items:center;justify-content:center;min-height:200px}.page-layout{width:100%;max-width:var(--max-content-width, 1200px);margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-6)}.page-actions{display:flex;gap:var(--sp-3);align-items:center;flex-shrink:0}.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.page-toolbar-start{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;flex:1}.page-toolbar-end{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.page-content{flex:1}.page-pagination{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-4) 0}.page-empty,.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-6);text-align:center}.stores-container,.stores-page,.stores-dashboard{padding:var(--sp-6)}.stores-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-block-end:var(--sp-6);flex-wrap:wrap}.stores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-5)}.action-bar{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin-block-end:var(--sp-6)}.filters-container{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;margin-block-end:var(--sp-4)}.summary-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);margin-block-end:var(--sp-6)}.summary-section{margin-block-end:var(--sp-4)}}@layer layout{.app-header{height:var(--header-height, 64px);padding-inline:var(--sp-6);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);--glass-blur: 20px;z-index:30;box-sizing:border-box}.app-header.is-scrolled{height:52px}.app-header.glass-full{overflow:hidden}.header-toggle{cursor:pointer;font-size:var(--icon-xl);color:var(--text-primary);padding:var(--sp-2);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-out);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:none;background:transparent}.header-toggle:hover{background:var(--accent-soft)}.header-brand{flex:1;min-width:0;font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--text-primary);margin:0;line-height:var(--line-height-tight)}.header-brand .page-subtitle{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--text-secondary);margin-block-start:var(--sp-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-brand__app{display:inline-flex;align-items:center;gap:var(--sp-3);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:.01em}.header-brand__icon{font-size:var(--font-size-3xl);color:var(--accent);line-height:1}.header-tools{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.header-icon{cursor:pointer;font-size:var(--icon-lg);color:var(--text-secondary);padding:var(--sp-2);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out);position:relative;display:flex;align-items:center;justify-content:center;border:none;background:transparent}.header-icon:hover{background:var(--accent-soft);color:var(--accent)}.header-tools-btn{position:relative}.tools-menu{display:none;position:absolute;inset-block-start:100%;inset-inline-end:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:50;padding:var(--sp-1);margin-block-start:var(--sp-1)}.tools-menu.open{display:block}.tools-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);color:var(--text-primary);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-out);cursor:pointer;font-size:var(--font-size-sm)}.tools-item:hover{background:var(--accent-soft)}.header-start{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.header-back-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);background:var(--surface-overlay, rgba(255, 255, 255, .08));border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-full, 9999px);text-decoration:none;transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out),border-color var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out);flex-shrink:0;cursor:pointer;line-height:1;-webkit-user-select:none;user-select:none}.header-back-btn:hover{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border, var(--border));transform:translate(2px)}.header-back-btn i{font-size:var(--icon-sm, 13px);transition:transform var(--duration-fast) var(--easing-out)}.header-back-btn:hover i{transform:translate(2px)}.header-back{cursor:pointer;font-size:var(--icon-lg);color:var(--text-secondary);padding:var(--sp-2);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.header-back:hover{background:var(--canvas-alt);color:var(--text-primary)}@media(max-width:1024px){.app-header{padding-inline:var(--sp-4)}.header-back-btn{padding:var(--sp-1-5, 6px) var(--sp-2-5, 10px);font-size:var(--font-size-xs, 12px)}}@media(min-width:1025px){body.teachers-shell .header-toggle,body.teachers-shell .teachers-menu-btn{display:none}}}@layer layout{.sidebar{position:fixed;inset-block:var(--sp-4);inset-inline-start:var(--sp-4);width:var(--sidebar-width, 280px);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);z-index:40;height:calc(100vh - var(--sp-8));background:var(--material-sidebar-bg);background-image:var(--material-sidebar-refraction),var(--material-sidebar-noise);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--material-sidebar-edge),var(--material-sidebar-shadow);transform:translate(calc(100% + var(--sp-8)));transition:transform var(--duration-normal) var(--easing-out),width var(--duration-normal) var(--easing-out)}.sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,var(--glass-sheen) 0%,transparent 42%);opacity:.6;pointer-events:none}.sidebar.is-collapsed{width:var(--sidebar-collapsed, 76px)}.sidebar.open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding-block-end:var(--sp-3);border-block-end:1px solid var(--border);margin-block-end:var(--sp-2);position:relative;z-index:1}.brand{display:flex;align-items:center;gap:var(--sp-3);text-decoration:none;color:inherit}.brand-logo{width:36px;height:36px;object-fit:contain;flex-shrink:0;display:block}.brand-copy{min-width:0}.sidebar.is-collapsed .brand-copy{display:none}.sidebar.is-collapsed .brand{justify-content:center;flex:1}.sidebar.is-collapsed .sidebar-header{justify-content:center;gap:0}.brand-icon{font-size:var(--icon-xl);color:var(--accent)}.brand-text{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--text-primary);line-height:var(--line-height-tight)}.brand-sub{font-weight:var(--font-weight-normal);font-size:var(--font-size-xs);color:var(--text-secondary)}.sidebar-close{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--canvas-alt);border:none;cursor:pointer;color:var(--text-secondary);font-size:var(--font-size-lg);line-height:1;flex-shrink:0;transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.sidebar-close:hover{background:var(--danger-soft);color:var(--danger)}.sidebar-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-nav{display:flex;flex-direction:column;gap:var(--sp-1);overflow-y:auto;flex:1;padding:0;list-style:none;position:relative;z-index:1}.sidebar-nav a,.sidebar-nav-item{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);min-height:40px;border-radius:var(--radius-md);color:var(--text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);line-height:var(--line-height-tight);text-decoration:none;isolation:isolate;transition:background-color var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.sidebar-nav a:before,.sidebar-nav-item:before{content:none}.sidebar-nav a:hover,.sidebar-nav-item:hover{background:var(--accent-soft);color:var(--text-primary)}.sidebar-nav a:focus-visible,.sidebar-nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-nav a.active,.sidebar-nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold)}.sidebar-nav a i,.sidebar-nav-item i{width:var(--icon-lg);text-align:center;font-size:var(--icon-md);flex-shrink:0}.nav-new,.nav-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:1px var(--sp-2);border-radius:var(--radius-full);margin-inline-start:auto;line-height:1.5}.nav-new{background:var(--accent-soft);color:var(--accent)}.nav-badge{background:var(--danger);color:var(--text-on-accent)}.sidebar-section{position:relative}.sidebar-section-toggle{position:relative;width:100%;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);min-height:40px;border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--font-size-sm);line-height:var(--line-height-tight);font-weight:var(--font-weight-medium);background:none;border:none;cursor:pointer;text-align:start;isolation:isolate;transition:background-color var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.sidebar-section-toggle:hover{background:var(--accent-soft);color:var(--text-primary)}.sidebar-section-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-section-toggle.is-active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold)}.sidebar-section-toggle i:first-child{width:var(--icon-lg);text-align:center;font-size:var(--icon-md);flex-shrink:0}.sidebar-section-arrow{margin-inline-start:auto;font-size:var(--icon-xs);width:var(--icon-md);height:var(--icon-md);display:flex;align-items:center;justify-content:center;transition:transform var(--duration-normal) var(--easing-out);flex-shrink:0}.sidebar-section-toggle.is-open .sidebar-section-arrow{transform:rotate(180deg)}.sidebar-sub-menu-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-normal) var(--easing-out)}.sidebar-sub-menu-wrapper.is-open{grid-template-rows:1fr}.sidebar-sub-menu{overflow:hidden;min-height:0}.sidebar-sub-menu-inner{padding:var(--sp-1) 0;margin-inline-start:var(--sp-4);border-inline-start:2px solid var(--border-strong);opacity:0;transform:translateY(calc(-1 * var(--sp-1)));transition:opacity var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out)}.sidebar-sub-menu-wrapper.is-open .sidebar-sub-menu-inner{opacity:1;transform:translateY(0);transition-delay:.05s}.sidebar-sub-menu a{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);margin-inline-end:var(--sp-2);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;transition:background-color var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.sidebar-sub-menu a:hover{color:var(--text-primary);background:var(--accent-soft)}.sidebar-sub-menu a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar-sub-menu a.active{color:var(--accent);background:var(--accent-soft);font-weight:var(--font-weight-semibold)}.sidebar-sub-menu a i{width:var(--icon-lg);text-align:center;font-size:var(--icon-md);flex-shrink:0}.sidebar-footer{padding-block-start:var(--sp-3);border-block-start:1px solid var(--border);margin-block-start:auto;position:relative;z-index:1}.logout-btn{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);font-size:inherit;font-family:inherit;border:none;background:transparent;cursor:pointer;width:100%;transition:background-color var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.logout-btn:hover{background:var(--danger-soft);color:var(--danger)}.logout-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.logout-btn i{width:var(--icon-lg);text-align:center;font-size:var(--icon-md);flex-shrink:0}.store-name-container{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);padding:var(--sp-2) var(--sp-4);text-transform:uppercase;letter-spacing:.04em}.sidebar-section .store-name-container{margin-block-end:var(--sp-1)}.sidebar-footer .media-object{padding:var(--sp-2) var(--sp-3);margin-block-end:var(--sp-2);border-radius:var(--radius-md);background:transparent;border:1px solid var(--border)}.sidebar-footer .media-object__image:hover{transform:none;border-color:var(--accent)}.branch-container{display:flex;align-items:center}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay, rgba(0, 0, 0, .32));opacity:0;visibility:hidden;transition:opacity var(--duration-normal) var(--easing-out),visibility var(--duration-normal) var(--easing-out);z-index:35;border:none;padding:0;cursor:pointer}body.teachers-shell.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible}body.teachers-shell.sidebar-open .sidebar{transform:translate(0)}@media(min-width:1025px){.sidebar{transform:translate(0)}.sidebar-close,.sidebar-backdrop{display:none}}@media(max-width:1024px){.sidebar{inset-inline-start:0}body.teachers-shell.sidebar-open .sidebar{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-sub-menu-wrapper,.sidebar-sub-menu-inner,.sidebar-section-arrow,.sidebar-close,.sidebar-nav a,.sidebar-section-toggle,.sidebar-sub-menu a,.logout-btn{transition:none!important}}}@layer components{.alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin-block-end:var(--sp-5)}.alert[hidden]{display:none!important}.alert-icon{flex-shrink:0;font-size:1.25rem;margin-block-start:var(--sp-1)}.alert-content{flex:1}.alert-title{font-weight:var(--font-weight-bold);margin-block-end:var(--sp-1)}.alert.info{background:var(--info-soft);border-color:var(--info);color:var(--info)}.alert.success{background:var(--success-soft);border-color:var(--success);color:var(--success)}.alert.warning{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.alert.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.alert.info .alert-icon,.alert.success .alert-icon,.alert.warning .alert-icon,.alert.danger .alert-icon{color:inherit}.alert-dismiss{flex-shrink:0;background:none;border:none;color:inherit;cursor:pointer;opacity:.6;padding:var(--sp-1);font-size:1rem;transition:opacity var(--duration-fast) var(--easing-out)}.alert-dismiss:hover{opacity:1}.warning-banner{background:linear-gradient(135deg,var(--warning-soft),transparent);border:1px solid var(--warning);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);color:var(--warning);text-align:center;font-weight:var(--font-weight-semibold);margin-block-end:var(--sp-5);display:flex;align-items:center;justify-content:center;gap:var(--sp-3)}.inline-alert{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);margin-block-end:var(--sp-4);background:var(--warning-soft);border:1px solid var(--warning);border-radius:var(--radius-sm);color:var(--warning);font-size:var(--font-size-sm)}.inline-alert .alert-content{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm, .875rem);line-height:1.5}.inline-alert .alert-content .fa-exclamation-circle{color:var(--color-warning, hsl(38 92% 50%));font-size:1.25rem;flex-shrink:0}.inline-alert .alert-content strong{font-weight:700;color:var(--color-warning, hsl(38 92% 50%))}.high-cost-warning{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);margin-block-end:var(--sp-4);background:var(--warning-soft);border:1px solid var(--warning);border-radius:var(--radius-sm);color:var(--warning);font-size:var(--font-size-sm)}.high-cost-warning .warning-content{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm, .875rem);line-height:1.5}.high-cost-warning .warning-content .fa-exclamation-circle{color:var(--color-warning, hsl(38 92% 50%));font-size:1.25rem;flex-shrink:0}.high-cost-warning .warning-content strong{font-weight:700;color:var(--color-warning, hsl(38 92% 50%))}}@layer components{.badge{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent)}.status{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-align:center;gap:var(--sp-1)}.status.active,.status.green{background:var(--success-soft);color:var(--success)}.status.orange{background:var(--warning-soft);color:var(--warning)}.status.inactive,.status.red{background:var(--danger-soft);color:var(--danger)}.status-frame{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-4);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-align:center;color:var(--text-on-accent)}.status-frame.confirmed{background:var(--success)}.status-frame.pending{background:var(--danger)}.status-frame.orange,.status-frame.warning{background:var(--warning)}.device-status{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-align:center;color:var(--text-on-accent)}.device-status.orange{background:var(--warning)}.device-status.active,.device-status.green{background:var(--success)}.device-status.inactive,.device-status.red{background:var(--danger)}.provider-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--accent);background:var(--accent-soft)}.device-status-badge{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase}.device-status-badge.active{background:var(--success-soft);color:var(--success)}.device-status-badge.inactive{background:var(--danger-soft);color:var(--danger)}.status-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.status-text.success{color:var(--success)}.status-text.danger{color:var(--danger)}.status-text.warning{color:var(--warning)}.notification-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--sp-1);border-radius:var(--radius-full);background:var(--danger);color:var(--text-on-accent);font-size:10px;font-weight:var(--font-weight-bold);line-height:1}.permission-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--sp-1);border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.fav-star{color:var(--text-tertiary);cursor:pointer;font-size:var(--font-size-sm);transition:color var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-spring);flex-shrink:0}.fav-star:hover{transform:scale(1.2)}.fav-star.is-fav{color:var(--warning)}.high-cost-indicator{color:var(--danger);font-size:var(--font-size-xs);flex-shrink:0}.marked-for-deletion{opacity:.45;filter:grayscale(1);position:relative}.marked-for-deletion:after{content:"سيلغى";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);color:var(--danger);font-weight:var(--font-weight-bold)}}@layer components{.barcode-label[data-size="50x30"]{--label-w: 50mm;--label-h: 30mm;--label-padding: 2.5mm;--label-name-size: 7.5pt;--label-code-size: 6pt;--label-price-size: 8pt;--label-barcode-height: 18mm}.barcode-label[data-size="60x40"]{--label-w: 60mm;--label-h: 40mm;--label-padding: 3mm;--label-name-size: 8.5pt;--label-code-size: 6.5pt;--label-price-size: 9pt;--label-barcode-height: 22mm}.barcode-label[data-size="70x50"]{--label-w: 70mm;--label-h: 50mm;--label-padding: 3.5mm;--label-name-size: 9.5pt;--label-code-size: 7pt;--label-price-size: 10pt;--label-barcode-height: 28mm}.barcode-label[data-size="80x50"]{--label-w: 80mm;--label-h: 50mm;--label-padding: 4mm;--label-name-size: 10pt;--label-code-size: 7.5pt;--label-price-size: 11pt;--label-barcode-height: 28mm}.barcode-label[data-size="100x50"]{--label-w: 100mm;--label-h: 50mm;--label-padding: 4mm;--label-name-size: 11pt;--label-code-size: 8pt;--label-price-size: 12pt;--label-barcode-height: 28mm}.barcode-label{width:var(--label-w, 50mm);height:var(--label-h, 30mm);padding:var(--label-padding, 2.5mm);background:#fff;border:1px dashed var(--border-strong, #ccc);border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow:hidden;page-break-inside:avoid;break-inside:avoid;position:relative;font-family:Cairo,IBM Plex Sans Arabic,Arial,sans-serif;box-sizing:border-box}.barcode-label__header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1mm;min-height:0}.barcode-label__name{font-size:var(--label-name-size, 7.5pt);font-weight:700;color:#1a1a1a;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;line-height:1.2}.barcode-label__code{font-size:var(--label-code-size, 6pt);color:#666;text-align:center;line-height:1.2;white-space:nowrap}.barcode-label__barcode{width:100%;flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:.5mm 0}.barcode-label__barcode svg{width:100%!important;height:100%!important;max-height:var(--label-barcode-height, 18mm)!important}.barcode-label__footer{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1mm;min-height:0}.barcode-label__price{font-size:var(--label-price-size, 8pt);font-weight:800;color:#1a1a1a;line-height:1.2}.barcode-label__store{font-size:var(--label-code-size, 6pt);color:#888;text-align:end;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%;line-height:1.2}.barcode-label__currency{font-size:var(--label-code-size, 6pt);color:#888;line-height:1.2}.barcode-page{display:flex;flex-wrap:wrap;gap:3mm;padding:10mm;justify-content:flex-start;align-content:flex-start;min-height:100vh;box-sizing:border-box}.barcode-toolbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:var(--sp-3, .75rem);padding:var(--sp-3, .75rem) var(--sp-5, 1.25rem);background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);box-shadow:var(--shadow-soft, 0 1px 3px rgba(0,0,0,.08));flex-wrap:wrap}.barcode-toolbar__title{font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-bold, 700);color:var(--text-primary, #111827);display:flex;align-items:center;gap:var(--sp-2, .5rem);flex:1;min-width:120px}.barcode-toolbar__group{display:flex;align-items:center;gap:var(--sp-2, .5rem)}.barcode-toolbar__label{font-size:var(--font-size-xs, .75rem);color:var(--text-secondary, #6b7280);white-space:nowrap}.barcode-toolbar__input{width:60px;padding:var(--sp-1, .25rem) var(--sp-2, .5rem);border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-sm, .25rem);font-size:var(--font-size-sm, .875rem);text-align:center;font-family:var(--font-ui, inherit)}.barcode-toolbar__select{padding:var(--sp-1, .25rem) var(--sp-2, .5rem);border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-sm, .25rem);font-size:var(--font-size-sm, .875rem);font-family:var(--font-ui, inherit);background:var(--surface, #fff)}.barcode-settings{display:flex;flex-direction:column;gap:var(--sp-4, 1rem)}.barcode-settings__item-info{border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-md, .5rem);padding:var(--sp-3, .75rem) var(--sp-4, 1rem);background:var(--canvas-alt, #f9fafb)}.barcode-settings__item-name{font-weight:600;color:var(--text-primary, #111827);font-size:var(--font-size-base, 1rem)}.barcode-settings__item-barcode{font-size:var(--font-size-sm, .875rem);color:var(--text-tertiary, #9ca3af);margin-top:var(--sp-1, .25rem)}.barcode-settings__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-3, .75rem)}.barcode-settings__options{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2, .5rem)}.barcode-settings__option{display:flex;align-items:center;gap:var(--sp-2, .5rem);font-size:var(--font-size-sm, .875rem);color:var(--text-primary, #111827);cursor:pointer;padding:var(--sp-1, .25rem) var(--sp-2, .5rem);border-radius:var(--radius-sm, .25rem);transition:background var(--duration-fast, .15s) var(--easing-out, ease-out)}.barcode-settings__option:hover{background:var(--accent-soft, #eff6ff)}.barcode-settings__option input[type=checkbox]{accent-color:var(--accent, #3b82f6)}.barcode-settings__preview{border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-md, .5rem);padding:var(--sp-4, 1rem);background:var(--canvas-alt, #f9fafb);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3, .75rem);min-height:200px;overflow:auto}.barcode-settings__preview-hint{font-size:var(--font-size-xs, .75rem);color:var(--text-tertiary, #9ca3af);font-weight:400}.barcode-settings__empty{text-align:center;padding:var(--sp-8, 2rem);color:var(--text-tertiary, #9ca3af);font-size:var(--font-size-sm, .875rem)}.barcode-settings__actions{display:flex;gap:var(--sp-3, .75rem);justify-content:flex-end}@media(max-width:640px){.barcode-toolbar{flex-direction:column;align-items:stretch}.barcode-toolbar__title{min-width:0}.barcode-settings__options,.barcode-settings__row{grid-template-columns:1fr}}}@media print{body>*:not(.barcode-page):not(.barcode-preview-wrapper){display:none!important}body{background:#fff!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}@page{margin:5mm}.barcode-page{padding:0!important;gap:2mm!important;justify-content:flex-start!important;min-height:auto!important}.barcode-label{border:none!important;box-shadow:none!important;border-radius:0!important;background:#fff!important;page-break-inside:avoid!important;break-inside:avoid!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.barcode-label__barcode svg{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}.barcode-preview-wrapper{border:none!important;border-radius:0!important;overflow:visible!important;width:auto!important;height:auto!important}.barcode-preview-wrapper .barcode-page{transform:none!important;width:auto!important;height:auto!important;padding:0!important}}@layer components{.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.4;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--duration-fast) var(--easing-smooth),border-color var(--duration-fast) var(--easing-smooth),color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn--primary{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--secondary{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn--secondary:hover{border-color:var(--accent);color:var(--accent)}.btn--ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn--ghost:hover{background:var(--accent-soft);color:var(--accent)}.btn--danger{background:var(--danger);color:var(--text-on-accent);border-color:var(--danger)}.btn--danger:hover{background:var(--danger);border-color:var(--danger)}.btn--success{background:var(--success);color:var(--text-on-accent);border-color:var(--success)}.btn--success:hover{background:var(--success);border-color:var(--success)}.btn--warning{background:var(--warning);color:var(--text-on-accent);border-color:var(--warning)}.btn--warning:hover{background:var(--warning);border-color:var(--warning)}.btn--outline{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn--outline:hover{border-color:var(--accent);color:var(--accent)}.btn--outline-primary{background:transparent;color:var(--accent);border-color:var(--accent)}.btn--outline-primary:hover{background:var(--accent);color:var(--text-on-accent)}.btn--outline-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn--outline-danger:hover{background:var(--danger);color:var(--text-on-accent)}.btn--sm{padding:var(--sp-2) var(--sp-4);font-size:var(--font-size-sm);min-height:32px}.btn--lg{padding:var(--sp-4) var(--sp-6);font-size:var(--font-size-lg);min-height:48px}.btn--pill{border-radius:var(--radius-full)}.btn--icon{width:36px;height:36px;padding:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn--icon:hover{border-color:var(--accent);color:var(--accent)}.btn--icon-sm{width:32px;height:32px;padding:0;font-size:var(--font-size-sm);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn--icon-sm:hover{border-color:var(--accent);color:var(--accent)}.btn--icon-round{width:36px;height:36px;padding:0;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn--icon-round:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn--close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:var(--radius-full);background:var(--canvas-alt);border:none;cursor:pointer;color:var(--text-secondary);font-size:var(--font-size-lg);transition:all var(--duration-fast) var(--easing-out);flex-shrink:0;line-height:1}.btn--close:hover{background:var(--danger-soft);color:var(--danger)}.btn--remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:var(--radius-full);border:none;background:var(--danger-soft);color:var(--danger);cursor:pointer;font-size:var(--font-size-xs);transition:all var(--duration-fast) var(--easing-out)}.btn--remove:hover{background:var(--danger);color:var(--text-on-accent)}.btn--toggle{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.btn--toggle:hover{border-color:var(--accent);color:var(--accent)}.btn--toggle.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.btn--toggle-success{background:var(--success);color:var(--text-on-accent);padding:var(--sp-2) var(--sp-5);font-size:var(--font-size-sm);border:none;border-radius:var(--radius-full);transition:background var(--duration-fast) var(--easing-smooth);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2)}.btn--toggle-success:hover{background:var(--success)}.btn--toggle-success.inactive,.btn--toggle-success.inactive:hover{background:var(--danger)}.btn--toggle-success:active{opacity:.9}.btn--icon-delete{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--danger);color:var(--text-on-accent)}.btn--icon-delete:hover{background:var(--danger)}.btn--icon-delete:active{transform:scale(.93)}.btn--icon-edit{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn--icon-edit:hover{background:var(--accent);color:var(--text-on-accent)}.btn--icon-edit:active{transform:scale(.93)}.btn--icon-add{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--success);color:var(--text-on-accent)}.btn--icon-add:hover{background:var(--success)}.btn--icon-add:active{transform:scale(.93)}.btn--icon-list{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--accent);color:var(--text-on-accent)}.btn--icon-list:hover{background:var(--accent-hover)}.btn--icon-list:active{transform:scale(.93)}.btn--icon-payment{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--success);color:var(--text-on-accent)}.btn--icon-payment:hover{background:var(--success)}.btn--icon-payment:active{transform:scale(.93)}.btn--mobile-action{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.btn--mobile-action:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn--view{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-sm);font-family:var(--font-ui);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.btn--view:hover,.btn--view.active{border-color:var(--accent);color:var(--accent)}.btn--print{font-size:var(--icon-lg);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--easing-smooth);padding:var(--sp-2);border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;background:none;border:none}.btn--print:hover{color:var(--warning);background:var(--warning-soft)}.btn--report{font-size:var(--icon-lg);color:var(--text-secondary);cursor:pointer;transition:color var(--duration-fast) var(--easing-out);background:none;border:none;padding:0}.btn--report:hover{color:var(--accent)}.btn--export{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--success);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--easing-out)}.btn--export:hover{background:var(--success)}.btn--filter{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.btn--filter:hover,.btn--filter.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn-group{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.btn-group--center{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:center;margin-block-start:var(--sp-6)}.btn-group--inline{display:flex;gap:var(--sp-2);align-items:center}.btn-group--actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.btn-group--search{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.btn-group--reports{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.btn-primary{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-glass{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-danger{background:var(--danger);color:var(--text-on-accent);border-color:var(--danger)}.btn-success{background:var(--success);color:var(--text-on-accent);border-color:var(--success)}.btn-outline{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-outline-primary{background:transparent;color:var(--accent);border-color:var(--accent)}.btn-outline-primary:hover{background:var(--accent);color:var(--text-on-accent)}.btn-outline-secondary{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-outline-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-outline-danger:hover{background:var(--danger);color:var(--text-on-accent)}.btn-outline-info{background:transparent;color:var(--info);border-color:var(--info)}.btn-sm{padding:var(--sp-2) var(--sp-4);font-size:var(--font-size-sm);min-height:32px}.btn-lg{padding:var(--sp-4) var(--sp-6);font-size:var(--font-size-lg);min-height:48px}.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);background:var(--accent);color:var(--text-on-accent);border:none;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring)}.action-btn:hover{background:var(--accent-hover)}.action-btn:active{transform:scale(.97)}.add-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);background:var(--accent);color:var(--text-on-accent);border:none;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring)}.add-btn:hover{background:var(--accent-hover)}.add-btn:active{transform:scale(.97)}.quantity-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);background:var(--accent);color:var(--text-on-accent);border:none;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring)}.quantity-btn:hover{background:var(--accent-hover)}.quantity-btn:active{transform:scale(.97)}.search-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--easing-out)}.search-btn:hover{background:var(--accent-hover)}.clear-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.clear-btn:hover{border-color:var(--danger);color:var(--danger)}.refresh-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.refresh-btn:hover{color:var(--accent);border-color:var(--accent)}.toggle-btn{background:var(--success);color:var(--text-on-accent);padding:var(--sp-2) var(--sp-5);cursor:pointer;font-size:var(--font-size-sm);border:none;border-radius:var(--radius-full);transition:background var(--duration-fast) var(--easing-smooth);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;gap:var(--sp-2)}.toggle-btn:hover{background:var(--success)}.toggle-btn.inactive,.toggle-btn.inactive:hover{background:var(--danger)}.toggle-btn:active{opacity:.9}.mark-read-btn{background:var(--accent);color:var(--text-on-accent);border:none;padding:var(--sp-2) var(--sp-4);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background var(--duration-fast) var(--easing-smooth);margin-block-start:var(--sp-3);display:inline-flex;align-items:center;gap:var(--sp-2)}.mark-read-btn:hover{background:var(--accent-hover)}.edit-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;background:transparent;color:var(--accent);border:1px solid var(--accent)}.edit-btn:hover{background:var(--accent);color:var(--text-on-accent)}.edit-btn:active{transform:scale(.93)}.delete-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--danger);color:var(--text-on-accent)}.delete-btn:hover{background:var(--danger)}.delete-btn:active{transform:scale(.93)}.add-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--success);color:var(--text-on-accent)}.add-icon-btn:hover{background:var(--success)}.add-icon-btn:active{transform:scale(.93)}.list-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--accent);color:var(--text-on-accent)}.list-icon-btn:hover{background:var(--accent-hover)}.list-icon-btn:active{transform:scale(.93)}.payment-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);min-width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring);-webkit-user-select:none;user-select:none;border:none;background:var(--success);color:var(--text-on-accent)}.payment-btn:hover{background:var(--success)}.payment-btn:active{transform:scale(.93)}.enhanced-add-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring)}.enhanced-add-btn:hover{background:var(--accent-hover)}.enhanced-add-btn:active{transform:scale(.97)}.toggle-search-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.toggle-search-btn:hover{border-color:var(--accent);color:var(--accent)}.actions-container{display:flex;justify-content:center;align-items:center;gap:var(--sp-2);flex-wrap:nowrap}.button-container{display:flex;gap:var(--sp-2);align-items:center}.buttons-container{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:center;margin-block-start:var(--sp-6)}.search-filter-container{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.reports-actions-container{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}}@layer components{#calcButtons{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(5,auto);grid-template-areas:"seven eight nine div" "four five six mul" "one two three sub" "zero dot eq add" "undo clr clr clr";gap:var(--sp-2)}#calcSevenBtn{grid-area:seven}#calcEightBtn{grid-area:eight}#calcNineBtn{grid-area:nine}#calcDivBtn{grid-area:div}#calcFourBtn{grid-area:four}#calcFiveBtn{grid-area:five}#calcSixBtn{grid-area:six}#calcMulBtn{grid-area:mul}#calcOneBtn{grid-area:one}#calcTwoBtn{grid-area:two}#calcThreeBtn{grid-area:three}#calcSubBtn{grid-area:sub}#calcZeroBtn{grid-area:zero}#calcDotBtn{grid-area:dot}#calcEqBtn{grid-area:eq}#calcAddBtn{grid-area:add}#calcUndoBtn{grid-area:undo}#calcClearBtn{grid-area:clr}}@layer components{.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5) var(--sp-4);width:100%;transition:box-shadow var(--duration-normal) var(--easing-out),transform var(--duration-normal) var(--easing-out),border-color var(--duration-normal) var(--easing-out);position:relative;display:flex;flex-direction:column;gap:var(--sp-3)}.card:hover{border-color:var(--accent)}.card h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--accent);padding-block-end:var(--sp-2);border-block-end:2px solid var(--accent-soft);margin:0}.card p{font-size:var(--font-size-base);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.card .status-badge{position:absolute;inset-block-start:var(--sp-4);inset-inline-end:var(--sp-4);background:var(--success);color:var(--text-on-accent);padding:var(--sp-1) var(--sp-3);font-size:var(--font-size-sm);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);z-index:2}.card .status-badge.inactive{background:var(--danger)}.card .actions{display:flex;gap:var(--sp-2);justify-content:flex-end;margin-block-start:auto;position:relative;z-index:1}.card .edit-btn,.card .delete-btn{padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--easing-out)}.glass-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5) var(--sp-4);transition:box-shadow var(--duration-normal) var(--easing-out),transform var(--duration-normal) var(--easing-out)}.glass-card:hover{border-color:var(--accent);transform:translateY(-2px)}.store-card{width:260px;padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);position:relative;z-index:0;cursor:pointer;transition:all var(--duration-fast) var(--easing-out);text-align:center}.store-card:hover{transform:translateY(-2px);border-color:var(--accent)}.store-card .store-icon{font-size:var(--font-size-3xl);color:var(--accent);margin-block-end:var(--sp-2);transition:transform var(--duration-fast) var(--easing-out);position:relative;z-index:1}.store-card:hover .store-icon{transform:scale(1.1)}.store-card h3{margin:0;font-size:var(--font-size-xl);color:var(--text-primary);font-weight:var(--font-weight-semibold);border:none;padding:0;position:relative;z-index:1}.store-list{display:flex;flex-wrap:wrap;gap:var(--sp-5);justify-content:center;margin-block-start:var(--sp-8)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.card-header{padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.card-header h3,.card-header h4{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.card-body{padding:var(--sp-5)}.card-footer{padding:var(--sp-4) var(--sp-5);border-block-start:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);flex-wrap:wrap}.card-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-5)}.card-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--easing-out)}.card-row:hover{border-color:var(--accent)}.content-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-block-end:var(--sp-6)}.content-card .card-header{padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.content-card .card-body{padding:var(--sp-5)}.content-card .card-footer{padding:var(--sp-4) var(--sp-5);border-block-start:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);flex-wrap:wrap}.device-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);transition:border-color var(--duration-normal) var(--easing-out),transform var(--duration-normal) var(--easing-out)}.device-card:hover{border-color:var(--accent);transform:translateY(-2px)}.device-header{display:flex;align-items:center;gap:var(--sp-3);margin-block-end:var(--sp-4);padding-block-end:var(--sp-3);border-block-end:1px solid var(--border)}.device-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);flex:1}.device-icon{font-size:var(--font-size-2xl);color:var(--accent);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);border-radius:var(--radius-sm)}.device-info{display:flex;flex-direction:column;gap:var(--sp-2);color:var(--text-secondary);font-size:var(--font-size-sm)}.device-balance{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--accent)}.device-code{font-size:var(--font-size-xs);color:var(--text-tertiary);font-family:monospace}.balance-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.balance-value{font-size:var(--font-size-base);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.balance-item{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) var(--sp-3);border-block-end:1px solid var(--border)}.balance-item:last-child{border-block-end:none}.quick-info{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-secondary)}.info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) 0;gap:var(--sp-3)}.info-item .info-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.info-item .info-value{font-size:var(--font-size-base);color:var(--text-primary);font-weight:var(--font-weight-semibold);text-align:end}.store-info{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--canvas-alt);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary)}.status-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.status-card .status-icon{font-size:var(--font-size-2xl);color:var(--accent)}.status-card .status-body{flex:1}.status-card .status-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.status-card .status-text{font-size:var(--font-size-xs);color:var(--text-secondary)}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4);margin-block-end:var(--sp-6)}.stats-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4);padding:var(--sp-4);background:var(--canvas-alt);border-radius:var(--radius-sm)}.stores-card{padding:var(--sp-5);text-align:center;cursor:pointer;transition:border-color var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out)}.stores-card:hover{border-color:var(--accent);transform:translateY(-2px)}.stores-card-top{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);margin-block-end:var(--sp-4)}.stores-card-icon{font-size:2.5rem;color:var(--accent);line-height:1}.stores-card-info{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.stores-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.stores-card-stats{display:flex;flex-direction:column;gap:var(--sp-2);margin-block-end:var(--sp-4)}.stores-stat{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);padding:var(--sp-1) 0}.stores-stat-value{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.stores-stat-label{color:var(--text-secondary)}.stores-card-action{margin-block-start:var(--sp-2)}.shortcuts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-4)}.shortcut-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-4);text-align:center;text-decoration:none;color:var(--text-primary);transition:border-color var(--duration-normal) var(--easing-out),transform var(--duration-normal) var(--easing-out);cursor:pointer}.card-grid .shortcut-card .shortcut-description,.card-grid .shortcut-card .page-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.shortcut-description{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.shortcut-card:hover{border-color:var(--accent);transform:translateY(-2px)}.shortcut-card.logout{color:var(--danger)}.shortcut-card.logout:hover{border-color:var(--danger)}.shortcut-icon{font-size:var(--font-size-3xl);color:var(--accent);transition:transform var(--duration-fast) var(--easing-out)}.shortcut-card:hover .shortcut-icon{transform:scale(1.1)}.shortcut-card.logout .shortcut-icon{color:var(--danger)}.shortcut-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight)}.shortcut-card.logout .shortcut-label{color:var(--danger)}.item-name-cell{display:flex;align-items:center;gap:var(--sp-3)}.item-thumb{width:44px;height:44px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;cursor:pointer;background:var(--canvas-alt);border:1px solid var(--border);transition:border-color var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-spring);display:flex;align-items:center;justify-content:center}.item-thumb:hover{border-color:var(--accent);transform:scale(1.08)}.item-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.item-thumb-placeholder{font-size:var(--font-size-sm);color:var(--text-tertiary)}.item-name-wrapper{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.item-name-text{display:flex;align-items:center;gap:var(--sp-1)}.item-name-main{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.item-type-badge{font-size:var(--font-size-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--sp-1)}}@layer components{.data-toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;padding:var(--sp-4);background:var(--glass-gradient);border:var(--glass-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-soft),var(--glass-shadow-sharp),var(--specular-top-soft);margin-block-end:var(--sp-6);position:relative;z-index:0;animation:fadeInDown var(--duration-normal) var(--easing-entrance)}.data-toolbar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--mesh-gradient-2);opacity:.15;pointer-events:none;z-index:-1}.data-toolbar__search{flex:1 1 280px;min-width:0}.data-toolbar__search .search-input-wrapper{margin-bottom:0;position:relative}.data-toolbar__search .enhanced-search-bar{width:100%;min-height:40px}.data-toolbar__controls{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;width:100%}.data-toolbar__filters{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;flex:1;min-width:0}.data-toolbar__button-group{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.data-toolbar__button-group .filter-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--easing-out);min-height:36px}.data-toolbar__button-group .filter-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.data-toolbar__button-group .filter-btn.active{border-color:var(--accent);color:var(--text-on-accent);background:var(--accent);box-shadow:var(--shadow-sm)}.data-toolbar__button-group .filter-btn.active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.data-toolbar__button-group .filter-btn:active{transform:scale(.97)}.data-toolbar__button-group .filter-btn .filter-btn-label{font-size:var(--font-size-xs);font-weight:500;white-space:nowrap}.data-toolbar__date-range{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.data-toolbar__date-range .filter-group{display:flex;align-items:center;gap:var(--sp-2)}.data-toolbar__date-range .filter-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap;display:flex;align-items:center;gap:var(--sp-1)}.data-toolbar__date-range input[type=date]{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);min-height:36px;transition:border-color var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out)}.data-toolbar__date-range input[type=date]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.data-toolbar .filter-group{display:flex;align-items:center;gap:var(--sp-2)}.data-toolbar .filter-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap;display:flex;align-items:center;gap:var(--sp-1)}.data-toolbar .filter-select{padding:var(--sp-2) var(--sp-4);padding-inline-end:var(--sp-8);border-radius:var(--radius-sm);border:var(--glass-border-subtle);background:var(--glass-gradient);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);min-height:36px;box-shadow:var(--glass-shadow-soft),var(--glass-inner-sm),var(--specular-top-soft);-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='currentColor' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;background-size:12px;font-family:var(--font-ui)}.data-toolbar .filter-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.data-toolbar .select-wrapper{position:relative}.data-toolbar__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-inline-start:auto}@media(max-width:768px){.data-toolbar{flex-direction:column;align-items:stretch;padding:var(--sp-3)}.data-toolbar__search{flex:1 1 100%}.data-toolbar__controls,.data-toolbar__filters{flex-direction:column;align-items:stretch}.data-toolbar__button-group{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-block-end:var(--sp-1);-webkit-overflow-scrolling:touch;scrollbar-width:none}.data-toolbar__button-group::-webkit-scrollbar{display:none}.data-toolbar__date-range{flex-direction:column;align-items:stretch}.data-toolbar__date-range .filter-group{width:100%}.data-toolbar__date-range input[type=date]{flex:1}.data-toolbar__actions{justify-content:flex-end;margin-inline-start:0}}@media(max-width:480px){.data-toolbar__button-group .filter-btn .filter-btn-label{display:none}.data-toolbar__button-group .filter-btn{padding:var(--sp-2);min-width:36px;justify-content:center}}[dir=rtl] .data-toolbar .filter-select{background-position:right 12px center;padding-inline-end:var(--sp-4);padding-inline-start:var(--sp-8)}}@layer components{.datetime-display{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-secondary);font-family:var(--font-ui);white-space:nowrap;line-height:1.4}.datetime-display__icon{color:var(--text-tertiary);font-size:var(--icon-sm);flex-shrink:0;transition:color var(--duration-fast) var(--easing-out)}.datetime-display:hover .datetime-display__icon{color:var(--accent)}.datetime-display__value{font-variant-numeric:tabular-nums}.datetime-display__relative{font-size:var(--font-size-xs);color:var(--text-tertiary);padding-inline-start:var(--sp-1);padding-inline-end:var(--sp-1);background:var(--canvas-alt);border-radius:var(--radius-sm);padding-block:1px}.datetime-display--date-only .datetime-display__relative,.datetime-display--time-only .datetime-display__relative{display:none}.datetime-display--compact{font-size:var(--font-size-xs);gap:var(--sp-1)}.datetime-display--compact .datetime-display__icon{font-size:var(--icon-xs)}.datetime-display--inline{display:inline}.datetime-display--inline .datetime-display__icon{display:none}.datetime-display--table{font-size:var(--font-size-xs)}.datetime-display--table .datetime-display__relative{display:none}.datetime-display--interactive{cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-out)}.datetime-display--interactive:hover{background:var(--canvas-alt)}.datetime-display--success .datetime-display__icon{color:var(--success)}.datetime-display--warning .datetime-display__icon{color:var(--warning)}.datetime-display--danger .datetime-display__icon{color:var(--danger)}.datetime-display--info .datetime-display__icon{color:var(--info)}@media(max-width:640px){.datetime-display__relative{display:none}}[dir=rtl] .datetime-display{direction:rtl}}@layer components{.devices-grid,.device-balances-container,.charging-devices-container,.charging-transactions-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4);margin-block-end:var(--sp-6)}.device-details{display:flex;flex-direction:column;gap:var(--sp-2)}.device-description{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.device-actions{display:flex;gap:var(--sp-2);margin-block-start:var(--sp-3);justify-content:flex-end}.device-info-header{display:flex;align-items:center;gap:var(--sp-3)}.device-status-badge{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase}.device-status-badge.active{background:var(--success-soft);color:var(--success)}.device-status-badge.inactive{background:var(--danger-soft);color:var(--danger)}.deposit-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);max-width:480px;margin:0 auto}.deposit-form{display:flex;flex-direction:column;gap:var(--sp-4)}.quick-amounts{display:flex;gap:var(--sp-2);flex-wrap:wrap}.quick-amount-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);min-width:60px}.quick-amount-btn:hover,.quick-amount-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.service-details{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-secondary)}.service-provider{font-weight:var(--font-weight-semibold);color:var(--accent)}.service-header{display:flex;align-items:center;justify-content:space-between;margin-block-end:var(--sp-3)}.service-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.service-price{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--accent)}.service-info{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:var(--canvas-alt);border-radius:var(--radius-sm)}.transaction-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--duration-fast) var(--easing-out)}.transaction-card:hover{border-color:var(--accent)}.transaction-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--canvas-alt);border-block-end:1px solid var(--border)}.transaction-body{padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.transaction-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-block-start:1px solid var(--border)}.transaction-item{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.transaction-label{color:var(--text-secondary)}.transaction-value{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.transaction-id{font-size:var(--font-size-xs);color:var(--text-tertiary);font-family:monospace}.transaction-meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.transaction-actions{display:flex;gap:var(--sp-1)}.profit-value{font-weight:var(--font-weight-bold);color:var(--success)}.profit-value.negative{color:var(--danger)}}@layer components{.drawer-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);z-index:var(--z-drawer-backdrop, 1035);opacity:0;transition:opacity var(--duration-normal) var(--easing-out)}.drawer-backdrop.is-open{display:block;opacity:1}.drawer{position:fixed;inset-block:0;inset-inline-end:0;width:min(100%,480px);max-width:100vw;background:var(--surface);border-inline-start:1px solid var(--border);box-shadow:var(--shadow-xl);z-index:var(--z-drawer, 1040);display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--duration-normal) var(--easing-out)}[dir=rtl] .drawer{transform:translate(-100%)}.drawer.is-open{transform:translate(0)}.drawer--lg{width:min(100%,640px)}.drawer--xl{width:min(100%,800px)}.drawer--full{width:100%;inset-inline-start:0}.drawer__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--border);flex-shrink:0}.drawer__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.drawer__description{margin:var(--sp-1) 0 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.drawer__close{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--canvas-alt);border:none;cursor:pointer;color:var(--text-secondary);flex-shrink:0;transition:background var(--duration-fast) var(--easing-out)}.drawer__close:hover{background:var(--danger-soft);color:var(--danger)}.drawer__body{flex:1;overflow-y:auto;padding:var(--sp-5);min-height:0}.drawer__footer{display:flex;gap:var(--sp-3);justify-content:flex-start;padding:var(--sp-4) var(--sp-5);border-block-start:1px solid var(--border);flex-shrink:0}body.drawer-open{overflow:hidden}}@layer components{.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:calc(100% + 4px);inset-inline-end:0;min-width:200px;padding:var(--sp-1);background:var(--material-dropdown-bg);background-image:var(--refraction-subtle),var(--noise-texture);box-shadow:var(--edge-top-light),var(--edge-bottom-light),var(--shadow-lg);border-radius:var(--radius-md);z-index:var(--z-dropdown);opacity:0;transform:translateY(-4px) scale(.97);pointer-events:none;transition:opacity var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out)}.dropdown-menu.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.dropdown-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--easing-out);text-decoration:none}.dropdown-item:hover{background:var(--accent-soft);color:var(--text-primary)}.dropdown-item:active{background:var(--accent-soft)}.dropdown-item i{font-size:var(--icon-md);color:var(--text-tertiary);width:18px;text-align:center}.dropdown-item:hover i{color:var(--accent)}.dropdown-item--danger,.dropdown-item--danger i{color:var(--danger)}.dropdown-item--danger:hover,.dropdown-item--danger:focus,.dropdown-item--danger:focus-visible{background:var(--danger-soft);color:var(--danger)}.dropdown-item--danger:hover i,.dropdown-item--danger:focus i,.dropdown-item--danger:focus-visible i{color:var(--danger)}.dropdown-divider{height:1px;background:var(--border);margin:var(--sp-1) var(--sp-2)}.dropdown-header{padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-tertiary)}.dropdown-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer}.dropdown-toggle:after{content:"";display:inline-block;width:0;height:0;border-inline:4px solid transparent;border-top:4px solid currentColor;margin-inline-start:var(--sp-1);transition:transform var(--duration-fast) var(--easing-out)}.dropdown-toggle--actions:after,.dropdown-toggle.btn--icon:after,.dropdown-toggle.btn--icon-sm:after{display:none}.dropdown-toggle.open:after{transform:rotate(180deg)}.action-menu{position:absolute;top:calc(100% + 4px);inset-inline-end:0;min-width:180px;padding:var(--sp-1);background:var(--material-dropdown-bg);background-image:var(--refraction-subtle),var(--noise-texture);box-shadow:var(--edge-top-light),var(--edge-bottom-light),var(--shadow-lg);border-radius:var(--radius-md);z-index:var(--z-dropdown);opacity:0;transform:translateY(-4px) scale(.97);pointer-events:none;transition:opacity var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out)}.action-menu.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.action-menu__item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--easing-out);text-decoration:none}.action-menu__item:hover{background:var(--accent-soft);color:var(--text-primary)}.action-menu__item i{font-size:var(--icon-md);color:var(--text-tertiary);width:18px;text-align:center}.action-menu__item:hover i{color:var(--accent)}.action-menu__item--danger{color:var(--danger)}.action-menu__item--danger:hover{background:var(--danger-soft);color:var(--danger)}.action-menu__item--danger i{color:var(--danger)}.action-menu__divider{height:1px;background:var(--border);margin:var(--sp-1) var(--sp-2)}.action-menu__header{padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-tertiary)}#table-row-actions-portal{position:fixed;top:0;left:0;width:0;height:0;overflow:visible;pointer-events:none;z-index:4000}#table-row-actions-portal .dropdown-menu{pointer-events:auto}.dropdown-menu.dropdown-menu--portal{position:fixed;inset:auto;z-index:4000;width:max-content;max-width:min(280px,calc(100vw - 16px));min-width:200px;max-height:min(60vh,420px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.dropdown-menu.dropdown-menu--portal.open{display:block}.dropdown-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dropdown-item:focus-visible,.dropdown-item:focus{background:var(--accent-soft);color:var(--text-primary);outline:none}.dropdown-item:focus-visible i,.dropdown-item:focus i{color:var(--accent)}.dropdown-item.is-disabled{cursor:not-allowed}.compact-menu{padding:var(--sp-1);min-width:140px}.compact-menu .dropdown-item{padding:var(--sp-1) var(--sp-2);font-size:var(--font-size-xs)}.split-menu{display:inline-flex}.split-menu__main{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.split-menu__toggle{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:1px solid rgba(255,255,255,.2);padding:var(--sp-2) var(--sp-3)}}@layer components{.empty-state,.no-data-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-6);text-align:center;color:var(--text-secondary)}.empty-state .empty-icon,.no-data-message i:first-child{font-size:3rem;color:var(--text-tertiary);margin-block-end:var(--sp-4)}.empty-state h3,.no-data-message p{font-size:var(--font-size-base);color:var(--text-secondary);margin:0}.empty-state p{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-block-start:var(--sp-2)}.empty-state__icon{font-size:3rem;color:var(--color-text-muted, rgba(255,255,255,.3));opacity:.6}.empty-state__title{font-size:var(--text-xl, 1.25rem);font-weight:600;color:var(--color-text-secondary);margin:0}.empty-state__description{font-size:var(--font-size-sm);color:var(--text-tertiary);max-width:30rem;line-height:1.6;margin:0}.empty-state__message{font-size:var(--text-sm, .875rem);color:var(--color-text-muted);max-width:30rem;line-height:1.6;margin:0}.empty-state__actions{display:flex;gap:var(--sp-3, .75rem);flex-wrap:wrap;justify-content:center;margin-block-start:var(--sp-2, .5rem)}.no-data-row td{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--text-secondary);font-style:italic}.no-permission-message{background:var(--danger-soft);color:var(--danger);padding:var(--sp-4);border-radius:var(--radius-sm);margin:var(--sp-4) 0;text-align:center;border:1px solid var(--danger);font-size:var(--font-size-sm)}.no-permission-message i{margin-inline-end:var(--sp-2)}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-8);color:var(--text-secondary);gap:var(--sp-3)}.loading-indicator i{font-size:2rem;color:var(--accent)}.warning-alert{background:var(--warning-soft);border:1px solid var(--warning);border-radius:var(--radius-sm);padding:var(--sp-4);margin-block-end:var(--sp-6);text-align:center;color:var(--warning);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.error-indicator{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-4);color:var(--danger);font-size:var(--font-size-sm)}.no-results-message{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-secondary);font-size:var(--font-size-sm)}.no-notifications{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-6);text-align:center;color:var(--text-secondary)}.no-notifications i{font-size:3rem;color:var(--text-tertiary);margin-block-end:var(--sp-4)}.no-notifications p{font-size:var(--font-size-base);color:var(--text-secondary);margin:0}.no-results{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-secondary);font-size:var(--font-size-sm);font-style:italic}.loading-dots{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-4)}.loading-dots span{width:8px;height:8px;border-radius:var(--radius-full);background:var(--accent);animation:loadingDot 1.2s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingDot{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.loader-brand{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8);color:var(--text-secondary)}.loader-brand i{font-size:2.5rem;color:var(--accent)}.loading-subtitle,.loading-text{font-size:var(--font-size-sm);color:var(--text-tertiary)}.skeleton{background:linear-gradient(90deg,var(--canvas) 25%,var(--canvas-alt) 50%,var(--canvas) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-box{width:100%;height:100px;background:linear-gradient(90deg,var(--canvas) 25%,var(--canvas-alt) 50%,var(--canvas) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-btn{width:80px;height:36px;background:linear-gradient(90deg,var(--canvas) 25%,var(--canvas-alt) 50%,var(--canvas) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-chip{width:60px;height:24px;background:linear-gradient(90deg,var(--canvas) 25%,var(--canvas-alt) 50%,var(--canvas) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-full)}.skeleton-row{width:100%;height:16px;background:linear-gradient(90deg,var(--canvas) 25%,var(--canvas-alt) 50%,var(--canvas) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm);margin-block-end:var(--sp-2)}.skeleton-thumb{width:60px;height:60px;background:linear-gradient(90deg,var(--canvas) 25%,var(--canvas-alt) 50%,var(--canvas) 75%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}}@layer components{.feedback-toast-container{position:fixed;top:var(--sp-6);inset-inline-start:var(--sp-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-3);pointer-events:none;max-width:420px;width:calc(100% - var(--sp-6))}.feedback-toast-container--bottom{top:auto;bottom:var(--sp-6)}.feedback-toast-container--left{inset-inline-start:auto;inset-inline-end:var(--sp-6)}.feedback-toast-container--bottom-left{top:auto;bottom:var(--sp-6);inset-inline-start:auto;inset-inline-end:var(--sp-6)}.feedback-toast-container--center{top:50%;inset-inline-start:50%;transform:translate(-50%,-50%);align-items:center}.feedback-toast{display:flex;align-items:flex-start;gap:var(--sp-3);min-width:280px;max-width:420px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--material-dropdown-bg);box-shadow:var(--edge-top-light),var(--edge-bottom-light),var(--shadow-lg);background-image:var(--refraction-subtle),var(--noise-texture);pointer-events:auto;position:relative;overflow:hidden;animation:feedbackToastIn var(--duration-normal) var(--easing-entrance);font-family:var(--font-ui)}.feedback-toast.exiting{animation:feedbackToastOut var(--duration-fast) var(--easing-exit)}@keyframes feedbackToastIn{0%{opacity:0;transform:translate(16px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes feedbackToastOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(16px) scale(.96)}}[dir=rtl] .feedback-toast,.rtl .feedback-toast{animation-name:feedbackToastInRTL}[dir=rtl] .feedback-toast.exiting,.rtl .feedback-toast.exiting{animation-name:feedbackToastOutRTL}@keyframes feedbackToastInRTL{0%{opacity:0;transform:translate(-16px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes feedbackToastOutRTL{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-16px) scale(.96)}}.feedback-toast-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:var(--icon-md);margin-top:1px}.feedback-toast-icon.success{color:var(--success)}.feedback-toast-icon.error{color:var(--danger)}.feedback-toast-icon.warning{color:var(--warning)}.feedback-toast-icon.info{color:var(--info)}.feedback-toast-body{flex:1;min-width:0}.feedback-toast-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:2px;line-height:var(--line-height-tight)}.feedback-toast-message{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:var(--line-height-normal)}.feedback-toast-close{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);font-size:var(--icon-xs);cursor:pointer;transition:background var(--duration-fast) var(--easing-out);background:none;border:none;padding:0;line-height:1}.feedback-toast-close:hover{background:var(--canvas-alt);color:var(--text-primary)}.feedback-toast-progress{position:absolute;bottom:0;inset-inline-start:0;height:2px;background:var(--accent);border-radius:0 0 0 var(--radius-md);animation:feedbackToastProgress linear forwards}.feedback-toast-progress.success{background:var(--success)}.feedback-toast-progress.error{background:var(--danger)}.feedback-toast-progress.warning{background:var(--warning)}.feedback-toast-progress.info{background:var(--info)}@keyframes feedbackToastProgress{0%{width:100%}to{width:0%}}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--sp-5) 0;animation:feedbackOverlayIn var(--duration-normal) var(--easing-entrance)}@keyframes feedbackOverlayIn{0%{opacity:0}to{opacity:1}}.feedback-overlay.exiting{animation:feedbackOverlayOut var(--duration-fast) var(--easing-exit) forwards}@keyframes feedbackOverlayOut{0%{opacity:1}to{opacity:0}}.feedback-dialog{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-modal);border:1px solid var(--border);width:94%;max-width:440px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:feedbackDialogIn var(--duration-normal) var(--easing-entrance);position:relative}.feedback-dialog--sm{max-width:360px}.feedback-dialog--lg{max-width:540px}@keyframes feedbackDialogIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.feedback-overlay.exiting .feedback-dialog{animation:feedbackDialogOut var(--duration-fast) var(--easing-exit) forwards}@keyframes feedbackDialogOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(8px)}}.feedback-dialog-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6) var(--sp-2)}.feedback-dialog-icon{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--icon-lg)}.feedback-dialog-icon.success{background:var(--success-soft);color:var(--success)}.feedback-dialog-icon.error{background:var(--danger-soft);color:var(--danger)}.feedback-dialog-icon.warning{background:var(--warning-soft);color:var(--warning)}.feedback-dialog-icon.info{background:var(--info-soft);color:var(--info)}.feedback-dialog-icon.question{background:var(--accent-soft);color:var(--accent)}.feedback-dialog-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:var(--line-height-tight);flex:1}.feedback-dialog-close{flex-shrink:0;width:40px;height:40px;min-width:40px;min-height:40px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;background:var(--canvas-alt);border:none;cursor:pointer;transition:all var(--duration-fast) var(--easing-out);color:var(--text-secondary);font-size:1.5rem;font-weight:300;line-height:1}.feedback-dialog-close:hover{background:var(--danger-soft);color:var(--danger)}.feedback-dialog-body{padding:var(--sp-2) var(--sp-6) var(--sp-5);color:var(--text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);overflow-y:auto;max-height:50vh}.feedback-dialog-footer{display:flex;gap:var(--sp-3);justify-content:flex-start;padding:var(--sp-4) var(--sp-6);border-block-start:1px solid var(--border)}.feedback-dialog-footer--center{justify-content:center}.feedback-dialog-input{width:100%;min-height:44px;padding-inline:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-base);transition:border-color .15s ease,box-shadow .15s ease;margin-top:var(--sp-3)}.feedback-dialog-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.feedback-dialog-input::placeholder{color:var(--text-tertiary)}.feedback-dialog-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;padding-inline:var(--sp-5);border-radius:var(--radius-sm);font-weight:600;border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring),filter var(--duration-fast) var(--easing-smooth);font-family:var(--font-ui);font-size:var(--font-size-base);flex:1}.feedback-dialog-btn:active{transform:scale(.98)}.feedback-dialog-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feedback-dialog-btn--primary{background:var(--accent);color:var(--text-on-accent)}.feedback-dialog-btn--primary:hover{background:var(--accent-hover)}.feedback-dialog-btn--secondary{background:transparent;border-color:var(--border-strong);color:var(--text-secondary)}.feedback-dialog-btn--secondary:hover{background:var(--canvas-alt);color:var(--text-primary)}.feedback-dialog-btn--danger{background:var(--danger);color:var(--text-on-accent)}.feedback-dialog-btn--danger:hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.feedback-dialog-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:feedbackSpin .8s linear infinite;flex-shrink:0}@keyframes feedbackSpin{to{transform:rotate(360deg)}}.feedback-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;animation:feedbackOverlayIn var(--duration-normal) var(--easing-entrance)}.feedback-loading-card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-modal);border:1px solid var(--border);padding:var(--sp-8) var(--sp-10);display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);min-width:200px;text-align:center;animation:feedbackDialogIn var(--duration-normal) var(--easing-entrance)}.feedback-loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:feedbackSpin .8s linear infinite}.feedback-loading-spinner--inline{margin:var(--sp-4) auto}.feedback-loading-text{font-size:var(--font-size-base);color:var(--text-primary);font-weight:var(--font-weight-medium)}.feedback-loading-subtext{font-size:var(--font-size-sm);color:var(--text-secondary)}@media(max-width:640px){.feedback-toast-container{top:var(--sp-4);inset-inline-end:var(--sp-4);inset-inline-start:var(--sp-4);max-width:none;width:auto}.feedback-toast-container.position-bottom{top:auto;bottom:var(--sp-4)}.feedback-toast{min-width:0;max-width:none}.feedback-dialog{width:96%;max-width:none;border-radius:var(--radius-lg);margin:var(--sp-4);max-height:90vh}.feedback-dialog-header{padding:var(--sp-4) var(--sp-4) var(--sp-1)}.feedback-dialog-body{padding:var(--sp-1) var(--sp-4) var(--sp-4)}.feedback-dialog-footer{padding:var(--sp-3) var(--sp-4);flex-direction:column}.feedback-dialog-btn{width:100%}}@media(prefers-reduced-motion:reduce){.feedback-toast,.feedback-overlay,.feedback-dialog,.feedback-loading-overlay,.feedback-loading-card,.feedback-toast-progress,.feedback-dialog-spinner,.feedback-loading-spinner{animation:none!important}}.feedback-overlay[aria-hidden=true],.feedback-loading-overlay[aria-hidden=true]{display:none}.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}}@layer components{.file-upload-container{position:relative;margin-bottom:var(--sp-4)}.file-input{display:none}.file-upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-8) var(--sp-5);border:2px dashed var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);background:var(--canvas-alt);text-align:center}.file-upload-label:hover{border-color:var(--accent);background:var(--accent-soft)}.file-upload-label i{font-size:var(--font-size-4xl);color:var(--accent);margin-bottom:var(--sp-2)}.file-upload-label span{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--sp-1)}.file-upload-label small{font-size:var(--font-size-sm);color:var(--text-tertiary)}.image-upload-container{display:flex;flex-direction:column;align-items:center;margin-top:var(--sp-2)}.image-upload-label{display:inline-block;background:var(--accent);color:var(--text-on-accent);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:background var(--duration-fast) var(--easing-out);margin-top:var(--sp-2);font-family:var(--font-ui)}.image-upload-label:hover{background:var(--accent-hover)}.image-upload-input{display:none}.image-preview{display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:center}.image-preview img{width:90px;height:90px;object-fit:cover;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.image-preview div{position:relative;width:80px;height:80px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.image-preview .delete-btn{position:absolute;top:3px;inset-inline-end:3px;background:var(--danger);color:var(--text-on-accent);border:none;border-radius:50%;cursor:pointer;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);padding:0;box-shadow:var(--shadow-sm)}.image-preview .remove-icon{position:absolute;top:var(--sp-1);inset-inline-end:var(--sp-1);background:var(--surface);border-radius:50%;padding:var(--sp-1);cursor:pointer;color:var(--danger);font-size:var(--font-size-sm);box-shadow:var(--shadow-sm)}}@layer components{.filter-bar{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-block-end:var(--sp-6)}.filter-bar .filter-group{display:flex;align-items:center;gap:var(--sp-2)}.filter-bar .filter-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap}.filter-bar select,.filter-bar input[type=text],.filter-bar input[type=date],.filter-bar input[type=number]{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--canvas);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);min-height:36px;transition:border-color var(--duration-fast) var(--easing-out)}.filter-bar select:focus,.filter-bar input:focus{outline:none;border-color:var(--accent)}.filter-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.filter-btn:hover,.filter-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.filter-btn .filter-btn-label{font-size:var(--text-xs, .75rem);font-weight:500;white-space:nowrap}@media(max-width:640px){.filter-btn .filter-btn-label{display:none}}.date-filters{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.date-filter-group{display:flex;align-items:center;gap:var(--sp-2)}.date-filter-group label{font-size:var(--font-size-sm);color:var(--text-secondary)}.action-buttons{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.action-cell{display:flex;gap:var(--sp-2);justify-content:center;align-items:center;flex-wrap:nowrap}.search-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end}.search-row .search-field{flex:1 1 200px}.search-row .search-field label{display:block;font-size:var(--font-size-xs);color:var(--text-secondary);margin-block-end:var(--sp-1)}.search-row .search-field input,.search-row .search-field select{width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--canvas);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui)}.search-row .search-field input:focus,.search-row .search-field select:focus{outline:none;border-color:var(--accent)}.search-row .search-actions{display:flex;gap:var(--sp-2);align-items:center}.filter-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);margin-block-end:var(--sp-6);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4)}.filter-buttons{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.filter-buttons .filter-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.filter-buttons .filter-btn:hover,.filter-buttons .filter-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}}@layer components{.page-footer{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-fixed)}}@layer components{.form-group{display:flex;flex-direction:column;gap:var(--sp-2);margin-block-end:var(--sp-4)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4);margin-block-end:var(--sp-4)}.form-label{color:var(--text-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.form-field{display:flex;flex-direction:column;gap:var(--sp-2)}.form-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.form-section{margin-block-end:var(--sp-6)}.form-section h4{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-4);padding-block-end:var(--sp-2);border-block-end:1px solid var(--border);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2}.form-section h4 i{color:var(--accent);font-size:var(--icon-md);flex-shrink:0}.form-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-6);margin-block-end:var(--sp-6)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4)}.select-wrapper{position:relative}.select-wrapper select{width:100%}.checkbox-group{margin:var(--sp-5) 0}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);gap:var(--sp-2)}.checkbox-label input[type=checkbox]{display:none}.checkmark{width:20px;height:20px;border:2px solid var(--border);border-radius:4px;position:relative;transition:all var(--duration-fast) var(--easing-out);background:var(--surface);flex-shrink:0}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--accent);border-color:var(--accent)}.checkbox-label input[type=checkbox]:checked+.checkmark:after{content:"✓";position:absolute;top:-2px;inset-inline-start:3px;color:var(--text-on-accent);font-size:15px}.checkbox-cell{cursor:pointer}.list-group-item{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);margin-block-end:var(--sp-2);transition:background var(--duration-fast) var(--easing-out)}.list-group-item:hover{background:var(--canvas-alt)}.price-label{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--accent);white-space:nowrap}.custom-price-container{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-block-start:var(--sp-3);background:var(--canvas-alt);border-radius:var(--radius-sm);border:1px solid var(--border)}.custom-price-label{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.custom-price-text{font-size:var(--font-size-base);color:var(--accent);font-weight:var(--font-weight-bold)}.custom-price-info-icon{font-size:var(--icon-sm);color:var(--text-tertiary);cursor:help;margin-inline-start:auto}.full-width{width:100%}.price-cell{display:flex;flex-direction:column;gap:var(--sp-1);align-items:center}.price-row{display:flex;align-items:center;gap:var(--sp-2)}.price-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.price-separator{color:var(--border-strong);font-size:var(--font-size-xs)}.price-changes-price-cell{display:flex;flex-direction:row;align-items:center;gap:var(--sp-2)}.price-change-arrow{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-semibold);-webkit-user-select:none;user-select:none}.price-cell--old{opacity:.75}.price-cell--new{font-weight:var(--font-weight-semibold)}.selection-card{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);margin-block-end:var(--sp-2);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);background:var(--surface);font-size:var(--font-size-sm)}.selection-card:hover{border-color:var(--accent);background:var(--accent-soft)}.selection-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.selection-card input[type=checkbox]{margin:0}.selection-card__info{flex:1;min-width:0}.selection-card__name{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.selection-card__store,.selection-card__barcode{font-size:var(--font-size-xs);color:var(--text-tertiary)}.selection-card__details{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-1)}.selection-card__details span{font-size:var(--font-size-xs);color:var(--text-secondary)}.type-fields-section{overflow:hidden;transition:max-height var(--duration-slow) var(--easing-out),opacity var(--duration-normal) var(--easing-out),margin var(--duration-slow) var(--easing-out);max-height:800px;opacity:1;margin-block-end:0}.type-fields-section.hidden{max-height:0;opacity:0;margin-block-end:0;transition:max-height var(--duration-slow) var(--easing-inout),opacity var(--duration-fast) var(--easing-inout),margin var(--duration-slow) var(--easing-inout)}.type-fields-section .form-section:last-child{margin-block-end:0}.type-badges-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-block-end:var(--sp-3)}.type-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--canvas-alt);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out),border-color var(--duration-fast) var(--easing-out)}.type-badge:hover{border-color:var(--accent);color:var(--accent)}.type-badge.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.price-calculator{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-block-end:var(--sp-3)}.price-card{position:relative;padding:var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--canvas-alt);display:flex;flex-direction:column;gap:var(--sp-2);transition:all var(--duration-normal) var(--easing-out)}.price-card__label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-semibold)}.price-card__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);font-family:var(--font-ui);line-height:1.1}.price-card__input{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);width:100%;font-family:var(--font-ui);min-height:44px;transition:all var(--duration-fast) var(--easing-out);text-align:center}.price-card__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.price-card--cost .price-card__input:focus{border-color:var(--info);box-shadow:0 0 0 3px var(--info-soft)}.price-card--sell .price-card__input:focus{border-color:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.price-card__input::placeholder{color:var(--text-tertiary);opacity:.7;font-size:var(--font-size-base)}.profit-result{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);margin-block-end:var(--sp-3);transition:all var(--duration-normal) var(--easing-out);border:1px solid var(--border);background:var(--canvas-alt)}.profit-result__amount{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);font-family:var(--font-ui)}.profit-result__pct{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-ui);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-full)}.profit-result.profit-positive{background:var(--success-soft);border-color:var(--success);color:var(--success)}.profit-result.profit-warning{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.profit-result.profit-negative{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.profit-result.profit-neutral{background:var(--canvas-alt);border-color:var(--border);color:var(--text-secondary)}.profit-result__icon{font-size:var(--icon-lg);flex-shrink:0}.barcode-input-row{display:flex;align-items:stretch;gap:var(--sp-2)}.barcode-input-row .input-field{flex:1}.barcode-actions{display:flex;gap:var(--sp-2)}.barcode-preview-box{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-4);background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);margin-block-start:var(--sp-3);transition:all var(--duration-normal) var(--easing-out)}.barcode-preview-box canvas,.barcode-preview-box svg{max-width:120px;height:40px}.barcode-preview-box .barcode-value-text{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.barcode-status-row{display:flex;align-items:center;gap:var(--sp-2)}.barcode-status-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.barcode-status-badge.available{background:var(--success-soft);color:var(--success)}.barcode-status-badge.used{background:var(--warning-soft);color:var(--warning)}.image-drop-zone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);cursor:pointer;transition:all var(--duration-normal) var(--easing-out);background:var(--canvas-alt);text-align:center;min-height:140px}.image-drop-zone:hover,.image-drop-zone.drag-over{border-color:var(--accent);background:var(--accent-soft)}.image-drop-zone.drag-over{transform:scale(1.01)}.image-drop-zone__icon{font-size:var(--font-size-4xl);color:var(--accent)}.image-drop-zone__text{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.image-drop-zone__hint{font-size:var(--font-size-sm);color:var(--text-tertiary)}.image-previews-grid{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-block-start:var(--sp-3)}.image-previews-grid .img-preview-card{position:relative;width:100px;height:100px;border-radius:var(--radius-sm);border:2px solid var(--border);overflow:hidden;background:var(--canvas-alt);transition:all var(--duration-fast) var(--easing-out)}.image-previews-grid .img-preview-card:hover{border-color:var(--accent)}.image-previews-grid .img-preview-card.primary{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.image-previews-grid .img-preview-card img{width:100%;height:100%;object-fit:cover}.image-previews-grid .img-preview-card .img-remove-btn{position:absolute;top:4px;inset-inline-end:4px;width:22px;height:22px;border-radius:var(--radius-full);background:var(--danger);color:var(--text-on-accent);border:none;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-fast) var(--easing-out)}.image-previews-grid .img-preview-card:hover .img-remove-btn{opacity:1}.image-previews-grid .img-preview-card .img-primary-badge{position:absolute;bottom:4px;inset-inline-start:4px;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent);font-size:10px;font-weight:var(--font-weight-bold)}.field-feedback{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-block-start:var(--sp-1);transition:all var(--duration-fast) var(--easing-out);min-height:0;overflow:hidden}.field-feedback.success{color:var(--success)}.field-feedback.warning{color:var(--warning)}.field-feedback.error{color:var(--danger)}.field-feedback.info{color:var(--info)}.input-field.valid-field{border-color:var(--success)!important;box-shadow:0 0 0 3px var(--success-soft)!important}.input-field.invalid-field{border-color:var(--danger)!important;box-shadow:0 0 0 3px var(--danger-soft)!important}.store-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-normal) var(--easing-out);background:var(--surface);-webkit-user-select:none;user-select:none}.store-card:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.store-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.store-card__checkbox{width:20px;height:20px;border-radius:4px;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--easing-out);color:var(--text-on-accent);font-size:12px}.store-card.selected .store-card__checkbox{background:var(--accent);border-color:var(--accent)}.store-card__info{flex:1;min-width:0}.store-card__name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--text-primary)}.store-card__meta{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-block-start:var(--sp-1)}.store-card__priority{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.store-card__priority.high{background:var(--success)}.store-card__priority.medium{background:var(--warning)}.store-card__priority.low{background:var(--text-tertiary)}.stores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3);margin-block-start:var(--sp-3)}.preview-panel-sticky{position:sticky;inset-block-start:var(--sp-4);z-index:1}.preview-panel{padding:var(--sp-5);background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--sp-4)}.preview-panel__header{display:flex;align-items:center;gap:var(--sp-3);padding-block-end:var(--sp-3);border-block-end:1px solid var(--border)}.preview-panel__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.live-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--success);animation:live-pulse 2s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.3}}.preview-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.preview-row__label{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:var(--font-weight-medium)}.preview-row__value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-semibold);text-align:end}.preview-row__value.profit-positive{color:var(--success)}.preview-row__value.profit-negative{color:var(--danger)}.preview-row__value.profit-neutral{color:var(--text-secondary)}.preview-divider{height:1px;background:var(--border);margin-block:var(--sp-1) 0}.modal-footer--fixed{position:sticky;inset-block-end:0;z-index:3;background:linear-gradient(to top,var(--surface) 70%,transparent);padding-block:var(--sp-4) var(--sp-6);margin-block-start:var(--sp-6);border-block-start:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3)}.modal-footer--fixed .btn{min-width:120px;justify-content:center}.form-alert{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-md);border:1px solid var(--border);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-block-end:var(--sp-5);transition:all var(--duration-normal) var(--easing-out)}.form-alert i{font-size:1.1rem;flex-shrink:0}.form-alert.info{background:var(--info-soft);border-color:var(--info);color:var(--info)}.form-alert.success{background:var(--success-soft);border-color:var(--success);color:var(--success)}.form-alert.warning{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.form-alert.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.barcode-section-wrapper{display:flex;flex-direction:column;gap:var(--sp-3);margin-block-start:var(--sp-4)}.barcode-section-wrapper .barcode-row-top{display:flex;align-items:stretch;gap:var(--sp-2)}.barcode-section-wrapper .barcode-row-top .input-field{flex:1}.modal-body--with-preview{display:grid;grid-template-columns:1fr 320px;gap:var(--sp-6);align-items:start}@media(max-width:1023px){.modal-body--with-preview{grid-template-columns:1fr}.preview-panel-sticky{position:static}}.modal-form-area{min-width:0}.btn-generate-barcode{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--easing-out);font-family:var(--font-ui)}.btn-generate-barcode:hover{background:var(--accent-soft);border-color:var(--accent)}.btn-copy-barcode{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--easing-out);font-family:var(--font-ui)}.btn-copy-barcode:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.stock-indicator{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.stock-indicator.in-stock{background:var(--success-soft);color:var(--success)}.stock-indicator.low-stock{background:var(--warning-soft);color:var(--warning)}.stock-indicator.out-of-stock{background:var(--danger-soft);color:var(--danger)}}@layer components{.glass-full{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-ambient),var(--shadow-contact)}.glass-full:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,var(--glass-sheen) 0%,transparent 42%);opacity:.6;pointer-events:none}.glass-whisper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.glass-table{width:100%;border-collapse:collapse}.glass-table thead th{text-align:start;font-size:13px;font-weight:600;color:var(--text-secondary);padding-block:var(--sp-3);border-bottom:1px solid var(--border-strong)}.glass-table tbody td{padding-block:var(--sp-3);border-bottom:1px solid var(--border);color:var(--text-primary)}.glass-table tbody tr:hover{background:var(--canvas-alt)}.glass-table .cell-numeric{font-variant-numeric:tabular-nums;text-align:end}.glass-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;padding-inline:var(--sp-4);border-radius:var(--radius-sm);font-weight:600;border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-fast) var(--easing-smooth),transform var(--duration-fast) var(--easing-spring),filter var(--duration-fast) var(--easing-smooth),opacity var(--duration-fast) var(--easing-smooth);font-family:var(--font-ui);font-size:var(--font-size-base)}.glass-btn:active{transform:scale(.98)}.glass-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.glass-btn:disabled{opacity:.45;cursor:not-allowed}.glass-btn--primary{background:var(--accent);color:var(--text-on-accent)}.glass-btn--primary:hover{background:var(--accent-hover)}.glass-btn--secondary{background:transparent;border-color:var(--accent);color:var(--accent)}.glass-btn--ghost{background:transparent;color:var(--text-secondary)}.glass-btn--ghost:hover{background:var(--canvas-alt)}.glass-btn--danger{background:var(--danger-soft);color:var(--danger)}.glass-input{width:100%;min-height:44px;padding-inline:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease;font-family:var(--font-ui);font-size:var(--font-size-base)}.glass-input::placeholder{color:var(--text-tertiary)}.glass-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.glass-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:999px;font-size:12px;font-weight:600}.glass-badge--success{background:var(--success-soft);color:var(--success)}.glass-badge--warning{background:var(--warning-soft);color:var(--warning)}.glass-badge--danger{background:var(--danger-soft);color:var(--danger)}.glass-badge--info{background:var(--info-soft);color:var(--info)}.glass-badge--accent{background:var(--accent-soft);color:var(--accent)}.glass-badge--muted{background:var(--border);color:var(--text-secondary)}.card__header{padding:var(--sp-4) var(--sp-4) 0;font-weight:600}.card__body{padding:var(--sp-4);color:var(--text-secondary)}.card__footer{padding:0 var(--sp-4) var(--sp-4);border-top:1px solid var(--border)}.glass-edge-soft{mask-image:linear-gradient(to bottom,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 85%,transparent 100%)}.glass-edge-hard{border-bottom:1px solid var(--border-strong);box-shadow:0 4px 12px -4px #0000001a}}@layer tokens{@media(prefers-reduced-motion:reduce){.glass-full,.glass-whisper,.glass-btn,.sidebar-nav-item,.app-header{transition:none!important}}}@layer components{.account-profile-img{width:120px;height:120px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--border);transition:border-color var(--duration-fast) var(--easing-out)}.account-profile-img:hover{border-color:var(--accent)}.account-default-profile{width:120px;height:120px;border-radius:var(--radius-full);background:var(--canvas-alt);display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--text-tertiary);border:3px solid var(--border)}.profile-image-container{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);margin-block-end:var(--sp-6)}.image-container{display:inline-block;margin:var(--sp-2);position:relative;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--easing-out);background:var(--surface);border:2px solid transparent}.image-container:hover{transform:translateY(-3px) scale(1.02);box-shadow:var(--shadow-lg);border-color:var(--accent)}.image-container img{width:110px;height:110px;object-fit:cover;display:block;transition:transform var(--duration-normal) var(--easing-out)}.image-container:hover img{transform:scale(1.05)}.delete-image-btn{position:absolute;top:-8px;inset-inline-end:-8px;background:var(--danger);color:var(--text-on-accent);border:2px solid var(--surface);border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--easing-out);box-shadow:var(--shadow-md);z-index:10;line-height:1;padding:0}.delete-image-btn:hover{background:var(--danger);transform:scale(1.1);box-shadow:var(--shadow-lg)}.delete-image-btn:active{transform:scale(.95)}.modal-image-item{text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--surface);transition:all var(--duration-fast) var(--easing-out);position:relative;overflow:hidden}.modal-image-item:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.modal-image-item img{width:100%;height:120px;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--duration-fast) var(--easing-spring)}.modal-image-item img:hover{transform:scale(1.05)}.modal-images-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-4);padding:var(--sp-4)}.has-images-icon{background:var(--success);color:var(--text-on-accent);border-color:var(--success)}.no-images-icon{background:var(--warning);color:var(--text-on-accent);border-color:var(--warning)}.no-images-message{text-align:center;padding:var(--sp-8) var(--sp-6);color:var(--text-tertiary);font-style:italic;font-size:var(--font-size-lg);border:2px dashed var(--border);border-radius:var(--radius-lg);margin:var(--sp-4) 0}.current-images{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-block-end:var(--sp-4);padding:var(--sp-3);background:var(--canvas-alt);border-radius:var(--radius-sm);min-height:60px}}@layer components{.editable-cell{cursor:pointer;position:relative;padding:var(--sp-1)}.editable-cell:hover{background:var(--accent-soft);border-radius:var(--radius-sm)}.editable-cell .display-value{display:inline}.editable-cell input,.editable-cell select,.editable-cell.editing .display-value{display:none}.editable-cell.editing input,.editable-cell.editing select{display:inline-block}.inline-edit-input{width:100%;padding:var(--sp-1) var(--sp-2);border:2px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--font-size-sm);outline:none;font-family:var(--font-ui);background:var(--surface);color:var(--text-primary);text-align:center}.inline-edit-input:focus{box-shadow:0 0 0 3px var(--accent-soft)}.inline-edit-select{padding:var(--sp-1) var(--sp-2);border:2px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--surface);min-width:120px;font-family:var(--font-ui)}}@layer components{.input-field,.input,input[type=text],input[type=password],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=date],input[type=datetime-local],input[type=time],input[type=month],input[type=week],select,textarea{width:100%;padding:var(--sp-3) var(--sp-4);font-size:var(--font-size-sm);font-family:var(--font-ui);color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out);line-height:var(--line-height-normal);min-height:40px}.input-field:hover,input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}.input-field:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.input-field::placeholder,input::placeholder,textarea::placeholder{color:var(--text-tertiary);opacity:.7}.input-field:disabled,input:disabled,select:disabled,textarea:disabled{background:var(--canvas-alt);color:var(--text-tertiary);border-color:var(--border);cursor:not-allowed;opacity:.7}.input-field.error,input.error,select.error,textarea.error{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.input-field.success,input.success,select.success,textarea.success{border-color:var(--success);box-shadow:0 0 0 3px var(--success-soft)}textarea{min-height:80px;resize:vertical;line-height:var(--line-height-relaxed)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236e6e73' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:end 12px center;padding-inline-end:var(--sp-8);cursor:pointer}select option{color:var(--text-primary);background:var(--surface)}.search-field,input[type=search]{padding:var(--sp-3) var(--sp-4);padding-inline-end:var(--sp-10);border-radius:var(--radius-full);background:var(--canvas-alt);border:1px solid transparent;min-height:38px}.search-field:focus,input[type=search]:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-icon-wrapper{position:relative}.input-icon-wrapper .input-icon{position:absolute;top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:var(--icon-md);pointer-events:none}.input-icon-wrapper .input-icon.left{inset-inline-start:var(--sp-3)}.input-icon-wrapper .input-icon.right{inset-inline-end:var(--sp-3)}.input-icon-wrapper input,.input-icon-wrapper select{padding-inline-start:calc(var(--sp-3) + var(--icon-md) + var(--sp-2))}.input-icon-wrapper input:focus~.input-icon,.input-icon-wrapper select:focus~.input-icon{color:var(--accent)}.search-container{position:relative;width:100%;max-width:400px}.search-container .search-icon{position:absolute;inset-inline-start:var(--sp-4);top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:var(--icon-sm);pointer-events:none}.search-container input{padding-inline-start:calc(var(--sp-4) + var(--icon-sm) + var(--sp-2))}.filter-group{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:center}.filter-group input,.filter-group select{width:auto;min-width:160px}}@layer components{.mobile-card-view{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-3)}.mobile-card-view .mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--duration-fast) var(--easing-out)}.mobile-card-view .mobile-card:hover{border-color:var(--accent)}.mobile-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--canvas-alt);border-block-end:1px solid var(--border);gap:var(--sp-2)}.mobile-card-body{padding:var(--sp-3) var(--sp-4)}.mobile-card-body .detail-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-1) 0;font-size:var(--font-size-sm)}.mobile-card-body .detail-label{color:var(--text-secondary)}.mobile-card-body .detail-value{color:var(--text-primary);font-weight:var(--font-weight-semibold);text-align:end}.mobile-card-footer{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-block-start:1px solid var(--border);justify-content:flex-end}.mobile-item-card,.mobile-sale-card,.mobile-change-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-block-end:var(--sp-3)}.mobile-item-header,.mobile-sale-header,.mobile-change-top{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--canvas-alt);border-block-end:1px solid var(--border);gap:var(--sp-2)}.mobile-item-id,.mobile-sale-id,.mobile-change-id{font-size:var(--font-size-xs);color:var(--text-tertiary);font-family:monospace}.mobile-item-title,.mobile-sale-title,.mobile-change-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.mobile-item-detail,.mobile-item-details,.mobile-sale-detail,.mobile-sale-details,.mobile-change-info,.mobile-change-prices{padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.mobile-item-actions,.mobile-sale-actions,.mobile-change-actions{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-block-start:1px solid var(--border);justify-content:flex-end}.mobile-change-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.mobile-change-type{font-size:var(--font-size-xs);color:var(--text-tertiary)}.mobile-price-section{display:flex;gap:var(--sp-3);justify-content:space-between}.mobile-price-section .price-old{color:var(--danger);text-decoration:line-through;font-size:var(--font-size-sm)}.mobile-price-section .price-new{color:var(--success);font-weight:var(--font-weight-bold);font-size:var(--font-size-base)}}@layer components{.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);z-index:var(--z-modal-backdrop);align-items:center;justify-content:center}.modal-overlay.active,.modal-overlay.open{display:flex}.modal-table-container{max-height:60vh;overflow-y:auto;padding:var(--sp-4)}.modal{display:none;position:fixed;z-index:var(--z-modal-backdrop);top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:var(--color-overlay);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);overflow-y:auto;padding:var(--sp-5) 0}.modal.show,.modal.active,.modal[style*="display: block"],.modal[style*="display: flex"]{display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:var(--sp-5) 0}.modal-content{background:var(--surface);margin:auto;padding:0;border-radius:var(--radius-xl);width:min(96%,var(--modal-width-md, 48rem));max-width:var(--modal-width-md, 48rem);max-height:85vh;overflow:hidden;box-shadow:var(--glass-shadow-modal);border:1px solid var(--border);position:relative;animation:modal-enter var(--duration-normal) var(--easing-out)}@keyframes modal-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-dialog.modal-sm,.modal-sm .modal-content{max-width:var(--modal-width-sm, 32rem)}.modal-dialog.modal-md,.modal-md .modal-content{max-width:var(--modal-width-md, 48rem)}.modal-lg{max-width:var(--modal-width-lg, 64rem);width:96%}.modal-xl{max-width:96vw;width:96%}@media(min-width:1024px){.modal-xl{max-width:var(--modal-width-xl, 80rem)}}@media(min-width:1400px){.modal-xl{max-width:var(--modal-width-workspace, 90rem)}}.modal-full,.modal-fullscreen .modal-content{max-width:100vw;width:100%;max-height:100vh;height:100vh;border-radius:0;margin:0}.modal-fullscreen{padding:0}.modal-fullscreen.show,.modal-fullscreen.active{align-items:stretch;justify-content:stretch}@media(min-width:1024px){.modal-full:not(.modal-fullscreen){max-width:95vw}}body.modal-open,body:has(.modal.show,.modal.active){overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-5) var(--sp-6);border-block-end:1px solid var(--border);position:sticky;inset-block-start:0;z-index:2;background:transparent}.modal-header h2,.modal-header .modal-title{margin:0;font-size:var(--font-size-xl);color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2);position:relative;z-index:1}body:has(.modal-overlay.open,.modal-overlay.active){overflow:hidden}.modal-header .close{width:32px;height:32px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;background:var(--canvas-alt);border:none;cursor:pointer;transition:all var(--duration-fast) var(--easing-out);color:var(--text-secondary);font-size:var(--font-size-lg);line-height:1;flex-shrink:0;padding:0}.modal-header .close:before{content:"×";font-size:1.5rem;font-weight:300;line-height:1}.modal-header .close i{display:none}.modal-header .close:hover{background:var(--danger-soft);color:var(--danger)}.modal-body{padding:var(--sp-6);max-height:60vh;overflow-y:auto;position:relative;z-index:1}.modal-footer{display:flex;gap:var(--sp-4);justify-content:flex-start;padding:var(--sp-4) var(--sp-6);border-block-start:1px solid var(--border);position:sticky;inset-block-end:0;z-index:2;background:transparent}.modal-content h3{font-size:var(--font-size-xl);color:var(--text-primary);margin-block-end:var(--sp-4)}.modal-content p{font-size:var(--font-size-base);color:var(--text-secondary);margin-block-end:var(--sp-4)}.modal-section-title--spaced{margin-block-start:var(--sp-4)}.providers-modal{display:flex;flex-direction:column;align-items:center;padding:var(--sp-5);background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);max-width:600px;width:90%;margin:auto;text-align:center}.providers-list{list-style:none;padding:0;margin:0;width:100%;display:flex;flex-direction:column;gap:var(--sp-3)}.providers-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);transition:background var(--duration-fast) var(--easing-out)}.providers-list li:hover{background:var(--accent-soft)}.provider-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--accent)}.delete-icon{color:var(--danger);cursor:pointer;font-size:var(--font-size-lg);transition:color var(--duration-fast) var(--easing-out)}.delete-icon:hover{color:var(--danger)}.image-preview-modal{display:none;position:fixed;z-index:var(--z-modal);top:0;right:0;bottom:0;left:0;background:#000000d9;align-items:center;justify-content:center;padding:var(--sp-4)}.image-preview-modal.active{display:flex}.image-preview-content{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:var(--shadow-xl)}.image-preview-close{position:fixed;top:var(--sp-4);inset-inline-end:var(--sp-5);color:var(--text-on-dark);font-size:2.5rem;font-weight:var(--font-weight-bold);cursor:pointer;background:none;border:none;z-index:calc(var(--z-modal) + 1);line-height:1;transition:opacity var(--duration-fast) var(--easing-out);opacity:.8}.image-preview-close:hover{opacity:1}.teacher-modal .modal-header__main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);width:100%}.teacher-modal .modal-header__meta{width:100%}.teacher-modal .modal-header__meta .group-name-container{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.teacher-modal .modal-header__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;padding-block-start:var(--sp-3);border-block-start:1px solid var(--border)}.teacher-modal .modal-header__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}#attendanceStudentsModal .teacher-modal__header{flex-direction:column;align-items:stretch}.assignment-form-body{max-width:960px;margin-inline:auto}.teacher-modal{--bs-modal-zindex: var(--z-modal);display:none;position:fixed;z-index:var(--z-modal-backdrop);top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:var(--color-overlay);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);overflow-y:auto;padding:var(--sp-5) 0;opacity:0;transition:opacity var(--duration-normal) var(--easing-out)}.teacher-modal.show{display:flex;align-items:center;justify-content:center;opacity:1}.teacher-modal__dialog{--modal-current-width: var(--modal-width-md, 48rem);position:relative;width:min(var(--modal-current-width),calc(100vw - var(--modal-margin, var(--sp-4)) * 2));max-width:min(var(--modal-current-width),calc(100vw - var(--modal-margin, var(--sp-4)) * 2));margin:var(--modal-margin, var(--sp-4)) auto;pointer-events:none}.teacher-modal.show .teacher-modal__dialog{pointer-events:auto}.teacher-modal__dialog--centered{display:flex;align-items:center;min-height:calc(100% - var(--sp-8))}.teacher-modal__dialog--scrollable{max-height:calc(100vh - (var(--modal-margin, var(--sp-4)) * 2))}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay, rgba(0, 0, 0, .5));z-index:calc(var(--z-modal-backdrop, 1040) - 1);opacity:0;transition:opacity var(--duration-normal) var(--easing-out)}.modal-backdrop.show{opacity:1}body.modal-open{overflow:hidden}.teacher-modal .modal-backdrop{background:#0f172073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.teacher-modal__header-meta{margin-block-start:var(--sp-2)}.teacher-modal__description-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.teacher-modal__header-toolbar-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%}.teacher-modal .modal-dialog{width:min(var(--modal-current-width, var(--modal-width-md, 48rem)),calc(100vw - var(--modal-margin) * 2));max-width:min(var(--modal-current-width, var(--modal-width-md, 48rem)),calc(100vw - var(--modal-margin) * 2));margin:var(--modal-margin) auto;max-height:calc(100vh - (var(--modal-margin) * 2))}.teacher-modal .modal-dialog.modal-dialog-scrollable,.teacher-modal .teacher-modal__dialog.modal-dialog-scrollable{max-height:calc(100vh - (var(--modal-margin) * 2))}.teacher-modal .teacher-modal__content,.teacher-modal .modal-content{display:flex;flex-direction:column;width:100%;max-height:var(--modal-max-height);overflow:hidden;border-radius:var(--modal-radius);border:1px solid var(--border);box-shadow:var(--glass-shadow-modal);background:var(--surface)}.teacher-modal__dialog--sm{--modal-current-width: var(--modal-width-sm, 32rem)}.teacher-modal__dialog--md,.teacher-modal .modal-dialog:not([class*=modal-]){--modal-current-width: var(--modal-width-md, 48rem)}.teacher-modal__dialog--lg,.teacher-modal .modal-lg{--modal-current-width: var(--modal-width-lg, 64rem)}.teacher-modal__dialog--xl,.teacher-modal .modal-xl{--modal-current-width: var(--modal-width-xl, 80rem)}.teacher-modal__dialog--workspace{--modal-current-width: var(--modal-width-workspace, 90rem);width:min(var(--modal-current-width),calc(100vw - var(--modal-margin) * 2))}.teacher-modal__dialog--fullscreen,.teacher-modal .modal-fullscreen{max-width:100vw;width:100vw;margin:0;max-height:100vh}.teacher-modal__dialog--fullscreen .teacher-modal__content,.teacher-modal .modal-fullscreen .modal-content{max-height:100vh;height:100vh;border-radius:0;border:none}.teacher-modal .modal-fullscreen{padding:0}.teacher-modal .modal-header:not(.teacher-modal__header),.teacher-modal .teacher-modal__header:not(:has(.teacher-modal__header-main)){display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-block-end:1px solid var(--border);background:var(--surface);position:sticky;inset-block-start:0;z-index:3;flex-shrink:0}.teacher-modal .teacher-modal__header{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-block-end:1px solid var(--border);background:var(--surface);position:sticky;inset-block-start:0;z-index:3;flex-shrink:0}.teacher-modal__header-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);width:100%}.teacher-modal__header-text{flex:1;min-width:0}.teacher-modal__header-end{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-shrink:0;flex-wrap:wrap}.teacher-modal__header-actions,.teacher-modal .modal-header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.teacher-modal .modal-title,.teacher-modal__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);line-height:var(--line-height-tight)}.teacher-modal__description{margin:var(--sp-1) 0 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-normal)}.teacher-modal__header-toolbar,.teacher-modal .modal-header__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;padding-block-start:var(--sp-3);border-block-start:1px solid var(--border)}.teacher-modal__close,.teacher-modal .close,.teacher-modal .btn-close{box-sizing:border-box;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;margin:0;border:none;border-radius:var(--radius-full);background:var(--canvas-alt);color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.5rem;font-weight:300;line-height:1;opacity:1;filter:none;transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.teacher-modal__close span,.teacher-modal__close i{display:block;line-height:1;pointer-events:none;font-size:var(--icon-sm, 1rem);font-weight:400}.teacher-modal__close:before,.teacher-modal .close:before,.teacher-modal .btn-close:before,.teacher-modal .btn-close:after,.teacher-modal .close:after{content:none!important}.teacher-modal__close:hover,.teacher-modal .close:hover,.teacher-modal .btn-close:hover{background:var(--border);color:var(--text-primary)}.teacher-modal__close:focus-visible,.teacher-modal .close:focus-visible,.teacher-modal .btn-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.teacher-modal__body,.teacher-modal .modal-body{padding:var(--sp-6);overflow-y:auto;flex:1 1 auto;min-height:0;max-height:none}.teacher-modal__dialog:not(.teacher-modal__dialog--sm) .teacher-modal__body,.teacher-modal__dialog:not(.teacher-modal__dialog--sm) .modal-body{min-height:14rem}.teacher-modal__dialog--lg .teacher-modal__body,.teacher-modal__dialog--xl .teacher-modal__body,.teacher-modal .modal-lg .modal-body,.teacher-modal .modal-xl .modal-body{min-height:20rem}.teacher-modal__footer,.teacher-modal .modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);border-block-start:1px solid var(--border);background:var(--surface);position:sticky;inset-block-end:0;z-index:3;flex-shrink:0}.teacher-modal__footer .btn--primary,.teacher-modal__footer .btn-primary{margin-inline-start:auto}@media(max-width:767px){.teacher-modal .modal-header:not(.teacher-modal__header),.teacher-modal .teacher-modal__header{padding:var(--sp-4)}.teacher-modal__body,.teacher-modal .modal-body{padding:var(--sp-4)}.teacher-modal__footer,.teacher-modal .modal-footer{padding:var(--sp-3) var(--sp-4)}}}@layer components{.teacher-modal-sidebar{flex-shrink:0;width:var(--modal-sidebar-width, 248px);min-width:var(--modal-sidebar-width, 248px);display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4);background:var(--canvas-alt);border-inline-end:1px solid var(--border);overflow-y:auto;min-height:0}.teacher-modal-sidebar__section{display:flex;flex-direction:column;gap:var(--sp-1)}.teacher-modal-sidebar__section+.teacher-modal-sidebar__section{margin-block-start:var(--sp-2);padding-block-start:var(--sp-3);border-block-start:1px solid var(--border)}.teacher-modal-sidebar__section-title{padding-inline:var(--sp-3);padding-block:var(--sp-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.teacher-modal-sidebar__section-items{display:flex;flex-direction:column;gap:var(--sp-1)}.teacher-modal-sidebar__item{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;padding-inline:var(--sp-3);padding-block:var(--sp-2);border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;cursor:pointer;transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out);width:100%;text-align:start}.teacher-modal-sidebar__item:hover:not(.is-disabled):not(.is-active){background:var(--accent-soft);color:var(--text-primary)}.teacher-modal-sidebar__item.is-active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold)}.teacher-modal-sidebar__item.is-disabled{opacity:.5;cursor:not-allowed}.teacher-modal-sidebar__item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.teacher-modal-sidebar__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;font-size:var(--icon-md)}.teacher-modal-sidebar__label{flex:1;min-width:0;line-height:var(--line-height-tight)}.teacher-modal-sidebar__badge{flex-shrink:0;font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-full);background:var(--info-soft);color:var(--info);font-weight:var(--font-weight-semibold)}.teacher-modal .list-group-flush{display:flex;flex-direction:column;gap:var(--sp-1)}.teacher-modal .list-group-item,.teacher-modal .list-group-item-action{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:var(--sp-2) var(--sp-3);margin:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--easing-out)}.teacher-modal .list-group-item:hover,.teacher-modal .list-group-item-action:hover{background:var(--accent-soft);color:var(--text-primary)}.teacher-modal .list-group-item.active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold);border:none}@media(max-width:767px){.teacher-modal-sidebar{width:100%;min-width:0;max-height:220px;border-inline-end:none;border-block-end:1px solid var(--border);flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:var(--sp-2);padding-block:var(--sp-3)}.teacher-modal-sidebar__section{flex-direction:row;flex-wrap:nowrap;gap:var(--sp-2);border:none;margin:0;padding:0}.teacher-modal-sidebar__section-title{display:none}.teacher-modal-sidebar__section-items{flex-direction:row;flex-wrap:nowrap}.teacher-modal-sidebar__item{width:auto;white-space:nowrap;flex-shrink:0}}}@layer components{.teacher-modal-workspace,.exam-editor-layout{display:flex;flex:1;min-height:0;overflow:hidden}.teacher-modal-workspace__content,.exam-editor-layout__form{flex:1;min-width:0;overflow-y:auto;padding:var(--sp-6)}.teacher-modal__body--workspace,.exam-editor-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:0;overflow:hidden}.teacher-modal__dialog--workspace .teacher-modal__content,.teacher-modal__dialog--fullscreen .teacher-modal__content{max-height:min(94vh,100%)}.teacher-modal__dialog--workspace .teacher-modal__body,.teacher-modal__dialog--fullscreen .teacher-modal__body{max-height:none;flex:1;display:flex;flex-direction:column;min-height:0}.exam-editor-layout{display:grid;grid-template-columns:minmax(220px,var(--modal-sidebar-width, 248px)) 1fr;gap:0;height:100%}.exam-editor-layout__questions{display:flex;flex-direction:column;min-height:0;overflow:hidden}.exam-editor-layout__section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-4);padding-block-end:var(--sp-3);flex-shrink:0;border-block-end:1px solid var(--border)}.exam-questions-scroll{flex:1;overflow-y:auto;min-height:0;padding:var(--sp-3)}.teacher-modal-workspace__section{margin-block-end:var(--sp-6)}.teacher-modal-workspace__section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-block-end:var(--sp-3);padding-block-end:var(--sp-2);border-block-end:1px solid var(--border)}@media(max-width:767px){.exam-editor-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.exam-editor-layout__questions{max-height:240px}.teacher-modal-workspace__content,.exam-editor-layout__form{padding:var(--sp-4)}}}@layer components{.notification-container{max-height:400px;overflow-y:auto;padding:var(--sp-3)}.notification-item{background:var(--canvas-alt);padding:var(--sp-3);margin-bottom:var(--sp-2);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.notification-message{font-size:var(--font-size-base);margin:0;color:var(--text-primary)}.notification-time{font-size:var(--font-size-xs);color:var(--text-tertiary)}.notification-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-block-end:var(--sp-2)}.notification-sender{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.notification-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-block-end:var(--sp-1)}.notification-body{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.notification-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-block-start:var(--sp-2);padding-block-start:var(--sp-2);border-block-start:1px solid var(--border)}.notification-icon{font-size:var(--icon-lg);color:var(--accent)}.notification-bell-icon{position:relative;font-size:var(--icon-lg);color:var(--text-secondary);cursor:pointer}.notification-close-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.notification-close-btn:hover{background:var(--danger-soft);color:var(--danger)}.notification-type{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase}}@layer components{.pagination-container{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);flex-wrap:wrap}.pagination-info{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:nowrap}.pagination-info-text{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.pagination-controls{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.page-numbers{display:flex;gap:var(--sp-1);align-items:center}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);-webkit-user-select:none;user-select:none}.pagination-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.pagination-btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);font-weight:var(--font-weight-semibold)}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.pagination-btn--nav{min-width:36px;font-size:var(--font-size-xs)}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:36px;color:var(--text-tertiary);font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none;letter-spacing:2px}.pagination-jump{display:inline-flex;align-items:center;gap:var(--sp-2);margin-inline-start:var(--sp-3);padding-inline-start:var(--sp-3);border-inline-start:1px solid var(--border);font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.pagination-jump__input{width:52px;height:32px;padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);text-align:center;-moz-appearance:textfield}.pagination-jump__input::-webkit-outer-spin-button,.pagination-jump__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pagination-jump__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.items-per-page-selector{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.items-per-page-selector select{padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-ui);cursor:pointer}@media(max-width:640px){.pagination-container{flex-direction:column;align-items:stretch}.pagination-controls{justify-content:center;flex-wrap:wrap}.pagination-jump{border-inline-start:none;padding-inline-start:0;margin-inline-start:0;padding-block-start:var(--sp-2);border-block-start:1px solid var(--border);justify-content:center;width:100%}}}@layer components{.provider-frame{display:inline-flex;align-items:center;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-full);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);text-align:center;color:var(--text-on-accent);transition:box-shadow var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out);box-shadow:var(--shadow-sm);font-family:var(--font-ui);gap:var(--sp-1);border:none}.provider-frame.default{background:#64748b}.provider-frame.fawry{background:var(--warning)}.provider-frame.basata{background:var(--danger)}.provider-frame.damen{background:var(--info)}.provider-frame:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.provider-frame span{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);letter-spacing:.5px}}@layer components{.search-container{position:relative;width:70%;max-width:600px;margin:var(--sp-6) auto}.search-bar{width:100%;padding:var(--sp-4) var(--sp-5);padding-inline-start:calc(var(--sp-5) + var(--icon-lg) + var(--sp-2));border-radius:var(--radius-full);border:1px solid var(--border);font-size:var(--font-size-base);font-family:var(--font-ui);background:var(--surface);box-shadow:var(--shadow-sm),var(--glass-inner-sm);outline:none;color:var(--text-primary);transition:border-color var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out)}.search-bar:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-md)}.search-bar:hover{border-color:var(--border)}.search-bar::placeholder{color:var(--text-tertiary);opacity:.8}.search-bar.searching{box-shadow:var(--shadow-md)}.search-icon{position:absolute;inset-inline-start:var(--sp-5);top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:var(--icon-lg);pointer-events:none;transition:color var(--duration-fast) var(--easing-out)}.search-container:focus-within .search-icon{color:var(--accent)}.search-input-wrapper{position:relative;margin-bottom:var(--sp-4)}.enhanced-search-bar{width:100%;padding-block:var(--sp-3);padding-inline-start:var(--sp-10);padding-inline-end:var(--sp-5);border-radius:var(--radius-md);border:var(--glass-border-subtle);background:var(--glass-gradient);color:var(--text-primary);font-size:var(--font-size-base);transition:all var(--duration-fast) var(--easing-out);box-shadow:var(--glass-shadow-soft),var(--glass-inner-sm),var(--specular-top-soft);font-family:var(--font-ui)}.enhanced-search-bar:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--glass-inner-md),var(--specular-top);background:var(--glass-gradient-strong)}.enhanced-search-bar::placeholder{color:var(--text-tertiary);opacity:.7}.clear-search{position:absolute;inset-inline-start:auto;inset-inline-end:var(--sp-3);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--icon-md);transition:color var(--duration-fast) var(--easing-out);padding:var(--sp-1);display:flex;align-items:center;justify-content:center}.clear-search:hover{color:var(--danger)}.search-filter-section{background:var(--glass-gradient);border:var(--glass-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-soft),var(--glass-shadow-sharp),var(--specular-top),var(--glass-noise-light);-webkit-backdrop-filter:var(--blur-effect-light);backdrop-filter:var(--blur-effect-light);padding:var(--sp-6);margin-bottom:var(--sp-6);position:relative;z-index:0}.search-filter-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--mesh-gradient-2);opacity:.2;pointer-events:none;z-index:-1}.filter-options{display:flex;gap:var(--sp-5);align-items:center;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:var(--sp-3)}.filter-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);display:flex;align-items:center;gap:var(--sp-2)}.filter-select{padding:var(--sp-2) var(--sp-4);padding-inline-end:var(--sp-8);border-radius:var(--radius-sm);border:var(--glass-border-subtle);background:var(--glass-gradient);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);min-height:36px;box-shadow:var(--glass-shadow-soft),var(--glass-inner-sm),var(--specular-top-soft);-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='currentColor' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;background-size:12px;font-family:var(--font-ui)}.filter-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.view-toggle{display:flex;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.view-btn{padding:var(--sp-2) var(--sp-3);background:var(--surface);border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--icon-md);transition:all var(--duration-fast) var(--easing-out);display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.view-btn:not(:last-child){border-inline-end:1px solid var(--border)}.view-btn:hover{color:var(--text-primary);background:var(--canvas-alt)}.view-btn.active{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-sm)}.page-toolbar .search-input-wrapper{margin-bottom:0}}@layer components{.stats-container,.stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4);margin-block-end:var(--sp-6)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4);margin-block-end:var(--sp-6)}.stats-glass{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4);margin-block-end:var(--sp-6);justify-content:center}.stats-glass .glass-card{text-align:center}.stats-glass .stat-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium);margin-block-end:var(--sp-2)}.stats-glass .stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.stats-glass .stat-value--accent{color:var(--accent)}.stats-glass .stat-value--success{color:var(--success)}.stats-glass .stat-value--danger{color:var(--danger)}.stats-glass .stat-value--warning{color:var(--warning)}.stats-glass .stat-value--info{color:var(--info)}.stats-glass .stat-value--muted{color:var(--text-secondary)}.stats-glass .stat-value--sm{font-size:var(--font-size-sm)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5) var(--sp-4);text-align:center;transition:border-color var(--duration-normal) var(--easing-out),transform var(--duration-normal) var(--easing-out),box-shadow var(--duration-normal) var(--easing-out)}.stat-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card .stat-icon{font-size:2rem;color:var(--accent);margin-block-end:var(--sp-3);display:block}.stat-card .stat-content{display:flex;flex-direction:column;gap:var(--sp-1)}.stat-card .stat-number,.stat-card .stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2}.stat-card .stat-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.stat-card .stat-sublabel{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-block-start:var(--sp-1)}.stat-card .stat-progress{height:4px;background:var(--border);border-radius:var(--radius-full);margin-block-start:var(--sp-3);overflow:hidden}.stat-card .stat-progress-fill{height:100%;border-radius:var(--radius-full);background:var(--accent);transition:width var(--duration-normal) var(--easing-out)}.stat-card.primary{border-color:var(--accent)}.stat-card.primary .stat-icon,.stat-card.primary .stat-number{color:var(--accent)}.stat-card.success{border-color:var(--success)}.stat-card.success .stat-icon,.stat-card.success .stat-number{color:var(--success)}.stat-card.warning{border-color:var(--warning)}.stat-card.warning .stat-icon,.stat-card.warning .stat-number{color:var(--warning)}.stat-card.danger{border-color:var(--danger)}.stat-card.danger .stat-icon,.stat-card.danger .stat-number{color:var(--danger)}.stat-card.info{border-color:var(--info)}.stat-card.info .stat-icon,.stat-card.info .stat-number{color:var(--info)}.stat-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-4);text-align:center}.stat-item .stat-number{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--accent)}.stat-item .stat-label{font-size:var(--font-size-xs);color:var(--text-secondary);margin-block-start:var(--sp-1)}.progress-bar{display:flex;align-items:center;gap:var(--sp-2)}.progress-bar__track{flex:1;background:var(--border);border-radius:var(--radius-full);height:8px;overflow:hidden}.progress-bar__fill{height:100%;border-radius:var(--radius-full);background:var(--accent)}.progress-bar__fill--info{background:var(--info)}.progress-bar__label{font-size:var(--font-size-sm);color:var(--text-secondary);min-width:40px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3)}.card-grid__item{text-align:center;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md)}.card-grid__value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.card-grid__label{font-size:var(--font-size-sm);color:var(--text-secondary)}.tab-hidden{display:none}.filter-bar--mb{margin-block-end:var(--sp-4)}.glass-card--filter{padding:var(--sp-4);margin-block-end:var(--sp-6)}.container--pt{padding-block-start:80px}.heading--mb{margin-block-end:var(--sp-3)}.icon--muted{color:var(--text-tertiary)}}@layer components{.table-summary{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--sp-4);width:100%;box-sizing:border-box;margin-block-end:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-ambient),var(--shadow-contact)}.table-summary__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);flex:1 1 150px;min-width:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);transition:border-color var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out)}.table-summary__item:hover{border-color:var(--border-strong)}.table-summary__label{font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-align:center;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-summary__value{font-family:var(--font-ui);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.1;font-variant-numeric:tabular-nums}.table-summary__value--accent{color:var(--accent)}.table-summary__value--success{color:var(--success)}.table-summary__value--danger{color:var(--danger)}.table-summary__value--warning{color:var(--warning)}.table-summary__value--info{color:var(--info)}.table-summary__item--hidden{display:none}}@layer components{.glass-table-wrapper{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:var(--surface);margin-block-end:var(--sp-6)}table{width:100%;border-collapse:collapse;border-radius:var(--radius-md);overflow:hidden;background:var(--surface);margin-block-end:var(--sp-6)}thead{background:var(--canvas-alt)}th{background:transparent;color:var(--text-secondary);padding:var(--sp-3) var(--sp-4);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-align:center;white-space:nowrap}td{padding:var(--sp-3) var(--sp-4);border-block-end:1px solid var(--border);font-weight:var(--font-weight-medium);color:var(--text-primary);text-align:center;vertical-align:middle}tbody tr{transition:background var(--duration-fast) var(--easing-out)}tbody tr:nth-child(2n){background:var(--canvas)}tbody tr:hover{background:var(--accent-soft)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-4) 0;border-radius:var(--radius-md)}.invoice-number{font-weight:var(--font-weight-semibold);color:var(--accent);cursor:pointer;text-decoration:none;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--easing-out);background:var(--surface);display:inline-block}.invoice-number:hover{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.table{width:100%;border-collapse:collapse}.table-scroll{overflow-x:auto;max-height:500px;overflow-y:auto}.table-scroll thead{position:sticky;inset-block-start:0;z-index:2}.table-actions{display:flex;gap:var(--sp-2);justify-content:center;align-items:center;flex-wrap:nowrap}.table-actions .btn-icon{width:32px;height:32px}.student-phones{display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.student-phone{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--font-size-sm);color:var(--text-secondary)}.student-phone i{font-size:1.05em;color:var(--accent);flex-shrink:0}.student-phone--guardian i{color:var(--info)}.student-phone__number{direction:ltr;font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:.02em;font-variant-numeric:tabular-nums}.student-phone__empty{font-size:var(--font-size-sm);color:var(--text-tertiary);font-style:italic}.summary-row td{font-weight:var(--font-weight-bold);background:var(--canvas-alt);border-block-start:2px solid var(--border)}.summary-label{text-align:start;color:var(--text-secondary);font-weight:var(--font-weight-semibold)}.summary-value{color:var(--accent);font-weight:var(--font-weight-bold)}.items-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-block-end:var(--sp-6)}.items-table table{margin-block-end:0}.items-table th{background:var(--canvas-alt);color:var(--text-secondary);padding:var(--sp-3) var(--sp-4);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);white-space:nowrap}.items-table td{padding:var(--sp-3) var(--sp-4);border-block-end:1px solid var(--border);vertical-align:middle}.items-table tbody tr:last-child td{border-block-end:none}.table-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--border);background:var(--canvas-alt);flex-wrap:wrap}.table-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-block-end:var(--sp-6)}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--duration-fast) var(--easing-out)}.sortable:hover{color:var(--accent)}.sort-icon{display:inline-block;margin-inline-start:var(--sp-1);font-size:var(--font-size-xs);color:var(--text-tertiary)}.sortable:hover .sort-icon{color:var(--accent)}.summary-stats{display:flex;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--canvas-alt);border-block-start:1px solid var(--border);flex-wrap:wrap}.summary-stats .stat{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-secondary)}.summary-stats .stat-value{font-weight:var(--font-weight-bold);color:var(--text-primary)}.col-checkbox{width:40px;text-align:center}.col-item{min-width:200px;text-align:start}.col-barcode{width:110px}.col-prices{width:150px}.col-qty{width:80px}.col-category{width:120px}.col-status{width:90px}.col-actions{width:70px}.col-type{width:100px}.col-price,.col-change{width:150px}.col-datetime{width:130px}.col-user{min-width:100px}.bulk-actions{display:flex;align-items:center;gap:var(--sp-2)}.bulk-actions .stat-label{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--accent)}.bulk-actions .stat-sublabel{font-size:var(--font-size-sm);color:var(--text-secondary)}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--border);background:var(--canvas-alt);flex-wrap:wrap}.table-toolbar__left,.table-toolbar__right{display:flex;align-items:center;gap:var(--sp-3)}.table-sticky thead{position:sticky;inset-block-start:0;z-index:2;background:var(--canvas-alt)}.table-sticky-actions th:last-child,.table-sticky-actions td:last-child{position:sticky;inset-inline-end:0;background:inherit;z-index:1}.table-loading tbody{opacity:.6;pointer-events:none}.table-empty td{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--text-tertiary);font-style:italic}.table-row-clickable{cursor:pointer}.table-row-selected{background:var(--accent-soft)!important}.table-row-danger{background:var(--danger-soft)!important}.barcode-inline{display:inline-flex;align-items:center;gap:var(--sp-1);background:var(--glass-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px var(--sp-2);font-family:monospace;font-size:var(--font-size-xs);line-height:1.4;max-width:100%}.barcode-inline__icon{color:var(--text-tertiary);font-size:.75em;flex-shrink:0}.barcode-inline__value{color:var(--text-primary);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;letter-spacing:.03em}.barcode-inline__copy{flex-shrink:0;opacity:0;transition:opacity var(--transition-fast);color:var(--text-tertiary);width:auto;height:auto;padding:1px 4px;background:transparent;border:none;border-radius:var(--radius-xs);font-size:.7em}.barcode-inline:hover .barcode-inline__copy{opacity:1}.barcode-inline__copy.copied{color:var(--success);opacity:1}}@layer components{.tab-pane{display:none}.tab-pane.show.active,.tab-pane.active{display:block}.tabs-container{margin-block-end:var(--sp-6)}.tabs{display:flex;gap:var(--sp-2);border-block-end:1px solid var(--border);padding-block-end:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--easing-out),background var(--duration-fast) var(--easing-out);white-space:nowrap;position:relative}.tab-btn:after{content:"";position:absolute;inset-block-end:-1px;inset-inline:var(--sp-4);height:2px;background:transparent;border-radius:1px 1px 0 0;transition:background var(--duration-fast) var(--easing-out)}.tab-btn:hover{color:var(--text-primary);background:var(--accent-soft)}.tab-btn.active{color:var(--accent);font-weight:var(--font-weight-semibold);background:var(--accent-soft)}.tab-btn.active:after{background:var(--accent)}.tab-btn .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--sp-1);border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.tab-btn.active .tab-count{background:var(--accent);color:var(--text-on-accent)}.tab-button{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-sm);font-family:var(--font-ui);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.tab-button:hover{border-color:var(--accent);color:var(--accent)}.tab-button.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}}@layer components{.toast-container{position:fixed;top:var(--sp-6);inset-inline-end:var(--sp-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-3);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--sp-3);min-width:320px;max-width:420px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--material-dropdown-bg);box-shadow:var(--edge-top-light),var(--edge-bottom-light),var(--shadow-lg);background-image:var(--refraction-subtle),var(--noise-texture);pointer-events:auto;position:relative;overflow:hidden;animation:toastSlideIn var(--duration-normal) var(--easing-entrance)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(16px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(16px) scale(.96)}}.toast.exiting{animation:toastSlideOut var(--duration-fast) var(--easing-exit)}.toast-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:var(--icon-md);margin-top:1px}.toast-icon.success{color:var(--success)}.toast-icon.error{color:var(--danger)}.toast-icon.warning{color:var(--warning)}.toast-icon.info{color:var(--info)}.toast-body{flex:1;min-width:0}.toast-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:2px}.toast-message{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:var(--line-height-normal)}.toast-close{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);font-size:var(--icon-xs);cursor:pointer;transition:background var(--duration-fast) var(--easing-out);background:none;border:none;padding:0}.toast-close:hover{background:var(--canvas-alt);color:var(--text-primary)}.toast-progress{position:absolute;bottom:0;inset-inline-start:0;height:2px;background:var(--accent);border-radius:0 0 0 var(--radius-md);animation:toastProgress linear forwards}.toast-progress.success{background:var(--success)}.toast-progress.error{background:var(--danger)}.toast-progress.warning{background:var(--warning)}.toast-progress.info{background:var(--info)}@keyframes toastProgress{0%{width:100%}to{width:0%}}}@layer components{[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) scale(.96);padding:var(--sp-1) var(--sp-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-on-accent);background:var(--text-primary);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-out);box-shadow:var(--shadow-md);z-index:var(--z-tooltip)}[data-tooltip]:hover:after{opacity:1;transform:translate(-50%) scale(1)}[data-tooltip-bottom]:after{bottom:auto;top:calc(100% + 6px)}[data-tooltip-left]:after,[data-tooltip-start]:after{inset-inline-start:auto;inset-inline-end:calc(100% + 6px);top:50%;bottom:auto;transform:translateY(-50%) scale(.96)}[data-tooltip-left]:hover:after,[data-tooltip-start]:hover:after{transform:translateY(-50%) scale(1)}[data-tooltip-right]:after,[data-tooltip-end]:after{inset-inline-start:calc(100% + 6px);inset-inline-end:auto;top:50%;bottom:auto;transform:translateY(-50%) scale(.96)}[data-tooltip-right]:hover:after,[data-tooltip-end]:hover:after{transform:translateY(-50%) scale(1)}}@layer patterns{.media-object{display:flex;align-items:center;gap:var(--sp-3)}.media-object__image{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-sm);overflow:hidden;background:var(--canvas-alt);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color var(--duration-fast) var(--easing-out),transform var(--duration-fast) var(--easing-spring)}.media-object__image:hover{border-color:var(--accent);transform:scale(1.08)}.media-object__image img{width:100%;height:100%;object-fit:cover;display:block}.media-object__image-placeholder{font-size:var(--font-size-sm);color:var(--text-tertiary)}.media-object__body{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.media-object__title{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-object__meta{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--font-size-xs);color:var(--text-tertiary)}.media-object__actions{margin-inline-start:auto;display:flex;align-items:center;gap:var(--sp-2)}}@layer patterns{.entity-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-block-end:0}.entity-header.glass-full{position:relative;overflow:hidden}.entity-header__info{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.entity-header__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2)}.entity-header__subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);display:flex;align-items:center;gap:var(--sp-2)}.entity-header__actions{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}@media(max-width:768px){.entity-header{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}}}@layer patterns{.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap}.toolbar__left{display:flex;align-items:center;gap:var(--sp-3);flex:1;min-width:0}.toolbar__right{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.toolbar__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap}.toolbar__count{font-size:var(--font-size-sm);color:var(--text-secondary)}.toolbar__count strong{color:var(--accent);font-weight:var(--font-weight-bold)}.bulk-bar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.bulk-bar__count{font-weight:var(--font-weight-bold);color:var(--accent)}.bulk-bar__actions{display:flex;align-items:center;gap:var(--sp-2);margin-inline-start:auto}@media(max-width:768px){.toolbar{flex-direction:column;align-items:stretch}.toolbar__left,.toolbar__right{width:100%}}}@layer patterns{.selection-panel{display:flex;flex-direction:column;gap:var(--sp-2)}.selection-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--easing-out);background:var(--surface);font-size:var(--font-size-sm)}.selection-item:hover{border-color:var(--accent);background:var(--accent-soft)}.selection-item input[type=checkbox]{margin:0;flex-shrink:0}.selection-item__info{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.selection-item__name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.selection-item__meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}}@layer patterns{.data-list{display:flex;flex-direction:column;gap:var(--sp-2)}.data-list-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);transition:background var(--duration-fast) var(--easing-out)}.data-list-item:hover{background:var(--canvas-alt)}.data-list-item__icon{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:var(--icon-md)}.data-list-item__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.data-list-item__title{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm)}.data-list-item__meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.data-list-item__actions{flex-shrink:0;display:flex;align-items:center;gap:var(--sp-2)}}@layer patterns{.property-list{display:flex;flex-direction:column;gap:var(--sp-3)}.property-item{display:flex;align-items:baseline;gap:var(--sp-3);padding-block-end:var(--sp-3);border-block-end:1px solid var(--border)}.property-item:last-child{border-block-end:none;padding-block-end:0}.property-item__label{font-size:var(--font-size-sm);color:var(--text-tertiary);font-weight:var(--font-weight-medium);min-width:120px;flex-shrink:0}.property-item__value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4)}.property-grid .property-item{flex-direction:column;align-items:stretch;gap:var(--sp-1);border-block-end:none;padding:var(--sp-3);background:var(--canvas-alt);border-radius:var(--radius-sm)}}@layer patterns{.object-summary{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.object-summary__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.object-summary__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary)}.object-summary__badge{flex-shrink:0}.object-summary__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-4)}.object-summary__stat{display:flex;flex-direction:column;gap:var(--sp-1);text-align:center;padding:var(--sp-3);background:var(--canvas-alt);border-radius:var(--radius-sm)}.object-summary__stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--accent)}.object-summary__stat-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em}.object-summary__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding-block-start:var(--sp-3);border-block-start:1px solid var(--border)}}@layer pages{.teacher-module-page{display:flex;flex-direction:column;gap:var(--sp-4);width:100%}.teacher-module-page__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.teacher-module-page__toolbar--between{justify-content:space-between}.teacher-module-page__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.teacher-module-page__search{flex:1;min-width:min(100%,280px);max-width:24rem}.teacher-module-page__search-row{display:grid;gap:var(--sp-3);grid-template-columns:1fr}.teacher-module-page__search-row--2{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-search-input{border-radius:var(--radius-md);border-color:var(--border);background:var(--surface)}.teacher-module-page__filters{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.teacher-module-page__surface{padding:var(--sp-5);border-radius:var(--radius-lg);background:var(--glass-bg-strong);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft)}.teacher-module-page__surface--wide{padding:var(--sp-6)}.teacher-module-page__surface--flush{padding:0;background:transparent;border:none;box-shadow:none}.teacher-module-page__inner{width:100%}.teacher-table-surface{width:100%;overflow:hidden;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border)}.teacher-table-surface .table{margin-bottom:0}.teacher-table-surface .glass-table-wrapper{margin:0;border:none;border-radius:0}.teacher-table-actions{width:1%;white-space:nowrap;text-align:center;vertical-align:middle}.teacher-table-actions .dropdown{display:inline-flex;justify-content:center}.teacher-filter-bar{margin-block-end:0}.teacher-filter-bar__search{flex:1 1 220px;min-width:min(100%,220px)}.teacher-filter-bar__filters{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.teacher-filter-bar__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-inline-start:auto}.teacher-filter-bar .filter-bar__reset.is-disabled,.teacher-filter-bar .filter-bar__reset:disabled{opacity:.45;pointer-events:none}.teacher-filter-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.teacher-filter-tabs .filter-btn{min-height:36px}.teacher-pagination-host{margin-block-start:var(--sp-4)}.glass-table tbody tr.table-page-hidden{display:none!important}.teacher-split-layout__panel-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.teacher-module-page--split .teacher-module-page__surface{padding:0;overflow:hidden}.teacher-module-page--workspace{gap:var(--sp-5)}.teacher-module-page--workspace .teacher-module-page__surface{display:none}@media(max-width:768px){.teacher-module-page__toolbar{flex-direction:column;align-items:stretch}.teacher-module-page__search{max-width:none}.teacher-module-page__search-row--2{grid-template-columns:1fr}.teacher-module-page__surface,.teacher-module-page__surface--wide{padding:var(--sp-4)}}}@layer pages{.dashboard-header{margin-block-end:var(--sp-5);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.dashboard-header__content{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.dashboard-header__greeting{display:flex;flex-direction:column;gap:2px;min-width:0}.dashboard-header__title{margin:0;font-size:1.25rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2);line-height:1.25}.dashboard-header__title .wave-emoji{font-size:1.15rem;display:inline-block}.dashboard-header__subtitle{margin:0;font-size:var(--font-size-xs, .75rem);color:var(--text-secondary);line-height:1.4}.dashboard-header__meta{display:flex;align-items:center;gap:var(--sp-3)}.dashboard-date-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 14px;background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-medium, 500);color:var(--text-secondary);white-space:nowrap}.dashboard-date-badge i{color:var(--accent);font-size:.85rem}.dashboard-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3-5, 14px);margin-block-end:var(--sp-6)}.dashboard-stat-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3-5, 14px) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, .04));text-decoration:none;color:var(--text-primary);transition:transform var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease,box-shadow var(--duration-fast, .15s) ease;box-sizing:border-box;min-height:76px}.dashboard-stat-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.dashboard-stat-card__icon{width:44px;height:44px;border-radius:var(--radius-sm, 10px);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;background:var(--canvas-alt);color:var(--text-secondary);transition:transform var(--duration-fast, .15s) ease}.dashboard-stat-card:hover .dashboard-stat-card__icon{transform:scale(1.05)}.dashboard-stat-card__icon--accent{background:var(--accent-soft);color:var(--accent)}.dashboard-stat-card__icon--info{background:var(--info-soft);color:var(--info)}.dashboard-stat-card__icon--primary{background:#4c6b7424;color:var(--accent)}.dashboard-stat-card__icon--success{background:var(--success-soft);color:var(--success)}.dashboard-stat-card__icon--warning{background:var(--warning-soft);color:var(--warning)}.dashboard-stat-card__icon--danger{background:var(--danger-soft);color:var(--danger)}.dashboard-stat-card__info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.dashboard-stat-card__label{font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-medium, 500);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-stat-card__value{font-size:1.35rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary);line-height:1.15;letter-spacing:-.01em}.dashboard-stat-card__hint{font-size:.7rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-section{margin-block-end:var(--sp-6)}.dashboard-section__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-block-end:var(--sp-3-5, 14px);flex-wrap:wrap}.dashboard-section__title-wrap{display:flex;flex-direction:column;gap:2px}.dashboard-section__title{margin:0;font-size:1rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2)}.dashboard-section__title-icon{font-size:.95rem;color:var(--accent)}.dashboard-section__title-icon--accent{color:var(--accent)}.dashboard-section__title-icon--success{color:var(--success)}.dashboard-section__title-icon--warning{color:var(--warning)}.dashboard-section__title-icon--info{color:var(--info)}.dashboard-section__subtitle{font-size:var(--font-size-xs, .75rem);color:var(--text-secondary)}.dashboard-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 8px;border-radius:var(--radius-full);font-size:.7rem;font-weight:var(--font-weight-bold, 700);line-height:1.4}.dashboard-badge--accent{background:var(--accent-soft);color:var(--accent)}.dashboard-badge--success{background:var(--success-soft);color:var(--success)}.dashboard-badge--warning{background:var(--warning-soft);color:var(--warning)}.dashboard-badge--muted{background:var(--canvas-alt);color:var(--text-secondary)}.dashboard-alerts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp-3)}.dashboard-alert-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);text-decoration:none;transition:transform var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.dashboard-alert-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.dashboard-alert-card--info{background:var(--info-soft);border-color:#6e8fa84d}.dashboard-alert-card--warning{background:var(--warning-soft);border-color:#b98a4e4d}.dashboard-alert-card--danger{background:var(--danger-soft);border-color:#b25d524d}.dashboard-alert-card__icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;background:var(--surface)}.dashboard-alert-card--info .dashboard-alert-card__icon{color:var(--info)}.dashboard-alert-card--warning .dashboard-alert-card__icon{color:var(--warning)}.dashboard-alert-card--danger .dashboard-alert-card__icon{color:var(--danger)}.dashboard-alert-card__body{flex:1;min-width:0}.dashboard-alert-card__title{margin:0;font-size:var(--font-size-sm, .85rem);font-weight:var(--font-weight-bold, 700);color:var(--text-primary)}.dashboard-alert-card__desc{margin:0;font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-alert-card__action{display:flex;align-items:center;gap:var(--sp-1-5, 6px);font-size:.75rem;font-weight:var(--font-weight-medium, 500);color:var(--accent);flex-shrink:0}.dashboard-alert-card__action i{font-size:.7rem;transition:transform var(--duration-fast) ease}.dashboard-alert-card:hover .dashboard-alert-card__action i{transform:translate(-3px)}.dashboard-actions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3-5, 14px)}.dashboard-action-card{display:flex;align-items:center;gap:var(--sp-3-5, 14px);padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);box-shadow:var(--shadow-xs);transition:transform var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease,box-shadow var(--duration-fast, .15s) ease;position:relative;overflow:hidden}.dashboard-action-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.dashboard-action-card__icon-box{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.35rem;flex-shrink:0;background:var(--canvas-alt);color:var(--text-secondary);transition:transform var(--duration-fast) ease}.dashboard-action-card:hover .dashboard-action-card__icon-box{transform:scale(1.06)}.dashboard-action-card__icon-box--accent{background:var(--accent-soft);color:var(--accent)}.dashboard-action-card__icon-box--info{background:var(--info-soft);color:var(--info)}.dashboard-action-card__icon-box--success{background:var(--success-soft);color:var(--success)}.dashboard-action-card__icon-box--warning{background:var(--warning-soft);color:var(--warning)}.dashboard-action-card__icon-box--purple{background:#8b5cf61f;color:#7c3aed}.dashboard-action-card__icon-box--rose{background:#f43f5e1f;color:#e11d48}.dashboard-action-card__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dashboard-action-card__title{margin:0;font-size:.95rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary);line-height:1.25}.dashboard-action-card__description{margin:0;font-size:.72rem;color:var(--text-secondary);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-action-card__arrow{font-size:.8rem;color:var(--text-tertiary);transition:transform var(--duration-fast) ease,color var(--duration-fast) ease;flex-shrink:0}.dashboard-action-card:hover .dashboard-action-card__arrow{color:var(--accent);transform:translate(-4px)}.dashboard-collapsible{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--duration-fast) ease}.dashboard-collapsible[open]{border-color:var(--border-strong, var(--border))}.dashboard-collapsible__summary{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3-5, 14px) var(--sp-4);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;font-weight:var(--font-weight-semibold, 600);color:var(--text-primary);font-size:.9rem;transition:background var(--duration-fast) ease}.dashboard-collapsible__summary::-webkit-details-marker{display:none}.dashboard-collapsible__summary:hover{background:var(--canvas-alt)}.dashboard-collapsible__summary-content{display:flex;align-items:center;gap:var(--sp-2)}.dashboard-collapsible__chevron{font-size:.8rem;color:var(--text-secondary);transition:transform var(--duration-normal, .2s) ease}.dashboard-collapsible[open] .dashboard-collapsible__chevron{transform:rotate(180deg)}.dashboard-secondary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4);border-block-start:1px solid var(--border);background:var(--canvas-alt)}.dashboard-mini-tool{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2-5, 10px) var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none;color:var(--text-primary);font-size:.8rem;font-weight:var(--font-weight-medium, 500);transition:border-color var(--duration-fast) ease,transform var(--duration-fast) ease,color var(--duration-fast) ease}.dashboard-mini-tool:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.dashboard-mini-tool i{font-size:.85rem;color:var(--text-secondary);width:16px;text-align:center;flex-shrink:0}.dashboard-mini-tool:hover i{color:var(--accent)}.dashboard-sessions-grid,.dashboard-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-3-5, 14px)}.dashboard-session-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.dashboard-session-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.dashboard-session-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.dashboard-session-card__time{display:inline-flex;align-items:center;gap:var(--sp-1-5, 6px);font-size:.8rem;font-weight:var(--font-weight-semibold, 600);color:var(--text-primary)}.dashboard-session-card__time i{color:var(--accent);font-size:.85rem}.dashboard-session-card__body{display:flex;flex-direction:column;gap:var(--sp-1);flex:1}.dashboard-session-card__group{margin:0;font-size:.95rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary);line-height:1.25}.dashboard-session-card__class{font-size:.75rem;color:var(--text-secondary);display:flex;align-items:center;gap:var(--sp-1)}.dashboard-session-card__attendance-meta{font-size:.72rem;color:var(--text-secondary);margin-block-start:var(--sp-1)}.dashboard-session-card__stat{display:inline-flex;align-items:center;gap:4px}.dashboard-session-card__stat i{color:var(--success)}.dashboard-session-card__footer{display:flex;align-items:center;gap:var(--sp-2);margin-block-start:auto;padding-block-start:var(--sp-2);border-block-start:1px solid var(--border)}.dashboard-session-card__footer .btn{flex:1;justify-content:center}.dashboard-session-card__footer .btn--ghost{flex:0 0 auto;padding:var(--sp-2) var(--sp-3)}.dashboard-group-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2-5, 10px);text-decoration:none;color:var(--text-primary);box-shadow:var(--shadow-xs);transition:transform var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.dashboard-group-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.dashboard-group-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.dashboard-group-card__name{margin:0;font-size:.95rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary);line-height:1.25}.dashboard-group-card__meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.dashboard-group-card__tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);background:var(--canvas-alt);font-size:.72rem;color:var(--text-secondary);font-weight:var(--font-weight-medium, 500)}.dashboard-group-card__schedule{display:flex;align-items:center;gap:var(--sp-1-5, 6px);font-size:.75rem;color:var(--text-secondary);margin-block-start:auto;padding-block-start:var(--sp-2);border-block-start:1px solid var(--border)}.dashboard-group-card__schedule i{color:var(--accent);font-size:.8rem;flex-shrink:0}.dashboard-empty-card{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-6) var(--sp-4);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.dashboard-empty-card__icon{font-size:2rem;color:var(--text-tertiary);margin-block-end:var(--sp-1)}.dashboard-empty-card__title{margin:0;font-size:.95rem;font-weight:var(--font-weight-bold, 700);color:var(--text-primary)}.dashboard-empty-card__desc{margin:0;font-size:var(--font-size-xs, .75rem);color:var(--text-secondary);max-width:420px;line-height:1.4}.dashboard-empty-card__actions{display:flex;align-items:center;gap:var(--sp-2);margin-block-start:var(--sp-3);flex-wrap:wrap;justify-content:center}.status-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:.7rem;font-weight:var(--font-weight-semibold, 600)}.status-badge--success{background:var(--success-soft);color:var(--success)}.status-badge--warning{background:var(--warning-soft);color:var(--warning)}.status-badge--danger{background:var(--danger-soft);color:var(--danger)}.status-badge--info{background:var(--info-soft);color:var(--info)}.status-badge--accent{background:var(--accent-soft);color:var(--accent)}.status-badge--muted{background:var(--canvas-alt);color:var(--text-secondary)}@media(max-width:1200px){.dashboard-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-secondary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.dashboard-stats-grid,.dashboard-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.dashboard-header{padding:var(--sp-3-5) var(--sp-4)}.dashboard-header__content{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.dashboard-date-badge{align-self:flex-start}.dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.dashboard-stat-card{padding:var(--sp-3);min-height:68px}.dashboard-stat-card__icon{width:36px;height:36px;font-size:1rem}.dashboard-stat-card__value{font-size:1.15rem}.dashboard-actions-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-2-5)}.dashboard-action-card{padding:var(--sp-3)}.dashboard-action-card__icon-box{width:40px;height:40px;font-size:1.15rem}.dashboard-secondary-grid{grid-template-columns:minmax(0,1fr);padding:var(--sp-2-5)}.dashboard-sessions-grid,.dashboard-groups-grid{grid-template-columns:minmax(0,1fr)}}}@layer pages{.table-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;margin-block-start:var(--sp-4)}.table-container .table{margin-bottom:0}.table-container .dropdown-menu{z-index:var(--z-dropdown, 1050)}.theme-card{background:var(--surface);border:1px solid var(--border);color:var(--text-primary)}.theme-card .card-body,.theme-card-body{background:var(--surface);color:var(--text-primary)}.theme-card-header{background:transparent;border-bottom:1px solid var(--border);color:var(--text-primary)}.group-name-container{display:inline-block;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-md);background:var(--accent);color:var(--text-on-accent);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.table-container .table tbody tr.attendance-late,.table-container .table tbody tr.attendance-late>td,.table-container .table-striped tbody tr.attendance-late,.table-container .table-striped tbody tr.attendance-late>td{background-color:var(--warning-soft);color:var(--text-primary)}.table-container .table tbody tr.attendance-present,.table-container .table tbody tr.attendance-present>td{background-color:var(--success-soft)}.table-container .table tbody tr.attendance-absent,.table-container .table tbody tr.attendance-absent>td{background-color:var(--danger-soft)}.attendance-late .attendance-time-display{color:var(--warning);font-weight:var(--font-weight-semibold)}.attendance-present .attendance-time-display{color:var(--success)}.delay-duration{font-size:var(--font-size-xs);color:var(--warning)}.teacher-split-layout__panel{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.teacher-split-layout__panel--bordered{border-inline-start:1px solid var(--border);padding-inline-start:var(--sp-4)}.teacher-split-layout__panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.teacher-split-layout__panel-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.teacher-scroll-list{max-height:600px;overflow-y:auto}.custom-list-group .list-group-item{cursor:pointer;transition:background var(--duration-fast) var(--easing-out);border-radius:var(--radius-sm)!important;margin-bottom:var(--sp-1);border:1px solid transparent;background:transparent;color:var(--text-primary)}.custom-list-group .list-group-item:hover,.template-item:hover{background:var(--canvas-alt)!important}.custom-list-group .list-group-item.active{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--text-on-accent)!important}.custom-badge-info{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--info-soft);color:var(--info)}.teacher-profile-avatar{width:100px;height:100px;object-fit:cover;border-radius:var(--radius-full);border:2px solid var(--border)}.teacher-profile-avatar-wrap{position:relative;display:inline-block}.teacher-profile-avatar-edit{position:absolute;inset-block-end:0;inset-inline-end:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent);cursor:pointer}.theme-select-card{transition:transform var(--duration-fast) var(--easing-out),border-color var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out);cursor:pointer;background:var(--surface);border:1px solid var(--border)!important;border-radius:var(--radius-sm)}.theme-select-card:hover{transform:translateY(-2px);border-color:var(--accent)!important;box-shadow:var(--shadow-soft)}.theme-select-card.active-theme{border:2px solid var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)}.security-list-item{border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;margin-bottom:var(--sp-3)!important}.ai-lesson-panel{padding:var(--sp-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);height:100%}.ai-lesson-output{min-height:400px;max-height:500px;overflow:auto;padding:var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--canvas)}.ai-stat-card{padding:var(--sp-4);border-radius:var(--radius-lg);text-align:center;color:var(--text-on-accent)}.ai-stat-card--total{background:linear-gradient(135deg,#667eea,#764ba2)}.ai-stat-card--published{background:linear-gradient(135deg,#4facfe,#00f2fe)}.ai-stat-card--draft{background:linear-gradient(135deg,#f093fb,#f5576c)}.ai-stat-card--views{background:linear-gradient(135deg,#43e97b,#38f9d7)}@media(max-width:768px){.teacher-split-layout__panel--bordered{border-inline-start:none;padding-inline-start:0;border-block-start:1px solid var(--border);padding-block-start:var(--sp-4)}}}@layer pages{.attendance-summary-grid,.attendance-toolbar{margin-block-end:var(--sp-4)}.attendance-custom-date-wrap{display:inline-flex;align-items:center;gap:var(--sp-2)}.attendance-date-sep{font-size:var(--font-size-xs);color:var(--text-secondary)}.attendance-table{width:100%;table-layout:fixed}.attendance-table th,.attendance-table td{vertical-align:middle;padding:var(--sp-3) var(--sp-2)}.attendance-table th.col-session,.attendance-table td.col-session,.attendance-table th.col-group,.attendance-table td.col-group{text-align:start}.attendance-table th.col-datetime,.attendance-table td.col-datetime,.attendance-table th.col-students,.attendance-table td.col-students,.attendance-table th.col-attendance,.attendance-table td.col-attendance,.attendance-table th.col-absent,.attendance-table td.col-absent,.attendance-table th.col-status,.attendance-table td.col-status,.attendance-table th.col-actions,.attendance-table td.col-actions{text-align:center}.attendance-cell-session{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);text-align:start}.attendance-session-title{font-weight:var(--font-weight-semibold);color:var(--text-primary);text-decoration:none;transition:color var(--duration-fast);font-size:var(--font-size-sm)}.attendance-session-title:hover{color:var(--accent)}.attendance-cell-sub{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}.attendance-cell-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:start}.attendance-group-name{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm)}.attendance-class-name{font-size:var(--font-size-xs);color:var(--text-secondary)}.attendance-datetime-text{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.attendance-students-count{font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap}.attendance-progress-cell{display:flex;flex-direction:column;gap:var(--sp-1);min-width:100px}.attendance-progress-text{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--text-secondary)}.attendance-rate-pct{font-weight:var(--font-weight-bold);color:var(--accent)}.attendance-mini-progress{width:100%;height:5px;background:var(--canvas-alt);border-radius:var(--radius-full);overflow:hidden}.attendance-mini-progress__bar{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width var(--duration-normal) var(--easing-out)}.attendance-table-row{cursor:pointer}.attendance-table-row:hover td{background:var(--accent-soft)}.attendance-create-form{display:flex;flex-direction:column;gap:var(--sp-5)}.attendance-create-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-3);padding-block-start:var(--sp-4);border-block-start:1px solid var(--border)}.attendance-workspace-page{display:flex;flex-direction:column;gap:var(--sp-4)}.attendance-session-header{margin-block-end:0}.attendance-notes-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow-xs)}.attendance-notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.attendance-notes-field label{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-block-end:var(--sp-1)}.attendance-notes-field label i{color:var(--accent);font-size:11px}.attendance-summary-bar{display:flex;align-items:center;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow-xs);font-size:var(--font-size-sm)}.attendance-summary-item{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--text-secondary)}.attendance-summary-item strong{font-weight:var(--font-weight-bold);color:var(--text-primary)}.attendance-summary-item--present strong{color:var(--success)}.attendance-summary-item--absent strong{color:var(--danger)}.attendance-summary-item--late strong{color:var(--warning)}.attendance-summary-item--excused strong{color:var(--info)}.attendance-summary-item--left-early strong{color:#8b5cf6}.attendance-notification-panel{background:color-mix(in srgb,#22c55e 6%,var(--surface));border:1px solid color-mix(in srgb,#22c55e 32%,var(--border));border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.attendance-notification-info{display:flex;align-items:center;gap:var(--sp-3)}.attendance-notification-icon{width:40px;height:40px;border-radius:var(--radius-md);background:color-mix(in srgb,#22c55e 18%,transparent);color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.attendance-notification-info strong{color:var(--text-primary);font-size:var(--font-size-sm);display:block}.attendance-notification-info p{margin:2px 0 0;font-size:var(--font-size-xs);color:var(--text-secondary)}.attendance-notification-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.attendance-notification-preview{border-block-start:1px solid var(--border);padding-block-start:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.attendance-notification-counts{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--font-size-xs)}.attendance-notification-recipients{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}.attendance-notification-preview-footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-2);margin-block-start:var(--sp-2)}.attendance-sticky-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-2) var(--sp-3);box-shadow:var(--shadow-sm)}.attendance-row-actions-host{display:inline-flex;align-items:center;justify-content:center}.attendance-table .col-actions{width:56px;text-align:center;white-space:nowrap}.attendance-toolbar-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.attendance-search-wrap{position:relative;flex:1 1 200px;min-width:160px}.attendance-search-wrap i{position:absolute;inset-inline-start:var(--sp-3);inset-block-start:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;font-size:.85rem}.attendance-student-search-input{width:100%;height:36px;padding-inline-start:2.2rem;padding-inline-end:var(--sp-2);border-radius:var(--radius-md);background:var(--canvas-alt);font-size:var(--font-size-sm)}.attendance-status-tabs{display:flex;align-items:center;gap:2px;background:var(--canvas-alt);padding:3px;border-radius:var(--radius-md)}.attendance-status-tabs .filter-btn{padding:4px 10px;font-size:var(--font-size-xs);border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-fast)}.attendance-status-tabs .filter-btn.active{background:var(--surface);color:var(--text-primary);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-xs)}.attendance-bulk-dropdown .dropdown-menu{min-width:180px}.attendance-workspace-table{width:100%;margin-block-end:0}.attendance-student-row{transition:background var(--duration-fast)}.attendance-student-row--present{background:color-mix(in srgb,var(--success) 3%,transparent)}.attendance-student-row--absent{background:color-mix(in srgb,var(--danger) 4%,transparent)}.attendance-student-row--late{background:color-mix(in srgb,var(--warning) 4%,transparent)}.attendance-student-row--excused{background:color-mix(in srgb,var(--info) 4%,transparent)}.attendance-row-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.attendance-student-name-link{font-weight:var(--font-weight-semibold);color:var(--text-primary);text-decoration:none;transition:color var(--duration-fast);font-size:var(--font-size-sm)}.attendance-student-name-link:hover{color:var(--accent)}.attendance-segmented-control{display:inline-flex;align-items:center;background:var(--canvas-alt);padding:3px;border-radius:var(--radius-md);border:1px solid var(--border);gap:3px}.attendance-seg-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 12px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;min-height:38px;transition:all var(--duration-fast) var(--easing-out);white-space:nowrap;-webkit-user-select:none;user-select:none}.attendance-seg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.attendance-seg-btn i{font-size:11px;opacity:.8}.attendance-seg-btn:hover:not(:disabled){background:var(--surface);color:var(--text-primary)}.attendance-seg-btn:disabled{opacity:.55;cursor:not-allowed}.attendance-seg-btn--present.is-active{background:var(--success);color:var(--text-on-accent, #fff);box-shadow:0 2px 6px color-mix(in srgb,var(--success) 35%,transparent)}.attendance-seg-btn--absent.is-active{background:var(--danger);color:var(--text-on-accent, #fff);box-shadow:0 2px 6px color-mix(in srgb,var(--danger) 35%,transparent)}.attendance-seg-btn--late.is-active{background:var(--warning);color:var(--text-on-accent, #fff);box-shadow:0 2px 6px color-mix(in srgb,var(--warning) 35%,transparent)}.attendance-seg-btn--excused.is-active{background:var(--info);color:var(--text-on-accent, #fff);box-shadow:0 2px 6px color-mix(in srgb,var(--info) 35%,transparent)}.attendance-late-details{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}.attendance-late-chips{display:inline-flex;align-items:center;gap:3px}.attendance-late-chip{padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--canvas-alt);font-size:11px;font-weight:var(--font-weight-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast)}.attendance-late-chip.is-active,.attendance-late-chip:hover{background:var(--warning-soft);border-color:var(--warning);color:var(--warning);font-weight:var(--font-weight-bold)}.attendance-minutes-input{width:65px;height:32px;font-size:var(--font-size-xs);text-align:center;padding:2px 6px}.attendance-excuse-input,.attendance-note-input{height:32px;font-size:var(--font-size-xs);width:100%}.attendance-status-confirmed{font-size:var(--font-size-xs);display:inline-flex;align-items:center;gap:var(--sp-1)}.attendance-sticky-footer{position:sticky;inset-block-end:var(--sp-3);z-index:30;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.attendance-footer-meta{font-size:var(--font-size-sm);color:var(--text-secondary)}.attendance-footer-progress strong{color:var(--text-primary)}.attendance-footer-actions{display:flex;align-items:center;gap:var(--sp-2)}.attendance-mobile-cards,.attendance-workspace-mobile-cards{display:none}.attendance-mobile-card,.attendance-student-mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:var(--shadow-xs)}.attendance-mobile-card__head,.attendance-mobile-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-2)}.attendance-mobile-card__title{font-weight:var(--font-weight-bold);color:var(--text-primary);text-decoration:none;font-size:var(--font-size-base)}.attendance-mobile-card__meta{display:flex;gap:var(--sp-3);font-size:var(--font-size-xs);color:var(--text-secondary);margin-block-start:4px;flex-wrap:wrap}.attendance-mobile-card__body{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--canvas-alt);border-radius:var(--radius-md)}.attendance-mobile-stat{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.attendance-mobile-stat__label{font-size:11px;color:var(--text-secondary)}.attendance-mobile-stat__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.attendance-mobile-card__actions{display:flex;align-items:center;gap:var(--sp-2)}.attendance-mobile-check-label{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer}.attendance-mobile-student-name{font-size:var(--font-size-base);color:var(--text-primary)}.attendance-mobile-status-row .attendance-segmented-control{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}.attendance-mobile-status-row .attendance-seg-btn{min-height:44px;justify-content:center;font-size:var(--font-size-sm)}@media(max-width:1024px){.attendance-notes-grid{grid-template-columns:1fr}.attendance-summary-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--sp-2) var(--sp-3)}.attendance-seg-btn{min-height:44px;padding:8px 14px}}@media(max-width:768px){#attendanceTableContainer,#attendanceWorkspaceTableContainer{display:none!important}.attendance-mobile-cards,.attendance-workspace-mobile-cards{display:flex!important;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3)}.attendance-sticky-toolbar{inset-block-start:56px}.attendance-toolbar-row{flex-direction:column;align-items:stretch}.attendance-status-tabs{overflow-x:auto;white-space:nowrap}.attendance-sticky-footer{flex-direction:column;align-items:stretch;text-align:center}.attendance-footer-actions{justify-content:stretch}.attendance-footer-actions .btn{flex:1}}.attendance-cancel-session-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);margin-block-end:var(--sp-3)}.attendance-cancel-session-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--danger-soft, rgba(239, 68, 68, .1));color:var(--danger, #ef4444);font-size:1.1rem;flex-shrink:0}.attendance-cancel-session-details{display:flex;flex-direction:column;gap:2px;text-align:start}.attendance-cancel-group-name{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.attendance-cancel-datetime{font-size:var(--font-size-xs);color:var(--text-secondary)}.attendance-cancel-desc{font-size:var(--font-size-sm);color:var(--text-secondary);margin-block-end:var(--sp-4);line-height:var(--line-height-relaxed)}.attendance-cancel-field{display:flex;flex-direction:column;gap:var(--sp-1);margin-block-end:var(--sp-4)}.attendance-cancel-label{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.attendance-cancel-textarea{width:100%;resize:vertical;min-height:72px}.attendance-cancel-field-meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--text-tertiary)}.attendance-field-error{color:var(--danger, #ef4444);font-weight:var(--font-weight-medium)}.attendance-cancel-notification-section{display:flex;flex-direction:column;gap:var(--sp-2);margin-block-end:var(--sp-4)}.attendance-cancel-section-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.attendance-notification-options{display:flex;flex-direction:column;gap:var(--sp-2)}.attendance-radio-card{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--duration-fast),background-color var(--duration-fast)}.attendance-radio-card:hover{background:var(--canvas-alt)}.attendance-radio-card.is-selected{border-color:var(--accent);background:var(--accent-soft, rgba(99, 102, 241, .05))}.attendance-radio-card.is-disabled{opacity:.55;cursor:not-allowed;background:var(--canvas-alt)}.attendance-radio-card input[type=radio]{margin-block-start:3px;accent-color:var(--accent)}.attendance-radio-card__content{display:flex;flex-direction:column;gap:2px;flex:1;text-align:start}.attendance-radio-card__title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.attendance-radio-card__content strong{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-medium)}.attendance-radio-card__content small{font-size:var(--font-size-xs);color:var(--text-secondary)}.attendance-cancel-preview-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--canvas-alt);padding:var(--sp-3);margin-block-end:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.attendance-cancel-preview-head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-secondary)}.attendance-cancel-preview-content{font-size:var(--font-size-sm);color:var(--text-primary);line-height:var(--line-height-relaxed);text-align:start}.attendance-cancelled-banner{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4);background:var(--danger-soft, rgba(239, 68, 68, .08));border:1px solid var(--danger, #ef4444);border-radius:var(--radius-md);margin-block-end:var(--sp-4)}.attendance-cancelled-banner__icon{color:var(--danger, #ef4444);font-size:1.5rem;flex-shrink:0;margin-block-start:2px}.attendance-cancelled-banner__content{display:flex;flex-direction:column;gap:var(--sp-1);text-align:start}.attendance-cancelled-banner__title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--danger, #ef4444)}.attendance-cancelled-banner__meta{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--text-secondary);margin-block-start:var(--sp-1)}@media(max-width:576px){.attendance-mobile-status-row .attendance-segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%}.attendance-mobile-status-row .attendance-seg-btn{min-height:44px;font-size:var(--font-size-sm)}}}@layer pages{.teacher-module-page--schedule{width:100%;max-width:100%}body.teachers-shell .page-layout:has(.teacher-module-page--schedule){max-width:1600px}.schedule-surface-wrap{padding:var(--sp-3);background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);overflow:hidden}.teacher-schedule-container{width:100%;min-width:0}.schedule-hero-container{margin-block-end:var(--sp-3)}.schedule-current-class-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow-xs);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);position:relative;overflow:hidden;transition:all var(--duration-fast)}.schedule-current-class-card:before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:4px;background:var(--accent)}.schedule-current-class-card.is-live{background:linear-gradient(135deg,var(--surface) 0%,rgba(76,107,116,.05) 100%);border-color:#4c6b7466;box-shadow:0 2px 10px #4c6b741f}.schedule-current-class-card.is-live:before{background:var(--accent)}.schedule-current-class-card__main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.schedule-current-class-card__top{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.schedule-current-class-card__title{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-current-class-card__meta{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--font-size-xs);color:var(--text-secondary);flex-wrap:wrap;margin-block-start:2px}.schedule-current-class-meta-item{display:inline-flex;align-items:center;gap:5px}.schedule-current-class-meta-item i{color:var(--accent)}.schedule-upcoming-countdown{font-size:.72rem;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:2px 8px;border-radius:var(--radius-sm)}.schedule-current-class-card__actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.schedule-current-class-card__actions .btn{height:32px;padding:0 var(--sp-3);font-size:var(--font-size-xs)}.schedule-hero-empty-strip{background:var(--canvas-alt);border:1px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-size:var(--font-size-xs);color:var(--text-secondary)}.schedule-nav-stats-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px var(--sp-3);margin-block-end:var(--sp-3);box-shadow:var(--shadow-xs);flex-wrap:wrap}.schedule-nav-group{display:inline-flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}.schedule-nav-btn,.schedule-today-btn{height:30px;padding:0 var(--sp-3);font-size:var(--font-size-xs);font-weight:600}.schedule-period-title{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-primary);padding-inline-start:var(--sp-2);font-weight:600}.schedule-mini-stats{display:inline-flex;align-items:center;gap:var(--sp-3);background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px var(--sp-3);flex-shrink:0}.schedule-mini-stat-item{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs)}.schedule-mini-stat-label{color:var(--text-secondary)}.schedule-mini-stat-item strong{color:var(--text-primary);font-weight:700}.schedule-mini-stat-sep{width:1px;height:12px;background:var(--border-strong)}.schedule-filters-toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px var(--sp-3);margin-block-end:var(--sp-3);box-shadow:var(--shadow-xs)}.schedule-view-switcher{display:inline-flex;align-items:center;background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);padding:2px;gap:2px;flex-shrink:0}.schedule-view-btn{border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:600;padding:5px var(--sp-2-5);border-radius:calc(var(--radius-md) - 3px);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--duration-fast);height:28px;white-space:nowrap}.schedule-view-btn:hover{color:var(--text-primary)}.schedule-view-btn.is-active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}.schedule-toolbar-search{position:relative;flex:1 1 180px;min-width:140px}.schedule-toolbar-search>i{position:absolute;inset-inline-start:var(--sp-3);inset-block-start:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;font-size:.8rem}.schedule-toolbar-search .groups-search-input{width:100%;height:34px;font-size:var(--font-size-xs);padding-inline-start:2rem;padding-inline-end:var(--sp-2);border-radius:var(--radius-sm);background:var(--canvas-alt);border:1px solid var(--border);color:var(--text-primary);min-height:unset}.schedule-toolbar-search .groups-search-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.schedule-toolbar-filters{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0;flex-wrap:nowrap}.schedule-toolbar-filters .groups-filter-select{height:34px;min-height:unset;font-size:var(--font-size-xs);padding-inline:var(--sp-2-5);border-radius:var(--radius-sm);background:var(--canvas-alt);border:1px solid var(--border);color:var(--text-primary);width:auto;cursor:pointer;transition:all var(--duration-fast)}.schedule-toolbar-filters .groups-filter-select:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}#scheduleGroupFilter{flex:0 1 160px;min-width:125px;max-width:195px}#scheduleClassFilter{flex:0 1 135px;min-width:110px;max-width:170px}#scheduleStatusFilter{flex:0 1 145px;min-width:120px;max-width:175px}.schedule-toolbar-actions{display:flex;align-items:center;gap:var(--sp-1-5);flex-shrink:0}.schedule-toolbar-actions .groups-reset-btn{height:34px;min-height:unset;padding:0 var(--sp-2-5);font-size:var(--font-size-xs);border-radius:var(--radius-sm);white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.schedule-toolbar-actions .groups-icon-btn{height:34px;width:34px;min-height:unset;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.schedule-week-grid{display:grid;grid-template-columns:repeat(7,minmax(220px,1fr));gap:10px;align-items:stretch;overflow-x:auto;padding-block-end:var(--sp-2);min-height:320px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.schedule-week-grid::-webkit-scrollbar{height:7px}.schedule-week-grid::-webkit-scrollbar-track{background:var(--canvas-alt);border-radius:var(--radius-full)}.schedule-week-grid::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.schedule-week-grid::-webkit-scrollbar-thumb:hover{background:var(--accent)}.schedule-skeleton-grid{display:grid;grid-template-columns:repeat(7,minmax(220px,1fr));gap:10px;overflow-x:auto;padding-block-end:var(--sp-2)}.schedule-day-column{background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;min-height:220px;min-width:220px;transition:all var(--duration-fast)}.schedule-day-column--today{background:#4c6b7408;border-color:#4c6b7473;box-shadow:0 0 0 1px #4c6b7440,var(--shadow-xs)}.schedule-day-column__head{padding:10px 12px;border-block-end:1px solid var(--border);background:var(--surface);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.schedule-day-column--today .schedule-day-column__head{background:var(--accent);color:#fff;border-block-end-color:transparent}.schedule-day-column--today .schedule-day-column__head .schedule-day-date,.schedule-day-column--today .schedule-day-column__head .schedule-day-name{color:#fff}.schedule-day-info{display:flex;flex-direction:column;gap:2px}.schedule-day-name{font-size:.88rem;font-weight:700;color:var(--text-primary);line-height:1.2}.schedule-day-date{font-size:.72rem;color:var(--text-tertiary);font-weight:500}.schedule-day-badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);background:var(--canvas-alt);color:var(--text-secondary);white-space:nowrap}.schedule-day-column--today .schedule-day-badge{background:#ffffff40;color:#fff}.schedule-day-column__body{padding:10px;display:flex;flex-direction:column;gap:10px;flex:1}.schedule-day-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:var(--sp-4) var(--sp-2);color:var(--text-tertiary);font-size:.75rem;gap:4px;text-align:center;flex:1;min-height:80px}.schedule-day-empty i{font-size:1.1rem;opacity:.6}.schedule-session-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:6px;position:relative;cursor:pointer;transition:transform var(--duration-fast),box-shadow var(--duration-fast),border-color var(--duration-fast)}.schedule-session-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong);transform:translateY(-2px)}.schedule-session-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.schedule-session-card--live{border-color:var(--accent);background:linear-gradient(180deg,var(--surface) 0%,rgba(76,107,116,.05) 100%);box-shadow:0 2px 8px #4c6b7426}.schedule-session-card--live:before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:4px;background:var(--accent);border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md)}.schedule-session-card--completed{opacity:.95}.schedule-session-card--cancelled{opacity:.65;background:var(--canvas-alt);border-style:dashed}.schedule-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:24px}.schedule-card-time{font-size:.78rem;font-weight:700;color:var(--accent);white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.schedule-card-actions-cell{position:relative;flex-shrink:0}.schedule-card-actions-cell .dropdown-toggle--actions{width:26px;height:26px;padding:0;font-size:.82rem;border-radius:var(--radius-sm);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.schedule-card-actions-cell .dropdown-toggle--actions:hover{background:var(--canvas-alt);color:var(--text-primary)}.schedule-card-group-name{font-size:.9rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.35;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.schedule-card-stage{font-size:.76rem;color:var(--text-secondary);font-weight:500;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-card-meta-row{display:flex;align-items:center;gap:var(--sp-2);font-size:.74rem;color:var(--text-secondary);flex-wrap:wrap}.schedule-card-students{display:inline-flex;align-items:center;gap:4px;font-weight:500}.schedule-card-location{display:inline-flex;align-items:center;gap:4px;color:var(--text-tertiary)}.schedule-card-footer{display:flex;align-items:center;padding-block-start:6px;border-block-start:1px solid var(--border);margin-block-start:2px}.schedule-card-footer .schedule-status-badge{width:100%;justify-content:center;padding:3px 8px;font-size:.74rem;font-weight:600;border-radius:var(--radius-sm);text-align:center}.schedule-today-timeline{max-width:800px;margin:0 auto;padding:var(--sp-3) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-3)}.schedule-timeline-item{display:flex;gap:var(--sp-3);position:relative}.schedule-timeline-item:before{content:"";position:absolute;inset-inline-start:75px;inset-block:0;width:2px;background:var(--border)}.schedule-timeline-time{width:65px;text-align:end;font-size:var(--font-size-xs);font-weight:700;color:var(--accent);flex-shrink:0;padding-block-start:var(--sp-2)}.schedule-timeline-content{flex:1;min-width:0}.schedule-timeline-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);box-shadow:var(--shadow-xs);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.schedule-timeline-card--live{border-color:var(--accent);background:#4c6b740d;box-shadow:0 2px 8px #4c6b741f}.schedule-timeline-card__info h4{margin:2px 0 4px;font-size:.9rem;font-weight:700}.schedule-conflict-alert{background:#b25d5214;border:1px solid rgba(178,93,82,.35);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);display:flex;align-items:flex-start;gap:var(--sp-2);margin-block-end:var(--sp-3)}.schedule-conflict-alert__icon{color:var(--danger);font-size:1rem;margin-block-start:1px}.schedule-conflict-alert__title{color:var(--danger);font-size:var(--font-size-xs);font-weight:700}.schedule-conflict-alert__text{font-size:.72rem;color:var(--text-primary);margin:2px 0 0}@media(max-width:1180px){.schedule-filters-toolbar{flex-wrap:wrap;gap:var(--sp-2)}.schedule-view-switcher{flex-shrink:0}.schedule-toolbar-search{flex:1 1 200px}.schedule-toolbar-filters{flex:1 1 auto;flex-wrap:nowrap}.schedule-toolbar-filters .groups-filter-select{flex:1 1 auto}.schedule-toolbar-actions{flex-shrink:0}}@media(max-width:900px){.schedule-nav-stats-bar{flex-direction:column;align-items:stretch;gap:var(--sp-2)}.schedule-mini-stats{justify-content:space-around}.schedule-filters-toolbar{flex-direction:column;align-items:stretch;gap:var(--sp-2)}.schedule-view-switcher{width:100%}.schedule-view-btn{flex:1;justify-content:center}.schedule-toolbar-search{width:100%}.schedule-toolbar-filters{width:100%;flex-wrap:wrap;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.schedule-toolbar-filters .groups-filter-select{width:100%;max-width:none;min-width:0}.schedule-toolbar-actions{width:100%;justify-content:flex-end}.schedule-toolbar-actions .groups-reset-btn{flex:1;justify-content:center}}@media(max-width:768px){.schedule-current-class-card{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.schedule-current-class-card__actions{width:100%}.schedule-current-class-card__actions .btn{flex:1}}@media(max-width:600px){.schedule-toolbar-filters{grid-template-columns:1fr}}}@layer pages{body.teachers-shell[data-teachers-module=payments] .page-layout{max-width:min(1680px,100%)}.payments-workspace{display:flex;flex-direction:column;gap:12px;width:100%;color:var(--text-primary)}.payments-workspace [hidden]{display:none!important}.payments-workspace .dropdown-menu.show{display:block;opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.payments-head{position:relative;z-index:40;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-block-end:4px}.payments-head__title-wrap{display:flex;flex-direction:column;gap:2px}.payments-head__title{margin:0;font-size:1.45rem;font-weight:700;line-height:1.25;color:var(--text-primary)}.payments-head__sub{margin:0;font-size:.84rem;color:var(--text-secondary)}.payments-head__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.payments-btn-quickpay{font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 35%,transparent);transition:all .2s cubic-bezier(.4,0,.2,1)}.payments-btn-quickpay:hover{transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 45%,transparent)}.payments-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%}.payments-kpi-card{display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 4px #0000000a;overflow:hidden}.payments-kpi-card:before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:4px;background:var(--accent);opacity:.85;border-radius:4px 0 0 4px}.payments-kpi-card[data-kpi=collected]:before{background:var(--success, #16a34a)}.payments-kpi-card[data-kpi=outstanding]:before{background:var(--warning, #d97706)}.payments-kpi-card[data-kpi=overdue]:before{background:var(--danger, #dc2626)}.payments-kpi-card.is-interactive{cursor:pointer;-webkit-user-select:none;user-select:none}.payments-kpi-card.is-interactive:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 6px 18px #00000014}.payments-kpi-card.is-danger-card.is-interactive:hover{border-color:var(--danger, #dc2626);box-shadow:0 6px 18px color-mix(in srgb,var(--danger, #dc2626) 15%,transparent)}.payments-kpi-card__header{display:flex;align-items:center;gap:10px}.payments-kpi-card__icon{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm);font-size:.95rem;flex-shrink:0}.payments-kpi-card__icon--expected{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.payments-kpi-card__icon--collected{background:color-mix(in srgb,var(--success, #16a34a) 12%,transparent);color:var(--success, #16a34a)}.payments-kpi-card__icon--outstanding{background:color-mix(in srgb,var(--warning, #d97706) 12%,transparent);color:var(--warning, #d97706)}.payments-kpi-card__icon--overdue{background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent);color:var(--danger, #dc2626)}.payments-kpi-card__label{font-size:.84rem;font-weight:600;color:var(--text-secondary);flex:1;margin:0}.payments-kpi-card__hint-tag{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.payments-kpi-card__hint-tag.is-danger{background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent);color:var(--danger, #dc2626)}.payments-kpi-card__badge{font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--success, #16a34a) 14%,transparent);color:var(--success, #16a34a);font-variant-numeric:tabular-nums}.payments-kpi-card__body{display:flex;flex-direction:column;gap:4px}.payments-kpi-card__value{font-size:1.55rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--text-primary)}.payments-kpi-card__value.is-collected{color:var(--success, #16a34a)}.payments-kpi-card__value.is-outstanding{color:var(--warning, #d97706)}.payments-kpi-card__value.is-overdue{color:var(--danger, #dc2626)}.payments-kpi-card__period,.payments-kpi-card__meta{font-size:.78rem;color:var(--text-secondary)}.payments-lock{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-secondary);font:inherit;font-size:.8125rem;cursor:pointer}.payments-lock.is-unlocked{color:var(--text-primary)}.payments-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.payments-toolbar__chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.payments-toolbar__selectors{display:flex;align-items:center;gap:8px;margin-inline-start:auto}.payments-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border:1px solid var(--border);border-radius:999px;background:var(--canvas-alt, var(--surface));color:var(--text-secondary);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.payments-chip:hover{background:var(--accent-soft);color:var(--text-primary)}.payments-chip.is-active,.payments-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.payments-chip__dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.payments-chip.is-chip-overdue.is-active{background:var(--danger, #dc2626);border-color:var(--danger, #dc2626);color:#fff}.payments-chip.is-chip-partial.is-active{background:var(--warning, #d97706);border-color:var(--warning, #d97706);color:#fff}.payments-chip.is-chip-unpaid.is-active{background:#0284c7;border-color:#0284c7;color:#fff}.payments-chip.is-chip-paid.is-active{background:var(--success, #16a34a);border-color:var(--success, #16a34a);color:#fff}.payments-chip.is-chip-credit.is-active{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.payments-money{font-variant-numeric:tabular-nums;white-space:nowrap}.payments-attention{display:grid;gap:12px}.payments-attention__title{margin:0;font-size:1.125rem;font-weight:650;color:var(--text-primary)}.payments-attention__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.payments-attention__card{display:grid;gap:4px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.payments-attention__kicker{font-size:.75rem;color:var(--text-secondary)}.payments-attention__card strong{font-size:1.125rem}.payments-attention__card small{color:var(--text-secondary)}.payments-attention__card--danger{border-color:color-mix(in srgb,var(--danger, #dc2626) 35%,var(--border))}.payments-attention__card--warning{border-color:color-mix(in srgb,var(--warning, #d97706) 35%,var(--border))}.payments-attention__card--info{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.payments-attention__ok,.payments-attention__empty{padding:12px 4px;color:var(--text-primary);display:flex;flex-wrap:wrap;align-items:center;gap:12px}.payments-body{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-height:0}.payments-tabs{display:flex;gap:4px;padding:8px 16px 0;border-block-end:1px solid var(--border);overflow-x:auto}.payments-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:.9375rem;font-weight:500;padding:12px 14px;cursor:pointer;white-space:nowrap;border-block-end:2px solid transparent;margin-block-end:-1px}.payments-tab:hover{color:var(--text-primary)}.payments-tab.is-active,.payments-tab.active{color:var(--text-primary);font-weight:650;border-block-end-color:var(--accent)}.payments-workspace__main{padding:12px 16px 16px}.payments-pane[hidden]{display:none!important}.payments-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-block-end:12px}.payments-section-head h3{margin:0;font-size:1.0625rem;font-weight:650;color:var(--text-primary)}.payments-overview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(16rem,.8fr);gap:16px}.payments-panel{min-width:0;padding:4px 0}.payments-panel--wide{grid-column:1 / -1}.payments-feed,.payments-group-perf{display:grid;gap:0}.payments-feed__item,.payments-group-perf__item{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon body amount" "icon meta wa";gap:2px 12px;width:100%;padding:12px 0;border:0;border-block-end:1px solid var(--border);background:transparent;color:inherit;text-align:start;cursor:pointer;font:inherit}.payments-feed__icon{grid-area:icon;width:32px;height:32px;display:grid;place-items:center;border-radius:999px;background:var(--accent-soft, rgba(37, 99, 235, .1));color:var(--accent)}.payments-feed__body{grid-area:body;display:grid}.payments-feed__amount{grid-area:amount;font-weight:650}.payments-feed__meta{grid-area:meta}.payments-feed__wa{grid-area:wa;justify-self:end}.payments-group-perf__item{grid-template-columns:1fr auto;grid-template-areas:"copy copy" "bar money";align-items:center}.payments-group-perf__copy{grid-area:copy;display:grid;gap:2px}.payments-group-perf__item .payments-progress{grid-area:bar}.payments-group-perf__money{grid-area:money;font-size:.8125rem;color:var(--text-secondary)}.payments-feed__item:last-child,.payments-group-perf__item:last-child{border-block-end:0}.payments-feed__meta,.payments-muted{color:var(--text-secondary);font-size:.8125rem}.payments-daily__value{margin:0;font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums}.payments-daily__methods{display:grid;gap:8px;margin-block-start:12px}.payments-daily__row{display:flex;justify-content:space-between;gap:12px;font-size:.875rem}.payments-students-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-block-end:14px}.payments-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.payments-tab-search{position:relative;max-width:22rem;width:100%;margin-inline-start:auto}.payments-tab-search__icon{position:absolute;inset-inline-start:12px;inset-block-start:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.payments-tab-search .payments-search__input{padding-inline-start:36px;min-height:38px;font-size:.875rem}.payments-table th.is-highlight,.payments-table td.is-highlight{background:color-mix(in srgb,var(--accent) 3%,transparent)}.payments-row{transition:background .15s ease}.payments-row.is-overdue-row{background:color-mix(in srgb,var(--danger, #dc2626) 3%,transparent)}.payments-row:hover{background:var(--accent-soft)!important}.payments-student-btn{padding:0;font:inherit;text-align:start;display:inline-block}.payments-student-btn:hover strong{color:var(--accent);text-decoration:underline}.payments-student-cell{display:grid;gap:2px}.payments-student-cell strong{color:var(--text-primary);font-weight:600}.payments-student-cell small{color:var(--text-secondary);font-variant-numeric:tabular-nums}.payments-group-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);background:var(--canvas-alt);border:1px solid var(--border);color:var(--text-secondary);font-size:.78rem;white-space:nowrap}.payments-code-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);font-family:monospace,var(--font-family);font-size:.78rem;font-weight:600}.payments-last-payment{display:grid;gap:1px;font-size:.8125rem}.payments-money--remaining{color:var(--warning, #d97706);font-weight:700}.payments-money--overdue{color:var(--danger, #dc2626);font-weight:700}.payments-money--zero{color:var(--text-secondary)}.payments-money--success{color:var(--success, #16a34a);font-weight:700}.payments-student-cards{display:none;gap:12px}.payments-student-card{padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 4px #0000000a;position:relative;overflow:hidden}.payments-student-card.is-overdue{border-inline-start:4px solid var(--danger, #dc2626)}.payments-student-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.payments-student-card__group{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.8125rem}.payments-student-card__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;background:var(--canvas-alt);border-radius:var(--radius-sm);text-align:center}.payments-student-card__stat{display:flex;flex-direction:column;gap:2px}.payments-student-card__stat-label{font-size:.72rem;color:var(--text-secondary)}.payments-student-card__stat-value{font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}.payments-student-card__meta{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-secondary)}.payments-student-card__actions{display:flex;gap:8px;margin-block-start:2px}.payments-student-card__actions .btn{flex:1;min-height:40px;justify-content:center}.payments-progress{height:8px;background:color-mix(in srgb,var(--text-secondary) 18%,transparent);border-radius:999px;overflow:hidden;min-width:72px}.payments-progress--lg{flex:1;height:10px}.payments-progress>span{display:block;height:100%;background:var(--success, #16a34a)}.payments-group-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-block-end:16px}.payments-group-head h2{margin:4px 0;font-size:1.25rem}.payments-matrix-wrap{overflow-x:auto;width:100%;max-width:100%;margin-block-start:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.payments-matrix{width:max-content;min-width:0;margin:0;border-collapse:separate;border-spacing:0;border-radius:0;overflow:visible;background:transparent}.payments-matrix thead{background:var(--canvas-alt)}.payments-matrix th,.payments-matrix td{padding:10px 12px;vertical-align:middle;border-block-end:1px solid var(--border)}.payments-matrix thead th{background:var(--canvas-alt);color:var(--text-secondary);font-size:.8125rem;font-weight:650;white-space:nowrap}.payments-matrix tbody th,.payments-matrix tbody td:first-child{text-align:start}.payments-matrix thead th:first-child,.payments-matrix tbody th{position:sticky;inset-inline-start:0;z-index:3;min-width:16rem;width:16rem;max-width:22rem;text-align:start;background:var(--canvas-alt);border-inline-end:1px solid var(--border)}.payments-matrix tbody th{z-index:2;background:var(--surface);font-weight:500}.payments-matrix tbody tr:nth-child(2n) th{background:var(--canvas)}.payments-matrix tbody tr:hover td,.payments-matrix tbody tr:hover th{background:var(--accent-soft)}.payments-matrix tbody tr:last-child th,.payments-matrix tbody tr:last-child td{border-block-end:0}.payments-matrix thead th:not(:first-child),.payments-matrix tbody td{text-align:center;width:8rem;min-width:8rem;white-space:nowrap}.payments-matrix .teacher-table-actions{width:3rem;min-width:3rem;max-width:3.5rem;padding-inline:6px}.payments-matrix__student{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.payments-matrix__student:hover strong{color:var(--accent)}.payments-matrix .payments-student-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.payments-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%;min-width:5.5rem;min-height:2.75rem;padding:4px 10px;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;color:var(--text-primary)}.payments-cell:hover,.payments-cell:focus-visible{border-color:var(--accent)}.payments-cell.is-paid{color:var(--success, #16a34a);background:color-mix(in srgb,var(--success, #16a34a) 10%,var(--surface))}.payments-cell.is-partial{color:var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 10%,var(--surface))}.payments-cell.is-overdue{color:var(--danger, #dc2626);background:color-mix(in srgb,var(--danger, #dc2626) 10%,var(--surface))}.payments-cell.is-due{color:var(--accent)}.payments-cell.is-upcoming,.payments-cell.is-muted{color:var(--text-secondary)}.payments-popover{position:fixed;z-index:80;min-width:16rem;max-width:20rem;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md, 0 8px 24px rgba(15, 23, 42, .12))}.payments-popover h4{margin:0 0 6px}.payments-popover p{margin:0 0 10px;font-size:.875rem;color:var(--text-secondary)}.payments-popover__actions{display:flex;flex-wrap:wrap;gap:8px}.payments-activity{display:grid;gap:12px}.payments-activity__day{font-size:.8125rem;color:var(--text-secondary);font-weight:600}.payments-activity__item{display:grid;gap:4px;padding:12px 0;border-block-end:1px solid var(--border)}.payments-bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block-end:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md)}.payments-form-grid{display:grid;gap:12px}.payments-form-grid label{display:grid;gap:6px;font-size:.875rem}.payments-form-error{color:var(--danger, #ef4444);font-size:.875rem}.payments-field-error{color:var(--danger, #dc2626);font-size:.78rem;font-weight:600}.payments-field-hint{color:var(--text-secondary);font-size:.75rem}.payments-form-grid [aria-invalid=true]{border-color:var(--danger, #dc2626)}.payments-preview-note,.payments-credit-note{font-size:.875rem;color:var(--text-secondary)}.payments-preview-note{padding:10px 12px;border-inline-start:3px solid var(--accent);background:var(--canvas-alt)}.payments-credit-choice{display:grid;gap:5px;padding:12px;border:1px solid color-mix(in srgb,var(--success, #16a34a) 35%,var(--border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--success, #16a34a) 7%,var(--surface));margin-block:10px}.payments-credit-choice p{margin:0;color:var(--text-primary)}.payments-credit-choice small{color:var(--text-secondary)}.payments-pay-student-header{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);margin-block-end:14px}.payments-pay-student-header__avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:1.25rem;flex-shrink:0}.payments-pay-student-header__name{font-size:1.1rem;color:var(--text-primary);display:block;margin-block-end:2px}.payments-pay-student-header__meta{display:flex;align-items:center;gap:8px}.payments-pay-section{margin-block-end:14px}.payments-pay-section__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-block-end:10px}.payments-pay-section__head h4{margin:0;font-size:.95rem;font-weight:650;color:var(--text-primary)}.payments-pay-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-block-start:12px}.payments-form-group{display:flex;flex-direction:column;gap:6px}.payments-form-group label{font-size:.84rem;font-weight:600;color:var(--text-primary)}.payments-form-group .required{color:var(--danger, #dc2626)}.payments-form-group--full{grid-column:1 / -1}.payments-obligation-list{display:grid;gap:8px;max-height:18rem;overflow-y:auto}.payments-obligation-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:start;width:100%;font:inherit;cursor:pointer;transition:all .15s ease}.payments-obligation-item:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.payments-obligation-item.is-selected{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:var(--accent)}.payments-obligation-item__info{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.payments-obligation-item__title{font-weight:600;color:var(--text-primary)}.payments-obligation-item__due{font-size:.78rem}.payments-obligation-item__amount{font-weight:700;font-variant-numeric:tabular-nums}.payments-preview-card{padding:12px 14px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent) 6%,var(--canvas-alt));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));font-size:.875rem;line-height:1.6;color:var(--text-primary)}.payments-pay-success{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 8px}.payments-pay-success__icon-wrap{width:60px;height:60px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--success, #16a34a) 15%,transparent);color:var(--success, #16a34a);font-size:1.8rem;font-weight:700}.payments-pay-success__title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary)}.payments-pay-success__subtitle{margin:-4px 0 6px;font-size:.875rem;color:var(--text-secondary)}.payments-pay-success__card{width:100%;max-width:28rem;background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;display:flex;flex-direction:column;gap:8px;text-align:start}.payments-pay-success__row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.875rem}.payments-pay-success__label{color:var(--text-secondary)}.payments-pay-success__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-block-start:10px;width:100%}.payments-notification-result{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--success, #16a34a) 10%,transparent);color:var(--success, #16a34a);font-size:.84rem}.payments-notification-result.is-error{background:color-mix(in srgb,var(--danger, #dc2626) 10%,transparent);color:var(--danger, #dc2626)}.payments-drawer-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-block-end:12px}.payments-drawer-summary article{padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border)}.payments-drawer-summary article.is-emphasis{border-color:var(--accent);background:var(--accent-soft)}.payments-drawer-summary span{display:block;font-size:.75rem;color:var(--text-secondary)}.payments-drawer-summary strong{font-variant-numeric:tabular-nums}.payments-drawer__header-actions{display:flex;align-items:center;gap:8px}.payments-banner{padding:10px 12px;border-radius:var(--radius-md);background:var(--warning-soft, rgba(217, 119, 6, .12));color:var(--warning, #d97706);font-size:.875rem;margin-block-end:12px}.payments-skeleton{display:grid;gap:8px}.payments-skeleton__line{height:10px;border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 18%,transparent)}.payments-workspace .empty-state{padding:24px 12px}.payments-workspace .teacher-table-actions{position:relative;z-index:2}.payments-whatsapp-line{font-size:.875rem;color:var(--text-secondary)}#paymentsPayModal .teacher-modal__body{min-height:20rem}@media(max-width:1100px){.payments-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payments-overview,.payments-hero__metrics,.payments-attention__grid{grid-template-columns:1fr 1fr}}@media(max-width:900px){.payments-desktop-table{display:none}.payments-student-cards{display:grid}.payments-drawer-summary{grid-template-columns:1fr 1fr}.payments-overview{grid-template-columns:1fr}}@media(max-width:640px){.payments-kpi-grid{grid-template-columns:1fr}.payments-toolbar{flex-direction:column;align-items:stretch}.payments-toolbar__selectors{width:100%;margin-inline-start:0}.payments-select{width:100%}.payments-head{flex-direction:column;align-items:stretch}.payments-head__actions{width:100%}.payments-head__actions>.btn{flex:1 1 calc(50% - 6px);min-height:44px}#paymentsRegisterPayBtn{flex-basis:100%;order:-2}.payments-lock{min-height:44px}.payments-tabs{padding-inline:8px}.payments-tab{min-height:44px;padding-inline:12px}.payments-workspace__main{padding-inline:10px}.payments-student-card__actions{flex-wrap:wrap}.payments-student-card__actions .btn{flex:1;min-height:44px}.payments-pay-form-grid{grid-template-columns:1fr}#paymentsPayModal .teacher-modal__body{min-height:0}.teacher-modal:has(#paymentsPayModalBody),#paymentsPayModal{padding:0;align-items:stretch}#paymentsPayModal .teacher-modal__dialog{width:100vw;max-width:100vw;min-height:100dvh;margin:0}#paymentsPayModal .teacher-modal__content{height:100dvh;max-height:100dvh;border:0;border-radius:0}#paymentsPayModal .teacher-modal__body{flex:1;overflow-y:auto;padding-inline:14px}#paymentsPayModal .teacher-modal__footer{position:sticky;inset-block-end:0;flex-wrap:wrap}#paymentsPayModal .teacher-modal__footer .btn{flex:1;min-height:44px}.payments-popover{max-width:calc(100vw - 24px)}}}@layer pages{.groups-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);margin-block-end:var(--sp-4);display:flex;align-items:center;gap:var(--sp-3);box-shadow:var(--shadow-xs)}.groups-toolbar__search{position:relative;flex:1 1 240px;min-width:200px}.groups-toolbar__search>i{position:absolute;inset-inline-start:var(--sp-3);inset-block-start:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;font-size:.9rem}.groups-search-input{width:100%;height:38px;padding-inline-start:2.3rem;padding-inline-end:var(--sp-3);border-radius:var(--radius-md);background:var(--canvas-alt);border:1px solid var(--border);color:var(--text-primary);font-size:var(--font-size-sm);transition:all var(--duration-fast)}.groups-search-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.groups-toolbar__filters{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.groups-filter-select{height:38px;padding-inline:var(--sp-3);border-radius:var(--radius-md);background:var(--canvas-alt);border:1px solid var(--border);color:var(--text-primary);font-size:var(--font-size-sm);min-width:120px;cursor:pointer;transition:all var(--duration-fast)}.groups-filter-select:focus{background:var(--surface);border-color:var(--accent);outline:none}.groups-popover-wrap{position:relative}.groups-more-btn{height:38px;padding-inline:var(--sp-3);display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap;border-radius:var(--radius-md)}.groups-more-btn.has-active-filters{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.groups-filter-count{background:var(--accent);color:var(--text-on-accent, #fff);font-size:11px;font-weight:var(--font-weight-bold);padding:1px 6px;border-radius:999px;line-height:1.2}.groups-more-popover{position:absolute;inset-block-start:calc(100% + var(--sp-2));inset-inline-end:0;width:280px;max-width:90vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:99;padding:var(--sp-3) var(--sp-4);display:none;flex-direction:column;gap:var(--sp-3)}.groups-more-popover.is-open{display:flex}.groups-more-popover[hidden]{display:none!important}.groups-more-popover__head{display:flex;align-items:center;justify-content:space-between;border-block-end:1px solid var(--border);padding-block-end:var(--sp-2)}.groups-more-popover__head strong{font-size:var(--font-size-sm);color:var(--text-primary)}.groups-more-popover__close{background:transparent;border:none;cursor:pointer;color:var(--text-secondary);padding:var(--sp-1);border-radius:var(--radius-sm);display:flex}.groups-more-popover__close:hover{color:var(--danger);background:var(--danger-soft)}.groups-more-popover__body{display:flex;flex-direction:column;gap:var(--sp-2)}.groups-popover-check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.groups-popover-check input{accent-color:var(--accent);width:16px;height:16px}.groups-toolbar__sort{display:flex;align-items:center;gap:var(--sp-2)}.groups-sort-label{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.groups-sort-select{min-width:110px}.groups-toolbar__actions{display:flex;align-items:center;gap:var(--sp-2);margin-inline-start:auto;flex-shrink:0}.groups-icon-btn{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md)}.groups-reset-btn{height:38px;color:var(--text-secondary);display:inline-flex;align-items:center;gap:var(--sp-1);padding-inline:var(--sp-3)}.groups-reset-btn:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.groups-reset-btn.is-disabled,.groups-reset-btn:disabled{opacity:.4;pointer-events:none}@media(max-width:1200px){.groups-toolbar{flex-wrap:wrap}.groups-toolbar__search{flex:1 1 100%;min-width:100%}.groups-toolbar__filters{flex-wrap:wrap;flex:1 1 auto}}@media(max-width:768px){.groups-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-3);padding:var(--sp-3)}.groups-toolbar__search{width:100%}.groups-toolbar__filters{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);width:100%}.groups-popover-wrap,.groups-toolbar__sort{grid-column:span 1}.groups-toolbar__sort,.groups-sort-select{width:100%}.groups-toolbar__actions{display:flex;justify-content:space-between;width:100%;margin-inline-start:0;border-block-start:1px solid var(--border);padding-block-start:var(--sp-2)}}.teacher-table-surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.groups-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}.groups-table{width:100%;border-collapse:collapse;margin:0;font-size:var(--font-size-sm);background:transparent}.groups-table th{background:var(--canvas-alt);color:var(--text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em;padding:var(--sp-3) var(--sp-4);text-align:right;border-block-end:1px solid var(--border);white-space:nowrap}.groups-table td{padding:var(--sp-3) var(--sp-4);border-block-end:1px solid var(--border);color:var(--text-primary);text-align:right;vertical-align:middle;height:64px;transition:background-color var(--duration-fast) var(--easing-out)}.groups-table tr:last-child td{border-block-end:none}.groups-table-row{cursor:pointer}.groups-table-row:hover td{background:var(--accent-soft)}.col-group{min-width:200px}.col-students{min-width:140px}.col-schedule{min-width:180px}.col-attendance{min-width:90px;text-align:center!important}.col-payments{min-width:150px}.col-status{min-width:90px;text-align:center!important}.col-actions{width:44px;text-align:center!important}.groups-table th.col-attendance,.groups-table td.col-attendance,.groups-table th.col-status,.groups-table td.col-status,.groups-table th.col-actions,.groups-table td.col-actions{text-align:center}.groups-cell-group{display:flex;flex-direction:column;gap:2px}.groups-link-name{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);text-decoration:none;display:inline-block;transition:color var(--duration-fast)}.groups-link-name:hover{color:var(--accent);text-decoration:underline}.groups-cell-sub{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-xs);color:var(--text-tertiary)}.groups-badge-code{font-family:monospace;background:var(--canvas-alt);padding:1px 5px;border-radius:var(--radius-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.groups-stage-name{color:var(--text-secondary)}.groups-cell-students{display:flex;flex-direction:column;gap:2px}.groups-students-nums{display:flex;align-items:baseline;gap:var(--sp-1);font-size:var(--font-size-sm)}.groups-students-nums strong{font-weight:var(--font-weight-bold);color:var(--text-primary)}.groups-capacity-limit{font-size:var(--font-size-xs);color:var(--text-tertiary)}.groups-occupancy-tag{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.groups-waitlist-badge{align-self:flex-start;font-size:10px;padding:1px 5px;border-radius:999px;background:var(--info-soft);color:var(--info);font-weight:var(--font-weight-medium)}.groups-cell-schedule{display:flex;flex-direction:column;gap:2px}.groups-schedule-text{font-weight:var(--font-weight-medium);color:var(--text-primary);line-height:1.3}.groups-schedule-separator{color:var(--text-tertiary);margin-inline:2px}.groups-next-tag{font-size:var(--font-size-xs);color:var(--text-secondary);display:inline-flex;align-items:center;gap:var(--sp-1)}.groups-next-tag i{font-size:10px;color:var(--accent)}.groups-cell-payments{display:flex;flex-direction:column;gap:2px}.groups-billing-hint{font-size:var(--font-size-xs);color:var(--text-tertiary)}.groups-muted-dash{color:var(--text-tertiary)}.groups-mobile-cards{display:none}@media(max-width:768px){.groups-table-container{display:none!important}.groups-mobile-cards{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4)}.groups-mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:var(--shadow-xs)}.groups-mobile-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.groups-mobile-card__name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text-primary);text-decoration:none}.groups-mobile-card__head-actions{display:flex;align-items:center;gap:var(--sp-2)}.groups-mobile-card__meta{display:flex;flex-direction:column;gap:var(--sp-2);padding-block:var(--sp-2);border-block:1px solid var(--border-soft, var(--border));font-size:var(--font-size-xs)}.groups-mobile-card__item{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-secondary)}.groups-mobile-card__item i{color:var(--accent);width:14px;text-align:center}.groups-mobile-card__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.groups-mobile-card__badges{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}}.groups-state-container{padding:var(--sp-8) var(--sp-4);text-align:center}.groups-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);max-width:420px;margin-inline:auto}.groups-state i{font-size:2.5rem;color:var(--text-tertiary)}.groups-state--error i{color:var(--danger)}.groups-state h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary)}.groups-state p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.groups-account-empty{padding:var(--sp-6) 0}.groups-skeleton-row td{height:64px;vertical-align:middle}.skeleton-line{display:block;background:var(--canvas-alt);border-radius:var(--radius-xs);animation:skeletonPulse 1.4s infinite ease-in-out}@keyframes skeletonPulse{0%,to{opacity:.5}50%{opacity:1}}.groups-pagination-wrap{padding:var(--sp-3) var(--sp-4);border-block-start:1px solid var(--border);background:var(--canvas-alt)}}@layer pages{[hidden],.group-details-page.is-loading #groupWorkspaceContent{display:none!important}.group-details-page:not(.is-loading) #groupWorkspaceLoading{display:none!important}.group-details-breadcrumb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-xs);color:var(--text-tertiary);margin-block-end:var(--sp-3)}.group-details-breadcrumb a{color:var(--text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--duration-fast)}.group-details-breadcrumb a:hover{color:var(--accent)}.group-details-breadcrumb i{font-size:9px;opacity:.7}.group-details-breadcrumb span[aria-current]{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.group-details-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-block-end:var(--sp-5);flex-wrap:wrap;position:relative;z-index:30}.group-details-header__main{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;flex:1 1 300px}.group-details-header__title-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.group-details-header__title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2;letter-spacing:-.01em}.group-details-header__meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.group-meta-pill{display:inline-flex;align-items:center;gap:var(--sp-1-5, 6px);padding:3px 10px;border-radius:var(--radius-full, 9999px);background:var(--canvas-alt);border:1px solid var(--border);font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.group-meta-pill i{font-size:11px;color:var(--accent)}.group-details-header__actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;position:relative;z-index:31}.group-more-dropdown{position:relative}.group-more-dropdown .dropdown-menu{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;min-width:190px;background:var(--surface, #ffffff);border:1px solid var(--border, rgba(0, 0, 0, .1));border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-lg, 0 10px 25px -5px rgba(0, 0, 0, .2), 0 8px 10px -6px rgba(0, 0, 0, .1));padding:var(--sp-1-5, 6px);z-index:1050!important;display:none;flex-direction:column;gap:2px}.group-more-dropdown .dropdown-menu.is-open,.group-more-dropdown .dropdown-menu.show,.group-more-dropdown .dropdown-menu.open,.group-more-dropdown.show .dropdown-menu,.group-more-dropdown.is-open .dropdown-menu{display:flex!important}.group-more-dropdown .dropdown-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);text-align:start;text-decoration:none;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.group-more-dropdown .dropdown-item:hover,.group-more-dropdown .dropdown-item:focus{background:var(--canvas-alt);color:var(--accent)}.group-more-dropdown .dropdown-item i{font-size:13px;width:16px;text-align:center;color:var(--text-secondary)}.group-more-dropdown .dropdown-item:hover i{color:var(--accent)}.group-more-dropdown .dropdown-divider{height:1px;background:var(--border);margin:4px 0}.group-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);margin-block-end:var(--sp-5)}.group-summary-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3-5, 14px) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);min-height:84px;box-sizing:border-box;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.group-summary-card:hover{border-color:var(--border-hover, var(--border));box-shadow:var(--shadow-sm)}.group-summary-card__icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;background:var(--canvas-alt);color:var(--text-secondary)}.group-summary-card__icon--accent{background:var(--accent-soft);color:var(--accent)}.group-summary-card__icon--info{background:var(--info-soft);color:var(--info)}.group-summary-card__icon--success{background:var(--success-soft);color:var(--success)}.group-summary-card__icon--warning{background:var(--warning-soft);color:var(--warning)}.group-summary-card__info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.group-summary-card__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-summary-card__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-summary-card__value--sm{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.group-summary-card__hint{font-size:11px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-details-tabs-wrap{border-block-end:1px solid var(--border);margin-block-end:var(--sp-5);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.group-details-tabs-wrap::-webkit-scrollbar{display:none}.group-details-tabs{display:flex;align-items:center;gap:var(--sp-2);padding-block-end:2px;min-width:max-content}.group-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2-5, 10px) var(--sp-4);border-radius:var(--radius-md);background:transparent;border:1px solid transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;position:relative;transition:all var(--duration-fast)}.group-tab:hover{color:var(--text-primary);background:var(--canvas-alt)}.group-tab.is-active{color:var(--accent);background:var(--surface);font-weight:var(--font-weight-semibold);border-color:var(--border);box-shadow:var(--shadow-xs)}.group-tab.is-active:after{content:"";position:absolute;inset-inline-start:15%;inset-inline-end:15%;inset-block-end:-3px;height:2px;background:var(--accent);border-radius:2px}.group-tab-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:var(--font-weight-bold);padding:1px 7px;border-radius:var(--radius-full, 9999px)}.group-details-panels{display:flex;flex-direction:column;gap:var(--sp-4)}.group-panel{display:none;flex-direction:column;gap:var(--sp-4)}.group-panel.is-active{display:flex}.group-overview-grid{display:flex;flex-direction:column;gap:var(--sp-4)}.group-overview-grid__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.group-surface-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4-5, 18px);display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:var(--shadow-xs);box-sizing:border-box}.group-surface-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);border-block-end:1px solid var(--border);padding-block-end:var(--sp-3)}.group-surface-card__head h2,.group-surface-card__head h3{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);display:inline-flex;align-items:center;gap:var(--sp-2)}.group-surface-card__head h2 i,.group-surface-card__head h3 i{color:var(--accent);font-size:15px}.group-def-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3-5, 14px) var(--sp-4)}.group-def-item{display:flex;flex-direction:column;gap:3px}.group-def-label{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.group-def-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.group-surface-card__footer{display:flex;align-items:center;gap:var(--sp-2);padding-block-start:var(--sp-3);border-block-start:1px solid var(--border);flex-wrap:wrap}.group-upcoming-sessions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-2-5, 10px)}.group-upcoming-session-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2-5, 10px) var(--sp-3);background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--sp-2)}.group-upcoming-session-item__time{display:flex;flex-direction:column;gap:2px}.group-upcoming-session-item__time strong{font-size:var(--font-size-sm);color:var(--text-primary)}.group-upcoming-session-item__time span{font-size:var(--font-size-xs);color:var(--text-secondary)}.group-alert-banner{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3-5, 14px) var(--sp-4);border-radius:var(--radius-lg);background:var(--warning-soft);border:1px solid var(--warning);color:var(--text-primary)}.group-alert-banner i{font-size:1.15rem;color:var(--warning);margin-block-start:2px;flex-shrink:0}.group-alert-banner__content{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-sm)}.group-alert-banner__content strong{font-weight:var(--font-weight-semibold)}.group-alert-banner__content ul{margin:0;padding-inline-start:var(--sp-4);display:flex;flex-direction:column;gap:2px}.group-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-6) var(--sp-4);gap:var(--sp-2);color:var(--text-secondary)}.group-empty-state i{font-size:2rem;color:var(--text-tertiary);margin-block-end:var(--sp-1)}.group-empty-state p{margin:0;font-size:var(--font-size-sm)}.group-students-workspace{display:flex;flex-direction:column;gap:var(--sp-4)}.group-tab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.group-tab-toolbar__search{position:relative;flex:1 1 260px;min-width:220px}.group-tab-toolbar__search>i{position:absolute;inset-inline-start:var(--sp-3);inset-block-start:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;font-size:13px}.group-tab-toolbar__search input{width:100%;padding-inline-start:2.4rem;height:38px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);color:var(--text-primary);font-size:var(--font-size-sm)}.group-tab-toolbar__filters{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.group-tab-toolbar__filters select{height:38px;padding-inline:var(--sp-3);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);color:var(--text-primary);font-size:var(--font-size-sm)}.group-cell-student-name{display:flex;flex-direction:column;gap:2px}.group-cell-student-name a{font-weight:var(--font-weight-semibold);color:var(--text-primary);text-decoration:none}.group-cell-student-name a:hover{color:var(--accent);text-decoration:underline}.group-cell-student-sub{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-xs);color:var(--text-secondary)}.group-schedule-workspace{display:flex;flex-direction:column;gap:var(--sp-4)}.group-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3)}.group-slot-card{background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3-5, 14px);display:flex;flex-direction:column;gap:var(--sp-2)}.group-slot-card__day{display:flex;align-items:center;gap:var(--sp-2);color:var(--accent);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.group-slot-card__time{display:flex;flex-direction:column;gap:1px}.group-slot-card__time strong{font-size:var(--font-size-sm);color:var(--text-primary)}.group-slot-card__time small{font-size:var(--font-size-xs);color:var(--text-secondary)}.group-slot-card__location{font-size:var(--font-size-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--sp-1);margin-block-start:2px}.group-activity-timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-4);position:relative}.group-activity-item{display:flex;align-items:flex-start;gap:var(--sp-3);position:relative}.group-activity-item__dot{width:10px;height:10px;border-radius:9999px;background:var(--accent);margin-block-start:5px;flex-shrink:0;box-shadow:0 0 0 3px var(--accent-soft)}.group-activity-item__body{display:flex;flex-direction:column;gap:2px;flex:1;padding-block-end:var(--sp-3);border-block-end:1px solid var(--border)}.group-activity-item:last-child .group-activity-item__body{border-block-end:none;padding-block-end:0}.group-activity-item__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.group-activity-item__desc{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0}.group-activity-item__time{font-size:11px;color:var(--text-tertiary)}.group-settings-workspace{display:flex;flex-direction:column;gap:var(--sp-4)}.group-settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3-5, 14px) var(--sp-4)}.group-settings-form-grid .form-field--full{grid-column:1 / -1}.group-lifecycle-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.group-details-skeleton{display:flex;flex-direction:column;gap:var(--sp-4)}.skeleton-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.skeleton-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.skeleton-card{background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-lg);position:relative;overflow:hidden}.skeleton-tabs-bar{background:var(--canvas-alt);border-radius:var(--radius-md);position:relative;overflow:hidden}.shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 50%,transparent 100%);animation:shimmer 1.5s infinite}@keyframes shimmer{to{transform:translate(100%)}}.group-details-error{padding:var(--sp-8) var(--sp-4)}.group-error-card{max-width:500px;margin-inline:auto;padding:var(--sp-6);background:var(--surface);border:1px solid var(--danger, #ef4444);border-radius:var(--radius-xl);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);box-shadow:var(--shadow-md)}.group-error-card i{font-size:2.5rem;color:var(--danger, #ef4444)}.group-error-card h2{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary)}.group-error-card p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.group-error-card__actions{display:flex;align-items:center;gap:var(--sp-2);margin-block-start:var(--sp-2)}@media(max-width:1023px){.group-summary-grid,.skeleton-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:899px){.group-overview-grid__cards,.skeleton-overview-grid,.group-settings-form-grid{grid-template-columns:1fr}}@media(max-width:640px){.group-details-header{flex-direction:column;align-items:stretch}.group-details-header__actions{justify-content:flex-start}.group-summary-grid,.skeleton-summary-grid,.group-def-grid{grid-template-columns:1fr}}}@layer pages{#groupCreatePage{max-width:100%;margin-inline:auto}.groups-create-breadcrumb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--sp-3)}.groups-create-breadcrumb a{color:var(--accent);text-decoration:none;font-weight:var(--font-weight-medium);transition:color .15s ease}.groups-create-breadcrumb a:hover{color:var(--accent-hover, var(--accent));text-decoration:underline}.groups-create-breadcrumb i{font-size:var(--font-size-xs);color:var(--text-tertiary)}.groups-create-breadcrumb span[aria-current=page]{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.groups-create-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--glass-border, var(--border));border-radius:var(--radius-lg, 12px);background:var(--glass-bg-strong, rgba(255, 255, 255, .03));position:sticky;top:var(--sp-3);z-index:30;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px #00000014;margin-bottom:var(--sp-4)}.groups-create-section-tab{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2-5, 10px) var(--sp-3);border-radius:var(--radius-md, 8px);font-size:var(--font-size-xs, .82rem);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-decoration:none;border:1px solid transparent;background:transparent;transition:all .2s cubic-bezier(.16,1,.3,1);white-space:nowrap;-webkit-user-select:none;user-select:none}.groups-create-section-tab .tab-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#ffffff0f;font-size:.75rem;color:var(--text-secondary);transition:all .2s ease;flex-shrink:0}.groups-create-section-tab:hover{color:var(--text-primary);background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.groups-create-section-tab:hover .tab-num{background:var(--accent);color:#fff}.groups-create-section-tab.active{color:var(--accent);font-weight:var(--font-weight-bold);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:var(--accent);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 20%,transparent)}.groups-create-section-tab.active .tab-num{background:var(--accent);color:#fff}.groups-create-section-tab.has-error{border-color:var(--danger, #ef4444);color:var(--danger, #ef4444)}.groups-create-section-tab.has-error .tab-num{background:var(--danger, #ef4444);color:#fff}.groups-create-section{padding:var(--sp-5, 20px) var(--sp-6, 24px);border:1px solid var(--glass-border, var(--border));border-radius:var(--radius-lg, 12px);background:var(--surface);margin-block-end:var(--sp-5);scroll-margin-block-start:calc(var(--sp-16) + var(--sp-6));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0,0,0,.05));transition:border-color .2s ease}.groups-create-section:last-of-type{margin-block-end:var(--sp-4)}.groups-create-section__head{display:flex;align-items:center;gap:var(--sp-3-5, 14px);margin-block-end:var(--sp-4);padding-block-end:var(--sp-3-5, 14px);border-block-end:1px solid var(--border-subtle, var(--border))}.groups-create-section__head>div{flex:1;min-width:0}.groups-create-section__head h3{margin:0;font-size:1.05rem;font-weight:var(--font-weight-bold);color:var(--text-primary)}.groups-create-section__head p{margin:4px 0 0;color:var(--text-secondary);font-size:var(--font-size-xs, .82rem);line-height:1.4}.groups-create-section__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--radius-md, 10px);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:1.15rem}.groups-form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--sp-3-5, 14px)}.groups-field{grid-column:span 4;display:flex;flex-direction:column;gap:6px;min-width:0}.groups-field>span{font-size:var(--font-size-xs, .82rem);font-weight:var(--font-weight-semibold);color:var(--text-secondary)}.groups-field--wide{grid-column:span 8}.groups-field--half{grid-column:span 6}.groups-field--full{grid-column:span 12}.input-icon-wrapper{position:relative;display:flex;align-items:center;width:100%}.input-icon-wrapper .input-icon{position:absolute;inset-inline-start:12px;color:var(--text-tertiary);font-size:.88rem;pointer-events:none;z-index:2;transition:color .15s ease}.input-icon-wrapper .glass-input{padding-inline-start:36px!important;width:100%}.input-icon-wrapper:focus-within .input-icon{color:var(--accent)}.groups-billing-subsections{display:flex;flex-direction:column;gap:var(--sp-4)}.groups-billing-subpanel{padding:var(--sp-4);border:1px solid var(--border-subtle, rgba(255, 255, 255, .06));border-radius:var(--radius-md, 10px);background:var(--surface-subtle, rgba(255, 255, 255, .02))}.groups-billing-subpanel__title{display:flex;align-items:center;gap:8px;margin-bottom:var(--sp-3);color:var(--text-primary)}.groups-billing-subpanel__title i{color:var(--accent);font-size:.9rem}.groups-billing-subpanel__title h4{margin:0;font-size:.92rem;font-weight:var(--font-weight-bold)}.groups-slot-editor{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-2)}.groups-slot-editor__row{display:grid;grid-template-columns:140px 130px 110px 1fr 80px 42px;align-items:flex-end;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--glass-border, var(--border));border-radius:var(--radius-md, 10px);background:var(--surface-subtle, rgba(255, 255, 255, .02));transition:all .2s ease}.groups-slot-editor__row:hover{border-color:var(--accent-soft, var(--accent))}.groups-slot-editor__row label{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-xs, .8rem);color:var(--text-secondary);margin:0}.groups-slot-active{display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;height:40px;cursor:pointer;-webkit-user-select:none;user-select:none}.groups-slot-active input{accent-color:var(--accent);width:16px;height:16px}.groups-create-installments{margin-block-start:var(--sp-4);padding-block-start:var(--sp-4);border-block-start:1px dashed var(--border)}.groups-create-installments__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-block-end:var(--sp-3);flex-wrap:wrap}.groups-create-installments__head h4{margin:0;font-size:.95rem;font-weight:var(--font-weight-bold);color:var(--text-primary)}.groups-create-installments__head p{margin:4px 0 0;color:var(--text-secondary);font-size:var(--font-size-xs)}.groups-installments{display:flex;flex-direction:column;gap:var(--sp-2-5);margin-bottom:var(--sp-3)}.groups-installment-row{display:grid;grid-template-columns:1fr 140px 160px 42px;align-items:flex-end;gap:var(--sp-3);padding:var(--sp-2-5) var(--sp-3);border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-md);background:var(--surface-subtle)}#groupInstallmentTotal{font-weight:var(--font-weight-semibold);font-size:.9rem;color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface-subtle)}#groupInstallmentTotal.is-alert{color:var(--danger, #ef4444);background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.groups-student-search-bar{max-width:480px;margin-bottom:var(--sp-3)}.groups-wizard-students{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-2-5);max-height:420px;overflow-y:auto;padding:4px}.groups-wizard-student{display:flex;flex-direction:column;gap:8px;padding:var(--sp-3);border:1px solid var(--border-subtle, var(--border));border-radius:var(--radius-md, 8px);background:var(--surface-subtle);transition:all .15s ease}.groups-wizard-student.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.groups-wizard-student__identity{display:flex;align-items:center;gap:10px;cursor:pointer;margin:0}.groups-wizard-student__identity input{accent-color:var(--accent);width:17px;height:17px}.groups-wizard-student__identity span{display:flex;flex-direction:column}.groups-wizard-student__identity strong{font-size:.88rem;color:var(--text-primary)}.groups-wizard-student__identity small{font-size:.76rem;color:var(--text-tertiary)}.groups-wizard-student__pricing{display:grid;grid-template-columns:1fr 90px;gap:6px;margin-top:4px;padding-top:6px;border-top:1px dashed var(--border-subtle)}.groups-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-bottom:var(--sp-4)}.groups-choice-item{display:flex;align-items:flex-start;gap:10px;padding:var(--sp-3-5, 14px);border:1px solid var(--border);border-radius:var(--radius-md, 10px);background:var(--surface-subtle);cursor:pointer;transition:all .15s ease;margin:0}.groups-choice-item:hover{border-color:var(--accent-soft, var(--accent))}.groups-choice-item input{accent-color:var(--accent);margin-top:3px;width:16px;height:16px}.groups-choice-item span{display:flex;flex-direction:column;gap:2px}.groups-choice-item strong{font-size:.9rem;color:var(--text-primary)}.groups-choice-item small{font-size:.78rem;color:var(--text-secondary)}.groups-create-whatsapp{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-subtle)}.groups-create-whatsapp__link-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.groups-create-whatsapp__link-head h4{margin:0;font-size:.92rem;font-weight:var(--font-weight-bold)}.groups-create-whatsapp__link-head p{margin:2px 0 0;font-size:.78rem;color:var(--text-secondary)}.groups-wizard-review{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-3)}.groups-wizard-review section{padding:var(--sp-3-5, 14px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-subtle);display:flex;flex-direction:column;gap:4px}.groups-wizard-review section h4{margin:0;font-size:.78rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.groups-wizard-review section strong{font-size:1rem;color:var(--text-primary)}.groups-wizard-review section small{font-size:.8rem;color:var(--text-secondary)}.groups-create-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-4) var(--sp-6);border:1px solid var(--glass-border, var(--border));border-radius:var(--radius-lg, 12px);background:var(--glass-bg-strong, rgba(20, 20, 25, .85));position:sticky;bottom:var(--sp-3);z-index:30;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 -4px 20px #0000001f;margin-top:var(--sp-4)}.groups-create-actions__left{display:flex;align-items:center;gap:var(--sp-3)}.groups-create-actions__buttons{display:flex;align-items:center;gap:var(--sp-2-5, 10px);flex-wrap:wrap}.groups-create-actions__another{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm, .88rem);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.groups-create-actions__another input{accent-color:var(--accent);width:17px;height:17px}@media(max-width:1024px){.groups-form-grid{grid-template-columns:repeat(6,1fr)}.groups-field{grid-column:span 3}.groups-field--wide{grid-column:span 6}.groups-field--half{grid-column:span 3}.groups-field--full{grid-column:span 6}.groups-slot-editor__row{grid-template-columns:1fr 1fr;gap:10px}}@media(max-width:768px){.groups-create-section{padding:var(--sp-4)}.groups-form-grid{grid-template-columns:1fr}.groups-field,.groups-field--wide,.groups-field--half,.groups-field--full{grid-column:span 1}.groups-create-sections{position:static;grid-template-columns:repeat(3,1fr)}.groups-choice-grid,.groups-slot-editor__row{grid-template-columns:1fr}.groups-installment-row{grid-template-columns:1fr 1fr}.groups-create-actions{position:static;flex-direction:column;align-items:stretch;gap:var(--sp-3)}.groups-create-actions__buttons{width:100%;justify-content:stretch}.groups-create-actions__buttons .btn{flex:1}}}@layer components{#addStudentPage .add-student-form{width:100%}#addStudentPage .add-student-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1.15fr);gap:var(--sp-4);align-items:start}#addStudentPage .add-student-card{background:var(--glass-bg-strong, var(--surface));border:1px solid var(--glass-border, var(--border));border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:var(--sp-3)}#addStudentPage .add-student-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-block-end:var(--sp-3);border-block-end:1px solid var(--border-subtle, rgba(255, 255, 255, .08));margin-block-end:var(--sp-2)}#addStudentPage .add-student-card__title{display:flex;align-items:center;gap:var(--sp-2)}#addStudentPage .add-student-card__title i{color:var(--accent);font-size:var(--font-size-base);flex-shrink:0}#addStudentPage .add-student-card__title h3{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text-primary)}#addStudentPage .add-student-badge-hint{font-size:var(--font-size-xs);color:var(--text-secondary)}#addStudentPage .add-student-fields-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--sp-3)}#addStudentPage .add-student-fields-grid .form-group{display:flex;flex-direction:column;gap:var(--sp-1);margin-block-end:0}#addStudentPage .add-student-fields-grid .form-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-block-end:0}#addStudentPage .add-student-field--name{grid-column:span 7}#addStudentPage .add-student-field--code{grid-column:span 5}#addStudentPage .add-student-field--phone,#addStudentPage .add-student-field--guardian,#addStudentPage .add-student-field--stage,#addStudentPage .add-student-field--group,#addStudentPage .add-student-field--age,#addStudentPage .add-student-field--status{grid-column:span 6}#addStudentPage .input-icon-wrapper{position:relative;display:flex;align-items:center;width:100%}#addStudentPage .input-icon-wrapper .input-icon{position:absolute;inset-inline-start:var(--sp-3);inset-block-start:50%;transform:translateY(-50%);color:var(--text-muted);font-size:var(--font-size-sm);pointer-events:none;z-index:2;transition:color .15s ease}#addStudentPage .input-icon-wrapper:focus-within .input-icon{color:var(--accent)}#addStudentPage .input-icon-wrapper .glass-input{width:100%;padding-inline-start:calc(var(--sp-4) + var(--sp-3));height:42px}#addStudentPage .add-student-actions-bar{margin-block-start:var(--sp-3);padding-block-start:var(--sp-3);border-block-start:1px solid var(--border-subtle, rgba(255, 255, 255, .08))}#addStudentPage .add-student-actions-bar__content{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}#addStudentPage .add-student-actions-bar button#addStudentSubmitBtn{min-width:160px;height:44px}#addStudentPage .add-student-continuous-toggle{display:inline-flex;align-items:center}#addStudentPage .add-student-continuous-toggle .form-check-label{display:inline-flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}#addStudentPage .add-student-continuous-toggle .form-check-label:hover{color:var(--text-primary);background:var(--accent-soft, rgba(99, 102, 241, .08))}#addStudentPage .add-student-continuous-toggle .form-check-input{cursor:pointer;width:1.15rem;height:1.15rem;margin:0;accent-color:var(--accent)}#addStudentPage .student-relationship-section__hint{margin:0 0 var(--sp-2);color:var(--text-secondary);font-size:var(--font-size-xs);line-height:1.5}#addStudentPage .student-relationship-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}#addStudentPage .student-relationship-choice__item,#addStudentPage .student-relationship-reuse{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:all .15s ease}#addStudentPage .student-relationship-choice__item:hover,#addStudentPage .student-relationship-reuse:hover{border-color:var(--border-strong, rgba(255, 255, 255, .2))}#addStudentPage .student-relationship-choice__item:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}#addStudentPage .student-relationship-choice__item span,#addStudentPage .student-relationship-reuse span{display:grid;gap:1px;font-size:var(--font-size-xs)}#addStudentPage .student-relationship-choice__item small,#addStudentPage .student-relationship-reuse small{color:var(--text-secondary);font-size:.75rem}#addStudentPage .student-relationship-search,#addStudentPage .student-relationship-selected,#addStudentPage .student-current-siblings{margin-block-start:var(--sp-2)}#addStudentPage .student-relationship-search__field{position:relative}#addStudentPage .student-relationship-search__field>i{position:absolute;inset-inline-start:var(--sp-3);inset-block-start:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}#addStudentPage .student-relationship-search__field .glass-input{padding-inline-start:calc(var(--sp-5) + var(--sp-2));height:38px;font-size:var(--font-size-xs)}#addStudentPage .student-relationship-results,#addStudentPage .student-relationship-suggestions{display:grid;gap:var(--sp-2);margin-block-start:var(--sp-2);max-height:180px;overflow-y:auto}#addStudentPage .student-relationship-result,#addStudentPage .student-relationship-selected,#addStudentPage .student-current-sibling{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--font-size-xs)}#addStudentPage .student-relationship-result__identity{display:grid;gap:1px;min-width:0}#addStudentPage .student-relationship-result__identity strong{font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#addStudentPage .student-relationship-result__identity small{color:var(--text-secondary);font-size:.72rem}#addStudentPage .student-relationship-result__actions{display:flex;flex-wrap:wrap;gap:var(--sp-1)}#addStudentPage .student-relationship-reuse{margin-block-start:var(--sp-2)}#addStudentPage .student-current-siblings h5{margin:0 0 var(--sp-2);font-size:var(--font-size-xs)}#addStudentPage #currentSiblingsList{display:grid;gap:var(--sp-2)}#addStudentPage .add-student-quick-tip{margin-block-start:auto;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);background:var(--surface-subtle, rgba(255, 255, 255, .03));border:1px dashed var(--border-subtle, rgba(255, 255, 255, .12));display:flex;align-items:center;gap:var(--sp-2);font-size:.75rem;color:var(--text-secondary)}#addStudentPage .add-student-quick-tip i{color:var(--accent);font-size:var(--font-size-sm);flex-shrink:0}#addStudentPage .add-student-quick-tip code{background:var(--surface);padding:1px 4px;border-radius:var(--radius-xs);color:var(--accent);font-size:.75rem}@media(max-width:991px){#addStudentPage .add-student-layout{grid-template-columns:1fr}}@media(max-width:640px){#addStudentPage .add-student-fields-grid{grid-template-columns:1fr}#addStudentPage .add-student-field--name,#addStudentPage .add-student-field--code,#addStudentPage .add-student-field--phone,#addStudentPage .add-student-field--guardian,#addStudentPage .add-student-field--stage,#addStudentPage .add-student-field--group,#addStudentPage .add-student-field--age,#addStudentPage .add-student-field--status{grid-column:span 1!important}#addStudentPage .add-student-actions-bar__content{flex-direction:column;align-items:stretch}#addStudentPage .add-student-actions-bar button#addStudentSubmitBtn{width:100%}#addStudentPage .student-relationship-choice{grid-template-columns:1fr}#addStudentPage .student-relationship-result,#addStudentPage .student-relationship-selected,#addStudentPage .student-current-sibling{align-items:stretch;flex-direction:column}}}@layer pages{#studentWorkspacePage{gap:var(--sp-4)}.student-workspace-loading,.student-workspace-error{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);min-height:180px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-secondary)}.student-workspace-error{color:var(--danger)}.student-attention-items{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.student-attention-item{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-primary);cursor:pointer}.student-attention-item[data-severity=danger]{border-color:var(--danger)}.student-attention-item[data-severity=warning]{border-color:var(--warning)}.student-workspace-tabs{display:flex;gap:var(--sp-2);overflow-x:auto;padding:var(--sp-1);scrollbar-width:thin}.student-workspace-tabs button{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:max-content;padding:var(--sp-3) var(--sp-4);border:1px solid transparent;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);cursor:pointer}.student-workspace-tabs button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.student-workspace-surface{min-height:360px}.student-overview-summary,.student-workspace-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-3)}.student-summary-line,.student-workspace-card,.student-sibling-row,.student-note-row,.student-activity-row{padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.student-summary-line{display:grid;gap:var(--sp-1)}.student-summary-line span,.student-workspace-muted{color:var(--text-secondary);font-size:var(--font-size-sm)}.student-workspace-section-head,.student-sibling-row,.student-note-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.student-workspace-section-head{margin-block-end:var(--sp-4)}.student-workspace-section-head h3,.student-workspace-card h4{margin:0}.student-workspace-stack,.student-activity-list{display:grid;gap:var(--sp-3)}.student-workspace-card__meta{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-block-start:var(--sp-3)}.student-workspace-table{width:100%;border-collapse:collapse}.student-workspace-table th,.student-workspace-table td{padding:var(--sp-3);border-block-end:1px solid var(--border);text-align:start}.student-sibling-search{display:grid;gap:var(--sp-3);margin-block-end:var(--sp-4);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md)}.student-sibling-search__field{display:flex;gap:var(--sp-2)}.student-sibling-row__identity{display:grid;gap:var(--sp-1)}.student-activity-row{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3)}.student-activity-row i{color:var(--accent);margin-block-start:var(--sp-1)}.student-flags-list,.student-insights-strip{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.student-insights-strip{margin-block-start:var(--sp-3)}.student-flag{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-width:min(100%,260px);padding:var(--sp-3);border:1px solid var(--border);border-inline-start:3px solid var(--warning);border-radius:var(--radius-md);background:var(--surface)}.student-flag[data-severity=danger]{border-inline-start-color:var(--danger)}.student-flag[data-severity=info]{border-inline-start-color:var(--accent)}.student-flag span{display:grid;gap:var(--sp-1)}.student-flag-form,.student-note-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:var(--sp-2);margin-block-end:var(--sp-4);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}.student-note-form textarea{grid-column:1 / -1}.student-note-pin{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--text-secondary)}.student-note-row.is-pinned{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 6%,var(--surface))}.student-note-row>div{display:grid;gap:var(--sp-2)}@media(max-width:720px){.student-workspace-section-head,.student-sibling-row,.student-note-row,.student-sibling-search__field{align-items:stretch;flex-direction:column}.student-flag-form,.student-note-form{grid-template-columns:1fr}.student-workspace-table thead{display:none}.student-workspace-table tr{display:grid;padding:var(--sp-2) 0}.student-workspace-table td{border:0;padding:var(--sp-1) 0}}}@layer components{.id-cards-workspace__layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:var(--sp-4, 1rem);align-items:start}.id-cards-workspace__filters{display:flex;flex-wrap:wrap;gap:var(--sp-2, .5rem);align-items:center}.id-cards-workspace__filters .glass-input{min-width:160px}.id-cards-workspace__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2, .5rem);align-items:center}.id-cards-workspace__selection-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3, .75rem);padding:var(--sp-3, .75rem) var(--sp-4, 1rem);border:1px solid var(--border, #e2e8f0);border-radius:var(--radius-lg, .75rem);background:var(--surface-alt, rgba(255, 255, 255, .72));margin-bottom:var(--sp-3, .75rem)}.id-cards-workspace__selection-count{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary, #64748b)}.id-cards-workspace__table .student-id-card-checkbox{width:18px;height:18px;accent-color:var(--accent, #2563eb)}.id-cards-row--disabled{opacity:.72}.id-cards-workspace__preview-panel{position:sticky;top:calc(var(--header-height, 64px) + 12px);border:1px solid var(--border, #e2e8f0);border-radius:var(--radius-xl, 1rem);background:var(--surface, #fff);padding:var(--sp-4, 1rem);display:flex;flex-direction:column;gap:var(--sp-3, .75rem);min-height:320px}.id-cards-workspace__preview-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2, .5rem)}.id-cards-workspace__preview-title{margin:0;font-size:var(--font-size-base, 1rem);font-weight:700}.id-cards-workspace__preview-stage{display:flex;justify-content:center;align-items:center;min-height:220px;padding:var(--sp-3, .75rem);border-radius:var(--radius-lg, .75rem);background:linear-gradient(180deg,var(--canvas-alt, #f8fafc) 0%,var(--surface, #fff) 100%);overflow:auto}.id-cards-workspace__preview-card-host{display:flex;justify-content:center;align-items:center;width:100%}.id-cards-workspace__preview-card-host[hidden]{display:none!important}.id-cards-workspace__preview-card-host .student-id-card{transform:scale(1.15);transform-origin:top center;box-shadow:0 12px 30px #1e40af1f}.id-cards-workspace__preview-empty{text-align:center;color:var(--text-tertiary, #94a3b8);font-size:var(--font-size-sm, .875rem);padding:var(--sp-6, 1.5rem)}@media(max-width:1100px){.id-cards-workspace__layout{grid-template-columns:1fr}.id-cards-workspace__preview-panel{position:static}}@media(max-width:720px){.id-cards-workspace__filters .glass-input{width:100%;min-width:0}.id-cards-workspace__actions{width:100%}.id-cards-workspace__actions .btn{flex:1}}.student-id-card{width:85.6mm;height:54mm;background:#fff;border:1px dashed #cbd5e1;border-radius:3.2mm;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px #0f172a0a}.student-id-card__brand{display:flex;flex-direction:row;direction:ltr;align-items:center;justify-content:space-between;gap:2.8mm;padding:2.2mm 3.2mm;min-height:13mm;background:linear-gradient(90deg,#0a1628,#0f2438 52%,#0c4a4e);color:#fff;border-bottom:.35mm solid rgba(45,212,191,.35);-webkit-print-color-adjust:exact;print-color-adjust:exact}.student-id-card__brand-logo{width:10mm;height:10mm;border-radius:1.6mm;background:transparent;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center}.student-id-card__logo{width:100%;height:100%;object-fit:contain;display:block}.student-id-card__brand-copy{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.6mm;text-align:left;direction:ltr}.student-id-card__system-name{font-size:9.5pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1;color:#fff}.student-id-card__system-tagline{font-size:7.5pt;font-weight:600;line-height:1.1;letter-spacing:.03em;color:#fff}.student-id-card__body{flex:1;display:flex;flex-direction:column;align-items:stretch;padding:2.4mm 3.4mm 2.6mm;min-height:0;text-align:right;background:radial-gradient(circle at 50% 0%,rgba(13,148,136,.07),transparent 42%),#fff}.student-id-card__name{margin:0 0 1.8mm;font-size:12pt;line-height:1.15;font-weight:800;color:#0f172a;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-id-card__barcode-zone{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:1mm}.student-id-card__barcode{width:100%;background:#fff;border:.25mm solid #e2e8f0;border-radius:1.2mm;padding:1.2mm 1.6mm;min-height:15mm;display:flex;align-items:center;justify-content:center}.student-id-card__barcode svg{display:block;width:100%!important;height:auto!important;min-height:11mm;max-height:13mm}.student-id-card__barcode-text{margin:0;font-size:9.5pt;font-weight:800;letter-spacing:.12em;color:#000;font-family:Courier New,Courier,monospace;text-align:center}.student-id-card__no-code{margin:auto 0;font-size:8pt;color:#b45309;font-weight:600}}@layer pages{.account-workspace{display:flex;gap:var(--sp-6);align-items:flex-start;padding:var(--sp-4);min-height:calc(100vh - 120px)}.account-sidebar{width:270px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft);position:sticky;top:calc(var(--sp-4) + 60px)}.account-sidebar__header{padding:var(--sp-5);background:var(--canvas-alt);border-block-end:1px solid var(--border)}.account-sidebar__user{display:flex;align-items:center;gap:var(--sp-3)}.account-sidebar__avatar{width:46px;height:46px;border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--surface);box-shadow:var(--shadow-sm)}.account-sidebar__info{flex:1;min-width:0;display:flex;flex-direction:column}.account-sidebar__name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sidebar__role{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-nav{display:flex;flex-direction:column;padding:var(--sp-2);gap:var(--sp-1)}.account-nav__item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;transition:background-color var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out),border-color var(--duration-fast) var(--easing-out);border:1px solid transparent;cursor:pointer}.account-nav__item:hover:not(.is-active){background:var(--canvas-alt);color:var(--text-primary)}.account-nav__item.is-active{background:var(--accent-soft);color:var(--accent);font-weight:var(--font-weight-semibold);border-color:#4c6b7433}.account-nav__item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.account-nav__icon{font-size:var(--font-size-base);width:20px;text-align:center;flex-shrink:0}.account-nav__label{flex:1;min-width:0}.account-main{flex:1;min-width:0;max-width:960px;display:flex;flex-direction:column;gap:var(--sp-5)}.account-overview-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.account-overview-banner__user{display:flex;align-items:center;gap:var(--sp-4)}.account-overview-banner__avatar{width:64px;height:64px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--surface);box-shadow:var(--shadow-sm)}.account-overview-banner__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.account-overview-banner__subtitle{margin:var(--sp-1) 0 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.account-summary-card{transition:transform var(--duration-fast) var(--easing-smooth),box-shadow var(--duration-fast) var(--easing-smooth)}.account-summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.account-card-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);flex-shrink:0}.account-card-icon.icon-primary{background:var(--accent-soft);color:var(--accent)}.account-card-icon.icon-warning{background:var(--warning-soft);color:var(--warning)}.account-card-icon.icon-info{background:var(--info-soft);color:var(--info)}.account-card-icon.icon-success{background:var(--success-soft);color:var(--success)}.account-card-icon.icon-danger{background:var(--danger-soft);color:var(--danger)}.account-card-icon.icon-accent{background:#818cf826;color:#818cf8}.account-card-icon.icon-secondary{background:var(--canvas-alt);color:var(--text-secondary)}.account-info-list{display:flex;flex-direction:column;gap:var(--sp-3)}.account-info-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);gap:var(--sp-2)}.account-info-label{color:var(--text-secondary)}.account-info-value{color:var(--text-primary);font-weight:var(--font-weight-medium)}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}.settings-card__header{padding:var(--sp-5) var(--sp-6);border-block-end:1px solid var(--border)}.settings-card__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.settings-card__description{margin:var(--sp-1) 0 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.settings-card__body{padding:var(--sp-6)}.settings-field{margin-block-end:var(--sp-5)}.settings-field:last-child{margin-block-end:0}.settings-field--avatar{margin-block-end:var(--sp-6)}.settings-avatar-block{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);text-align:center}.teacher-profile-avatar-wrap{position:relative;width:100px;height:100px;display:inline-block}.teacher-profile-avatar{width:100px;height:100px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--surface);box-shadow:var(--shadow-md)}.teacher-profile-avatar-edit{position:absolute;bottom:0;right:0;width:32px;height:32px;background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast) var(--easing-spring)}.teacher-profile-avatar-edit:hover{transform:scale(1.1);background:var(--accent-hover)}.settings-avatar-actions{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:100%;max-width:280px}.settings-avatar-actions .form-text{margin:0;font-size:var(--font-size-xs);color:var(--text-tertiary)}.settings-form-actions{display:flex;flex-direction:row;justify-content:flex-end;gap:var(--sp-3);margin-block-start:var(--sp-6);padding-block-start:var(--sp-4);border-block-start:1px solid var(--border)}.settings-theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);max-width:600px}.theme-select-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-4);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--canvas-alt);cursor:pointer;font-family:inherit;color:var(--text-primary);transition:all var(--duration-fast) var(--easing-out);text-align:center;width:100%}.theme-select-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}[data-theme=light] .theme-select-card[data-theme-value=light],[data-theme=dark] .theme-select-card[data-theme-value=dark]{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px var(--accent-soft)}.theme-select-card__label{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.custom-otp-group{display:flex!important;flex-direction:row!important}.custom-otp-group .glass-input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--radius-md)!important;border-bottom-right-radius:var(--radius-md)!important;border-left:0!important}.custom-otp-group .btn{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-top-left-radius:var(--radius-md)!important;border-bottom-left-radius:var(--radius-md)!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:991px){.account-workspace{flex-direction:column;gap:var(--sp-4);padding:var(--sp-3)}.account-sidebar{width:100%;position:static}.account-sidebar__header{display:none}.account-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:var(--sp-2);gap:var(--sp-2)}.account-nav__item{white-space:nowrap;flex-shrink:0;padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-xs)}.account-grid{grid-template-columns:1fr}.account-main{max-width:100%}}@media(max-width:576px){.settings-card__header,.settings-card__body{padding:var(--sp-4)}.account-overview-banner{flex-direction:column;align-items:flex-start}.settings-theme-grid{grid-template-columns:1fr}.settings-form-actions{flex-direction:column}.settings-form-actions .btn{width:100%}}}@layer pages{.teacher-workspace{display:flex;flex-direction:column;gap:var(--sp-4);width:100%;min-height:0}.teacher-workspace__toolbar{display:flex;flex-direction:column;gap:var(--sp-3)}.teacher-workspace__main{display:grid;grid-template-columns:1fr;gap:var(--sp-4);min-height:0;position:relative}@media(min-width:1024px){.teacher-workspace[data-detail-open=true] .teacher-workspace__main{grid-template-columns:minmax(280px,360px) 1fr;align-items:start}}.teacher-workspace__list-pane{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.teacher-workspace[data-detail-open=true] .teacher-workspace__list-pane{max-height:calc(100vh - 280px);overflow-y:auto}.teacher-workspace__detail-pane{display:none;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.teacher-workspace[data-detail-open=true] .teacher-workspace__detail-pane{display:flex}.teacher-workspace__detail-pane[hidden]{display:none!important}.teacher-workspace[data-detail-open=true] .teacher-workspace__detail-pane:not([hidden]){display:flex}.teacher-workspace__empty{display:flex;align-items:center;justify-content:center;min-height:280px;padding:var(--sp-8);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-lg)}.teacher-workspace[data-detail-open=true] .teacher-workspace__empty{display:none}.workspace-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--border);background:var(--canvas-alt);flex-shrink:0}.workspace-detail-header__info{flex:1;min-width:0}.workspace-detail-header__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.workspace-detail-header__subtitle{margin:var(--sp-1) 0 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.workspace-detail-header__actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.workspace-detail-back{display:none;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--duration-fast) var(--easing-out)}.workspace-detail-back:hover{background:var(--canvas-alt);color:var(--text-primary)}@media(max-width:1023px){.teacher-workspace[data-detail-open=true] .teacher-workspace__list-pane{display:none}.teacher-workspace[data-detail-open=true] .teacher-workspace__main{grid-template-columns:1fr}.teacher-workspace[data-detail-open=true] .teacher-workspace__detail-pane{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-drawer, 1040);border-radius:0;border:none}.workspace-detail-back{display:inline-flex}}.workspace-detail-tabs{display:flex;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);border-block-end:1px solid var(--border);overflow-x:auto;flex-shrink:0}.workspace-detail-tab{padding:var(--sp-2) var(--sp-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--easing-out),color var(--duration-fast) var(--easing-out)}.workspace-detail-tab:hover{background:var(--canvas-alt);color:var(--text-primary)}.workspace-detail-tab.is-active{background:var(--accent-soft);color:var(--accent)}.workspace-detail-body{flex:1;overflow-y:auto;padding:var(--sp-5);min-height:0}.workspace-detail-section{display:none}.workspace-detail-section.is-active{display:block}.workspace-result-count{font-size:var(--font-size-sm);color:var(--text-tertiary);padding-inline:var(--sp-1)}}@layer pages{.workspace-list{display:flex;flex-direction:column;gap:var(--sp-2)}.workspace-list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--sp-3)}.workspace-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out),background var(--duration-fast) var(--easing-out);position:relative}.workspace-item:hover{border-color:var(--accent);box-shadow:var(--shadow-soft);background:var(--canvas-alt)}.workspace-item.is-active,.workspace-item.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.workspace-item__icon{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg)}.workspace-item__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.workspace-item__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.workspace-item__title{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:1.4}.workspace-item__meta{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0}.workspace-item__badges{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-block-start:var(--sp-1)}.workspace-item__stat{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);white-space:nowrap}.workspace-item__actions{flex-shrink:0;align-self:center;opacity:0;transition:opacity var(--duration-fast) var(--easing-out)}.workspace-item:hover .workspace-item__actions,.workspace-item.is-active .workspace-item__actions,.workspace-item.active .workspace-item__actions{opacity:1}.workspace-card{display:flex;flex-direction:column;padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out);min-height:140px}.workspace-card:hover{border-color:var(--accent);box-shadow:var(--shadow-soft)}.workspace-card.is-active,.workspace-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.workspace-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);margin-block-end:var(--sp-3)}.workspace-card__title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.workspace-card__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-block-start:auto;padding-block-start:var(--sp-3);border-block-start:1px solid var(--border)}.workspace-card__stats{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:var(--font-size-xs);color:var(--text-secondary)}.workspace-card__stat{display:flex;align-items:center;gap:var(--sp-1)}.workspace-item--skeleton{pointer-events:none;cursor:default}.workspace-item--skeleton .skeleton-line{height:12px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--canvas-alt) 25%,var(--border) 50%,var(--canvas-alt) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.workspace-list--loading{pointer-events:none}.workspace-list--grid.workspace-list--loading{display:grid}}@layer pages{.detail-meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:var(--sp-3);margin-block-end:var(--sp-5)}.detail-meta-item{padding:var(--sp-3) var(--sp-4);background:var(--canvas-alt);border:1px solid var(--border);border-radius:var(--radius-md)}.detail-meta-item__label{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-block-end:var(--sp-1)}.detail-meta-item__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.detail-settings-list{display:flex;flex-direction:column;gap:var(--sp-2)}.detail-settings-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm);color:var(--text-secondary);border-radius:var(--radius-sm)}.detail-settings-item i.text-success{color:var(--success)}.detail-settings-item i.text-danger{color:var(--danger)}.detail-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--sp-3);text-transform:uppercase;letter-spacing:.03em}.detail-actions-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding-block-start:var(--sp-4);margin-block-start:var(--sp-4);border-block-start:1px solid var(--border)}}@layer animations{@keyframes fadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes modalBGIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn var(--duration-normal) var(--easing-entrance)}.animate-fade-up{animation:fadeInUp var(--duration-normal) var(--easing-entrance)}.animate-fade-down{animation:fadeInDown var(--duration-normal) var(--easing-entrance)}.animate-slide-right{animation:slideInRight var(--duration-normal) var(--easing-entrance)}.animate-slide-left{animation:slideInLeft var(--duration-normal) var(--easing-entrance)}.animate-slide-up{animation:slideInUp var(--duration-normal) var(--easing-out)}.animate-scale{animation:scaleIn var(--duration-normal) var(--easing-entrance)}.animate-spin{animation:spin 1s linear infinite}}.skeleton-table{display:flex;flex-direction:column;gap:var(--sp-2, .5rem);padding:var(--sp-4, 1rem);width:100%}.skeleton-row{display:flex;gap:var(--sp-3, .75rem);align-items:center;padding:var(--sp-3, .75rem) var(--sp-4, 1rem);border-radius:var(--radius-md, .5rem);background:var(--color-surface-2, rgba(255,255,255,.04));min-height:3rem}.skeleton-cell{height:.875rem;border-radius:var(--radius-sm, .25rem);background:linear-gradient(90deg,var(--color-surface-3, rgba(255,255,255,.08)) 25%,var(--color-surface-4, rgba(255,255,255,.16)) 50%,var(--color-surface-3, rgba(255,255,255,.08)) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;flex-shrink:0}.skeleton-cell--sm{width:4rem}.skeleton-cell--md{width:7rem}.skeleton-cell--lg{width:12rem;flex-grow:1}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton-cell{animation:none;background:var(--color-surface-3, rgba(255,255,255,.08))}}.table-row--skeleton{pointer-events:none}.table-row--skeleton td{padding:var(--sp-3, .75rem) var(--sp-4, 1rem);vertical-align:middle}.list-container--refreshing{position:relative}.list-container--refreshing:before{content:"";position:absolute;top:.5rem;inset-inline-end:.5rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--color-primary, #6366f1);opacity:.85;animation:list-refresh-pulse 1.2s ease-in-out infinite;z-index:2;pointer-events:none}@keyframes list-refresh-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.table-row--action-loading{opacity:.85}.table-row--action-loading .dropdown-toggle{opacity:.6;pointer-events:none;cursor:wait}@layer responsive{@media(max-width:1280px){.container{padding:var(--sp-5)}.card-container{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:1024px){body.teachers-shell .main-content{margin-inline-start:0;margin-inline-end:0;padding:var(--sp-4);padding-block-start:calc(var(--header-height, 64px) + var(--sp-6))}body.teachers-shell .app-header{inset-inline-start:var(--sp-4);inset-inline-end:var(--sp-4);inset-block-start:var(--sp-4)}.header-container{inset-inline-start:0}.modal-xl .modal-content{max-width:90%}.modal-full .modal-content{width:calc(100% - var(--sp-4));margin:var(--sp-2)}}@media(max-width:768px){.container{padding:var(--sp-4);margin:var(--sp-4) auto}.card-container{grid-template-columns:1fr}.main-content{padding:var(--sp-4)}.header-container{padding:0 var(--sp-4)}.form-row{flex-direction:column;gap:var(--sp-3)}.filter-group{flex-direction:column;align-items:stretch}.filter-group input,.filter-group select{width:100%;min-width:0}.table-responsive{overflow-x:auto}table{font-size:var(--font-size-sm)}th,td{padding:var(--sp-2) var(--sp-3)}.toast-container{top:var(--sp-3);inset-inline:var(--sp-3)}.toast{min-width:0;max-width:none}.modal-content{max-width:95%;margin:var(--sp-3)}.store-list{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.search-container{max-width:none}.providers-list{grid-template-columns:1fr}.stores-content,.stores-modal,.messages-container{padding:var(--sp-4)}}@media(max-width:640px){.container,.main-content{padding:var(--sp-3)}.header-container{height:48px;padding:0 var(--sp-3)}.header-title{font-size:var(--font-size-base)}.btn{padding:var(--sp-2) var(--sp-4);font-size:var(--font-size-xs)}.btn-lg{padding:var(--sp-3) var(--sp-5);font-size:var(--font-size-sm)}.btn-floating{width:44px;height:44px;font-size:var(--icon-lg)}.modal-content{padding:0;border-radius:var(--radius-lg)}.modal-header,.modal-body{padding:var(--sp-4)}.modal-footer{padding:var(--sp-3) var(--sp-4)}.card-body{padding:var(--sp-4)}h1{font-size:var(--font-size-2xl)}h2,.stat-card .stat-value{font-size:var(--font-size-xl)}.toast-container{top:var(--sp-2);inset-inline:var(--sp-2)}.toast{padding:var(--sp-2) var(--sp-3)}.swal2-toast{margin-bottom:var(--sp-2)!important}}@media(max-width:480px){.container{padding:var(--sp-3);margin:var(--sp-3) auto}.main-content,.header-container{padding:var(--sp-3)}.btn{padding:var(--sp-2) var(--sp-4);font-size:var(--font-size-sm)}.modal-content{padding:var(--sp-3)}.stores-header{flex-direction:column;gap:var(--sp-3)}}@media(max-width:1024px){.items-table .col-barcode,.items-table .col-category{display:none}.item-name-main{max-width:120px}}@media(max-width:768px){.items-table .col-prices,.items-table .col-qty{display:none}.item-name-main{max-width:100px}.col-item{min-width:140px}.modal-images-gallery{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media(max-width:480px){.col-item{min-width:100px}.item-name-main{max-width:80px}.image-preview-close{top:var(--sp-2);inset-inline-end:var(--sp-3);font-size:2rem}}}@layer utilities{.text-center{text-align:center}.text-left{text-align:start}.text-right{text-align:end}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-select{-webkit-user-select:none;user-select:none}.pointer{cursor:pointer}.hidden{display:none}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-wrap{display:flex;flex-wrap:wrap}.flex-1{flex:1}.shrink-0{flex-shrink:0}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.gap-8{gap:var(--sp-8)}.p-1{padding:var(--sp-1)}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.p-6{padding:var(--sp-6)}.p-8{padding:var(--sp-8)}.px-2{padding-inline:var(--sp-2)}.px-3{padding-inline:var(--sp-3)}.px-4{padding-inline:var(--sp-4)}.px-6{padding-inline:var(--sp-6)}.py-2{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.py-3{padding-top:var(--sp-3);padding-bottom:var(--sp-3)}.py-4{padding-top:var(--sp-4);padding-bottom:var(--sp-4)}.py-6{padding-top:var(--sp-6);padding-bottom:var(--sp-6)}.m-0{margin:0}.mt-1{margin-top:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.mb-0{margin-bottom:0}.mis-2{margin-inline-start:var(--sp-2)}.mie-2{margin-inline-end:var(--sp-2)}.w-full{width:100%}.h-full{height:100%}.scroll-y{overflow-y:auto;overscroll-behavior:contain}.scroll-x{overflow-x:auto;overscroll-behavior:contain}.text-secondary{color:var(--text-secondary)}.icon-xs{font-size:var(--icon-xs)}.icon-primary{color:var(--accent)}.icon-success{color:var(--success)}.icon-danger{color:var(--danger)}.icon-warning{color:var(--warning)}.icon-info{color:var(--info)}.icon-muted{color:var(--text-tertiary)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.text-white{color:var(--text-on-accent)}.text-primary{color:var(--accent)}.text-danger{color:var(--danger)}.text-muted{color:var(--text-tertiary)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-secondary-color{color:var(--text-secondary)}.glass-ultrathin{background:var(--material-ultrathin-bg);box-shadow:var(--material-ultrathin-edge);background-image:var(--material-ultrathin-refraction),var(--material-ultrathin-noise)}.glass-thin{background:var(--material-thin-bg);box-shadow:var(--material-thin-combined),var(--material-thin-shadow);background-image:var(--material-thin-refraction),var(--material-thin-noise)}.glass-regular{background:var(--material-regular-bg);box-shadow:var(--material-regular-combined),var(--material-regular-shadow);background-image:var(--material-regular-refraction),var(--material-regular-noise)}.glass-floating{background:var(--material-floating-bg);box-shadow:var(--material-floating-combined),var(--material-floating-shadow);background-image:var(--material-floating-refraction),var(--material-floating-noise)}.glass-card{background:var(--material-card-bg);box-shadow:var(--material-card-combined),var(--material-card-shadow);background-image:var(--material-card-refraction),var(--material-card-noise)}.swal2-icon-success{color:var(--success);border-color:var(--success)}.swal2-icon-error{color:var(--danger);border-color:var(--danger)}.swal2-icon-warning{color:var(--warning);border-color:var(--warning)}.swal2-icon-info{color:var(--info);border-color:var(--info)}.swal2-icon-question{color:var(--accent);border-color:var(--accent)}.section-spacer{margin-block-start:var(--sp-6)}.section-spacer-sm{margin-block-start:var(--sp-4)}}@layer utilities{.block{display:block!important}.row{display:flex;flex-wrap:wrap;margin-inline:calc(var(--sp-3) * -1)}.row>*{padding-inline:var(--sp-3);flex-shrink:0;width:100%;max-width:100%}.g-2>*,.g-3>*,.g-4>*{padding-inline:var(--sp-3);margin-block-end:var(--sp-3)}.col-3{flex:0 0 25%;max-width:25%}.col-12{flex:0 0 100%;max-width:100%}@media(min-width:768px){.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}}@media(min-width:992px){.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}}.invalid-feedback{display:none;font-size:var(--font-size-xs);color:var(--danger);margin-block-start:var(--sp-1)}.invalid-feedback:not(.hidden){display:block}.spinner-border{display:inline-block;width:2rem;height:2rem;border:.25em solid var(--accent-soft);border-inline-end-color:var(--accent);border-radius:50%;animation:teachers-spinner .75s linear infinite}@keyframes teachers-spinner{to{transform:rotate(360deg)}}.list-group{display:flex;flex-direction:column;padding:0;margin:0;list-style:none;border-radius:var(--radius-md)}.list-group-item{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);background:var(--surface);color:var(--text-primary)}.list-group-item-action{cursor:pointer;font-family:inherit;font-size:inherit;text-align:start;width:100%}.list-group-item-action:hover{background:var(--accent-soft)}.progress{height:1rem;background:var(--canvas-alt);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background:var(--accent);transition:width var(--duration-normal) var(--easing-out)}.nav-tabs{display:flex;flex-wrap:wrap;padding:0;margin:0;list-style:none;border-bottom:1px solid var(--border);gap:var(--sp-1)}.nav-link{display:block;padding:var(--sp-2) var(--sp-4);color:var(--text-secondary);text-decoration:none;border:1px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;background:none;font-family:inherit;font-size:inherit}.nav-link:hover{color:var(--accent)}.nav-link.active{color:var(--accent);background:var(--surface);border-color:var(--border) var(--border) var(--surface)}.tab-pane{display:none}.tab-pane.show.active,.tab-pane.active{display:block}}@layer utilities{:root[dir=rtl] .icon-back,[dir=rtl] .icon-back{transform:scaleX(1)}:root[dir=ltr] .icon-back,[dir=ltr] .icon-back{transform:scaleX(-1)}:root[dir=rtl] .icon-forward,:root[dir=rtl] .icon-next,[dir=rtl] .icon-forward,[dir=rtl] .icon-next{transform:scaleX(1)}:root[dir=ltr] .icon-forward,:root[dir=ltr] .icon-next,[dir=ltr] .icon-forward,[dir=ltr] .icon-next{transform:scaleX(-1)}:root[dir=rtl] .icon-flip-rtl,[dir=rtl] .icon-flip-rtl{transform:scaleX(-1)}:root[dir=ltr] .icon-flip-ltr,[dir=ltr] .icon-flip-ltr{transform:scaleX(-1)}:root[dir=rtl] .hover-move-forward:hover i,[dir=rtl] .hover-move-forward:hover i{transform:translate(-4px)}:root[dir=ltr] .hover-move-forward:hover i,[dir=ltr] .hover-move-forward:hover i{transform:translate(4px)}:root[dir=rtl] .hover-move-back:hover i,[dir=rtl] .hover-move-back:hover i{transform:translate(4px)}:root[dir=ltr] .hover-move-back:hover i,[dir=ltr] .hover-move-back:hover i{transform:translate(-4px)}@keyframes toastSlideInRtl{0%{opacity:0;transform:translate(-16px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOutRtl{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-16px) scale(.96)}}.toast{animation-name:toastSlideInRtl}.toast.exiting{animation-name:toastSlideOutRtl}[data-tooltip-left]:after,[data-tooltip-start]:after{inset-inline-start:auto;inset-inline-end:calc(100% + 6px)}[data-tooltip-right]:after,[data-tooltip-end]:after{inset-inline-end:auto;inset-inline-start:calc(100% + 6px)}}
