:root{--blue:#276486;--dark:#17384b;--bg:#f3f6f8;--line:#dce5ea;--muted:#607582;--white:#fff;--green:#e4f6ed;--red:#ffebeb;--yellow:#fff4d9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#182b36;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}header{background:linear-gradient(120deg,var(--dark),var(--blue));color:#fff;padding:22px max(18px,calc((100% - 1400px)/2));}header h1{margin:0;font-size:clamp(22px,3vw,32px)}header p{margin:5px 0 0;color:#e2edf3}.wrap{max-width:1400px;margin:auto;padding:18px}.toolbar,.panel,.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 3px 12px #18384b08}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .grow{flex:1}button,.filebtn{border:0;border-radius:9px;background:var(--blue);color:white;padding:10px 14px;font-weight:650;cursor:pointer;font-size:14px}button.secondary,.filebtn.secondary{background:#eaf1f5;color:var(--dark);border:1px solid var(--line)}button.danger{background:#a83e3e}button:hover,.filebtn:hover{filter:brightness(.96)}input,select{font:inherit;padding:9px 10px;border:1px solid #cbd8df;border-radius:8px;background:white;color:#1a2b35;min-width:0}input[type=number]{width:100px}.stats{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin:14px 0}.stat small{color:var(--muted);display:block}.stat strong{font-size:23px;color:var(--dark)}.layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px}.panel h2{font-size:18px;margin:0 0 12px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:var(--muted)}.field input{width:100%}.employee-list{margin-top:14px;display:flex;flex-direction:column;gap:7px;max-height:380px;overflow:auto}.emp{border:1px solid var(--line);padding:10px;border-radius:9px;display:flex;justify-content:space-between;gap:8px;align-items:center;cursor:pointer}.emp.active{border-color:var(--blue);background:#edf6fa}.emp small{display:block;color:var(--muted)}.tabletop{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.tabletop h2{margin:0;flex:1}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:separate;border-spacing:0;width:100%;min-width:920px;background:#fff}th,td{padding:8px 9px;border-bottom:1px solid #e5ebef;text-align:left;white-space:nowrap;font-size:13px}th{position:sticky;top:0;background:#eaf1f5;color:#29495a;z-index:1}td input,td select{padding:6px;min-width:65px;width:100%;font-size:13px}td .hours{width:66px}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.ok{background:var(--green);color:#17663e}.abs{background:var(--red);color:#8c3030}.vac{background:var(--yellow);color:#8a5b00}.note{font-size:12px;color:var(--muted);margin-top:10px}.paygrid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin-top:14px}.paybox{background:#f5f8fa;border-radius:9px;padding:10px}.paybox small{display:block;color:var(--muted)}.paybox strong{font-size:17px}.hidden{display:none!important}.foot{color:var(--muted);font-size:12px;text-align:center;padding:20px}.notice{padding:10px 12px;border-radius:9px;background:#edf6fa;color:#244b60;margin-bottom:12px;font-size:13px}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#18384b;color:white;padding:11px 16px;border-radius:9px;display:none;z-index:10;box-shadow:0 4px 16px #0002}
@media(max-width:900px){.layout{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-list{max-height:220px}.paygrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.wrap{padding:10px}.toolbar{padding:11px}.stats{gap:8px}.stat{padding:11px}.stat strong{font-size:19px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.paygrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body{background:#fff;font-size:10px}header{background:#fff!important;color:#000;padding:0 0 12px;border-bottom:2px solid #222}header p{color:#333}.wrap{max-width:none;padding:8px}.toolbar,.layout>aside,.no-print,.foot{display:none!important}.layout{display:block}.panel,.stat{box-shadow:none;border:0;padding:4px}.stats{grid-template-columns:repeat(4,1fr);margin:6px 0}.stat strong{font-size:14px}.tablewrap{overflow:visible;border:0}table{min-width:0;width:100%;font-size:8px}th,td{font-size:8px;padding:4px;white-space:normal}th{position:static}td input,td select{border:0;padding:0;background:transparent;appearance:none}#printTitle{display:block!important}.paygrid{grid-template-columns:repeat(4,1fr)}.paybox{padding:5px}}
header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}header .brand{flex:1;min-width:220px}.userbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:#e2edf3}.userbar button{background:#ffffff1f;border:1px solid #ffffff44}.syncstate{font-size:12px;padding:3px 9px;border-radius:20px;background:#ffffff1f}.syncstate.error{background:#a83e3e}
.auth{max-width:430px;margin:40px auto;padding:0 14px}.auth .panel{padding:22px}.auth h2{margin:0 0 6px;font-size:21px}.auth p.sub{margin:0 0 16px;color:var(--muted);font-size:14px}.auth form{display:flex;flex-direction:column;gap:12px}.auth .field input{width:100%}.auth button[type=submit]{width:100%;padding:12px}.auth .links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:13px}.linkbtn{background:none!important;border:0;color:var(--blue)!important;padding:0;font-weight:600;text-decoration:underline;cursor:pointer}.msg{padding:10px 12px;border-radius:9px;font-size:13px;margin-bottom:12px}.msg.error{background:var(--red);color:#7a2525}.msg.info{background:#edf6fa;color:#244b60}.msg.ok{background:var(--green);color:#17663e}.msg code{background:#fff8;padding:1px 4px;border-radius:4px}.loading{text-align:center;color:var(--muted);padding:60px 0}button:disabled{opacity:.55;cursor:not-allowed}
@media print{.auth,.userbar,#legacyNotice{display:none!important}}
.rolebadge{display:inline-block;background:#edf6fa;color:#244b60;border-radius:18px;padding:5px 10px;font-size:12px;font-weight:700}.subpanel{margin-top:14px;padding:14px;box-shadow:none}.subpanel h2{margin-bottom:10px}.subpanel .note{margin-bottom:0}.loss-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.lossitem{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);padding:9px;border-radius:8px}.lossitem small{color:var(--muted)}.lossitem button{margin-left:auto;padding:6px 10px;font-size:12px}
