:root {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #1e2436;
  background: #f4f5f2;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #f4f5f2; }
body { min-height: 100vh; margin: 0; background: #f4f5f2; }
a { color: #536052; }

.topbar {
  min-height: 68px;
  background: #111;
  color: #fff;
}

.topbar-inner,
.nav-inner {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
}

.topbar-inner {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.brand strong { font-size: 1rem; }
.account { text-align: right; }
.topbar a { color: #dcaf7b; text-underline-offset: 3px; }

.badge,
.eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 4px 9px;
  border-radius: 999px;
  background: #79897c;
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
}

.nav-shell {
  background: #fff;
  border-bottom: 1px solid #e1e4dd;
  box-shadow: 0 1px 0 rgba(30, 36, 54, .02);
}

.nav-inner {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.nav-inner a {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 9px 13px;
  border-radius: 9px;
  color: #30384a;
  text-decoration: none;
  font-weight: 650;
  white-space: nowrap;
}

.nav-inner a:hover,
.nav-inner a.active {
  background: #eef1ec;
  color: #111;
}

main {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
  padding: 32px 0;
}

.login { min-height: 100vh; display: grid; place-items: center; }

.hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 36px;
  margin-bottom: 24px;
  border: 1px solid #e1e4dd;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(30, 36, 54, .04);
}

.hero h1 { margin: .45rem 0; font-size: clamp(2rem, 4vw, 2.7rem); line-height: 1.08; }
.hero p,
.muted { color: #697285; }
.hero p { margin: 0; }

.stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.stat {
  min-width: 0;
  padding: 22px;
  border: 1px solid #e1e4dd;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(30, 36, 54, .035);
}

.stat strong { display: block; margin-bottom: 4px; font-size: 2rem; line-height: 1; }
.stat span { color: #697285; }

.card {
  padding: 26px;
  border: 1px solid #e1e4dd;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(30, 36, 54, .05);
}

.form-card { max-width: 980px; margin: 0 auto; }

.button,
button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 11px 17px;
  border: 0;
  border-radius: 10px;
  background: #79897c;
  color: #fff;
  text-decoration: none;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.button:hover,
button:hover { opacity: .92; }

.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.section-head h1,
.section-head h2 { margin: 0; }
.section-head a { color: #536052; }

.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th,
td { padding: 13px 12px; border-bottom: 1px solid #eceeea; text-align: left; vertical-align: top; }
th { color: #697285; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
td small { display: block; margin-top: 3px; color: #7a8290; }
tbody tr:last-child td { border-bottom: 0; }

.actions { display: flex; gap: 10px; justify-content: flex-end; white-space: nowrap; }
.actions form,
.tag form { display: inline; }
.link { min-height: 0; padding: 0; background: none; color: #536052; font-weight: 650; }
.danger { color: #a34343; }

.status {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef1ec;
  font-size: .78rem;
}
.status-active,
.status-completed { background: #e9f6eb; color: #256233; }
.status-concept { background: #f2f2f2; }
.status-on_hold { background: #fff4d9; color: #805d08; }
.status-cancelled,
.status-inactive,
.status-archived { background: #f8e8e8; color: #8d3333; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-grid .full { grid-column: 1 / -1; }
label { display: flex; flex-direction: column; gap: 7px; font-weight: 650; }
input,
select,
textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #cbd2da;
  border-radius: 9px;
  background: #fff;
  font: inherit;
}
textarea { min-height: 110px; resize: vertical; }
input:focus,
select:focus,
textarea:focus { outline: 3px solid rgba(121, 137, 124, .18); border-color: #79897c; }
.check { flex-direction: row; align-items: center; font-weight: 500; }
.check input { width: auto; }
.check small { display: block; color: #7a8290; }

.filters { display: flex; gap: 10px; margin: 0 0 18px; }
.filters input,
.filters select { max-width: 320px; }
.filters button { background: #1e2436; }

.notice { padding: 13px 16px; margin-bottom: 18px; border-radius: 10px; }
.notice.success { border: 1px solid #b9dfbf; background: #edf7ef; color: #225b2c; }
.notice.error { border: 1px solid #efb7b7; background: #fff0f0; color: #842323; }

.split { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 20px; }
.color-dot { display: inline-block; width: 12px; height: 12px; margin-right: 8px; border-radius: 50%; background: var(--dot); }
.tag-list { display: flex; flex-wrap: wrap; gap: 10px; }
.tag { display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px; border-left: 5px solid var(--tag); border-radius: 999px; background: #f5f6f4; }
.tag button { min-height: 0; padding: 0; background: none; color: #666; font-size: 1.1rem; }
.member-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
fieldset { padding: 14px; border: 1px solid #dfe3dd; border-radius: 10px; }
legend { font-weight: 700; }

footer { width: min(1240px, calc(100% - 48px)); margin: 0 auto; padding: 8px 0 30px; color: #667085; text-align: center; }

@media (max-width: 800px) {
  .topbar-inner,
  .nav-inner,
  main,
  footer { width: min(100% - 28px, 1240px); }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid,
  .split,
  .member-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .hero,
  .section-head { align-items: flex-start; flex-direction: column; }
  .filters { flex-direction: column; }
  .filters input,
  .filters select { max-width: none; }
  .account { font-size: .85rem; }
}

@media (max-width: 520px) {
  .topbar-inner { align-items: flex-start; flex-direction: column; gap: 6px; padding: 14px 0; }
  .account { text-align: left; }
  .stats { grid-template-columns: 1fr; }
  .hero,
  .card,
  .stat { padding: 20px; }
  main { padding-top: 22px; }
}

/* Fase 3: tijdregistratie */
.timer-card { margin-bottom: 24px; }
.timer-card > div { flex: 1; }
.timer-card, .timer-form { display: flex; align-items: end; gap: 14px; }
.timer-form { width: 100%; display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 1.5fr auto; }
.timer-description { min-width: 0; }
.live-timer { display: block; margin-top: 10px; font-size: 2.1rem; font-variant-numeric: tabular-nums; }
.danger-button { background: #a34343; }
.stats-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.view-actions, .period-nav { display: flex; align-items: center; gap: 8px; }
.view-actions a, .period-nav a { padding: 8px 11px; border-radius: 8px; text-decoration: none; font-weight: 700; }
.view-actions a.active, .view-actions a:hover, .period-nav a:hover { background: #eef1ec; }
.period-nav { justify-content: center; margin: -4px 0 18px; }
.tag-checkboxes { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.empty-state { padding: 24px 0 8px; text-align: center; }
.status-draft { background:#edf1f7;color:#40506a; }
.status-submitted { background:#fff4d9;color:#805d08; }
.status-approved, .status-locked, .status-invoiced { background:#e9f6eb;color:#256233; }
.status-rejected { background:#f8e8e8;color:#8d3333; }
@media (max-width: 1000px){.timer-form{grid-template-columns:repeat(2,minmax(0,1fr));}.timer-form button{align-self:end}.timer-card{align-items:stretch;}}
@media (max-width: 700px){.timer-card,.timer-form{display:flex;flex-direction:column;align-items:stretch}.stats-3{grid-template-columns:1fr}.view-actions{width:100%}.section-head .view-actions{justify-content:flex-start}.period-nav{justify-content:space-between}.actions{flex-wrap:wrap;justify-content:flex-start}}

/* Fase 4: rapportering en goedkeuringen */
.report-filters { display:grid; grid-template-columns:repeat(6,minmax(130px,1fr)); gap:14px; align-items:end; }
.filter-buttons { display:flex; gap:8px; grid-column:1/-1; }
.secondary { background:#eef1ec; color:#354036; }
.stats-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.approval-filters { align-items:end; flex-wrap:wrap; }
.approval-filters label { min-width:180px; }
.bulk-bar { display:grid; grid-template-columns:auto auto minmax(240px,1fr) auto; gap:14px; align-items:end; margin-bottom:18px; padding:14px; border-radius:12px; background:#f5f6f4; }
.bulk-bar > div { display:flex; gap:8px; }
.notification-list { display:grid; gap:10px; }
.notification-list article { padding:14px; border:1px solid #e2e6e0; border-radius:10px; }
.notification-list p { margin:5px 0; }
.notification-list small { color:#7a8290; }
@media(max-width:1050px){.report-filters{grid-template-columns:repeat(3,minmax(0,1fr));}.bulk-bar{grid-template-columns:1fr 1fr}.stats-4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.report-filters,.bulk-bar{grid-template-columns:1fr}.filter-buttons,.bulk-bar>div{flex-direction:column}.stats-4{grid-template-columns:1fr}}

/* Fase 5: budgetbewaking en facturatie */
.budget-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.budget-card { padding:20px; border:1px solid #e1e4dd; border-radius:14px; background:#fbfcfa; }
.budget-card small { display:block; margin-top:3px; color:#7a8290; }
.progress { height:10px; margin:16px 0; overflow:hidden; border-radius:999px; background:#e6e9e3; }
.progress span { display:block; height:100%; border-radius:inherit; background:#79897c; }
.budget-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.budget-metrics span { color:#697285; font-size:.85rem; }
.budget-metrics strong { display:block; color:#1e2436; font-size:1rem; }
.budget-alert { margin-top:14px; padding:10px 12px; border-radius:9px; font-weight:700; }
.info-alert { background:#eef3f7; color:#40506a; }
.warning-alert { background:#fff4d9; color:#805d08; }
.danger-alert { background:#f8e8e8; color:#8d3333; }
.phase5-split { margin-top:24px; grid-template-columns:minmax(0,2fr) minmax(320px,1fr); }
.one-column { grid-template-columns:1fr; }
.batch-actions { display:flex; gap:10px; align-items:end; margin:18px 0; }
.batch-actions input { max-width:360px; }
.status-ready,.status-in_batch { background:#fff4d9;color:#805d08; }
.status-invoiced { background:#e9f6eb;color:#256233; }
.status-cancelled { background:#f8e8e8;color:#8d3333; }
@media(max-width:900px){.budget-grid,.phase5-split{grid-template-columns:1fr}.budget-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){.budget-metrics{grid-template-columns:1fr}.batch-actions{align-items:stretch;flex-direction:column}.batch-actions input{max-width:none}}


/* Fase 6: planning, capaciteit en Gantt */
.planning-tabs{margin:0 0 18px;flex-wrap:wrap}.planning-week{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:10px;overflow-x:auto}.planning-week>article{min-height:210px;padding:14px;border:1px solid #e1e4dd;border-radius:12px;background:#fbfcfa}.planning-week h3{margin:0 0 12px;font-size:.95rem}.allocation{position:relative;display:grid;gap:3px;margin-bottom:9px;padding:10px;border-left:4px solid #79897c;border-radius:8px;background:#eef1ec}.allocation span,.allocation small{font-size:.82rem;color:#667085}.allocation form{position:absolute;right:7px;top:4px}.capacity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.capacity-card{padding:18px;border:1px solid #e1e4dd;border-radius:12px}.capacity-card>div:first-child{display:flex;justify-content:space-between;gap:12px}.capacity-card.overbooked{border-color:#e2a7a7;background:#fff8f8}.capacity-card.overbooked .progress span{background:#a34343}.gantt{overflow:hidden;border:1px solid #dfe3dd;border-radius:12px}.gantt-head,.gantt-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,2fr);gap:16px;padding:12px 14px;border-bottom:1px solid #e7e9e4}.gantt-head{background:#f2f4f0;font-weight:800}.gantt-row:last-child{border-bottom:0}.gantt-row small{display:block;margin-top:4px;color:#7a8290}.phase-row{background:#f7f8f5}.milestone-row{background:#fffaf0}.timeline-bar{display:block;height:12px;overflow:hidden;border-radius:999px;background:#e6e9e3}.timeline-bar i{display:block;width:var(--progress);height:100%;background:#79897c}.text-danger{color:#a34343}.status-open{background:#edf1f7;color:#40506a}.status-completed{background:#e9f6eb;color:#256233}
@media(max-width:1000px){.capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-week{grid-template-columns:repeat(7,190px)}}
@media(max-width:650px){.capacity-grid{grid-template-columns:1fr}.gantt-head,.gantt-row{grid-template-columns:1fr}.planning-tabs{display:grid;grid-template-columns:1fr 1fr}}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.5rem 1rem}.account span{display:block;font-size:.78rem;opacity:.72}.notice input[readonly]{width:100%;margin-top:.75rem}.button.secondary{background:#fff;color:#536052;border:1px solid #cbd2cc}


/* Fase 7.2: platformbeheer en gecontroleerde klantweergave */
.impersonation-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px max(24px,calc((100% - 1240px)/2));background:#fff4d9;border-bottom:1px solid #e6cf8d;color:#634b0b}.impersonation-banner form{margin:0}.small-button{min-height:36px;padding:8px 12px;white-space:nowrap}.impersonation-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,.7fr) auto;gap:8px;align-items:center;min-width:520px}.impersonation-form select{min-width:0}.block-muted{display:block;margin-top:4px;color:#7a8290}.notice.info{border:1px solid #cbd8e4;background:#eef3f7;color:#40506a}.notice.info p{margin:.4rem 0 0}.table-wrap{overflow-x:auto}
@media(max-width:900px){.impersonation-banner{align-items:flex-start;flex-direction:column;padding:12px 20px}.impersonation-form{grid-template-columns:1fr;min-width:280px}}
:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f6f7f4;color-scheme:light;--ink:#172033;--muted:#6b7280;--line:#e4e8e1;--surface:#fff;--surface-soft:#f7f8f5;--green:#788a7a;--green-dark:#20382c;--green-deep:#101c17;--gold:#dcaf7b;--danger:#b44747;--sidebar:272px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:#f6f7f4}a{color:#506654}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:var(--sidebar);display:flex;flex-direction:column;padding:24px 15px 16px;background:linear-gradient(165deg,#14221c 0%,#0d1713 100%);color:#fff;box-shadow:8px 0 30px rgba(16,28,23,.12);overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 12px 22px}.sidebar-brand>span:last-child{display:flex;flex-direction:column;line-height:1}.sidebar-brand strong{font-size:1.35rem;letter-spacing:.16em}.sidebar-brand small{margin-top:5px;font-size:.61rem;letter-spacing:.28em;color:#dfe5df}.nova-mark{display:grid;place-items:center;width:43px;height:43px;border:1px solid rgba(220,175,123,.75);border-radius:50%;color:var(--gold);font-size:1.65rem}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-nav a,.portal-shortcut{display:flex;align-items:center;gap:12px;min-height:43px;padding:10px 13px;border-radius:9px;color:#eef3ef;text-decoration:none;font-size:.91rem;font-weight:600;transition:.18s ease}.sidebar-nav a:hover,.sidebar-nav a.active{background:linear-gradient(90deg,#849686,#6f8172);color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.14)}.nav-icon{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-group-title{margin:19px 13px 6px;color:#aebbb2;font-size:.64rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.portal-shortcut{margin-top:auto;background:#09110e;border:1px solid rgba(255,255,255,.05);text-transform:uppercase;letter-spacing:.08em;font-size:.71rem}.portal-shortcut b{margin-left:auto}.sidebar-footer{padding:16px 12px 0;color:#89988e;font-size:.7rem}.app-main{min-height:100vh;margin-left:var(--sidebar);display:flex;flex-direction:column}.app-topbar{position:sticky;top:0;z-index:40;min-height:76px;display:flex;align-items:center;gap:18px;padding:12px 30px;background:rgba(255,255,255,.96);border-bottom:1px solid #edf0eb;backdrop-filter:blur(14px)}.menu-toggle{display:none;width:42px;height:42px;min-height:42px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:1.25rem}.company-switcher{display:flex;align-items:center;gap:12px}.company-switcher>span:last-child,.user-menu>span:nth-child(2){display:flex;flex-direction:column}.company-switcher strong,.user-menu strong{font-size:.92rem}.company-switcher small,.user-menu small{margin-top:2px;color:#747c8b;font-size:.75rem}.company-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e5ebe4;color:#506554}.company-icon .nav-icon{width:21px;height:21px}.topbar-spacer{flex:1}.topbar-help{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;font-weight:800}.user-menu{display:flex;align-items:center;gap:10px}.user-avatar{display:grid!important;place-items:center;width:40px;height:40px;border-radius:50%;background:#dfe7df;color:#314637;font-weight:800}.user-menu>a{margin-left:5px;color:#8b6a43;font-size:.78rem}.content{width:min(1320px,calc(100% - 56px));margin:0 auto;padding:30px 0 44px}.app-footer{margin-top:auto;padding:15px 28px 25px;color:#778071;text-align:center;font-size:.78rem}.impersonation-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 30px;background:#fff0cf;border-bottom:1px solid #ebd39f;color:#5d491f}.impersonation-banner>div{display:flex;flex-direction:column;gap:2px}.impersonation-banner span{font-size:.82rem}.badge,.eyebrow{display:inline-flex;align-items:center;width:fit-content;padding:4px 9px;border-radius:999px;background:#79897c;color:#fff;font-size:.72rem;font-weight:800}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.page-heading h1{margin:0;font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-.035em}.page-heading p{margin:7px 0 0;color:var(--muted)}.date-chip{display:inline-flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#283245;font-weight:650}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.kpi-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;min-height:138px;padding:21px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 25px rgba(21,32,51,.035)}.kpi-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:13px;background:#e5ece4;color:#314d3b}.kpi-card:nth-child(even) .kpi-icon{background:#f8e8c8;color:#8c5c16}.kpi-icon .nav-icon{width:26px;height:26px}.kpi-label{display:block;margin-bottom:7px;color:#697185;font-size:.69rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.kpi-value{display:block;font-size:1.7rem;line-height:1;font-weight:800}.kpi-sub{display:block;margin-top:7px;color:#788091;font-size:.78rem}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.9fr);gap:20px;margin-bottom:20px}.dashboard-panel,.card{padding:0;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 25px rgba(21,32,51,.035);overflow:hidden}.panel-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #edf0eb}.panel-head h2,.section-head h1,.section-head h2{margin:0;font-size:1.05rem}.panel-head a,.section-head a{font-size:.82rem;font-weight:700;text-decoration:none}.panel-body{padding:20px}.week-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;min-height:220px;padding-top:12px}.week-day{display:flex;flex-direction:column;align-items:center;gap:8px;height:190px}.bar-track{position:relative;width:100%;height:145px;border-radius:8px;background:linear-gradient(to top,#f0f2ef 1px,transparent 1px);background-size:100% 29px}.bar-fill{position:absolute;inset:auto 20% 0;min-height:3px;border-radius:7px 7px 3px 3px;background:linear-gradient(#8ea091,#718573)}.week-day strong{font-size:.73rem}.week-day small{color:#737b8a;font-size:.68rem}.deadline-list,.activity-list{display:grid}.deadline-row,.activity-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid #edf0eb}.deadline-row:last-child,.activity-row:last-child{border-bottom:0}.list-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#e8eee7;color:#42604b}.list-icon.alert{background:#fbe4e2;color:#b64242}.deadline-row span,.activity-row span{font-size:.86rem}.deadline-row strong{font-size:.9rem}.empty-state{display:grid;place-items:center;min-height:180px;padding:30px;text-align:center;color:#737b8a}.empty-state .kpi-icon{margin-bottom:10px}.empty-state strong{color:#283245}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:24px}.quick-action{display:flex;flex-direction:column;align-items:center;gap:10px;color:#263245;text-align:center;text-decoration:none;font-size:.78rem;font-weight:650}.quick-action .kpi-icon{width:54px;height:54px}.hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;margin-bottom:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.hero h1{margin:.45rem 0;font-size:clamp(2rem,4vw,2.7rem)}.hero p,.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:21px;border:1px solid var(--line);border-radius:14px;background:#fff}.stat strong{display:block;margin-bottom:5px;font-size:1.8rem}.stat span{color:var(--muted)}.form-card{max-width:980px;margin:0 auto;padding:26px}.button,button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 17px;border:0;border-radius:9px;background:#79897c;color:#fff;text-decoration:none;font:inherit;font-weight:750;cursor:pointer}.button:hover,button:hover{opacity:.92}.small-button{min-height:35px;padding:7px 12px}.table-wrap{width:100%;overflow:auto;padding:0 20px 18px}table{width:100%;border-collapse:collapse}th,td{padding:13px 12px;border-bottom:1px solid #eceeea;text-align:left;vertical-align:top}th{color:#747d8d;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}td small{display:block;margin-top:3px;color:#7a8290}.actions{display:flex;gap:10px;justify-content:flex-end;white-space:nowrap}.actions form,.tag form{display:inline}.link{min-height:0;padding:0;background:none;color:#536052}.danger,.text-danger{color:var(--danger)!important}.status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef1ec;font-size:.75rem}.status-active,.status-completed,.status-approved,.status-invoiced{background:#e9f6eb;color:#256233}.status-concept,.status-draft{background:#f2f2f2}.status-on_hold,.status-submitted,.status-ready{background:#fff4d9;color:#805d08}.status-cancelled,.status-inactive,.status-archived,.status-rejected{background:#f8e8e8;color:#8d3333}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-weight:650}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #cbd2da;border-radius:9px;background:#fff;font:inherit}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(121,137,124,.18);border-color:#79897c}.check{flex-direction:row;align-items:center;font-weight:500}.check input{width:auto}.filters{display:flex;gap:10px;margin:0 0 18px}.notice{padding:13px 16px;margin-bottom:18px;border-radius:10px}.notice.success{border:1px solid #b9dfbf;background:#edf7ef;color:#225b2c}.notice.error{border:1px solid #efb7b7;background:#fff0f0;color:#842323}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px}.tag-list{display:flex;flex-wrap:wrap;gap:10px}.tag{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border-left:5px solid var(--tag);border-radius:999px;background:#f5f6f4}.member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}fieldset{padding:14px;border:1px solid #dfe3dd;border-radius:10px}legend{font-weight:700}.timer-card{margin-bottom:22px}.timer-card,.timer-form{display:flex;align-items:end;gap:14px}.period-nav,.view-actions{display:flex;align-items:center;gap:10px}.report-filters{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px;align-items:end}.filter-buttons{display:flex;gap:8px;grid-column:1/-1}.secondary{background:#eef1ec;color:#354036}.bulk-bar{display:grid;grid-template-columns:auto auto minmax(240px,1fr) auto;gap:14px;align-items:end;margin-bottom:18px;padding:14px;border-radius:12px;background:#f5f6f4}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.budget-card{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fbfcfa}.progress{height:10px;margin:16px 0;overflow:hidden;border-radius:999px;background:#e6e9e3}.progress span{display:block;height:100%;border-radius:inherit;background:#79897c}
@media(max-width:1100px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.report-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){:root{--sidebar:272px}.sidebar{transform:translateX(-105%);transition:transform .2s ease}.menu-open .sidebar{transform:translateX(0)}.menu-open:after{content:"";position:fixed;inset:0;z-index:45;background:rgba(10,18,14,.45)}.app-main{margin-left:0}.menu-toggle{display:inline-flex}.content{width:min(100% - 30px,1320px)}.app-topbar{padding:12px 16px}.user-menu>span:nth-child(2),.topbar-help{display:none}.impersonation-banner{padding:12px 16px}.form-grid,.split,.member-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
@media(max-width:650px){.dashboard-kpis{grid-template-columns:1fr}.kpi-card{min-height:110px}.quick-actions{grid-template-columns:repeat(2,1fr)}.week-bars{gap:4px}.bar-fill{inset:auto 12% 0}.company-switcher small{display:none}.company-switcher strong{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-heading,.hero,.section-head{align-items:flex-start;flex-direction:column}.report-filters,.bulk-bar{grid-template-columns:1fr}.stats,.stats-3{grid-template-columns:1fr}.timer-card,.timer-form,.filters{display:flex;flex-direction:column;align-items:stretch}.content{padding-top:22px}}
