:root{--navy:#0b3d6d;--navy-dark:#082c50;--yellow:#fc0;--bg:#f5f7fb;--card:#fff;--text:#1f2933;--muted:#5a6572;--line:#e3e8ef;--green:#1e7e34;--red:#b42318}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.5}a{color:var(--navy)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--navy);outline-offset:2px}.topbar{background:var(--navy);color:#fff;box-shadow:0 4px 20px #00000026}.topbar-inner{flex-wrap:wrap;align-items:center;gap:24px;max-width:1100px;margin:0 auto;padding:12px 20px;display:flex}.brand{letter-spacing:.3px;font-size:20px;font-weight:700}.brand span{color:var(--yellow)}.nav{flex-wrap:wrap;flex:1;gap:6px;display:flex}.nav a{color:#fff;border-radius:6px;padding:8px 14px;font-weight:500;text-decoration:none}.nav a:hover{background:#ffffff1f}.nav a[aria-current=page]{background:#fff3;font-weight:700}.topbar a:focus-visible,.topbar button:focus-visible{outline-color:var(--yellow)}.who{align-items:center;gap:12px;font-size:14px;display:flex}.who small{opacity:.8;display:block}main{max-width:1100px;margin:0 auto;padding:28px 20px 60px}h1{color:var(--navy);margin:0 0 4px;font-size:26px}h2{color:var(--navy);margin:32px 0 12px;font-size:18px}.lead{color:var(--muted);margin:0 0 24px}.card{background:var(--card);border-radius:10px;padding:20px;box-shadow:0 2px 10px #00000012}.grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.stat-num{color:var(--navy);font-size:34px;font-weight:700;line-height:1.1;display:block}.stat-label{color:var(--muted);margin-top:6px;font-size:14px;display:block}.note{color:var(--muted);font-size:14px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;background:var(--card);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 14px;font-size:14px}th{color:var(--navy);white-space:nowrap;background:#eef3fb;font-weight:700}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:none}code.id{color:var(--navy);background:#eef3fb;border-radius:4px;padding:2px 8px;font-weight:700}.badge{color:var(--navy);background:#eef3fb;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.ok{color:var(--green);background:#e6f4ea}.badge.off{color:var(--muted);background:#f1f3f5}.empty{text-align:center;color:var(--muted);padding:28px}.btn{background:var(--navy);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 18px;font-size:15px;font-weight:700;display:inline-block}.btn:hover{background:var(--navy-dark)}.btn:disabled{opacity:.6;cursor:wait}.btn.ghost{background:0 0;border:1px solid #fff9;padding:6px 12px;font-size:13px}.btn.ghost:hover{background:#ffffff26}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{width:100%;max-width:380px}.login-card h1{text-align:center}.login-card .lead{text-align:center;margin-bottom:20px}label{margin:14px 0 6px;font-size:14px;font-weight:700;display:block}input[type=email],input[type=password],input[type=text],input[type=search],input[type=tel],input[type=date],input[type=file],select{border:1px solid #c9d1dc;border-radius:6px;width:100%;padding:11px 12px;font-size:15px}.error{color:var(--red);background:#fdecea;border-radius:6px;margin:14px 0 0;padding:10px 12px;font-size:14px}.login-card .btn{width:100%;margin-top:20px}.crumbs{color:var(--muted);margin:0 0 8px;font-size:14px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-actions{flex-wrap:wrap;gap:10px;display:flex}.btn.secondary{color:var(--navy);border:1px solid var(--navy);background:#fff}.btn.secondary:hover{background:#eef3fb}.btn.small{padding:7px 14px;font-size:14px}a.btn{text-decoration:none}.link-button{font:inherit;color:var(--navy);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.filters{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:18px;display:flex}.filters>div{flex:180px}.filters label{margin-top:0}.filter-buttons{gap:8px;display:flex;flex:none!important}.form-grid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.form-grid .span-2{grid-column:1/-1}.form-grid label,.form-grid>label.check{margin-top:14px}.form-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:18px;display:flex}.subform{border-top:1px solid var(--line);margin-top:22px;padding-top:6px}label.check{align-items:center;gap:8px;font-weight:400;display:flex}.error.inline,.success.inline{margin:0;display:inline-block}.success{color:var(--green);background:#e6f4ea;border-radius:6px;padding:10px 12px;font-size:14px}.badge.warn{color:#7a5200;background:#fff4d6}.details{grid-template-columns:max-content 1fr;gap:8px 24px;margin:0;display:grid}.details dt{color:var(--muted)}.details dd{margin:0}.pagination{color:var(--muted);justify-content:space-between;align-items:center;margin-top:18px;font-size:14px;display:flex}.bad{color:var(--red)}tr.row-bad td{background:#fff6f5}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:16px;display:flex}.inline-form>div{flex:240px}.inline-form label{margin-top:0}.plain{margin:0;padding:0;list-style:none}.plain li{padding:6px 0}.checklist{border:1px solid var(--line);border-radius:6px;max-height:320px;padding:8px 12px;overflow-y:auto}.checklist label.check{margin:0;padding:6px 0}.status-form{align-items:center;gap:8px;display:flex}.status-form select{width:auto;padding:6px 8px;font-size:14px}.attendance-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 12px;display:flex}.big-check{cursor:pointer;width:24px;height:24px}tr.row-absent td{background:#fff6f5}.who-link{color:#fff;text-decoration:none}.who-link:hover{text-decoration:underline}.role-chip{margin-bottom:4px}.nav-badge{background:var(--yellow);color:#0b2c5f;text-align:center;border-radius:10px;min-width:20px;margin-left:6px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px;display:inline-block}.pipeline{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin-bottom:18px;display:grid}.stage{background:var(--card);border:2px solid #0000;border-radius:10px;padding:12px 14px;text-decoration:none;display:block;box-shadow:0 2px 10px #00000012}.stage .stat-num{font-size:26px}.stage.active{border-color:var(--navy)}.stage:hover{background:#f7f9fc}tr.row-new td{background:#fffbe8;font-weight:700}.card-link{color:inherit;text-decoration:none;display:block}.card-link:hover{background:#f7f9fc}.btn.danger{background:var(--red)}.btn.danger:hover{background:#8f1d14}button.link-button.bad{color:var(--red)}textarea{width:100%;font:inherit;resize:vertical;border:1px solid #c9d1dc;border-radius:6px;padding:11px 12px;font-size:15px}@media (max-width:600px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.topbar-inner{gap:12px}.who{justify-content:space-between;width:100%}h1{font-size:22px}}.code-box{border:2px dashed var(--navy);background:#f4f8fd;border-radius:10px;margin-top:18px;padding:16px 18px}.code-value{letter-spacing:4px;color:var(--navy);margin:8px 0;font-family:Courier New,monospace;font-size:34px;font-weight:700}.bar{vertical-align:middle;background:#e3e8ef;border-radius:5px;width:120px;height:10px;margin-right:8px;display:inline-block;overflow:hidden}.bar-fill{background:var(--navy);height:100%;display:block}
