:root{--green:#14744a;--green-dark:#0d5736;--cream:#fbf9f4;--ink:#18221e;--muted:#647068;--line:#dce4df;--red:#b42318;--red-bg:#fee4e2;--lipa:#e8f3ec;--eden:#e9f0ff;--external:#f2edf8;--absence:#fff0e8}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 85% 10%,#dcefe4,transparent 30%),var(--cream)}.login-card{width:min(440px,100%);padding:36px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 18px 55px #19332518}.brand-logo{width:100%;max-height:160px;object-fit:contain;margin-bottom:18px}.eyebrow{margin:0 0 5px;color:var(--green);font-size:.72rem;font-weight:800;letter-spacing:.12em}.login-card h1,.title-row h1{margin:0;font-size:clamp(1.8rem,4vw,2.5rem);letter-spacing:-.04em}.muted,.status{color:var(--muted)}form{display:grid;gap:15px;margin-top:26px}label{display:grid;gap:7px;font-weight:650;font-size:.9rem}input,select{width:100%;border:1px solid #b9c5be;border-radius:10px;padding:12px 13px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:3px solid #c5e7d3;border-color:var(--green)}.remember{display:flex;align-items:center;gap:9px;font-weight:500}.remember input{width:auto}.button{border:0;border-radius:10px;padding:12px 16px;cursor:pointer;font-weight:750}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.secondary{background:#eef2ef;color:var(--ink)}.danger{background:#fff;color:var(--red);border:1px solid #efb4ae}.link{color:var(--green);background:transparent;padding:6px}.form-error{margin:0;color:var(--red);font-weight:650}.topbar{height:68px;padding:0 clamp(16px,4vw,52px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brand,.account{display:flex;align-items:center;gap:10px;font-weight:800}.brand small{font-size:.72rem;color:var(--muted);font-weight:600}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--green);color:#fff}.page{max-width:1580px;margin:auto;padding:34px clamp(16px,4vw,52px)}.title-row{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}.filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:15px;background:#fff}.segmented{display:flex;padding:3px;background:#eef2ef;border-radius:9px}.segmented button{border:0;background:transparent;border-radius:7px;padding:8px 11px;cursor:pointer;font-weight:700}.segmented .selected{background:#fff;color:var(--green);box-shadow:0 1px 3px #0002}.period{display:flex;align-items:center;gap:10px;padding:0 4px}.period strong{min-width:168px;text-align:center}.icon-button{border:0;width:32px;height:32px;border-radius:8px;background:#edf2ee;font-size:1.5rem;line-height:1;cursor:pointer}.select-label{display:flex;align-items:center;gap:8px;font-weight:600}.select-label select{width:auto;padding:8px}.status{margin:15px 0}.coverage{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin:0 0 15px}.warning{padding:11px 13px;border-radius:10px;background:var(--red-bg);color:#7a271a;font-size:.9rem;font-weight:650}.calendar-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.calendar{min-width:900px}.calendar-grid{display:grid;grid-template-columns:190px repeat(var(--days),minmax(72px,1fr))}.cell{min-height:77px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px}.header-cell{position:sticky;top:68px;background:#f5f8f6;z-index:2;min-height:57px;font-weight:800;text-align:center}.header-cell.weekend{background:#f0f1f4}.header-cell.today{box-shadow:inset 0 -3px var(--green)}.name-cell{position:sticky;left:0;background:#fff;z-index:1;display:flex;align-items:center;gap:9px;font-weight:700}.name-cell small{color:var(--muted);font-weight:600}.corner{z-index:3;background:#f5f8f6}.day-cell{background:#fff}.day-cell.weekend{background:#fafafa}.day-cell.holiday{background:#fff8d8}.shift{display:block;width:100%;border:0;border-left:3px solid;padding:5px 5px 5px 7px;margin:0 0 4px;text-align:left;border-radius:5px;font-size:.74rem;line-height:1.25;cursor:pointer;color:var(--ink)}.shift.lipa{background:var(--lipa);border-color:#4d9a69}.shift.eden{background:var(--eden);border-color:#547cc6}.shift.external{background:var(--external);border-color:#8f72b5}.shift.absence{background:var(--absence);border-color:#dc7f45}.shift strong{display:block}.shift small{color:#42524a}.day-cell.admin:hover{background:#f3fbf6;cursor:cell}.tag{display:inline-block;margin:0 4px 0 11px;padding:2px 5px;border-radius:4px;font-size:.75rem;font-weight:800}.tag:first-child{margin-left:0}.tag.lipa{background:var(--lipa)}.tag.eden{background:var(--eden)}.tag.external{background:var(--external)}.tag.absence{background:var(--absence)}.legend{font-size:.83rem;color:var(--muted)}dialog{width:min(610px,calc(100% - 28px));border:0;border-radius:18px;padding:0;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#15271d66}dialog form{margin:0;padding:24px}.dialog-title{display:flex;justify-content:space-between;align-items:start}.dialog-title h2{margin:0}.close{border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.wide{grid-column:1/-1}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;margin-top:8px}@media(max-width:720px){.topbar{height:60px}.brand small{display:none}.page{padding-top:22px}.title-row{align-items:start}.filters{align-items:stretch}.period{order:-1;justify-content:space-between;width:100%}.period strong{min-width:0}.select-label{justify-content:space-between;width:100%}.select-label select{width:63%}.calendar{min-width:700px}.calendar-grid{grid-template-columns:130px repeat(var(--days),minmax(64px,1fr))}.header-cell{top:60px}.cell{min-height:68px;padding:5px}.shift{font-size:.68rem}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.dialog-actions{grid-template-columns:1fr 1fr}.dialog-actions span{display:none}.dialog-actions .danger{grid-column:1/-1}}
