@charset "UTF-8";:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=light]{--bg-primary: #f0f7fc;--bg-secondary: #e3f2fd;--bg-glass: rgba(255, 255, 255, .7);--bg-glass-hover: rgba(255, 255, 255, .85);--text-primary: #0d1b2a;--text-secondary: #415a77;--text-muted: #778da9;--accent-primary: #0ea5e9;--accent-secondary: #06b6d4;--accent-success: #10b981;--accent-warning: #f59e0b;--accent-danger: #ef4444;--accent-info: #0ea5e9;--border-color: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .12);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--blur-sm: blur(4px);--blur-md: blur(12px);--blur-lg: blur(24px);--control-height: 40px}[data-theme=dark]{--bg-primary: #0d1b2a;--bg-secondary: #1b263b;--bg-glass: rgba(27, 38, 59, .7);--bg-glass-hover: rgba(27, 38, 59, .85);--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--accent-primary: #0ea5e9;--accent-secondary: #06b6d4;--accent-success: #34d399;--accent-warning: #fbbf24;--accent-danger: #f87171;--accent-info: #0ea5e9;--border-color: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .12);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6);--blur-sm: blur(4px);--blur-md: blur(12px);--blur-lg: blur(24px)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow-x:hidden}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}#root{width:100%;height:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-secondary)}a{color:var(--accent-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-secondary)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;line-height:1.3}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{color:var(--text-secondary);line-height:1.6}button{font-family:inherit;font-size:.95rem;font-weight:500;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.25rem;transition:all .2s ease;background:var(--accent-primary);color:#fff}button:hover{background:var(--accent-secondary);transform:translateY(-1px);box-shadow:var(--shadow-md)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:.95rem;padding:.65rem 1rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-glass);color:var(--text-primary);transition:all .2s ease;-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f11a}.card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-lg);transition:all .3s ease}.card:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);box-shadow:var(--shadow-xl);transform:translateY(-2px)}.inline-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.15);border-top-color:#ffffffe6;border-radius:50%;display:inline-block;margin-right:8px;animation:spin .8s linear infinite}.btn-loading{opacity:.85;pointer-events:none}.search-box{display:flex;align-items:center;gap:8px;padding:0 .75rem;border-radius:10px;background:var(--bg-glass);border:1px solid var(--border-color);height:var(--control-height)}.search-box input{border:none;background:transparent;flex:1;padding:0 .25rem;height:100%}.search-section>.icon-btn,.search-box+.icon-btn,.search-box~.icon-btn,.search-area>.icon-btn{width:var(--control-height);height:var(--control-height);padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#0ea5e914;border:1px solid rgba(14,165,233,.15);color:var(--accent-primary);cursor:pointer;transition:all .15s ease}.search-section>.icon-btn:hover,.search-box+.icon-btn:hover,.search-box~.icon-btn:hover,.search-area>.icon-btn:hover{background:#0ea5e926;transform:translateY(-1px);box-shadow:0 2px 8px #0ea5e933}.loading-container{display:flex;align-items:center;gap:12px;justify-content:center;padding:1rem;color:var(--text-muted)}.spinner{width:28px;height:28px;border:3px solid rgba(0,0,0,.08);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .9s linear infinite}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000000a;pointer-events:none}.modal-overlay{position:fixed!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#0009!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;z-index:10050!important}.modal-content,.group-manager,.call-modal,.chat-window{z-index:10060!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.group-manager-header,.chat-window-header,.call-header,.modal-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--bg-primary)!important}.topbar{position:fixed;top:0;left:0;right:0;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border-bottom:1px solid var(--border-color);z-index:1000;transition:all .3s ease}.topbar-left{display:flex;align-items:center;gap:.75rem;flex:0 0 auto;justify-content:flex-start}.sidebar-toggle-btn{width:42px;height:42px;border-radius:50%;background:transparent;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;padding:0}.sidebar-toggle-btn:hover{background:var(--bg-glass);border-color:var(--border-hover);color:var(--accent-primary);transform:translateY(0);box-shadow:var(--shadow-sm)}.logo{display:flex;align-items:center;gap:.5rem;cursor:pointer;flex-shrink:0;width:46px}.logo-icon{width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.7rem;box-shadow:var(--shadow-md);flex-shrink:0}.logo-image{width:32px;height:32px;border-radius:6px;object-fit:cover;box-shadow:var(--shadow-md);flex-shrink:0}.logo-text{font-size:1rem;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap;line-height:1}.topbar-center{flex:1;display:flex;justify-content:center;max-width:600px;margin:0 2rem}.search-container{width:100%;position:relative;display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);border:1px solid var(--border-color);border-radius:12px;transition:all .3s ease}.search-container:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f11a}.search-container svg{color:var(--text-muted)}.search-input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:.95rem;padding:0;outline:none}.search-input::placeholder{color:var(--text-muted)}.topbar-right{display:flex;align-items:center;gap:1rem;flex:0 0 auto}.icon-btn{width:42px;height:42px;border-radius:50%;background:transparent;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;padding:0}.icon-btn:hover{background:var(--bg-glass);border-color:var(--border-hover);color:var(--accent-primary);transform:translateY(0);box-shadow:var(--shadow-sm)}.notification-wrapper,.profile-wrapper,.notification-btn{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:var(--accent-danger);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;font-weight:600;border:2px solid var(--bg-primary)}.profile-btn{display:flex;align-items:center;gap:.75rem;padding:.35rem .5rem;background:transparent;border:1px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease}.profile-btn:hover{background:var(--bg-glass);border-color:var(--border-hover);transform:translateY(0);box-shadow:var(--shadow-sm)}.profile-btn .avatar{width:36px;height:36px;border-radius:50%!important;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff}.profile-info{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}.profile-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.profile-role{font-size:.75rem;color:var(--text-muted)}.notification-dropdown,.profile-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:320px;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);padding:.5rem;animation:dropdownSlide .2s ease}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.profile-dropdown{min-width:200px}.dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.dropdown-header h4{font-size:1rem;font-weight:600;color:var(--text-primary)}.text-btn{background:transparent;border:none;color:var(--accent-primary);font-size:.85rem;cursor:pointer;padding:.25rem .5rem}.notification-list{max-height:400px;overflow-y:auto}.notification-item{padding:1rem;border-radius:8px;cursor:pointer;transition:background .2s ease;border-left:3px solid transparent}.notification-item:hover{background:var(--bg-glass-hover)}.notification-item.unread{border-left-color:var(--accent-primary);background:#6366f10d}.notification-content{display:flex;flex-direction:column;gap:.35rem}.notification-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}.notification-desc{font-size:.85rem;color:var(--text-secondary)}.notification-time{font-size:.75rem;color:var(--text-muted)}.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s ease;color:var(--text-secondary);font-size:.9rem}.dropdown-item:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.dropdown-item.danger{color:var(--accent-danger)}.dropdown-item.danger:hover{background:#ef44441a}.dropdown-divider{height:1px;background:var(--border-color);margin:.5rem 0}@media(max-width:960px){.topbar{padding:0 1rem}.topbar-center{margin:0 1rem}.profile-info{display:none}.search-container{padding:.5rem 1rem}}@media(max-width:720px){.topbar-center,.logo-text{display:none}.notification-dropdown{right:-100px}}.sidebar{position:fixed;left:0;top:70px;bottom:60px;width:280px;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border-right:1px solid var(--border-color);transition:transform .3s ease;z-index:900;overflow-y:auto;overflow-x:hidden}.sidebar.closed{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-nav{padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}.nav-item-wrapper{display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-radius:12px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;text-decoration:none;border:1px solid transparent}.nav-item:hover{background:var(--bg-glass-hover);color:var(--text-primary);border-color:var(--border-hover)}.nav-item.active{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:var(--shadow-md)}.nav-item.with-submenu{background:transparent}.nav-item.with-submenu:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.nav-item-content{display:flex;align-items:center;gap:.85rem}.nav-label{font-size:.95rem;font-weight:500}.submenu{display:flex;flex-direction:column;gap:.25rem;margin-left:2.5rem;padding-left:1rem;border-left:2px solid var(--border-color);animation:submenuSlide .2s ease}@keyframes submenuSlide{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.submenu-item{padding:.65rem 1rem;border-radius:8px;color:var(--text-muted);font-size:.9rem;cursor:pointer;transition:all .2s ease;text-decoration:none}.submenu-item:hover{background:var(--bg-glass-hover);color:var(--text-primary);padding-left:1.25rem}.submenu-item.active{background:#6366f126;color:var(--accent-primary);font-weight:500;border-left:3px solid var(--accent-primary);padding-left:1.25rem}.sidebar-overlay{display:none}@media(min-width:1280px){.sidebar-overlay{display:none}}@media(max-width:1279px){.sidebar.closed{transform:translate(-100%)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:850;animation:overlayFade .3s ease}@keyframes overlayFade{0%{opacity:0}to{opacity:1}}}@media(max-width:720px){.sidebar{width:260px}}.bottombar{position:fixed;bottom:0;left:0;right:0;height:60px;display:flex;align-items:center;justify-content:center;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border-top:1px solid var(--border-color);z-index:1000;padding:0 2rem}.bottombar-content{width:100%;max-width:1400px;display:flex;align-items:center;justify-content:space-between}.bottombar-left,.bottombar-center,.bottombar-right{flex:1;display:flex;align-items:center}.bottombar-center{justify-content:center}.bottombar-center{position:absolute;left:50%;transform:translate(-50%);top:0;height:100%;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:auto}.bottombar-right{position:absolute;right:1.25rem;top:0;height:100%;display:flex;align-items:center;justify-content:flex-end;pointer-events:auto}.copyright{font-size:.85rem;color:var(--text-muted);display:flex;align-items:center;gap:.35rem}.heart-icon{color:var(--accent-danger);animation:heartbeat 1.5s ease infinite}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.quick-links{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.quick-links a{color:var(--text-muted);transition:color .2s ease;font-weight:500}.quick-links a:hover{color:var(--accent-primary)}.separator{color:var(--text-muted);opacity:.5}.chat-panel{position:relative}.chat-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;font-size:.9rem;font-weight:500}.chat-toggle:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.chat-toggle.expanded{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.online-badge{background:var(--accent-danger);color:#fff;font-size:.75rem;padding:.1rem .4rem;border-radius:10px;font-weight:600}.chat-user-list{position:absolute;bottom:100%;right:0;margin-bottom:.5rem;width:420px;max-height:700px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;overflow:hidden}.chat-header{padding:1rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.chat-tabs{display:flex;gap:.5rem;flex:1}.chat-tabs .tab{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s ease;font-size:.85rem;font-weight:500}.chat-tabs .tab:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--text-primary)}.chat-tabs .tab.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.close-btn{padding:.4rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.chat-status{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.status-indicator{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.status-indicator.connected .status-dot{background:var(--accent-success)}.status-indicator.connecting .status-dot,.status-indicator.reconnecting .status-dot{background:#f59e0b;animation:blink 1s ease infinite}.status-indicator.disconnected .status-dot{background:var(--accent-danger)}.status-indicator.connected .status-text{color:var(--accent-success)}.status-indicator.connecting .status-text,.status-indicator.reconnecting .status-text{color:#f59e0b}.status-indicator.disconnected .status-text{color:var(--accent-danger)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s ease infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 currentColor}50%{opacity:.8;box-shadow:0 0 0 4px transparent}}.status-text{font-weight:500}.user-list-content{flex:1;overflow-y:auto;padding:.5rem}.user-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.user-item:hover{background:var(--bg-hover)}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;position:relative}.presence-dot{position:absolute;width:10px;height:10px;border-radius:50%;right:-2px;bottom:-2px;border:2px solid var(--bg-primary);box-shadow:0 0 0 2px #0000000a}.presence-dot.online{background:var(--accent-success)}.presence-dot.offline{background:var(--text-muted)}.group-avatar{background:var(--accent-secondary)}.user-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.user-top{display:flex;align-items:center;gap:.5rem}.user-top .user-name{flex:1 1 auto;min-width:0}.user-roles{margin-left:.5rem;display:flex;gap:.35rem;align-items:center;flex-wrap:nowrap}.user-name{font-weight:600;color:var(--text-primary);font-size:.9rem}.user-name.online{color:var(--accent-success)}.user-status{font-size:.8rem;color:var(--text-muted)}.user-status.online{color:var(--accent-success)}.user-status.offline{color:var(--text-muted)}.user-login-id{font-size:.78rem;color:var(--text-muted);margin-top:.05rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-roles{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.role-badge{background:#0000000f;color:var(--text-muted);font-size:.72rem;padding:.12rem .45rem;border-radius:6px;font-weight:600;white-space:nowrap}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text-muted);text-align:center}.empty-state p{font-size:.9rem}.groups-header{padding:.5rem;border-bottom:1px solid var(--border-color);margin-bottom:.5rem}.manage-groups-btn,.create-group-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.85rem}.manage-groups-btn:hover,.create-group-btn:hover{background:var(--accent-primary-dark);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1000}@media(max-width:960px){.bottombar{padding:0 1rem}.bottombar-center{display:none}.chat-user-list{width:360px}}@media(max-width:720px){.bottombar-content{justify-content:space-between}.bottombar-left{flex:0}.copyright{font-size:.75rem}.chat-user-list{width:calc(100vw - 2rem);right:0;left:auto;transform:none;margin-right:.5rem;max-width:calc(100% - 1rem)}.chat-toggle span{display:none}.bottombar-right{position:static;right:auto;top:auto;height:auto}}.chat-window:before{content:"";position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:-1;pointer-events:none}.chat-window{position:fixed;top:50%;left:50%;width:600px;height:700px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;z-index:999;overflow:hidden;cursor:move;transition:all .2s ease}.chat-window.minimized{width:520px;height:auto;inset:auto 20px 10px auto;transform:none!important;cursor:default;box-shadow:0 8px 24px #0003;z-index:1001}.chat-window.minimized:before{display:none}.chat-window.minimized .chat-window-header{border-bottom:none}.chat-window.minimized .chat-messages,.chat-window.minimized .chat-input-container{display:none}.chat-window.drag-over{border:2px dashed var(--accent-primary);background:#3b82f60d}.chat-window.drag-over:after{content:"📎 Drop file to upload";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--accent-primary);color:#fff;padding:2rem 3rem;border-radius:12px;font-size:1.2rem;font-weight:600;box-shadow:0 4px 12px #3b82f666;z-index:10000;pointer-events:none}.chat-window-header{padding:1rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);cursor:move;-webkit-user-select:none;user-select:none}.chat-info{display:flex;align-items:center;gap:.75rem;flex:1}.chat-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.chat-details{display:flex;flex-direction:column;gap:.2rem}.chat-details h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.typing-indicator{font-size:.75rem;color:var(--accent-primary);font-style:italic}.chat-actions{display:flex;align-items:center;gap:.5rem;cursor:auto}.action-btn{padding:.5rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.restore-icon{transform:rotate(180deg)}.menu-container{position:relative}.dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0003;min-width:160px;z-index:1000;overflow:hidden}.menu-item{width:100%;padding:.75rem 1rem;background:transparent;border:none;color:var(--text-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;font-size:.9rem;text-align:left}.menu-item:hover{background:var(--bg-hover)}.menu-item.danger{color:var(--accent-danger)}.menu-item.danger:hover{background:#ef44441a}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.empty-messages{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);text-align:center}.message{display:flex;flex-direction:column;gap:.25rem;max-width:75%}.message.own{align-self:flex-end;align-items:flex-end}.message.other{align-self:flex-start;align-items:flex-start}.message-sender{font-size:.75rem;color:var(--text-muted);font-weight:500;margin-bottom:.2rem}.sender-role{font-size:.7rem;color:var(--accent-primary);font-weight:400;margin-left:.25rem;font-style:italic}.message-bubble{background:var(--bg-secondary);padding:.75rem 1rem;border-radius:12px;position:relative}.message.own .message-bubble{background:var(--accent-primary);color:#fff}.message-text{font-size:.9rem;line-height:1.4;word-wrap:break-word}.message-image{position:relative;max-width:300px;border-radius:8px;overflow:hidden}.message-image img{width:100%;height:auto;max-height:400px;object-fit:cover;border-radius:8px;display:block;cursor:pointer;transition:transform .2s ease}.message-image img:hover{transform:scale(1.02)}.message-image .download-btn{position:absolute;top:8px;right:8px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.5rem;border-radius:50%;opacity:0;transition:opacity .2s ease;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.message-image .download-btn:hover{background:#000c}.message-image:hover .download-btn{opacity:1}.message-video{position:relative;max-width:300px;border-radius:8px}.message-video video{width:100%;max-height:400px;border-radius:8px;display:block}.message-video .download-btn{position:absolute;top:8px;right:8px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.5rem;border-radius:50%;opacity:0;transition:opacity .2s ease;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.message-video .download-btn:hover{background:#000c}.message-video:hover .download-btn{opacity:1}.message-file{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--bg-hover);border-radius:8px;min-width:200px}.message.own .message-file{background:#fff3}.file-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.file-name{font-size:.85rem;font-weight:500}.file-size{font-size:.75rem;opacity:.7}.download-btn{padding:.4rem;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.download-btn:hover{background:var(--accent-primary-dark)}.message-voice audio{width:200px;height:32px}.message-meta{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;font-size:.7rem;opacity:.7}.message-status{display:flex;align-items:center}.chat-input-container{border-top:1px solid var(--border-color);padding:1rem;background:var(--bg-glass)}.recording-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--accent-danger);color:#fff;border-radius:6px;margin-bottom:.5rem;font-size:.85rem;font-weight:500}.recording-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1s ease infinite}.selected-file{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--bg-secondary);border-radius:6px;margin-bottom:.5rem;font-size:.85rem}.selected-file button{margin-left:auto;padding:.2rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center}.selected-file button:hover{color:var(--accent-danger)}.chat-input{display:flex;align-items:flex-end;gap:.5rem}.input-btn{padding:.6rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.input-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.input-btn:disabled{opacity:.5;cursor:not-allowed}.input-btn.send{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.input-btn.send:hover{background:var(--accent-primary-dark);border-color:var(--accent-primary-dark)}.input-btn.mic.recording{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff;animation:pulse 1s ease infinite}.chat-input textarea{flex:1;padding:.6rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:none;max-height:100px;overflow-y:auto}.chat-input textarea:focus{outline:none;border-color:var(--accent-primary)}.chat-input textarea:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.chat-window:not(.minimized){right:10px;left:10px;width:auto;height:calc(100vh - 140px);bottom:70px}.chat-window.minimized{width:calc(100vw - 40px);right:20px;bottom:10px}}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.group-manager{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;max-height:80vh;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;z-index:1101;overflow:hidden}.group-manager-header{padding:1.25rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;background:var(--bg-primary)}.group-manager-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.action-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;font-size:.9rem;font-weight:500}.action-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.action-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.action-btn.primary:hover{background:var(--accent-primary-dark);border-color:var(--accent-primary-dark)}.action-btn.close{padding:.5rem}.action-btn.close:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.group-manager-content{flex:1;overflow-y:auto;padding:1.25rem}.groups-list{display:flex;flex-direction:column;gap:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-muted);text-align:center}.empty-state svg{opacity:.3;margin-bottom:1rem}.empty-state p{font-size:1rem;margin-bottom:1.5rem}.create-first-btn{padding:.75rem 1.5rem;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.create-first-btn:hover{background:var(--accent-primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.group-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;transition:all .2s ease}.group-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #0000001a}.group-avatar{width:50px;height:50px;border-radius:50%;background:var(--accent-secondary);color:#fff;display:flex;align-items:center;justify-content:center}.group-info{flex:1;display:flex;flex-direction:column;gap:.3rem}.group-info h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.group-info p{margin:0;font-size:.85rem;color:var(--text-muted)}.member-count{font-size:.8rem;color:var(--text-muted);font-weight:500}.group-actions{display:flex;gap:.5rem}.icon-btn{padding:.5rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.icon-btn.danger{color:var(--accent-danger)}.icon-btn.danger:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.create-group-form{display:flex;flex-direction:column;gap:1.25rem}.form-group label{font-size:.9rem;font-weight:600;color:var(--text-primary)}.form-group input[type=text],.form-group textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-family:inherit;font-size:.9rem}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary)}.form-group textarea{resize:vertical;min-height:60px}.selected-members{padding:.5rem 0}.selected-count{font-size:.85rem;color:var(--accent-primary);font-weight:500}.members-list{max-height:250px;overflow-y:auto;overflow-x:hidden;border:1px solid var(--border-color);border-radius:8px;padding:.5rem}.members-section-header{padding:.5rem .75rem;font-size:.85rem;font-weight:600;color:var(--text-muted);background:transparent}.no-users{padding:2rem;text-align:center;color:var(--text-muted)}.member-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;width:100%;box-sizing:border-box;border-radius:8px;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.member-item:hover{background:var(--bg-hover)}.member-item.selected{background:#0ea5e926;border:2px solid var(--accent-primary);box-shadow:0 0 0 2px #0ea5e91a}.member-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex:0 0 36px}.member-info{flex:1 1 auto;display:flex;flex-direction:column;gap:.35rem;min-width:0;padding-right:.75rem;overflow:hidden}.member-name{font-weight:600;color:var(--text-primary);font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.member-email{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-status{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.member-status.online{color:var(--accent-success);background:#10b9811a}.member-status.offline{color:var(--text-muted);background:#94a3b81a}.member-role{display:inline-block;padding:.15rem .5rem;font-size:.7rem;font-weight:600;color:var(--accent-primary);background:#0ea5e91a;border:1px solid rgba(14,165,233,.2);border-radius:999px;text-transform:capitalize}.member-item input[type=checkbox]{cursor:pointer;flex:0 0 auto;margin-left:.75rem;align-self:center}.member-item>input[type=checkbox]{margin-left:auto}.member-avatar{flex:0 0 36px}@media(max-width:420px){.member-name{white-space:normal}}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color)}.btn{padding:.75rem 1.5rem;border:1px solid var(--border-color);border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.9rem}.btn.secondary{background:transparent;color:var(--text-primary)}.btn.secondary:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.btn.primary:hover{background:var(--accent-primary-dark);border-color:var(--accent-primary-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.manage-group-view{display:flex;flex-direction:column;gap:1.5rem}.group-details{padding:1rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.group-description{margin:0 0 .5rem;color:var(--text-secondary);font-size:.9rem}.members-section h4{margin:0 0 1rem;font-size:1rem;color:var(--text-primary)}.section-header-with-action{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header-with-action h4{margin:0}.btn.small{padding:.5rem 1rem;font-size:.85rem;display:flex;align-items:center;gap:.4rem}.members-list.manage-mode{max-height:400px}.member-item.manage-item{padding:1rem}.member-role.admin{background:#ef44441a;border-color:#ef444433;color:var(--accent-danger)}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1102}.modal-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;max-width:400px;width:calc(100% - 2rem);box-shadow:0 10px 40px #0006}.modal-content h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.modal-content p{margin:0 0 1.5rem;font-size:.95rem;line-height:1.5;color:var(--text-secondary)}.modal-content.success-modal{text-align:center}.success-modal h3{margin:0 0 1rem;color:#22c55e;font-size:1.25rem}.success-modal p{margin:0 0 1.5rem;text-align:center}.success-modal .modal-actions{justify-content:center}.btn.danger{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.btn.danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.icon-btn.danger{color:var(--accent-danger);border-color:#ef444433}.icon-btn.danger:hover{background:#ef44441a;border-color:var(--accent-danger)}.icon-btn.warning{color:#f59e0b;border-color:#f59e0b33}.icon-btn.warning:hover{background:#f59e0b1a;border-color:#f59e0b;color:#f59e0b}.group-actions-section{padding:1rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.btn.warning{display:flex;align-items:center;gap:.5rem;background:#f59e0b;border-color:#f59e0b;color:#fff}.btn.warning:hover:not(:disabled){background:#d97706;border-color:#d97706}@media(max-width:768px){.group-manager{width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}.members-list{max-height:200px}}.group-manager-content::-webkit-scrollbar,.members-list::-webkit-scrollbar{width:6px}.group-manager-content::-webkit-scrollbar-track,.members-list::-webkit-scrollbar-track{background:transparent}.group-manager-content::-webkit-scrollbar-thumb,.members-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.group-manager-content::-webkit-scrollbar-thumb:hover,.members-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.call-modal-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:20000}.call-modal{width:90%;max-width:800px;height:90vh;max-height:600px;background:var(--bg-primary);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080;z-index:20001}.call-mini{position:fixed;bottom:10px;left:10px;z-index:21000;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:260px;padding:.75rem 1rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 10px 30px #00000059}.call-mini-info{display:flex;flex-direction:column;gap:.25rem}.mini-name{font-weight:600;color:var(--text-primary)}.mini-status{font-size:.85rem;color:var(--text-muted)}.call-mini-actions{display:flex;align-items:center;gap:.4rem}.mini-btn{width:40px;height:40px;border-radius:10px;border:2px solid rgba(255,255,255,.3);background:#374151f2;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.mini-btn:hover{background:#4b5563;border-color:#6366f1cc;color:#6366f1;transform:scale(1.05)}.mini-btn svg{width:20px;height:20px;stroke-width:2.5;fill:none;stroke:currentColor}.mini-btn.danger{background:#ef4444;border-color:#dc2626;color:#fff}.mini-btn.danger:hover{background:#dc2626;border-color:#b91c1c;transform:scale(1.05)}.mini-btn.danger svg{stroke:#fff}.call-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md)}.call-info h3{margin:0 0 .25rem;font-size:1.25rem;color:var(--text-primary)}.call-status{margin:0;font-size:.9rem;color:var(--text-muted);display:flex;align-items:center;gap:.5rem}.status-indicator{font-size:.6rem;animation:pulse 2s ease-in-out infinite}.status-indicator.connected{color:var(--accent-success);animation:none}.status-indicator.connecting{color:var(--accent-warning)}.status-indicator.ended{color:var(--accent-danger);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.call-actions{display:flex;align-items:center;gap:.5rem}.close-btn{padding:.5rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-btn:hover{background:var(--bg-hover);border-color:var(--accent-danger);color:var(--accent-danger)}.call-video-container{flex:1;position:relative;background:#000;display:flex;align-items:center;justify-content:center}.remote-video{width:100%;height:100%;object-fit:cover}.local-video{position:absolute;bottom:1rem;right:1rem;width:200px;height:150px;border-radius:12px;border:2px solid var(--border-color);object-fit:cover;box-shadow:0 4px 12px #0000004d}.voice-call-avatar{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.avatar-circle{width:150px;height:150px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:600;box-shadow:0 8px 24px #0000004d}.call-controls{padding:2rem;display:flex;align-items:center;justify-content:center;gap:1rem;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md)}.control-btn{width:60px;height:60px;border-radius:50%;border:none;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;transition:all .2s ease;font-size:.7rem}.control-btn:hover{background:var(--bg-hover);transform:scale(1.05)}.control-btn.active{background:var(--accent-danger);color:#fff}.control-btn.accept{background:var(--accent-success);color:#fff;width:70px;height:70px}.control-btn.accept:hover{background:var(--accent-success-dark)}.control-btn.reject{background:var(--accent-danger);color:#fff;width:70px;height:70px}.control-btn.reject:hover{background:var(--accent-danger-dark)}.control-btn.end-call{background:var(--accent-danger);color:#fff}.control-btn.end-call:hover{background:var(--accent-danger-dark)}.control-btn span{font-size:.75rem;font-weight:500}@media(max-width:768px){.call-modal{width:100%;height:100vh;max-height:none;border-radius:0}.local-video{width:120px;height:90px;bottom:.5rem;right:.5rem}.control-btn{width:50px;height:50px}.control-btn.accept,.control-btn.reject{width:60px;height:60px}.avatar-circle{width:120px;height:120px;font-size:3rem}}.shell{width:100%;height:100%;display:flex;flex-direction:column}.main-content{flex:1;margin-top:70px;margin-bottom:60px;padding:2rem;overflow-y:auto;transition:margin-left .3s ease;background:var(--bg-primary)}.main-content.with-sidebar{margin-left:280px}@media(max-width:1279px){.main-content.with-sidebar{margin-left:0}}@media(max-width:720px){.main-content{padding:1.5rem 1rem}}@media(max-width:430px){.main-content{padding:1rem .75rem}}.auth-container{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg-primary)}.theme-toggle-auth{position:fixed;top:2rem;right:2rem;width:48px;height:48px;border-radius:12px;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;z-index:100;padding:0}.theme-toggle-auth:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.auth-card{width:100%;max-width:480px;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border:1px solid var(--border-color);border-radius:24px;padding:3rem 2.5rem;box-shadow:var(--shadow-xl);position:relative;z-index:10;animation:slideUp .5s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:2.5rem}.auth-logo{width:180px;height:180px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;border-radius:20px;background:linear-gradient(135deg,#0ea5e90d,#06b6d40d);padding:1rem}.logo-image{width:100%;height:100%;object-fit:contain}.auth-header h1{font-size:1.75rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{font-size:.95rem;color:var(--text-muted)}.error-message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:var(--accent-danger);font-size:.9rem;margin-bottom:1.5rem;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--text-secondary)}.form-group input{width:100%;padding:.85rem 1.15rem;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);color:var(--text-primary);font-size:.95rem;transition:all .2s ease}.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.password-input{position:relative;display:flex;align-items:center}.password-input input{padding-right:3rem}.password-toggle{position:absolute;right:.75rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.password-toggle:hover{color:var(--accent-primary);background:transparent;transform:none;box-shadow:none}.form-options{display:flex;align-items:center;justify-content:space-between;margin-top:-.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.forgot-link{font-size:.9rem;color:var(--accent-primary);font-weight:500;transition:color .2s ease}.forgot-link:hover{color:var(--accent-secondary)}.submit-btn{width:100%;padding:1rem;border:none;border-radius:10px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #0ea5e94d}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-footer{margin-top:2rem;text-align:center}.auth-footer p{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:.5rem}.toggle-mode-btn{background:transparent;border:none;color:var(--accent-primary);font-weight:600;cursor:pointer;padding:.25rem .5rem;transition:color .2s ease}.toggle-mode-btn:hover{color:var(--accent-secondary);background:transparent;transform:none;box-shadow:none}.auth-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0}.bg-shape{position:absolute;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));opacity:.05;animation:float 20s ease-in-out infinite}.shape-1{width:400px;height:400px;top:-100px;left:-100px;animation-delay:0s}.shape-2{width:300px;height:300px;bottom:-50px;right:-50px;animation-delay:-7s}.shape-3{width:250px;height:250px;top:50%;right:10%;animation-delay:-14s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.recaptcha-container{margin:1.5rem 0;display:flex;justify-content:center;align-items:center}@media(max-width:720px){.auth-card{max-width:100%;margin:1rem;padding:2rem 1.5rem;border-radius:20px}.theme-toggle-auth{top:1rem;right:1rem}.auth-logo{width:150px;height:150px}.auth-header h1{font-size:1.5rem}.form-options{flex-direction:column;align-items:flex-start;gap:.75rem}.bg-shape{opacity:.03}}@media(max-width:430px){.auth-card{padding:1.5rem 1rem}.auth-header h1{font-size:1.25rem}.auth-header p{font-size:.85rem}}.dashboard{width:100%;display:flex;flex-direction:column;gap:2rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dashboard-header h1{font-size:2rem;margin-bottom:.5rem}.dashboard-header p{font-size:1rem;color:var(--text-muted)}.dashboard-actions{display:flex;gap:1rem}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px;font-weight:500;transition:all .2s ease;cursor:pointer;border:none}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}.btn-secondary{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(0)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.stat-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;display:flex;gap:1.25rem;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--accent-primary);opacity:0;transition:opacity .3s ease}.stat-card:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(-4px);box-shadow:var(--shadow-xl)}.stat-card:hover:before{opacity:1}.stat-card.primary .stat-icon{background:linear-gradient(135deg,#4f46e533,#6366f133);color:var(--accent-primary)}.stat-card.secondary .stat-icon{background:linear-gradient(135deg,#7c3aed33,#8b5cf633);color:var(--accent-secondary)}.stat-card.success .stat-icon{background:linear-gradient(135deg,#10b98133,#34d39933);color:var(--accent-success)}.stat-card.warning .stat-icon{background:linear-gradient(135deg,#f59e0b33,#fbbf2433);color:var(--accent-warning)}.stat-icon{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{flex:1;display:flex;flex-direction:column;gap:.35rem}.stat-label{font-size:.9rem;color:var(--text-muted);font-weight:500}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.stat-change{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500}.stat-change.up{color:var(--accent-success)}.stat-change.down{color:var(--accent-danger)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:2rem}.dashboard-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;transition:all .3s ease}.dashboard-card:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);box-shadow:var(--shadow-xl)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.card-header h3{font-size:1.25rem;font-weight:600}.text-btn{background:transparent;border:none;color:var(--accent-primary);font-size:.9rem;cursor:pointer;padding:.25rem .5rem;transition:color .2s ease}.text-btn:hover{color:var(--accent-secondary);background:transparent;transform:none;box-shadow:none}.activities-list{display:flex;flex-direction:column;gap:1rem}.activity-item{display:flex;gap:1rem;padding:1rem;border-radius:10px;transition:background .2s ease;border-left:3px solid transparent}.activity-item:hover{background:var(--bg-glass-hover)}.activity-item.success{border-left-color:var(--accent-success)}.activity-item.info{border-left-color:var(--accent-info)}.activity-item.warning{border-left-color:var(--accent-warning)}.activity-item.danger{border-left-color:var(--accent-danger)}.activity-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-item.success .activity-icon{background:#10b9811a;color:var(--accent-success)}.activity-item.info .activity-icon{background:#3b82f61a;color:var(--accent-info)}.activity-item.warning .activity-icon{background:#f59e0b1a;color:var(--accent-warning)}.activity-item.danger .activity-icon{background:#ef44441a;color:var(--accent-danger)}.activity-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.activity-content h4{font-size:.95rem;font-weight:600;color:var(--text-primary)}.activity-content p{font-size:.85rem;color:var(--text-secondary)}.activity-time{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.events-list{display:flex;flex-direction:column;gap:1rem}.event-item{display:flex;gap:1rem;padding:1rem;border-radius:10px;transition:background .2s ease;border:1px solid var(--border-color)}.event-item:hover{background:var(--bg-glass-hover);border-color:var(--border-hover)}.event-date{width:60px;height:60px;border-radius:10px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.event-date .date{font-size:1.5rem;font-weight:700;line-height:1}.event-date .month{font-size:.75rem;font-weight:600;text-transform:uppercase}.event-content{flex:1;display:flex;flex-direction:column;gap:.35rem}.event-content h4{font-size:.95rem;font-weight:600;color:var(--text-primary)}.event-content p{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.chart-card{grid-column:1 / -1}.chart-filters{display:flex;gap:.5rem}.filter-btn{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s ease}.filter-btn:hover{background:var(--bg-glass);border-color:var(--border-hover);color:var(--text-primary);transform:translateY(0);box-shadow:none}.filter-btn.active{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-color:transparent;color:#fff}.chart-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-muted);text-align:center}.chart-placeholder p{font-size:1.1rem;font-weight:500;margin:1rem 0 .5rem;color:var(--text-primary)}.chart-placeholder span{font-size:.9rem}@media(max-width:960px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.dashboard-actions{width:100%}.dashboard-actions button{flex:1}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:720px){.dashboard{gap:1.5rem}.dashboard-header h1{font-size:1.5rem}.stats-grid{grid-template-columns:1fr}.stat-value{font-size:1.75rem}.dashboard-actions{flex-direction:column}}.students-page{display:flex;flex-direction:column;gap:1rem}.students-page .page-header{display:flex;align-items:center;justify-content:space-between}.students-page .header-actions{display:flex;align-items:center;gap:.75rem}.students-page .header-actions .btn-primary{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;min-width:140px}.students-page .header-actions .btn-secondary{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;min-width:100px}.students-page .error-banner{display:flex;gap:.5rem;align-items:center;padding:.65rem .9rem;border-radius:10px;margin-bottom:.5rem;background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:var(--accent-danger);font-size:.9rem}.students-page .students-list{padding:.5rem 0}.students-page .students-controls{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;position:relative;z-index:1}.students-page .search-box{display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;height:var(--control-height);flex:1;max-width:500px;transition:all .2s ease}.students-page .search-box:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.students-page .search-box input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.875rem}.students-page .search-box input::placeholder{color:var(--text-muted)}.students-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height)}.students-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.students-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.students-page .student-select{position:relative;flex:0 0 260px;max-width:360px;min-width:200px;height:var(--control-height)}.students-page .student-select input{width:100%;padding:0 .25rem;border-radius:0;border:none;background:transparent;color:var(--text-primary);height:100%}.students-page .student-options{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;max-height:240px;overflow-y:auto;z-index:10;box-shadow:0 8px 20px #0000003d}.students-page .student-option{width:100%;text-align:left;padding:.55rem .75rem;border:none;background:transparent;color:var(--text-primary);cursor:pointer;font-size:.93rem}.students-page .student-option:hover:not(.empty){background:#0ea5e914}.students-page .student-option.empty{cursor:default;color:var(--text-muted)}.students-page .student-select .inline-spinner{position:absolute;right:.55rem;top:50%;transform:translateY(-50%)}@media(max-width:640px){.students-page .search-box .refresh-label{display:none}}.students-page .page-info{color:var(--text-muted);font-size:.9rem}.students-page .controls-right{display:flex;align-items:center;gap:.75rem}.students-page .view-toggle{display:flex;align-items:center;gap:0;background:#ffffff05;border:1px solid var(--border-color);border-radius:10px;padding:.2rem}.students-page .view-btn{display:flex;align-items:center;justify-content:center;padding:.4rem .6rem;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.students-page .view-btn:hover{background:#ffffff0a;color:var(--text-primary)}.students-page .view-btn.active{background:#0ea5e91f;color:var(--accent-primary)}.students-page .archive-toggle{display:flex;align-items:center;gap:.4rem;padding:.35rem .45rem;background:#ffffff05;border:1px solid var(--border-color);border-radius:10px}.students-page .archive-toggle .toggle-label{color:var(--text-secondary);font-weight:600}.students-page .modal-content.large{max-width:720px}.students-page .fee-voucher-body{display:flex;flex-direction:column;gap:1rem}.students-page .voucher-student-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-glass)}.students-page .voucher-student-meta .meta-label{font-size:.8rem;color:var(--text-muted)}.students-page .voucher-student-meta .meta-value{font-weight:600}.students-page .voucher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.students-page .fee-items{border:1px solid var(--border-color);border-radius:10px;padding:.75rem;background:var(--bg-glass);display:flex;flex-direction:column;gap:.75rem}.students-page .fee-items .items-header{display:flex;align-items:center;justify-content:space-between}.students-page .fee-items .item-row{display:grid;grid-template-columns:1.2fr .7fr 1fr auto;gap:.5rem;align-items:center}.students-page .fee-items .item-row input,.students-page .fee-items .item-row select{width:100%}.students-page .btn-text.danger{border:none;background:transparent;color:var(--accent-danger);cursor:pointer}.students-page .page-size select{margin-left:.5rem;padding:.35rem;border-radius:6px}.students-page .cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.students-page .card{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:10px}.students-page .card-title{font-weight:700}.students-page .card-sub{font-size:.9rem;color:var(--text-muted)}.students-page .card-meta{font-size:.85rem;color:var(--text-secondary)}.students-page .card-avatar{width:64px;height:64px;flex:0 0 64px;margin-right:12px}.students-page .card-avatar img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.04);display:block}.students-page .card-main{flex:1;display:flex;flex-direction:column;gap:6px}.students-page .card-userid{font-size:.82rem;color:var(--text-muted);margin-top:4px}.students-page .icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid transparent;background:transparent;cursor:pointer;transition:all .16s ease}.students-page .icon-btn.delete{background:#ef444414;color:var(--accent-danger);border-color:#ef44442e}.students-page .icon-btn.student{background:var(--accent-primary);color:#fff;border-color:#3b82f647;box-shadow:0 1px #0000000a}.students-page .icon-btn.student:hover{filter:brightness(.96)}.students-page .icon-btn.parent{background:var(--accent-success);color:#fff;border-color:#10b98147;box-shadow:0 1px #0000000a}.students-page .icon-btn.parent:hover{filter:brightness(.96)}.students-page .icon-btn svg{width:20px;height:20px;display:block;fill:currentColor;stroke:none}.students-page .icon-btn svg{filter:drop-shadow(0 3px 6px rgba(0,0,0,.22))}.students-page .icon-btn img{width:20px;height:20px;display:block;object-fit:contain}.students-page .icon-btn:focus{outline:none;box-shadow:0 0 0 4px #3b82f62e;border-color:#3b82f65c}.students-page .btn-icon{padding:.15rem .25rem;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.students-page .btn-icon svg{width:18px;height:18px}.students-page .pagination{display:flex;gap:.5rem;align-items:center;justify-content:center;margin-top:.75rem}.students-page .page-label{font-size:.9rem;color:var(--text-muted)}.students-page .page-numbers{display:flex;gap:.35rem;align-items:center}.students-page .page-num{padding:.35rem .6rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;cursor:pointer}.students-page .page-num.active{background:var(--accent-primary);color:#fff;border-color:transparent}.students-page .jump-to{display:flex;gap:.5rem;align-items:center;margin-left:.5rem}.students-page .jump-to input{width:60px;padding:.35rem;border:1px solid var(--border-color);border-radius:6px}.students-page .btn-go{padding:.35rem .6rem;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-glass)}.students-page .list-overlay{position:relative}.students-page .empty-state{text-align:center;padding:2rem;color:var(--text-muted)}.students-page .card.inactive-student{opacity:.7;background:#9ca3af0d}.students-page .card-avatar{position:relative}.students-page .inactive-badge{position:absolute;bottom:-4px;right:-4px;background:var(--accent-danger);color:#fff;font-size:.7rem;padding:2px 6px;border-radius:4px;font-weight:600}.branch-header{position:relative}.status-badge.inactive{position:absolute;top:12px;right:14px;display:inline-block;padding:6px 10px;font-size:.82rem;font-weight:700;color:var(--accent-danger);background:#ef44440f;border:1px solid rgba(239,68,68,.28);border-radius:20px;text-transform:uppercase;letter-spacing:.6px}@media(max-width:720px){.status-badge.inactive{top:10px;right:12px;padding:5px 8px;font-size:.78rem}}.students-page .card-action-groups{width:100%;display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.action-switch-group{display:flex;gap:10px;flex-wrap:wrap}.switch-pill{flex:1 1 180px;display:inline-flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff05;border:1px solid var(--border-color);border-radius:12px}.switch-pill .actions-label{margin:0;color:var(--text-primary);font-weight:600}.switch-pill-disabled{opacity:.65}.icon-actions-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.action-icon-btn{background:#ffffff08;border:1px solid var(--border-color);color:var(--text-primary);transition:all .16s ease}.action-icon-btn:hover:not(:disabled){color:var(--accent-primary);border-color:var(--accent-primary);transform:translateY(-1px)}.action-icon-btn:disabled{opacity:.6;cursor:not-allowed}.branch-actions{margin-top:4px}@media(max-width:720px){.action-switch-group{flex-direction:column}}background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 12px; width: 90%; max-width: 460px; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; } .modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.25rem}.close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:6px;color:var(--text-secondary)}.close-btn:hover{background:var(--bg-glass)}.modal-body{padding:1rem;overflow-y:auto}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:8px}.students-page .student-info{padding:1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem}.students-page .student-info p{margin:.5rem 0}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.75rem;font-weight:500}.contact-options{display:flex;flex-direction:column;gap:.75rem}.contact-option{display:grid;grid-template-columns:min-content 1fr;align-items:center;padding:1rem;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s;gap:.75rem}.contact-option:hover{background:var(--bg-glass);border-color:var(--accent-primary)}.contact-option input[type=radio]{margin:.15rem 0 0;cursor:pointer;padding:0;width:auto;height:auto;border:none;background:transparent;appearance:radio;-webkit-appearance:radio;-moz-appearance:radio;display:block}.contact-label{font-size:.95rem;color:var(--text-primary);text-align:left;align-self:center;padding-left:.25rem}.no-contacts{padding:1rem;text-align:center;color:var(--text-muted);background:var(--bg-glass);border:1px solid var(--border-color);border-radius:8px}.error-message{padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.35);border-radius:8px;color:var(--accent-danger);margin-bottom:1rem}.students-page .modal-actions{display:flex;gap:.75rem;align-items:center}.login-success{text-align:center}.success-icon{width:64px;height:64px;margin:0 auto 1rem;background:#22c55e1a;border:2px solid rgba(34,197,94,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#22c55e}.login-success h3{margin:0 0 1.5rem;color:#22c55e}.credentials{padding:.9rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;text-align:left;overflow:hidden}.credentials p{margin:.5rem 0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.credentials code{padding:.25rem .5rem;background:#0003;border:1px solid var(--border-color);border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;display:block;width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.note{font-size:.9rem;color:var(--text-muted);margin:1rem 0 1.5rem}.students-page .toggle-switch{position:relative;display:inline-block;width:42px;height:24px}.students-page .toggle-switch input{opacity:0;width:0;height:0}.students-page .toggle-switch .slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border-color);transition:.2s;border-radius:24px;box-shadow:inset 0 1px 2px #0000001a}.students-page .toggle-switch .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.2s;border-radius:50%;box-shadow:0 2px 6px #00000026}.students-page .toggle-switch input:checked+.slider{background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary))}.students-page .toggle-switch input:checked+.slider:before{transform:translate(18px)}.students-page .toggle-switch input:disabled+.slider{opacity:.6;cursor:not-allowed}.students-page .students-table-wrapper{width:100%;overflow-x:auto;background:var(--card-background);border:1px solid var(--border-color);border-radius:12px}.students-page .students-table{width:100%;border-collapse:collapse;font-size:.9rem}.students-page .students-table thead{background:#1a2332;border-bottom:1px solid var(--border-color)}.students-page .students-table th{padding:.7rem .8rem;text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap;position:sticky;top:0;background:#1a2332;z-index:20;font-size:.85rem}.students-page .students-table th.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.students-page .students-table th.sortable-header:hover{background:#1e2838}.students-page .students-table th.sortable-header>span{margin-right:.4rem}.students-page .students-table th.sortable-header svg{opacity:.6;vertical-align:middle;margin-left:.2rem}.students-page .students-table th.sortable-header:hover svg{opacity:1}.students-page .students-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .15s ease}.students-page .students-table tbody tr:hover{background:#0ea5e90a}.students-page .students-table tbody tr:last-child{border-bottom:none}.students-page .students-table tbody tr.inactive-row{opacity:.65}.students-page .students-table td{padding:.6rem .8rem;vertical-align:middle;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis}.students-page .students-table td:first-child{position:sticky;left:0;background:#1a2332;z-index:5;box-shadow:2px 0 8px #0000004d}.students-page .students-table th:first-child{position:sticky;left:0;background:#1a2332;z-index:25;box-shadow:2px 0 8px #0000004d}.students-page .students-table tbody tr:hover td:first-child{background:#1e2838}.students-page .group-row td{padding:.5rem .8rem;background:#0ea5e90d;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);transition:background .2s ease}.students-page .clickable-group-row:hover td{background:#0ea5e91f}.students-page .branch-group-row td{background:#0ea5e91f;border-top:2px solid rgba(14,165,233,.3);border-bottom:1px solid rgba(14,165,233,.2);padding:.65rem .8rem}.students-page .branch-group-row:hover td{background:#0ea5e92e}.students-page .section-group-row td{background:#0ea5e90f;border-top:1px solid rgba(14,165,233,.15);border-bottom:1px solid rgba(14,165,233,.1);padding:.45rem .8rem .45rem 2rem}.students-page .section-group-row:hover td{background:#0ea5e91a}.students-page .collapse-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:transform .2s ease;margin-right:.25rem}.students-page .clickable-group-row:hover .collapse-icon{color:var(--accent-primary)}.students-page .group-row-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.students-page .group-export-actions{display:flex;align-items:center;gap:.5rem;margin-left:.5rem}.students-page .group-export-btn{padding:.35rem .5rem;background:#0ea5e926;border:1px solid rgba(14,165,233,.3);border-radius:6px;color:var(--accent-primary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.students-page .group-export-btn:hover:not(:disabled){background:#0ea5e940;border-color:#0ea5e980;transform:translateY(-1px)}.students-page .group-export-btn:disabled{opacity:.5;cursor:not-allowed}.students-page .group-row-left{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.students-page .group-title{font-weight:700;color:var(--text-primary);font-size:1rem}.students-page .group-subtitle{color:var(--text-secondary);font-size:.9rem;font-weight:600}.students-page .group-count{color:var(--text-secondary);font-size:.88rem}.students-page .group-summary{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;font-weight:600;color:var(--text-primary);font-size:.9rem}.students-page .summary-item{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;background:#0ea5e91a;border-radius:6px;border:1px solid rgba(14,165,233,.2)}.table-address{max-width:200px;white-space:normal;line-height:1.4}.table-photo{width:36px;height:36px;border-radius:6px;object-fit:cover}.table-name{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.table-name .status-badge{font-size:.75rem;padding:.15rem .5rem;border-radius:4px;background:#ef444426;color:var(--accent-danger)}.table-switches{display:flex;align-items:center;gap:.5rem}.table-switches .toggle-switch{width:38px;height:22px}.table-switches .toggle-switch .slider:before{height:16px;width:16px;left:3px;bottom:3px}.table-switches .toggle-switch input:checked+.slider:before{transform:translate(16px)}.table-actions{display:flex;align-items:center;gap:.3rem;flex-wrap:nowrap;min-width:200px}.students-page .btn-icon-small{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;background:#ffffff05;border:1px solid var(--border-color);border-radius:5px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.students-page .btn-icon-small:hover{background:#0ea5e914;color:var(--accent-primary);border-color:#0ea5e933}.students-page .btn-icon-small.btn-edit:hover{background:#3b82f614;color:#3b82f6;border-color:#3b82f633}.students-page .btn-icon-small.btn-delete:hover{background:#ef444414;color:var(--accent-danger);border-color:#ef444433}.students-page .btn-icon-small:disabled{opacity:.5;cursor:not-allowed}.students-page .btn-icon-small.btn-loading{opacity:.7;cursor:wait}@media(max-width:1200px){.students-table{font-size:.85rem}.students-table th,.students-table td{padding:.7rem .8rem}}@media(max-width:768px){.view-toggle{order:-1}.controls-right{flex-wrap:wrap}}.students-page .branch-card{position:relative}.students-page .card-checkbox{position:absolute;top:12px;left:12px;width:20px;height:20px;cursor:pointer;z-index:10;accent-color:var(--accent-primary)}.students-page .card-checkbox:hover{transform:scale(1.1)}.students-page .card-checkbox:disabled{cursor:not-allowed;opacity:.5}.students-page .sibling-icon{display:inline-block;margin-left:.5rem;color:var(--accent-primary);vertical-align:middle;opacity:.8}.students-page .sibling-icon:hover{opacity:1}.modal-overlay-nested{z-index:10150!important}.modal-content-nested{z-index:10160!important}.fees-page{padding:20px}.fees-page .page-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.fees-page h1{margin:0}.fees-page p{margin:0;color:var(--text-secondary)}.fees-page .search-section{display:flex;align-items:center;gap:.5rem;margin-bottom:16px}.fees-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height)}.fees-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.fees-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.fees-page .fees-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.fees-page .fee-card{background:var(--bg-glass);border:1px solid var(--border-color);padding:12px;border-radius:12px;display:flex;flex-direction:column;justify-content:space-between;min-height:140px;transition:all .2s ease}.fees-page .fee-card:hover{border-color:var(--border-hover);box-shadow:0 2px 12px #00000014}.fees-page .fee-header h3{margin:0 0 8px;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.fees-page .fee-body{margin-bottom:12px;flex:1}.fees-page .fee-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fees-page .badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.fees-page .badge-info{background:#3b82f61a;color:#3b82f6}.fees-page .badge-success{background:#22c55e1a;color:#22c55e}.fees-page .badge-muted{background:#9ca3af1a;color:#6b7280}.fees-page .badge-ghost{background:#9ca3af0d;color:var(--text-secondary)}.fees-page .branch-actions{display:flex;gap:8px;justify-content:flex-end}.fees-page .btn-edit,.fees-page .btn-delete{display:inline-flex;gap:6px;align-items:center;padding:8px 12px;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;font-weight:500;font-size:.875rem;background:transparent}.fees-page .btn-delete{color:var(--danger)}.fees-page .header-actions{display:flex;gap:.75rem;align-items:center}.fees-page .header-actions .btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.125rem;border-radius:10px;font-weight:600;transition:all .2s ease;cursor:pointer;border:none;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 2px 8px #0ea5e940}.fees-page .header-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0ea5e959}.fees-page .error-banner{background:#fee2e2;color:#7f1d1d;padding:8px;border-radius:6px;margin-bottom:8px}.fees-page .loading-container{display:flex;align-items:center;gap:12px;justify-content:center;padding:40px}.fees-page .empty-state{text-align:center;padding:40px;color:var(--text-muted)}.fees-page .loading-records{display:flex;align-items:center;gap:.75rem;padding:2rem;justify-content:center;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px}.fees-page .loading-records p{margin:0;color:var(--text-muted);font-weight:600}.feeitem-form{width:100%;max-width:720px;margin:0 auto}.student-form-page .error-message{padding:1rem 1.25rem;background:#fee2e2;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#991b1b;font-size:.95rem;margin-bottom:1.5rem}.fee-form-grid{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:16px;padding:24px;margin-bottom:24px}.form-card{width:100%;max-width:980px;margin:0 auto;display:block}.student-form-page{padding:20px 28px;display:block}.form-card .card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:12px}.card-title-area{display:flex;gap:1rem;align-items:center}.card-title-text h1{margin:0;font-size:1.25rem;color:var(--text-primary)}.card-title-text p{margin:0;color:var(--text-muted);font-size:.95rem}.header-actions{display:flex;gap:.75rem;align-items:center}.form-container{width:100%}.fee-form-grid{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;padding:24px}.feeitem-form .form-field{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.feeitem-form .form-field label{font-size:14px;font-weight:500;color:var(--text-secondary);text-transform:none}.feeitem-form .form-field input{padding:14px 16px;border-radius:12px;border:1px solid var(--border-color);background:#0f172a80;color:var(--text-primary);font-size:15px;transition:all .2s ease;outline:none}.feeitem-form .form-field input:focus{border-color:var(--primary-color);background:#0f172ab3;box-shadow:0 0 0 3px #0ea5e91a}.feeitem-form .form-field input::placeholder{color:#94a3b880}.form-toggles{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}.toggle-field{display:flex;flex-direction:column}.toggle-content{display:flex;align-items:flex-start;gap:14px}.toggle-label{display:flex;flex-direction:column;gap:4px;flex:1}.toggle-title{font-size:14px;font-weight:500;color:var(--text-primary)}.toggle-description{font-size:12px;color:var(--text-secondary);line-height:1.4;opacity:.8}.toggle-switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0;margin-top:-2px}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#47556980;border-radius:24px;transition:.3s}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-slider{background-color:#0ea5e9}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #0ea5e933}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:16px}.btn-cancel{flex:1;padding:14px 24px;background:transparent;border:1px solid var(--border-color);border-radius:12px;color:var(--text-secondary);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel:hover:not(:disabled){background:#ffffff0d;border-color:var(--text-secondary);color:var(--text-primary)}.btn-submit{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 32px;background:linear-gradient(135deg,#0ea5e9,#06b6d4);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0ea5e94d}.btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #0ea5e966}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled,.btn-cancel:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.fee-form-grid{padding:24px}.form-toggles{grid-template-columns:1fr;gap:20px}.form-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%}}.standard-fee-structures-page{padding:20px}.standard-fee-structures-page .page-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.standard-fee-structures-page h1{margin:0}.standard-fee-structures-page p{margin:0;color:var(--text-secondary)}.standard-fee-structures-page .search-section{display:flex;align-items:center;gap:.5rem;margin-bottom:16px}.standard-fee-structures-page .search-box{display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;height:var(--control-height);flex:1;max-width:500px;transition:all .2s ease}.standard-fee-structures-page .search-box:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.standard-fee-structures-page .search-box input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.875rem}.standard-fee-structures-page .search-box input::placeholder{color:var(--text-muted)}.standard-fee-structures-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height)}.standard-fee-structures-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.standard-fee-structures-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.standard-fee-structures-page .branches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.standard-fee-structures-page .branch-card{background:var(--bg-glass);border:1px solid var(--border-color);padding:12px;border-radius:12px;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;transition:all .2s ease}.standard-fee-structures-page .branch-card:hover{border-color:var(--border-hover);box-shadow:0 2px 12px #00000014}.standard-fee-structures-page .branch-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.standard-fee-structures-page .branch-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.standard-fee-structures-page .branch-total{font-size:1.2rem;font-weight:700;color:var(--accent-primary)}.standard-fee-structures-page .branch-body{margin-bottom:12px;flex:1}.standard-fee-structures-page .fee-items-list{display:flex;flex-direction:column;gap:6px}.standard-fee-structures-page .fee-item-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:.875rem}.standard-fee-structures-page .fee-item-name{color:var(--text-secondary);text-align:left}.standard-fee-structures-page .fee-item-amount{color:var(--accent-primary);font-weight:600;text-align:right;margin-left:auto;padding-left:16px}.standard-fee-structures-page .fee-item-more{color:var(--accent-primary);font-size:.8rem;font-weight:500;padding-top:4px}.standard-fee-structures-page .fee-items-empty{color:var(--text-muted);font-style:italic;font-size:.875rem}.standard-fee-structures-page .branch-actions{display:flex;gap:8px;justify-content:flex-end}.standard-fee-structures-page .btn-edit,.standard-fee-structures-page .btn-delete{display:inline-flex;gap:6px;align-items:center;padding:8px 12px;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;font-weight:500;font-size:.875rem;background:transparent}.standard-fee-structures-page .btn-delete{color:var(--danger)}.standard-fee-structures-page .header-actions{display:flex;gap:.75rem;align-items:center}.standard-fee-structures-page .btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.125rem;border-radius:10px;font-weight:600;transition:all .2s ease;cursor:pointer;border:none;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 2px 8px #0ea5e940}.standard-fee-structures-page .btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0ea5e959}.standard-fee-structures-page .error-banner{background:#fee2e2;color:#7f1d1d;padding:12px;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.standard-fee-structures-page .loading-container{display:flex;align-items:center;gap:12px;justify-content:center;padding:40px}.standard-fee-structures-page .empty-state{text-align:center;padding:40px;color:var(--text-muted)}.standard-fee-structures-page .loading-records{display:flex;align-items:center;gap:.75rem;padding:2rem;justify-content:center;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px}.standard-fee-structures-page .loading-records p{margin:0;color:var(--text-muted);font-weight:600}.standard-fee-structures-page .spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.standard-fee-structures-page .inline-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.standard-fee-structures-page .modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.standard-fee-structures-page .modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;padding:24px;max-width:400px;width:90%;box-shadow:0 20px 60px #0000004d}.standard-fee-structures-page .modal-content h3{margin:0 0 12px;color:var(--text-primary)}.standard-fee-structures-page .modal-content p{margin:0 0 20px;color:var(--text-secondary)}.standard-fee-structures-page .modal-actions{display:flex;gap:12px;justify-content:flex-end}.standard-fee-structures-page .btn-cancel{padding:8px 16px;border-radius:8px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);cursor:pointer;font-weight:500;transition:all .2s ease}.standard-fee-structures-page .btn-cancel:hover{background:var(--bg-glass)}.standard-fee-structures-page .btn-confirm-delete{padding:8px 16px;border-radius:8px;border:none;background:var(--danger);color:#fff;cursor:pointer;font-weight:600;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.standard-fee-structures-page .btn-confirm-delete:hover:not(:disabled){background:#dc2626}.standard-fee-structures-page .btn-confirm-delete:disabled{opacity:.6;cursor:not-allowed}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:#2563eb;color:#fff;border:0;padding:.75rem 1.25rem;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s ease}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px;font-weight:500;transition:all .2s ease;cursor:pointer;border:none;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-glass-hover);border-color:var(--border-hover)}.error-banner{background:#fee2e2;color:#7f1d1d;padding:8px;border-radius:6px;margin-bottom:8px}.active-toggle{display:inline-block;vertical-align:middle}.active-toggle input{position:absolute;opacity:0;width:0;height:0}.active-toggle .track{display:block;width:48px;height:28px;background:#ececec;border-radius:999px;position:relative;transition:background .18s ease}.active-toggle .track .knob{position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 2px 6px #0000001f;transition:transform .18s ease}.active-toggle input:checked+.track{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary))}.active-toggle input:checked+.track .knob{transform:translate(20px)}.active-toggle.small .track{width:36px;height:22px}.active-toggle.small .track .knob{width:16px;height:16px;top:3px;left:3px}.active-toggle.small input:checked+.track .knob{transform:translate(14px)}.branch-form-page{display:flex;flex-direction:column;gap:1.5rem}.form-header{display:flex;flex-direction:column;gap:.75rem}.form-header h1{margin:0;font-size:1.8rem}.form-header p{margin:0;color:var(--text-secondary);font-size:.95rem}.back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-size:.9rem;width:fit-content}.form-container{padding:2rem;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:#ffffff05}.error-message{display:flex;gap:.5rem;align-items:center;padding:.75rem 1rem;border-radius:10px;margin-bottom:1.5rem;background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:var(--accent-danger);font-size:.9rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--text-secondary)}.form-group label svg{color:var(--accent-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem .9rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-primary);font-size:.9rem;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary);background:#ffffff0a}.form-group select{cursor:pointer}.attachments-section{display:flex;flex-direction:column;gap:1rem}.attachment-actions{display:flex;gap:.75rem;flex-wrap:wrap}.attachment-item{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:8px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2)}.attachment-item span{flex:1;font-size:.85rem}.btn-icon{padding:.4rem;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.06)}.btn-cancel,.btn-submit{padding:.7rem 1.5rem;border-radius:8px;border:none;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-cancel{background:#ffffff0d;color:var(--text-primary);border:1px solid rgba(255,255,255,.1)}.btn-cancel:hover:not(:disabled){background:#ffffff14;transform:translateY(-1px)}.btn-submit{background:var(--accent-primary);color:#fff}.btn-submit:hover:not(:disabled){background:#0c7dc5;transform:translateY(-1px)}.btn-cancel:disabled,.btn-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.info-note{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-top:1rem;border-radius:8px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2);color:var(--accent-primary);font-size:.85rem}.standard-fee-structure-page .student-form{width:100%}.standard-fee-structure-page .form-grid{display:grid;grid-template-columns:1fr 180px;gap:12px;align-items:start}.standard-fee-structure-page .col-span-6{grid-column:1 / -1}.standard-fee-structure-page .form-field{display:flex;flex-direction:column;gap:8px}.standard-fee-structure-page .form-field input,.standard-fee-structure-page .form-field select{padding:12px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.standard-fee-structure-page .items-list{margin-top:8px}.standard-fee-structure-page .items-header{display:grid;grid-template-columns:1fr 160px 80px 40px;gap:8px;align-items:center;padding:6px 0;color:var(--text-muted);font-size:13px}.standard-fee-structure-page .item-row{display:grid;grid-template-columns:1fr 160px 80px 40px;gap:8px;align-items:center;margin:8px 0}.standard-fee-structure-page .item-row.invalid .select-input,.standard-fee-structure-page .item-row.invalid .amount-input{border-color:#ef4444;box-shadow:0 0 0 3px #ef44440f}.standard-fee-structure-page .item-row .select-input{width:100%}.standard-fee-structure-page .item-row .amount-input{width:140px}.standard-fee-structure-page .item-row .action-col{display:flex;justify-content:flex-end}.standard-fee-structure-page .item-row .delete{background:transparent;border:1px solid rgba(255,255,255,.04);border-radius:8px;padding:6px}.standard-fee-structure-page .assigned-fe-structures{margin-top:10px}.standard-fee-structure-page .assigned-fe-list{list-style:none;padding:0;margin:0}.standard-fee-structure-page .assigned-fe-item{padding:8px 10px;border-radius:8px;background:var(--bg-glass);margin-bottom:8px;display:flex;flex-direction:column}.standard-fee-structure-page .fe-item-main{font-weight:600}.standard-fee-structure-page .fe-item-meta{font-size:12px;color:var(--text-muted);margin-top:4px}.standard-fee-structure-page .form-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.standard-fee-structure-page .form-footer .btn-cancel{flex:1}.standard-fee-structure-page .form-footer .btn-primary{width:220px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.search-section{display:flex;align-items:center;gap:.5rem}.search-box{display:flex;align-items:center;gap:.75rem;background:var(--bg-glass);border:1px solid var(--border-color);padding:0 .75rem;border-radius:8px;max-width:420px;width:100%;height:40px}.search-box input{border:none;outline:none;background:transparent;width:100%;height:100%}@media(max-width:720px){.search-section{flex-direction:column;align-items:stretch}.search-box{max-width:100%}}.error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.branch-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;transition:all .3s ease;display:flex;flex-direction:column;gap:1.25rem}.branch-actions{display:flex;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color);flex-wrap:wrap}.branch-actions .btn-edit,.branch-actions .btn-delete,.branch-actions .btn-primary{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color);height:38px;min-width:fit-content}.branch-actions .btn-reset{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color);height:38px;min-width:fit-content;background:var(--accent-danger);color:#fff}.branch-actions .btn-reset:hover{transform:translateY(-1px);box-shadow:0 4px 10px #00000014}.btn-edit{background:var(--bg-glass);color:var(--accent-primary);border:1px solid var(--border-color)}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;color:#fff;box-shadow:0 2px 8px #0ea5e940}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.btn-delete{background:transparent;color:var(--accent-danger);border:1px solid var(--border-color)}.btn-delete:hover{background:#ef44441a;border-color:var(--accent-danger);transform:translateY(-1px)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:8px;background:#0ea5e914;border:1px solid rgba(14,165,233,.15);color:var(--accent-primary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.branches-page .search-section>.icon-btn{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.branch-form-page{width:100%;max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.form-header{display:flex;flex-direction:column;gap:.5rem}.back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s ease;width:fit-content}.back-btn:hover{background:var(--bg-glass);border-color:var(--border-hover);color:var(--accent-primary);transform:translate(-4px);box-shadow:none}.form-header h1{font-size:2rem;margin-top:1rem}.form-header p{font-size:1rem;color:var(--text-muted)}.form-container{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:2rem;box-shadow:var(--shadow-lg)}.error-message{padding:1rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:var(--accent-danger);font-size:.95rem;margin-bottom:1.5rem}.branch-form{display:flex;flex-direction:column;gap:1.5rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:500;color:var(--text-secondary)}.required{color:var(--accent-danger)}.form-group input,.form-group textarea{width:100%;padding:.85rem 1.15rem;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);color:var(--text-primary);font-size:.95rem;font-family:inherit;transition:all .2s ease;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.form-group textarea{min-height:100px}.form-actions{display:flex;gap:1rem;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.btn-cancel,.btn-submit{flex:1;padding:.85rem 1.5rem;border-radius:10px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-cancel:hover:not(:disabled){background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(-1px)}.btn-submit{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;color:#fff}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #0ea5e94d}.btn-cancel:disabled,.btn-submit:disabled{opacity:.6;cursor:not-allowed}@media(max-width:720px){.form-container{padding:1.5rem}.form-header h1{font-size:1.5rem}.form-actions{flex-direction:column}}@media(max-width:430px){.form-container{padding:1rem}.back-btn span{display:none}}.custom-select{position:relative;width:100%;font-size:.95rem}.custom-select.disabled{opacity:.6;pointer-events:none}.custom-select-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.55rem .85rem;border-radius:8px;border:1px solid rgba(255,255,255,.05);background:#ffffff05;color:var(--text-primary);cursor:pointer;height:38px}.custom-select-toggle:hover{border-color:#0ea5e94d;background:#ffffff08}.custom-select-value.placeholder{color:var(--text-muted)}.custom-select-caret{opacity:.8}.custom-select-list{position:absolute;z-index:3000;top:calc(100% + 8px);left:0;right:0;background:var(--bg-primary);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--border-color);border-radius:10px;padding:6px;box-shadow:var(--shadow-md);max-height:220px;overflow:auto}.custom-select-item{padding:8px 10px;border-radius:8px;cursor:pointer;display:flex;align-items:center}.custom-select-item:hover{background:#0ea5e90f;transform:translateY(-1px)}.custom-select-item.selected{background:#0ea5e91f;font-weight:600}.option-name{flex:1}.branches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem}.branch-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:0;transition:all .2s ease;display:flex;flex-direction:column;overflow:hidden}.branch-card:hover{border-color:#0ea5e94d;box-shadow:0 8px 24px #0000001f}.branch-header{padding:1.5rem;background:linear-gradient(135deg,#0ea5e914,#06b6d414);border-bottom:2px solid rgba(14,165,233,.2)}.branch-header h3{font-size:2rem;font-weight:700;color:var(--accent-primary);margin:0;letter-spacing:-.02em;text-transform:uppercase}.branch-details{display:flex;flex-direction:column;gap:0;flex:1}.share-section{padding:1.5rem;background:var(--bg-glass);border-bottom:1px solid var(--border-color)}.section-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.section-title:before{content:"";width:3px;height:16px;background:var(--accent-primary);border-radius:2px}.share-row{display:flex;flex-direction:column;gap:1rem;width:100%}.share-label{font-weight:600;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.share-controls{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:100%}.share-controls-row{display:flex;gap:.75rem;align-items:stretch;width:100%}.share-input{flex:0 0 auto;width:100px;padding:0 .85rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font-size:.95rem;transition:all .2s ease;font-weight:500;box-sizing:border-box;height:44px;line-height:44px}.share-input:hover{border-color:var(--border-hover);background:var(--bg-glass-hover)}.share-input:focus{outline:none;border-color:var(--accent-primary);background:#0ea5e914;box-shadow:0 0 0 3px #0ea5e926}.share-btn{padding:0 1.5rem;font-size:.875rem;font-weight:600;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 2px 8px #0ea5e933;height:44px;flex-shrink:0}.share-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0ea5e959}.share-btn:active:not(:disabled){transform:translateY(0)}.share-btn:disabled{opacity:.5;cursor:not-allowed}.assigned-section{padding:1.5rem;background:#0ea5e908;border-bottom:1px solid var(--border-color);min-height:120px}.assigned-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.refresh-btn{padding:0;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0}.assigned-row{display:flex;flex-direction:column;gap:.75rem}.assigned-label{font-weight:500;font-size:.875rem;color:var(--text-secondary);white-space:nowrap}.assigned-content{min-height:40px;display:flex;align-items:center}.assigned-empty{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-glass);border:1px dashed var(--border-color);border-radius:8px}.assigned-empty .muted{font-size:.875rem;color:var(--text-muted);opacity:.7;font-style:italic}.assigned-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:linear-gradient(135deg,#0ea5e914,#06b6d40d);border:1px solid rgba(14,165,233,.15);border-radius:10px;transition:all .2s ease}.assigned-item:hover{background:linear-gradient(135deg,#0ea5e91f,#06b6d414);border-color:#0ea5e94d;transform:translate(4px);box-shadow:0 2px 8px #0ea5e926}.assigned-item>div{display:flex;align-items:center;gap:.75rem;flex:1}.assigned-name{font-weight:600;color:var(--text-primary);font-size:.95rem}.assigned-meta{color:var(--text-muted);font-size:.8rem;opacity:.9;font-weight:500}.actions-section{padding:1.25rem 1.5rem;background:var(--bg-glass)}.branch-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;width:100%}.branch-actions .btn-edit,.branch-actions .btn-delete{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid;width:100%}.btn-edit{background:#0ea5e91a;color:var(--accent-primary);border-color:#0ea5e940}.btn-edit:hover{background:#0ea5e92e;border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0ea5e940}.btn-delete{background:#ef44441a;color:var(--accent-danger);border-color:#ef444440}.btn-delete:hover{background:#ef44442e;border-color:var(--accent-danger);transform:translateY(-2px);box-shadow:0 4px 12px #ef444440}.muted{color:var(--text-muted);font-size:.9rem}} .modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:overlayFade .2s ease}@media(max-width:960px){.branches-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.branch-header h3{font-size:1.5rem}}@media(max-width:768px){.branch-actions{grid-template-columns:1fr}.share-section,.assigned-section,.actions-section{padding:1.25rem}.section-title{font-size:.8rem}.refresh-btn span{display:none}}@media(max-width:430px){.branches-grid{grid-template-columns:1fr}.branch-header{padding:1.25rem}.branch-header h3{font-size:1.35rem}.share-section,.assigned-section,.actions-section{padding:1rem}.share-controls-row{grid-template-columns:1fr}.share-btn{width:100%}}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.form-card{background:var(--card-bg, #fff);border:1px solid rgba(0,0,0,.06);padding:16px;border-radius:8px;max-width:720px}.form-row{display:flex;gap:12px;align-items:center;margin-bottom:12px}.form-row label{min-width:110px;font-weight:600}.form-row input[type=text],.form-row select{flex:1 1 auto;padding:8px 10px;border:1px solid rgba(0,0,0,.08);border-radius:6px}.form-actions{display:flex;gap:8px;margin-top:8px}.error-message{padding:1rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#ef4444!important;font-size:.95rem;margin-bottom:1.5rem;font-weight:500}.error-message span{color:#ef4444!important}@media(max-width:640px){.form-row{flex-direction:column;align-items:stretch}.form-row label{min-width:unset;margin-bottom:6px}}.branches-page{width:100%;display:flex;flex-direction:column;gap:2rem}.page-header p{font-size:1rem;color:var(--text-muted)}.error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:var(--accent-danger);font-size:.95rem}.search-section{width:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;margin-top:2rem}.empty-state svg{color:var(--text-muted);margin-bottom:1.5rem;opacity:.5}.empty-state h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.empty-state p{font-size:1rem;color:var(--text-muted);margin-bottom:2rem}.branches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.branch-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:1.25rem;transition:all .3s ease;display:flex;flex-direction:column;gap:1.25rem;min-height:320px;justify-content:space-between;overflow:hidden}.branch-card:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(-4px);box-shadow:var(--shadow-xl)}.branch-header{display:flex;align-items:center;gap:1rem}.branch-icon{width:50px;height:50px;border-radius:12px;background:linear-gradient(135deg,#0ea5e926,#06b6d426);display:flex;align-items:center;justify-content:center;color:var(--accent-primary);flex-shrink:0}.branch-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);flex:1}.branch-details{display:flex;flex-direction:column;gap:.75rem}.share-row{display:flex;align-items:flex-start;gap:0}.share-label{min-width:135px;font-weight:500;font-size:.9rem;color:var(--text-secondary);padding-top:.6rem;flex-shrink:0}.share-controls{flex:1;display:flex;gap:.5rem;min-width:0}.share-select{flex:1;min-width:0;padding:.55rem .85rem;border-radius:8px;border:1px solid rgba(255,255,255,.05);background:#ffffff05;color:var(--text-primary);font-size:.9rem;height:38px;cursor:pointer;transition:all .2s ease}.share-select:hover{border-color:#0ea5e94d;background:#ffffff08}.share-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.share-btn{flex:0 0 auto;padding:.55rem 1.25rem;font-size:.9rem;font-weight:500;height:38px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0ea5e940}.share-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.share-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0ea5e94d}.assigned-row{display:flex;align-items:flex-start;gap:0}.assigned-label{min-width:135px;font-weight:500;font-size:.9rem;color:var(--text-secondary);padding-top:.15rem;flex-shrink:0}.assigned-content{flex:1}.assigned-empty,.assigned-with-list{display:flex;align-items:flex-start;gap:.75rem}.assigned-list{flex:1;margin:0;padding-left:1.25rem;font-size:.9rem;color:var(--text-secondary)}.assigned-list li{margin-bottom:.25rem}.assigned-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.assigned-name{flex:1}.assigned-section{padding:.75rem .5rem .25rem}.assigned-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.section-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.branches-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:500;width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0}.branches-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.05)}.branches-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.assigned-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.75rem}.assigned-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .75rem;background:linear-gradient(135deg,#0ea5e90a,#06b6d408);border:1px solid rgba(14,165,233,.08);border-radius:10px;transition:all .15s ease}.assigned-item:hover{background:linear-gradient(135deg,#0ea5e914,#06b6d40d);border-color:#0ea5e929;transform:translate(3px);box-shadow:0 2px 8px #0ea5e914}.unassign-btn{width:36px;height:36px;padding:0;border-radius:8px;background:#ef44441a;border:1px solid rgba(239,68,68,.25);color:var(--accent-danger);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.unassign-btn:hover:not([disabled]){background:#ef444433;border-color:var(--accent-danger);transform:scale(1.1);box-shadow:0 2px 8px #ef44444d}.unassign-btn[disabled]{opacity:.4;cursor:not-allowed}.muted{color:var(--text-muted);font-size:.9rem;flex:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#0ea5e914;border:1px solid rgba(14,165,233,.15);color:var(--accent-primary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.icon-btn:hover{background:#0ea5e926;transform:translateY(-1px);box-shadow:0 2px 8px #0ea5e933}.detail-item{display:flex;align-items:flex-start;gap:.75rem;font-size:.9rem;color:var(--text-secondary)}.branch-actions{display:flex;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.branch-actions .btn-edit,.branch-actions .btn-delete{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color)}.btn-edit{background:var(--bg-glass);color:var(--accent-primary)}.btn-edit:hover{background:#0ea5e91a;border-color:var(--accent-primary);transform:translateY(-1px)}.btn-delete{background:var(--accent-danger);color:#fff;border:none;box-shadow:var(--shadow-md)}.btn-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.page-header>button.btn-primary{flex:0 0 auto;min-width:140px;max-width:260px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:overlayFade .2s ease}.modal-content{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border:1px solid var(--border-color);border-radius:16px;padding:2rem;max-width:400px;width:90%;box-shadow:var(--shadow-xl);animation:modalSlide .3s ease}.modal-content h3{font-size:1.25rem;margin-bottom:1rem;color:var(--text-primary)}.btn-cancel,.btn-confirm-delete{flex:1;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.btn-confirm-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}@media(max-width:960px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-header button{width:100%}.branches-grid{grid-template-columns:1fr}}@media(max-width:720px){.page-header h1{font-size:1.5rem}.branch-actions{flex-direction:column}.modal-content{padding:1.5rem}}.course-outlines-page{padding:20px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.search-section{margin-bottom:16px}.search-box{display:flex;align-items:center;gap:.5rem}.search-box .refresh-btn{margin-left:.5rem;padding:.45rem .7rem;display:inline-flex;align-items:center;gap:.5rem;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .12s ease;font-size:.9rem}.search-box .refresh-btn:hover:not(:disabled){background:#0ea5e90f;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.search-box .refresh-label{display:inline-block}@media(max-width:640px){.search-box .refresh-label{display:none}}.outlines-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.outline-card{background:var(--bg-glass);border:1px solid var(--border-color);padding:12px;border-radius:12px;display:flex;flex-direction:column;justify-content:space-between;min-height:140px}.outline-header h3{margin:0 0 8px}.outline-body p{margin:0 0 12px;color:var(--muted-text)}.outline-actions{display:flex;gap:8px;justify-content:flex-end}.btn-edit,.btn-delete{display:inline-flex;gap:8px;align-items:center;padding:6px 10px;border-radius:8px;border:none;cursor:pointer}.btn-delete{background:transparent;color:var(--danger)}.empty-state{text-align:center;padding:40px}.loading-records{display:flex;align-items:center;gap:.75rem;padding:2rem;justify-content:center;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px}.loading-records p{margin:0;color:var(--text-muted);font-weight:600}.share-section{padding:12px;background:var(--bg-glass);border-top:1px solid var(--border-color)}.section-title{font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.share-row{display:flex;flex-direction:column;gap:.75rem}.share-controls{display:flex;flex-direction:column;gap:.5rem}.share-controls-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center}.share-select,.share-input{padding:.55rem .75rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.share-btn{padding:.55rem 1rem;font-weight:600;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border:none;border-radius:8px}.assigned-section{padding:12px;background:#0ea5e908;border-top:1px solid var(--border-color);min-height:80px}.assigned-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.course-outlines-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:500;width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0}.course-outlines-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.05)}.course-outlines-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.assigned-row{display:flex;flex-direction:column;gap:8px}.assigned-content{min-height:36px;display:flex;align-items:center;width:100%}.assigned-empty{display:flex;align-items:center;justify-content:center;padding:12px;background:var(--bg-glass);border:1px dashed var(--border-color);border-radius:8px}.assigned-with-list{width:100%}.assigned-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;width:100%}.assigned-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;background:linear-gradient(135deg,#0ea5e90f,#06b6d408);border-radius:10px;border:1px solid rgba(14,165,233,.12);width:100%;box-sizing:border-box}.assigned-name{font-weight:600}.assigned-meta{color:var(--text-muted);font-size:.85rem}.unassign-btn{width:36px;height:36px;border-radius:8px;background:#ef444414;border:1px solid rgba(239,68,68,.18);color:var(--accent-danger);display:inline-flex;align-items:center;justify-content:center}.assigned-info{display:flex;align-items:center;gap:12px;flex:1}.assigned-item{width:100%;box-sizing:border-box}.assigned-name{font-weight:600;flex:1 1 auto;white-space:normal;overflow:visible;text-overflow:unset;max-width:none}.assigned-meta{color:var(--text-muted);font-size:.9rem;white-space:nowrap}.unassign-btn{margin-left:0}.error-banner{display:flex;gap:8px;align-items:center;background:#ff00000d;padding:8px 12px;border-radius:8px;margin-bottom:12px}@media(max-width:600px){.page-header{flex-direction:column;align-items:flex-start}}.periods-page{width:100%;display:flex;flex-direction:column;gap:2rem}.periods-page .page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.periods-page .page-header h1{font-size:2rem;margin-bottom:.5rem}.periods-page .page-header p{font-size:1rem;color:var(--text-muted)}.periods-page .search-section{display:flex;align-items:center;gap:.5rem;margin-bottom:16px}.periods-page .search-box{display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;height:var(--control-height);flex:1;max-width:500px;transition:all .2s ease}.periods-page .search-box:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.periods-page .search-box input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.875rem}.periods-page .search-box input::placeholder{color:var(--text-muted)}.periods-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height)}.periods-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.periods-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.periods-page .periods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.periods-page .period-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;padding:0;transition:all .2s ease;display:flex;flex-direction:column;overflow:hidden}.periods-page .period-card:hover{border-color:#0ea5e94d;box-shadow:0 8px 24px #0000001f}.periods-page .period-header{padding:1.5rem;background:linear-gradient(135deg,#0ea5e914,#06b6d414);border-bottom:2px solid rgba(14,165,233,.2);display:flex;align-items:center;gap:1rem}.periods-page .period-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #0ea5e94d}.periods-page .period-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0;letter-spacing:-.01em}.periods-page .period-assignment-section{padding:1.5rem;background:var(--bg-glass);display:flex;flex-direction:column;gap:1rem}.periods-page .section-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.periods-page .section-title:before{content:"";width:3px;height:16px;background:var(--accent-primary);border-radius:2px}.periods-page .form-group{display:flex;flex-direction:column;gap:.5rem}.periods-page .form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.periods-page .time-inputs-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.periods-page .time-input{padding:.75rem 1rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font-size:.95rem;transition:all .2s ease;font-family:inherit}.periods-page .time-input:hover{border-color:var(--border-hover);background:var(--bg-glass-hover)}.periods-page .time-input:focus{outline:none;border-color:var(--accent-primary);background:#0ea5e914;box-shadow:0 0 0 3px #0ea5e926}.periods-page .loading-indicator{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#0ea5e90d;border:1px solid rgba(14,165,233,.15);border-radius:8px;color:var(--text-secondary);font-size:.875rem}.periods-page .share-btn{padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 2px 8px #0ea5e933;margin-top:.5rem}.periods-page .share-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0ea5e959}.periods-page .share-btn:active:not(:disabled){transform:translateY(0)}.periods-page .share-btn:disabled{opacity:.5;cursor:not-allowed}.periods-page .btn-loading{opacity:.7}.periods-page .assigned-periods-section{padding:1.5rem;background:#0ea5e908;border-top:1px solid var(--border-color)}.periods-page .assigned-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.periods-page .assigned-header-center{display:flex;justify-content:center}.periods-page .assigned-header-right{display:flex;justify-content:flex-end;gap:.25rem}.refresh-btn{padding:.5rem .75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:500}.refresh-btn.icon-only{padding:.4rem;width:40px;height:40px;justify-content:center;display:inline-flex;align-items:center}.periods-page .timetable-btn.icon-only{padding:.4rem;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.periods-page .timetable-btn.icon-only:hover:not(:disabled){background:#0ea5e90f;border-color:var(--accent-primary);transform:translateY(-2px)}.periods-page .delete-all-btn.icon-only{padding:.4rem;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#ef44440f;border:1px solid rgba(239,68,68,.12);color:var(--accent-danger)}.periods-page .delete-all-btn.icon-only:hover:not(:disabled){background:#ef44441f;border-color:#ef444440;transform:translateY(-2px)}.refresh-btn:hover:not(:disabled){background:#0ea5e91a;border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.05)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.periods-page .assigned-periods-list{max-height:260px;min-height:48px;overflow-y:auto;padding-right:8px}.periods-page .timetable-modal{max-width:100vw;width:100vw;height:auto;max-height:none;overflow-y:visible;overflow-x:hidden;margin:0 auto;box-sizing:border-box;padding:1.5rem}.periods-page .modal-content.timetable-modal{width:min(1200px,98vw)!important;max-width:1200px!important;margin:1.5rem auto!important;left:auto!important;right:auto!important;padding:1.5rem!important;box-sizing:border-box}.periods-page .timetable-wrapper{margin-top:.5rem}.periods-page .timetable-grid{display:grid;gap:.5rem;align-items:start}.periods-page .timetable-head{font-weight:700;padding:.5rem .6rem;background:#ffffff05;border-radius:6px;text-align:left}.periods-page .timetable-head.empty-cell{text-align:left}.periods-page .timetable-time-cell{padding:.5rem .6rem;color:var(--text-muted);font-weight:600}.periods-page .timetable-cell{min-height:42px;padding:.35rem .5rem;border-radius:6px;background:#0ea5e905;border:1px solid rgba(14,165,233,.06)}.periods-page .tt-course{font-weight:600;color:var(--text-primary);font-size:.92rem}.periods-page .tt-teacher{font-size:.82rem;color:var(--text-muted)}.periods-page .periods-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.75rem}.periods-page .period-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;background:linear-gradient(135deg,#0ea5e90f,#06b6d40a);border:1px solid rgba(14,165,233,.12);border-radius:8px;transition:all .12s ease;height:auto}.periods-page .period-item:hover{background:linear-gradient(135deg,#0ea5e91f,#06b6d414);border-color:#0ea5e94d;transform:translate(4px);box-shadow:0 2px 8px #0ea5e926}.periods-page .period-info{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.periods-page .period-course{font-weight:600;color:var(--text-primary);font-size:.92rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.05rem;max-height:2.2rem}.periods-page .period-course{flex:0 0 140px;padding-right:.6rem;word-break:break-word}.periods-page .period-time,.period-teacher,.period-day{color:var(--text-muted);font-size:.78rem;font-weight:500}.periods-page .period-meta{display:flex;gap:.6rem;align-items:center;flex:1;justify-content:flex-start}.periods-page .delete-period-btn{width:36px;height:36px;padding:0;border-radius:8px;background:#ef44441a;border:1px solid rgba(239,68,68,.25);color:var(--accent-danger);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.periods-page .delete-period-btn:hover:not(:disabled){background:#ef444433;border-color:var(--accent-danger);transform:scale(1.1);box-shadow:0 2px 8px #ef44444d}.periods-page .delete-period-btn:disabled{opacity:.4;cursor:not-allowed}.periods-page .periods-empty{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-glass);border:1px dashed var(--border-color);border-radius:8px}.periods-page .periods-empty .muted{font-size:.875rem;color:var(--text-muted);opacity:.7;font-style:italic}.periods-page .modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:overlayFade .2s ease}.periods-page .modal-content{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-lg);backdrop-filter:var(--blur-lg);border:1px solid var(--border-color);border-radius:16px;padding:2rem;max-width:400px;width:90%;box-shadow:var(--shadow-xl);animation:modalSlide .3s ease}.periods-page .modal-content.students-modal{width:min(720px,96vw);max-width:720px;padding:1.25rem}.periods-page .students-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.periods-page .students-modal-search{flex:1 1 auto}.periods-page .students-search-input{width:100%;padding:.6rem .75rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.periods-page .students-modal-body{max-height:420px;overflow-y:auto;padding-right:8px}.periods-page .student-item{padding:.7rem .5rem;display:flex;flex-direction:column;gap:.25rem;border-bottom:1px solid rgba(255,255,255,.02)}.periods-page .student-name{font-weight:600;color:var(--text-primary)}.periods-page .student-meta{color:var(--text-muted);font-size:.9rem}.periods-page .students-pagination{display:flex;gap:.75rem;align-items:center;justify-content:center}.periods-page .students-pagination.students-pagination-top{justify-content:flex-end;gap:.75rem}.periods-page .btn-pager{padding:.45rem .8rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);cursor:pointer}.periods-page .pager-info{color:var(--text-secondary);font-weight:600}@keyframes modalSlide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayFade{0%{opacity:0}to{opacity:1}}.periods-page .modal-content h3{font-size:1.25rem;margin-bottom:1rem;color:var(--text-primary)}.periods-page .modal-content p{font-size:.95rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.6}.periods-page .btn-cancel,.btn-confirm-delete{flex:1;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-confirm-delete:disabled{opacity:.6;cursor:not-allowed}.periods-page .muted{color:var(--text-muted)}.periods-page .weekday-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.periods-page .weekday-checkbox{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border-radius:8px;cursor:pointer;color:var(--text-primary);font-size:.92rem;-webkit-user-select:none;user-select:none;transition:background .15s ease,transform .08s ease}.periods-page .weekday-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary)}.periods-page .weekday-checkbox.selected{background:#0ea5e90f;border:1px solid rgba(14,165,233,.12);transform:translateY(-1px)}.periods-page .weekday-checkbox span{color:var(--text-primary)}.periods-page .error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:var(--accent-danger);font-size:.95rem}.periods-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;margin-top:2rem}.periods-page .empty-state svg{color:var(--text-muted);opacity:.5;margin-bottom:1rem}.periods-page .empty-state h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.periods-page .empty-state p{color:var(--text-muted);font-size:.95rem;max-width:400px}.periods-page .fee-structures-list{display:flex;flex-direction:column;gap:.75rem}.periods-page .fee-structure-card{display:flex;flex-direction:column;background:linear-gradient(135deg,#0ea5e90f,#06b6d40a);border:1px solid rgba(14,165,233,.12);border-radius:8px;overflow:hidden;transition:all .2s ease}.periods-page .fee-structure-card:hover{border-color:#0ea5e94d;box-shadow:0 2px 8px #0ea5e926}.periods-page .fee-structure-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem;border-bottom:1px solid rgba(14,165,233,.1)}.periods-page .fee-structure-title{display:flex;flex-direction:column;gap:.5rem;flex:1}.periods-page .fee-structure-name{font-weight:600;color:var(--text-primary);font-size:.95rem}.periods-page .fee-structure-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.periods-page .fee-total{font-weight:600;color:var(--accent-primary);font-size:.875rem}.periods-page .status-badge{display:inline-block;padding:.25rem .6rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.periods-page .status-badge.active{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.periods-page .status-badge.inactive{background:#9ca3af26;color:#9ca3af;border:1px solid rgba(156,163,175,.3)}.periods-page .fee-items-list{display:flex;flex-direction:column;padding:.5rem .75rem .75rem;gap:.5rem}.periods-page .fee-item-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#0ea5e90a;border-radius:6px;transition:background .15s ease}.periods-page .fee-item-row:hover{background:#0ea5e914}.periods-page .fee-item-name{font-size:.875rem;color:var(--text-primary);font-weight:500}.periods-page .fee-item-amount{font-size:.875rem;font-weight:600;color:var(--accent-primary);font-variant-numeric:tabular-nums}@media(max-width:960px){.periods-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}}@media(max-width:768px){.time-inputs-row{grid-template-columns:1fr}.period-assignment-section{padding:1.25rem}}@media(max-width:430px){.periods-grid{grid-template-columns:1fr}.period-header{padding:1.25rem}.period-header h3{font-size:1.1rem}.period-assignment-section{padding:1rem}.share-btn{width:100%}}.modal-content.students-modal{width:min(720px,96vw);max-width:720px;padding:1.25rem;max-height:80vh;display:flex;flex-direction:column;gap:.75rem}.users-modal-overlay{background:#000000b8!important;-webkit-backdrop-filter:blur(6px)!important;backdrop-filter:blur(6px)!important}.modal-content.students-modal{background:#060a10f5;border:1px solid rgba(255,255,255,.04)}.students-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.students-modal-search{display:flex;gap:.75rem;align-items:center}.students-modal-body{min-height:320px;max-height:56vh;overflow-y:auto;padding-right:8px;transition:background-color .15s ease}.students-modal-body .loading-container,.students-modal-body .empty-state{height:100%;display:flex;align-items:center;justify-content:center}.modal-actions{margin-top:8px}.students-search-input{min-width:220px;padding:8px 10px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.close-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px}.close-btn:hover{background:#ffffff05}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85rem);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{text-align:center;white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__day-name--disabled,.react-datepicker__day--disabled,.react-datepicker__time-name--disabled{cursor:default;color:#ccc}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.5rem;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media(max-width:400px),(max-height:550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}.student-form{width:100%}.student-form .form-grid{display:grid;grid-template-columns:1fr 180px;gap:12px;align-items:start}.student-form .col-span-6{grid-column:1 / -1}.student-form .form-field{display:flex;flex-direction:column;gap:8px}.student-form .form-field input,.student-form .form-field select{padding:12px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.items-list{margin-top:8px}.items-list .items-header{display:grid;grid-template-columns:1fr 160px 80px 40px;gap:8px;align-items:center;padding:6px 0;color:var(--text-muted);font-size:13px}.items-list .item-row{display:grid;grid-template-columns:1fr 160px 80px 40px;gap:8px;align-items:center;margin:8px 0}.items-list .item-row.invalid .select-input,.items-list .item-row.invalid .amount-input{border-color:#ef4444;box-shadow:0 0 0 3px #ef44440f}.items-list .item-row .select-input{width:100%}.items-list .item-row .amount-input{width:140px}.items-list .item-row .action-col{display:flex;justify-content:flex-end}.items-list .item-row .delete{background:transparent;border:1px solid rgba(255,255,255,.04);border-radius:8px;padding:6px}.assigned-fe-structures{margin-top:10px}.assigned-fe-list{list-style:none;padding:0;margin:0}.assigned-fe-item{padding:8px 10px;border-radius:8px;background:var(--bg-glass);margin-bottom:8px;display:flex;flex-direction:column}.fe-item-main{font-weight:600}.fe-item-meta{font-size:12px;color:var(--text-muted);margin-top:4px}.student-form .form-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.student-form .form-footer .btn-cancel{flex:1}.student-form .form-footer .btn-primary{width:220px}.student-form-page{width:min(1200px,100%);margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:12px;background:transparent;color:var(--text-secondary);cursor:pointer;width:fit-content;font-size:.95rem;transition:all .2s ease}.form-header h1{font-size:2rem;margin-top:.75rem}.form-container{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:18px;padding:2rem;box-shadow:var(--shadow-lg)}.error-message{padding:.85rem 1rem;border-radius:10px;background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:var(--accent-danger);margin-bottom:1.25rem}.student-form{display:flex;flex-direction:column;gap:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;align-items:flex-start;width:100%}.form-grid label,.accordion-content-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:var(--text-secondary);align-items:flex-start}.form-grid input,.form-grid select,.form-grid textarea,.react-datepicker-input{width:100%;padding:.65rem .9rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font:inherit}.react-datepicker-input{height:44px}.form-grid textarea{min-height:90px;resize:vertical}.col-span-2{grid-column:auto / span 2}.col-span-6{grid-column:auto / span 6}.photo-field{display:flex;flex-direction:column;gap:.5rem}.photo-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.photo-controls{display:flex;gap:.75rem;flex-wrap:wrap}.btn-secondary-sm{padding:.45rem .9rem;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff14;color:var(--text-primary);cursor:pointer;font-size:.85rem}.img-preview{width:120px;height:120px;border-radius:10px;object-fit:cover;border:1px solid rgba(255,255,255,.1)}.accordion{width:100%}.accordion-toggle{width:100%;text-align:left;padding:.85rem 1rem;background:#ffffff0d;border:1px solid var(--border-color);border-radius:12px;font-weight:600;cursor:pointer;transition:background .2s ease}.accordion-toggle:hover{background:#ffffff1f}.accordion-content-grid{margin-top:.5rem;display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;padding:.75rem 0}.accordion-content-grid label{font-size:.85rem;font-weight:500}.accordion-content-grid input,.accordion-content-grid select,.accordion-content-grid textarea{width:100%;padding:.65rem .9rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font:inherit}.form-grid textarea,.accordion-content-grid textarea{min-height:88px;resize:vertical}.form-grid select,.accordion-content-grid select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:right 12px center;background-repeat:no-repeat;background-size:8px 8px;padding-right:2.5rem}.form-errors{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;border-top:1px solid var(--border-color);padding-top:1rem}.remarks-row{display:flex;flex-direction:column;gap:.35rem}.remarks-row textarea{min-height:110px;resize:vertical}.btn-cancel:hover{border-color:var(--border-hover);transform:translateY(-1px)}.btn-primary:not(:disabled):hover{box-shadow:0 10px 20px #0ea5e940;transform:translateY(-1px)}.field-label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}@media(max-width:1200px){.form-grid,.accordion-content-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:860px){.form-grid,.accordion-content-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.form-grid,.accordion-content-grid{grid-template-columns:1fr}.form-actions{flex-direction:column;align-items:stretch}.btn-cancel,.btn-primary{width:100%;justify-content:center}}.teacher-form-page{width:min(950px,100%);margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.form-header{display:flex;flex-direction:column;gap:.25rem}.form-header h1{font-size:1.9rem;margin-top:.75rem}.form-header p{color:var(--text-muted)}.back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border:1px solid var(--border-color);border-radius:12px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.9rem;transition:all .2s ease;width:fit-content}.back-btn:hover{border-color:var(--border-hover);color:var(--accent-primary);transform:translate(-2px)}.form-container{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:16px;padding:1.8rem;box-shadow:var(--shadow-lg)}.error-message{padding:.65rem .9rem;border-radius:10px;background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:var(--accent-danger);margin-bottom:1rem}.teacher-form{display:flex;flex-direction:column;gap:1.25rem}.teacher-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.teacher-form-grid label{display:flex;flex-direction:column;gap:.35rem;font-weight:500;color:var(--text-secondary);font-size:.9rem}.teacher-form-grid input,.teacher-form-grid select,.teacher-form-grid textarea{width:100%;padding:.65rem .9rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font:inherit}.teacher-form-grid textarea{min-height:100px;resize:vertical}.teacher-form-grid select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:right 12px center;background-repeat:no-repeat;background-size:8px 8px;padding-right:2.5rem}.col-span-2{grid-column:span 2}.form-errors{display:flex;flex-direction:column;gap:.35rem}.error-text{color:var(--accent-danger);font-size:.85rem}.form-actions{display:flex;justify-content:flex-end;gap:1rem;border-top:1px solid var(--border-color);padding-top:1rem}.btn-cancel,.btn-primary{padding:.85rem 1.4rem;border-radius:10px;border:1px solid var(--border-color);font-weight:600;cursor:pointer;background:transparent;color:var(--text-primary);display:inline-flex;align-items:center;gap:.5rem;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;color:#fff}.btn-primary:disabled,.btn-cancel:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.teacher-form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column;align-items:stretch}.btn-cancel,.btn-primary{width:100%;justify-content:center}}.meeting-scheduler-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.meeting-scheduler-modal{background:var(--bg-primary, #fff);border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.meeting-scheduler-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color, #e0e0e0)}.meeting-scheduler-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary, #333)}.close-btn{background:none;border:none;font-size:2rem;color:var(--text-secondary, #666);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:var(--bg-hover, #f5f5f5);color:var(--text-primary, #333)}.meeting-scheduler-form,.user-selection-view{flex:1;overflow-y:auto;padding:24px}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px;font-size:.9rem}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-primary, #333);font-size:.95rem}.form-group input[type=text],.form-group input[type=password],.form-group input[type=number],.form-group input[type=datetime-local],.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:.95rem;font-family:inherit;transition:border-color .2s;background:var(--bg-primary, #fff);color:var(--text-primary, #333)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color, #007bff)}.form-group textarea{resize:vertical;min-height:80px}.form-group small{display:block;margin-top:4px;font-size:.85rem;color:var(--text-secondary, #666)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.selected-users-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.user-chip{background:var(--primary-light, #e3f2fd);color:var(--primary-color, #007bff);padding:4px 12px;border-radius:16px;font-size:.85rem;font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color, #e0e0e0)}.meeting-scheduler-modal .btn-primary,.meeting-scheduler-modal .btn-secondary,.meeting-scheduler-modal .btn-add,.meeting-scheduler-modal .btn-remove{padding:10px 20px;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.meeting-scheduler-modal .btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 2px 8px #0ea5e940}.meeting-scheduler-modal .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.meeting-scheduler-modal .btn-primary:disabled{opacity:.6;cursor:not-allowed}.meeting-scheduler-modal .btn-secondary{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border-color)}.meeting-scheduler-modal .btn-secondary:hover{background:var(--bg-glass-hover);border-color:var(--border-hover)}.user-selection-view{display:flex;flex-direction:column;gap:0;height:100%}.selection-header{display:flex;gap:12px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--border-color, #e0e0e0);flex-shrink:0}.search-box{flex:1;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-primary, #fff)}.search-box input{flex:1;border:none;outline:none;font-size:.95rem;background:transparent;color:var(--text-primary, #333)}.search-box:focus-within{border-color:var(--primary-color, #007bff)}.members-section-label{font-size:.75rem;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px;padding:16px 0 8px;flex-shrink:0}.members-list{flex:1;overflow-y:auto;margin-top:8px}.member-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;margin-bottom:8px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e0e0e0);transition:all .2s;cursor:pointer}.member-item:hover{background:var(--bg-hover, #f9f9f9);border-color:var(--border-hover, #ccc)}.member-item.selected{background:var(--primary-light, #e3f2fd);border-color:var(--primary-color, #007bff)}.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-color, #007bff);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;flex-shrink:0}.member-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.member-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.member-name{font-weight:500;color:var(--text-primary, #333);font-size:.95rem}.member-role{padding:2px 8px;background:var(--primary-color, #007bff);color:#fff;border-radius:12px;font-size:.7rem;font-weight:500;text-transform:capitalize}.member-role.admin-badge{background:var(--danger-color, #dc3545)}.member-status{padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:500}.member-status.online{background:var(--success-light, #d4edda);color:var(--success-dark, #155724)}.member-status.offline{background:var(--bg-secondary, #f0f0f0);color:var(--text-secondary, #666)}.member-email{font-size:.85rem;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary, #666)}@media(max-width:640px){.meeting-scheduler-modal{max-width:100%;max-height:100vh;border-radius:0}.form-row{grid-template-columns:1fr}.selection-header{flex-direction:column}.selection-header .btn-secondary{width:100%}}.meeting-list-container{padding:24px;max-width:1400px;margin:0 auto}.meeting-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.meeting-list-header h1{font-size:2rem;font-weight:600;color:var(--text-primary, #333);margin:0}.meeting-list-container .btn-create{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0ea5e940}.meeting-list-container .btn-create:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.meeting-filters{display:flex;gap:12px;margin-bottom:24px;border-bottom:2px solid var(--border-color, #e0e0e0);padding-bottom:2px}.filter-btn{background:none;border:none;padding:12px 20px;font-size:1rem;font-weight:500;color:var(--text-secondary, #666);cursor:pointer;position:relative;transition:all .2s}.filter-btn:hover,.filter-btn.active{color:var(--primary-color, #007bff)}.filter-btn.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary-color, #007bff)}.loading-state,.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary, #666)}.empty-state{max-width:400px;margin:60px auto}.empty-icon{font-size:4rem;margin-bottom:16px}.empty-state h3{font-size:1.5rem;margin:0 0 8px;color:var(--text-primary, #333)}.empty-state p{margin:0 0 24px;color:var(--text-secondary, #666)}.meetings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:20px}.meeting-card{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;padding:20px;transition:all .2s;display:flex;flex-direction:column;gap:16px}.meeting-card{min-height:360px;justify-content:space-between}.meeting-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.meeting-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.meeting-title{font-size:1.25rem;font-weight:600;color:var(--text-primary, #333);margin:0;flex:1;word-break:break-word}.status-badge{padding:4px 12px;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.status-live{background:linear-gradient(90deg,#ff5f6d,#ffc371);color:#fff;box-shadow:0 8px 24px #ff5f6d2e;position:relative;padding-left:160px;animation:livePulse 1.6s infinite ease-in-out;display:inline-flex;align-items:center}@keyframes livePulse{0%{transform:translateY(0);opacity:1}50%{transform:translateY(-1.5px);opacity:.98}to{transform:translateY(0);opacity:1}}.status-live:before{content:"";width:12px;height:12px;border-radius:50%;background:#22c55e;display:inline-block;position:absolute;left:10px;top:50%;transform:translateY(-50%);box-shadow:0 0 6px #22c55ee6,0 0 12px #22c55e73;animation:liveDot 1.2s infinite ease-in-out}@keyframes liveDot{0%{transform:translateY(-50%) scale(1);opacity:1}50%{transform:translateY(-50%) scale(1.35);opacity:.85}to{transform:translateY(-50%) scale(1);opacity:1}}.status-joinable{background:#e8f5e9;color:#2e7d32}.status-scheduled{background:#e3f2fd;color:#1565c0}.status-ended,.status-past{background:#f5f5f5;color:#666}.meeting-description{color:var(--text-secondary, #666);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meeting-details{display:flex;flex-direction:column;gap:8px}.detail-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary, #666)}.detail-item svg{color:var(--accent-primary);margin-top:.15rem;flex-shrink:0}.countdown{font-size:.9rem;font-weight:600;color:var(--accent-primary);background:#0ea5e90f;padding:4px 8px;border-radius:10px}.countdown-caption{font-size:.8rem;color:var(--text-secondary);font-weight:600;text-transform:none}.detail-icon{font-size:1rem}.meeting-participants{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color, #e0e0e0)}.participants-title{font-size:.85rem;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.participants-list{display:flex;flex-direction:column;gap:8px}.participant-item-card{display:flex;align-items:center;gap:10px;padding:8px;background:var(--bg-secondary, #f9f9f9);border-radius:8px}.participant-item-card.kicked{background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.participant-avatar-small{width:32px;height:32px;border-radius:50%;background:var(--primary-color, #007bff);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;text-transform:uppercase;flex-shrink:0}.participant-info-card{flex:1;min-width:0}.participant-name-card{font-size:.9rem;font-weight:500;color:var(--text-primary, #333);margin-bottom:2px}.kicked-badge{display:inline-flex;align-items:center;color:#ef4444;margin-left:6px;vertical-align:middle}.kicked-badge svg{display:block}.participant-details-card{font-size:.8rem;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-card-footer{display:flex;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border-color, #e0e0e0)}.meeting-card-footer{align-items:center;justify-content:space-between}.meeting-card-footer .btn-join{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 58%;min-width:160px}.meeting-card-footer .btn-join{height:48px;min-height:48px;padding:0 16px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.meeting-card-footer .icon-btn{width:48px;height:48px;padding:8px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px}.meeting-card-footer .btn-edit{background:var(--bg-glass);color:var(--accent-primary);border:1px solid var(--border-color)}.meeting-card-footer .btn-delete.icon-btn.danger{background:#ef444414;color:var(--accent-danger);border:1px solid rgba(239,68,68,.12)}} @media (max-width: 768px){.meeting-card{min-height:320px}.meeting-card-footer{flex-direction:column;gap:10px;align-items:stretch}.meeting-card-footer .btn-join,.meeting-card-footer .btn-manage,.meeting-card-footer .btn-edit,.meeting-card-footer .btn-delete,.meeting-card-footer .icon-btn{flex:1 1 auto;width:100%;max-width:none}}.meeting-list-container .btn-join,.meeting-list-container .btn-edit,.meeting-list-container .btn-delete,.meeting-list-container .btn-manage{padding:10px 20px;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid var(--border-color);flex:1}.meeting-list-container .btn-join{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border:none;box-shadow:0 2px 8px #0ea5e940;height:48px;min-height:48px;padding:0 16px;border-radius:10px}.meeting-list-container .btn-join:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.meeting-list-container .btn-manage{background:#8b5cf6;color:#fff;border:none}.meeting-list-container .btn-manage:hover{background:#7c3aed;transform:translateY(-1px)}.meeting-list-container .btn-edit{background:var(--bg-glass);color:var(--accent-primary);border:1px solid var(--border-color)}.meeting-list-container .btn-edit:hover{background:#0ea5e91a;border-color:var(--accent-primary);transform:translateY(-1px)}.meeting-list-container .btn-delete{background:transparent;color:var(--accent-danger);border:1px solid var(--border-color)}.btn-delete:hover{background:#ef44442e;border-color:var(--accent-danger);transform:translateY(-2px)}.modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1001;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-primary, #fff);border:1px solid var(--border-color);border-radius:16px;padding:2rem;width:90%;max-width:480px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.modal-content p{font-size:.95rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.6}.modal-actions{display:flex;gap:.75rem}.btn-cancel,.btn-confirm-delete{flex:1;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-cancel{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-primary)}.btn-cancel:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(-1px)}.btn-confirm-delete{background:var(--accent-danger);color:#fff}.btn-confirm-delete:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-confirm-delete:disabled,.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.inline-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .6s linear infinite}.password-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1001}.password-modal{background:var(--bg-primary, #fff);border-radius:12px;padding:24px;width:90%;max-width:400px;box-shadow:0 10px 40px #0003}.password-modal h3{margin:0 0 20px;font-size:1.25rem;color:var(--text-primary, #333)}.password-modal input[type=password]{width:100%;padding:12px;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:1rem;margin-bottom:20px}.password-modal input[type=password]:focus{outline:none;border-color:var(--primary-color, #007bff)}.join-preferences{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;background:var(--bg-secondary, #f9f9f9);border-radius:8px}.preference-item{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.preference-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color, #007bff)}.preference-item span{font-size:.95rem;color:var(--text-primary, #333)}.modal-actions{display:flex;justify-content:flex-end;gap:12px}.modal-actions button{padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.modal-actions button[type=button]{background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, #333)}.modal-actions button[type=button]:hover{background:var(--bg-hover, #e0e0e0)}.modal-actions button[type=submit]{background:var(--primary-color, #007bff);color:#fff}.modal-actions button[type=submit]:hover{background:var(--primary-dark, #0056b3)}.add-participants-modal{max-width:700px;width:95%;background:var(--bg-primary, #fff);box-shadow:0 20px 60px #0000004d}.add-participants-modal .modal-body{max-height:70vh;overflow-y:auto;padding:0}.current-participants-section{margin-bottom:1.5rem;padding:0 .5rem}.current-participants-section h4{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem;padding:0}.current-participants-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary)}.current-participants-list .member-item{border-bottom:1px solid var(--border-color);cursor:default}.current-participants-list .member-item:last-child{border-bottom:none}.current-participants-list .member-item:hover{background:var(--bg-primary)}.invite-section{padding:0 .5rem;margin-bottom:.5rem}.invite-section h4{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem;padding:0}.icon-btn{background:none;border:none;padding:.5rem;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;margin-left:auto}.icon-btn svg{width:20px;height:20px}.icon-btn.danger{color:#ef4444}.icon-btn.danger:hover:not(:disabled){background:#ef44441a}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.current-participants-list .icon-btn{position:relative}.search-box{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-secondary, #f9f9f9);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem}.search-box input{flex:1;border:none;background:none;outline:none;font-size:.95rem;color:var(--text-primary)}.selected-members{margin-bottom:.75rem}.selected-count{font-size:.9rem;color:var(--primary-color);font-weight:500}.members-list{max-height:300px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary)}.members-section-header{padding:.75rem 1rem;background:var(--bg-secondary, #f5f5f5);font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.member-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border-color)}.member-item:last-child{border-bottom:none}.member-item:hover{background:var(--bg-secondary, #f9f9f9)}.member-item.selected{background:#3b82f61a;border-left:3px solid #3b82f6}.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;flex-shrink:0}.member-info{flex:1;min-width:0}.member-name-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.member-name{font-weight:500;color:var(--text-primary);font-size:.95rem}.member-role{padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500;background:#e0e7ff;color:#4338ca}.member-role.admin{background:#fef3c7;color:#92400e}.member-status{padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.member-status.online{background:#d1fae5;color:#065f46}.member-status.offline{background:#f3f4f6;color:#6b7280}.member-email{font-size:.85rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-users,.loading-state{text-align:center;padding:2rem;color:var(--text-secondary)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.close-btn{background:none;border:none;font-size:1.75rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.btn-primary{background:var(--primary-color, #007bff);color:#fff;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn-primary:hover:not(:disabled){background:var(--primary-dark, #0056b3);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.success-modal{text-align:center;max-width:400px}.success-icon{width:60px;height:60px;margin:0 auto 1rem;background:#10b981;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.success-modal h3{color:var(--text-primary);margin-bottom:.75rem}.success-modal p{color:var(--text-secondary);margin-bottom:1.5rem}.success-modal .btn.primary{width:100%}@media(max-width:768px){.meeting-list-container{padding:16px}.meeting-list-header{flex-direction:column;align-items:flex-start;gap:16px}.meeting-list-header h1{font-size:1.5rem}.btn-create{width:100%}.meetings-grid{grid-template-columns:1fr}.meeting-card-footer{flex-direction:column}.add-participants-modal{width:100%;max-width:100%;margin:1rem}.add-participants-modal .modal-body{max-height:60vh}.modal-footer{flex-direction:column}.btn-primary,.btn-cancel{width:100%}}.meeting-room-container{display:flex;flex-direction:column;height:100vh;background:#1a1a1a;color:#fff}.meeting-room-loading,.meeting-room-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:#1a1a1a;color:#fff}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top-color:#007bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.meeting-room-error h2{margin:0 0 16px;color:#dc3545}.meeting-room-error button{margin-top:20px;padding:12px 24px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer}.meeting-room-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#00000080;border-bottom:1px solid rgba(255,255,255,.1)}.meeting-info{display:flex;align-items:center;gap:16px}.meeting-info h2{margin:0;font-size:1.25rem;font-weight:600}.recording-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#dc354533;border:1px solid #dc3545;border-radius:20px;font-size:.85rem;font-weight:500;animation:pulse 2s infinite}.header-controls{display:flex;gap:12px}.icon-btn{padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;cursor:pointer;transition:all .2s;font-size:1.2rem}.icon-btn:hover{background:#fff3}.icon-btn.active{background:#dc3545;border-color:#dc3545}.btn-leave{padding:8px 20px;background:#dc3545;border:none;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:all .2s}.btn-leave:hover{background:#c82333}.meeting-room-content{flex:1;display:flex;overflow:hidden}.video-grid-container{flex:1;padding:16px;overflow-y:auto}.video-grid{display:grid;gap:12px;height:100%;align-content:start}.video-grid.expanded-mode{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.video-tile{position:relative;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:16 / 9;border:2px solid transparent;transition:border-color .3s}.video-tile.expanded{grid-column:1 / -1;aspect-ratio:auto;min-height:60vh;border-color:#00bcd4;order:-1}.video-tile.expanded video{object-fit:contain;background:#000}.video-tile.dimmed{opacity:.65;filter:saturate(.85)}.video-tile.active-speaker{border-color:#28a745}.video-tile.local{border-color:#007bff}.video-tile.local video{transform:scaleX(-1)}.video-tile video{width:100%;height:100%;object-fit:cover;background:#000;display:block}.video-tile video.video-hidden{display:none}.video-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.avatar{width:80px;height:80px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;border:3px solid white}.video-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);display:flex;justify-content:space-between;align-items:center}.participant-name{font-size:.9rem;font-weight:500}.status-icons{display:flex;gap:6px;align-items:center}.status-icons svg{display:block}.participant-status{display:flex;gap:6px;align-items:center}.participant-status svg{opacity:.7}.participant-controls{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .2s}.video-tile:hover .participant-controls{opacity:1}.tile-actions{position:absolute;top:8px;left:8px;display:flex;gap:6px;opacity:1;transition:none;z-index:2}.focus-btn{width:42px;height:42px;padding:0;border-radius:10px;background:#000000bf;border:1px solid rgba(255,255,255,.28);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px #0006}.focus-btn svg{width:20px;height:20px;display:block;fill:currentColor}.focus-btn:hover{background:#ffffff29;border-color:#ffffff8c}.focus-btn:focus-visible{outline:2px solid rgba(0,188,212,.9);outline-offset:2px}.control-btn{padding:6px 10px;background:#000c;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.control-btn svg{display:block}.control-btn:hover{background:#fff3}.control-btn.danger:hover{background:#dc3545;border-color:#dc3545}.meeting-sidebar{width:350px;background:#000c;border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;transition:width .3s}.meeting-sidebar.hidden{width:0;overflow:hidden}.sidebar-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}.tab{flex:1;padding:16px;background:transparent;border:none;color:#fff9;cursor:pointer;transition:all .2s;font-weight:500}.tab:hover{color:#fff;background:#ffffff0d}.tab.active{color:#fff;border-bottom:2px solid #007bff}.chat-panel{flex:1;display:flex;flex-direction:column}.chat-messages{flex:1;overflow-y:auto;padding:16px}.chat-message{margin-bottom:16px}.chat-message.private{background:#ffc1071a;border-left:3px solid #ffc107;padding:8px;border-radius:4px}.message-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;gap:8px}.message-sender-info{flex:1}.message-sender-name{font-weight:600;font-size:.85rem;color:#007bff;margin-bottom:2px}.message-sender-meta{font-size:.75rem;color:#ffffff80}.message-sender{font-weight:600;font-size:.85rem;color:#007bff}.message-time{font-size:.75rem;color:#ffffff80;white-space:nowrap}.message-content{font-size:.9rem;line-height:1.4}.chat-input{display:flex;gap:8px;padding:16px;border-top:1px solid rgba(255,255,255,.1)}.chat-input input{flex:1;padding:10px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:.9rem}.chat-input input::placeholder{color:#fff6}.chat-input input:focus{outline:none;border-color:#007bff}.chat-input button{padding:10px 20px;background:#007bff;border:none;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:all .2s}.chat-input button:hover:not(:disabled){background:#0056b3}.chat-input button:disabled{opacity:.5;cursor:not-allowed}.participants-panel{flex:1;overflow-y:auto;padding:16px}.waiting-room-section{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.waiting-room-section h3,.participants-list h3{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#fff9;margin:0 0 12px}.participant-item{display:flex;justify-content:space-between;align-items:center;padding:12px;margin-bottom:8px;background:#ffffff0d;border-radius:8px;transition:background .2s}.participant-item:hover{background:#ffffff1a}.participant-item.self{border:1px solid #007bff}.participant-item.waiting{background:#ffc1071a;border:1px solid #ffc107}.participant-info{display:flex;align-items:center;gap:12px;flex:1}.participant-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600}.participant-details{flex:1}.participant-name{font-weight:500;font-size:.9rem}.participant-status{display:flex;gap:6px;font-size:1rem}.btn-admit{padding:6px 16px;background:#28a745;border:none;border-radius:4px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-admit:hover{background:#218838}.meeting-controls{display:flex;justify-content:center;gap:16px;padding:20px;background:#000000e6;border-top:1px solid rgba(255,255,255,.1)}.meeting-controls .control-btn{width:56px;height:56px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.meeting-controls .control-btn svg{display:block}.meeting-controls .control-btn:hover{background:#fff3;transform:scale(1.1)}.meeting-controls .control-btn.active{background:#dc3545;border-color:#dc3545}.add-participants-modal{max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column}.add-participants-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #333}.add-participants-modal .modal-header h3{margin:0;color:#fff}.add-participants-modal .close-btn{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}.add-participants-modal .close-btn:hover{background:#ffffff1a}.add-participants-modal .modal-body{padding:20px;flex:1;overflow:hidden;display:flex;flex-direction:column}.add-participants-modal .search-box{display:flex;gap:10px;margin-bottom:20px}.add-participants-modal .search-box input{flex:1;padding:10px;background:#2a2a2a;border:1px solid #444;border-radius:6px;color:#fff;font-size:14px}.add-participants-modal .search-box input:focus{outline:none;border-color:#007bff}.add-participants-modal .search-box button{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap}.add-participants-modal .search-box button:disabled{opacity:.6;cursor:not-allowed}.add-participants-modal .users-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.add-participants-modal .user-item{display:flex;align-items:center;gap:12px;padding:12px;background:#2a2a2a;border:1px solid #444;border-radius:8px;cursor:pointer;transition:all .2s}.add-participants-modal .user-item:hover{background:#333;border-color:#007bff}.add-participants-modal .user-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}.add-participants-modal .user-info{display:flex;align-items:center;gap:12px;flex:1}.add-participants-modal .user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;flex-shrink:0}.add-participants-modal .user-details{flex:1}.add-participants-modal .user-name{font-weight:600;color:#fff;margin-bottom:2px}.add-participants-modal .user-email{font-size:13px;color:#aaa;margin-bottom:2px}.add-participants-modal .user-roles{font-size:12px;color:#888}.add-participants-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid #333}.add-participants-modal .btn-cancel{padding:10px 20px;background:transparent;color:#fff;border:1px solid #444;border-radius:6px;cursor:pointer}.add-participants-modal .btn-cancel:hover{background:#ffffff1a}.add-participants-modal .btn-cancel:disabled{opacity:.6;cursor:not-allowed}.add-participants-modal .btn-primary{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600}.add-participants-modal .btn-primary:hover{background:#0056b3}.add-participants-modal .btn-primary:disabled{opacity:.6;cursor:not-allowed}.add-participants-modal .loading-state,.add-participants-modal .empty-state{text-align:center;padding:40px 20px;color:#aaa}@media(max-width:1024px){.meeting-sidebar{width:300px}.avatar{width:60px;height:60px;font-size:1.5rem}}@media(max-width:768px){.meeting-room-header{padding:12px 16px}.meeting-info h2{font-size:1rem}.meeting-sidebar{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:350px;z-index:100}.meeting-sidebar.hidden{display:none}.video-grid{grid-template-columns:1fr!important}.meeting-controls{gap:12px;padding:16px}.meeting-controls .control-btn{width:48px;height:48px;font-size:1.2rem}}.vouchers-page{display:flex;flex-direction:column;gap:1rem}.students-list{padding:.5rem 0}.controls-stack{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.75rem}.search-section{display:flex;flex-direction:column;gap:.5rem}.search-controls{display:flex;align-items:flex-end;gap:.6rem;flex:1;flex-wrap:wrap}.generation-request-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:0 .1rem}.request-label{font-weight:600;color:var(--text-secondary);min-width:200px}.generation-request-select{display:flex;align-items:center;gap:.5rem;flex:1;min-width:240px}.generation-request-select select{width:100%;min-height:44px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);padding:0 .75rem}.generation-request-select .inline-spinner{position:static;transform:none}.clear-select-btn{min-width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color);background:#ffffff0a;color:var(--text-secondary);cursor:pointer;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all .12s ease}.clear-select-btn:hover:not(:disabled){color:var(--accent-danger);border-color:#ef444466;background:#ef444414}.clear-select-btn:disabled{opacity:.5;cursor:not-allowed}.actions-section{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-height:10px}.paging-section{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.search-controls .search-box{flex:1 1 220px;min-width:200px;height:44px!important;min-height:44px;max-height:44px;align-items:center;box-sizing:border-box;margin:0;padding:0 .75rem;line-height:44px}.search-controls .search-box input{height:100%;padding:0 .25rem;box-sizing:border-box}.search-controls .refresh-btn{height:44px!important;min-height:44px;max-height:44px;margin:0;padding:0 .9rem;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:44px;flex-shrink:0}.refresh-btn{padding:0 .9rem;display:inline-flex;align-items:center;gap:.5rem;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .12s ease;font-size:.9rem;box-sizing:border-box;height:44px!important;min-height:44px;max-height:44px;line-height:44px}.refresh-btn:hover:not(:disabled){background:#0ea5e90f;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.refresh-label{display:inline-block}.refresh-wrap{height:44px;min-height:44px;max-height:44px;display:flex;align-items:center;align-self:flex-end;box-sizing:border-box}.search-controls .student-select{position:relative;flex:1 1 260px;max-width:360px;min-width:200px;height:44px!important;min-height:44px;max-height:44px;box-sizing:border-box;margin:0;padding:0 .75rem;line-height:44px}.search-controls .student-select input{width:100%;border:none;background:transparent;color:var(--text-primary);height:100%;padding:0 .25rem;box-sizing:border-box}.student-options{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;max-height:240px;overflow-y:auto;z-index:10;box-shadow:0 8px 20px #0000003d}.student-option{width:100%;text-align:left;padding:.55rem .75rem;border:none;background:transparent;color:var(--text-primary);cursor:pointer;font-size:.93rem}.student-option:hover:not(.empty){background:#0ea5e914}.student-option.empty{cursor:default;color:var(--text-muted)}.student-select .inline-spinner{position:absolute;right:.55rem;top:50%;transform:translateY(-50%)}.action-btn{padding:.45rem .8rem;border-radius:8px;border:1px solid var(--border-color);background:#ffffff08;color:var(--text-primary);font-weight:600;cursor:pointer;transition:all .15s ease}.action-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary);background:#0ea5e914}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn.primary{border-color:#0ea5e94d;color:#fff;background:var(--accent-primary)}.action-btn.primary:hover:not(:disabled){background:#0ea5e9e6}.action-btn.danger{border-color:#ef444459;color:var(--accent-danger)}.action-btn.danger:hover:not(:disabled){background:#ef44441f}.action-btn.warning{border-color:#eab30859;color:#eab308}.action-btn.warning:hover:not(:disabled){background:#eab3081f}.controls-center{flex:1;display:flex;justify-content:center}.pagination{display:flex;gap:.5rem;align-items:center;justify-content:center;margin-top:.75rem}.page-label{font-size:.9rem;color:var(--text-muted)}.page-numbers{display:flex;gap:.35rem;align-items:center}.page-num{padding:.35rem .6rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;cursor:pointer}.page-num.active{background:var(--accent-primary);color:#fff;border-color:transparent}.jump-to{display:flex;gap:.5rem;align-items:center;margin-left:.5rem}.jump-to input{width:60px;padding:.35rem;border:1px solid var(--border-color);border-radius:6px}.btn-go{padding:.35rem .6rem;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-glass)}.controls-right{display:flex;align-items:center;gap:.75rem}.page-info{color:var(--text-muted);font-size:.9rem}.list-overlay{position:relative}.view-toggle{display:flex;align-items:center;gap:0;background:#ffffff05;border:1px solid var(--border-color);border-radius:10px;padding:.2rem}.view-btn{display:flex;align-items:center;justify-content:center;padding:.4rem .6rem;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.view-btn:hover{background:#ffffff0a;color:var(--text-primary)}.view-btn.active{background:#0ea5e91f;color:var(--accent-primary)}.filter-toggle{display:flex;align-items:center;gap:.4rem;padding:.35rem .45rem;background:#ffffff05;border:1px solid var(--border-color);border-radius:10px}.filter-toggle .toggle-label{color:var(--text-secondary);font-weight:600}.group-row td{padding:.5rem .8rem;background:#0ea5e90d;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.group-row-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.group-row-left{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.group-title{font-weight:700;color:var(--text-primary)}.group-subtitle{color:var(--text-muted);font-size:.9rem}.group-count{color:var(--text-secondary);font-size:.88rem}.group-totals{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;font-weight:700;color:var(--text-primary)}.group-totals span{display:inline-flex;align-items:center;gap:.35rem}.voucher-card{display:flex;flex-direction:column;gap:.75rem;position:relative;padding:12px 10px 10px}.voucher-header{padding-left:0;display:flex;flex-direction:column;gap:.65rem}.voucher-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.voucher-top-left{display:inline-flex;align-items:center;gap:.6rem;min-width:0}.voucher-heading{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:1 1 260px}.voucher-number{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:1.05rem;color:var(--text-primary)}.voucher-sub{font-size:.9rem;color:var(--text-muted);margin-top:4px}.voucher-meta{display:flex;flex-direction:column;gap:.25rem}.meta-row{display:grid;grid-template-columns:minmax(80px,120px) 1fr;gap:.5rem;align-items:center}.meta-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.meta-value{font-size:.95rem;color:var(--text-primary);min-width:0;white-space:normal;overflow:visible;text-overflow:initial}.voucher-amounts{display:flex;flex-wrap:wrap;gap:.5rem}.amount-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .7rem;border-radius:999px;background:#ffffff0a;border:1px solid var(--border-color);font-weight:600;color:var(--text-primary)}.amount-pill.primary{background:linear-gradient(135deg,#0ea5e91f,#06b6d41f);border-color:#0ea5e93d;color:var(--accent-primary)}.amount-pill.warning{background:#ef44441f;border-color:#ef44443d;color:var(--accent-danger)}.voucher-dates{display:flex;flex-wrap:wrap;gap:.5rem}.date-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:10px;background:#ffffff08;border:1px solid var(--border-color);color:var(--text-secondary);font-size:.9rem}.voucher-items{background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:10px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.items-header{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-weight:600;font-size:.9rem}.items-title{text-transform:uppercase;letter-spacing:.03em}.items-total{font-size:.85rem;color:var(--text-muted)}.items-list{display:flex;flex-direction:column;gap:.45rem}.items-list.single-container{width:100%;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.35rem;background:#ffffff05}.item-row{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1.25rem .75rem .65rem;border-bottom:1px solid rgba(255,255,255,.06);position:relative;width:100%}.item-row:last-child{border-bottom:none}.item-info{display:flex;flex-direction:column;gap:2px;flex:1 1 0;min-width:160px}.item-name{font-weight:600;color:var(--text-primary);font-size:.95rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-remarks{color:var(--text-muted);font-size:.85rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-amount{font-weight:700;color:var(--accent-primary);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;margin-left:auto;min-width:80px;align-self:flex-start;position:absolute;right:.65rem;top:.75rem}.voucher-remarks{padding:.65rem .8rem;border-left:3px solid var(--accent-primary);background:#0ea5e90d;border-radius:6px;color:var(--text-primary);font-size:.95rem}.status-badge{display:inline-block;padding:.25rem .6rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.status-badge.active{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.status-badge.inactive{background:#ef44441f;color:var(--accent-danger);border:1px solid rgba(239,68,68,.24)}.status-badge.paid{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.28)}.status-badge.unpaid{background:#eab30829;color:#eab308;border:1px solid rgba(234,179,8,.28)}.mark-paid-btn{display:inline-flex;align-items:center;gap:.45rem;justify-content:center;padding:.5rem .9rem;border-radius:12px;border:1px solid var(--accent-primary);background:#0ea5e914;color:var(--accent-primary);font-weight:700;cursor:pointer;transition:all .16s ease;min-width:140px}.mark-paid-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;transform:translateY(-1px)}.mark-paid-btn:disabled{opacity:.6;cursor:not-allowed}.mark-paid-btn.mark-paid{background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary)}.mark-paid-btn.mark-unpaid{background:#ef44441f;border-color:#ef444480;color:var(--accent-danger)}.mark-paid-btn.mark-unpaid:hover:not(:disabled){background:var(--accent-danger);color:#fff;border-color:var(--accent-danger)}.mark-paid-btn.delete-btn{background:#ef44441f;border-color:#ef444480;color:var(--accent-danger);min-width:120px}.mark-paid-btn.delete-btn:hover:not(:disabled){background:var(--accent-danger);color:#fff;border-color:var(--accent-danger)}.delete-icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--accent-danger);background:var(--accent-danger);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .16s ease;font-size:16px;line-height:1}.delete-icon-btn:hover:not(:disabled){background:#dc2626;border-color:#dc2626;color:#fff;transform:translateY(-1px)}.delete-icon-btn:disabled{opacity:.6;cursor:not-allowed}.delete-icon-btn svg{width:20px;height:20px;stroke-width:2.4;stroke:currentColor!important;fill:none!important}.voucher-select{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;z-index:2}.voucher-select input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.voucher-select span{width:18px;height:18px;border-radius:4px;border:2px solid var(--border-color);background:#ffffff0a;box-sizing:border-box;position:relative}.voucher-select input:checked+span{border-color:var(--accent-primary);background:var(--accent-primary);box-shadow:0 0 0 2px #0ea5e933}.voucher-select span:after{content:"";position:absolute;inset:3px 5px 4px;border:solid #0b1120;border-width:0 0 2px 2px;opacity:0;transform:rotate(-45deg)}.voucher-select input:checked+span:after{opacity:1}.voucher-actions-row{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.voucher-pdf-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.pdf-action-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid}.pdf-action-btn.generate{background:#10b9811a;border-color:#10b9814d;color:var(--accent-success)}.pdf-action-btn.generate:hover:not(:disabled){background:#10b98133;transform:translateY(-1px)}.pdf-action-btn.download{background:#0ea5e91a;border-color:#0ea5e94d;color:var(--accent-primary)}.pdf-action-btn.download:hover:not(:disabled){background:#0ea5e933;transform:translateY(-1px)}.pdf-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.action-btn.success{background:#10b9811a;border-color:#10b9814d;color:var(--accent-success)}.action-btn.success:hover:not(:disabled){background:#10b98133}.vouchers-table-wrapper{width:100%;overflow-x:auto;background:var(--card-background);border:1px solid var(--border-color);border-radius:12px}.vouchers-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:1100px}.vouchers-table thead{background:#1a2332;border-bottom:1px solid var(--border-color)}.vouchers-table th{padding:.7rem .8rem;text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap;position:sticky;top:0;background:#1a2332;z-index:10;font-size:.85rem}.vouchers-table th.select-col,.vouchers-table td.select-col{width:52px;text-align:center}.vouchers-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .15s ease}.vouchers-table tbody tr:hover{background:#0ea5e90a}.vouchers-table td{padding:.6rem .8rem;vertical-align:middle;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.table-primary{font-weight:600;color:var(--text-primary);margin-bottom:2px}.table-sub{color:var(--text-muted);font-size:.82rem;white-space:normal}.table-amount{font-variant-numeric:tabular-nums;text-align:right}.table-period{white-space:nowrap}.table-remarks{white-space:normal;max-width:320px}.status-stack{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.table-checkbox{width:16px;height:16px;cursor:pointer}.table-actions{display:flex;align-items:center;gap:.35rem}.btn-icon-small{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;background:#ffffff05;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-icon-small:hover{background:#0ea5e914;color:var(--accent-primary);border-color:#0ea5e933}.btn-icon-small.btn-delete:hover{background:#ef444414;color:var(--accent-danger);border-color:#ef444433}.btn-icon-small:disabled{opacity:.55;cursor:not-allowed}.toggle-switch{position:relative;display:inline-block;width:42px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border-color);transition:.2s;border-radius:24px;box-shadow:inset 0 1px 2px #0000001a}.toggle-switch .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.2s;border-radius:50%;box-shadow:0 2px 6px #00000026}.toggle-switch input:checked+.slider{background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary))}.toggle-switch input:checked+.slider:before{transform:translate(18px)}.toggle-switch input:disabled+.slider{opacity:.6;cursor:not-allowed}@media(max-width:640px){.voucher-header{flex-direction:column;align-items:flex-start}.voucher-heading{width:100%}.voucher-amounts{gap:.35rem}.voucher-pdf-actions{flex-direction:column}}.vouchers-page .modal-content{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:14px;padding:1.5rem;width:min(440px,92vw);box-shadow:var(--shadow-xl)}.vouchers-page .modal-content h3{margin:0 0 .65rem;color:var(--text-primary)}.vouchers-page .modal-content p{margin:0 0 1.25rem;color:var(--text-secondary);line-height:1.5}.vouchers-page .modal-actions{display:flex;gap:.75rem}.vouchers-page .btn-cancel,.vouchers-page .btn-confirm-delete{flex:1;padding:.75rem 1.25rem;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.vouchers-page .btn-cancel{background:var(--bg-glass);border-color:var(--border-color);color:var(--text-primary)}.vouchers-page .btn-cancel:hover:not(:disabled){background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(-1px)}.vouchers-page .btn-confirm-delete{background:var(--accent-danger);color:#fff;border-color:var(--accent-danger)}.vouchers-page .btn-confirm-delete:hover:not(:disabled){background:#dc2626;border-color:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.vouchers-page .btn-confirm-delete:disabled,.vouchers-page .btn-cancel:disabled{opacity:.65;cursor:not-allowed;transform:none}.voucher-templates-page{display:flex;flex-direction:column;gap:1rem}.voucher-templates-page .page-header{display:flex;align-items:center;justify-content:space-between}.voucher-templates-page .page-header h1{margin:0;font-size:1.75rem;font-weight:600;color:var(--text-primary)}.voucher-templates-page .page-header p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.9rem}.voucher-templates-page .header-actions{display:flex;gap:.5rem}.voucher-templates-page .error-banner{display:flex;gap:.5rem;align-items:center;padding:.65rem .9rem;border-radius:10px;background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:var(--accent-danger);font-size:.9rem}.voucher-templates-page .search-section{display:flex;align-items:center;gap:.5rem;margin-bottom:16px}.voucher-templates-page .search-box{display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;height:var(--control-height);flex:1;max-width:500px;transition:all .2s ease}.voucher-templates-page .search-box:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.voucher-templates-page .search-box input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.875rem}.voucher-templates-page .search-box input::placeholder{color:var(--text-muted)}.voucher-templates-page .refresh-btn{padding:0;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height)}.voucher-templates-page .refresh-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.voucher-templates-page .controls-stack{display:flex;flex-direction:column;gap:.75rem;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:.9rem}.voucher-templates-page .refresh-btn:hover{background:#ffffff0d;color:var(--text-primary)}.voucher-templates-page .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.voucher-templates-page .paging-section{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.voucher-templates-page .results-info{font-size:.9rem;color:var(--text-secondary)}.voucher-templates-page .pagination-controls{display:flex;align-items:center;gap:.5rem}.voucher-templates-page .page-nav-btn{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);cursor:pointer;transition:all .2s;font-size:.9rem}.voucher-templates-page .page-nav-btn:hover:not(:disabled){background:var(--bg-glass-hover);border-color:var(--accent-primary)}.voucher-templates-page .page-nav-btn:disabled{opacity:.5;cursor:not-allowed}.voucher-templates-page .page-info{font-size:.9rem;color:var(--text-secondary)}.voucher-templates-page .templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.voucher-templates-page .template-card{position:relative;padding:1.25rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;transition:all .2s}.voucher-templates-page .template-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent-primary)}.voucher-templates-page .default-badge{position:absolute;top:.75rem;right:.75rem;display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border-radius:6px;font-size:.75rem;font-weight:600}.voucher-templates-page .template-header{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding-right:6rem}.voucher-templates-page .template-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.voucher-templates-page .template-actions{display:flex;gap:.5rem;flex-wrap:wrap}.voucher-templates-page .action-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--border-color);background:#ffffff0d;border-radius:8px;cursor:pointer;transition:all .2s;color:var(--text-secondary)}.voucher-templates-page .action-btn:hover{background:#ffffff1a;color:var(--text-primary);transform:scale(1.05)}.voucher-templates-page .action-btn:disabled{opacity:.5;cursor:not-allowed}.voucher-templates-page .set-default-btn{border-color:#fbbf244d}.voucher-templates-page .set-default-btn:hover{border-color:#fbbf24;color:#fbbf24;background:#fbbf241a}.voucher-templates-page .branch-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.voucher-templates-page .btn-edit,.voucher-templates-page .btn-delete{display:inline-flex;gap:8px;align-items:center;padding:6px 10px;border-radius:8px;border:none;cursor:pointer;font-size:.875rem;transition:all .2s ease}.voucher-templates-page .btn-edit{background:transparent;color:var(--text-primary)}.voucher-templates-page .btn-edit:hover{background:#0ea5e91a;color:var(--accent-primary)}.voucher-templates-page .btn-delete{background:transparent;color:var(--danger)}.voucher-templates-page .btn-delete:hover{background:#ef44441a}.voucher-templates-page .btn-delete:disabled{opacity:.5;cursor:not-allowed}.voucher-templates-page .template-details{display:flex;flex-direction:column;gap:.75rem}.voucher-templates-page .detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.voucher-templates-page .detail-label{font-size:.85rem;color:var(--text-secondary)}.voucher-templates-page .detail-value{font-size:.9rem;color:var(--text-primary);font-weight:500}.voucher-templates-page .template-features{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.voucher-templates-page .feature-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;background:#0ea5e91a;border:1px solid rgba(14,165,233,.3);color:var(--accent-primary);border-radius:6px;font-size:.75rem;font-weight:500}.voucher-templates-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--text-secondary)}.voucher-templates-page .empty-state svg{margin-bottom:1rem;opacity:.3}.voucher-templates-page .empty-state h3{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-primary)}.voucher-templates-page .empty-state p{margin:0 0 1.5rem;color:var(--text-secondary)}.voucher-templates-page .modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.voucher-templates-page .modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;max-width:450px;width:90%}.voucher-templates-page .modal-content h3{margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary)}.voucher-templates-page .modal-content p{margin:0 0 1.5rem;color:var(--text-secondary);line-height:1.5}.voucher-templates-page .modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.voucher-templates-page .spinning{animation:spin 1s linear infinite}.voucher-template-form-page{display:flex;flex-direction:column;gap:1.5rem;max-width:900px}.voucher-template-form-page .form-header{display:flex;flex-direction:column;gap:.75rem}.voucher-template-form-page .back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 0;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:color .2s;font-size:.95rem;width:fit-content}.voucher-template-form-page .back-btn:hover{color:var(--accent-primary)}.voucher-template-form-page .form-header h1{margin:0;font-size:1.75rem;font-weight:600;color:var(--text-primary)}.voucher-template-form-page .form-header p{margin:0;color:var(--text-secondary);font-size:.95rem}.voucher-template-form-page .form-container{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;padding:2rem}.voucher-template-form-page .error-message{padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.35);border-radius:8px;color:var(--accent-danger);margin-bottom:1.5rem;font-size:.9rem}.voucher-template-form-page .template-form{display:flex;flex-direction:column;gap:2rem}.voucher-template-form-page .form-section{display:flex;flex-direction:column;gap:1rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.voucher-template-form-page .form-section:last-of-type{border-bottom:none;padding-bottom:0}.voucher-template-form-page .form-section h3{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.voucher-template-form-page .form-group{display:flex;flex-direction:column;gap:.5rem}.voucher-template-form-page .form-group label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--text-primary)}.voucher-template-form-page .form-group label .required{color:var(--accent-danger)}.voucher-template-form-page .form-group small{font-size:.8rem;color:var(--text-secondary);margin-top:-.25rem}.voucher-template-form-page .form-group input[type=text],.voucher-template-form-page .form-group textarea,.voucher-template-form-page .form-group select{padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.95rem;transition:all .2s}.voucher-template-form-page .form-group input[type=text]:focus,.voucher-template-form-page .form-group textarea:focus,.voucher-template-form-page .form-group select:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-glass-hover)}.voucher-template-form-page .form-group textarea{resize:vertical;font-family:inherit;line-height:1.5;min-height:100px}.voucher-template-form-page .form-group .field-hint{display:block;font-size:.8rem;color:var(--text-secondary);margin-top:.25rem;font-weight:400;line-height:1.4}.voucher-template-form-page .form-group select{cursor:pointer}.voucher-template-form-page .rich-editor-wrapper{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);position:relative;z-index:1}.voucher-template-form-page .rich-editor-toolbar{background:var(--bg-glass);border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;padding:8px;position:relative;z-index:2;overflow:visible}.voucher-template-form-page .rich-editor-content{min-height:200px;padding:12px;color:var(--text-primary);font-size:.95rem;line-height:1.5}.voucher-template-form-page .rich-editor-content .public-DraftEditorPlaceholder-root{color:var(--text-secondary);opacity:.6}.voucher-template-form-page .rich-editor-toolbar .rdw-option-wrapper{background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);min-width:30px;height:30px;margin:2px}.voucher-template-form-page .rich-editor-toolbar .rdw-option-wrapper:hover,.voucher-template-form-page .rich-editor-toolbar .rdw-option-active{background:var(--bg-glass-hover);border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:none}.voucher-template-form-page .rich-editor-toolbar .rdw-dropdown-wrapper{background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);height:30px}.voucher-template-form-page .rich-editor-toolbar .rdw-dropdown-wrapper:hover{border-color:var(--accent-primary);box-shadow:none}.voucher-template-form-page .rich-editor-toolbar .rdw-dropdown-optionwrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;margin-top:4px;box-shadow:0 4px 6px #0000004d;z-index:100;max-height:200px;overflow-y:auto}.voucher-template-form-page .rich-editor-toolbar .rdw-dropdownoption-default{color:var(--text-primary)}.voucher-template-form-page .rich-editor-toolbar .rdw-dropdownoption-highlighted{background:var(--bg-glass-hover);color:var(--accent-primary)}.voucher-template-form-page .rich-editor-toolbar .rdw-colorpicker-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 6px #0000004d}.voucher-template-form-page .form-group-checkbox{display:flex;align-items:center;gap:.5rem;padding:.65rem 0}.voucher-template-form-page .form-group-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.voucher-template-form-page .form-group-checkbox label{cursor:pointer;font-size:.95rem;color:var(--text-primary);-webkit-user-select:none;user-select:none;margin:0}.voucher-template-form-page .checkbox-group{display:flex;flex-direction:column;gap:.25rem;padding:.5rem 0}.voucher-template-form-page .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.voucher-template-form-page .form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid var(--border-color)}.voucher-template-form-page .form-actions button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.voucher-template-form-page .form-actions button:disabled{opacity:.5;cursor:not-allowed}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary)}.loading-container .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.loading-container p{margin:0;font-size:.95rem}@media(max-width:768px){.voucher-template-form-page{max-width:100%}.voucher-template-form-page .form-container{padding:1.5rem}.voucher-template-form-page .form-row{grid-template-columns:1fr}.voucher-template-form-page .form-actions{flex-direction:column}.voucher-template-form-page .form-actions button{width:100%;justify-content:center}}.tiptap-editor-wrapper{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);overflow:hidden}.tiptap-toolbar{background:var(--bg-glass);border-bottom:1px solid var(--border-color);padding:8px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.tiptap-toolbar button{background:transparent;border:1px solid var(--border-color);border-radius:4px;min-width:32px;height:32px;padding:4px 8px;color:var(--text-secondary);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:14px}.tiptap-toolbar button:hover{background:var(--bg-glass-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.tiptap-toolbar button.is-active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.tiptap-toolbar .toolbar-select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:4px 8px;height:32px;color:var(--text-primary);cursor:pointer;transition:all .2s}.tiptap-toolbar .toolbar-select:hover{border-color:var(--accent-primary)}.tiptap-toolbar .toolbar-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #0ea5e933}.tiptap-toolbar .toolbar-separator{width:1px;height:24px;background:var(--border-color);margin:0 4px}.tiptap-content{min-height:200px}.tiptap-content .ProseMirror{min-height:200px;padding:12px;color:var(--text-primary);font-size:.95rem;outline:none}.tiptap-content .ProseMirror p{margin:.5em 0}.tiptap-content .ProseMirror:focus{outline:none}.tiptap-content .ProseMirror p.is-editor-empty:first-child:before{color:var(--text-tertiary);content:"Enter your custom header text with formatting...";float:left;height:0;pointer-events:none}.tiptap-content .ProseMirror [style*=font-size]{line-height:1.2}.bulk-generate-page{padding:2rem;max-width:1000px;margin:0 auto}.bulk-generate-page .form-header{margin-bottom:2rem}.bulk-generate-page .form-header h1{font-size:1.75rem;font-weight:600;margin:1rem 0 .5rem;color:var(--text-primary)}.bulk-generate-page .form-header p{color:var(--text-secondary);margin:0}.bulk-generate-page .back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;color:var(--text-secondary);font-size:.9rem;transition:all .2s}.bulk-generate-page .back-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.wizard-container{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:2rem}.error-banner{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;margin-bottom:1.5rem}.wizard-steps{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem;padding:0 1rem}.step-indicator{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:0 0 auto}.step-number{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.1rem;background:var(--input-bg);color:var(--text-secondary);border:2px solid var(--border-color);transition:all .3s}.step-indicator.active .step-number{background:#0ea5e926;color:var(--primary-color);border-color:var(--primary-color)}.step-indicator.completed .step-number{background:#10b98126;color:#10b981;border-color:#10b981}.step-indicator span{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.step-indicator.active span{color:var(--text-primary);font-weight:500}.step-connector{flex:1;height:2px;background:var(--border-color);margin:0 .5rem}.wizard-content{min-height:400px;margin-bottom:2rem}.wizard-step{animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-header{text-align:center;margin-bottom:2rem}.step-header svg{color:var(--primary-color);margin-bottom:.75rem}.step-header h2{font-size:1.5rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary)}.step-header p{color:var(--text-secondary);margin:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 0;gap:1rem}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.section-list,.template-list{display:flex;flex-direction:column;gap:.75rem;max-width:600px;margin:0 auto}.section-option,.template-option{display:flex;align-items:center;gap:.875rem;padding:1rem;background:var(--input-bg);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.section-option:hover,.template-option:hover{background:var(--hover-bg);border-color:var(--primary-color)}.section-option input[type=radio],.template-option input[type=radio]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary-color)}.section-label,.template-label{flex:1;font-size:.95rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.default-badge{padding:.25rem .5rem;background:#10b98126;color:#10b981;border-radius:4px;font-size:.75rem;font-weight:500}.empty-state{text-align:center;padding:2rem;color:var(--text-secondary)}.filter-form{max-width:600px;margin:0 auto}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.form-group select,.form-group input{padding:.75rem;background:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.95rem;transition:all .2s}.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e91a}.checkbox-group{display:flex;flex-direction:column;gap:.875rem}.checkbox-label{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.checkbox-label:hover{background:var(--hover-bg)}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color)}.checkbox-label span{color:var(--text-primary);font-size:.95rem}.results-summary{max-width:700px;margin:0 auto}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.stat-card{padding:1.25rem;background:var(--input-bg);border:2px solid var(--border-color);border-radius:8px;text-align:center}.stat-card.success{border-color:#10b9814d;background:#10b9810d}.stat-card.warning{border-color:#f59e0b4d;background:#f59e0b0d}.stat-card.danger{border-color:#ef44444d;background:#ef44440d}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.stat-card.success .stat-value{color:#10b981}.stat-card.warning .stat-value{color:#f59e0b}.stat-card.danger .stat-value{color:#ef4444}.stat-label{font-size:.85rem;color:var(--text-secondary)}.results-info{padding:1rem;background:var(--input-bg);border-radius:6px;text-align:center;margin-bottom:1.5rem}.results-info p{margin:0;color:var(--text-secondary);font-size:.9rem}.error-list{padding:1.25rem;background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:6px}.error-list h3{font-size:1rem;font-weight:600;color:#ef4444;margin:0 0 1rem}.error-item{padding:.75rem;background:var(--card-bg);border-radius:4px;margin-bottom:.5rem;font-size:.9rem;color:var(--text-primary)}.error-item:last-child{margin-bottom:0}.error-item strong{color:#ef4444}.wizard-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--hover-bg)}@media(max-width:768px){.bulk-generate-page{padding:1rem}.wizard-container{padding:1.5rem 1rem}.wizard-steps{padding:0;gap:.25rem}.step-indicator span{font-size:.75rem}.step-number{width:35px;height:35px;font-size:1rem}.step-connector{margin:0 .25rem}.form-row{grid-template-columns:1fr}.result-stats{grid-template-columns:repeat(2,1fr)}.wizard-actions{flex-direction:column-reverse}.wizard-actions button{width:100%;justify-content:center}}.selection-mode-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color)}.mode-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--text-secondary);font-size:.95rem;font-weight:500;transition:all .2s;position:relative;bottom:-2px}.mode-tab:hover{color:var(--text-primary);background:var(--hover-bg)}.mode-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.request-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto;padding:.5rem}.request-option{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--input-bg);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.request-option:hover{background:var(--hover-bg);border-color:var(--primary-color)}.request-option input[type=radio]{width:20px;height:20px;cursor:pointer;flex-shrink:0}.request-option input[type=radio]:checked+.request-label{color:var(--primary-color);font-weight:500}.request-label{flex:1;color:var(--text-primary);font-size:.95rem;line-height:1.4}.assignments-page{display:flex;flex-direction:column;gap:1rem}.page-header{display:flex;align-items:center;justify-content:space-between}.header-actions .btn-primary{display:inline-flex;align-items:center;gap:.5rem}.error-banner{display:flex;gap:.5rem;align-items:center;padding:.65rem .9rem;border-radius:10px;margin-bottom:.5rem;background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:var(--accent-danger);font-size:.9rem}.assignments-list{padding:.5rem 0}.assignments-controls{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.assignments-controls .search-box{position:relative;flex:0 1 auto;min-width:280px;display:flex;align-items:center;gap:.5rem;padding:.5rem .85rem;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;transition:all .2s ease}.assignments-controls .search-box:focus-within{border-color:var(--accent-primary);background:#ffffff0a}.assignments-controls .search-box svg{color:var(--text-secondary);flex-shrink:0}.assignments-controls .search-box input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:.9rem;outline:none;padding:0}.assignments-controls .search-box input::placeholder{color:var(--text-secondary);opacity:.6}.assignments-controls .refresh-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-size:.9rem;white-space:nowrap}.assignments-controls .refresh-btn:hover:not(:disabled){background:#0ea5e90f;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.assignments-controls .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.assignments-controls .refresh-btn.btn-loading .inline-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.assignments-controls .controls-center{flex:1;display:flex;justify-content:center;min-width:300px}.assignments-controls .controls-right{display:flex;align-items:center;gap:1rem}.assignments-controls .pagination{display:flex;align-items:center;gap:.5rem}.assignments-controls .icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.assignments-controls .icon-btn:hover:not(:disabled){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.assignments-controls .icon-btn:disabled{opacity:.3;cursor:not-allowed}.assignments-controls .page-numbers{display:flex;align-items:center;gap:.35rem}.assignments-controls .page-num{min-width:32px;height:32px;padding:0 .5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-size:.9rem}.assignments-controls .page-num:hover:not(:disabled):not(.active){background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary)}.assignments-controls .page-num.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;font-weight:600}.assignments-controls .page-num:disabled{cursor:default}.assignments-controls .jump-to{display:flex;align-items:center;gap:.4rem;margin-left:.5rem}.assignments-controls .jump-to input{width:65px;height:32px;padding:0 .6rem;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-primary);font-size:.9rem;text-align:center;transition:all .15s ease}.assignments-controls .jump-to input:focus{outline:none;border-color:var(--accent-primary);background:#ffffff0a}.assignments-controls .jump-to .btn-go{height:32px;padding:0 .85rem;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease}.assignments-controls .jump-to .btn-go:hover{background:#0ea5e914;border-color:var(--accent-primary);color:var(--accent-primary)}.assignments-controls .page-size{display:flex;align-items:center}.assignments-controls .page-size label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary)}.assignments-controls .page-size select{height:32px;padding:0 .75rem;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:all .15s ease}.assignments-controls .page-size select:hover{border-color:var(--accent-primary);background:#ffffff0a}.assignments-controls .page-size select:focus{outline:none;border-color:var(--accent-primary)}.search-controls{display:flex;align-items:center;gap:.6rem;flex:1;flex-wrap:wrap}.search-controls .search-box{flex:1 1 220px;min-width:200px;height:var(--control-height)}.search-controls .search-box input{height:100%}.empty-state p{font-size:1.1rem;margin:0}.empty-state .btn-secondary{margin-top:.5rem;display:inline-flex;align-items:center;gap:.5rem}.table-container{overflow-x:auto;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:#ffffff05}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.06)}.data-table th{padding:.85rem 1rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.data-table td{padding:1rem;border-bottom:1px solid rgba(255,255,255,.04)}.data-table tbody tr{transition:background .15s ease}.data-table tbody tr:hover{background:#ffffff08}.data-table tbody tr.loading-row{opacity:.6;pointer-events:none}.assignment-title{display:flex;align-items:center;gap:.5rem;font-weight:500}.assignment-title svg{color:var(--accent-primary);flex-shrink:0}.overdue{color:var(--accent-danger);font-weight:500}.submission-count{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:12px;background:#0ea5e91a;color:var(--accent-primary);font-size:.85rem;font-weight:500}.action-buttons{display:flex;gap:.5rem}.btn-icon{padding:.5rem;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover:not(:disabled){background:#0ea5e91a;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.btn-icon.btn-danger:hover:not(:disabled){background:#ef44441a;border-color:var(--accent-danger);color:var(--accent-danger)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.modal-content h3{margin:0 0 1rem;font-size:1.4rem}.modal-content p{margin:0 0 1.5rem;color:var(--text-secondary);line-height:1.6}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-secondary,.btn-danger,.btn-primary{padding:.6rem 1.2rem;border-radius:8px;border:none;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-danger{background:var(--accent-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.btn-secondary:disabled,.btn-danger:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.assignment-detail-page{display:flex;flex-direction:column;gap:1.5rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.back-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-size:.9rem}.back-btn:hover{background:#ffffff0d;color:var(--text-primary);transform:translateY(-1px)}.header-info{flex:1;min-width:300px}.header-info h1{margin:0 0 .75rem;font-size:1.8rem}.assignment-meta{display:flex;flex-wrap:wrap;gap:1.5rem}.meta-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text-secondary)}.meta-item svg{color:var(--accent-primary)}.overdue-badge{display:inline-block;margin-left:.5rem;padding:.2rem .6rem;border-radius:12px;background:#ef44441a;color:var(--accent-danger);font-size:.75rem;font-weight:600;text-transform:uppercase}.header-actions{display:flex;gap:.75rem}.assignment-content{display:grid;grid-template-columns:1fr;gap:1.5rem}.content-card{padding:1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:#ffffff05}.content-card h2{margin:0 0 1.25rem;font-size:1.3rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.06)}.detail-row{display:flex;gap:1rem;margin-bottom:1rem;align-items:flex-start}.detail-label{font-weight:600;min-width:120px;color:var(--text-secondary);font-size:.9rem}.detail-value{flex:1;color:var(--text-primary)}.description-text{line-height:1.6;white-space:pre-wrap}.attachment-item{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2);font-size:.85rem;max-width:fit-content}.attachment-item a,.attachment-item button{color:var(--accent-primary);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;font-size:.85rem}.submissions-section{padding:1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:#ffffff05}.section-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.06)}.section-header h2{margin:0;font-size:1.3rem;display:flex;align-items:center;gap:.5rem}.empty-submissions{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-secondary);gap:1rem}.empty-submissions svg{opacity:.3}.submissions-list{display:flex;flex-direction:column;gap:1rem}.submission-card{padding:1.25rem;border-radius:10px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;transition:all .15s ease}.submission-card:hover{background:#ffffff0a;border-color:#ffffff1a}.submission-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.student-info{display:flex;align-items:center;gap:.75rem}.student-info h3{margin:0;font-size:1.1rem}.status-badge{padding:.3rem .8rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.submission-date{font-size:.85rem;color:var(--text-secondary)}.not-submitted{color:var(--accent-danger);font-weight:500}.submission-text{margin-bottom:1rem;padding:.75rem;border-radius:8px;background:#ffffff05}.submission-text strong{display:block;margin-bottom:.5rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.submission-text p{margin:0;line-height:1.6;white-space:pre-wrap}.submission-attachments{margin-bottom:1rem}.submission-attachments strong{display:block;margin-bottom:.5rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.grade-display{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06)}.grade-info{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.grade-label{font-weight:600;color:var(--text-secondary)}.grade-value{font-size:1.3rem;font-weight:700;color:var(--accent-primary)}.teacher-remarks{margin-bottom:.75rem;padding:.75rem;border-radius:8px;background:#ffffff05}.teacher-remarks strong{display:block;margin-bottom:.5rem;font-size:.85rem;color:var(--text-secondary)}.teacher-remarks p{margin:0;line-height:1.6;white-space:pre-wrap}.graded-date{font-size:.85rem;color:var(--text-secondary);margin-bottom:.75rem}.btn-sm{padding:.4rem .8rem!important;font-size:.85rem!important}.modal-content{background:var(--bg-secondary);border-radius:16px;padding:2rem;max-width:500px;width:90%;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #0000004d}.grade-modal{max-width:550px}.modal-content h3{margin:0 0 1.5rem;font-size:1.4rem}.form-group input,.form-group textarea{width:100%;padding:.65rem .9rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-primary);font-size:.9rem;transition:all .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary);background:#ffffff0a}.form-group textarea{resize:vertical;font-family:inherit;line-height:1.5}.btn-primary,.btn-secondary{padding:.6rem 1.2rem;border-radius:8px;border:none;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.student-assignments-page{display:flex;flex-direction:column;gap:1.5rem}.page-header h1{margin:0 0 .5rem;font-size:1.8rem}.page-header p{margin:0;color:var(--text-secondary);font-size:.95rem}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.25rem}.assignment-card{padding:1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;transition:all .2s ease;display:flex;flex-direction:column;gap:1rem}.assignment-card:hover{border-color:#ffffff1f;background:#ffffff0a;transform:translateY(-2px)}.assignment-card.status-danger{border-left:3px solid var(--accent-danger)}.assignment-card.status-warning{border-left:3px solid #fbbf24}.assignment-card.status-info{border-left:3px solid var(--accent-primary)}.assignment-card.status-success{border-left:3px solid #22c55e}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.assignment-info h3{margin:0 0 .5rem;font-size:1.2rem;line-height:1.3}.assignment-meta{display:flex;gap:.5rem;font-size:.85rem;color:var(--text-secondary);flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.status-success{background:#22c55e1a;color:#22c55e}.status-info{background:#0ea5e91a;color:var(--accent-primary)}.status-warning{background:#fbbf241a;color:#fbbf24}.status-danger{background:#ef44441a;color:var(--accent-danger)}.assignment-description{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.assignment-description p{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.assignment-details{display:flex;flex-direction:column;gap:.5rem}.detail-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.detail-item svg{color:var(--accent-primary);flex-shrink:0}.overdue-text{color:var(--accent-danger);font-weight:500}.assignment-attachments{padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06)}.assignment-attachments strong{display:block;margin-bottom:.5rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.attachments-list{display:flex;flex-direction:column;gap:.5rem}.attachment-item{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .65rem;border-radius:6px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2);font-size:.8rem;max-width:fit-content}.attachment-item svg{color:var(--accent-primary);flex-shrink:0}.attachment-item a,.attachment-item button{color:var(--accent-primary);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;font-size:.8rem}.attachment-item a:hover,.attachment-item button:hover{text-decoration:underline}.submission-info{padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06)}.grade-section{display:flex;flex-direction:column;gap:.75rem}.grade-display{display:flex;align-items:center;gap:.75rem}.grade-label{font-weight:600;color:var(--text-secondary);font-size:.9rem}.grade-value{font-size:1.5rem;font-weight:700;color:#22c55e}.teacher-feedback{padding:.75rem;border-radius:8px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2)}.teacher-feedback strong{display:block;margin-bottom:.5rem;font-size:.85rem;color:var(--text-secondary)}.teacher-feedback p{margin:0;font-size:.9rem;line-height:1.5;color:var(--text-primary)}.submission-status{display:flex;align-items:center;gap:.5rem;color:var(--accent-primary);font-size:.9rem}.submission-status svg{flex-shrink:0}.card-actions{margin-top:auto}.btn-primary,.btn-secondary{width:100%;padding:.7rem 1rem;border-radius:8px;border:none;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary:hover:not(:disabled){background:#0c7dc5;transform:translateY(-1px)}.btn-secondary{background:#ffffff0d;color:var(--text-primary);border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover:not(:disabled){background:#ffffff14;transform:translateY(-1px)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-secondary);border-radius:16px;padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h3{margin:0;font-size:1.4rem}.close-btn{padding:.5rem;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex}.close-btn:hover{background:#ffffff0d;color:var(--text-primary)}.assignment-info-banner{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;margin-bottom:1.5rem;border-radius:8px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2)}.info-item{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.info-item strong{font-size:.95rem}.info-item svg{color:var(--accent-primary)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;font-size:.9rem;color:var(--text-secondary)}.form-group .required{color:var(--accent-danger)}.form-group textarea{width:100%;padding:.75rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-primary);font-size:.9rem;font-family:inherit;line-height:1.5;resize:vertical;transition:all .2s ease}.form-group textarea:focus{outline:none;border-color:var(--accent-primary);background:#ffffff0a}.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.attachment-controls{display:flex;gap:.75rem;margin-bottom:1rem}.attachment-controls .btn-secondary{width:auto;padding:.5rem 1rem;font-size:.85rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.modal-actions .btn-primary,.modal-actions .btn-secondary{width:auto;padding:.6rem 1.2rem}.info-note{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.65rem .9rem;border-radius:8px;background:#0ea5e90f;border:1px solid rgba(14,165,233,.2);color:var(--accent-primary);font-size:.85rem}.info-note svg{flex-shrink:0}.btn-icon{padding:.3rem;border-radius:4px;border:1px solid rgba(255,255,255,.06);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex}.btn-icon.btn-danger:hover{background:#ef44441a;border-color:var(--accent-danger);color:var(--accent-danger)}.loading-state{padding:3rem;text-align:center;color:var(--text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;color:var(--text-secondary)}.empty-state svg{opacity:.3}.error-banner{display:flex;gap:.5rem;align-items:center;padding:.65rem .9rem;border-radius:10px;background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:var(--accent-danger);font-size:.9rem}.tenant-page{width:100%;display:flex;flex-direction:column;gap:2rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.page-header h1{font-size:2rem;margin-bottom:.5rem}.page-header p{color:var(--text-secondary);margin:0}.header-actions{display:flex;align-items:center;gap:.5rem}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:8px;border:none;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s ease}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:#ffffff0d;border-color:var(--accent-primary);transform:translateY(-1px)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.error-banner{padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444}.error-message{padding:2rem;text-align:center;color:var(--text-secondary)}.tenant-content{display:block;max-width:900px}@media(max-width:1024px){.tenant-content{max-width:100%}}.tenant-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.card-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;border-bottom:1px solid var(--border-color)}.card-icon{color:var(--accent-primary)}.card-header h2{font-size:1.5rem;margin:0}.card-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-primary);font-size:.95rem}.form-input,.form-textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;transition:all .2s ease}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.form-textarea{resize:vertical;font-family:inherit}.field-value{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary)}.field-value svg{color:var(--text-secondary);flex-shrink:0}.logo-section{display:flex;align-items:center;gap:1.5rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.logo-section .logo-preview{flex-shrink:0;width:150px;height:150px;display:flex;align-items:center;justify-content:center;border:2px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-primary)}.logo-section .logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.btn-upload{display:inline-flex;align-items:center;gap:.5rem}.logo-upload-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 2rem;background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:8px;color:var(--text-secondary)}.logo-upload-empty svg{opacity:.5}.logo-upload-empty p{margin:0;font-size:.95rem}.logo-preview{padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center}.logo-preview img{max-width:200px;max-height:200px;object-fit:contain;border-radius:8px}.card-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid var(--border-color);background:#ffffff05}.tenant-info{display:flex;flex-direction:column;gap:1rem}.info-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.info-card h3{font-size:1.25rem;margin:0 0 1rem;color:var(--text-primary)}.info-row{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.info-row:last-child{border-bottom:none}.info-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.info-value{font-size:.95rem;color:var(--text-primary);word-break:break-all}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-actions{width:100%;justify-content:flex-start}.tenant-content{gap:1rem}.card-body{padding:1rem}.card-footer{flex-direction:column-reverse;gap:.75rem}.card-footer button{width:100%}}.attendance-page{width:100%;display:flex;flex-direction:column;gap:1.5rem}.attendance-page .page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.attendance-page .header-left{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.attendance-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.attendance-page .section-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#0ea5e914,#06b6d414);border:1px solid rgba(14,165,233,.2);border-radius:8px;font-weight:600;font-size:.875rem;color:var(--text-primary)}.attendance-page .back-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease}.attendance-page .back-button:hover{background:var(--bg-glass-hover);border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.attendance-page .error-banner{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:var(--accent-danger);font-size:.875rem;font-weight:500}.attendance-page .success-banner{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:12px;background:#0ea5e91a;border:1px solid rgba(14,165,233,.35);color:var(--accent-primary);font-size:.875rem;font-weight:500}.attendance-page .attendance-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;transition:all .2s ease}.attendance-page .master-header{padding:1.5rem;background:linear-gradient(135deg,#0ea5e914,#06b6d414);border-bottom:2px solid rgba(14,165,233,.2);display:flex;align-items:center;gap:1rem}.attendance-page .master-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #0ea5e94d}.attendance-page .master-header h2{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0;text-transform:uppercase;letter-spacing:.05em}.attendance-page .master-content{padding:1.5rem;background:var(--bg-glass)}.attendance-page .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem;max-width:300px}.attendance-page .form-group{display:flex;flex-direction:column;gap:.5rem}.attendance-page .form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.attendance-page .required{color:var(--accent-danger)}.attendance-page .form-group input[type=date],.attendance-page .form-group input[type=text],.attendance-page .form-group select{padding:.75rem 1rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font-size:.875rem;transition:all .2s ease}.attendance-page .form-group input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(.7);opacity:1}.attendance-page .form-group input:focus,.attendance-page .form-group select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #0ea5e91a}.attendance-page .form-group input:disabled,.attendance-page .form-group select:disabled{opacity:.6;cursor:not-allowed}.attendance-page .stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.attendance-page .stat-card{padding:1rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;display:flex;align-items:center;gap:1rem;transition:all .2s ease}.attendance-page .stat-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.attendance-page .stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.25rem}.attendance-page .stat-card.total .stat-icon,.attendance-page .stat-card.present .stat-icon{background:linear-gradient(135deg,#0ea5e926,#06b6d426);color:var(--accent-primary)}.attendance-page .stat-card.absent .stat-icon{background:linear-gradient(135deg,#ef444426,#dc262626);color:var(--accent-danger)}.attendance-page .stat-content{flex:1}.attendance-page .stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1}.attendance-page .stat-label{font-size:.75rem;color:var(--text-muted);margin-top:.25rem;text-transform:uppercase;letter-spacing:.05em}.attendance-page .detail-section{margin-top:1.5rem}.attendance-page .detail-header{padding:1.5rem;background:linear-gradient(135deg,#0ea5e914,#06b6d414);border-bottom:2px solid rgba(14,165,233,.2);display:flex;align-items:center;gap:1rem}.attendance-page .detail-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #0ea5e94d}.attendance-page .detail-header h2{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0;text-transform:uppercase;letter-spacing:.05em}.attendance-page .students-content{padding:1.5rem;background:var(--bg-glass)}.attendance-page .students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.attendance-page .student-card{padding:1rem 1.25rem;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;gap:.75rem;cursor:pointer;transition:all .2s ease;position:relative}.attendance-page .student-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.attendance-page .student-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.attendance-page .student-card.present{background:linear-gradient(135deg,#0ea5e90d,#06b6d40d)}.attendance-page .student-card.absent{background:linear-gradient(135deg,#ef44440d,#dc26260d)}.attendance-page .student-header{display:flex;align-items:center;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.attendance-page .student-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;color:#fff;box-shadow:0 4px 12px #0ea5e940;border:3px solid var(--bg-glass)}.attendance-page .student-avatar img{width:100%;height:100%;object-fit:cover}.attendance-page .student-checkbox input[type=checkbox]{width:24px;height:24px;cursor:pointer;accent-color:var(--accent-primary)}.attendance-page .student-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.attendance-page .student-name{font-weight:600;color:var(--text-primary);font-size:.9375rem;line-height:1.3;word-break:break-word}.attendance-page .student-roll{font-size:.8125rem;color:var(--text-muted);font-weight:500}.attendance-page .student-bottom{display:flex;align-items:center;gap:1rem}.attendance-page .student-checkbox{flex-shrink:0}.attendance-page .status-badge{padding:.375rem .875rem;border-radius:8px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;box-shadow:0 2px 4px #0000001a;margin-left:auto}.attendance-page .status-badge.present{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}.attendance-page .status-badge.absent{background:var(--accent-danger);color:#fff}.attendance-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;color:var(--text-muted);text-align:center}.attendance-page .empty-state svg{margin-bottom:1rem;opacity:.5}.attendance-page .form-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;background:var(--bg-glass);border-top:1px solid var(--border-color)}.attendance-page .btn-primary,.attendance-page .btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;height:var(--control-height)}.attendance-page .btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 4px 12px #0ea5e94d}.attendance-page .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0ea5e966}.attendance-page .btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.attendance-page .btn-secondary{background:var(--bg-glass);color:var(--text-secondary);border:1px solid var(--border-color)}.attendance-page .btn-secondary:hover:not(:disabled){background:var(--bg-glass-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.attendance-page .inline-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.attendance-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.attendance-page .spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@media(max-width:768px){.attendance-page .stats-grid,.attendance-page .students-grid,.attendance-page .form-row{grid-template-columns:1fr}.attendance-page .form-actions{flex-direction:column-reverse}.attendance-page .btn-primary,.attendance-page .btn-secondary{width:100%;justify-content:center}}.school-buses-page{width:100%;display:flex;flex-direction:column;gap:1.5rem}.school-bus-filters{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.school-bus-filters .search-box{display:flex;align-items:center;gap:.75rem;background:var(--bg-glass);border:1px solid var(--border-color);padding:0 .75rem;border-radius:8px;max-width:420px;width:100%;height:40px}.school-bus-filters .search-box input{border:none;outline:none;background:transparent;width:100%;height:100%}.school-bus-filters .refresh-btn{margin-left:.5rem;padding:.45rem .7rem;display:inline-flex;align-items:center;gap:.5rem;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all .12s ease;font-size:.9rem}.school-bus-filters .refresh-btn:hover:not(:disabled){background:#0ea5e90f;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px)}.branch-filter select{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-primary);padding:.45rem .65rem;border-radius:8px;min-width:200px}.school-bus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.25rem}.school-bus-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:16px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:all .25s ease}.school-bus-card:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.bus-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.bus-id{display:flex;gap:.75rem;align-items:center}.bus-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#0ea5e926,#06b6d41f);display:grid;place-items:center;color:var(--accent-primary)}.bus-id h3{margin:0;font-size:1.1rem}.bus-id p{margin:0;color:var(--text-muted)}.bus-tags{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.tag{padding:.35rem .55rem;border-radius:999px;font-size:.8rem;border:1px solid var(--border-color)}.tag-success{background:#16a34a1f;color:#16a34a;border-color:#16a34a33}.tag-muted{background:#6b728026;color:#9ca3af;border-color:#6b728033}.tag-info{background:#0ea5e91f;color:#0ea5e9;border-color:#0ea5e940}.tag-warning{background:#f59e0b24;color:#f59e0b;border-color:#f59e0b38}.bus-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem 1rem}.detail-item{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.95rem}.bus-actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn-ghost{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .75rem;border:1px solid var(--border-color);background:#ffffff05;color:var(--text-primary);border-radius:10px;cursor:pointer;transition:all .15s ease}.btn-ghost:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.btn-ghost.danger:hover:not(:disabled){border-color:#ef444499;color:#ef4444}.btn-ghost:disabled{opacity:.6;cursor:not-allowed}.allocation-panel{border-top:1px solid var(--border-color);padding-top:1rem;display:flex;flex-direction:column;gap:1rem}.allocation-list{display:flex;flex-direction:column;gap:.75rem}.allocation-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem;border:1px solid var(--border-color);border-radius:10px;background:#ffffff08;flex-wrap:wrap}.allocation-student{display:flex;align-items:center;gap:.85rem;min-width:280px;flex-shrink:0}.student-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;object-fit:cover;border:2px solid rgba(255,255,255,.1)}.student-name{font-weight:600;font-size:.95rem;color:var(--text-primary);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-meta{font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.allocation-details{display:flex;align-items:center;gap:1.5rem;flex:1;justify-content:flex-end;flex-wrap:wrap}.detail-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary);white-space:nowrap}.detail-item strong{color:var(--text-muted);font-weight:500}.allocation-row .label{color:var(--text-muted);font-size:.8rem;display:block;margin-bottom:.25rem}.allocation-row p{margin:0;color:var(--text-primary)}.allocation-form{background:#ffffff05;border:1px solid var(--border-color);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.allocation-form h4{margin:0}.allocation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.9rem;color:var(--text-secondary)}.field input{padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.allocation-actions{display:flex;justify-content:flex-end}.error-banner.small{padding:.6rem .8rem;font-size:.9rem}.student-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1000;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:.25rem;max-height:300px;overflow-y:auto;box-shadow:0 4px 12px #0000004d}.student-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .15s ease}.student-item:hover{background:#ffffff0d}.student-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:.9rem}.student-name{font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.student-details{font-size:.85rem;color:var(--text-muted)}@media(max-width:1024px){.allocation-details{gap:1rem}.detail-item{font-size:.85rem}}@media(max-width:720px){.school-bus-filters{flex-direction:column;align-items:stretch}.branch-filter select{width:100%}.school-bus-grid{grid-template-columns:1fr}.allocation-row{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem}.allocation-student{width:100%;min-width:auto}.allocation-details{width:100%;flex-direction:column;gap:.75rem;align-items:stretch}.detail-item{display:flex;justify-content:space-between;width:100%;padding:.65rem .75rem;background:#ffffff0a;border-radius:8px;border:1px solid rgba(255,255,255,.05)}.allocation-grid{grid-template-columns:1fr}.student-dropdown{left:0;right:0;min-width:100%;max-width:100%}}.school-bus-form-page{display:flex;flex-direction:column;gap:1.25rem}.form-header{display:flex;flex-direction:column;gap:.35rem}.form-card{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.bus-form{display:flex;flex-direction:column;gap:1.25rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-weight:600;color:var(--text-secondary)}.form-group input,.form-group select{padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.form-group.inline{flex-direction:row;align-items:center;gap:1rem}.form-group.inline label{font-weight:500;display:flex;align-items:center;gap:.35rem}.input-with-icon{display:flex;align-items:center;gap:.5rem;padding:.55rem .65rem;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-glass)}.input-with-icon input,.input-with-icon select{border:none;outline:none;background:transparent;width:100%;color:var(--text-primary)}.allocations-section{border-top:1px solid var(--border-color);padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.section-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.section-header p{margin:0;color:var(--text-muted)}.allocation-stack{display:flex;flex-direction:column;gap:.75rem}.allocation-card{border:1px dashed var(--border-color);border-radius:12px;padding:.9rem;background:#ffffff05}.allocation-card.compact{padding:.75rem;background:#ffffff0a}.allocation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem}.allocation-card .field{display:flex;flex-direction:column;gap:.25rem}.allocation-card .field label{color:var(--text-secondary);font-weight:500}.allocation-card .field input{padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}.allocation-card .field-value{margin:0;color:var(--text-primary)}.allocation-actions{margin-top:.65rem;display:flex;justify-content:flex-end}.form-actions{display:flex;justify-content:flex-end;gap:.75rem}.btn-submit{display:inline-flex;align-items:center;gap:.45rem;padding:.65rem 1rem;border-radius:10px;border:none;background:var(--accent-primary);color:#0b1224;font-weight:600;cursor:pointer}.btn-cancel{padding:.65rem 1rem;border-radius:10px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);cursor:pointer}.btn-ghost{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .75rem;border:1px solid var(--border-color);background:#ffffff05;color:var(--text-primary);border-radius:10px;cursor:pointer}.btn-ghost.danger{color:#ef4444;border-color:#ef444480}.back-btn{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:1px solid var(--border-color);padding:.45rem .75rem;border-radius:10px;cursor:pointer}.required{color:#ef4444}.muted{color:var(--text-muted);margin:0}.student-dropdown{position:absolute;top:100%;left:0;right:auto;min-width:400px;max-width:500px;z-index:1000;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:.25rem;max-height:320px;overflow-y:auto;box-shadow:0 8px 24px #0006}.student-item{display:flex;align-items:center;gap:.85rem;padding:.85rem;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .15s ease}.student-item:last-child{border-bottom:none}.student-item:hover{background:#ffffff14}.student-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0}.student-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:1rem}.student-info{flex:1;min-width:0}.student-name{font-weight:600;font-size:.95rem;color:var(--text-primary);margin-bottom:.3rem}.student-details,.student-meta{font-size:.85rem;color:var(--text-muted);line-height:1.4}.allocation-row{display:flex;align-items:center;gap:1rem}.allocation-student{display:flex;align-items:center;gap:.75rem;min-width:250px}.allocation-details{display:flex;flex-wrap:wrap;gap:1rem;flex:1}.detail-item{color:var(--text-secondary);font-size:.9rem}.detail-item strong{color:var(--text-primary);font-weight:600}.student-search-field{position:relative;grid-column:1 / -1}.student-search-wrapper{position:relative}.student-search-input{width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary)}@media(max-width:720px){.section-header{flex-direction:column;align-items:flex-start}.form-actions{flex-direction:column;align-items:stretch}.btn-submit,.btn-cancel{width:100%;justify-content:center}.allocation-row{flex-direction:column;align-items:flex-start}.allocation-details{width:100%}.detail-item{display:flex;justify-content:space-between;width:100%;padding:.5rem;background:#ffffff05;border-radius:6px}.student-dropdown{left:0;right:0;min-width:100%;max-width:100%}.form-grid,.allocation-grid{grid-template-columns:1fr}}
