:root{--ink:#17231f;--muted:#6f7b76;--green:#174b3e;--mint:#d9eee6;--cream:#f5f2e9;--orange:#e9793e;--line:#e4e8e5;--white:#fff;--shadow:0 18px 60px rgba(31,60,50,.09)}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:#f8faf8}button,input{font:inherit}.hidden{display:none!important}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:800;margin:0 0 12px}.green{color:#36806d}.login{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:var(--white)}.login-art{padding:64px 8vw;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,rgba(10,48,39,.93),rgba(20,80,64,.88)),radial-gradient(circle at 80% 20%,#d1a958,transparent 35%);color:white;position:relative;overflow:hidden}.login-art:after{content:'';position:absolute;width:380px;height:380px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-100px;top:14%}.brand-mark,.logo>span{width:52px;height:52px;border:1px solid rgba(255,255,255,.45);display:grid;place-items:center;font-family:Manrope;font-weight:800;border-radius:14px}.login-art h1{font:800 clamp(42px,6vw,76px)/1.03 Manrope;margin:0 0 24px;letter-spacing:-.05em}.login-art>div p:not(.eyebrow){max-width:480px;color:#c7d8d2;font-size:18px;line-height:1.65}.login-card{width:min(420px,80%);margin:auto;display:grid;gap:24px}.login-card h2{font:800 34px Manrope;margin:0}.login-card p{color:var(--muted)}label{font-weight:600;font-size:13px;display:grid;gap:8px}input{border:1px solid var(--line);border-radius:10px;padding:12px 14px;outline:none;background:white}input:focus{border-color:#4d927f;box-shadow:0 0 0 3px #dff1eb}.primary,.secondary{border:0;border-radius:10px;padding:13px 18px;font-weight:700;cursor:pointer}.primary{background:var(--green);color:white}.primary:hover{background:#0f3c31}.secondary{border:1px solid var(--line);background:white;color:var(--ink)}.small{padding:10px 14px}.error{color:#b33!important}.app{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.app>aside{position:fixed;width:244px;height:100vh;background:#103e33;color:white;padding:26px 18px;display:flex;flex-direction:column}.logo{display:flex;gap:12px;align-items:center;color:white;text-decoration:none;font:700 17px Manrope}.logo>span{width:42px;height:42px;border-radius:11px}.logo small,.aside-foot small{display:block;font:400 11px 'DM Sans';color:#9cb9b0;margin-top:3px}nav{display:grid;gap:7px;margin-top:52px}.nav{border:0;background:transparent;color:#aec5be;text-align:left;padding:12px 14px;border-radius:9px;font-weight:600;cursor:pointer}.nav span{margin-left:13px}.nav.active,.nav:hover{background:rgba(255,255,255,.1);color:white}.aside-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:20px 6px 0;display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;background:#d3a64f;color:#183f35;border-radius:50%;display:grid;place-items:center;font-weight:800}.aside-foot button{margin-left:auto;background:none;border:0;color:#acc4bd;cursor:pointer}main{grid-column:2;padding:0 3vw 50px;max-width:1600px;width:100%}header{height:94px;display:flex;align-items:center;justify-content:space-between}header p{margin:0;color:var(--muted);font-size:13px}header h2{font:800 20px Manrope;margin:3px 0}.header-actions,.filters{display:flex;align-items:end;gap:10px}.date-pill{display:flex;grid-auto-flow:column;align-items:center;border:1px solid var(--line);border-radius:10px;background:white;padding:0 8px;color:#42816f}.date-pill input{border:0;padding:9px 4px}.menu{display:none}.view{display:none}.view.active{display:block}.hero{min-height:260px;border-radius:22px;background:linear-gradient(105deg,#123e34,#245f4f);color:white;padding:42px 48px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.hero:after{content:'';position:absolute;width:460px;height:460px;border:55px solid rgba(255,255,255,.035);border-radius:50%;right:-120px;top:-180px}.hero h1{font:800 clamp(32px,4vw,54px)/1.05 Manrope;letter-spacing:-.045em;margin:0}.hero h1 em{font-style:normal;color:#d8b163}.hero>div>p:last-child{color:#bbd0c9}.hero-date{z-index:1;display:flex;align-items:center;gap:15px;background:rgba(255,255,255,.1);padding:15px 20px;border:1px solid rgba(255,255,255,.16);border-radius:14px}.hero-date>span{font:800 42px Manrope}.hero-date small{display:block;color:#b9d0c8;margin-top:3px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stats article{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;gap:16px;box-shadow:0 5px 18px rgba(20,50,40,.03)}.stats .icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-weight:900}.icon.present{background:#dff3e7;color:#28724e}.icon.late{background:#fff1d5;color:#b57813}.icon.absent{background:#fbe4e2;color:#b4534b}.icon.overtime{background:#e4ebfb;color:#506db5}.stats small{color:var(--muted)}.stats strong{font:800 30px Manrope;display:block}.stats p{font-size:11px;color:#9aa29f;margin:2px 0}.grid{display:grid;grid-template-columns:1.5fr .7fr;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:24px;box-shadow:0 7px 24px rgba(23,50,41,.035)}.panel h3{font:800 21px Manrope;margin:0}.action-panel{background:var(--cream);display:flex;flex-direction:column;justify-content:center}.action-panel p:not(.eyebrow){color:var(--muted);line-height:1.6}.action-panel button{align-self:start}.chart{height:190px;display:flex;align-items:end;gap:14px;padding-top:25px}.bar-group{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:8px}.bar{width:min(35px,65%);background:linear-gradient(#5eaa8f,#1c5a48);border-radius:7px 7px 2px 2px;min-height:4px;position:relative}.bar span{position:absolute;top:-21px;font-size:11px;font-weight:700;width:100%;text-align:center}.bar-group small{font-size:10px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;margin:18px 0 24px}.section-head h1{font:800 36px Manrope;letter-spacing:-.035em;margin:0}.filters label{color:var(--muted)}.table-wrap{padding:0;overflow:auto}table{border-collapse:collapse;width:100%;min-width:790px}th{text-align:left;color:#82908b;font-size:11px;text-transform:uppercase;letter-spacing:.07em;padding:16px 20px;border-bottom:1px solid var(--line)}td{padding:15px 20px;border-bottom:1px solid #edf0ee;font-size:13px}.name-cell strong{display:block}.name-cell small{color:var(--muted)}.badge{display:inline-flex;padding:5px 9px;border-radius:20px;font-size:11px;font-weight:700}.badge.ok{background:#dff3e7;color:#246545}.badge.warn{background:#fff1d5;color:#9b6815}.empty{text-align:center;padding:48px;color:var(--muted)}.import-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.uploader{text-align:center;padding:55px;display:flex;flex-direction:column;align-items:center}.upload-icon{width:68px;height:68px;border-radius:18px;display:grid;place-items:center;background:var(--mint);color:var(--green);font-size:29px}.uploader h2{margin:20px 0 5px}.uploader p{color:var(--muted);margin-bottom:20px}.uploader input{display:none}.uploader .primary{margin-top:22px}.uploader span{font-size:12px;color:var(--muted);margin-top:10px}.guide{background:var(--cream)}.guide ol{list-style:none;padding:0;margin:25px 0 0;display:grid;gap:26px}.guide li{display:flex;gap:14px}.guide li>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:white;font-weight:800}.guide p{color:var(--muted);margin:5px 0;line-height:1.5}dialog{border:0;border-radius:18px;width:min(580px,92%);padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(11,35,29,.55)}dialog form{padding:28px}.dialog-head{display:flex;justify-content:space-between}.dialog-head h2{margin:0}.close{border:0;background:none;font-size:26px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:25px 0}.wide{grid-column:1/-1}.toast{position:fixed;right:22px;bottom:22px;background:#143f35;color:white;padding:14px 18px;border-radius:10px;z-index:20;transform:translateY(100px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}@media(max-width:900px){.app{grid-template-columns:76px 1fr}.app>aside{width:76px;padding:22px 12px}.logo div,.nav span,.aside-foot>div:not(.avatar),.aside-foot button{display:none}.logo>span{margin:auto}.nav{font-size:19px;text-align:center}.hero{padding:35px}.stats{grid-template-columns:1fr 1fr}.grid,.import-grid{grid-template-columns:1fr}main{grid-column:2}}@media(max-width:640px){.app{display:block}.app>aside{transform:translateX(-100%);z-index:15;width:240px;transition:.25s}.app>aside.open{transform:none}.logo div,.nav span,.aside-foot>div:not(.avatar),.aside-foot button{display:block}.menu{display:block;border:0;background:none;font-size:22px}main{padding:0 16px 35px}header{height:78px}.header-actions .date-pill{display:none}.hero{padding:28px 23px;min-height:300px;align-items:flex-start}.hero-date{position:absolute;bottom:22px}.stats{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.section-head{align-items:flex-start;gap:18px;flex-direction:column}.filters{flex-wrap:wrap}.login{grid-template-columns:1fr}.login-art{display:none}.login-card{min-height:100vh;align-content:center}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}}
/* Application ownership */
.site-footer{padding:22px 28px;text-align:center;color:#687b75;font-size:.78rem;letter-spacing:.02em}
.badge.off{background:#ecefee;color:#63706c}
