#service-maintenance-plan-root { display:grid; gap:12px; }
.service-maintenance-plan-context { color:#64748b; margin:0 0 2px; font-size:14px; }
.service-maintenance-plan-controls { display:flex; flex-wrap:wrap; gap:10px; }
.service-maintenance-plan-controls label { display:grid; gap:5px; flex:1 1 180px; color:#42566b; font-size:13px; }
.service-maintenance-plan-controls select,.service-maintenance-plan-controls input { width:100%; min-height:44px; padding:8px 10px; border:1px solid #c7d3df; border-radius:8px; background:#fff; color:#20354a; font:inherit; }
.service-maintenance-plan-quick-month { display:flex; align-items:end; gap:6px; flex:1 1 220px; min-width:0; }
.service-maintenance-plan-quick-month button { flex:1 1 0; min-width:0; min-height:44px; padding:7px 9px; border:1px solid #c7d3df; border-radius:8px; background:#fff; color:#245d84; font:inherit; font-size:12px; cursor:pointer; }
.service-maintenance-plan-quick-month button[aria-pressed="true"] { border-color:#3972a3; background:#e8f2fa; font-weight:700; }
.service-maintenance-plan-quick-month button:focus-visible { outline:2px solid #245d84; outline-offset:2px; }
.service-maintenance-plan-next-seven { flex:1 1 180px; min-height:44px; padding:7px 9px; border:1px solid #c7d3df; border-radius:8px; background:#fff; color:#245d84; font:inherit; font-size:12px; cursor:pointer; }
.service-maintenance-plan-next-seven[aria-pressed="true"] { border-color:#3972a3; background:#e8f2fa; font-weight:700; }
.service-maintenance-plan-next-seven:focus-visible { outline:2px solid #245d84; outline-offset:2px; }
.service-maintenance-plan-print-action { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.service-maintenance-plan-output-actions { display:flex; flex-wrap:wrap; gap:8px; }
.service-maintenance-plan-print-action button { min-height:44px; padding:8px 12px; border:1px solid #3972a3; border-radius:8px; background:#fff; color:#245d84; font:inherit; font-weight:700; cursor:pointer; }
.service-maintenance-plan-print-action button:disabled { opacity:.5; cursor:default; }
.service-maintenance-plan-print-action button:focus-visible { outline:2px solid #245d84; outline-offset:2px; }
.service-maintenance-plan-print-sheet { display:none; }
.service-maintenance-plan-summary { display:flex; flex-wrap:wrap; gap:8px; }
.service-maintenance-plan-summary > * { display:inline-flex; align-items:center; padding:8px 12px; border-radius:9px; background:#e9f4f4; color:#164b50; font-size:13px; }
.service-maintenance-plan-summary > :first-child { background:#fff1ee; color:#a34131; }
.service-maintenance-plan-earliest { margin:10px 0; border:1px solid #dce4eb; border-radius:8px; background:#f7fafc; }
.service-maintenance-plan-earliest summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; min-height:44px; padding:8px 10px; cursor:pointer; font-size:12px; }
.service-maintenance-plan-earliest summary:focus-visible { outline:2px solid #3972a3; outline-offset:2px; }
.service-maintenance-plan-earliest summary span { color:#42566b; font-variant-numeric:tabular-nums; }
.service-maintenance-plan-earliest ul { margin:0; padding:0 10px 8px; list-style:none; }
.service-maintenance-plan-earliest li { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:6px 0; border-top:1px solid #dce4eb; font-size:12px; }
.service-maintenance-plan-earliest li span { min-width:0; overflow-wrap:anywhere; }
.service-maintenance-plan-earliest li a { display:inline-flex; align-items:center; min-height:44px; flex:none; }
.service-maintenance-plan-weekly { margin:14px 0; min-width:0; }
.service-maintenance-plan-weekly h2 { display:flex; justify-content:space-between; gap:8px; margin:0 0 3px; color:#42566b; font-size:13px; }
.service-maintenance-plan-weekly h2 span { font-variant-numeric:tabular-nums; }
.service-maintenance-plan-weekly > p { margin:0 0 7px; color:#42566b; font-size:11px; }
.service-maintenance-plan-weekly > ol { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.service-maintenance-plan-weekly > ol > li { border:1px solid #dce4eb; border-radius:8px; background:#fff; }
.service-maintenance-plan-weekly summary,.service-maintenance-plan-week-empty { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; padding:7px 10px; font-size:12px; }
.service-maintenance-plan-weekly summary { cursor:pointer; }
.service-maintenance-plan-weekly summary:focus-visible { outline:2px solid #3972a3; outline-offset:2px; }
.service-maintenance-plan-weekly summary strong,.service-maintenance-plan-week-empty strong { font-variant-numeric:tabular-nums; }
.service-maintenance-plan-weekly ul { margin:0; padding:0 10px 7px; list-style:none; }
.service-maintenance-plan-weekly ul li { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:5px 0; border-top:1px solid #dce4eb; font-size:12px; }
.service-maintenance-plan-weekly ul li span { min-width:0; overflow-wrap:anywhere; }
.service-maintenance-plan-weekly ul li a { display:inline-flex; align-items:center; min-height:44px; flex:none; }
.service-maintenance-plan-print-week { display:block; min-height:44px; margin:0 10px 10px auto; padding:8px 12px; }
.service-maintenance-plan-print-week:focus-visible { outline:2px solid #3972a3; outline-offset:2px; }
.service-maintenance-plan-week-sheet { display:none; }
.service-maintenance-plan-site-due { min-width:0; }
.service-maintenance-plan-site-due h2 { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 6px; color:#42566b; font-size:13px; }
.service-maintenance-plan-site-due h2 span { font-variant-numeric:tabular-nums; }
.service-maintenance-plan-site-due dl { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr)); gap:6px; margin:0; }
.service-maintenance-plan-site-due dl>div { display:flex; align-items:center; justify-content:space-between; gap:9px; min-width:0; padding:7px 10px; border:1px solid #dce4eb; border-radius:8px; background:#fff; font-size:12px; }
.service-maintenance-plan-site-due dt { min-width:0; overflow-wrap:anywhere; color:#42566b; }.service-maintenance-plan-site-due dd { margin:0; font-weight:700; font-variant-numeric:tabular-nums; }
.service-maintenance-plan-group { background:#fff; border:1px solid #dce4eb; border-radius:12px; overflow:hidden; }
.service-maintenance-plan-group h2 { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0; padding:13px 16px; background:#f5f8fb; font-size:16px; }
.service-maintenance-plan-overdue h2 { background:#fff1ee; color:#a34131; }
.service-maintenance-plan-group h2 span { font-size:13px; border-radius:20px; background:#fff; padding:2px 9px; }
.service-maintenance-plan-list { display:grid; }
.service-maintenance-plan-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:12px 16px; border-top:1px solid #e4eaf0; }
.service-maintenance-plan-route-status { margin:8px 0; padding:10px 12px; border:1px solid #6a94b0; border-radius:8px; background:#f0f8fc; overflow-wrap:anywhere; }
.service-maintenance-plan-row.service-maintenance-plan-focused { outline:3px solid #3972a3; outline-offset:-3px; background:#f0f8fc; }
.service-maintenance-plan-row.service-maintenance-plan-focused:focus { outline:3px solid #245681; }
.service-maintenance-plan-details { min-width:0; display:flex; flex-direction:column; gap:3px; overflow-wrap:anywhere; }
.service-maintenance-plan-details strong { color:#20354a; }
.service-maintenance-plan-details span { color:#244b59; }
.service-maintenance-plan-details small { color:#748599; }
.service-maintenance-plan-row .quiet-btn { flex:none; text-align:center; }
.service-maintenance-plan-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.service-maintenance-plan-row > .service-maintenance-plan-actions .quiet-btn { min-height:44px; }
.service-maintenance-plan-record-visit:focus-visible { outline:2px solid #3972a3; outline-offset:2px; }
.service-maintenance-plan-saved-orders { flex:1 0 100%; min-width:0; padding:10px 12px; border:1px solid #d5e4ed; border-radius:9px; background:#f5fafd; font-size:12px; }
.service-maintenance-plan-saved-orders p { margin:0 0 8px; color:#42566b; }
.service-maintenance-plan-saved-orders ul { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.service-maintenance-plan-saved-orders li { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 10px; min-width:0; padding:7px 0; border-top:1px solid #d5e4ed; }
.service-maintenance-plan-saved-orders li span { overflow-wrap:anywhere; }
.service-maintenance-plan-saved-orders .quiet-btn { display:inline-flex; align-items:center; min-height:44px; padding:7px 10px; }
.service-maintenance-plan-existing { flex:1 0 100%; min-width:0; padding:11px 12px; border:1px solid #d5e4ed; border-radius:9px; background:#f5fafd; }
.service-maintenance-plan-existing > summary { display:flex; align-items:center; min-height:44px; padding:0; color:#174966; font-weight:700; }
.service-maintenance-plan-existing p { margin:4px 0 8px; color:#42566b; font-size:12px; }
.service-maintenance-plan-existing ul { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.service-maintenance-plan-existing li { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 10px; min-width:0; padding:7px 0; border-top:1px solid #d5e4ed; }
.service-maintenance-plan-existing li span { overflow-wrap:anywhere; font-size:12px; }
.service-maintenance-plan-existing .quiet-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:7px 10px; text-align:center; }
.service-maintenance-plan-form { flex:1 0 100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:12px; border:1px solid #dce4eb; border-radius:10px; background:#f8fbfc; }
.service-maintenance-plan-scope { display:flex; flex-wrap:wrap; justify-content:space-between; gap:3px 10px; grid-column:1/-1; min-width:0; padding:7px 9px; border:1px solid var(--border,#dce4eb); border-radius:8px; background:var(--surface,#fff); color:var(--text,#20354a); font-size:12px; overflow-wrap:anywhere; }
.service-maintenance-plan-scope time { font-weight:700; font-variant-numeric:tabular-nums; }
.service-maintenance-plan-form label { display:grid; gap:5px; min-width:0; font-size:13px; font-weight:600; color:#244b59; }
.service-maintenance-plan-form input,.service-maintenance-plan-form select { width:100%; min-width:0; min-height:44px; box-sizing:border-box; border:1px solid #b9cbd3; border-radius:8px; padding:8px; background:#fff; color:#20354a; }
.service-maintenance-plan-form p { grid-column:1/-1; margin:0; font-size:13px; }
.service-maintenance-plan-status:empty { display:none; }
.service-maintenance-plan-more { grid-column:1/-1; min-width:0; border-top:1px solid var(--border,#dce4eb); }
.service-maintenance-plan-more > summary { display:flex; align-items:center; min-height:44px; padding:4px 0; color:var(--muted,#64748b); font-size:12px; font-weight:700; }
.service-maintenance-plan-more > p { padding:0 0 7px; }
.service-maintenance-plan-form summary:focus-visible,.service-maintenance-plan-existing > summary:focus-visible { outline:2px solid var(--blue,#3972a3); outline-offset:2px; }
.service-maintenance-plan-caveat { color:#64748b; }
.service-maintenance-plan-form [role="alert"] { color:#a34131; }
.service-maintenance-plan-form .service-maintenance-plan-actions { grid-column:1/-1; }
.service-maintenance-plan-form .service-maintenance-plan-actions > * { min-height:44px; }
.service-maintenance-plan-group summary { cursor:pointer; padding:12px 16px; color:#266c70; }
.service-maintenance-plan-group .service-maintenance-plan-existing > summary { padding:0; color:#174966; }
.service-maintenance-plan-group .service-maintenance-plan-more > summary { padding:4px 0; color:var(--muted,#64748b); }
.service-maintenance-plan-empty { margin:0; padding:13px 16px; color:#7b8a9a; }
@media (max-width: 600px) {
  .service-maintenance-plan-row { align-items:stretch; flex-direction:column; }
  .service-maintenance-plan-row .quiet-btn { align-self:stretch; }
  .service-maintenance-plan-row .service-maintenance-plan-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .service-maintenance-plan-row > .service-maintenance-plan-actions > :last-child:nth-child(3) { grid-column:1/-1; }
  .service-maintenance-plan-row .service-maintenance-plan-record-visit { min-width:0; }
  .service-maintenance-plan-controls label { flex-basis:100%; }
  .service-maintenance-plan-quick-month { flex-basis:100%; }
  .service-maintenance-plan-next-seven { flex-basis:100%; }
  .service-maintenance-plan-form { grid-template-columns:1fr 1fr; }
  .service-maintenance-plan-form .service-maintenance-plan-worker { grid-column:1/-1; }
  .service-maintenance-plan-form .service-maintenance-plan-actions > * { min-width:0; white-space:normal; }
  .service-maintenance-plan-form .service-maintenance-plan-actions > :first-child { grid-column:1/-1; }
  .service-maintenance-plan-summary > * { flex:1 1 130px; }
  .service-maintenance-plan-earliest li { flex-wrap:wrap; }
  .service-maintenance-plan-earliest li a { width:100%; justify-content:center; }
  .service-maintenance-plan-weekly ul li { flex-wrap:wrap; }
  .service-maintenance-plan-weekly ul li a { width:100%; justify-content:center; }
  .service-maintenance-plan-print-week { width:calc(100% - 20px); margin:0 10px 10px; }
  .service-maintenance-plan-existing li .quiet-btn { width:100%; }
  .service-maintenance-plan-saved-orders li .quiet-btn { width:100%; justify-content:center; }
  .service-maintenance-plan-output-actions,.service-maintenance-plan-print-action button { width:100%; }
}
@media (max-width:430px) {
  .service-maintenance-plan-row { gap:8px; padding:9px 10px; }
  .service-maintenance-plan-form { gap:8px; padding:9px; }
  .service-maintenance-plan-form label { gap:3px; font-size:12px; }
  .service-maintenance-plan-form input,.service-maintenance-plan-form select { font-size:16px; }
  .service-maintenance-plan-form .service-maintenance-plan-actions { position:sticky; bottom:calc(var(--mobile-status-height,42px) + env(safe-area-inset-bottom)); z-index:2; padding:6px 0; background:var(--surface,#fff); }
}
@page service-maintenance-due { size:A4; margin:14mm; }
@media print {
  body.print-service-maintenance-week > :not(.service-maintenance-plan-week-sheet) { display:none !important; }
  body.print-service-maintenance-week > .service-maintenance-plan-week-sheet { display:block !important; page:service-maintenance-due; color:#111; font:9pt/1.35 Arial,sans-serif; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet header { display:grid; gap:2mm; border-bottom:1px solid #777; padding-bottom:4mm; margin-bottom:5mm; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet h2,body.print-service-maintenance-week .service-maintenance-plan-week-sheet p { margin:0; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet th,body.print-service-maintenance-week .service-maintenance-plan-week-sheet td { padding:2mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet thead { display:table-header-group; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet tr { break-inside:avoid-page; }
  body.print-service-maintenance-week .service-maintenance-plan-week-sheet td small { display:block; color:#555; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .sidebar,
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .topbar,
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .page:not(#page-service-maintenance-plan),
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) #page-service-maintenance-plan > :not(#service-maintenance-plan-root),
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) #service-maintenance-plan-root > :not(.service-maintenance-plan-print-sheet),
  body.print-service-maintenance-due #service-maintenance-plan-root > .service-maintenance-plan-print-sheet-overdue,
  body.print-service-maintenance-overdue #service-maintenance-plan-root > .service-maintenance-plan-print-sheet:not(.service-maintenance-plan-print-sheet-overdue) { display:none !important; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .app-shell,
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .main,
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) #page-service-maintenance-plan,
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) #service-maintenance-plan-root,
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet { display:block !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; box-shadow:none !important; background:#fff !important; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet { page:service-maintenance-due; color:#111; font:9pt/1.35 Arial,sans-serif; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet header { display:grid; gap:2mm; border-bottom:1px solid #777; padding-bottom:4mm; margin-bottom:5mm; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet h2,body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet p { margin:0; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet header strong { margin-top:2mm; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet table { width:100%; border-collapse:collapse; table-layout:fixed; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet th,body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet td { padding:2mm; border-bottom:1px solid #bbb; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet thead { display:table-header-group; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet tr { break-inside:avoid-page; }
  body:is(.print-service-maintenance-due,.print-service-maintenance-overdue) .service-maintenance-plan-print-sheet td small { display:block; color:#555; }
}
