.time-management { --tm-border:var(--line,#d8e0e5); min-width:0; }
.time-management h2,.time-management h3 { margin:0 0 8px; }
.time-management h4 { margin:20px 0 12px; }
.time-management .tm-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin:18px 0 12px; }
.time-management .tm-heading > div { min-width:0; }
.time-management .tm-heading > .btn { flex-shrink:0; }
.time-management .tm-heading .tm-actions { margin-top:0; }
.time-management .tm-card { border:1px solid var(--tm-border); background:var(--pane,#fff); border-radius:12px; padding:20px; margin:16px 0; }
.time-management .tm-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:14px; }
.time-management label { display:flex; flex-direction:column; gap:7px; font-weight:600; font-size:.88rem; margin-bottom:12px; }
.time-management input:not([type="checkbox"]),.time-management select,.time-management textarea { width:100%; min-width:0; padding:10px; box-sizing:border-box; border:1px solid var(--tm-border); border-radius:7px; background:var(--pane,#fff); color:var(--ink,#172932); font:inherit; }
.time-management .tm-check { flex-direction:row; align-items:center; gap:9px; font-weight:400; }
.time-management .tm-check input { width:18px; height:18px; flex-shrink:0; }
.time-management .tm-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:12px 0 0; }
.time-management .tm-person { display:flex; flex-direction:column; justify-content:center; gap:6px; padding-bottom:12px; }
.time-management .tm-person span { color:var(--muted,#566); font-size:.85rem; }
.time-management .tm-selection { padding:14px 16px; border:1px solid var(--tm-border); border-radius:10px; background:var(--pane,#fff); margin:14px 0; }
.time-management .tm-selection > summary { cursor:pointer; font-weight:600; }
.time-management .tm-selection > form { padding-top:16px; }
.time-management .tm-subtabs { display:flex; flex-direction:row; flex:0 0 auto; gap:7px; flex-wrap:wrap; padding:0; margin:12px 0; }
.time-management .tm-subtabs .btn { width:auto; margin:0; }
.time-management .tm-subtabs [aria-current="page"] { border-color:var(--glass-deep); color:var(--glass-deep); background:var(--glass-tint,#e3f7fa); }
.time-management .tm-workspace-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:18px; }
.time-management .tm-workspace-grid > .tm-card { margin-top:0; }
.time-management .tm-shortcuts { display:flex; flex-direction:column; gap:9px; margin:14px 0; }
.time-management .tm-shortcuts .btn { text-align:left; justify-content:flex-start; white-space:normal; }
.time-management .tm-issue { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; border-bottom:1px solid var(--tm-border); padding:13px 0; }
.time-management .tm-issue strong { display:inline-block; margin:0 0 6px 8px; }
.time-management .tm-issue p { margin:5px 0; color:var(--muted); font-size:.84rem; }
.time-management .tm-issue .btn { flex-shrink:0; }
.time-management .tm-attendance { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin-top:16px; }
.time-management .tm-person-card { border:1px solid var(--tm-border); border-radius:10px; padding:15px; }
.time-management .tm-person-card strong { overflow-wrap:anywhere; }
.time-management .tm-last-booking { font-size:.84rem; margin:12px 0; }
.time-management .tm-model-summary { padding:14px 16px; background:var(--pane-tint,#f4f8f9); border:1px solid var(--tm-border); border-radius:9px; margin:14px 0; }
.time-management .tm-model-summary p { margin-top:7px; }
.time-management .tm-season-toggle { font-weight:700; padding:12px 14px; border:1px solid var(--tm-border); border-radius:8px; background:var(--pane-tint,#f4f8f9); }
.time-management .tm-seasonal-fields { border:1px solid var(--tm-border); border-radius:9px; padding:16px; margin:16px 0; }
.time-management .tm-seasonal-fields > legend { padding:0 6px; font-weight:600; }
.time-management .tm-annual-date { border:0; padding:0; margin:0; min-width:0; }
.time-management .tm-annual-date legend { font-size:.88rem; font-weight:600; margin-bottom:10px; }
.time-management .tm-date-parts { display:grid; grid-template-columns:90px minmax(0,1fr); gap:12px; }
.time-management .tm-season-summaries { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.time-management .tm-season-summaries h4 { margin:12px 0 0; }
.time-management .tm-season-summaries .tm-model-summary { margin-top:8px; }
.time-management .tm-person-assignment p { overflow-wrap:anywhere; }
.time-management .tm-source-provenance { display:flex; flex-wrap:wrap; gap:16px 32px; padding:16px; border:1px solid var(--tm-border); border-radius:10px; background:var(--pane,#fff); }
.time-management .tm-source-provenance > div { display:flex; flex-direction:column; gap:6px; min-width:0; }
.time-management .tm-source-provenance span { font-size:.88rem; overflow-wrap:anywhere; }
.time-management .tm-source-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; margin:16px 0; }
.time-management .tm-source-facts dt { color:var(--muted); font-size:.8rem; }
.time-management .tm-source-facts dd { margin:5px 0 0; font-weight:600; overflow-wrap:anywhere; }
.time-management .tm-source-detail { margin-top:10px; }
.time-management .tm-source-detail summary { cursor:pointer; font-size:.85rem; }
.time-management .tm-source-tags,.time-management .tm-source-bookings { list-style:none; margin:10px 0; padding:0; }
.time-management .tm-source-tags li,.time-management .tm-source-bookings li { display:flex; flex-direction:column; gap:5px; padding:8px 0; font-size:.84rem; overflow-wrap:anywhere; }
.time-management .tm-source-tags li+li,.time-management .tm-source-bookings li+li { border-top:1px solid var(--tm-border); }
.time-management .tm-source-tags span { color:var(--muted); }
.time-management .tm-source-days td:nth-child(n+2):nth-child(-n+5) { white-space:nowrap; }
.time-management .tm-source-days th { white-space:nowrap; }
.time-management .tm-source-archive > p { margin-top:14px; }
.time-management .tm-people-picker { padding:14px; border:1px solid var(--tm-border); border-radius:8px; margin:18px 0; }
.time-management .tm-people-picker legend { font-weight:600; padding:0 6px; }
.time-management .tm-people-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:8px 14px; margin-top:14px; }
.time-management .tm-people-options label { margin:0; padding:10px; border-radius:7px; background:var(--pane-tint,#f4f8f9); }
.time-management .tm-people-options span { min-width:0; }
.time-management .tm-people-options strong { overflow-wrap:anywhere; }
.time-management .tm-people-options small { display:block; font-size:.78rem; color:var(--muted); margin-top:4px; }
.time-management .tm-confirmation { border-top:2px solid var(--glass,#5bc4d3); padding-top:20px; margin-top:22px; }
.time-management .tm-notice ul { padding-left:20px; }
#tm-print-document { display:none; }
.time-management .tm-tabs { display:flex; flex-direction:row; flex:0 0 auto; flex-wrap:wrap; gap:7px; border-bottom:1px solid var(--tm-border); padding:0 0 12px; margin:20px 0; }
.time-management .tm-tabs .btn { width:auto; margin:0; }
.time-management .tm-tabs [aria-current="page"] { background:var(--glass-deep,#0e7c7b); color:white; border-color:var(--glass-deep,#0e7c7b); }
.time-management .tm-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:12px; margin:14px 0 20px; }
.time-management .tm-metric { display:flex; flex-direction:column; gap:7px; padding:16px; background:var(--pane,#fff); border:1px solid var(--tm-border); border-radius:10px; }
.time-management .tm-metric strong { font-size:1.5rem; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.time-management .tm-metric span,.time-management .tm-metric small { font-size:.82rem; color:var(--muted,#566); }
.time-management .tm-scroll { overflow:auto; max-width:100%; margin:14px 0; border:1px solid var(--tm-border); border-radius:10px; }
.time-management table { width:100%; border-collapse:collapse; min-width:660px; background:var(--pane,#fff); }
.time-management th,.time-management td { padding:12px 10px; text-align:left; border-bottom:1px solid var(--tm-border); vertical-align:top; font-variant-numeric:tabular-nums; }
.time-management tr:last-child td { border-bottom:0; }
.time-management th { font-size:.79rem; color:var(--muted,#566); background:var(--bg,#f5f8f9); }
.time-management td small,.time-management .tm-history small { display:block; color:var(--muted,#566); margin-top:4px; font-size:.77rem; }
.time-management .tm-booking { display:block; white-space:nowrap; }
.time-management .tm-negative { color:var(--red,#a72d29); }
.time-management .tm-locked td:first-child { border-left:3px solid var(--glass-deep,#0e7c7b); }
.time-management .tm-notice { padding:12px 14px; border-left:3px solid var(--amber,#b67a04); background:var(--bg,#f5f8f9); line-height:1.6; }
.time-management .tm-error { color:var(--red,#a72d29); border:1px solid currentColor; border-radius:8px; padding:12px; margin:12px 0; }
.time-management .tm-empty { color:var(--muted,#566); padding:16px 0; margin:0; }
.time-management .tm-request { padding:18px 0; border-bottom:1px solid var(--tm-border); }
.time-management .tm-request:last-of-type { border-bottom:0; }
.time-management .tm-request-summary { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.time-management .tm-request-summary > div { min-width:0; }
.time-management .tm-request p { margin:7px 0 0; overflow-wrap:anywhere; }
.time-management .tm-status { display:inline-block; flex-shrink:0; padding:4px 9px; border-radius:20px; font-size:.78rem; background:var(--bg,#edf2f3); color:var(--ink,#253c47); }
.time-management .tm-status.tm-approved { background:#e6f4ed; color:#135938; }
.time-management .tm-status.tm-pending { background:#fff2d4; color:#78510b; }
.time-management .tm-decision { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:14px; align-items:end; margin-top:12px; }
.time-management .tm-decision label,.time-management .tm-decision .tm-actions { margin:0; }
.time-management .tm-entry { display:flex; justify-content:space-between; gap:12px; padding:14px 0; border-bottom:1px solid var(--tm-border); }
.time-management .tm-entry .tm-actions { align-self:flex-start; margin-top:0; }
.time-management .tm-preserve { white-space:pre-wrap; overflow-wrap:anywhere; }
.time-management .tm-history,.time-management .tm-profile { padding:14px 0; border-bottom:1px solid var(--tm-border); }
.time-management .tm-history p,.time-management .tm-profile p { margin:8px 0 0; }
.time-management .tm-weekdays { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; }
.time-management .tm-weekdays label { font-size:.76rem; }
.time-management .tm-break-row { display:grid; grid-template-columns:1fr 1fr auto; gap:12px; align-items:end; margin-bottom:14px; }
.time-management .tm-break-row label { margin-bottom:0; }
.time-management .tm-profile-editor { margin-top:18px; }
.time-management .tm-profile-editor summary { cursor:pointer; font-weight:600; padding:10px 0; }
.time-management .tm-profile-editor form { padding-top:12px; }
.time-management.tm-dashboard .tm-heading { margin-top:0; }
.time-management .tm-dashboard-count { color:var(--muted,#566); margin:12px 0 0; }
.time-management [hidden] { display:none !important; }
.time-management[aria-busy="true"] button,.time-management[aria-busy="true"] input,.time-management[aria-busy="true"] select { pointer-events:none; }
.time-management[aria-busy="true"] { cursor:progress; }
.time-management button:focus-visible,.time-management input:focus-visible,.time-management select:focus-visible,.time-management summary:focus-visible { outline:3px solid var(--glass-deep,#0e7c7b); outline-offset:3px; }
@media(max-width:760px) {
.time-management .tm-season-summaries { grid-template-columns:1fr; gap:0; }
.time-management .tm-workspace-grid { grid-template-columns:1fr; gap:0; }
.time-management .tm-attendance { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
  .time-management .tm-heading { flex-direction:column; }
  .time-management .tm-weekdays { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .time-management .tm-decision { grid-template-columns:1fr; }
  .time-management .tm-entry { flex-direction:column; }
  .time-management .tm-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .time-management .tm-card { padding:15px; }
}
@media(max-width:480px) {
.time-management .tm-attendance,.time-management .tm-people-options { grid-template-columns:1fr; }
.time-management .tm-issue { flex-direction:column; gap:6px; }
.time-management .tm-subtabs .btn { flex:1 1 auto; }
  .time-management .tm-grid { grid-template-columns:1fr; }
  .time-management .tm-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .time-management .tm-metric { padding:12px; }
  .time-management .tm-metric strong { font-size:1.3rem; }
  .time-management .tm-tabs .btn { flex:1 1 auto; }
  .time-management .tm-actions .btn { flex:1 1 auto; }
  .time-management .tm-break-row { grid-template-columns:1fr 1fr; padding-bottom:12px; border-bottom:1px solid var(--tm-border); }
  .time-management .tm-break-row .btn { grid-column:1 / -1; justify-self:start; }
  .time-management .tm-request-summary { gap:8px; }
  .time-management .tm-status { font-size:.72rem; padding:4px 7px; }
}
@media print {
  html:has(body[data-time-print="true"]) { height:auto!important; overflow:visible!important; }
  body[data-time-print="true"] { height:auto!important; overflow:visible!important; background:white!important; color:black!important; }
  body[data-time-print="true"] > *:not(#tm-print-document) { display:none!important; }
  body[data-time-print="true"] #tm-print-document { display:block!important; padding:0; font:10pt Arial,sans-serif; }
  #tm-print-document h1 { font-size:17pt; margin-bottom:8pt; }
  #tm-print-document p { margin:5pt 0; }
  #tm-print-document .tm-scroll { overflow:visible; border:0; }
  #tm-print-document table { width:100%; border-collapse:collapse; table-layout:auto; margin-top:14pt; font-size:8pt; }
  #tm-print-document th,#tm-print-document td { border-bottom:1px solid #ccc; text-align:left; padding:5pt; overflow-wrap:anywhere; }
  #tm-print-document th { background:#eee; }
  #tm-print-document thead { display:table-header-group; }
  #tm-print-document tr { break-inside:avoid; }
  @page { size:A4 landscape; margin:12mm; }
}
