.hams-card{box-shadow:var(--shadow-lg);transition:transform .3s,box-shadow .3s}.hams-card:hover{transform:translateY(-2px);box-shadow:0 15px 30px #0006,0 0 15px #3b82f633}.hams-button{background:var(--gradient-accent);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;padding:1rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 15px #3b82f64d}.hams-button:after{content:"";opacity:0;background:linear-gradient(#fff3,#0000);width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.hams-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #3b82f680}.hams-button:hover:not(:disabled):after{opacity:1}.hams-button:active:not(:disabled){transform:translateY(0)}.hams-button:disabled{opacity:.7;cursor:not-allowed;filter:grayscale(.5)}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-container{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-wrapper{flex-direction:column;align-items:center;width:100%;max-width:420px;animation:.8s cubic-bezier(.16,1,.3,1) forwards fadeUp;display:flex}.logo-section{flex-direction:column;align-items:center;margin-bottom:3rem;display:flex}.logo-glow{background:var(--gradient-accent);box-shadow:var(--shadow-glow);border-radius:50%;margin-bottom:1.5rem;padding:1.2rem}.logo-text{letter-spacing:6px;background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:900}.logo-subtext{color:var(--color-text-muted);letter-spacing:1px;font-size:.9rem}.login-card{width:100%}.login-title{margin-bottom:.25rem;font-size:1.4rem;font-weight:700}.login-subtitle{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:.9rem}.error-message{color:var(--color-error);background:#ef44441a;border:1px solid #ef444433;border-radius:8px;margin-bottom:1.5rem;padding:.75rem;font-size:.85rem}.input-group{margin-bottom:1.5rem}.input-group label{color:#1e293b;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:#64748b;pointer-events:none;z-index:2;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.input-wrapper input,.input-wrapper input[type=text]{font-family:inherit;font-size:1rem;font-weight:500;transition:all .2s;box-shadow:0 1px 3px #0000000d;color:#0f172a!important;background:#fff!important;border:1.5px solid #cbd5e1!important;border-radius:12px!important;width:100%!important;padding:.85rem 1rem .85rem 3rem!important}.input-wrapper input::placeholder{font-weight:400;color:#94a3b8!important}.input-wrapper input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f640;color:#000!important;background:#fff!important}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.radar-container{justify-content:center;align-items:center;padding:40px;display:flex;position:relative}.radar-content{z-index:10;position:relative}.radar-ring{border:2px solid var(--color-accent);opacity:0;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scanning .ring-1{animation:2s cubic-bezier(0,0,.2,1) infinite radar-ping}.scanning .ring-2{animation:2s cubic-bezier(0,0,.2,1) .6s infinite radar-ping}.scanning .ring-3{animation:2s cubic-bezier(0,0,.2,1) 1.2s infinite radar-ping}@keyframes radar-ping{0%{opacity:.8;width:0;height:0}to{opacity:0;width:200px;height:200px}}.dashboard-container{flex-direction:column;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.dashboard-header{justify-content:space-between;align-items:center;width:100%;max-width:600px;margin-bottom:2rem;padding:1rem 1.5rem;display:flex;border-radius:100px!important}.dashboard-header h2{font-size:1.2rem;font-weight:700}.logout-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.5rem;transition:color .2s}.logout-btn:hover{color:var(--color-error)}.dashboard-content{flex-direction:column;gap:1.5rem;width:100%;max-width:480px;animation:.6s forwards fadeUp;display:flex}.profile-card{flex-direction:column;align-items:center;display:flex}.avatar{background:var(--gradient-accent);width:72px;height:72px;box-shadow:var(--shadow-glow);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;font-size:2rem;font-weight:800;display:flex}.welcome-text{margin-bottom:1.5rem;font-size:1.4rem;font-weight:800}.info-list{flex-direction:column;gap:1rem;width:100%;display:flex}.info-row{border-bottom:1px solid var(--color-border);align-items:center;padding:.5rem 0;display:flex}.info-row:last-child{border-bottom:none}.info-icon-wrapper{color:var(--color-accent);background:#3b82f61a;border-radius:12px;margin-right:1rem;padding:.6rem}.info-text{flex-direction:column;display:flex}.info-label{color:var(--color-text-muted);letter-spacing:.5px;font-size:.75rem;font-weight:600}.info-value{font-size:1rem;font-weight:600}.schedule-banner{align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.schedule-banner.active{background:#10b9811a;border-color:#10b9814d}.schedule-banner.inactive{background:#f59e0b1a;border-color:#f59e0b4d}.status-dot{border-radius:50%;width:12px;height:12px}.schedule-banner.active .status-dot{background:var(--color-success);box-shadow:0 0 10px var(--color-success)}.schedule-banner.inactive .status-dot{background:var(--color-warning);box-shadow:0 0 10px var(--color-warning)}.status-title{font-size:.9rem;font-weight:700}.schedule-banner.active .status-title{color:var(--color-success)}.schedule-banner.inactive .status-title{color:var(--color-warning)}.status-time{color:var(--color-text-muted);font-size:.8rem}.attendance-action{text-align:center;flex-direction:column;align-items:center;display:flex}.mark-btn{background:var(--gradient-accent);color:#fff;cursor:pointer;width:100px;height:100px;box-shadow:var(--shadow-glow);z-index:20;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.mark-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 30px #3b82f699}.mark-btn.marking{opacity:.8;cursor:wait}.action-title{margin-top:1.5rem;font-size:1.2rem;font-weight:700}.action-desc{color:var(--color-text-muted);margin-top:.5rem;font-size:.85rem}.success-banner{text-align:center;background:#10b9811a;border:1px solid #10b9814d;border-radius:16px;flex-direction:column;align-items:center;padding:1rem;display:flex}.success-banner h3{color:var(--color-success);margin:1rem 0 .5rem;font-size:1.2rem}.success-banner p{color:var(--color-success);opacity:.8;font-size:.9rem;line-height:1.5}.sidebar-container{border-right:1px solid var(--color-border);background:var(--color-bg-elevated);z-index:10;flex-direction:column;width:260px;height:100vh;display:flex;position:sticky;top:0}.sidebar-header{border-bottom:1px solid var(--color-border);padding:24px 20px;position:relative}.sidebar-title{color:var(--color-text);letter-spacing:-.5px;margin:0;font-size:20px;font-weight:800}.sidebar-subtitle{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.sidebar-nav{flex-direction:column;flex:1;gap:8px;padding:20px 12px;display:flex;overflow-y:auto}.sidebar-nav-item{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-size:15px;font-weight:500;transition:all .2s;display:flex}.sidebar-nav-item:hover{background:var(--color-surface);color:var(--color-text)}.sidebar-nav-item.active{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm);border-color:#0000}.sidebar-nav-icon{flex-shrink:0}.sidebar-overlay,.sidebar-close-btn{display:none}@media (width<=768px){.sidebar-container{box-shadow:var(--shadow-lg);transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;transform:translate(-100%)}.sidebar-container.open{transform:translate(0)}.sidebar-overlay.show{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9;background:#00000080;display:block;position:fixed;inset:0}.sidebar-close-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;display:block;position:absolute;top:24px;right:16px}}.students-view-container{flex-direction:column;gap:24px;padding:32px;display:flex}.students-view-header{justify-content:space-between;align-items:flex-start;display:flex}.students-view-header h2{color:var(--color-text);margin:0 0 8px;font-size:28px;font-weight:800}.students-view-header p{color:var(--color-text-muted);margin:0;font-size:15px}.filters-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.search-box{width:320px;position:relative}.search-box input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:12px;outline:none;padding:12px 16px 12px 40px;font-size:14px}.search-icon{color:var(--color-text-muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.select-wrapper{position:relative}.select-wrapper select{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:12px;outline:none;min-width:150px;padding:12px 40px 12px 16px;font-size:14px}.select-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.sync-btn{border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:8px;padding:12px 20px;font-weight:600;transition:all .2s;display:flex}.sync-btn:hover{background:var(--color-surface)}.students-list{flex-direction:column;gap:16px;display:flex}.student-card-content{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.student-avatar{background:var(--color-accent);width:48px;height:48px;color:var(--color-bg);border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.student-info{flex:1;min-width:200px}.student-info h4{margin:0 0 4px;font-size:16px}.student-info p{color:var(--color-text-muted);margin:0 0 4px;font-size:13px}.status-badge{border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.status-badge.assigned{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e4d}.status-badge.unassigned{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b4d}.student-actions{align-items:center;gap:8px;display:flex}.action-btn{background:var(--color-surface);color:var(--color-text);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;display:flex}.action-btn.delete{color:#ef4444;background:#ef44441a}.loading-state{text-align:center;color:var(--color-text-muted);padding:40px}.custom-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.custom-modal{background:var(--color-surface);border:1px solid var(--color-border);width:400px;max-width:90vw;box-shadow:var(--shadow-lg);border-radius:16px;padding:24px}.custom-modal h3{margin:0 0 8px;font-size:20px}.custom-modal p{color:var(--color-text-muted);margin:0 0 20px;font-size:14px}.custom-modal input{border:1px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text);border-radius:8px;outline:none;margin-bottom:24px;padding:12px;font-size:16px}.custom-modal input:focus{border-color:var(--color-accent)}.custom-modal-actions{justify-content:flex-end;gap:12px;display:flex}.btn-cancel,.btn-save{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-weight:600}.btn-cancel{color:var(--color-text-muted);background:0 0}.btn-cancel:hover{background:var(--color-border)}.btn-save{background:var(--color-accent);color:#fff}.btn-save:hover{background:var(--color-accent-dark)}@media (width<=768px){.students-view-header{flex-direction:column;gap:16px}.filters-row{flex-direction:column;align-items:stretch}.search-box{width:100%}.student-card-content{flex-direction:column;align-items:flex-start}.student-actions{justify-content:space-between;width:100%}.custom-modal{width:100%;margin:16px;padding:16px}}.attendance-view-container{flex-direction:column;gap:24px;padding:32px;display:flex}.attendance-header{justify-content:space-between;align-items:flex-start;display:flex}.attendance-header h2{color:var(--color-text);margin:0 0 8px;font-size:28px;font-weight:800}.attendance-header p{color:var(--color-text-muted);margin:0;font-size:15px}.filters-card{background:var(--color-surface)}.filters-card h4{color:var(--color-text);margin:0 0 12px}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.filter-chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .2s}.filter-chip.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.attendance-list{flex-direction:column;gap:12px;display:flex}.attendance-row-card{transition:all .2s;overflow:hidden}.attendance-row-header{cursor:pointer;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.attendance-row-header:hover{background:var(--color-surface)}.row-info{align-items:center;gap:12px;display:flex}.row-info h4{margin:0;font-size:16px}.bank-code-badge{color:var(--color-accent);background:#b7a1f51a;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700}.group-badge{color:var(--color-text-muted);font-size:13px}.row-stats{color:var(--color-text-muted);align-items:center;gap:16px;display:flex}.stats-text{flex-direction:column;align-items:flex-end;display:flex}.stats-text .percentage{font-size:16px;font-weight:700}.stats-text .count{font-size:12px}.attendance-row-details{background:var(--color-surface);border-top:1px solid var(--color-border);flex-direction:column;gap:12px;padding:16px 20px;display:flex}.breakdown-item{justify-content:space-between;font-size:14px;display:flex}.breakdown-item .type-name{color:var(--color-text);font-weight:600}@media screen and (width<=768px){.attendance-view-container{padding:16px}.attendance-header{flex-direction:column;gap:16px}.header-actions{flex-direction:column;gap:12px;width:100%;display:flex}.header-actions .search-box{width:100%}.header-actions .search-box input{width:100%!important}.header-actions .action-btn{justify-content:center;width:100%}.attendance-row-header{flex-direction:column;align-items:flex-start;gap:12px}.row-info{flex-wrap:wrap;width:100%}.row-stats{justify-content:space-between;width:100%}}.live-view-container{flex-direction:column;gap:32px;padding:32px;display:flex}.live-header{justify-content:space-between;align-items:flex-start;display:flex}.live-header h2{color:var(--color-text);margin:0 0 12px;font-size:28px;font-weight:800}.live-header p{color:var(--color-text-muted);margin:0;font-size:15px;line-height:1.5}.icon-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;transition:all .2s}.icon-btn:hover{background:var(--color-surface);color:var(--color-text)}.icon-btn.delete:hover{color:#ef4444;background:#ef44441a}.status-banner{border:1px solid #0000;border-radius:16px;align-items:center;gap:16px;padding:20px 24px;display:flex}.status-banner.open{color:#22c55e;background:#22c55e1a;border-color:#22c55e4d}.status-banner.closed{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.status-icon{border-radius:50%;padding:8px}.status-banner.open .status-icon{background:#22c55e33}.status-banner.closed .status-icon{background:#ef444433}.status-text h3{margin:0;font-size:16px;font-weight:800}.status-text p{opacity:.8;margin:4px 0 0;font-size:13px}.schedule-card{flex-direction:column;display:flex}.card-section-header{align-items:center;gap:16px;margin-bottom:32px;display:flex}.icon-wrap{background:var(--color-accent);color:var(--color-bg);border-radius:8px;justify-content:center;align-items:center;padding:8px;display:flex}.card-section-header h3{margin:0;font-size:20px;font-weight:700}.time-pickers-row,.advanced-row{align-items:center;gap:24px;display:flex}.time-field{flex-direction:column;flex:1;gap:12px;display:flex}.time-field label{color:var(--color-text-muted);font-size:13px;font-weight:600}.input-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:16px 12px;position:relative}.input-wrap input{width:100%;color:var(--color-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;cursor:pointer;background:0 0;border:none;outline:none;font-size:18px;font-weight:700}.input-wrap.select-wrap select{width:100%;color:var(--color-text);appearance:none;background:0 0;border:none;outline:none;font-size:16px;font-weight:600}.select-arrow{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.input-wrap.select-wrap select option{background:var(--color-bg);color:var(--color-text)}.arrow-icon{color:var(--color-text-muted)}.advanced-title{margin:32px 0 16px;font-size:16px;font-weight:700}.clear-info{color:var(--color-text-muted);align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.clear-info button{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0}.action-buttons{gap:16px;margin-top:48px;margin-bottom:24px;display:flex}.btn-primary{color:#fff;cursor:pointer;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:14px;font-weight:600;transition:opacity .2s;display:flex}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.start{background:#22c55e}.btn-primary.stop{background:#ef4444}.btn-outline{border:1px solid var(--color-border);width:100%;color:var(--color-text);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:14px;font-weight:600;display:flex}@media (width<=768px){.time-pickers-row,.advanced-row{flex-direction:column;align-items:stretch;gap:16px}.arrow-icon{align-self:center;transform:rotate(90deg)}.action-buttons{flex-direction:column;gap:12px}}.add-attendance-container{flex-direction:column;gap:32px;max-width:800px;padding:32px;display:flex}.add-attendance-header h2{color:var(--color-text);margin:0 0 12px;font-size:28px;font-weight:800}.add-attendance-header p{color:var(--color-text-muted);margin:0;font-size:15px}.add-session-form{flex-direction:column;gap:24px;display:flex}.form-group{flex-direction:column;gap:12px;display:flex}.form-group label{color:var(--color-text);font-size:16px;font-weight:600}.form-group input{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;cursor:pointer;border-radius:12px;outline:none;padding:16px;font-size:16px}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;display:grid}.icon-option{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;transition:all .2s;display:flex}.icon-option span{font-size:12px;font-weight:600}.icon-option:hover{background:var(--color-bg-elevated)}.icon-option.selected{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.submit-btn{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:12px;align-self:flex-start;margin-top:16px;padding:16px 24px;font-size:16px;font-weight:600}.submit-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.submit-btn{align-self:stretch;width:100%}}.message-view-container{flex-direction:column;gap:24px;padding:24px 32px;display:flex}.message-header h2{color:var(--color-text);margin:0 0 8px;font-size:24px;font-weight:700}.message-header p{color:var(--color-text-muted);margin:0}.connection-card,.composer-card,.audience-card{flex-direction:column;gap:16px;display:flex}.card-title{color:var(--color-text);margin:0 0 16px;font-size:18px;font-weight:600}.status-row{align-items:center;gap:12px;font-size:18px;font-weight:600;display:flex}.status-row.open{color:var(--color-success)}.status-row.disconnected{color:var(--color-text-muted)}.disconnect-btn{background-color:var(--color-error-soft);color:var(--color-error);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;margin-left:auto;padding:8px 16px;font-weight:500;display:flex}.connect-btn{background-color:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-weight:500;display:inline-block}.qr-section{flex-wrap:wrap;align-items:flex-start;gap:48px;display:flex}.qr-box{flex-direction:column;align-items:center;gap:12px;display:flex}.qr-code-wrapper{border:1px solid var(--color-border);background-color:#fff;border-radius:12px;padding:16px}.pairing-box{flex-direction:column;gap:12px;max-width:400px;display:flex}.pairing-input-row{gap:12px;display:flex}.pairing-input-row input{border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);border-radius:8px;flex:1;padding:10px 12px}.get-code-btn{background-color:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px}.pairing-code-display{flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex}.pairing-code-display .code{letter-spacing:8px;color:var(--color-accent);font-size:32px;font-weight:700}.success-banner{background-color:var(--color-success-soft);border:1px solid var(--color-success);color:var(--color-success);border-radius:8px;align-items:center;gap:12px;padding:16px;font-weight:500;display:flex}.chip-container{flex-wrap:wrap;gap:8px;display:flex}.placeholder-chip{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;border-radius:16px;padding:6px 12px;font-size:14px;transition:all .2s}.placeholder-chip:hover{color:var(--color-accent);border-color:var(--color-accent);background-color:#3b82f61a}.message-textarea{border:1px solid var(--color-border);background-color:var(--color-surface);width:100%;min-height:120px;color:var(--color-text);resize:vertical;border-radius:8px;padding:12px;font-family:inherit}.send-messages-btn{background-color:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-end;align-items:center;gap:8px;padding:12px 24px;font-weight:600;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.filter-input{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;align-items:center;width:250px;padding:0 12px;display:flex}.filter-input input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;width:100%;padding:10px 8px}.filter-select{border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);border-radius:8px;outline:none;padding:10px 12px}.action-btn{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-weight:500;display:flex}.action-btn:hover{background-color:var(--color-surface)}.selected-count{color:var(--color-accent);font-weight:600}.students-table-wrapper{border:1px solid var(--color-border);border-radius:8px;max-height:400px;overflow-x:auto}.students-table{border-collapse:collapse;width:100%}.students-table th,.students-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:12px 16px}.students-table th{background-color:var(--color-bg-elevated);color:var(--color-text-muted);z-index:1;font-weight:600;position:sticky;top:0}.students-table tr.selected{background-color:#3b82f61a}.filter-modal-overlay{z-index:100;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.filter-modal{background-color:var(--color-bg-elevated);width:100%;max-width:500px;height:auto;max-height:80vh;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;padding:24px;display:flex;overflow-y:auto}.filter-modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.filter-modal-header h3{margin:0;font-size:20px}.filter-close-btn{cursor:pointer;color:var(--color-text);background:0 0;border:none}.filter-section{margin-bottom:24px}.filter-section h4{margin:0 0 12px;font-weight:600}.filter-chip{background-color:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);border-radius:20px;padding:8px 16px;font-size:14px}.filter-chip.selected{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.done-btn{background-color:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-end;margin-top:auto;padding:12px 32px;font-weight:600}@media (width<=768px){.qr-section{flex-direction:column;align-items:stretch;gap:24px}.filter-row{flex-direction:column;align-items:stretch}.filter-input,.filter-select,.action-btn{justify-content:center;width:100%}}.target-view-container{flex-direction:column;gap:24px;padding:32px;display:flex}.target-header h2{color:var(--color-text);margin:0 0 8px;font-size:28px;font-weight:800}.target-header p{color:var(--color-text-muted);margin:0;font-size:15px}.target-config-card{flex-direction:column;gap:24px;display:flex}.segmented-control{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;display:flex;overflow:hidden}.segment-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:16px;font-size:15px;font-weight:600;transition:all .2s}.segment-btn.active{background:var(--color-accent);color:var(--color-bg)}.save-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:15px;font-weight:600;transition:opacity .2s;display:flex}.save-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:64px 0;display:flex}.empty-icon{opacity:.3}.student-checkbox-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.student-checkbox-card{transition:all .2s}.student-checkbox-card:hover{background:#ffffff0d}.checkbox-label{cursor:pointer;align-items:center;gap:16px;width:100%;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:20px;height:20px}.student-info h4{margin:0;font-size:15px;font-weight:600}.student-info span{color:var(--color-text-muted);font-size:13px}:root{--font-family:"Inter", system-ui, -apple-system, sans-serif;--color-bg:#f8fafc;--color-bg-elevated:#fff;--color-surface:#f1f5f9;--color-bg-glass:#fffc;--color-border:#e2e8f0;--color-border-hover:#cbd5e1;--color-accent-light:#60a5fa;--color-accent:#3b82f6;--color-accent-dark:#2563eb;--color-text:#1e293b;--color-text-muted:#64748b;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--gradient-accent:linear-gradient(135deg, var(--color-accent), var(--color-accent-dark));--shadow-sm:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-lg:0 10px 25px -3px #0000000d, 0 4px 6px -2px #00000006;--shadow-glow:0 0 20px #3b82f626}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 15%,#3b82f60d,#0000 35%),radial-gradient(circle at 85% 30%,#10b9810d,#0000 35%);min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-light)}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=time],select,textarea{color:#0f172a;background-color:#fff;border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}input::placeholder,textarea::placeholder{color:#94a3b8}input:focus,select:focus,textarea:focus{color:#000;background-color:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f633}.glass{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:16px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.admin-layout{width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.main-content{background:var(--color-bg);flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.top-header{border-bottom:1px solid var(--color-border);z-index:10;background:var(--color-bg);justify-content:space-between;align-items:center;gap:16px;padding:16px 32px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:16px;display:flex}.menu-btn{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:4px;display:none}.table-wrapper{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}@media (width<=768px){.top-header{padding:16px}.menu-btn{display:flex}.dashboard-container,.students-view-container,.attendance-view-container,.message-view-container{padding:16px!important}.kpi-grid,.dashboard-main{grid-template-columns:1fr!important}}.tab-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:1.1rem;font-weight:600;transition:all .2s}.tab-btn:hover{background:var(--color-surface);color:var(--color-text)}.tab-btn.active{background:var(--color-accent);color:#fff}
