/* The three cost modules share the existing Phenix IT colours and controls. */
.finance-page,.worktime-page,.travel-page { min-width:0; }
.finance-page .page-heading,.worktime-page .page-heading,.travel-page .page-heading { gap:18px; }
.finance-summary .stat { min-width:0; }
.finance-summary .stat-number { font-size:clamp(20px,2vw,30px); overflow-wrap:anywhere; }
.finance-cost-table { min-width:720px; }
.worktime-table { min-width:780px; }
.finance-cost-table th,.worktime-table th { white-space:normal; }
.finance-document { border-bottom:1px solid var(--line,#e3e8ef); }
.finance-document:last-child { border-bottom:0; }
.finance-document>summary { padding:18px 22px; cursor:pointer; line-height:1.6; overflow-wrap:anywhere; }
.finance-document>summary .badge { margin-left:8px; }
.finance-document .panel-body ul { padding-left:20px; }
.finance-document .panel-body li { margin:7px 0; }
.finance-pdf-text { max-height:240px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; background:#fff; border:1px solid var(--line,#e3e8ef); padding:14px; border-radius:8px; }
.finance-allocation-line,.travel-meal-line,.travel-night-line { min-width:0; padding:18px; margin:18px 0; border:1px solid var(--line,#e3e8ef); border-radius:10px; }
.finance-allocation-line legend,.travel-meal-line legend,.travel-night-line legend { max-width:100%; padding:0 7px; font-size:13px; font-weight:700; overflow-wrap:anywhere; }
[data-form="finance"] h3,[data-form="travel"] h3 { margin:24px 0 10px; font-size:15px; }
[data-form="finance"] .checkbox-field,[data-form="travel"] .checkbox-field { display:flex; align-items:flex-start; gap:9px; line-height:1.6; font-size:13px; }
[data-form="finance"] .checkbox-field input,[data-form="travel"] .checkbox-field input { flex:none; margin-top:4px; }
.worktime-card { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; border-bottom:1px solid var(--line,#e3e8ef); }
.worktime-card:last-child { border-bottom:0; }
.worktime-card p { margin:5px 0; }
.travel-card { padding:22px; border-bottom:1px solid var(--line,#e3e8ef); }
.travel-card:last-child { border-bottom:0; }
.travel-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.travel-card-head>div { min-width:0; }
.travel-card-head h3 { font-size:17px; margin:0 0 7px; overflow-wrap:anywhere; }
.travel-card-head p { margin:0 0 9px; }
.travel-card-head .inline-actions { justify-content:flex-end; flex:0 1 360px; }
.travel-settlement { border-top:1px solid var(--line,#e3e8ef); margin-top:16px; padding-top:14px; }
.travel-settlement>summary { cursor:pointer; font-size:13px; font-weight:600; }
.travel-calculation { min-width:0; width:100%; margin-top:12px; }
.travel-calculation th { font-weight:500; text-align:left; white-space:normal; }
.travel-calculation td { text-align:right; white-space:nowrap; }
.travel-calculation tr:nth-last-child(3) th,.travel-calculation tr:nth-last-child(3) td,.travel-calculation tr:last-child th,.travel-calculation tr:last-child td { font-weight:700; }
.time-offset { font-size:11px; color:var(--muted,#64748b); align-self:center; min-width:0; }
.time-offset>summary { cursor:pointer; }
.time-offset>.input { margin-top:8px; }
.time-offset small { display:block; margin-top:5px; }
.travel-document { background:#fff; color:#111; line-height:1.6; padding:6px; }
.travel-document h1 { font-size:24px; margin:0 0 20px; }
.travel-document .travel-calculation { border:1px solid #ddd; }
.travel-signatures { display:flex; justify-content:space-between; gap:30px; margin-top:48px; font-size:12px; }
.travel-document .blocker-note { margin:16px 0; }
@media(max-width:700px) {
  .finance-page .page-heading,.worktime-page .page-heading,.travel-page .page-heading { display:flex; flex-direction:column; align-items:stretch; }
  .finance-page .page-heading>div,.worktime-page .page-heading>div,.travel-page .page-heading>div { min-width:0; }
  .finance-page .heading-actions,.worktime-page .heading-actions,.travel-page .heading-actions { justify-content:flex-start; flex-wrap:wrap; }
  .finance-document>summary { padding:15px; }
  .finance-allocation-line,.travel-meal-line,.travel-night-line { padding:12px; }
  .worktime-card,.travel-card { padding:16px; }
  .worktime-card,.travel-card-head { display:flex; flex-direction:column; align-items:stretch; }
  .worktime-card>.btn { align-self:flex-start; }
  .travel-card-head .inline-actions { flex:initial; justify-content:flex-start; }
  .travel-calculation th,.travel-calculation td { font-size:12px; padding:10px; }
  [data-form="finance"] .form-grid,[data-form="worktime"] .form-grid,[data-form="travel"] .form-grid { grid-template-columns:minmax(0,1fr); }
  [data-form="finance"] .form-actions,[data-form="worktime"] .form-actions,[data-form="travel"] .form-actions { flex-wrap:wrap; }
  .travel-signatures { flex-direction:column; }
}
@media print {
  body:has(.travel-document) .sidebar,body:has(.travel-document) .mobile-header,body:has(.travel-document) #app,body:has(.travel-document) .modal-head,body:has(.travel-document) .form-actions { display:none !important; }
  body:has(.travel-document) dialog { display:block !important; position:static !important; max-height:none !important; max-width:none !important; width:auto !important; border:0 !important; box-shadow:none !important; margin:0 !important; padding:0 !important; }
  body:has(.travel-document) .modal-body { padding:0 !important; overflow:visible !important; max-height:none !important; }
  .travel-document { font-size:11pt; }
  .travel-document .travel-calculation tr { break-inside:avoid; }
  .travel-document .travel-signatures { break-inside:avoid; }
}
.execution-tabs { display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:24px;flex-wrap:wrap; }
.execution-tabs a { padding:10px 14px;border-radius:8px;text-decoration:none;color:var(--muted);font-size:13px; }
.execution-tabs a.active { color:var(--accent);background:#fff0f0;font-weight:600; }
/* More modules must not push account controls outside a short viewport. */
.sidebar { overflow:hidden; }
.sidebar nav { flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin; }
.sidebar-bottom,.sidebar .brand,.sidebar .nav-label { flex-shrink:0; }
.sidebar-bottom { margin-top:12px; }
@media (max-height:1050px) { .sidebar .sidebar-note { display:none; } }
