.vendor-timesheet { --sheet-border:var(--line); color:var(--ink); }
.timesheet-intro { margin:0 0 20px; color:var(--muted); font-size:15px; line-height:1.6; max-width:850px; }
.timesheet-toolbar { display:flex; align-items:flex-end; flex-wrap:wrap; gap:16px; padding:20px; background:var(--paper); border:1px solid var(--sheet-border); border-radius:12px; margin-bottom:16px; }
.vendor-timesheet label { display:flex; flex-direction:column; gap:8px; font-size:13px; font-weight:600; line-height:1.4; }
.timesheet-toolbar>label:first-child { flex:1 1 240px; }
.timesheet-toolbar>span { flex:1 1 260px; color:var(--muted); font-size:13px; line-height:1.5; padding-bottom:10px; }
.vendor-timesheet :is(input,textarea) { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--sheet-border); border-radius:8px; font:inherit; font-weight:400; background:var(--paper); color:var(--ink); }
.vendor-timesheet textarea { resize:vertical; line-height:1.5; min-height:76px; }
.vendor-timesheet :is(input,textarea,button):focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.timesheet-row { display:grid; grid-template-columns:minmax(180px,1.1fr) 150px 86px minmax(220px,1.6fr) minmax(180px,1fr) 36px; gap:16px; align-items:start; margin:0 0 12px; padding:20px; min-width:0; border:1px solid var(--sheet-border); border-radius:12px; background:var(--paper); }
.timesheet-row[hidden],.vendor-timesheet [hidden] { display:none!important; }
.timesheet-row legend { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.timesheet-project { display:flex; flex-direction:column; gap:8px; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.timesheet-project>span { font-size:12px; color:var(--muted); }
.timesheet-project>button { align-self:flex-start; text-align:left; padding:4px 0; min-height:32px; }
.timesheet-capacity { margin-top:3px; font-size:12px; color:var(--muted); line-height:1.5; }
.timesheet-capacity>div { display:grid; gap:5px; margin-top:8px; }
.timesheet-capacity>div>span { display:flex; justify-content:space-between; gap:8px; }
.timesheet-capacity b { color:var(--ink); font-size:13px; font-variant-numeric:tabular-nums; }
.timesheet-remove { display:grid; place-items:center; width:36px; height:44px; border:0; padding:7px; background:transparent; color:var(--muted); cursor:pointer; }
.timesheet-remove svg { width:20px; height:20px; }
.timesheet-remove:hover { color:var(--red); }
.timesheet-row-error { grid-column:1/-1; color:var(--red); margin:0; font-size:13px; line-height:1.5; }
.timesheet-row-error:empty { display:none; }
.timesheet-row.has-error { border-color:var(--red); }
.timesheet-footer { position:sticky; bottom:0; z-index:3; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px; border:1px solid var(--sheet-border); border-radius:12px; background:var(--paper); box-shadow:0 -6px 20px rgba(0,0,0,.08); }
.timesheet-footer strong { font-size:16px; font-variant-numeric:tabular-nums; }
.timesheet-footer p { margin:6px 0 0; font-size:13px; color:var(--muted); line-height:1.5; }
.timesheet-footer button { flex-shrink:0; min-height:44px; }
.portal-timer.timesheet-embedded { position:relative; inset:auto; z-index:4; flex:1 1 100%; max-width:100%; }
.timesheet-embedded .timer-launch { box-shadow:none; border-radius:8px; max-width:100%; }
.timesheet-embedded .timer-popover { top:calc(100% + 8px); bottom:auto; left:0; right:auto; max-width:min(380px,calc(100vw - 72px)); }
@media(max-width:1200px) {
 .timesheet-row { grid-template-columns:minmax(160px,1fr) 150px 90px minmax(200px,1.5fr) 36px; }
 .timesheet-capacity { grid-column:1/5; grid-row:2; }
 .timesheet-capacity>div { display:flex; gap:24px; flex-wrap:wrap; }
 .timesheet-remove { grid-column:5; grid-row:1; }
}
@media(max-width:700px) {
 .timesheet-row { grid-template-columns:1fr 1fr 36px; padding:16px; gap:14px; }
 .timesheet-project { grid-column:1/3; }
 .timesheet-remove { grid-column:3; grid-row:1; }
 .timesheet-row>label { grid-row:2; }
 .timesheet-row>.timesheet-work { grid-row:3; grid-column:1/-1; }
 .timesheet-capacity { grid-row:4; grid-column:1/-1; }
 .timesheet-capacity>div { display:grid; gap:5px; }
 .timesheet-footer { flex-direction:column; align-items:stretch; padding:16px; }
 .timesheet-toolbar { padding:16px; }
}
