:root{
 --navy:#263d72;--blue:#0b73c9;--royal:#174a9c;--ink:#17191d;--muted:#6f7783;
 --line:#e4e9f0;--bg:#f7f9fc;--white:#fff;--danger:#b3261e;--success:#1d7d3b;
}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue)}.muted{color:var(--muted)}.alert{background:#fff1f0;border:1px solid #f2c8c4;color:#842219;padding:12px;border-radius:10px;margin:12px 0}.success{background:#eef9f1;border:1px solid #b9e0c4;color:#155c2c;padding:12px;border-radius:10px}
.login-body{background:#fff}.login-wrap{max-width:520px;margin:7vh auto;padding:24px}.login-logo{display:block;width:min(440px,95%);margin:0 auto 24px}.login-card{border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff;box-shadow:0 12px 36px rgba(38,61,114,.08)}
label{display:grid;gap:7px;font-weight:700;margin:14px 0}input,select{width:100%;padding:12px 13px;border:1px solid #cfd7e2;border-radius:10px;background:#fff;font-size:16px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 16px;font-weight:800;cursor:pointer;text-decoration:none}.primary{background:linear-gradient(90deg,var(--navy),var(--blue));color:#fff}.secondary{background:#fff;border:1px solid #cfd7e2;color:var(--ink)}.danger{color:var(--danger)}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar-inner{max-width:1180px;margin:auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand-mini{height:52px;width:auto}.nav{display:flex;gap:8px;align-items:center}.nav a{padding:9px 11px;border-radius:8px;text-decoration:none;font-weight:750;color:var(--navy)}.nav a.active{background:#edf4fb;color:var(--blue)}
.shell{max-width:1180px;margin:26px auto;padding:0 20px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.page-head h1{margin:0;color:var(--navy)}.toolbar{display:flex;gap:10px;flex-wrap:wrap}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{font-size:13px;text-transform:uppercase;color:#687382;background:#fbfcfe}.table tr:last-child td{border-bottom:0}.status{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.status.active{background:#edf8f1;color:#176c35}.status.archived{background:#f0f1f3;color:#636b75}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline{display:inline}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-panel{padding:20px}.help{font-size:13px;color:var(--muted)}
@media(max-width:760px){
  .grid2{grid-template-columns:1fr}
  .table-wrap{overflow:auto}
  .brand-mini{height:42px;max-width:210px;object-fit:contain}
  .topbar-inner{padding:10px 14px;position:relative;flex-wrap:wrap}
  .mobile-menu-btn{display:inline-flex}
  .nav{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:8px 0 2px;
  }
  .nav.mobile-open{display:flex}
  .nav a{display:block;width:100%;padding:12px 14px;border:1px solid var(--line);background:#fff}
  .nav a.active{background:#edf4fb}
  .page-head{align-items:flex-start;flex-direction:column}
}

.segmented{display:inline-flex;background:#eaf0f7;border-radius:12px;padding:4px;margin:0 0 16px;gap:4px}
.segmented a{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--navy);font-weight:800;padding:9px 13px;border-radius:9px}
.segmented a.selected{background:#fff;box-shadow:0 2px 8px rgba(38,61,114,.08)}
.segmented span{font-size:12px;background:#dce6f2;padding:2px 7px;border-radius:999px}

.timesheet-banner{background:#fff4cf;border:1px solid #edcf63;border-radius:12px;padding:14px 18px;margin-bottom:16px;display:flex;gap:12px;align-items:baseline}
.timesheet-banner strong{font-size:20px}.timesheet-banner span{font-size:13px;color:#655c40}
.timesheet-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.view-tabs{display:flex;border:1px solid #cfd7e2;border-radius:10px;overflow:hidden;background:#fff}
.view-tabs a{padding:9px 15px;text-decoration:none;color:var(--ink);font-weight:700;border-right:1px solid #cfd7e2}.view-tabs a:last-child{border-right:0}.view-tabs a.selected{background:#edf4fb;color:var(--blue)}
.time-grid{border-collapse:collapse;width:100%;min-width:1050px}.time-grid th,.time-grid td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:center}.time-grid th:first-child,.time-grid td:first-child{text-align:left;min-width:330px}.time-grid thead th{background:#fbfcfe;color:#56616e;font-size:13px}.time-grid tfoot td{font-weight:800;background:#fbfcfe}
.day-week-strip{display:grid;grid-template-columns:repeat(7,1fr) 1.3fr;border-bottom:1px solid var(--line);margin-bottom:14px;background:#fff}.day-week-strip a,.day-week-strip>div{padding:12px;text-decoration:none;color:var(--ink);display:grid;gap:4px}.day-week-strip a.selected{border-bottom:3px solid var(--blue);color:var(--blue)}.day-week-strip span{font-size:13px}
.day-entry{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px;border-bottom:1px solid var(--line)}.day-entry:last-child{border-bottom:0}.day-entry-actions{display:flex;align-items:center;gap:12px}
.calendar-wrap{padding:0;overflow:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));min-width:1190px;min-height:620px}.calendar-col{border-right:1px solid var(--line);padding:0 8px 14px}.calendar-col:last-child{border-right:0}.calendar-head{position:sticky;top:77px;background:#fff;padding:12px 4px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;z-index:2}.calendar-block{width:100%;border:0;border-radius:8px;background:linear-gradient(135deg,var(--royal),var(--blue));color:#fff;margin-top:8px;padding:10px;text-align:left;display:grid;gap:5px;cursor:pointer}.calendar-block small{opacity:.9}.calendar-block span{font-weight:800}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.48);display:grid;place-items:center;padding:20px;z-index:20}.modal-backdrop[hidden]{display:none}.modal{width:min(520px,100%);background:#fff;border-radius:16px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.3)}.modal-head{display:flex;justify-content:space-between;align-items:center;font-size:20px}.modal-head button{border:0;background:transparent;font-size:30px}.modal-actions{display:flex;gap:10px;margin-top:14px}
.role-form select{min-width:120px}
@media(max-width:760px){.timesheet-controls{align-items:stretch;flex-direction:column}.view-tabs{width:100%}.view-tabs a{flex:1;text-align:center}.day-week-strip{overflow:auto;grid-template-columns:repeat(8,minmax(95px,1fr))}}

.mobile-menu-btn{
  display:none;
  border:1px solid #cfd7e2;
  background:#fff;
  color:var(--navy);
  border-radius:10px;
  padding:10px 12px;
  font-weight:800;
  cursor:pointer;
}
@media(max-width:760px){
  .mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
}

.collapsible-form[hidden]{display:none!important}
.collapsible-form{scroll-margin-top:90px}
