/* ========== RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px;scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;min-height:100vh;transition:background .3s,color .3s}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit;font-size:inherit}
table{border-collapse:collapse;width:100%}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}

/* ========== CSS VARIABLES ========== */
[data-theme="dark"]{
  --bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#1a1f35;--bg-card-hover:#222842;
  --bg-input:#0d1220;--border:#1e293b;--border-light:#2d3748;
  --text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;
  --accent:#e53e3e;--accent-hover:#c53030;
  --green:#10b981;--green-bg:rgba(16,185,129,.12);
  --yellow:#f59e0b;--yellow-bg:rgba(245,158,11,.12);
  --red:#ef4444;--red-bg:rgba(239,68,68,.12);
  --gray:#6b7280;--gray-bg:rgba(107,114,128,.12);
  --blue:#3b82f6;--blue-bg:rgba(59,130,246,.12);
  --shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 8px 40px rgba(0,0,0,.5);
  --glass:rgba(255,255,255,.03);--navbar-bg:rgba(10,14,26,.92);
}
[data-theme="light"]{
  --bg-primary:#f0f2f5;--bg-secondary:#ffffff;--bg-card:#ffffff;--bg-card-hover:#f8fafc;
  --bg-input:#f1f5f9;--border:#e2e8f0;--border-light:#cbd5e1;
  --text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;
  --accent:#e53e3e;--accent-hover:#c53030;
  --green:#059669;--green-bg:rgba(5,150,105,.1);
  --yellow:#d97706;--yellow-bg:rgba(217,119,6,.1);
  --red:#dc2626;--red-bg:rgba(220,38,38,.1);
  --gray:#6b7280;--gray-bg:rgba(107,114,128,.08);
  --blue:#2563eb;--blue-bg:rgba(37,99,235,.08);
  --shadow:0 4px 24px rgba(0,0,0,.08);--shadow-lg:0 8px 40px rgba(0,0,0,.12);
  --glass:rgba(0,0,0,.02);--navbar-bg:rgba(255,255,255,.95);
}
body{background:var(--bg-primary);color:var(--text-primary)}
.text-accent{color:var(--accent)}

/* ========== LOGIN PAGE ========== */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;overflow:hidden;position:relative}
.login-bg{position:fixed;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(229,62,62,.08),transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(59,130,246,.06),transparent 60%);z-index:0}
.login-container{position:relative;z-index:1;width:100%;max-width:420px;padding:1rem}
.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:2.5rem;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px)}
.login-logo{text-align:center;margin-bottom:2rem}
.login-logo img{width:64px;height:64px;object-fit:contain;margin-bottom:.75rem}
.login-logo h1{font-size:1.75rem;font-weight:700;letter-spacing:-.5px}
.login-subtitle{color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}
.form-group{margin-bottom:1.25rem}
.form-group label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.5px}
.input-wrapper{position:relative;display:flex;align-items:center}
.input-icon{position:absolute;left:12px;width:18px;height:18px;color:var(--text-muted);pointer-events:none}
.input-wrapper input{width:100%;padding:.75rem .75rem .75rem 40px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:.95rem;transition:border .2s,box-shadow .2s}
.input-wrapper input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(229,62,62,.15)}
.toggle-password{position:absolute;right:10px;color:var(--text-muted);padding:4px}
.toggle-password svg{width:18px;height:18px}
.login-error{background:var(--red-bg);color:var(--red);padding:.75rem 1rem;border-radius:8px;font-size:.85rem;border:1px solid rgba(239,68,68,.2);margin-bottom:1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.25rem;border-radius:10px;font-weight:600;font-size:.875rem;transition:all .2s;border:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(229,62,62,.3)}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{background:#dc2626}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-primary)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:.45rem .85rem;font-size:.8rem;border-radius:8px}
.btn-login{width:100%;padding:.85rem;font-size:1rem;margin-top:.5rem}
.btn-loader{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.login-footer{text-align:center;margin-top:2rem;font-size:.75rem;color:var(--text-muted)}

/* ========== NAVBAR ========== */
.navbar{position:fixed;top:0;left:0;right:0;height:56px;background:var(--navbar-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 1.5rem;z-index:100;gap:1rem}
.navbar-brand{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.navbar-logo{width:28px;height:28px;object-fit:contain}
.navbar-title{font-size:1.1rem;font-weight:700;letter-spacing:-.3px}
.navbar-menu{display:flex;align-items:center;gap:.25rem;margin-left:1.5rem}
.nav-link{display:flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border-radius:8px;font-size:.82rem;font-weight:500;color:var(--text-secondary);transition:all .2s;white-space:nowrap}
.nav-link svg{width:16px;height:16px;flex-shrink:0}
.nav-link:hover{color:var(--text-primary);background:var(--glass)}
.nav-link.active{color:var(--accent);background:var(--red-bg);font-weight:600}
.navbar-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}
.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--text-secondary);transition:all .2s}
.icon-btn:hover{background:var(--glass);color:var(--text-primary)}
.icon-btn svg{width:18px;height:18px}
.user-badge{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}
.user-role{font-size:.65rem;font-weight:700;padding:.15rem .45rem;border-radius:4px;background:var(--accent);color:#fff;letter-spacing:.5px}
.user-name{font-size:.82rem;font-weight:500;color:var(--text-primary)}
[data-theme="dark"] .icon-moon{display:none}
[data-theme="light"] .icon-sun{display:none}
.navbar-toggle{display:none}
.navbar-toggle svg{width:22px;height:22px}

/* ========== MAIN CONTENT ========== */
.main-content{margin-top:56px;padding:1.5rem;max-width:1600px;margin-left:auto;margin-right:auto}
.tab-content{display:none;animation:fadeIn .3s}
.tab-content.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}
.page-header h1{font-size:1.5rem;font-weight:700}
.page-subtitle{font-size:.82rem;color:var(--text-muted);margin-top:.15rem}

/* ========== METRICS ========== */
.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.25rem}
.metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;transition:transform .2s,box-shadow .2s}
.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.metric-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.metric-icon svg{width:22px;height:22px}
.metric-online .metric-icon{background:var(--blue-bg);color:var(--blue)}
.metric-available .metric-icon{background:var(--green-bg);color:var(--green)}
.metric-paused .metric-icon{background:var(--yellow-bg);color:var(--yellow)}
.metric-offline .metric-icon{background:var(--gray-bg);color:var(--gray)}
.metric-value{font-size:1.75rem;font-weight:800;line-height:1}
.metric-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}

/* ========== PANEL GRID ========== */
.panel-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
.panel-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.section-header h2{font-size:1rem;font-weight:600}

/* ========== PAUSE BUTTONS ========== */
.pause-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem}
.pause-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:.75rem .5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);font-size:.72rem;font-weight:500;transition:all .2s;text-align:center;min-height:75px;position:relative;overflow:hidden}
.pause-btn svg{width:20px;height:20px;flex-shrink:0}
.pause-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--red-bg);transform:translateY(-1px)}
.pause-btn.active{border-color:var(--yellow);background:var(--yellow-bg);color:var(--yellow);box-shadow:0 0 16px rgba(245,158,11,.15)}
.pause-btn.active.exceeded{border-color:var(--red);background:var(--red-bg);color:var(--red);animation:pulseExceeded 1.5s infinite;box-shadow:0 0 20px rgba(239,68,68,.2)}
@keyframes pulseExceeded{0%,100%{box-shadow:0 0 16px rgba(239,68,68,.2)}50%{box-shadow:0 0 24px rgba(239,68,68,.4)}}
.pause-btn .pause-timer{font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums}
.pause-btn .pause-limit{font-size:.6rem;color:var(--text-muted);opacity:.7}

/* ========== TEAM GRID ========== */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.75rem}
.user-card{background:var(--bg-secondary);border-radius:10px;padding:.85rem;border-left:3px solid var(--gray);transition:all .25s;cursor:default;position:relative}
.user-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.user-card.status-available{border-left-color:var(--green)}
.user-card.status-paused{border-left-color:var(--yellow)}
.user-card.status-exceeded{border-left-color:var(--red)}
.user-card.status-offline{border-left-color:var(--gray);opacity:.6}
.user-card.is-me{box-shadow:inset 0 0 0 1px var(--accent)}
.user-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.user-card-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.dot-available{background:var(--green);box-shadow:0 0 6px var(--green)}
.dot-paused{background:var(--yellow);box-shadow:0 0 6px var(--yellow)}
.dot-exceeded{background:var(--red);box-shadow:0 0 6px var(--red);animation:pulseDot 1.5s infinite}
.dot-offline{background:var(--gray)}
@keyframes pulseDot{0%,100%{box-shadow:0 0 6px var(--red)}50%{box-shadow:0 0 12px var(--red)}}
.user-card-name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.user-card-me{font-size:.6rem;color:var(--accent);font-weight:700}
.user-card-body{font-size:.72rem;color:var(--text-secondary);line-height:1.6}
.user-card-status{font-weight:600}
.status-text-available{color:var(--green)}
.status-text-paused{color:var(--yellow)}
.status-text-exceeded{color:var(--red)}
.status-text-offline{color:var(--gray)}
.user-card-pause{display:flex;align-items:center;justify-content:space-between;margin-top:.35rem;padding:.3rem .5rem;background:var(--glass);border-radius:6px}
.user-card-pause-name{font-weight:600;color:var(--text-primary);font-size:.72rem}
.user-card-pause-timer{font-weight:700;font-variant-numeric:tabular-nums;font-size:.78rem}
.timer-normal{color:var(--yellow)}
.timer-exceeded{color:var(--red)}
.user-card-admin-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);opacity:0;transition:opacity .2s}
.user-card:hover .user-card-admin-btn{opacity:1}
.user-card-admin-btn:hover{color:var(--accent);background:var(--red-bg)}
.user-card-admin-btn svg{width:14px;height:14px}

/* ========== FILTERS BAR ========== */
.filters-bar{display:flex;align-items:flex-end;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}
.filter-group{display:flex;flex-direction:column;gap:.25rem}
.filter-group label{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}
.input-field{padding:.5rem .75rem;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.82rem;min-width:140px;transition:border .2s}
.input-field:focus{outline:none;border-color:var(--accent)}
.export-buttons{display:flex;gap:.5rem;margin-left:auto}

/* ========== DATA TABLE ========== */
.table-container{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:auto}
.data-table{width:100%;font-size:.82rem}
.data-table thead{background:var(--bg-secondary);position:sticky;top:0}
.data-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:.7rem;letter-spacing:.5px;border-bottom:1px solid var(--border)}
.data-table td{padding:.65rem 1rem;border-bottom:1px solid var(--border);color:var(--text-secondary)}
.data-table tbody tr:hover{background:var(--bg-card-hover)}
.data-table tbody tr:last-child td{border-bottom:none}
.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600}
.badge-adm{background:var(--red-bg);color:var(--red)}
.badge-user{background:var(--blue-bg);color:var(--blue)}
.badge-active{background:var(--green-bg);color:var(--green)}
.badge-blocked{background:var(--red-bg);color:var(--red)}
.badge-online{background:var(--green-bg);color:var(--green)}
.badge-offline{background:var(--gray-bg);color:var(--gray)}
.action-btn{padding:.3rem .5rem;border-radius:6px;font-size:.72rem;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;gap:.25rem;color:var(--text-secondary);border:1px solid var(--border)}
.action-btn:hover{border-color:var(--accent);color:var(--accent)}
.action-btn svg{width:13px;height:13px}
.actions-cell{display:flex;gap:.35rem;flex-wrap:wrap}

/* ========== MY PAUSE STATS ========== */
.my-pause-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:1.25rem}
.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1rem;text-align:center}
.stat-card-value{font-size:1.35rem;font-weight:700;color:var(--text-primary)}
.stat-card-label{font-size:.72rem;color:var(--text-muted);margin-top:.25rem;text-transform:uppercase;letter-spacing:.3px}

/* ========== RANKING ========== */
.ranking-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.ranking-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:transform .2s}
.ranking-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.ranking-position{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;flex-shrink:0}
.ranking-pos-1{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}
.ranking-pos-2{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff}
.ranking-pos-3{background:linear-gradient(135deg,#c2884d,#a16b3a);color:#fff}
.ranking-pos-default{background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border)}
.ranking-info{flex:1;min-width:0}
.ranking-name{font-weight:600;font-size:.9rem;margin-bottom:.2rem}
.ranking-stats{font-size:.75rem;color:var(--text-muted)}
.ranking-bar{height:4px;background:var(--border);border-radius:2px;margin-top:.5rem;overflow:hidden}
.ranking-bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent),#f59e0b);transition:width .6s ease}

/* ========== MODAL ========== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:modalIn .25s}
@keyframes modalIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}
.modal-header h3{font-size:1.1rem;font-weight:600}
.modal-header .icon-btn{font-size:1.4rem;width:32px;height:32px}
.modal-body{padding:1.5rem}
.modal-body .form-group{margin-bottom:1rem}
.modal-body .input-wrapper input,.modal-body .input-field{width:100%}
.modal-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border)}

/* ========== CONTEXT MENU ========== */
.context-menu{position:fixed;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);z-index:300;padding:.35rem;min-width:200px;max-width:min(320px,92vw);animation:fadeIn .15s}
.context-menu-caption{padding:.35rem .6rem .15rem;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}
.context-menu-scroll{max-height:min(280px,45vh);overflow-y:auto;margin:0 -.15rem;padding:0 .15rem}
.context-menu-divider{height:1px;background:var(--border);margin:.35rem .25rem}
.context-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .75rem;border-radius:6px;font-size:.8rem;color:var(--text-secondary);transition:all .15s;text-align:left;border:none;background:transparent;cursor:pointer;font:inherit}
.context-item:hover{background:var(--red-bg);color:var(--accent)}
.context-item-active{color:var(--yellow);background:var(--yellow-bg)}
.context-item-active:hover{color:var(--yellow)}
.context-item-icon{flex-shrink:0;width:1.25rem;text-align:center;font-size:1rem;line-height:1}
.context-item-hint{margin-left:auto;font-size:.65rem;opacity:.85}

/* ========== TOAST ========== */
.toast-container{position:fixed;top:70px;right:1rem;z-index:400;display:flex;flex-direction:column;gap:.5rem}
.toast{padding:.75rem 1.25rem;border-radius:10px;font-size:.82rem;font-weight:500;animation:toastIn .3s;box-shadow:var(--shadow);display:flex;align-items:center;gap:.5rem;max-width:360px}
.toast-success{background:var(--green);color:#fff}
.toast-error{background:var(--red);color:#fff}
.toast-info{background:var(--blue);color:#fff}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* ========== RESPONSIVE ========== */
@media(max-width:900px){
  .navbar-menu{display:none;position:fixed;top:56px;left:0;right:0;background:var(--navbar-bg);backdrop-filter:blur(12px);flex-direction:column;padding:1rem;border-bottom:1px solid var(--border);gap:.25rem}
  .navbar-menu.open{display:flex}
  .navbar-toggle{display:flex}
  .metrics-row{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
  .pause-buttons{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
  .filters-bar{flex-direction:column;align-items:stretch}
  .export-buttons{margin-left:0}
}
@media(max-width:480px){
  .metrics-row{grid-template-columns:1fr 1fr}
  .main-content{padding:1rem .75rem}
  .navbar{padding:0 .75rem}
  .user-badge .user-name{display:none}
}
