:root{--bg: #0f1115;--panel: #171a21;--panel-light: #1f232c;--border: #2a2f3a;--text: #e8eaef;--text-dim: #9aa1ae;--accent: #4f8cff;--danger: #ef4444;--ok: #22c55e;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button{cursor:pointer;border:none;background:var(--accent);color:#fff;padding:.55rem 1rem;border-radius:6px;font-size:.9rem;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--panel-light);color:var(--text);border:1px solid var(--border)}button.danger{background:var(--danger)}.link-btn{background:none;color:var(--accent);padding:.2rem .4rem;font-weight:500}.link-btn.danger{color:var(--danger)}input,select{background:var(--panel-light);border:1px solid var(--border);color:var(--text);padding:.5rem .6rem;border-radius:6px;font-size:.9rem}label{font-size:.8rem;color:var(--text-dim);margin-top:.6rem;display:block}.auth-screen{height:100vh;display:flex;align-items:center;justify-content:center}.auth-card{background:var(--panel);border:1px solid var(--border);padding:2.5rem;border-radius:12px;width:320px;display:flex;flex-direction:column}.auth-card h1{margin:0}.auth-card .subtitle{color:var(--text-dim);margin-top:.2rem;margin-bottom:1rem}.auth-card button{margin-top:1.5rem}.error-text{color:var(--danger);font-size:.85rem}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 1rem}.sidebar .brand{font-weight:700;font-size:1.1rem;margin-bottom:1.5rem}.sidebar nav{display:flex;flex-direction:column;gap:.3rem;flex:1}.sidebar nav a{color:var(--text-dim);text-decoration:none;padding:.5rem .7rem;border-radius:6px;font-size:.9rem}.sidebar nav a.active,.sidebar nav a:hover{background:var(--panel-light);color:var(--text)}.sidebar-footer{border-top:1px solid var(--border);padding-top:1rem;display:flex;justify-content:space-between;align-items:center}.who-name{font-size:.85rem}.who-role{font-size:.75rem;color:var(--text-dim);text-transform:capitalize}.content{flex:1;padding:2rem;overflow-y:auto}.page{max-width:1000px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.inline-controls{display:flex;gap:.6rem;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.2rem}.stat-value{font-size:1.8rem;font-weight:700}.stat-label{color:var(--text-dim);font-size:.85rem}.data-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-top:.5rem;margin-bottom:2rem}.data-table th,.data-table td{text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--border);font-size:.88rem}.data-table th{color:var(--text-dim);font-weight:600;background:var(--panel-light)}.empty-cell{text-align:center;color:var(--text-dim);padding:1.5rem}.row-actions{display:flex;gap:.5rem}.badge{padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge-on{background:#22c55e26;color:var(--ok)}.badge-off{background:#ef444426;color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.5rem;width:380px;display:flex;flex-direction:column}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.5rem}.clock-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.5rem;max-width:320px;margin-bottom:2rem;display:flex;flex-direction:column;gap:1rem}.clock-status{display:flex;align-items:center;gap:.5rem;font-weight:600}.dot{width:10px;height:10px;border-radius:50%}.dot-on{background:var(--ok)}.dot-off{background:var(--text-dim)}.clock-times{display:flex;justify-content:space-between}.clock-times .label{display:block;color:var(--text-dim);font-size:.75rem}.notice{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem;color:var(--text-dim)}.deduction-input{width:90px}
