:root{
 --blue:#123b66;--blue2:#0d2d4d;--red:#c72d2d;--bg:#f3f6f9;--card:#fff;--text:#17212b;
 --muted:#687786;--line:#dce4eb;--green:#147d4a;--yellow:#986f00;--danger:#b42318;
 --shadow:0 10px 30px rgba(18,59,102,.08);--radius:16px;
}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
a{color:inherit}.topbar{height:72px;background:var(--blue2);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}
.brand{display:flex;gap:10px;align-items:center}.brand-mark{background:var(--red);color:#fff;font-weight:900;width:42px;height:42px;border-radius:10px;display:grid;place-items:center}
.brand strong{display:block;font-size:18px}.brand small{display:block;opacity:.75}.top-user{display:flex;gap:14px;align-items:center}.top-user a{font-size:14px;opacity:.85}
.container{max-width:1220px;margin:0 auto;padding:26px}.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.hero h1{font-size:34px;margin:3px 0}.hero p{margin:0;color:var(--muted)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--blue)}
.week-badge{background:var(--blue);color:#fff;padding:12px 16px;border-radius:12px;font-weight:800}.week-nav,.actions{display:flex;gap:8px;flex-wrap:wrap}
.cards{display:grid;gap:14px;margin-bottom:18px}.cards-3{grid-template-columns:repeat(3,1fr)}.cards-4{grid-template-columns:repeat(4,1fr)}
.stat{background:var(--card);padding:20px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.stat span{display:block;color:var(--muted);font-size:14px}.stat strong{display:block;font-size:28px;margin-top:7px}.stat-warn strong{color:var(--danger)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:18px}.panel h2{margin:4px 0 14px;font-size:22px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.punch-panel{display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px;border-left:5px solid var(--red)}
.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn-primary{background:var(--blue);color:#fff}.btn-light{background:#eef3f7;color:var(--blue2);border:1px solid var(--line)}.btn-start{background:var(--green);color:#fff}.btn-stop{background:var(--red);color:#fff}
.btn-huge{font-size:18px;padding:18px 26px;min-width:240px}.btn-wide{width:100%}.btn-small{padding:8px 10px}
label{display:grid;gap:6px;font-weight:700;font-size:14px}label small{font-weight:500;color:var(--muted)}
input,select{width:100%;padding:11px 12px;border:1px solid #cdd7df;border-radius:9px;background:#fff;font:inherit}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.span-2{grid-column:span 2}.stack{display:grid;gap:14px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
td small{display:block;color:var(--muted);margin-top:3px}.muted{color:var(--muted)}.list-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.pill{font-size:12px;font-weight:800;padding:6px 9px;border-radius:999px;white-space:nowrap}.pill-ok{background:#e7f7ef;color:var(--green)}.pill-warn{background:#fff4cf;color:var(--yellow)}.pill-danger{background:#fde7e5;color:var(--danger)}.text-danger{color:var(--danger);font-weight:800}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-weight:650}.flash-ok{background:#e7f7ef;color:#0e6d40}.flash-warn{background:#fff4cf;color:#775700}.flash-error{background:#fde7e5;color:#8e1b13}
.footer{text-align:center;color:var(--muted);font-size:13px;padding:20px 10px 35px}.inline-form{display:flex;gap:7px;align-items:center}.inline-form input{max-width:100px}
.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--blue2),var(--blue));padding:20px}
.login-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:30px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.brand-login{margin-bottom:25px}.login-card h1{margin-bottom:5px}
code{font-size:12px;white-space:normal;word-break:break-word}
@media(max-width:800px){
 .container{padding:16px}.topbar{padding:0 14px}.top-user span{display:none}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:28px}
 .cards-3,.cards-4,.grid-2{grid-template-columns:1fr}.punch-panel{grid-template-columns:1fr}.punch-panel form{width:100%}.btn-huge{width:100%}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}
 .panel{padding:16px}.stat strong{font-size:24px}.panel-head{align-items:flex-start;flex-direction:column}
}
