:root{
  --bg:#eef2f7;
  --card:#ffffff;
  --card2:#f8fafc;
  --text:#111827;
  --muted:#6b7280;
  --border:#e5e7eb;
  --dark:#101827;
  --blue:#2563eb;
  --blue2:#dbeafe;
  --green:#087443;
  --green-bg:#dcfce7;
  --red:#b42318;
  --red-bg:#fee2e2;
  --amber:#b45309;
  --amber-bg:#fef3c7;
  --violet:#6d28d9;
  --violet-bg:#ede9fe;
  --shadow:0 18px 45px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(135deg,#eef2f7 0%,#f8fafc 45%,#eef6ff 100%);color:var(--text);font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;font-size:15px;line-height:1.45}
a{color:inherit;text-decoration:none}.muted{color:var(--muted);font-size:13px}.main{margin-left:270px;min-height:100vh}.container{max-width:1380px;margin:0 auto;padding:28px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;background:#0f172a;color:#fff;padding:22px;display:flex;flex-direction:column;z-index:20;box-shadow:12px 0 35px rgba(15,23,42,.18)}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand-mark{width:42px;height:42px;border-radius:15px;background:linear-gradient(135deg,#60a5fa,#a78bfa);display:grid;place-items:center;font-weight:900}.brand strong{display:block;font-size:17px}.brand span{color:#cbd5e1;font-size:12px}.side-nav{display:flex;flex-direction:column;gap:8px}.side-nav a{padding:12px 14px;border-radius:14px;color:#e5e7eb;font-weight:700}.side-nav a:hover{background:rgba(255,255,255,.08)}.sidebar-note{margin-top:auto;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.06)}.sidebar-note span{font-weight:800}.sidebar-note small{display:block;color:#cbd5e1;margin-top:4px}.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:16px 28px;display:flex;justify-content:space-between;align-items:center}.topbar strong{display:block}.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.page-head h1{font-size:34px;letter-spacing:-.04em;margin:0 0 6px}.page-head p{margin:0}.inline-form{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{width:auto;min-width:110px}.wide-inline select{min-width:260px}.actions{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.flash{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;padding:13px 15px;border-radius:16px;margin-bottom:18px;box-shadow:var(--shadow)}button,.button{border:0;background:#111827;color:#fff;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer;display:inline-block;box-shadow:0 8px 18px rgba(17,24,39,.12)}button:hover,.button:hover{transform:translateY(-1px)}button.secondary,.button.secondary{background:#e5e7eb;color:#111827;box-shadow:none}button.soft,.button.soft{background:#eff6ff;color:#1d4ed8;box-shadow:none}.small{font-size:12px;padding:7px 10px;border-radius:10px}.danger{background:var(--red)}input,select,textarea{border:1px solid var(--border);border-radius:12px;padding:10px 12px;width:100%;background:#fff;color:var(--text)}textarea{min-height:92px}label{display:flex;flex-direction:column;gap:6px;font-weight:800}.check{flex-direction:row;align-items:center}.check input{width:auto}.panel{background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:22px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.panel h2{margin:0 0 14px;font-size:21px;letter-spacing:-.02em}.panel h3{margin:16px 0 10px}.danger-panel{border-color:#fecaca;background:#fff7f7}.warn-panel{border-color:#fcd34d;background:#fffbeb}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cards{display:grid;grid-template-columns:repeat(7,1fr);gap:13px;margin-bottom:20px}.card{background:rgba(255,255,255,.94);border:1px solid var(--border);border-radius:22px;padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.card:after{content:"";position:absolute;right:-22px;top:-28px;width:80px;height:80px;background:#eff6ff;border-radius:999px}.card span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.card strong{font-size:28px;letter-spacing:-.04em}.card.good{background:linear-gradient(135deg,#fff,#ecfdf5)}.card.bad{background:linear-gradient(135deg,#fff,#fef2f2)}.mini-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 0 20px}.mini{padding:14px;border:1px solid var(--border);border-radius:18px;background:#fff}.mini span{display:block;color:var(--muted);font-size:12px;font-weight:800}.mini strong{font-size:20px}.six-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:11px}.month-box{border:1px solid var(--border);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:8px;background:#fff}.month-box.good{background:var(--green-bg)}.month-box.bad{background:var(--red-bg)}.progress{height:9px;border-radius:999px;background:#e5e7eb;overflow:hidden}.progress > i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#06b6d4);width:0}.bar-good > i{background:linear-gradient(90deg,#16a34a,#86efac)}.bar-bad > i{background:linear-gradient(90deg,#dc2626,#fb7185)}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:18px;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 10px;vertical-align:top}th{font-size:11px;text-transform:uppercase;color:#64748b;background:#f8fafc;letter-spacing:.06em}tr:last-child td{border-bottom:0}.active-row{background:#eff6ff}.pill{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:900}.pill.internal{background:var(--violet-bg);color:var(--violet)}.pill.external{background:var(--blue2);color:#1d4ed8}.pill.ok{background:var(--green-bg);color:var(--green)}.pill.bad{background:var(--red-bg);color:var(--red)}.pill.warn{background:var(--amber-bg);color:var(--amber)}.text-bad{color:var(--red);font-weight:900}.text-good{color:var(--green);font-weight:900}.row-holiday,.row-vacation,.row-sick{background:var(--red-bg)}.row-half_holiday{background:var(--amber-bg)}.row-missing{background:#fff1f2}.row-weekend_holiday{background:#f3f4f6;color:#6b7280}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-grid hr,.form-grid h2,.form-grid .full,.form-grid button{grid-column:1/-1}.help-text{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:12px;color:#475569}.alert-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #fecaca}.day-link{font-weight:900;color:#1d4ed8}.chart-bars{display:flex;gap:8px;align-items:end;height:145px;padding:10px 4px}.chart-bars a{flex:1;display:flex;flex-direction:column;justify-content:end;gap:6px;height:100%;min-width:0}.chart-bars b{display:block;border-radius:10px 10px 4px 4px;min-height:3px;background:linear-gradient(180deg,#60a5fa,#2563eb)}.chart-bars small{text-align:center;font-size:10px;color:#64748b}.split-line{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#ede9fe}.split-line i:first-child{background:#2563eb}.split-line i:last-child{background:#7c3aed}.nowrap{white-space:nowrap}.scroll-x{overflow-x:auto}.empty{padding:20px;border:1px dashed var(--border);border-radius:18px;color:var(--muted);background:#fff}.profile-grid{display:grid;grid-template-columns:80px 1.2fr 1.4fr 100px 120px 130px 1.5fr auto;gap:8px;align-items:end}.profile-grid label{font-size:12px}.profile-grid input{padding:8px 9px;border-radius:10px}.calendar-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.holiday-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:14px;display:flex;justify-content:space-between;gap:10px}.holiday-card.full{border-color:#fecaca;background:#fff7f7}.holiday-card.half{border-color:#fcd34d;background:#fffbeb}@media(max-width:1100px){.main{margin-left:0}.sidebar{position:static;width:auto;flex-direction:row;align-items:center;gap:14px;overflow-x:auto}.side-nav{flex-direction:row}.sidebar-note{display:none}.cards{grid-template-columns:repeat(2,1fr)}.mini-cards{grid-template-columns:repeat(2,1fr)}.six-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.container{padding:16px}.page-head,.topbar{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.days,.scroll-x{display:block;overflow-x:auto}.calendar-list{grid-template-columns:1fr}}

/* v1.8 modern charts refresh */
body{background:radial-gradient(circle at top left,#dbeafe 0,#f8fafc 34%,#eef2f7 100%)}
.sidebar{background:linear-gradient(180deg,#020617 0%,#111827 55%,#172554 100%)}
.brand-mark{box-shadow:0 14px 30px rgba(96,165,250,.33)}
.side-nav a{transition:all .18s ease;border:1px solid transparent}.side-nav a:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.13);transform:translateX(2px)}
.topbar{box-shadow:0 12px 35px rgba(15,23,42,.06)}
.page-head{padding:22px;border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(239,246,255,.92));border:1px solid rgba(191,219,254,.7);box-shadow:var(--shadow)}
.page-head h1{font-size:38px}.panel,.card{backdrop-filter:blur(12px)}
.card{transition:transform .16s ease, box-shadow .16s ease}.card:hover{transform:translateY(-2px);box-shadow:0 22px 55px rgba(15,23,42,.11)}
.cards{grid-template-columns:repeat(7,minmax(120px,1fr))}.card strong{font-variant-numeric:tabular-nums}
.analytics-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-bottom:20px}.analytics-grid .wide{grid-column:span 1}.viz-panel{overflow:hidden}.panel-headline{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.panel-headline h2{margin-bottom:2px}.panel-headline p{margin:0}.daily-chart{height:210px;display:flex;align-items:flex-end;gap:6px;padding:16px 8px 8px;border-radius:20px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--border)}.daily-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;min-width:12px}.daily-bar i{display:block;width:100%;border-radius:9px 9px 5px 5px;background:linear-gradient(180deg,#60a5fa,#2563eb);min-height:4px;transition:height .2s ease}.daily-bar.missing i{background:linear-gradient(180deg,#fb7185,#dc2626)}.daily-bar.holiday i,.daily-bar.vacation i,.daily-bar.sick i,.daily-bar.half_holiday i{background:linear-gradient(180deg,#fbbf24,#f59e0b)}.daily-bar.weekend_holiday i,.daily-bar.normal[title*="saldo 0:00"] i{background:#cbd5e1}.daily-bar small{text-align:center;font-size:10px;color:#64748b}.legend-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;color:#64748b;font-size:12px;font-weight:800}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:6px;vertical-align:-1px}.legend-dot.blue{background:#2563eb}.legend-dot.red{background:#dc2626}.legend-dot.amber{background:#f59e0b}.legend-dot.violet{background:#7c3aed}.donut-wrap{display:flex;align-items:center;gap:18px;min-height:210px}.donut{width:168px;height:168px;border-radius:50%;background:conic-gradient(#2563eb 0 var(--ext),#7c3aed var(--ext) 100%);display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 18px 35px rgba(37,99,235,.14)}.donut:after{content:"";position:absolute;inset:24px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px var(--border)}.donut span{position:relative;z-index:1;font-size:28px;font-weight:950;letter-spacing:-.04em}.donut-legend{display:flex;flex-direction:column;gap:10px}.donut-legend strong{display:block;font-size:20px}.hbar-list{display:flex;flex-direction:column;gap:12px}.hbar-row{display:grid;grid-template-columns:minmax(160px,1.5fr) 2fr 72px;gap:12px;align-items:center}.hbar-title span{display:block;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-title small{color:#64748b}.hbar-track{height:12px;border-radius:999px;background:#e5e7eb;overflow:hidden}.hbar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb)}.hbar-track i.internal{background:linear-gradient(90deg,#a78bfa,#7c3aed)}.hbar-row strong{text-align:right;font-variant-numeric:tabular-nums}.month-chart{height:250px;display:grid;grid-template-columns:repeat(12,1fr);gap:10px;padding:16px;border:1px solid var(--border);border-radius:22px;background:#fff}.month-chart a{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.month-bar-wrap{height:170px;width:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}.month-bar{display:flex;align-items:flex-end;justify-content:center;width:70%;min-height:4px;border-radius:12px 12px 5px 5px;background:linear-gradient(180deg,#60a5fa,#2563eb);overflow:hidden;box-shadow:0 12px 24px rgba(37,99,235,.16)}.month-bar i{display:block;width:100%;background:linear-gradient(180deg,#c4b5fd,#7c3aed)}.target-line{position:absolute;left:8%;right:8%;bottom:82%;border-top:2px dashed #94a3b8}.month-chart small{color:#64748b;font-weight:900}.month-chart span{font-size:11px;font-weight:900}.empty{background:linear-gradient(135deg,#fff,#f8fafc)}
@media(max-width:1250px){.cards{grid-template-columns:repeat(3,1fr)}.analytics-grid{grid-template-columns:1fr}.hbar-row{grid-template-columns:1fr}.hbar-row strong{text-align:left}.donut-wrap{flex-direction:column;align-items:flex-start}.month-chart{grid-template-columns:repeat(6,1fr);height:auto}.month-bar-wrap{height:120px}}
@media(max-width:720px){.cards{grid-template-columns:1fr}.mini-cards{grid-template-columns:1fr}.daily-chart{gap:3px}.daily-bar small{font-size:9px}.month-chart{grid-template-columns:repeat(3,1fr)}.page-head h1{font-size:30px}}
/* v1.9 clarity fixes */
.info-panel{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#ffffff)}
.small-muted{font-size:12px;margin-top:-6px;margin-bottom:12px}.quick-period-badge{font-size:12px;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:4px 9px;display:inline-block}.row-normal:hover,.row-missing:hover,.row-holiday:hover,.row-vacation:hover,.row-sick:hover,.row-half_holiday:hover{filter:brightness(.985)}

/* v2.2 workflow + visual refinements */
.side-nav a:first-child{background:rgba(255,255,255,.08)}
.inline-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.inline-form label input,.inline-form label select{min-height:42px}.sticky-choice{align-items:flex-end}.dashboard-cards{grid-template-columns:repeat(6,minmax(135px,1fr))}.dashboard-cards .card:nth-child(3) strong{text-transform:none}.mini.clickable{display:block;color:inherit;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.mini.clickable:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.08)}
.donut-panel{display:flex;flex-direction:column}.donut-wrap{align-items:center;justify-content:center}.donut-wrap.compact{min-height:180px}.donut{width:min(178px,100%);aspect-ratio:1/1;height:auto;flex:0 0 auto;border-radius:50%;background:conic-gradient(#7c3aed 0 var(--int),#2563eb var(--int) 100%);display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 18px 35px rgba(37,99,235,.12)}.donut:after{content:"";position:absolute;inset:24px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px var(--border)}.donut span{position:relative;z-index:1;font-size:28px;font-weight:950;letter-spacing:-.04em}.curve-chart{width:100%;height:240px;display:block;border:1px solid var(--border);border-radius:22px;background:linear-gradient(180deg,#f8fafc,#fff);padding:4px}.curve-chart.big{height:270px}.curve{fill:none;stroke-width:6;stroke-linecap:round;filter:drop-shadow(0 8px 10px rgba(15,23,42,.08))}.curve.external{stroke:url(#curveExternal)}.curve.internal{stroke:url(#curveInternal)}.trend-panel .curve.external{stroke:url(#curveExternal)}.trend-panel .curve.internal{stroke:url(#curveInternal)}.chart-grid-line{stroke:#cbd5e1;stroke-width:1.5;stroke-dasharray:5 7}.curve-label{font-size:12px;font-weight:900;fill:#64748b}.compact-six{margin-top:14px;grid-template-columns:repeat(3,1fr)}.compact-six .month-box{padding:12px}.missing-days-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.missing-days-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #fecaca;background:#fff7f7;border-radius:16px;padding:12px;color:#991b1b}.missing-days-list span{color:#64748b;font-weight:900}.missing-days-list em{font-style:normal;font-weight:950}.period-form{grid-template-columns:repeat(7,minmax(90px,1fr));display:grid}.dynamic-month-chart{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));height:auto;min-height:250px}.dynamic-month-chart .month-bar-wrap{height:170px}.cards .card span{text-transform:uppercase;letter-spacing:.05em}.daily-bar i,.hbar-track i,.month-bar,.curve{transition:all .2s ease}.daily-bar:hover i{filter:brightness(1.05);transform:translateY(-2px)}
@media(max-width:1250px){.dashboard-cards{grid-template-columns:repeat(3,1fr)}.period-form{grid-template-columns:repeat(2,1fr)}.compact-six{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.dashboard-cards{grid-template-columns:1fr}.period-form{grid-template-columns:1fr}.compact-six{grid-template-columns:1fr}.curve{stroke-width:5}.donut{width:150px}}

/* v2.3 dashboard layout corrections */
.card:after{display:none!important}
.dashboard-cards{grid-template-columns:repeat(7,minmax(125px,1fr))!important}
.dashboard-cards .card{min-height:104px}
.status-panel{align-self:stretch}
.status-panel .progress{margin:18px 0 10px;height:12px}
.full-width-trend{width:100%;margin-top:0}
.full-width-trend .curve-chart{height:300px}
.full-six{grid-template-columns:repeat(6,minmax(120px,1fr))!important}
@media(max-width:1250px){.dashboard-cards{grid-template-columns:repeat(3,1fr)!important}.full-six{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:720px){.dashboard-cards{grid-template-columns:1fr!important}.full-six{grid-template-columns:1fr!important}.full-width-trend .curve-chart{height:240px}}
