:root{--bg:#0b0d12;--surface:#121622;--surface-2:#171b28;--text:#eaeefb;--muted:#a7b0c3;--accent:#66e3a4;--accent-2:#69b3ff;--danger:#ff6b6b;--warning:#f1c40f;--border:#ffffff14;--shadow:0 8px 24px #00000059;--shadow-soft:0 6px 18px #00000040;--radius:16px;--radius-sm:12px;--gap:16px;--gap-lg:20px;--gap-tiny:8px;--trans:200ms cubic-bezier(.2,.6,.2,1);--trans-fast:140ms cubic-bezier(.2,.6,.2,1)}*{box-sizing:border-box}#root,body,html{height:100%}body{background:radial-gradient(1200px 800px at 70% -10%,#1a2032 0,#0b0d12 45%,#0b0d12 100%),#0b0d12;background:radial-gradient(1200px 800px at 70% -10%,#1a2032 0,#0b0d12 45%,#0b0d12 100%),var(--bg);color:#eaeefb;color:var(--text);font-family:Segoe UI,ui-sans-serif,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;margin:0}.xd-root{background:#0a0d14;color:#eaeefb;color:var(--text);grid-template-rows:auto 1fr auto;min-height:100vh;padding:16px}.xd-main,.xd-root{grid-gap:16px;grid-gap:var(--gap);display:grid;gap:16px;gap:var(--gap)}.card{background:linear-gradient(180deg,#121622,#171b28);background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);box-shadow:0 6px 18px #00000040;box-shadow:var(--shadow-soft);padding:12px 14px}.hover-bounce{transition:transform .2s cubic-bezier(.2,.6,.2,1),box-shadow .2s cubic-bezier(.2,.6,.2,1),filter .2s cubic-bezier(.2,.6,.2,1);transition:transform var(--trans),box-shadow var(--trans),filter var(--trans)}.hover-bounce:hover{box-shadow:0 10px 28px #0006,inset 0 0 0 2px #ffffff05;filter:brightness(1.03);transform:translateY(-3px) scale(1.01)}.xd-header{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#101828;border-bottom:1px solid #1e293b;justify-content:space-between;padding:1rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.header-left,.xd-header{align-items:center;display:flex}.header-left{gap:12px}.logo-block{align-items:center;display:flex;gap:10px}.logo{border-radius:8px;display:block;height:32px;width:32px}.title-stack{display:grid;line-height:1}.title-stack .brand{font-size:18px;font-weight:700;letter-spacing:.3px}.title-stack .sub{color:#7685a3;font-size:12px;margin-top:2px}.header-right{align-items:center;display:flex;gap:8px}.icon-btn{background:#0f1320;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;box-shadow:0 6px 18px #00000040;box-shadow:var(--shadow-soft);color:#eaeefb;color:var(--text);cursor:pointer;display:inline-grid;font-size:18px;height:38px;place-items:center;transition:transform .14s cubic-bezier(.2,.6,.2,1),box-shadow .14s cubic-bezier(.2,.6,.2,1),background .14s cubic-bezier(.2,.6,.2,1);transition:transform var(--trans-fast),box-shadow var(--trans-fast),background var(--trans-fast);width:38px}.icon-btn:hover{background:#12182a;box-shadow:0 10px 24px #00000073;transform:translateY(-2px)}.icon-btn-active{background:#69b3ff;background:var(--accent-2);border-color:#69b3ff;border-color:var(--accent-2);color:#0b0d12}.logout-icon-btn:hover{background:#ff6b6b26;border-color:#ff6b6b59;color:#ff6b6b;color:var(--danger)}.status-badge{border-radius:999px;font-size:12px;font-weight:600;margin-left:12px;padding:4px 10px;text-transform:uppercase}.status-badge.online{background:#66e3a4;color:#041e15}.status-badge.offline{background:#e65a5a;color:#fff}.session-status{color:#a7b0c3;color:var(--muted);font-size:12px;font-weight:600;padding:4px 10px}.section-2-attendance{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;height:calc(100vh - 200px)}.kpi-row{grid-gap:16px;grid-gap:var(--gap);display:grid;gap:16px;gap:var(--gap);grid-template-columns:repeat(4,1fr)}.kpi-card{align-items:center;display:flex;gap:10px;padding:10px 16px}.kpi-icon{border-radius:8px;display:grid;flex-shrink:0;height:34px;place-items:center;width:34px}.kpi-accent .kpi-icon{background:#66e3a426;color:#66e3a4;color:var(--accent)}.kpi-warning .kpi-icon{background:#f1c40f26;color:#f1c40f;color:var(--warning)}.kpi-info .kpi-icon{background:#69b3ff26;color:#69b3ff;color:var(--accent-2)}.kpi-success .kpi-icon{background:#66e3a426;color:#66e3a4;color:var(--accent)}.kpi-danger .kpi-icon{background:#ff6b6b26;color:#ff6b6b;color:var(--danger)}.kpi-data{display:flex;flex-direction:column}.kpi-value{font-size:22px;font-weight:700;line-height:1}.kpi-label{color:#a7b0c3;color:var(--muted);font-size:11px;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.dash-search-row{align-items:center;display:flex;gap:10px}.broadcast-aula-select{flex-shrink:0;min-width:160px}.aula-select-inline{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;cursor:pointer;flex-shrink:0;font-size:13px!important;max-width:none!important;min-width:150px;padding:6px 10px!important;width:auto!important}.aula-select-inline,.aula-select-inline option{background:#0e1320;color:#fff}.att-aula-label{color:#a7b0c3;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap}.dash-search{max-width:420px;padding:8px 14px;width:100%}.kanban-board{grid-gap:16px;grid-gap:var(--gap);align-items:start;display:grid;gap:16px;gap:var(--gap);grid-template-columns:1.2fr 1fr 1fr}.kanban-col{background:#10182880;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.kanban-col-header{align-items:center;border-bottom:2px solid #0000;display:flex;justify-content:space-between;padding:10px 14px}.kanban-col-header h3{font-size:14px;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.kanban-count{background:#ffffff14;border-radius:999px;font-size:12px;font-weight:700;padding:2px 8px}.kanban-warning{background:#f1c40f0f;border-bottom-color:#f1c40f;border-bottom-color:var(--warning)}.kanban-warning .kanban-count{color:#f1c40f;color:var(--warning)}.kanban-info{background:#69b3ff0f;border-bottom-color:#69b3ff;border-bottom-color:var(--accent-2)}.kanban-info .kanban-count{color:#69b3ff;color:var(--accent-2)}.kanban-success{background:#66e3a40f;border-bottom-color:#66e3a4;border-bottom-color:var(--accent)}.kanban-success .kanban-count{color:#66e3a4;color:var(--accent)}.kanban-danger{background:#ff6b6b0f;border-bottom-color:#ff6b6b;border-bottom-color:var(--danger)}.kanban-danger .kanban-count{color:#ff6b6b;color:var(--danger)}.kanban-col-body{display:flex;flex-direction:column;gap:8px;padding:8px}.kanban-col-body .pickup-card:nth-child(2n){background:hsla(0,0%,100%,.015)}.pickup-card{display:flex;flex-direction:column;gap:6px;padding:8px 10px}.pickup-card-top{align-items:center;display:flex;gap:10px}.pickup-avatar{background:linear-gradient(135deg,#69b3ff,#4a8fd4);background:linear-gradient(135deg,var(--accent-2),#4a8fd4);border-radius:10px;color:#fff;display:grid;flex-shrink:0;font-size:13px;font-weight:700;height:36px;place-items:center;width:36px}.pickup-info{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.pickup-name{font-size:14px;font-weight:600;margin:0}.pickup-classroom{background:#69b3ff1f;border-radius:4px;color:#69b3ff;color:var(--accent-2);font-size:11px;font-weight:600;padding:2px 6px}.pickup-meta{align-items:center;display:flex;justify-content:space-between}.pickup-tutor{color:#a7b0c3;color:var(--muted);font-size:12px}.pickup-time{color:#6a7a96;font-size:11px}.pickup-actions{border-top:1px solid #ffffff14;border-top:1px solid var(--border);display:flex;gap:6px;padding-top:6px}.pickup-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:5px 10px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast)}.pickup-btn-primary{background:#69b3ff;background:var(--accent-2);color:#0b0d12}.pickup-btn-primary:hover{background:#8cc9ff;transform:translateY(-1px)}.pickup-btn-ghost{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);color:#a7b0c3;color:var(--muted)}.pickup-btn-ghost:hover{border-color:#69b3ff;border-color:var(--accent-2);color:#69b3ff;color:var(--accent-2)}.activity-section{margin-top:4px}.activity-card{overflow:hidden;padding:0}.activity-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);color:#eaeefb;color:var(--text);display:flex;gap:8px;padding:12px 16px}.activity-header h3{font-size:14px;font-weight:600;margin:0}.activity-feed{max-height:260px;overflow-y:auto;scrollbar-color:#3a4562 #0000;scrollbar-width:thin}.activity-empty{color:#a7b0c3;color:var(--muted);font-size:13px;margin:0;padding:24px;text-align:center}.feed-item{align-items:center;border-bottom:1px solid #ffffff0a;display:flex;gap:10px;padding:10px 16px;transition:background .14s cubic-bezier(.2,.6,.2,1);transition:background var(--trans-fast)}.feed-item:hover{background:#ffffff05}.feed-avatar{background:#69b3ff1a;border-radius:8px;color:#69b3ff;color:var(--accent-2);display:grid;flex-shrink:0;height:28px;place-items:center;width:28px}.feed-content{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:6px;min-width:0}.feed-number{color:#eaeefb;color:var(--text);font-size:13px;font-weight:600}.feed-text{color:#a7b0c3;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-time{color:#6a7a96;flex-shrink:0;font-size:11px;white-space:nowrap}.att-session-bar{align-items:center;display:flex;justify-content:space-between;padding:10px 16px;position:-webkit-sticky;position:sticky;top:36px;z-index:9}.att-session-left{align-items:center;display:flex;gap:10px}.att-session-dot{background:#a7b0c3;background:var(--muted);border-radius:50%;height:8px;transition:all .3s;width:8px}.att-session-dot.active{animation:pulse 2s ease-in-out infinite;background:#66e3a4;background:var(--accent);box-shadow:0 0 8px #66e3a480}.att-session-label{color:#a7b0c3;color:var(--muted);font-size:13px;font-weight:600}.att-btn-close{background:#ff6b6b26;border:1px solid #ff6b6b4d;color:#ff6b6b;color:var(--danger)}.att-btn-close:hover{background:#ff6b6b40}.att-btn-absent{background:#ff6b6b1f;border:1px solid #ff6b6b40;color:#ff6b6b;color:var(--danger)}.att-btn-absent:hover{background:#ff6b6b38}.att-grid{grid-gap:16px;grid-gap:var(--gap);grid-template-columns:1fr 1fr}.att-grid,.deleg-grid{align-items:start;display:grid;gap:16px;gap:var(--gap)}.deleg-grid{grid-gap:16px;grid-gap:var(--gap);grid-template-columns:1fr 1fr 1fr}.deleg-details{border-top:1px solid #ffffff0f;color:#a7b0c3;color:var(--muted);display:flex;flex-direction:column;font-size:.8rem;gap:4px;padding:6px 0}.deleg-detail-row{align-items:center;display:flex;gap:6px}.deleg-label{color:#a7b0c3;color:var(--muted);font-weight:500}.att-avatar-present{background:linear-gradient(135deg,#2ecc71,#27ae60)}.att-avatar-tardy{background:linear-gradient(135deg,#f1c40f,#d4a800);background:linear-gradient(135deg,var(--warning),#d4a800)}.att-avatar-absent{background:linear-gradient(135deg,#ff6b6b,#c94040);background:linear-gradient(135deg,var(--danger),#c94040)}.att-progress{background:#ffffff14;border-radius:999px;flex:1 1;height:6px;min-width:60px;overflow:hidden}.att-progress-fill{background:#66e3a4;background:var(--accent);border-radius:999px;height:100%;transition:width .5s ease}.broadcast-progress{margin:8px 0}.att-excuse-group{display:flex;flex-direction:column;gap:6px}.att-excuse-select{background:#0e1320cc;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:6px;color:#eaeefb;color:var(--text);cursor:pointer;font-family:inherit;font-size:12px;padding:6px 10px;width:100%}.att-excuse-select:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.att-justify-input{background:#0e1320cc;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:6px;color:#eaeefb;color:var(--text);font-family:inherit;font-size:12px;padding:6px 10px;resize:none;width:100%}.att-justify-input:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.list-card-wrapper{height:100%}.list-card,.list-card-wrapper{display:flex;flex-direction:column;min-height:0}.list-card{background:#101828;border-radius:12px;box-shadow:0 0 10px #0003;overflow:hidden;padding:2px}.list-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:8px 12px}.list-header h2,.list-header h3{font-size:16px;margin:0}.list-header small{color:#a7b0c3;color:var(--muted)}.list-count{color:#69b3ff;color:var(--accent-2);font-size:14px;font-weight:700}.list{list-style:none;margin:0;padding:8px;width:100%}.scrollable{max-height:360px;overflow:auto;scrollbar-color:#3a4562 #0000;scrollbar-width:thin;width:100%}.list-content{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.list-item{align-items:center;background:#1a2236;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-sm);display:flex;justify-content:space-between;margin:8px;padding:10px 12px;transition:all .2s}.list-item.is-read{opacity:.6}.list-item:hover{box-shadow:0 0 5px #2e4a8f;transform:scale(1.01)}.li-left{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:auto 1fr}.read-indicator{background:#3bd480;border-radius:8px;box-shadow:0 0 0 2px #ff6b6b26;height:100%;margin:2px 0;width:6px}.read-indicator.read{background:#ff6b6b;background:var(--danger);box-shadow:0 0 0 2px #3bd48026}.li-texts{grid-gap:2px;display:grid;gap:2px}.li-title{font-size:15px;font-weight:600;letter-spacing:.2px;margin:0}.li-desc{color:#a7b0c3;color:var(--muted);font-size:13px;margin:0}.li-time{color:#8ea0bf;font-size:12px;letter-spacing:.3px}.li-action{align-items:center;display:flex;gap:8px}.li-justification{flex:1 1;min-width:120px}.action-btn{background:#63b3ff;border:none;border-radius:8px;color:#0b0d12;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px;transition:transform .14s cubic-bezier(.2,.6,.2,1),box-shadow .14s cubic-bezier(.2,.6,.2,1),background .14s cubic-bezier(.2,.6,.2,1);transition:transform var(--trans-fast),box-shadow var(--trans-fast),background var(--trans-fast)}.action-btn:hover{background:#8cc9ff;transform:translateY(-1px)}.action-btn:disabled{background:#444e63;color:#999;cursor:not-allowed;transform:none}.action-btn-msg-broadcast{background:#63b3ff;border:none;border-radius:8px;color:#0b0d12;cursor:pointer;font-weight:600;padding:6px 10px}.action-btn-msg-broadcast:hover{background:#8cc9ff}.action-btn-msg-broadcast:disabled{background:#444e63;color:#999;cursor:not-allowed}.action-btn-msg-broadcast-button-container{display:flex;justify-content:flex-end;padding:12px}.auth-btn{background:#69b3ff;background:var(--accent-2);border:1px solid #69b3ff;border:1px solid var(--accent-2);border-radius:8px;color:#0b0d12;cursor:pointer;font-size:14px;font-weight:600;min-width:120px;padding:8px 16px;position:relative;transition:background .14s cubic-bezier(.2,.6,.2,1),transform .14s cubic-bezier(.2,.6,.2,1);transition:background var(--trans-fast),transform var(--trans-fast)}.auth-btn:hover{background:#8bcaff}.auth-btn:disabled{cursor:not-allowed;opacity:.5}.logout-btn{background:#0000;border:1px solid #ff7a7a;color:#ff7a7a}.logout-btn:hover{background:#ff7a7a;color:#fff}.table-btn{background:none;border:none;color:#a7b0c3;color:var(--muted);cursor:pointer;font-size:16px;margin:0 4px;transition:color .14s cubic-bezier(.2,.6,.2,1);transition:color var(--trans-fast)}.table-btn.edit:hover{color:#63b3ff}.table-btn.delete:hover{color:#e65a5a}.auth-input,.text-input{background:#0e1320;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#eaeefb;color:var(--text);font-family:inherit;font-size:14px;max-width:280px;padding:8px 12px;transition:border-color .14s cubic-bezier(.2,.6,.2,1),box-shadow .14s cubic-bezier(.2,.6,.2,1);transition:border-color var(--trans-fast),box-shadow var(--trans-fast);width:100%}.auth-input:focus,.text-input:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.aula-select{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;font-size:13px;margin-left:12px;padding:6px 10px}.aula-select,.aula-select option{background:#0e1320;color:#fff}.textarea-wrapper{position:relative;width:100%}.message-textarea{background:#0e1320;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#eaeefb;color:var(--text);font-size:13px;padding:6px 10px;resize:vertical;width:100%}.message-textarea:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.char-counter{bottom:6px;font-size:11px;opacity:.6;pointer-events:none;position:absolute;right:10px}.char-counter,.login-panel{color:#eaeefb;color:var(--text)}.login-panel{background:radial-gradient(ellipse at center,#151b28,#0a0d14);inset:0;justify-content:center;position:fixed}.login-card,.login-panel{align-items:center;display:flex}.login-card{animation:loginFadeIn .5s ease-out;background:#121622;background:var(--surface);border-radius:16px;border-radius:var(--radius);box-shadow:0 8px 24px #00000059;box-shadow:var(--shadow);flex-direction:column;gap:12px;min-width:320px;padding:2rem 2.5rem;text-align:center}.login-card h2{color:#69b3ff;color:var(--accent-2);font-size:22px;margin:0}.login-hint{color:#a7b0c3;color:var(--muted);font-size:12px;margin-top:6px}.login-error{background:#ff6b6b1a;border:1px solid #ff6b6b33;border-radius:6px;color:#ff6b6b;color:var(--danger);font-size:13px;margin:0;padding:6px 12px}.cfg-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.cfg-search-wrap{flex:1 1;max-width:360px;min-width:200px;position:relative}.cfg-search-icon{color:#a7b0c3;color:var(--muted);left:10px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.cfg-search{background:#0e1320;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#eaeefb;color:var(--text);font-family:inherit;font-size:13px;padding:8px 12px 8px 32px;transition:border-color .14s cubic-bezier(.2,.6,.2,1);transition:border-color var(--trans-fast);width:100%}.cfg-search:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.cfg-filters{display:flex;flex-wrap:wrap;gap:6px}.cfg-filter-chip{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;color:#a7b0c3;color:var(--muted);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:5px 12px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast)}.cfg-filter-chip.active,.cfg-filter-chip:hover{border-color:#69b3ff;border-color:var(--accent-2);color:#69b3ff;color:var(--accent-2)}.cfg-filter-chip.active{background:#69b3ff26}.cfg-add-btn{align-items:center;background:#69b3ff;background:var(--accent-2);border:none;border-radius:10px;color:#0b0d12;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:8px 16px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast)}.cfg-add-btn:hover{background:#8cc9ff;transform:translateY(-1px)}.cfg-form{padding:16px 20px}.cfg-form-header{align-items:center;color:#69b3ff;color:var(--accent-2);display:flex;gap:8px;margin-bottom:14px}.cfg-form-header h3{color:#eaeefb;color:var(--text);font-size:15px;font-weight:600;margin:0}.cfg-form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.cfg-field{display:flex;flex-direction:column;gap:4px}.cfg-label{color:#a7b0c3;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.cfg-input{background:#0e1320cc;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#eaeefb;color:var(--text);font-family:inherit;font-size:13px;padding:8px 12px;transition:border-color .14s cubic-bezier(.2,.6,.2,1);transition:border-color var(--trans-fast)}.cfg-input:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.cfg-form-actions{border-top:1px solid #ffffff14;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:14px}.cfg-user-grid{grid-gap:16px;grid-gap:var(--gap);display:grid;gap:16px;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.cfg-user-card{display:flex;flex-direction:column;gap:10px;padding:14px}.cfg-user-top{align-items:center;display:flex;gap:10px}.cfg-user-info{flex:1 1;min-width:0}.cfg-user-name{font-size:14px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cfg-user-msisdn{color:#a7b0c3;color:var(--muted);font-size:12px}.cfg-user-bottom{align-items:center;border-top:1px solid #ffffff14;border-top:1px solid var(--border);display:flex;justify-content:space-between;padding-top:8px}.cfg-user-meta{align-items:center;display:flex;gap:10px}.cfg-status{font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.cfg-status.active{color:#66e3a4;color:var(--accent)}.cfg-status.inactive{color:#ff6b6b;color:var(--danger)}.cfg-user-date{color:#6a7a96;font-size:11px}.cfg-user-actions{display:flex;gap:4px}.cfg-action-btn{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#a7b0c3;color:var(--muted);cursor:pointer;display:inline-grid;height:32px;place-items:center;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast);width:32px}.cfg-action-btn.edit:hover{background:#69b3ff14;border-color:#69b3ff66;color:#69b3ff;color:var(--accent-2)}.cfg-action-btn.delete:hover{background:#ff6b6b14;border-color:#ff6b6b66;color:#ff6b6b;color:var(--danger)}.cfg-avatar-success{background:linear-gradient(135deg,#66e3a4,#27ae60);background:linear-gradient(135deg,var(--accent),#27ae60)}.cfg-avatar-info{background:linear-gradient(135deg,#69b3ff,#4a8fd4);background:linear-gradient(135deg,var(--accent-2),#4a8fd4)}.cfg-avatar-warning{background:linear-gradient(135deg,#f1c40f,#d4a800);background:linear-gradient(135deg,var(--warning),#d4a800)}.cfg-avatar-danger{background:linear-gradient(135deg,#ff6b6b,#c94040);background:linear-gradient(135deg,var(--danger),#c94040)}.cfg-empty{align-items:center;color:#a7b0c3;color:var(--muted);display:flex;flex-direction:column;gap:8px;grid-column:1/-1;justify-content:center;padding:40px 24px;text-align:center}.cfg-empty p{font-size:14px;margin:0}.cfg-roles-list{display:flex;flex-direction:column;gap:8px}.cfg-role-card{overflow:hidden;padding:0}.cfg-role-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:14px 16px;transition:background .15s}.cfg-role-header:hover{background:#171b28;background:var(--surface-2,#ffffff08)}.cfg-role-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.cfg-role-desc{font-size:13px;opacity:.7}.cfg-role-perms{border-top:1px solid #ffffff14;border-top:1px solid var(--border,#ffffff14);padding:0 16px 16px}.cfg-perm-module{margin-top:16px}.cfg-perm-module-title{font-size:11px;font-weight:600;letter-spacing:.7px;margin:0 0 10px;opacity:.5;text-transform:uppercase}.cfg-perm-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.cfg-perm-item{align-items:flex-start;border:1px solid #0000;border-radius:8px;cursor:pointer;display:flex;font-size:13px;gap:10px;padding:8px 10px;transition:background .15s}.cfg-perm-item input[type=checkbox]{flex-shrink:0;margin-top:2px}.cfg-perm-item:hover{background:#171b28;background:var(--surface-2,#ffffff0a)}.cfg-perm-item--checked{background:#63b3ed12;border-color:#63b3ed2e}.cfg-perm-text{display:flex;flex-direction:column;gap:2px;min-width:0}.cfg-perm-code{font-size:13px;font-weight:600;white-space:nowrap}.cfg-perm-desc{font-size:11.5px;line-height:1.4;opacity:.55}.cfg-teacher-tag{align-items:center;background:#171b28;background:var(--surface-2,#ffffff0f);border-radius:12px;display:inline-flex;font-size:12px;gap:4px;margin:2px 4px 2px 0;padding:2px 8px}.cfg-tag-remove{align-items:center;background:none;border:none;color:#ff6b6b;color:var(--danger,#e65a5a);cursor:pointer;display:flex;opacity:.6;padding:0;transition:opacity .15s}.cfg-tag-remove:hover{opacity:1}.panel-actions{gap:16px;margin-bottom:8px}.panel-actions,.select-all{align-items:center;display:flex}.select-all{cursor:pointer;font-size:14px;gap:6px}.badge,.select-all{color:#eaeefb;color:var(--text)}.badge{background:#1c2437;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:6px;font-size:12px;padding:4px 8px}.badge-info{background:#69b3ff26;border-color:#69b3ff40;color:#69b3ff;color:var(--accent-2)}.badge-success{background:#66e3a426;border-color:#66e3a440;color:#66e3a4;color:var(--accent)}.badge-warning{background:#f1c40f26;border-color:#f1c40f40;color:#f1c40f;color:var(--warning)}.badge-danger{background:#ff6b6b26;border-color:#ff6b6b40;color:#ff6b6b;color:var(--danger)}.actions-group{display:flex;gap:16px;justify-content:flex-end;margin-top:16px;width:100%}.attendance-indicator{border-radius:999px;box-shadow:0 0 0 2px #ff6b6b26;display:inline-block;height:100%;margin-right:8px;width:4px}.indicator-present{background-color:#2ecc71}.indicator-tardy{background-color:#f1c40f}.indicator-absent{background-color:#e74c3c}.indicator{background:#66e3a4;border-radius:50%;height:10px;margin-right:10px;width:10px}.toast{animation:toastSlideIn .3s ease-out;background:#111b2b;border-left:4px solid #66e3a4;border-left:4px solid var(--accent);border-radius:8px;bottom:20px;box-shadow:0 0 12px #0006;color:#e8edf5;cursor:pointer;max-width:400px;padding:12px 18px;position:fixed;right:20px;z-index:9999}.toast-success{border-left-color:#66e3a4;border-left-color:var(--accent)}.toast-error{border-left-color:#ff6b6b;border-left-color:var(--danger)}.toast-warning{border-left-color:#f1c40f;border-left-color:var(--warning)}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty{color:#a7b0c3;color:var(--muted);padding:14px}.empty-state{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:24px}.empty-state-icon{color:#a7b0c3;color:var(--muted);font-size:32px;opacity:.3}.empty-state-text{color:#a7b0c3;color:var(--muted);font-size:14px;margin:0}.loading-spinner{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:24px}.spinner{animation:spin .8s linear infinite;border:3px solid #ffffff14;border-top-color:#69b3ff;border:3px solid var(--border);border-radius:50%;border-top-color:var(--accent-2);height:32px;width:32px}.loading-sm .spinner{height:20px;width:20px}.loading-lg .spinner{height:48px;width:48px}.loading-text{color:#a7b0c3;color:var(--muted);font-size:13px;margin:0}@keyframes slideFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideFadeIn .4s ease-out}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stagger-in{animation:staggerFadeIn .35s ease-out both}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:.55}50%{opacity:.95}}.btn-loading{color:#0000!important;pointer-events:none;position:relative}.btn-loading:after{animation:spin .6s linear infinite;border:2px solid #0b0d124d;border-radius:50%;border-top-color:#0b0d12;content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}:focus-visible{outline:2px solid #69b3ff;outline:2px solid var(--accent-2);outline-offset:2px}.cfg-action-btn:focus-visible,.cfg-add-btn:focus-visible,.cfg-filter-chip:focus-visible,.icon-btn:focus-visible,.pickup-btn:focus-visible,button:focus-visible{outline:2px solid #69b3ff;outline:2px solid var(--accent-2);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:#69b3ff;border-color:var(--accent-2);box-shadow:0 0 0 3px #69b3ff26;outline:none}.status-btn{background:radial-gradient(120% 120% at 30% 20%,#9dffd0 0,#66e3a4 45%,#56c28a 100%);border:1px solid #66e3a44d;border-radius:999px;color:#052b1d;cursor:default;font-size:12px;font-weight:700;margin-left:10px;padding:6px 12px;position:relative}.status-btn.glow:after{animation:pulse 2.6s ease-in-out infinite;border-radius:999px;box-shadow:0 0 18px 6px #66e3a459,0 0 34px 10px #66e3a438;content:"";inset:-6px;pointer-events:none;position:absolute}.xd-footer{grid-gap:16px;grid-gap:var(--gap);color:#a7b0c3;color:var(--muted);display:grid;font-size:13px;gap:16px;gap:var(--gap);grid-template-columns:repeat(5,1fr);padding:14px}.app-layout{display:flex;height:100vh;overflow:hidden}.app-content{min-width:0;overflow:hidden}.app-content,.app-main{display:flex;flex:1 1;flex-direction:column}.app-main{gap:16px;gap:var(--gap);overflow-y:auto;padding:20px 24px;scrollbar-color:#3a4562 #0000;scrollbar-width:thin}.sidebar-overlay{display:none}.sidebar-toggle{background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:none;line-height:0;padding:4px}.sidebar-toggle:hover{background:var(--surface-hover);color:#eaeefb;color:var(--text)}.sidebar{background:#0d1017;border-right:1px solid #ffffff14;border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;width:240px;z-index:20}.sidebar-header{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);height:56px;min-height:56px;padding:0 16px}.sidebar-header,.sidebar-logo{align-items:center;display:flex}.sidebar-logo{color:#69b3ff;color:var(--accent-2);gap:10px}.sidebar-brand{color:#eaeefb;color:var(--text);font-size:20px;font-weight:700;letter-spacing:.5px}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-y:auto;padding:8px}.sidebar-nav-item{align-items:center;background:#0000;border:none;border-left:3px solid #0000;border-radius:10px;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:12px;padding:10px 14px;text-align:left;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast);width:100%}.sidebar-nav-item:hover{background:#ffffff0a;color:#eaeefb;color:var(--text)}.sidebar-nav-item.active{background:#69b3ff1a;border-left-color:#69b3ff;border-left-color:var(--accent-2);color:#69b3ff;color:var(--accent-2);font-weight:600}.sidebar-footer{border-top:1px solid #ffffff14;border-top:1px solid var(--border);padding:8px}.sidebar-logout{color:#a7b0c3;color:var(--muted)}.sidebar-logout:hover{background:#ff6b6b14;color:#ff6b6b;color:var(--danger)}.slim-header{background:#101828;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);height:56px;justify-content:space-between;min-height:56px;padding:0 20px;z-index:15}.slim-header,.slim-header-left{align-items:center;display:flex}.slim-header-left{gap:12px}.slim-header-right{align-items:center;display:flex;gap:8px;position:relative}.status-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.status-dot.online{background:#66e3a4;background:var(--accent);box-shadow:0 0 8px #66e3a480}.status-dot.offline{background:#ff6b6b;background:var(--danger);box-shadow:0 0 8px #ff6b6b66}.slim-header .aula-select{margin-left:0}.profile-btn{align-items:center;background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#eaeefb;color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:8px;padding:6px 12px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast)}.profile-btn:hover{background:#ffffff0a;border-color:#ffffff26}.profile-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown{animation:slideFadeIn .2s ease-out;background:#121622;background:var(--surface);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000059;box-shadow:var(--shadow);min-width:200px;position:absolute;right:0;top:calc(100% + 8px);z-index:50}.profile-dropdown-info{display:flex;flex-direction:column;gap:2px;padding:14px 16px 10px}.profile-dropdown-name{color:#eaeefb;color:var(--text);font-size:14px;font-weight:600}.profile-dropdown-role{color:#a7b0c3;color:var(--muted);font-size:12px;text-transform:capitalize}.profile-dropdown-divider{border:none;border-top:1px solid #ffffff14;border-top:1px solid var(--border);margin:0}.profile-dropdown-item{align-items:center;background:#0000;border:none;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:8px;padding:10px 16px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast);width:100%}.profile-dropdown-item:hover{background:#ff6b6b14;color:#ff6b6b;color:var(--danger)}.dashboard-page{display:flex;flex-direction:column;gap:16px;gap:var(--gap)}.dashboard-top{flex-wrap:wrap;gap:12px;justify-content:space-between}.dashboard-top,.page-title{align-items:center;display:flex}.page-title{color:#eaeefb;color:var(--text);font-size:22px;font-weight:700;gap:10px;margin:0}.date-range-selector{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.date-range-selector label{color:#a7b0c3;color:var(--muted);font-size:13px;font-weight:500}.date-input{background:#0e1320;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#eaeefb;color:var(--text);color-scheme:dark;cursor:pointer;font-family:inherit;font-size:13px;padding:6px 10px;transition:border-color .14s cubic-bezier(.2,.6,.2,1);transition:border-color var(--trans-fast)}.date-input:focus{border-color:#69b3ff;border-color:var(--accent-2);outline:none}.date-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:brightness(0) invert(1);opacity:.75}.date-input::-webkit-calendar-picker-indicator:hover{opacity:1}.dashboard-loading{align-items:center;color:#a7b0c3;color:var(--muted);display:flex;font-size:15px;justify-content:center;padding:3rem}.charts-grid{grid-gap:16px;grid-gap:var(--gap);display:grid;gap:16px;gap:var(--gap);grid-template-columns:repeat(2,1fr)}.chart-card{padding:20px}.chart-title{color:#eaeefb;color:var(--text);font-size:15px;font-weight:600;margin:0 0 16px}.recharts-default-tooltip{background:#1e293b!important;border:1px solid #334155!important;border-radius:8px!important}.recharts-tooltip-label{color:#eaeefb!important;color:var(--text)!important}.recharts-legend-item-text{color:#a7b0c3!important;color:var(--muted)!important;font-size:12px!important}.date-filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.date-filter-row label{color:#a7b0c3;color:var(--muted);font-size:13px;font-weight:500}.att-sticky-controls{align-items:center;background:#0b0d12;background:var(--bg);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:16px;margin:-20px -24px 0;padding:16px 24px;position:-webkit-sticky;position:sticky;top:-20px;z-index:10}.view-mode-toggle{background:#0e1320cc;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;display:inline-flex;overflow:hidden}.toggle-btn{background:#0000;border:none;color:#a7b0c3;color:var(--muted);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:7px 18px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast)}.toggle-btn:hover{background:#ffffff0a;color:#eaeefb;color:var(--text)}.toggle-btn.active{background:#69b3ff;background:var(--accent-2);color:#0b0d12}.reportes-page{gap:16px;gap:var(--gap)}.report-config,.reportes-page{display:flex;flex-direction:column}.report-config{gap:16px;padding:20px}.report-type-grid{display:flex;flex-wrap:wrap;gap:8px}.report-type-btn{align-items:center;background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;transition:all .14s cubic-bezier(.2,.6,.2,1);transition:all var(--trans-fast)}.report-type-btn.active,.report-type-btn:hover{border-color:#69b3ff;border-color:var(--accent-2);color:#69b3ff;color:var(--accent-2)}.report-type-btn.active{background:#69b3ff26}.report-filters{display:flex;flex-wrap:wrap;gap:16px}.filter-group{align-items:center;display:flex;gap:6px}.filter-group label{color:#a7b0c3;color:var(--muted);font-size:13px;font-weight:500}.report-actions{display:flex;flex-wrap:wrap;gap:8px}.report-results{overflow:hidden;padding:0}.report-results-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 18px}.report-results-meta{align-items:center;display:flex;gap:8px}.report-count-badge{align-items:center;background:#69b3ff26;border-radius:20px;color:#69b3ff;color:var(--accent-2);display:inline-flex;font-size:13px;font-weight:700;justify-content:center;min-width:32px;padding:2px 8px}.report-count-label{color:#eaeefb;color:var(--text);font-size:14px;font-weight:600}.report-overflow-hint{color:#a7b0c3;color:var(--muted);font-size:12px}.report-col-toggle{align-items:center;background:#ffffff0a;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:7px 12px;transition:.2s cubic-bezier(.2,.6,.2,1);transition:var(--trans);white-space:nowrap}.report-col-toggle.active,.report-col-toggle:hover{background:#69b3ff1a;border-color:#69b3ff4d;color:#69b3ff;color:var(--accent-2)}.col-filter-panel{background:#0e132066;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:10px;padding:12px 18px}.col-filter-actions{display:flex;gap:8px}.col-filter-action-btn{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:6px;color:#a7b0c3;color:var(--muted);cursor:pointer;font-size:12px;padding:4px 10px;transition:.2s cubic-bezier(.2,.6,.2,1);transition:var(--trans)}.col-filter-action-btn:hover{border-color:#69b3ff;border-color:var(--accent-2);color:#69b3ff;color:var(--accent-2)}.col-filter-chips{display:flex;flex-wrap:wrap;gap:6px}.col-chip{align-items:center;background:#66e3a41f;border:1px solid #66e3a440;border-radius:20px;color:#66e3a4;color:var(--accent);cursor:pointer;display:inline-flex;font-size:12px;gap:4px;padding:4px 10px;transition:.2s cubic-bezier(.2,.6,.2,1);transition:var(--trans)}.col-chip:not(.active){background:#ffffff0a;border-color:#ffffff14;border-color:var(--border);color:#a7b0c3;color:var(--muted);opacity:.65}.col-chip:hover{opacity:1}.report-row-alt td{background:hsla(0,0%,100%,.015)}.report-empty-msg{color:#a7b0c3;color:var(--muted);font-size:14px;margin:0;padding:32px 24px;text-align:center}.report-table-wrap{overflow-x:auto;scrollbar-color:#3a4562 #0000;scrollbar-width:thin}.report-table{border-collapse:collapse;font-size:13px;width:100%}.report-table th{background:#0e132099;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);color:#a7b0c3;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.5px;padding:10px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.report-table td{border-bottom:1px solid #ffffff0a;color:#eaeefb;color:var(--text);max-width:300px;overflow:hidden;padding:8px 14px;text-overflow:ellipsis;white-space:nowrap}.report-table tr:hover td{background:#ffffff05}.report-overflow{border-top:1px solid #ffffff14;border-top:1px solid var(--border);font-size:13px;margin:0;padding:12px 18px;text-align:center}.empty-report,.report-overflow{color:#a7b0c3;color:var(--muted)}.empty-report{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;opacity:.5;padding:48px 24px}.empty-report p{font-size:15px;margin:0}.user-table{border-collapse:collapse;font-size:13px;width:100%}.user-table th{background:#0e132099;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);color:#a7b0c3;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.5px;padding:10px 14px;text-align:left;text-transform:uppercase}.user-table td{border-bottom:1px solid #ffffff0a;color:#eaeefb;color:var(--text);padding:8px 14px}.user-table tr:hover td{background:#ffffff05}.user-table input[type=checkbox]{accent-color:#69b3ff;accent-color:var(--accent-2);cursor:pointer;height:16px;width:16px}.helper-text{color:#a7b0c3;color:var(--muted);font-size:13px;margin:0 0 12px}.pickup-msisdn{color:#6a7a96;font-size:11px}@media (max-width:1200px){.kpi-row{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}}@media (max-width:1024px){.sidebar{overflow:hidden;width:64px}.sidebar-brand,.sidebar-logout span,.sidebar-nav-item span{display:none}.sidebar-nav-item{border-left-width:0;justify-content:center;padding:10px}.sidebar-nav-item.active{border-bottom:2px solid #69b3ff;border-bottom:2px solid var(--accent-2);border-left-width:0}.sidebar-logo{justify-content:center}.app-main{padding:16px}}@media (max-width:900px){.kanban-board{grid-template-columns:1fr}.att-session-bar{position:static}.att-grid,.deleg-grid,.section-2-attendance{grid-template-columns:1fr}.section-2-attendance{height:auto}.xd-footer{grid-template-columns:1fr 1fr}.cfg-toolbar{align-items:stretch;flex-direction:column}.cfg-search-wrap{max-width:100%}.cfg-add-btn{margin-left:0}.cfg-user-grid{grid-template-columns:1fr}.dashboard-top{align-items:flex-start;flex-direction:column}}@media (max-width:768px){.sidebar-toggle{display:flex}.sidebar-overlay{background:#00000080;display:block;inset:0;position:fixed;z-index:99}.sidebar{bottom:0;left:-240px;position:fixed;top:0;transition:left .3s ease;width:240px;z-index:100}.sidebar.open{left:0}.sidebar-brand,.sidebar-logout span,.sidebar-nav-item span{display:inline}.sidebar-nav-item{border-left-width:3px;justify-content:flex-start;padding:10px 14px}.sidebar-nav-item.active{border-bottom:none;border-left-width:3px}.sidebar-logo{justify-content:flex-start}.slim-header{padding:0 12px}.profile-name{display:none}.app-main{padding:12px}}@media (max-width:560px){.kpi-row{grid-template-columns:1fr 1fr}.kpi-card{padding:12px 14px}.kpi-value{font-size:22px}.dash-search{max-width:100%}.xd-footer{grid-template-columns:1fr}.login-card{min-width:auto;padding:1.5rem;width:90vw}.auth-input,.text-input{width:100%}.date-range-selector{align-items:flex-start}.date-range-selector,.report-filters,.report-type-grid{flex-direction:column}}.modal-overlay{animation:fadeIn .15s ease;background:#000000a6;padding:1rem}.sig-modal{background:var(--bg-card);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #0006;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;width:min(540px,95vw)}.sig-modal-header{align-items:center;color:var(--text-primary);display:flex;gap:.5rem}.sig-modal-header h3{flex:1 1;font-size:1rem;font-weight:600;margin:0}.sig-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;padding:4px;transition:color .15s,background .15s}.sig-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.sig-modal-info{background:var(--bg-surface);border-radius:8px;display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem}.sig-info-row{display:flex;font-size:.85rem;gap:.5rem}.sig-info-label{color:var(--text-muted);min-width:70px}.sig-info-value{color:var(--text-primary);font-weight:500}.sig-modal-hint{color:var(--text-muted);font-size:.8rem;margin:0}.sig-canvas-wrapper{background:#fff;border:2px dashed #ffffff14;border:2px dashed var(--border);border-radius:10px;cursor:crosshair;min-height:180px;overflow:hidden;position:relative}.sig-canvas{display:block;height:180px!important;touch-action:none;width:100%!important}.sig-canvas-placeholder{align-items:center;color:#bbb;display:flex;font-size:.9rem;inset:0;justify-content:center;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none}.sig-modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.dash-section-header{align-items:center;color:#a7b0c3;color:var(--muted);display:flex;font-size:13px;font-weight:600;gap:8px;letter-spacing:.6px;margin-top:4px;padding:4px 2px;text-transform:uppercase}.kpi-row-5{grid-template-columns:repeat(5,1fr)}@media (max-width:1200px){.kpi-row-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:560px){.kpi-row-5{grid-template-columns:repeat(2,1fr)}}.md-container{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:340px 1fr;min-height:520px}@media (max-width:860px){.md-container{grid-template-columns:1fr}}.md-list-panel{background:#121622;background:var(--surface);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-sm);overflow:hidden}.md-controls,.md-list-panel{display:flex;flex-direction:column}.md-controls{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);gap:8px;padding:12px}.md-filters-row{display:flex;gap:6px}.md-filter-select{flex:1 1;font-size:12px!important;padding:6px 8px!important}.md-list-body{flex:1 1;overflow-y:auto;padding:8px 4px}.md-list-item{align-items:center;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:10px 12px;transition:background .14s cubic-bezier(.2,.6,.2,1);transition:background var(--trans-fast)}.md-list-item:hover{background:#ffffff0d}.md-list-item--active{background:#66e3a414;border:1px solid #66e3a433}.md-item-avatar{align-items:center;background:linear-gradient(135deg,#6366f1,#06b6d4);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:38px;justify-content:center;width:38px}.md-item-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.md-item-name{font-size:13.5px;font-weight:600;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-item-name,.md-item-sub{align-items:center;display:flex}.md-item-sub{font-size:11.5px;gap:4px}.md-item-arrow,.md-item-sub{color:#a7b0c3;color:var(--muted)}.md-item-arrow{flex-shrink:0}.md-dot-activo:before,.md-dot-inactivo:before,.md-dot-suspendido:before{border-radius:50%;content:"";display:inline-block;height:7px;margin-right:3px;width:7px}.md-dot-activo:before{background:#10b981}.md-dot-inactivo:before{background:#a7b0c3;background:var(--muted)}.md-dot-suspendido:before{background:#ff6b6b;background:var(--danger)}.md-right-panel{background:#121622;background:var(--surface);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-sm);overflow-y:auto}.md-empty-panel{align-items:center;color:#a7b0c3;color:var(--muted);font-size:14px;gap:12px;height:100%;justify-content:center}.md-detail-panel,.md-empty-panel{display:flex;flex-direction:column}.md-detail-panel{gap:0;padding:20px}.detail-loading{align-items:center;display:flex;justify-content:center;padding:40px}.md-detail-header{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);gap:14px;margin-bottom:4px;padding-bottom:16px}.md-avatar,.md-detail-header{align-items:center;display:flex}.md-avatar{background:linear-gradient(135deg,#6366f1,#06b6d4);border-radius:50%;color:#fff;flex-shrink:0;font-size:18px;font-weight:700;height:52px;justify-content:center;width:52px}.md-detail-title{flex:1 1;min-width:0}.md-detail-title h2{font-size:17px;font-weight:700;margin:0 0 4px}.md-detail-subtitle{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.md-tag{background:#ffffff14;border-radius:6px;color:#a7b0c3;color:var(--muted);font-size:11.5px;padding:2px 8px}.md-status-badge{border-radius:20px;font-size:11.5px;font-weight:600;padding:2px 10px}.md-status-activo{background:#10b98126;color:#10b981}.md-status-inactivo{background:#a7b0c31f;color:#a7b0c3;color:var(--muted)}.md-status-suspendido{background:#ff6b6b26;color:#ff6b6b;color:var(--danger)}.md-status-promovido{background:#69b3ff26;color:#69b3ff;color:var(--accent-2)}.md-status-reprobado{background:#ff6b6b26;color:#ff6b6b;color:var(--danger)}.md-edit-btn{flex-shrink:0;margin-left:auto}.md-section{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);padding:14px 0}.md-section:last-child{border-bottom:none}.md-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.md-section-title{color:#a7b0c3;color:var(--muted);display:block;font-size:11px;font-weight:700;letter-spacing:.7px;margin-bottom:8px;text-transform:uppercase}.md-info-row{align-items:center;color:#eaeefb;color:var(--text);display:flex;font-size:13.5px;gap:8px;margin-bottom:6px}.md-info-label{color:#a7b0c3;color:var(--muted);font-size:12px;min-width:60px}.md-stat-value{color:#66e3a4;color:var(--accent);font-size:22px;font-weight:700}.md-empty-text{color:#a7b0c3;color:var(--muted);font-size:12.5px}.md-student-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.md-student-item{align-items:center;background:#ffffff0a;border-radius:8px;display:flex;justify-content:space-between;padding:8px 10px}.md-student-name{font-size:13px;font-weight:600}.md-student-code{color:#a7b0c3;color:var(--muted);font-size:11.5px}.md-remove-btn{align-items:center;background:none;border:none;border-radius:6px;color:#ff6b6b;color:var(--danger);cursor:pointer;display:flex;padding:4px;transition:background .14s cubic-bezier(.2,.6,.2,1);transition:background var(--trans-fast)}.md-remove-btn:hover{background:#ff6b6b1f}.md-remove-btn:disabled{cursor:not-allowed;opacity:.4}.md-deleg-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.md-deleg-item{align-items:flex-start;background:#ffffff0a;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:10px}.md-deleg-info{display:flex;flex-direction:column;gap:2px}.md-deleg-student{font-size:13px;font-weight:600}.md-deleg-dates{color:#a7b0c3;color:var(--muted);font-size:11.5px}.md-deleg-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.md-date-input{min-width:0}.md-date-input,.md-status-select{font-size:11.5px!important;padding:4px 6px!important}.search-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:#a7b0c3;color:var(--muted);left:10px;pointer-events:none;position:absolute}.search-input-padded{padding-left:34px!important}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal-card{background:#171b28;background:var(--surface-2);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);box-shadow:0 8px 24px #00000059;box-shadow:var(--shadow);max-height:90vh;overflow-y:auto;width:min(460px,94vw)}.modal-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px}.modal-header h3{font-size:15px;font-weight:700;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;padding:4px}.modal-close-btn:hover{color:#eaeefb;color:var(--text)}.modal-body{display:flex;flex-direction:column;gap:14px;padding:20px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}.form-label{color:#a7b0c3;color:var(--muted);font-size:12.5px;font-weight:600;gap:5px}.form-label,.md-search-results{display:flex;flex-direction:column}.md-search-results{gap:4px;max-height:260px;min-height:80px;overflow-y:auto}.md-search-item{align-items:center;background:#ffffff0a;border-radius:8px;display:flex;justify-content:space-between;padding:8px 10px}.md-search-name{font-size:13px;font-weight:600}.md-search-sub{font-size:11.5px}.md-search-empty,.md-search-sub{color:#a7b0c3;color:var(--muted)}.md-search-empty{font-size:12.5px;padding:16px;text-align:center}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:600;gap:5px;transition:background .14s cubic-bezier(.2,.6,.2,1),opacity .14s cubic-bezier(.2,.6,.2,1);transition:background var(--trans-fast),opacity var(--trans-fast)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#66e3a4;background:var(--accent);color:#0b1a12;font-size:13px;padding:8px 16px}.btn-primary:hover:not(:disabled){background:#52d694}.btn-secondary{background:#ffffff14;color:#eaeefb;color:var(--text);font-size:13px;padding:8px 14px}.btn-secondary:hover:not(:disabled){background:#ffffff21}.btn-ghost{background:none;color:#66e3a4;color:var(--accent);font-size:12.5px;padding:6px 10px}.btn-ghost:hover:not(:disabled){background:#66e3a414}.btn-sm{font-size:12px!important;padding:5px 10px!important}.absence-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:700;gap:3px;padding:2px 7px}.absence-badge--warn{background:#f1c40f2e;color:#f1c40f}.absence-badge--high{background:#ff6b6b2e;color:#ff6b6b;color:var(--danger)}.attend-stats-row{display:flex;flex-wrap:wrap;gap:10px}.attend-stat{align-items:center;background:#ffffff0a;border-radius:10px;display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:60px;padding:8px 12px}.attend-stat svg{opacity:.7}.attend-stat-value{font-size:18px;font-weight:700}.attend-stat-label{color:#a7b0c3;color:var(--muted);font-size:10.5px}.attend-stat--present svg{color:#10b981}.attend-stat--late svg{color:#f59e0b}.attend-stat--excused svg{color:#69b3ff;color:var(--accent-2)}.attend-stat--absent svg{color:#ff6b6b;color:var(--danger)}.attend-stat--present .attend-stat-value{color:#10b981}.attend-stat--absent .attend-stat-value{color:#ff6b6b;color:var(--danger)}.attend-pct{border-radius:20px;display:inline-block;font-size:13px;font-weight:700;margin-top:10px;padding:4px 14px}.attend-pct--green{background:#10b98126;color:#10b981}.attend-pct--yellow{background:#f1c40f1f;color:#f1c40f}.attend-pct--red{background:#ff6b6b1f;color:#ff6b6b;color:var(--danger)}.attend-pct--neutral{background:#ffffff0f;color:#a7b0c3;color:var(--muted)}.md-pct-chip{border-radius:8px;font-size:11px;font-weight:700;margin-left:4px;padding:1px 6px}.md-pct-chip--green{background:#10b98126;color:#10b981}.md-pct-chip--yellow{background:#f1c40f1f;color:#f1c40f}.md-pct-chip--red{background:#ff6b6b1f;color:#ff6b6b;color:var(--danger)}.md-pct-chip--neutral{background:#ffffff0f;color:#a7b0c3;color:var(--muted)}.dash-threshold-ctrl{align-items:center;color:#a7b0c3;color:var(--muted);display:flex;font-size:12px;gap:6px;margin-left:auto}.dash-threshold-ctrl select{font-size:12px;padding:3px 6px}.high-absence-empty{align-items:center;background:#10b98112;border-radius:12px;border-radius:var(--radius-sm);color:#10b981;display:flex;font-size:13.5px;gap:10px;padding:14px 18px}.high-absence-card{border-radius:12px!important;border-radius:var(--radius-sm)!important;overflow:hidden;padding:0!important}.high-absence-table{border-collapse:collapse;font-size:13px;width:100%}.high-absence-table th{background:#ffffff0d;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);color:#a7b0c3;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.5px;padding:10px 14px;text-align:left;text-transform:uppercase}.high-absence-table td{border-bottom:1px solid #ffffff0a;padding:10px 14px}.high-absence-table tbody tr:last-child td{border-bottom:none}.ha-row-warn{background:#f1c40f08}.ha-row-high{background:#ff6b6b0d}.ha-student-name{font-weight:600}.ha-classroom{font-size:12.5px}.ha-classroom,.ha-grade{color:#a7b0c3;color:var(--muted)}.ha-injust{white-space:nowrap}.kpi-green{color:#10b981}.kpi-blue{color:#69b3ff;color:var(--accent-2)}.kpi-red{color:#ff6b6b;color:var(--danger)}.broadcast-message-bar{background:var(--card-bg);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:14px 16px 12px}.broadcast-message-bar-form{display:flex;flex-direction:column;gap:10px}.broadcast-message-bar .message-textarea{min-height:90px;resize:vertical}.broadcast-message-bar-footer{align-items:center;display:flex;gap:12px;justify-content:space-between}.broadcast-message-bar-footer .helper-text{color:var(--text-muted);font-size:.8rem;margin:0}.modal-box{background:#171b28;background:var(--surface-2);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);box-shadow:0 8px 24px #00000059;box-shadow:var(--shadow);max-height:90vh;overflow-y:auto}.modal-title{font-size:15px;font-weight:700;margin:0}.modal-subtitle{color:#a7b0c3;color:var(--muted);font-size:12px;margin:2px 0 0}.modal-footer{border-top:1px solid #ffffff14;border-top:1px solid var(--border);display:flex;justify-content:flex-end;padding:12px 20px}.face-enroll-tabs{border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);display:flex}.face-enroll-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;flex:1 1;font-size:13px;gap:6px;justify-content:center;padding:10px;transition:color .15s,border-color .15s}.face-enroll-tab.active{border-bottom-color:#66e3a4;border-bottom-color:var(--accent);color:#66e3a4;color:var(--accent)}.face-enroll-body{display:flex;flex-direction:column;gap:12px;padding:16px 20px}.face-enroll-loading{color:#a7b0c3;color:var(--muted)}.face-enroll-alert,.face-enroll-loading{align-items:center;display:flex;font-size:13px;gap:8px}.face-enroll-alert{border-radius:8px;padding:10px 12px}.face-enroll-alert--error{background:#ef44441a;color:#ef4444}.face-enroll-camera-area{align-items:center;display:flex;flex-direction:column;gap:10px}.face-enroll-video{background:#000;border-radius:10px}.face-enroll-capture-btn,.face-enroll-video{max-width:380px;width:100%}.face-enroll-upload-area{align-items:center;border:2px dashed #ffffff14;border:2px dashed var(--border);border-radius:10px;color:#a7b0c3;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;font-size:14px;gap:8px;justify-content:center;padding:32px 20px;text-align:center;transition:border-color .15s,color .15s}.face-enroll-upload-area:hover{border-color:#66e3a4;border-color:var(--accent);color:#eaeefb;color:var(--text)}.face-enroll-upload-hint{color:#a7b0c3;color:var(--muted);font-size:11px}.face-enroll-status{align-items:center;border-radius:8px;display:flex;font-size:13px;gap:8px;padding:10px 12px}.face-enroll-status--detecting,.face-enroll-status--saving{background:#6366f11a;color:#66e3a4;color:var(--accent)}.face-enroll-status--ok{background:#22c55e1f;color:#22c55e}.face-enroll-status--error{background:#ef44441a;color:#ef4444}.face-recognition-panel{border-left:3px solid #66e3a4;border-left:3px solid var(--accent);display:flex;flex-direction:column;gap:12px;padding:14px 16px}.face-recognition-header{align-items:center;color:#66e3a4;color:var(--accent);display:flex;font-size:13px;font-weight:600;gap:8px}.face-rec-error{color:#ef4444;font-size:12px;font-weight:400}.face-recognition-body{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px}.face-rec-video-wrap{flex-shrink:0;position:relative}.face-rec-video{background:#000;border-radius:8px;display:block;width:240px}.face-rec-scan-overlay{animation:scan-pulse 1.5s ease-in-out infinite;border:2px solid #66e3a4;border:2px solid var(--accent);border-radius:8px;inset:0;pointer-events:none;position:absolute}@keyframes scan-pulse{0%,to{opacity:.3}50%{opacity:1}}.face-rec-controls{display:flex;flex:1 1;flex-direction:column;gap:10px;min-width:180px}.face-rec-loading{color:#a7b0c3;color:var(--muted)}.face-rec-loading,.face-rec-result{align-items:center;display:flex;font-size:13px;gap:8px}.face-rec-result{border-radius:8px;padding:10px 12px}.face-rec-result--marked{background:#22c55e1f;color:#22c55e}.face-rec-result--confirm{background:#eab3081f;color:#ca8a04}.face-rec-result--low,.face-rec-result--no_face,.face-rec-result--no_match{background:#64748b1a;color:#a7b0c3;color:var(--muted)}.face-rec-confirm-btns{display:flex;gap:8px}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.access-control-page{display:flex;flex-direction:column;gap:1.25rem;margin:0 auto;max-width:1200px;padding:1.5rem}.access-header{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}.access-title{color:#eaeefb;color:var(--text-primary,#eaeefb);font-size:1.3rem;font-weight:700}.access-mode-toggle{background:#1e293b;background:var(--bg-card,#1e293b);border:1px solid #ffffff14;border:1px solid var(--border,#334155);border-radius:8px;display:flex;gap:4px;padding:4px}.access-mode-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#94a3b8;color:var(--text-muted,#94a3b8);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:7px 16px;transition:background .15s,color .15s}.access-mode-btn.active{background:#66e3a4;background:var(--accent,#6366f1);color:#fff}.access-body{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:1fr 320px}@media (max-width:768px){.access-body{grid-template-columns:1fr}}.access-camera-panel{background:#1e293b;background:var(--bg-card,#1e293b);border:1px solid #ffffff14;border:1px solid var(--border,#334155);border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1.25rem}.access-video-wrap{background:#000;border-radius:10px;overflow:hidden;position:relative}.access-video{border-radius:10px;display:block;max-height:360px;object-fit:cover;width:100%}.access-scan-overlay{animation:scan-pulse 1.5s ease-in-out infinite;border:2px solid #66e3a4;border:2px solid var(--accent,#6366f1);border-radius:10px;inset:0;pointer-events:none;position:absolute}.access-controls{align-items:center;display:flex;gap:.5rem}.access-mode-hint{color:#64748b;color:var(--text-muted,#64748b);font-size:12px;text-align:center}.access-card{align-items:center;border:1px solid #0000;border-radius:10px;display:flex;font-size:14px;gap:1rem;padding:1rem 1.25rem}.access-card strong{font-size:15px;font-weight:600}.access-card p{color:inherit;font-size:13px;margin:.15rem 0 0;opacity:.8}.access-card__time{font-size:12px;margin-top:.2rem!important;opacity:.6}.access-card__list{font-size:13px;list-style:none;margin:.4rem 0 0;padding-left:0}.access-card__list--pending{opacity:.7}.access-card__sub{font-size:12px;margin-top:.3rem!important;opacity:.65}.access-card--idle{background:#64748b1a;border-color:#64748b33;color:#94a3b8}.access-card--success{background:#10b9811f;border-color:#10b9814d;color:#6ee7b7}.access-card--warning{background:#f59e0b1f;border-color:#f59e0b4d;color:#fcd34d}.access-card--danger{background:#ef44441f;border-color:#ef44444d;color:#fca5a5}.access-card--blue{background:#6366f11f;border-color:#6366f14d;color:#a5b4fc}.access-card--info{background:#06b6d41f;border-color:#06b6d44d;color:#67e8f9}.access-history-panel{background:#1e293b;background:var(--bg-card,#1e293b);border:1px solid #ffffff14;border:1px solid var(--border,#334155);border-radius:12px;display:flex;flex-direction:column;gap:.5rem;max-height:520px;overflow:hidden;padding:1rem}.access-history-header{align-items:center;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border,#334155);color:#94a3b8;color:var(--text-muted,#94a3b8);display:flex;font-size:13px;font-weight:600;justify-content:space-between;padding-bottom:.5rem}.access-history-list{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-y:auto}.access-history-item{align-items:center;border-bottom:1px solid #33415580;border-radius:6px;display:flex;font-size:12px;gap:.5rem;padding:6px 4px}.access-history-name{color:#e2e8f0;flex:1 1}.access-history-sim{color:#64748b}.access-history-time{color:#64748b;font-size:11px}.access-history-empty{color:#64748b;font-size:12px;padding:1rem 0;text-align:center}.cfg-system-tab{display:flex;flex-direction:column;gap:.5rem;max-width:600px;padding:1.5rem}.cfg-section-title{color:#66e3a4;color:var(--accent,#6366f1);font-size:14px;font-weight:700;letter-spacing:.05em;margin:.25rem 0;text-transform:uppercase}.cfg-system-group{background:#1e293b;background:var(--bg-card,#1e293b);border:1px solid #ffffff14;border:1px solid var(--border,#334155);border-radius:10px;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem;padding:1rem 1.25rem}.cfg-system-label{align-items:center;color:#e2e8f0;display:flex;font-size:14px;font-weight:600;justify-content:space-between}.cfg-system-value{color:#66e3a4;color:var(--accent,#6366f1);font-size:15px;font-weight:700}.cfg-system-slider{accent-color:#69b3ff;accent-color:var(--accent-2,#69b3ff);cursor:pointer;width:100%}.cfg-system-hint{color:#64748b;font-size:12px;margin:0}.cfg-system-toggle-label{gap:1rem}.cfg-toggle-btn{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border,#334155);border-radius:20px;color:#64748b;cursor:pointer;font-size:13px;padding:5px 14px;transition:all .15s}.cfg-toggle-btn.active{background:#69b3ff;background:var(--accent-2,#69b3ff);border-color:#69b3ff;border-color:var(--accent-2,#69b3ff);color:#0b0d12}.feature-switch{display:inline-block;flex-shrink:0;height:24px;position:relative;width:44px}.feature-switch input{height:0;opacity:0;position:absolute;width:0}.feature-switch-track{background:#ffffff14;background:var(--border,#334155);border-radius:12px;cursor:pointer;inset:0;position:absolute;transition:background .2s}.feature-switch input:checked+.feature-switch-track{background:#69b3ff;background:var(--accent-2,#69b3ff)}.feature-switch input:disabled+.feature-switch-track{cursor:not-allowed;opacity:.5}.feature-switch-track:after{background:#fff;border-radius:50%;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform .2s;width:18px}.feature-switch input:checked+.feature-switch-track:after{transform:translateX(20px)}.cfg-system-roles{display:flex;flex-wrap:wrap;gap:.5rem}.cfg-role-chip{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border,#334155);border-radius:20px;color:#94a3b8;cursor:pointer;font-size:12px;padding:5px 14px;transition:all .15s}.cfg-role-chip.active{background:#69b3ff26;border-color:#69b3ff;border-color:var(--accent-2,#69b3ff);color:#69b3ff;color:var(--accent-2,#69b3ff)}.cfg-loading{display:flex;justify-content:center;padding:3rem 0}.cfg-time-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.cfg-holiday-add{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.cfg-holiday-list{display:flex;flex-direction:column;gap:6px}.cfg-holiday-item{align-items:center;background:#ffffff0a;border-radius:6px;color:#cbd5e1;display:flex;font-size:.82rem;gap:8px;padding:5px 10px}.cfg-holiday-name{color:#94a3b8;flex:1 1}.text-blue{color:#6366f1}.text-orange{color:#f59e0b}.text-red{color:#ef4444}.face-status-badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.7rem;font-weight:600;padding:2px 8px;white-space:nowrap}.face-status-badge--ok{background:#10b98126;border:1px solid #10b9814d;color:#10b981}.face-status-badge--none{background:#6b72801a;border:1px solid #6b728033;color:#6b7280}
/*# sourceMappingURL=main.3b94f824.css.map*/