*{box-sizing:border-box}
:root{font-family:Tahoma,Arial,sans-serif;color:#29242a;background:#f7f7f8}
body{margin:0;background:#f7f7f8;min-width:320px}
button,input,select{font:inherit}
.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#faeef2,#f7f7f8 55%)}
.login-card{width:min(420px,100%);background:#fff;border:1px solid #eadde2;border-radius:22px;padding:28px;box-shadow:0 18px 50px #4a1d2a14;text-align:center}
.login-logo{width:100px;height:100px;object-fit:contain}
.login-card h1{color:#8e1838;font-size:30px;margin:8px 0}
.login-card p{color:#6f6570;margin:0 0 18px}
.login-card form{display:grid;gap:12px;text-align:right}
.login-card small{display:block;color:#887e86;margin-top:16px}
.error{background:#fff0f0;border:1px solid #f0bebe;color:#8f1f1f;padding:10px;border-radius:10px;margin-top:12px}
.topbar{background:#fff;border-bottom:3px solid #8e1838;padding:10px max(16px,calc((100% - 1240px)/2));display:flex;justify-content:space-between;align-items:center;gap:14px;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:13px}
.brand img{width:62px;height:62px;object-fit:contain}
.brand h1{margin:0;color:#8e1838;font-size:21px}
.brand p{margin:4px 0;color:#726873;font-size:13px}
main{width:min(1240px,calc(100% - 26px));margin:20px auto 50px}
.panel,.stats article{background:#fff;border:1px solid #eadde2;border-radius:16px;box-shadow:0 4px 18px #0000000a}
.panel{padding:20px;margin-bottom:16px}
.panel h2{margin:0;color:#8e1838}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.stats article{padding:16px;display:grid;gap:7px}
.stats span{color:#746b73;font-size:14px}
.stats b{font-size:22px}
.weeks{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.week-card{border:1px solid #ead5dd;background:#fff7f9;color:#5f4c53;border-radius:11px;padding:10px;display:grid;gap:3px;cursor:pointer}
.week-card b{font-size:21px;color:#8e1838}
.week-card.active{background:#8e1838;color:#fff;border-color:#8e1838}
.week-card.active b{color:#fff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.wide{grid-column:1/-1}
label{display:grid;gap:6px;color:#433a40;font-weight:700;font-size:14px}
input,select{width:100%;padding:11px 12px;border:1px solid #d8ced3;border-radius:10px;background:#fff;color:#29242a;outline:none}
input:focus,select:focus{border-color:#a53a59;box-shadow:0 0 0 3px #f6e2e8}
.primary,.secondary,.danger{border:0;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer}
.primary{background:#8e1838;color:#fff}
.secondary{background:#f3e7eb;color:#68132d}
.danger{background:#fff0f0;color:#a12626}
.signature-block canvas{width:100%;height:145px;border:1px dashed #a69ca1;border-radius:11px;background:#fcfbfc;touch-action:none}
.signature-block button{justify-self:start;margin-top:7px}
.notice{background:#fff5d8;border:1px solid #ecd995;color:#735b12;padding:11px 13px;border-radius:10px;margin-bottom:14px}
.filters{display:grid;grid-template-columns:2fr 150px 160px 165px auto;gap:9px;margin-bottom:12px}
.actions{display:flex;gap:7px}
.summary{background:#faf6f7;border:1px solid #ecdee3;border-radius:11px;padding:10px 12px;margin-bottom:12px;color:#675e64}
.table-wrap{overflow:auto;border:1px solid #eee4e8;border-radius:12px}
table{width:100%;border-collapse:collapse;min-width:1120px}
th,td{padding:9px 10px;border-bottom:1px solid #eee;text-align:right;vertical-align:middle;font-size:13px}
th{background:#faf5f7;color:#62565e}
.status{padding:4px 7px;border-radius:999px;background:#f6e5eb;color:#731c36;white-space:nowrap}
.status.exited{background:#e8f6ed;color:#22613b}
.row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.row-actions button{padding:7px 9px;font-size:12px}
.sig{max-width:90px;max-height:40px;object-fit:contain}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.weeks{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.brand img{width:50px;height:50px}.brand h1{font-size:18px}.brand p{font-size:11px}.topbar{align-items:flex-start}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.weeks{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr}.panel-title{align-items:flex-start;flex-direction:column}.actions{width:100%}.actions button{flex:1}}
@media print{.noprint,.topbar,.stats,.panel:not(:last-child),.notice{display:none!important}main{width:100%;margin:0}.panel{border:0;box-shadow:none;padding:0}.table-wrap{overflow:visible}table{min-width:0}th,td{font-size:9px;padding:4px;border:1px solid #777}.sig{max-width:60px;max-height:28px}}
