.schedule-month-metrics{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.schedule-month-metrics .tag{display:inline-flex;gap:6px;white-space:nowrap}.paired-schedule .section-title{flex-wrap:wrap}
:root{--background:#f3f6fa;--foreground:#1b2d42;--card:#fff;--primary:#184a77;--secondary:#e9f1fa;--muted:#62758a;--border:#dce4ed;--radius:12px;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:'Yu Gothic UI','Meiryo',system-ui,sans-serif;font-size:16px;color:var(--foreground);background:var(--background);line-height:1.6}button,input,select,textarea{font:inherit}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 13px;background:white;border:1px solid var(--border);border-radius:8px;color:var(--foreground);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}button:hover,.btn:hover{background:#edf3fa;border-color:#9cb5ce}button:disabled{opacity:.5;cursor:wait}button.primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:white}.primary:hover{background:#10385e}input,select,textarea{border:1px solid #ccd7e2;background:white;border-radius:7px;padding:9px 11px;color:var(--foreground);font-size:14px;max-width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #86badd77;outline-offset:2px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary)}textarea{width:100%;resize:vertical;min-height:80px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:.02em;margin-bottom:0;font-weight:750}h2{font-size:18px;margin-bottom:12px}h3{font-size:16px;margin:18px 0 12px}small,.small{font-size:12px}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:9px}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.wide{width:100%}.tag{display:inline-flex;gap:4px;align-items:center;border-radius:5px;background:#edf1f5;color:#50637a;padding:2px 7px;font-size:12px;font-weight:600;white-space:nowrap}.tag.blue{background:#e1effd;color:#245f94}.tag.coral{background:#fff0e9;color:#a44e28}.tag.green{background:#e4f3ec;color:#226a4d}.tag.amber{background:#fff1d9;color:#936112}.tag.red{background:#ffe9e9;color:#a33333}.app{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:#132f4d;color:#dbe8f5;display:flex;flex-direction:column;padding:28px 15px 16px;z-index:25}.brand{display:flex;align-items:center;gap:12px;padding:0 8px;font-size:23px;font-weight:750;letter-spacing:.12em}.brand small{display:block;font-size:11px;letter-spacing:.03em;font-weight:400;color:#a4bfd6}.brandmark{display:grid;place-items:center;background:#eaf5ff;color:#16466f;border-radius:11px;width:43px;height:43px;flex-shrink:0}.workspace-label{font-size:10px;letter-spacing:.16em;color:#87a9c7;margin:30px 14px 10px}.sidebar nav{display:flex;flex-direction:column;gap:4px;overflow-y:auto}.sidebar nav button{justify-content:flex-start;padding:11px 12px;border:0;border-radius:7px;background:transparent;color:#bfd0e1;font-size:14px;gap:11px;font-weight:500}.sidebar nav button:hover{background:#254563}.sidebar nav button.active{background:#e5eff8;color:#143b60;font-weight:700}.nav-count{margin-left:auto;background:#3c5875;border-radius:4px;padding:0 5px;color:white;font-size:11px}.sidebar-bottom{margin-top:auto;padding:18px 6px 0;display:flex;gap:9px;align-items:center;border-top:1px solid #33506a;font-size:13px}.sidebar-bottom small{display:block;color:#a2bad0;font-size:11px}.sidebar-bottom button{margin-left:auto;background:transparent;border:0;color:#bfd0e1;padding:6px}.avatar{width:32px;height:32px;background:#45637e;border-radius:50%;display:grid;place-items:center}.main{margin-left:242px;width:calc(100% - 242px);min-width:0}.topbar{height:68px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 30px;font-size:13px;color:var(--muted)}.topbar>span{display:flex;align-items:center;gap:13px}.topbar b{color:var(--foreground);font-weight:500}.mobile-menu{display:none}.content{padding:24px 30px 50px;max-width:1900px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0}.eyebrow{font-size:11px;letter-spacing:.16em;color:#6985a0;font-weight:700;margin-bottom:4px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:15px 0 20px}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.filters select{max-width:160px}.search{display:flex;align-items:center;background:white;border:1px solid var(--border);border-radius:7px;padding-left:10px;color:var(--muted)}.search input{border:0;background:transparent;width:155px;outline:none}.date-title{font-size:17px}.schedule-info{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap}.segments{display:flex;padding:3px;gap:2px;background:#e5ebf2;border-radius:8px;flex-wrap:wrap}.segments button{border:0;background:transparent;padding:6px 12px;font-weight:500}.segments .selected{background:white;box-shadow:0 1px 3px #19344f15;color:var(--primary);font-weight:700}.legend{display:flex;align-items:center;gap:8px;font-size:12px;margin:15px 0}.legend .muted{margin-left:auto}.legend-nursing,.legend-rehab{width:9px;height:9px;border-radius:3px;background:#4085c0}.legend-rehab{background:#df9270;margin-left:12px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-title h2{margin:0}.section-title>button{margin-left:auto}.section-dot{width:8px;height:20px;border-radius:4px;background:#3980b7}.section-dot.amber{background:#dca449}.schedule-section{margin-bottom:28px}.timeline-scroll{overflow:auto;border:1px solid #d5dfe9;border-radius:11px;background:white;max-height:610px;box-shadow:0 3px 10px #15375704}.timeline{min-width:1380px;position:relative}.time-header{display:flex;position:sticky;top:0;height:44px;z-index:12;background:#f8fafc;border-bottom:1px solid #cfdbe7}.lane-label{width:175px;flex-shrink:0;position:sticky;left:0;z-index:8;background:#fff;border-right:1px solid #dae3ed;padding:12px 16px;font-size:13px}.lane-label small{display:flex;color:var(--muted);gap:12px;font-size:11px}.lane-label span{margin-left:auto}.time-header .lane-label{background:#f8fafc;padding-top:10px;font-weight:600}.hours{position:relative;width:1200px}.hours span{position:absolute;top:10px;transform:translateX(-50%);font-size:12px;color:#647c92}.hours span:first-child{transform:none;margin-left:6px}.day-label{position:sticky;left:0;background:#edf3f8;border-bottom:1px solid #d8e2eb;padding:5px 15px;font-size:12px;font-weight:700;color:#426481}.lane{display:flex;height:90px;border-bottom:1px solid #edf0f4}.lane-grid{position:relative;width:1200px;flex-shrink:0;background-image:repeating-linear-gradient(to right,transparent 0,transparent 29px,#eaf0f5 29px,#eaf0f5 30px),repeating-linear-gradient(to right,transparent 0,transparent 119px,#cbd9e6 119px,#cbd9e6 120px)}.visit{position:absolute;top:8px;height:53px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;overflow:hidden;border-radius:5px;padding:3px 7px;border:1px solid #b2cfe7;border-left:3px solid #4387bf;background:#e7f2fc;color:#1a4d79;font-weight:500;min-width:0;text-align:left;line-height:1.4}.visit.nursing:hover{background:#d3e8f9}.visit.rehab{background:#fff0e8;color:#8d4e31;border-color:#efcdb8;border-left-color:#d88a62}.visit span{font-size:10px}.visit em{font-style:normal;font-size:10px;opacity:.7}.visit b{font-size:13px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis}.visit small{font-size:10px}.visit.cancelled{opacity:.5;text-decoration:line-through}.travel-link{position:absolute;border:0;padding:0 4px;font-size:10px;color:#8c6b36;background:#fff9ea;border-radius:3px;line-height:19px;max-width:130px;overflow:hidden}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px}.metric{background:white;border:1px solid var(--border);border-radius:11px;padding:19px 22px;min-width:0;border-top:3px solid #a8c6e0}.metric>span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;font-size:30px;font-weight:700;margin:8px 0 3px;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.metric small{color:var(--muted);display:block}.card{background:white;border:1px solid var(--border);border-radius:11px;padding:22px;margin-bottom:20px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:9px;background:white;margin-bottom:20px}table{border-collapse:collapse;width:100%;font-size:14px;white-space:normal}th{text-align:left;font-size:12px;color:#688097;font-weight:600;background:#f6f9fc;border-bottom:1px solid var(--border);padding:12px 16px;white-space:nowrap}td{padding:13px 16px;border-bottom:1px solid #edf1f5;vertical-align:middle}tr:last-child td{border-bottom:0}td small{font-size:12px}td>svg{display:inline;vertical-align:middle;margin:0 6px}.card .table-wrap{border:none;border-radius:0}.empty{padding:45px;text-align:center;color:#7890a6}.bar-group{margin:22px 0}.bar-track{height:12px;border-radius:4px;background:#eef3f8;margin-top:9px;overflow:hidden}.bar-track span{display:block;height:100%;background:#4387bf}.bar-track .coral{background:#d98d67}.reason-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf0f5;font-size:14px}.info,.alert,.demo-banner{background:#edf4fb;border:1px solid #d6e4f2;border-radius:8px;padding:13px 16px;margin-bottom:18px;font-size:13px;color:#3d6487}.alert{background:#fff1ed;color:#993d2d;border-color:#f0d2c8;display:flex;justify-content:space-between;gap:12px}.alert button{padding:0;border:0;background:transparent;color:inherit}.demo-banner{background:#f9f6e9;border-color:#ece4c4;color:#807042;font-size:12px;padding:8px 13px}.toast{position:fixed;top:78px;right:25px;z-index:100;background:#1f664f;color:white;padding:12px 20px;border-radius:9px;box-shadow:0 8px 25px #12392930;display:flex;align-items:center;gap:9px;font-size:14px}.overlay{position:fixed;inset:0;background:#102b4760;z-index:50;display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}.drawer{width:min(580px,100%);height:100dvh;background:white;box-shadow:-12px 0 40px #102c4d20;display:flex;flex-direction:column}.drawer.large{width:min(1000px,100%)}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:23px 26px;border-bottom:1px solid var(--border)}.drawer-head h2{font-size:22px;margin:0}.drawer form{display:flex;flex:1;min-height:0;flex-direction:column}.drawer-body{overflow-y:auto;flex:1;padding:24px 26px}.drawer-footer{display:flex;justify-content:flex-end;gap:10px;padding:17px 25px;border-top:1px solid var(--border);background:#f8fafc}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:13px;font-weight:600}.field>span{color:#4c6479}.field input,.field select{width:100%;font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.check{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:400;margin:8px 0 14px}.validation{background:#fff8e9;color:#92702c;padding:8px 12px;border-radius:7px;margin:12px 0}.validation:empty{display:none}.validation p{display:flex;align-items:center;gap:6px;font-size:13px;margin:5px 0}.money-input{width:120px;min-width:90px}.login{min-height:100dvh;background:linear-gradient(125deg,#102c49 0%,#20496e 55%,#347693 100%);display:flex;align-items:center;flex-direction:column;justify-content:center;padding:35px 20px}.login-brand{display:flex;gap:13px;align-items:center;color:white;font-size:28px;font-weight:700;letter-spacing:.12em;margin-bottom:30px}.login-brand small{display:block;font-size:10px;letter-spacing:.24em;color:#b2cada}.login-card{background:white;padding:35px 38px;border-radius:17px;width:440px;max-width:100%;box-shadow:0 25px 90px #061a3230}.login-card h1{margin:16px 0 6px;font-size:26px}.login-card form{margin-top:23px}.login-card p{font-size:13px}.login-foot{color:#b9ccdb;font-size:12px;margin:22px 0 0}.login-card .wide{margin:10px 0}.login-card .small{font-size:12px;margin-top:14px}@media(max-width:1150px){.sidebar{width:212px}.main{margin-left:212px;width:calc(100% - 212px)}.content{padding:20px}.metrics{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 20px}.two-col{grid-template-columns:1fr}.filters{max-width:100%}}@media(max-width:760px){.sidebar{transform:translateX(-100%);width:245px}.sidebar.open{transform:none}.main{margin-left:0;width:100%}.mobile-menu{display:flex}.topbar{gap:12px;padding:0 12px}.topbar>span{display:none}.topbar .tag{display:none}.content{padding:14px}.page-heading{align-items:flex-start;gap:10px}.page-heading h1{font-size:23px}.page-heading .row{flex-wrap:wrap;justify-content:flex-end}.page-heading button{padding:7px 9px}.metrics{gap:10px}.metric{padding:13px}.metric strong{font-size:25px}.toolbar>.row{flex-wrap:wrap}.date-title{font-size:14px}.filters{gap:6px}.filters select{max-width:140px}.search input{width:140px}.legend .muted{display:none}.section-title .muted{display:none}.drawer-body{padding:18px}.form-grid{gap:0 10px}.login-card{padding:27px 24px}.table-wrap td{padding:11px 12px;min-width:100px}.card{padding:17px}.day-label{font-size:13px}}@media print{.sidebar,.topbar,.toolbar,.page-heading button,.demo-banner,.toast,.overlay,td button{display:none!important}.main{margin:0;width:100%}.content{padding:0}.table-wrap{overflow:visible}body{background:white}.metrics{grid-template-columns:repeat(4,1fr)}}

.adjustment-summary{padding:16px;margin-bottom:20px;border:1px solid #b9d7ee;border-radius:10px;background:#f0f7fc}.adjustment-summary p{margin:8px 0;line-height:1.65}.lane-grid:has(.visit:active){background-color:#f4f9fd}

.password-control{position:relative;width:100%}.password-control input{width:100%;padding-right:50px}.password-control button{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:40px;height:38px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:#46637d}.password-control button:hover{background:#edf4f9}.password-control button:focus-visible{outline:2px solid #236995;outline-offset:0}.field>label{font-size:14px;font-weight:600}

.department-tabs{display:flex;gap:8px;border-bottom:2px solid #dbe5ef;margin-bottom:16px}.department-tabs button{border:0;border-radius:8px 8px 0 0;padding:12px 28px;background:#e8eef5;color:#587087;font-size:16px}.department-tabs button.active{background:#194c78;color:white}.import-toolbar{display:flex;gap:14px;align-items:center;margin:14px 0;flex-wrap:wrap}.paired-schedule .timeline{min-width:1975px}.paired-schedule .hours,.paired-schedule .lane-grid{width:1800px}.paired-schedule .lane-grid{background-image:repeating-linear-gradient(to right,transparent 0,transparent 44px,#e3eaf2 44px,#e3eaf2 45px)}.paired-schedule .hours span{transform:none;padding-left:3px}.paired-schedule .timeline-scroll{max-height:740px}.staff-pair{border-bottom:3px solid #c8d8e8}.paired-schedule .lane{height:99px}.paired-schedule .draft-lane{height:99px;background:#fffcf5}.paired-schedule .draft-lane .lane-label{background:#fffcf5}.pair-continuation{font-size:11px;color:#827250}.paired-schedule .lane-label small{margin-top:8px;align-items:center}.paired-schedule .lane-label .tag{margin-left:0}.paired-schedule .visit{height:68px;padding:4px 5px;top:5px;line-height:1.3}.paired-schedule .visit.draft-visit{border-style:dashed;border-width:2px;background:#fff8e4}.paired-schedule .travel-link{top:76px;font-size:11px;line-height:19px;max-width:175px}.visit-person{display:flex;align-items:center;gap:3px;width:100%;min-height:21px}.visit-person b{flex:1;min-width:0;white-space:nowrap;font-size:13px}.visit-badges{display:inline-flex;gap:2px;flex-shrink:0;flex-wrap:wrap;max-width:38px;justify-content:flex-end}.glyph{display:inline-flex!important;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;font-size:11px!important;line-height:16px;width:16px;height:17px;font-weight:750;background:white;color:#536c84;flex-shrink:0}.glyph-medical{color:#276caa;background:#f3faff}.glyph-care{color:#408257;background:#f0fff5}.glyph-rare{color:#8851a1;background:#faf3ff}.glyph-special{color:#bf4944;background:#fff3ed}.visit-address{font-size:11px;display:flex;align-items:center;gap:3px;max-width:100%;overflow:hidden;white-space:nowrap}.ward-circle{display:inline-flex!important;border:1px solid currentColor;border-radius:50%;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;font-size:10px!important;line-height:1}.client-name{display:flex;align-items:center;gap:8px}.client-name .visit-badges{max-width:none}.draft-lane .lane-grid{background-color:#fffcf6}@media(max-width:760px){.department-tabs button{padding:10px 20px}.paired-schedule .section-title{flex-wrap:wrap}.paired-schedule .lane-label{padding:10px}.import-toolbar .small{display:none}}
.legend{flex-wrap:wrap;row-gap:8px}
.paired-schedule .lane,.paired-schedule .draft-lane{height:79px}.paired-schedule .visit{height:55px;top:3px;padding:2px 5px}.paired-schedule .travel-link{top:59px;line-height:17px;font-size:10px}.paired-schedule .lane-label{padding:6px 12px}.paired-schedule .lane-label small{margin-top:4px}.paired-schedule .visit-person{min-height:18px}.paired-schedule .visit-person b{font-size:12px}.staff-pair{border-bottom-width:2px}.drag-ghost{position:absolute;top:1px;height:57px;z-index:20;pointer-events:none;border:2px solid #176296;background:#e2f2fff0;box-shadow:0 3px 12px #143e6540;border-radius:6px;padding:3px 6px;display:flex;flex-direction:column;color:#123b5c;white-space:nowrap}.drag-ghost strong{font-size:16px;line-height:22px}.drag-ghost span{font-size:11px}.schedule-view-controls{margin:10px 0 12px}.display-settings{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px;background:white;border:1px solid var(--border);border-radius:9px;margin-bottom:14px}.display-settings .field{margin:0}.display-settings p{margin:0;max-width:460px}.quick-overlay{align-items:center;justify-content:center;padding:15px}.quick-move{background:white;width:min(570px,100%);max-height:90dvh;overflow:auto;border-radius:14px;padding:22px;box-shadow:0 20px 80px #102c4d40}.quick-move h2{margin:0;font-size:19px}.move-comparison{display:grid;grid-template-columns:55px 1fr;gap:8px;margin:16px 0;font-size:13px}.move-comparison dt{color:#698097}.move-comparison dd{margin:0;padding:5px 8px;background:#f0f5fa;border-radius:5px}.quick-move .field{margin-bottom:8px}.quick-move .validation{max-height:160px;overflow:auto}.quick-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px;margin-top:16px}.quick-actions button{padding:8px 10px}.week-sheet{background:white;border:1px solid var(--border);border-radius:9px;padding:12px;margin-bottom:15px}.week-sheet>.row{font-size:12px;margin-bottom:8px}.week-sheet .table-wrap{margin:0}.week-matrix{table-layout:fixed;min-width:1050px;font-size:11px}.week-matrix th,.week-matrix td{padding:4px 5px;vertical-align:top}.week-matrix th:first-child{width:110px}.week-matrix th small{display:block;font-size:10px}.week-cell>small{display:block;color:#2a669b;font-size:9px;line-height:13px}.week-cell.week-draft{background:#fff8e5;border-top:1px dashed #d6b36f}.week-cell.week-draft>small{color:#976a25}.week-cell button{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:0 3px;border:0;border-radius:2px;width:100%;font-size:10px;padding:1px 0;line-height:14px;white-space:normal;background:transparent;text-align:left}.week-cell button:hover{background:#e8f1fa}.week-cell button>span:first-child{font-size:9px;font-weight:400}.week-cell button b{font-weight:600;overflow-wrap:anywhere}.week-cell .visit-badges{max-width:none;gap:1px}.week-cell .glyph{width:12px;height:12px;font-size:8px!important;line-height:10px}.week-cell .cancelled{text-decoration:line-through;opacity:.6}.schedule-print-host{position:fixed;inset:0;z-index:110;background:#102b4770;padding:20px;overflow:auto}.schedule-print-dialog{max-width:1200px;margin:auto;background:#f0f3f6;border-radius:12px;padding:20px}.print-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:15px}.print-controls h2{margin:0;flex:1}.print-controls p{width:100%;margin:0}.print-pages{display:flex;flex-direction:column;gap:16px}.print-page{display:block;width:100%;height:auto;box-shadow:0 2px 10px #132b4320;background:white}@media print{body:has(.schedule-print-host)>#root{display:none!important}.schedule-print-host{position:static;inset:auto;padding:0;background:white;overflow:visible}.schedule-print-dialog{max-width:none;padding:0;background:white}.print-controls{display:none!important}.print-pages{display:block}.print-page{box-shadow:none;display:block;width:100%;max-height:100vh;object-fit:contain;break-after:page;page-break-after:always;break-inside:avoid}.print-page:last-child{break-after:auto;page-break-after:auto}}@media(max-width:760px){.schedule-print-host{padding:5px}.schedule-print-dialog{padding:10px}.quick-move{padding:16px}.quick-actions{justify-content:stretch}.quick-actions button{flex:1}.week-matrix{min-width:1000px}}
.actual-quick-buttons{display:grid;gap:10px}.actual-quick-buttons button{min-height:50px}.week-cell .actual-done{color:#167044}.week-cell .actual-pending{color:#916319}.week-cell button>small{font-size:9px}
.drag-feedback{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:90;background:#173f62;color:white;padding:10px 18px;border-radius:9px;box-shadow:0 3px 18px #16334d40;pointer-events:none;font-size:13px;white-space:nowrap}.drag-feedback strong{font-size:20px}.actual-fields{border:0;padding:0;margin:0;min-width:0}
.personal-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.personal-day{background:white;border:1px solid var(--border);border-radius:10px;padding:12px}.personal-day.is-today{border-color:#3c84b8;box-shadow:0 0 0 1px #3c84b8}.personal-day h3{margin:0 0 10px;color:#285675}.personal-day h3 small{float:right;color:#778899}.personal-visit{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:left;margin:6px 0;padding:10px;white-space:normal;min-height:85px}.personal-time{font-size:13px;color:#446782}.personal-visit .client-name{justify-content:space-between}.personal-visit small{font-size:10px}.personal-day p{margin:10px 0}@media(max-width:760px){.personal-week{grid-template-columns:1fr}.schedule-view-controls button{min-height:44px}}
.paired-schedule .lane.has-origin{height:110px}.origin-marker{position:absolute;top:80px;height:24px;z-index:7;display:block;overflow:hidden;text-overflow:ellipsis;padding:2px 5px;border:1px dashed #a77b37;border-radius:4px;background:#fff8e5;color:#825b24;font-size:10px;text-align:left;white-space:nowrap}.origin-list{background:#fffaf0;border:1px dashed #d8bc8a;border-radius:8px;padding:12px;margin:12px 0}.origin-list>small{display:block;color:#887043;font-size:11px;margin-bottom:6px}.origin-list>button{display:flex;justify-content:flex-start;flex-wrap:wrap;white-space:normal;width:100%;margin-top:5px;font-size:12px;text-align:left;background:#fffdf8}
.timeline-zoom{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.timeline-zoom label{display:flex;gap:6px;align-items:center;font-size:12px}.timeline-zoom input{width:140px;padding:0}.timeline-zoom span,.timeline-zoom small{font-size:11px;color:#62758a}.timeline-zoom button{min-width:40px;min-height:40px}.paired-schedule .hours span:last-child{transform:translateX(-100%)}.paired-schedule .hours{flex-shrink:0}.paired-schedule .timeline-scroll{touch-action:pan-x pan-y}.paired-schedule .visit-badges{max-width:38px}.paired-schedule .visit-person b{min-width:8px}

/* Keep visit addresses readable on narrow tablet timelines. */
.address-text{min-width:0;white-space:normal;overflow-wrap:anywhere}.visit-address{align-items:flex-start;white-space:normal;overflow:visible;flex-shrink:0}.paired-schedule .visit{height:67px;justify-content:flex-start}.paired-schedule .lane,.paired-schedule .draft-lane{height:91px}.paired-schedule .travel-link{top:71px}.paired-schedule .has-origin{height:122px}.paired-schedule .origin-marker{top:94px}.address-line{display:flex;align-items:flex-start;gap:4px;max-width:100%;white-space:normal}.address-details{padding:10px 12px;background:#eef5fa;border-radius:7px;margin:10px 0 16px;font-size:14px;white-space:normal;overflow-wrap:anywhere}.address-details>div{display:flex;gap:5px;align-items:flex-start;margin-top:3px}.address-details p{margin:4px 0 0}.personal-visit .address-line{font-size:12px}
@media(max-width:1100px){.sidebar{transform:translateX(-100%);width:245px}.sidebar.open{transform:none}.main{margin-left:0;width:100%}.mobile-menu{display:flex}}


.paired-schedule .hours span:not(:first-child){transform:translateX(-50%)}.paired-schedule .hours span:last-child{transform:translateX(-100%)}

/* Always-visible navigation and refresh, including on tablets. */
.topbar{position:sticky;top:0;z-index:30;gap:12px;height:auto;min-height:68px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.persistent-actions{display:flex;gap:8px;align-items:center}.topbar .schedule-home{background:#e5eff8;border-color:#b7cde0;color:#194c78}.topbar .schedule-home[aria-current=page]{box-shadow:inset 0 -3px #194c78}.topbar>span{margin-left:auto}.topbar .row .tag{display:none}.sidebar{z-index:40}.topbar button{min-height:42px}.visit-address .address-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visit-address{overflow:hidden;min-height:16px;width:100%}.mobile-menu{gap:5px}.mobile-menu span{font-size:12px}
@media(max-width:1100px){.topbar>span{display:none}.topbar .row{margin-left:auto}.topbar{padding-left:12px;padding-right:12px;gap:8px}}
@media(max-width:540px){.topbar{gap:6px}.topbar button{font-size:12px;padding:6px 8px}.persistent-actions{gap:5px}.mobile-menu span{display:none}.topbar .row{margin-left:0}.topbar .schedule-home{gap:4px}}

/* Confirmation uses one color across departments. */
.paired-schedule .visit.rehab:not(.draft-visit){background:#e7f2fc;color:#1a4d79;border-color:#b2cfe7;border-left-color:#4387bf}.paired-schedule .visit.rehab:not(.draft-visit):hover{background:#d3e8f9}.paired-schedule .visit.draft-visit{background:#fff8e4;color:#805d22;border-color:#d9b775}.glyph-warning{color:#b37114;background:#fff5da}.glyph-public{color:#39744c}.glyph-mental{color:#78589b}.glyph svg{flex-shrink:0}.flag-options{gap:8px 16px}.flag-options .check{margin:4px 0}.mark-legend{font-size:12px;margin:8px 0}.mark-legend summary{cursor:pointer;color:#436c91}.mark-legend>div{padding:8px}.personal-week{display:flex;flex-direction:column;gap:18px}.personal-day{padding:16px;border-left:4px solid #86acca}.personal-day h3{display:flex;gap:10px;align-items:center;font-size:18px}.day-totals{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:13px;color:#547087}.day-totals b{font-size:18px;color:#184a77;margin-left:4px}.personal-day-visits{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}.personal-visit{margin:0;min-height:140px;padding:13px;font-size:14px}.personal-visit .visit-badges{max-width:none;flex-wrap:wrap}.personal-visit .client-name{flex-wrap:wrap}.personal-visit .address-line .address-text{white-space:normal}.personal-time{font-size:15px;font-weight:700}.personal-visit .tag{font-size:13px}.visit-badges{max-height:52px;overflow:auto}.personal-visit .visit-badges,.client-name .visit-badges{max-height:none}.paired-schedule .visit-person{align-items:flex-start}
@media(max-width:600px){.personal-day-visits{grid-template-columns:1fr}}

.app-version{font-size:11px;white-space:nowrap;color:#62758a}.login-version{color:#dce9f4;margin-top:15px;font-size:12px}.persistent-actions{flex-wrap:wrap}.app-version{order:3;width:100%;line-height:1}.personal-week .visit-badges{overflow:visible}

/* Follow the drag pointer, leaving the drop target unobstructed. */
.drag-feedback{top:auto;left:auto;transform:none;height:76px;padding:7px 10px;border-radius:8px;display:flex;flex-direction:column;justify-content:center;gap:1px;pointer-events:none;user-select:none;white-space:nowrap;overflow:hidden;box-sizing:border-box;box-shadow:0 3px 10px #16334d30}.drag-feedback strong{font-size:17px;line-height:22px}.drag-feedback span,.drag-feedback small{display:block;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:16px}.drag-feedback small{color:#d3e5f4}.drag-ghost{height:67px;background:#72b7ed18;box-shadow:none;border:2px dashed #176296;padding:0}

.loading-spinner{width:21px;height:21px;border:3px solid #b5cde2;border-top-color:#2469a0;border-radius:50%;display:inline-block;flex-shrink:0;animation:loading-spin .8s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.operation-loading{position:fixed;z-index:130;top:90px;left:50%;transform:translateX(-50%);background:#fff;border:1px solid #bfd3e3;border-radius:10px;padding:12px 18px;display:flex;align-items:center;gap:10px;box-shadow:0 5px 22px #18384d30;max-width:calc(100vw - 24px);pointer-events:none;font-size:14px}.operation-loading small{color:#62758a}.toast{pointer-events:none;z-index:140;max-width:calc(100vw - 30px)}.toast button{background:transparent;border:0;color:white;padding:2px}.sidebar-close{align-self:flex-end;background:transparent;border:0;color:#dbe8f5;font-size:12px;padding:3px 7px;margin-bottom:12px}.topbar .mobile-menu{display:flex}.sidebar-backdrop{display:none}.sidebar-collapsed .sidebar{transform:translateX(-100%);visibility:hidden}.sidebar-collapsed .main{margin-left:0;width:100%}.sidebar{transition:transform .18s ease}.main{transition:margin-left .18s ease,width .18s ease}.import-toolbar .btn:has(input:disabled){opacity:.6;pointer-events:none}
@media(max-width:1100px){.app .sidebar{width:min(290px,calc(100vw - 48px));transform:translateX(-100%);visibility:hidden;z-index:80;padding-top:15px}.app .sidebar.open{transform:none;visibility:visible}.app .main{margin-left:0;width:100%}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:70;background:#102b4770;border:0;border-radius:0;padding:0}.sidebar-backdrop:hover{background:#102b4770}.topbar{z-index:30}.sidebar .brand{font-size:20px}.sidebar .workspace-label{margin-top:15px}}
@media(prefers-reduced-motion:reduce){.loading-spinner{animation-duration:2s}.sidebar,.main{transition:none}}

.visit-hover-info{position:fixed;z-index:95;width:280px;max-width:calc(100vw - 16px);max-height:250px;overflow:hidden;pointer-events:none;display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:#fff;border:1px solid #a9c6de;border-radius:9px;box-shadow:0 6px 24px #13314d35;font-size:12px;color:#234c70}.visit-hover-info>b{font-size:15px}.visit-hover-info>strong{font-size:18px}.visit-hover-info .visit-badges{max-width:none;max-height:none;overflow:visible}.visit-hover-info .address-text{white-space:normal}.visit-time{max-width:100%;white-space:normal;line-height:13px;font-variant-numeric:tabular-nums}@media(hover:none){.visit-hover-info{display:none}}

.client-status{display:flex;gap:3px;flex-wrap:wrap;font-size:11px}.client-status>span{display:inline-block;background:#fff0d5;color:#8f531c;border:1px solid #e8c993;border-radius:3px;padding:0 4px;line-height:17px;white-space:nowrap}.client-status.compact{max-width:100%;overflow:hidden;flex-wrap:nowrap}.client-status.compact>span{font-size:9px;line-height:13px;padding:0 2px}.visit:has(.client-status){height:81px}.lane:has(.client-status){min-height:105px}.lane:has(.client-status) .travel-link{top:85px}.lane.has-origin:has(.client-status){min-height:136px}.lane:has(.client-status) .origin-marker{top:108px}.visit-hover-info{max-height:250px}
/* Reachable navigation stays near the user's hands, outside the timetable. */
.workspace-dock{position:fixed;bottom:0;left:242px;right:0;z-index:35;display:flex;justify-content:center;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid #dce4ed;box-shadow:0 -4px 16px #1639570b}
.workspace-dock button{min-height:44px;min-width:180px}
.workspace-dock button[aria-current=page]{background:#184a77;color:white;border-color:#184a77}
.main .content{padding-bottom:110px}
.sidebar-collapsed .workspace-dock{left:0}
@media(min-width:1101px) and (max-width:1280px){.workspace-dock{left:212px}.sidebar-collapsed .workspace-dock{left:0}}
@media(max-width:1100px){.workspace-dock{left:0}}
@media(max-width:480px){.workspace-dock{gap:6px;padding-left:10px;padding-right:10px}.workspace-dock button{min-width:0;flex:1;font-size:12px;padding:8px 6px}}
@media print{.workspace-dock{display:none}.main .content{padding-bottom:0}}
.development-entry summary,.development-panel summary{cursor:pointer;font-weight:650}
.development-entry p,.development-panel details p{margin:12px 0}
.development-panel{max-width:1050px;margin:auto}.development-panel>.row{margin-bottom:18px}
.development-intro{border-top:3px solid #184a77}.development-intro h2{font-size:24px}
.development-intro .row{margin-bottom:12px}.development-items{display:grid;gap:0}
.development-items article{padding:18px 0;border-top:1px solid #e2e8ef}.development-items article:first-child{border-top:0;padding-top:0}
.development-items h3{margin:0}.development-items p{margin:9px 0 0;font-size:15px;line-height:1.8}
.development-panel textarea{font-size:15px;line-height:1.7}.development-panel dd{margin:4px 0 14px;overflow-wrap:anywhere;font-size:14px}
.development-reload{margin-top:18px;font-size:14px}

.google-route-panel{border:1px solid #cbd5e1;border-radius:12px;padding:18px;margin-top:18px;min-width:0}.google-route-panel h3{margin-top:0}.google-addresses{display:grid;grid-template-columns:1fr 1fr;gap:16px}.google-addresses p{overflow-wrap:anywhere}.google-route-result{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:16px;margin-top:16px;color:#1f2937}.google-route-result b{font-size:1.3rem}.google-attribution{font-family:Arial,sans-serif;font-weight:400;font-size:14px;font-style:normal;letter-spacing:normal;white-space:nowrap;color:#5e5e5e}.google-route-panel button{white-space:normal}.google-route-panel a{text-decoration:underline}@media(max-width:600px){.google-addresses{grid-template-columns:1fr;gap:0}}

.inline-client-address{padding:14px;margin:12px 0;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}.inline-client-address summary,.client-address-import summary{cursor:pointer;font-weight:700}.client-address-import{margin-bottom:16px}.client-address-import .table-wrap{max-height:420px;overflow:auto}.client-address-import p,.inline-client-address p{margin:10px 0}.client-address-import table td{white-space:normal;overflow-wrap:anywhere;min-width:80px}

.sheet-picker{width:100%;min-width:0;font-size:14px;line-height:1.5}.sheet-picker input{width:100%;font-size:14px}.sheet-options{display:flex;flex-direction:column;gap:4px;max-height:190px;overflow:auto;margin-top:8px;padding:4px;border:1px solid #dce4ed;border-radius:8px}.sheet-options button{font-size:14px;line-height:1.5;font-weight:500;padding:8px 10px;white-space:normal;overflow-wrap:anywhere;text-align:left;justify-content:flex-start;min-height:38px}.sheet-options button.selected{background:#e1effd;border-color:#245f94}.sheet-picker p{font-size:14px;margin:8px 0}.recurring-fields{border:0;padding:0;margin:0;min-width:0}.recurring-candidates{max-height:220px;overflow:auto;padding:8px}.recurring-candidates label{margin-bottom:10px}.recurring-preview .table-wrap{max-height:350px;overflow:auto}.recurring-preview th{position:sticky;top:0}.recurring-editor .drawer-head h2{font-size:20px}

/* Google distances retain the existing amber palette; manual distances stay unchanged. */
.paired-schedule .travel-link.google-measured{border:1px solid #8c6b36;background:#fff9ea;color:#8c6b36;box-sizing:border-box}

.recurring-expiry{background:#fff8e7;border:1px solid #b88732;border-radius:8px;padding:12px 16px;margin-bottom:16px}.recurring-expiry h3{margin:0 0 6px}.recurring-expiry p{margin:4px 0 8px}.recurring-expiry-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid #e7d3ae}

.timeline-folds{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.timeline-folds span{font-size:12px;color:#547087}.timeline-folds button[aria-expanded="true"]{background:#e8f1fa;border-color:#527da5}.paired-schedule .fold-count{font-size:10px;padding:2px 4px;background:#f6e9f5;color:#74446e;min-height:22px}.paired-schedule .lane-label small{flex-wrap:wrap;gap:3px}.glyph-assessment{background:#f3eafb;color:#784296;border-color:#b998ce}

.route-change-prompt{position:fixed;z-index:160;right:18px;bottom:20px;width:min(440px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:auto;padding:18px;background:#fff;border:1px solid #9db7d0;border-radius:12px;box-shadow:0 8px 32px #142e4940}.route-change-prompt h3{margin:0}.route-change-prompt p{font-size:13px}.route-change-rows{max-height:200px;overflow:auto;margin:10px 0}.route-change-row{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid #e0e7ef}.route-change-row input{width:auto}.route-change-row small{display:block;color:#63778c;overflow-wrap:anywhere}.recurring-list-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid #dce5ee;padding:12px 0}

.route-prompt-backdrop{position:fixed;inset:0;z-index:155;background:#142e4915}

.import-dropzone{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 20px;margin:16px 0;border:2px dashed #8faac4;border-radius:10px;background:#f4f8fc;text-align:center;box-sizing:border-box}.import-dropzone strong{font-size:16px}.import-dropzone span,.import-dropzone small{font-size:14px;color:#526b82}.import-dropzone.is-over{border-color:#24649a;background:#deedfa}.import-dropzone.is-disabled{opacity:.65}.import-dropzone .alert{margin:0;max-width:100%}.import-toolbar{flex-wrap:wrap}.import-history-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.import-history-heading h3{margin:0}.import-history-filters{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.import-history-filters label{display:flex;flex-direction:column;gap:6px;font-size:14px}.import-history-filters input{min-width:200px}.import-history-table{font-size:14px}.import-history-table td{vertical-align:top}.import-history-file{overflow-wrap:anywhere;min-width:170px}.import-history-status{display:inline-block;color:#21644d;background:#e6f4ed;border-radius:5px;padding:4px 8px;white-space:nowrap}.import-history-counts{display:block;white-space:nowrap}.import-history-help{margin-top:18px;font-size:14px}.import-history-help summary{cursor:pointer}

.visit-delete-overlay{position:fixed;inset:0;background:#142e4970;z-index:500;display:flex;align-items:center;justify-content:center;padding:16px}.visit-delete-confirm{width:min(420px,100%);background:white;color:#17314a;border-radius:12px;padding:24px;box-shadow:0 12px 48px #10294040}.visit-delete-confirm h2{font-size:20px;margin:0 0 16px}.visit-delete-confirm p{font-size:16px;line-height:1.6}.visit-delete-confirm .row{justify-content:flex-end;gap:12px}.visit-delete-confirm button{min-height:44px}.drawer-footer{flex-wrap:wrap}

.recurring-after-time{grid-column:1/-1}.actual-reset{margin-top:16px;padding-top:12px;border-top:1px solid #dce4ec}.visit{user-select:none;-webkit-user-select:none}.visit:active{cursor:grabbing}

.account-toolbar{display:flex;align-items:center;gap:12px;margin-left:auto;min-width:0}.signed-in-person{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#edf5f8;border:1px solid #dce9ef;border-radius:12px;min-width:0}.person-avatar{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#245876;color:white;font-size:16px;font-weight:700}.signed-in-person>div{min-width:0}.signed-in-person strong{display:block;font-size:15px;line-height:1.45;color:#16334d;overflow-wrap:anywhere}.signed-in-person strong small{font-size:12px;font-weight:400;margin-left:5px}.signed-in-person div>span{display:block;font-size:12px;color:#5c7082;line-height:1.5}.signed-in-person i{font-style:normal}.account-settings{display:flex;align-items:center;gap:6px}@media(max-width:760px){.topbar{flex-wrap:wrap;gap:8px}.topbar>span{display:none}.account-toolbar{gap:6px}.signed-in-person{padding:5px 8px;gap:7px}.person-avatar{width:30px;height:30px;font-size:14px}.signed-in-person strong{font-size:14px}.signed-in-person div>span{font-size:11px}.account-settings span{display:none}.account-settings{padding:9px}.topbar .persistent-actions{gap:4px}}

/* Schedule time editing and duration markers */
.visit-time-fields{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:18px;padding:18px;background:#f0f6f9;border:1px solid #d6e4ec;border-radius:12px;align-items:start}
.visit-time-inputs{display:grid;grid-template-columns:1fr 20px 1fr;gap:10px;align-items:center}.time-separator{padding-top:23px;text-align:center;color:#648095}.visit-time-fields input{font-size:19px;font-variant-numeric:tabular-nums;min-width:0;width:100%;height:46px}.duration-result span{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.duration-result small{font-size:10px;color:#427166}.duration-result input{background:#e4f1ed;color:#17624e;font-weight:700;text-align:center;border-color:#b9d7cd}.time-error{grid-column:1/-1;margin:0;color:#ad3c32;font-size:12px}
.duration-badge{display:inline-flex!important;align-items:center;justify-content:center;width:25px;height:25px;min-width:25px;border:1.5px solid currentColor;border-radius:50%;font-size:10px;font-style:normal;font-weight:800;line-height:1;vertical-align:middle;background:#ffffffa8;color:#214b64;box-sizing:border-box;font-variant-numeric:tabular-nums;flex-shrink:0}.duration-badge.square{border-radius:3px}.visit-time .duration-badge{width:22px;height:22px;min-width:22px;font-size:9px}.visit-time{display:flex;align-items:center;gap:3px}.recurring-editor .drawer-footer{background:#f7fafc;border-top:1px solid #dce6ed;padding:16px 22px;gap:12px}.recurring-editor .drawer-footer .primary{margin-left:auto}.recurring-editor .form-grid{gap:18px}.recurring-after-time{background:#fafbfd;border:1px solid #e1e7ed}.recurring-after-time p{margin:5px 0 10px}.recurring-editor details{margin-top:18px;padding:12px;border:1px solid #dce6ed;border-radius:8px}
@media(max-width:520px){.visit-time-fields{grid-template-columns:1fr;padding:14px;gap:12px}.duration-result{display:grid;grid-template-columns:1fr 100px;align-items:center}.recurring-editor .drawer-footer{flex-direction:column}.recurring-editor .drawer-footer button{width:100%;margin:0!important}}

.visit-kind{display:inline-block;flex-shrink:0;padding:2px 4px;border-radius:3px;font-size:9px;line-height:1.3;font-weight:700;background:#edf1f5;color:#506275;border:1px solid #cfdae5}.kind-緊急{background:#fff0ee;color:#b52c2c;border-color:#eca7a0}.kind-追加{background:#fff4d9;color:#875400;border-color:#e9c877}.kind-振替{background:#f1eaff;color:#69409b;border-color:#c8afe8}.kind-代行{background:#e0f5f2;color:#146960;border-color:#94c9bd}.move-scope{border:1px solid #cbdce7;border-radius:10px;padding:16px;margin:16px 0}.move-scope legend{font-weight:700}.move-scope label{display:flex;align-items:center;gap:8px;padding:10px;background:#f3f7fb;margin:5px 0;border-radius:6px}.move-scope input{width:18px;height:18px}.move-scope p{font-size:12px;color:#64748b}.move-target{padding:12px;background:#eff6fb;border-radius:8px;font-weight:700}

.password-control input::-ms-reveal{display:none}
.password-control input::-ms-clear{display:none}
.end-time-stepper{display:flex;gap:6px;margin-top:7px}.end-time-stepper button{flex:1;min-height:32px;padding:4px 7px;font-size:12px}.time-input-help{grid-column:1/-1;font-size:12px;color:#577087;margin:0}.visit-time-inputs{align-items:start}.time-separator{padding-top:37px}

.time-entry{position:relative;min-width:0}.time-entry-control{position:relative}.time-entry-control input{padding-right:40px!important}.clock-picker-button{position:absolute;right:3px;top:3px;width:36px;height:40px;min-height:0;padding:5px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:#244a66}.time-picker{position:absolute;z-index:20;top:100%;right:0;min-width:240px;padding:14px;background:white;border:1px solid #b7cedf;box-shadow:0 8px 25px #163e6033;border-radius:10px;display:grid;gap:12px}.time-picker select{width:80px;font-size:20px;padding:8px}.time-picker .row{justify-content:space-between}.time-picker button{font-size:13px;padding:8px 12px}.visit-time-inputs>.field{min-width:0}

.visit-time-fields .field>span:first-child{min-height:20px;line-height:20px;display:block;margin:0}.visit-time-fields .field{gap:6px}.visit-time-fields .duration-result input{margin:0;height:46px}.visit-time-fields .time-entry-control input{height:46px}

/* Compact weekly planning controls */
.lane-label{width:140px;padding-left:10px;padding-right:10px}.login-card>h1,.login-card>p:first-of-type{text-align:center}.login-card>.tag{display:flex;width:max-content;margin-inline:auto}.workspace-dock{display:none!important}.main .content{padding-bottom:28px}
.split-time-control{display:grid;grid-template-columns:minmax(46px,1fr) auto minmax(46px,1fr);align-items:center;gap:7px}.split-time-control input{width:100%;padding:8px!important;text-align:center}.split-time-control>span{font-size:20px;font-weight:700;color:#60788e}.split-time-control .clock-picker-button{display:none;position:static;width:40px}
.recurring-after-time{grid-column:1/-1;margin-top:-19px;padding:0 18px 16px;background:#f0f6f9;border:1px solid #d6e4ec;border-top:0;border-radius:0 0 12px 12px}.recurring-after-time button{width:100%}.actual-confirm{margin:14px 0;padding:14px;border:1px solid #9fc0da;background:#eff7fc;border-radius:10px}.actual-confirm p{margin-bottom:10px}.compact-confirm{width:min(430px,100%)}
.timeline{--vertical-scale:1}.timeline .lane{height:calc(90px * var(--vertical-scale))!important;min-height:calc(90px * var(--vertical-scale))!important}.timeline .visit{top:calc(8px * var(--vertical-scale));height:calc(53px * var(--vertical-scale))!important;padding-top:calc(3px * var(--vertical-scale));padding-bottom:calc(3px * var(--vertical-scale))}.timeline .visit span,.timeline .visit em,.timeline .visit small{font-size:max(8px,calc(10px * var(--vertical-scale)))}.timeline .visit b{font-size:max(10px,calc(13px * var(--vertical-scale)))}.timeline .lane-label{font-size:max(10px,calc(13px * var(--vertical-scale)));padding-top:calc(12px * var(--vertical-scale));padding-bottom:calc(12px * var(--vertical-scale))}.timeline .lane-label small{font-size:max(9px,calc(11px * var(--vertical-scale)))}.vertical-scale{display:flex;align-items:center;gap:6px}.vertical-scale input{width:110px}.timeline-zoom{margin-bottom:8px}
.timeline .lane .travel-link{top:calc(64px * var(--vertical-scale))!important;min-height:calc(19px * var(--vertical-scale));line-height:max(13px,calc(17px * var(--vertical-scale)));font-size:max(8px,calc(10px * var(--vertical-scale)));padding-top:calc(1px * var(--vertical-scale));padding-bottom:calc(1px * var(--vertical-scale))}.one-year-option{grid-column:1/-1;padding:10px 12px;background:#f2f7fb;border:1px solid #d4e2ec;border-radius:8px}.page-back{gap:6px}
/* Keep all three card lines and the distance controls in separate vertical bands. */
.timeline .lane{--card-top:max(3px,calc(5px * var(--vertical-scale)));--card-line:max(12px,calc(16px * var(--vertical-scale)));--card-pad:max(2px,calc(3px * var(--vertical-scale)));--status-line:0px;--result-line:0px;--origin-height:0px;--card-height:calc(var(--card-line) * 3 + var(--card-pad) * 2 + 2px + var(--status-line) + var(--result-line));--travel-top:calc(var(--card-top) + var(--card-height) + 3px);--travel-height:max(16px,calc(19px * var(--vertical-scale)));height:calc(var(--travel-top) + var(--travel-height) + 5px + var(--origin-height))!important;min-height:calc(var(--travel-top) + var(--travel-height) + 5px + var(--origin-height))!important}
.timeline .lane:has(.visit .client-status){--status-line:var(--card-line)}
.timeline .lane:has(.visit>small){--result-line:var(--card-line)}
.timeline .lane.has-origin{--origin-height:calc(var(--travel-height) + 4px)}
.timeline .lane .visit{top:var(--card-top);height:var(--card-height)!important;padding:var(--card-pad) max(2px,calc(5px * var(--vertical-scale)));justify-content:flex-start;line-height:var(--card-line);gap:0}
.timeline .visit .visit-time,.timeline .visit .visit-person,.timeline .visit .visit-address,.timeline .visit>.client-status,.timeline .visit>small{height:var(--card-line);min-height:var(--card-line);line-height:var(--card-line);flex-shrink:0;max-width:100%;white-space:nowrap;overflow:hidden;margin:0;align-items:center}
.timeline .visit .visit-person b{line-height:var(--card-line);overflow:hidden;text-overflow:ellipsis}
.timeline .visit .visit-address{white-space:nowrap}
.timeline .visit .duration-badge{width:var(--card-line);height:var(--card-line);min-width:var(--card-line);font-size:max(7px,calc(8px * var(--vertical-scale)));line-height:1;border-width:1px;padding:0}
.timeline .visit .ward-circle{width:calc(var(--card-line) - 2px);height:calc(var(--card-line) - 2px);min-width:calc(var(--card-line) - 2px);font-size:max(7px,calc(9px * var(--vertical-scale)))!important;line-height:1}
.timeline .visit .visit-kind,.timeline .visit .client-status>span{font-size:max(7px,calc(9px * var(--vertical-scale)));line-height:calc(var(--card-line) - 2px);padding:0 2px;max-height:var(--card-line)}
.timeline .lane .travel-link{top:var(--travel-top)!important;height:var(--travel-height);min-height:var(--travel-height);line-height:calc(var(--travel-height) - 2px);padding:0 3px;box-sizing:border-box;white-space:nowrap}
.timeline .lane .origin-marker{top:calc(var(--travel-top) + var(--travel-height) + 3px);height:var(--travel-height);line-height:calc(var(--travel-height) - 2px);font-size:max(8px,calc(10px * var(--vertical-scale)));padding:0 3px}
.settings-jump{position:sticky;top:6px;z-index:15;display:flex;gap:8px;flex-wrap:wrap;padding:10px;margin-bottom:14px;background:#f3f6faf2;border:1px solid #d7e1ea;border-radius:10px;backdrop-filter:blur(6px)}.settings-anchor{scroll-margin-top:90px}.home-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.home-actions button{justify-content:space-between;min-height:54px;text-align:left;white-space:normal}
@media(max-width:1100px){.split-time-control{grid-template-columns:minmax(46px,1fr) auto minmax(46px,1fr) 40px}.split-time-control .clock-picker-button{display:flex}.app .sidebar{width:min(240px,calc(100vw - 96px))}.content{padding-bottom:24px}}

.account-toolbar .account-logout{order:3;min-height:44px;white-space:nowrap}.account-toolbar{margin-left:auto;flex-wrap:wrap}.account-toolbar .account-logout span{display:inline}@media(max-width:540px){.topbar .account-toolbar{width:100%;justify-content:flex-end}.topbar .account-logout{font-size:14px;padding:9px 12px}}

@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none!important}}

.app-version{font-size:12px}

/* Shared feedback standard: centre, non-blocking, responsive. */
.operation-loading,.toast{position:fixed;top:45%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;overflow-wrap:anywhere;z-index:100001}
@media(max-height:420px){.operation-loading,.toast{top:40%;max-height:calc(100dvh - 24px);overflow:auto}}
@media print{.operation-loading,.toast{display:none!important}}

.portal-startup{min-height:55vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#18344f;font:16px/1.6 system-ui,sans-serif}.portal-startup p{margin:0}.portal-startup a{padding:12px;color:#18344f}.portal-startup-spinner{display:inline-block;width:24px;height:24px;border:3px solid #ced8e2;border-top-color:#18344f;border-radius:50%;animation:portal-startup-turn .8s linear infinite}@keyframes portal-startup-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.portal-startup-spinner{animation:none}}
button.actual-confirmed-button{background:#bf2637;border-color:#bf2637;color:#fff}
button.actual-confirmed-button:hover{background:#a31e2d;border-color:#a31e2d}
.actual-dialog,.actual-batch-dialog{max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;padding:16px;border-radius:8px}
.actual-dialog{width:min(440px,calc(100vw - 32px));font-size:14px}
.actual-dialog h2,.actual-batch-dialog h2{font-size:17px;overflow-wrap:anywhere}
.actual-dialog>p,.actual-batch-dialog>p{margin:8px 0}
.actual-dialog .actual-quick-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.actual-dialog .actual-quick-buttons button{min-height:44px;padding:6px 8px;white-space:normal}
.actual-dialog .actual-detail-toggle{width:100%;font-size:13px;min-height:40px}
.actual-detail-toggle,.actual-dialog-actions{margin:10px 0 0}
.actual-batch-toolbar{margin:16px 0}
.actual-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.actual-dialog .field,.actual-batch-row>*{min-width:0}
.actual-dialog-actions button{white-space:normal;min-height:44px}
.actual-batch-dialog{width:min(600px,calc(100vw - 32px));font-size:14px}
.actual-batch-list{margin-top:8px;max-height:42dvh;overflow:auto;padding-right:4px}
.actual-batch-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,150px);gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #d9e2e8}
.actual-batch-row .check{margin:0;align-items:flex-start}
.actual-batch-row small{display:block;margin-top:4px;overflow-wrap:anywhere}
.actual-batch-row select{width:100%;margin:3px 0}
@media(max-width:520px){.actual-dialog .form-grid{grid-template-columns:1fr}.actual-batch-row{grid-template-columns:1fr}.actual-dialog-actions{align-items:stretch}.actual-dialog-actions button{flex:1 1 180px}}
.sales-surface .section-title{flex-wrap:wrap;gap:10px}.sales-surface .section-title h2{white-space:nowrap}
@media(max-width:1100px){.app.sales-surface{display:block}.app.sales-surface .sidebar:not(.open){display:none}.app.sales-surface .sidebar.open{position:fixed}.app.sales-surface .main{margin-left:0;width:100%;min-width:0}}
.transfer-label{display:block;font-size:12px;color:#315e72;white-space:normal;overflow-wrap:anywhere}.visit .visit-address{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Compact identity and toolbar layout; preserve full names at narrow widths. */
.topbar.compact-topbar{min-height:64px;padding:8px 20px;gap:12px;flex-wrap:nowrap;letter-spacing:0}
.compact-topbar .header-breadcrumb{display:none}
.compact-topbar .persistent-actions{flex-wrap:nowrap;gap:10px;flex-shrink:0}
.compact-topbar .app-version{order:0;width:auto;line-height:1.4;font-size:11px}
.compact-topbar button{min-height:36px;padding:7px 10px;font-size:13px;border-radius:6px}
.compact-topbar .mobile-menu{width:38px;min-width:38px;padding:7px}
.compact-topbar .mobile-menu span{display:none}
.compact-topbar .account-toolbar{flex-wrap:nowrap;gap:8px;min-width:0;margin-left:auto}
.compact-topbar .signed-in-person{padding:0 12px 0 0;border:0;border-right:1px solid #dce4ed;border-radius:0;background:transparent;gap:9px;min-width:0;max-width:480px}
.compact-topbar .person-avatar{width:32px;height:32px;font-size:14px}
.compact-topbar .identity-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;line-height:1.4}
.compact-topbar .signed-in-person strong{font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.compact-topbar .identity-permission{font-size:11px;color:#315f73;white-space:normal;overflow-wrap:anywhere}
.compact-topbar .signed-in-person .identity-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.compact-topbar .identity-development{font-size:10px;color:#61727e;border-left:1px solid #d4dee5;padding-left:6px}
.compact-topbar .account-settings{width:36px;min-width:36px;padding:7px}
.compact-topbar .account-settings span{display:none}
.compact-topbar .account-logout{min-height:36px;flex-shrink:0}
.schedule-view-controls{gap:6px;margin:8px 0}
.schedule-view-controls button{min-height:36px;padding:6px 10px;font-size:13px}
.schedule-view-controls .schedule-print-button{width:36px;min-width:36px;padding:6px}
.schedule-print-button span{display:none}
.schedule-section>.muted.small{margin:6px 0;font-size:11px;line-height:1.5}
.schedule-section .section-title{margin-bottom:8px}
.timeline-folds{margin:8px 0;gap:8px}
.timeline-folds button,.timeline-zoom button{min-height:34px;padding:5px 9px;font-size:12px}
.timeline-zoom{margin:6px 0;gap:8px}
@media(max-width:760px){
 .topbar.compact-topbar{display:grid;grid-template-columns:38px minmax(0,1fr) 36px auto;gap:8px;padding:8px 12px}
 .compact-topbar .mobile-menu{grid-column:1;grid-row:1}
 .compact-topbar .persistent-actions{grid-column:2;grid-row:1;gap:8px}
 .compact-topbar .persistent-actions button{width:36px;min-width:36px;padding:7px}
 .compact-topbar .persistent-actions button span{display:none}
 .compact-topbar .account-toolbar{display:contents}
 .compact-topbar .account-settings{grid-column:3;grid-row:1}
 .compact-topbar .account-logout{grid-column:4;grid-row:1}
 .compact-topbar .signed-in-person{grid-column:1/-1;grid-row:2;max-width:none;border:0;border-top:1px solid #edf1f5;padding:7px 0 0;justify-content:flex-start}
 .compact-topbar .signed-in-person strong{font-size:14px}
 .schedule-view-controls{gap:6px}
 .schedule-view-controls button{min-height:40px;font-size:12px}
}
@media print{.topbar.compact-topbar{display:none}}
.schedule-output-controls{display:flex;align-items:center;gap:6px;margin-left:auto}
.schedule-page-heading{gap:12px;flex-wrap:wrap}.schedule-page-heading>.row{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.schedule-page-heading .schedule-output-controls{flex:0 0 auto;margin-left:0;padding-top:0}
@media(max-width:760px){.schedule-output-controls{flex:1 0 100%;justify-content:flex-end;padding-top:4px}}
.tariff-master{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid #ccd9e2}.tariff-fields{border:0;padding:0;margin:0;min-width:0}.tariff-config{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tariff-config .field{min-width:0}.tariff-config select{white-space:normal}.tariff-master .segments{margin:16px 0 12px}.tariff-status{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0;padding:12px 0;border-block:1px solid #dce4ed;font-size:13px;color:#626c78}.tariff-status b{color:#754e19}.tariff-table td{vertical-align:top}.tariff-table td small{display:block;color:#5c7184;max-width:320px;white-space:normal}.tariff-number{display:flex;align-items:center;gap:5px}.tariff-number input{width:100px;min-width:80px}.tariff-number button{padding:6px}.tariff-calculators{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:8px 0}.tariff-calculators section{min-width:0}.tariff-total{font-size:24px;font-weight:700;color:#205b60}.tariff-notes{font-size:12px;color:#5b6c7e}.tariff-notes p{margin:8px 0}.tariff-notes a{text-decoration:underline}.tariff-master h2{font-size:18px}.tariff-master .section-title{flex-wrap:wrap}
@media(max-width:760px){.tariff-config{grid-template-columns:1fr}.tariff-calculators{grid-template-columns:1fr;gap:12px}.tariff-master .table-wrap{max-width:100%}.tariff-status{gap:4px}}
.time-request-dialog{width:min(640px,calc(100vw - 24px))!important;max-height:90dvh;overflow:auto}
.time-request-dialog h2{font-size:18px}
.approval-item{border-bottom:1px solid #d5dfeb;padding:18px 0}
.approval-item summary{cursor:pointer;line-height:1.8;overflow-wrap:anywhere}
.approval-targets{max-height:300px;overflow:auto;margin:12px 0}
.approval-targets small{display:block}
.request-reason{white-space:pre-wrap;overflow-wrap:anywhere}
.approval-page textarea,.time-request-dialog textarea{min-height:70px;width:100%}
.approval-item details ul{max-height:180px;overflow:auto}
.timeline .lane:has(.distance-marker){--travel-height:max(24px,calc(24px * var(--vertical-scale)))}
.timeline .lane .distance-marker{overflow:hidden;min-width:0;max-width:none;border-radius:4px;justify-content:center;gap:0}
.distance-marker span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.distance-marker svg{flex-shrink:0}
.distance-details{width:min(460px,calc(100vw - 24px))!important;max-height:85dvh;overflow:auto}
.distance-details h2{font-size:18px}
.distance-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dce4ed;padding:14px 0}
.distance-detail-row>div{min-width:0;overflow-wrap:anywhere}
.distance-detail-row p{margin:4px 0}
.distance-detail-row button{flex-shrink:0}
/* Operation logs use the existing settings surface without nested cards. */
.operation-log{padding:20px 0;border-top:1px solid #d8e2ec;margin-top:24px;min-width:0}
.log-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:16px}
.log-filters .field{flex:1 1 155px;min-width:0;margin:0}
.log-filters input,.log-filters select{width:100%;min-width:0}
.operation-log .table-wrap{overflow-x:auto;width:100%}
.operation-log td{vertical-align:top;overflow-wrap:anywhere}
.operation-log td:last-child{min-width:240px;max-width:420px}
.operation-log details{margin-top:8px;font-size:14px}
.operation-log summary{cursor:pointer}
.route-overlay{padding:16px;align-items:center;justify-content:center}
.route-measure-dialog.drawer{width:min(560px,100%);height:auto;max-height:calc(100dvh - 32px);margin:0;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}
.route-measure-dialog .drawer-head{flex:none;padding:12px 16px}
.route-measure-dialog .drawer-head h2{font-size:20px;margin:0}
.route-measure-dialog .drawer-body{padding:12px 16px;overflow-y:auto;min-height:0}
.route-measure-dialog .route-staff{margin:0 0 8px}
.route-measure-dialog .field{margin-bottom:8px}
.route-measure-dialog select{min-height:40px;padding:8px;max-width:100%}
.compact-route-panel{margin-top:8px!important;padding:0!important;border:0!important}
.compact-route-panel .google-addresses{gap:12px}
.compact-route-panel p{margin:6px 0;overflow-wrap:anywhere}
.compact-route-panel .google-addresses p{font-size:13px}
.compact-route-panel .google-route-result{padding:12px;margin:10px 0}
.route-result-distance{display:block;font-size:26px;line-height:1.3;margin:4px 0}
.compact-route-panel>button{width:100%;min-height:42px}
.compact-route-panel details{margin-top:8px}
@media(max-width:480px){.route-overlay{padding:8px}.route-measure-dialog.drawer{max-height:calc(100dvh - 16px)}.route-measure-dialog .drawer-body{padding:10px 12px}.route-measure-dialog .form-grid{grid-template-columns:1fr}.compact-route-panel .google-addresses{grid-template-columns:1fr}}
.timeline-folds button[aria-pressed=true]{background:#dcecf8;border-color:#397da8;color:#17496c}
.paired-schedule .travel-link.distance-pending{background:#eef1f4;border:1px solid #aab5bf;color:#52616e}
.paired-schedule .travel-link.google-measured{background:#e1f3e7;border:1px solid #2e8050;color:#21653c}
.paired-schedule .travel-link.distance-stale,.paired-schedule .travel-link.distance-partial{background:#fff0d6;border:1px solid #b77714;color:#86530b}
.paired-schedule .travel-link.distance-selected,.visit.route-selected{outline:2px solid #147c75;outline-offset:2px}
.route-side-overlay{position:fixed;right:12px;top:92px;bottom:12px;width:360px;max-width:calc(100vw - 24px);z-index:100;pointer-events:none;display:flex;align-items:flex-start}
.route-side-overlay>section{pointer-events:auto;width:100%;max-width:100%;max-height:100%;margin:0;background:#fff;box-shadow:0 4px 20px #17324d26;border:1px solid #c5d3df;border-radius:8px;overflow:auto}
.route-side-overlay:not(.route-details-overlay){height:auto;max-height:calc(100dvh - 16px)}
.route-side-overlay .route-measure-dialog.drawer{width:100%;height:auto;max-height:inherit;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.route-side-overlay .form-grid,.route-side-overlay .google-addresses{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.route-side-overlay .check{font-size:11px;white-space:normal;margin:4px 0 8px}
.route-side-overlay .google-addresses p{font-size:12px}
.route-side-overlay .drawer-head{flex-shrink:0}
.route-side-overlay .drawer-body{overflow:auto;min-height:0;flex:0 1 auto;overscroll-behavior:contain;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.route-side-details{padding:16px}
.route-side-details h2{font-size:18px;margin:0}
.route-panel-open .operation-loading{display:none}
.route-side-overlay{top:auto;bottom:16px;right:16px;width:320px;max-width:calc(100vw - 32px);max-height:65dvh}
.route-details-overlay{width:280px;max-height:min(320px,55dvh)}
.route-details-overlay .route-side-details{width:100%!important;max-height:min(320px,55dvh);padding:10px 12px}
.route-details-overlay h2{font-size:14px;line-height:20px}
.route-details-overlay .row>button,.route-details-overlay .distance-detail-row>button{width:30px;height:30px;padding:0;flex-shrink:0;border-radius:5px}
.route-details-overlay .row small{font-size:11px;display:block;overflow-wrap:anywhere}
.route-details-overlay .row>div{min-width:0}
.route-details-overlay .distance-detail-row{gap:8px;padding:8px 0;font-size:12px;line-height:1.5}
.route-details-overlay .distance-detail-row:last-child{padding-bottom:0}
.route-details-overlay .distance-detail-row b{font-size:13px}
.route-details-overlay .distance-detail-row p{margin:2px 0}
.route-details-overlay .distance-detail-row small{font-size:10px}
@media(max-width:480px){.route-side-overlay{right:8px;bottom:8px;max-width:calc(100vw - 16px)}}
@media print{.route-side-overlay{display:none}.route-panel-open .main{padding-bottom:0}.route-panel-open .content{margin-right:0}}
.distance-label-ruler{position:absolute;visibility:hidden;pointer-events:none;width:max-content;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:0}
.timeline .lane .distance-marker{font-size:11px;height:24px;padding:2px 4px;letter-spacing:0}
.distance-marker .distance-marker-face{display:flex;align-items:center;justify-content:center;gap:4px;overflow:visible}
.visit.cancelled,.week-cell .cancelled,.personal-visit.cancelled{opacity:1;text-decoration:none;background:#fff1f2;border-color:#dc8690}
.visit.cancelled .visit-time,.visit.cancelled .visit-person b,.week-cell .cancelled>b,.personal-visit.cancelled .personal-time,.personal-visit.cancelled .client-name>b{text-decoration-line:line-through;text-decoration-color:#c92536;text-decoration-thickness:2px}
.visit.cancelled>small,.week-cell .cancelled>small{color:#b42332;font-weight:700}
.visit.transferred,.week-cell .transferred,.personal-visit.transferred{background:#f1f3f5;border-color:#aebbc7;opacity:1}
.mobile-timeline{display:none}
@media screen and (max-width:700px){.mobile-timeline .mobile-calendar-scroll{overscroll-behavior-x:contain;overscroll-behavior-y:auto}}
.paired-schedule .visit.waiting-visit:not(.cancelled):not(.transferred),button.mobile-visit.waiting-visit:not(.mobile-cancelled){background:#fff3cc;color:#704c0c;border-color:#c99a37}
.timeline .lane{--stack-count:0;--cancel-top:calc(var(--card-top) + var(--card-height) + var(--card-height) * .8 * var(--stack-count) + 3px);--travel-top:calc(var(--cancel-top) + 29px)}
.cancelled-visit-strip{position:absolute;top:var(--cancel-top);left:0;right:0;height:26px}.cancelled-visit-chip{position:absolute;height:24px;min-height:24px;display:flex;justify-content:flex-start;gap:5px;padding:2px 5px;border:1px solid #dc8690;border-left:3px solid #c34a5a;border-radius:4px;background:#fff1f2;color:#a12b3b;overflow:hidden;font-size:11px;line-height:18px}.cancelled-visit-chip>span{flex-shrink:0}.cancelled-visit-chip del{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration-thickness:1.5px}.cancelled-visit-chip:hover{background:#ffe3e7}.cancelled-visit-picker{position:absolute;z-index:30;right:8px;top:8px;width:min(320px,95%);max-height:240px;overflow:auto;background:white;border:1px solid #dc8690;border-radius:6px;padding:10px;box-shadow:0 8px 24px #17314a26}.cancelled-visit-picker>button{display:flex;width:100%;justify-content:flex-start;margin-top:6px;color:#a12b3b;white-space:normal}
.timeline .lane .visit{top:calc(var(--card-top) + var(--card-height) * .8 * var(--stack-lane,0));z-index:1}
.timeline .lane .visit:hover,.timeline .lane .visit:focus-visible{z-index:20}
@media screen and (max-width:700px){.mobile-calendar-grid .mobile-staff-heading{max-width:none;width:100%}.mobile-calendar-grid .mobile-visit:hover,.mobile-calendar-grid .mobile-visit:focus-visible{z-index:20!important}.mobile-distance-rail .distance-marker{z-index:21}.mobile-visit{box-shadow:0 1px 3px #173d5c20}}
.filter-field{display:contents}.filter-field>span{display:none}
@media screen and (max-width:700px){.schedule-toolbar .filters:not(:has(select[aria-label="部門"])) .filter-field{grid-column:1/-1}}
@media screen and (max-width:700px){.schedule-department-tabs{display:none}.schedule-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:10px}.schedule-date-controls{display:grid!important;grid-template-columns:36px minmax(0,1fr) 36px;gap:6px!important;width:100%}.schedule-date-controls>.date-title{text-align:center;white-space:normal;font-size:13px;min-width:0}.schedule-date-controls>button{min-height:36px;padding:6px}.schedule-date-controls>button:nth-of-type(3){grid-column:1}.schedule-date-controls>input[type=date]{grid-column:2/4;width:100%;min-width:0;min-height:38px}.schedule-toolbar .filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:8px;width:100%;max-width:none}.schedule-toolbar .filter-field{display:flex;flex-direction:column;gap:3px;min-width:0}.schedule-toolbar .filter-field>span{display:block;font-size:11px;color:#50677d}.schedule-toolbar .filters select{width:100%;max-width:none;min-width:0;min-height:40px;padding:8px;font-size:14px}.schedule-toolbar .filter-field:only-of-type{grid-column:1/-1}.schedule-toolbar .search{grid-column:1/-1;min-width:0;width:100%}.schedule-toolbar .search input{width:100%;min-width:0;font-size:14px}.schedule-toolbar .search:focus-within{outline:2px solid #4387bf;outline-offset:1px}}
@media screen and (max-width:700px){
 .desktop-timeline{display:none}.mobile-timeline{display:block;min-width:0}.mobile-timeline-hint{font-size:12px;color:#62758a;margin:8px 0}.mobile-calendar-day{margin:12px 0 22px}.mobile-calendar-day h3{margin:0;padding:9px 12px;background:#eaf1f7;font-size:14px;border:1px solid #dce4ed;border-bottom:0;border-radius:8px 8px 0 0}
 .mobile-calendar-scroll{max-width:100%;max-height:72dvh;overflow:auto;border:1px solid #ccd7e2;background:white;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:12px}.mobile-calendar-grid{display:grid;min-width:100%;width:max-content;align-items:start}.mobile-calendar-corner,.mobile-staff-heading{position:sticky;top:0;z-index:4;background:#f2f6f9;height:48px;border-bottom:1px solid #ccd7e2;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;padding:4px;border-right:1px solid #dce4ed}.mobile-calendar-corner{left:0;z-index:6;font-size:11px}.mobile-time-ruler{position:sticky;left:0;z-index:3;background:white;border-right:1px solid #ccd7e2}.mobile-time-ruler span{position:absolute;right:4px;font-size:10px;line-height:14px;transform:translateY(-50%);background:white}.mobile-time-ruler span:first-child{transform:none}.mobile-staff-column{position:relative;border-right:1px solid #ccd7e2;background:repeating-linear-gradient(to bottom,transparent 0,transparent 23px,#e8edf2 23px,#e8edf2 24px),repeating-linear-gradient(to bottom,transparent 0,transparent 95px,#bdcbd8 95px,#bdcbd8 96px)}
 button.mobile-visit{position:absolute;display:block;text-align:left;white-space:normal;overflow:hidden;padding:3px 4px;border-radius:3px;font-size:11px;font-weight:400;line-height:1.3;border:1px solid #4085c0;background:#d7edff;color:#173d5c;min-height:0;touch-action:pan-x pan-y}button.mobile-visit>span,button.mobile-visit>b,button.mobile-visit>small{display:block;overflow-wrap:anywhere}button.mobile-visit>b{font-size:12px}button.mobile-visit.mobile-draft{background:#f7e0ef;border:1px dashed #c775a8}button.mobile-visit.mobile-cancelled>b{text-decoration:line-through;color:#a33333}.mobile-visit .badges{font-size:10px}.mobile-distance-rail{position:absolute;right:0;top:0;width:28px;height:100%}.mobile-distance-rail .distance-marker{position:absolute;min-height:28px;padding:2px;border-radius:4px;z-index:2}.mobile-distance-rail .distance-label-ruler{display:none}
 .schedule-info .segments{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:6px}.schedule-info .segments button{min-height:42px;flex-shrink:0}.toolbar>.row{flex-wrap:wrap}.timeline-folds{gap:6px}.timeline-folds button{min-height:40px;font-size:11px}
}
@media print{.mobile-timeline{display:none}}

.mobile-distance-state{position:absolute;top:0;width:28px;height:100%}.mobile-visit.mobile-route-selected{outline:2px solid #dca334;outline-offset:0}
@media screen and (max-width:700px){.mobile-distance-rail,.mobile-distance-state{pointer-events:none}.mobile-distance-rail button{pointer-events:auto}.mobile-visit-content{height:100%;overflow:hidden;padding-bottom:24px;box-sizing:border-box}.mobile-visit-content>span,.mobile-visit-content>b,.mobile-visit-content>small{display:block;overflow-wrap:anywhere}.mobile-visit-content>b{font-size:12px}.mobile-cancelled .mobile-visit-content>b{text-decoration:line-through;color:#a33333}.mobile-staff-heading{max-width:98px;overflow-wrap:anywhere}.mobile-distance-rail .distance-marker{z-index:3}.mobile-distance-rail .distance-marker-face{display:flex;align-items:center;justify-content:center}}

/* Keep the navigation docked by default on iPad and desktop. */
@media screen and (min-width:701px){.app{--sidebar-width:212px}.app .sidebar,.app.sales-surface .sidebar:not(.open){display:flex;width:var(--sidebar-width);transform:none;visibility:visible;z-index:25}.app .main,.app.sales-surface .main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width))}.app.sidebar-collapsed .sidebar{transform:translateX(-100%);visibility:hidden}.app.sidebar-collapsed .main{margin-left:0;width:100%}.app .sidebar-backdrop{display:none}.app .workspace-dock{left:var(--sidebar-width)}.app.sidebar-collapsed .workspace-dock{left:0}}
@media screen and (min-width:1281px){.app{--sidebar-width:242px}}
.assessment-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.assessment-tabs button[aria-pressed=true]{background:#20577c;color:#fff}.assessment-row{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;align-items:center;gap:16px;padding:16px;background:#fff;border:1px solid #d6e3ed;border-radius:6px;margin:10px 0}.assessment-row.overdue{border-left:4px solid #b34343}.assessment-surface small{display:block;color:#58748c}.assessment-row b{font-size:17px}.assessment-ibow{padding:16px 0;border-bottom:1px solid #d6e3ed}.assessment-diff{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:12px 0}.assessment-detail{padding:20px 0;border-top:2px solid #c5dbe9;margin-top:20px}.assessment-surface .field{max-width:100%;min-width:0}.assessment-surface select{max-width:100%}.assessment-surface .tag.green{background:#e2f3e9;color:#246745}.assessment-surface .tag.red{background:#fce9e9;color:#a73838}@media(max-width:700px){.assessment-row{grid-template-columns:1fr 1fr;gap:12px}.assessment-diff{display:grid;grid-template-columns:1fr}.assessment-diff>span{display:none}}
.conditions-surface { min-width:0; }
.conditions-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:24px; margin-top:20px; }
.conditions-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:16px 0; }
.conditions-filters .field { flex:1 1 160px; min-width:0; }
.conditions-surface input,.conditions-surface select { max-width:100%; min-width:0; }
.conditions-people { max-height:650px; overflow:auto; align-self:start; border-right:1px solid #d6e1e8; padding-right:12px; }
.conditions-people button { width:100%; display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; margin-bottom:6px; border-radius:6px; text-align:left; }
.conditions-people button b { flex-basis:100%; }
.conditions-people .selected { border-color:#297a91; background:#e7f4f8; }
.conditions-heading { margin:18px 0 12px; justify-content:space-between; }
.conditions-surface h2 { font-size:21px; margin:0; }
.conditions-surface h3 { font-size:17px; margin:0; }
.conditions-rules,.conditions-staff { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.conditions-rules article,.conditions-staff article { min-width:0; border:1px solid #d8e2e8; border-radius:6px; background:white; padding:14px; overflow-wrap:anywhere; }
.conditions-rules article.disabled { background:#f3f4f5; color:#647078; }
.conditions-rules p,.conditions-staff p { margin:8px 0; }
.conditions-editor { border-block:2px solid #5a97aa; padding:16px 0; margin:16px 0; }
.conditions-editor fieldset { border:0; padding:0; margin:12px 0; }
.conditions-check { border-top:1px solid #ccdce3; margin-top:24px; padding-top:18px; }
.conditions-check article { padding:12px 0; border-bottom:1px solid #d6e1e8; }
@media(max-width:700px){.conditions-layout{grid-template-columns:minmax(0,1fr);gap:14px}.conditions-people{max-height:180px;border-right:0;border-bottom:1px solid #d6e1e8;padding:0 0 10px}.conditions-rules,.conditions-staff{grid-template-columns:minmax(0,1fr)}.conditions-filters .field{flex-basis:140px}.conditions-surface .row{gap:8px}.conditions-surface .row button{max-width:100%;white-space:normal}}
.assessment-search { display:flex; gap:8px; align-items:end; max-width:460px; margin-bottom:16px; }
.assessment-search .field { flex:1; min-width:0; margin:0; }
.assessment-search input { width:100%; min-width:0; }
.assessment-search>button { flex:0 0 44px; width:44px; height:44px; padding:10px; }
.assessment-booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:650px;margin:16px 0}.assessment-booking-fields input,.assessment-booking-fields select{width:100%;min-width:0}.assessment-booking-summary{display:flex;flex-direction:column;gap:8px;margin:16px 0}.assessment-booking-modes{margin:0 0 16px}.assessment-booking-modes button[aria-pressed=true]{background:#e0eff9;border-color:#327cab;color:#154565}.assessment-detail h3{overflow-wrap:anywhere}.assessment-detail .alert{max-width:650px}.assessment-detail .section-title{align-items:flex-start}@media(max-width:480px){.assessment-booking-fields{grid-template-columns:1fr}.assessment-booking-modes{gap:6px}.assessment-booking-modes button{font-size:14px}}
.assessment-detail .alert{display:block;padding:12px 16px}.assessment-detail .alert ul{margin:8px 0 0;padding-left:20px}.assessment-detail .alert li{margin:4px 0}
.assessment-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:8px 0 16px}.assessment-controls .field{margin:0;width:auto;flex:0 1 180px}.assessment-controls .assessment-find{flex:1 1 200px}.assessment-controls input,.assessment-controls select{width:100%;min-width:0}.assessment-controls>button{flex:none}.assessment-simple-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(140px,1fr) auto;align-items:center;gap:16px;padding:16px 4px;border-bottom:1px solid #d6e3ed}.assessment-simple-row b{font-size:17px}.assessment-simple-row.overdue{border-left:3px solid #b34343;padding-left:12px}.assessment-simple-row .tag{margin:4px}.assessment-row-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.assessment-focus{max-width:700px}.assessment-focus h2{font-size:22px;margin:24px 0 8px;overflow-wrap:anywhere}.assessment-focus h2 span{display:block;font-size:15px;font-weight:400;color:#58748c;margin-top:8px}.assessment-focus .alert{display:block}.assessment-focus .alert ul{padding-left:20px}.assessment-focus .alert li{margin:6px 0}.assessment-booking-options{border-top:1px solid #d6e3ed;border-bottom:1px solid #d6e3ed;margin:12px 0 24px;padding:12px 0}.assessment-booking-options summary{cursor:pointer;font-size:15px;overflow-wrap:anywhere}.assessment-booking-options summary span{color:#246b91;margin-left:16px}.assessment-secondary{margin-top:24px}.assessment-saved{display:flex;align-items:center;gap:8px;color:#246745}.assessment-empty{padding:20px 0}.assessment-empty button{margin-right:8px}@media(max-width:700px){.assessment-controls{gap:8px}.assessment-controls .assessment-find{flex-basis:100%}.assessment-controls .field{flex-grow:1;flex-basis:140px}.assessment-simple-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.assessment-simple-row>button,.assessment-row-action{grid-column:1/-1;justify-self:stretch}.assessment-simple-row>button{justify-content:center}.assessment-row-action{justify-content:flex-start}.assessment-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assessment-tabs button{justify-content:center;min-width:0;font-size:14px}.assessment-focus h2{font-size:20px}}
.assessment-enroll{display:flex;justify-content:flex-end;margin:0 0 16px}.assessment-focus>.field{max-width:100%;margin:20px 0}.assessment-focus .field strong{padding:12px 0;font-size:16px}@media(max-width:700px){.assessment-enroll button{width:100%;justify-content:center}}
.assessment-client-results{max-height:300px;overflow:auto;margin:12px 0 20px;border-top:1px solid #d6e3ed}.assessment-client-results>button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-bottom:1px solid #d6e3ed;border-radius:0;padding:12px;background:#fff;white-space:normal}.assessment-client-results>button span{min-width:0;overflow-wrap:anywhere}.assessment-client-results small{display:block;font-weight:400;color:#526778}.assessment-client-results>button[aria-pressed=true]{background:#dff1ff;box-shadow:inset 4px 0 #246b91}.assessment-client-results>button:disabled{opacity:1;color:#526778;background:#f1f5f7}.assessment-client-results>button>span:last-child{font-size:13px;flex:0 1 42%}
.assessment-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid #cddbe5;margin:0 0 20px;padding-bottom:12px}.assessment-view-tabs{display:flex;gap:4px}.assessment-view-tabs button{border:0;border-radius:0;background:transparent;padding:14px 18px;border-bottom:3px solid transparent}.assessment-view-tabs button[aria-selected=true]{color:#175a7c;border-bottom-color:#237da2;background:#e8f4fa}.assessment-list-title{display:flex;align-items:center;gap:12px;margin:24px 0 12px}.assessment-list-title h2{font-size:18px;margin:0}.assessment-list-title>span{color:#526778}.assessment-directory-head,.assessment-directory-row,.assessment-month-head,.assessment-month-row{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(120px,.8fr) minmax(150px,1fr) minmax(100px,auto);gap:18px;align-items:center;padding:16px 12px;border-bottom:1px solid #d6e3ed}.assessment-directory-head,.assessment-month-head{background:#eaf0f4;color:#506677;font-size:13px;padding-top:10px;padding-bottom:10px}.assessment-directory-row,.assessment-month-row{background:#fff}.assessment-directory-row>div,.assessment-month-row>div{min-width:0;overflow-wrap:anywhere}.assessment-directory-row b,.assessment-month-row b{font-size:16px}.assessment-directory-row small,.assessment-month-row small{display:block;margin-top:5px;color:#536c7d}.assessment-directory-row>button{justify-self:end}.assessment-unassigned{margin-top:24px;padding:16px 0;border-top:1px solid #cddbe5}.assessment-unassigned summary{cursor:pointer;font-weight:600}.assessment-monthbar{display:flex;align-items:center;gap:8px;margin:20px 0 14px}.assessment-monthbar .field{margin:0;max-width:220px}.assessment-monthbar .field>span{font-size:13px}.assessment-monthbar>button{align-self:flex-end;height:44px;min-width:44px;justify-content:center}.assessment-status-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:16px}.assessment-status-tabs button{border:0;border-radius:4px;background:transparent;gap:10px;padding:10px 12px;color:#466176}.assessment-status-tabs button[aria-pressed=true]{background:#dfeefa;color:#144b71}.assessment-status-tabs span{font-weight:700;font-variant-numeric:tabular-nums}.assessment-month-row .assessment-ibow-label.done{color:#267446}.assessment-month-row .assessment-ibow-label.pending{color:#996016}.assessment-month-row .assessment-row-action button{font-size:14px;padding:10px 12px}
@media(max-width:700px){.assessment-topline{gap:12px}.assessment-view-tabs{width:100%}.assessment-view-tabs button{flex:1;padding:12px 8px;font-size:15px;justify-content:center}.assessment-topline>.primary{margin-left:auto;padding:10px 14px}.assessment-directory-head,.assessment-month-head{display:none}.assessment-directory-row,.assessment-month-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;padding:16px 12px}.assessment-directory-row>button{justify-self:end}.assessment-directory-row b,.assessment-month-row b{font-size:15px}.assessment-month-row>.assessment-row-action{grid-column:auto;justify-content:flex-end;justify-self:stretch}.assessment-monthbar .field{flex:1;max-width:210px}.assessment-status-tabs{gap:2px}.assessment-status-tabs button{font-size:13px;padding:9px 8px;gap:6px}.assessment-controls .assessment-find{flex-basis:100%}}
/* Compact client controls and tablet timetable interaction. */
.field .check input[type=checkbox],.flag-options input[type=checkbox]{width:20px!important;height:20px;min-width:20px;flex:0 0 20px;margin:0;padding:0}
.flag-field{border:0;padding:0;min-width:0}.flag-field legend{font-weight:600;color:#4c6479;margin-bottom:6px}
.flag-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.flag-options .check{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;min-width:0}
.flag-options .glyph{flex:0 0 26px;width:26px;height:26px;position:static;margin:0}
.bulk-client-names{display:flex;gap:6px 16px;flex-wrap:wrap;max-height:160px;overflow:auto;margin-bottom:20px}
.paired-schedule .lane-label{width:112px;padding-left:8px;padding-right:8px}
.paired-schedule .lane-label b{overflow-wrap:anywhere}
.paired-schedule .timeline-scroll{touch-action:none;overscroll-behavior-x:contain;overscroll-behavior-y:auto}
.sidebar{overscroll-behavior:contain;touch-action:pan-y}
.sidebar nav{min-height:0;overscroll-behavior:contain;touch-action:pan-y}
.sidebar-inner{display:contents}
@media screen and (pointer:coarse) and (min-width:701px){
 html,body{overscroll-behavior-x:none}
 .app.sales-surface{display:flex}
 .app .sidebar,.app.sales-surface .sidebar:not(.open){position:fixed;inset:0 auto 0 0;height:100dvh;padding:0}
 .sidebar-inner{display:flex;flex-direction:column;flex:0 0 auto;width:100%;height:100dvh;padding:28px 15px 16px}
 .app .main,.app.sales-surface .main{margin-left:var(--sidebar-width);flex:1;width:calc(100% - var(--sidebar-width))}
 .app.sidebar-collapsed .sidebar{display:none}
 .app.sidebar-collapsed .main{margin-left:0;width:100%}
}
.assessment-surface{container-type:inline-size;min-width:0}
.assessment-delete-dialog{width:460px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid #c9d7e2;border-radius:8px;color:var(--foreground);background:white;box-shadow:0 12px 40px #102b4730;overflow:hidden}
.assessment-delete-dialog[open]{display:flex;flex-direction:column}
.assessment-delete-dialog::backdrop{background:#102b4760}
.assessment-delete-dialog header,.assessment-delete-dialog footer{display:flex;align-items:center;gap:12px;padding:16px 20px;flex-shrink:0}
.assessment-delete-dialog header{border-bottom:1px solid var(--border)}
.assessment-delete-dialog h2{font-size:18px;line-height:1.5;margin:0;flex:1;min-width:0}
.assessment-delete-dialog header button{flex:0 0 36px;padding:6px;min-height:36px}
.assessment-delete-body{padding:16px 20px;min-height:0;overflow:auto;font-size:14px;overflow-wrap:anywhere}
.assessment-delete-body p{margin:10px 0}.assessment-delete-body ul{margin:10px 0;padding:8px 8px 8px 28px;max-height:128px;overflow:auto;background:#f3f6fa}.assessment-delete-body small{color:#62758a}
.assessment-delete-warning{color:#87571e}
.assessment-delete-dialog footer{justify-content:flex-end;border-top:1px solid var(--border);background:#f8fafc;flex-wrap:wrap}
.assessment-delete-dialog footer button{white-space:normal;min-height:44px}
.assessment-delete-submit{background:#a83232;color:white;border-color:#a83232}.assessment-delete-submit:hover{background:#8c2929;color:white}
@media(prefers-reduced-motion:reduce){.assessment-delete-dialog .loading-spinner{animation:none}}
@media print{.assessment-delete-dialog{display:none!important}}
.assessment-directory-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.assessment-directory-row button,.assessment-month-row button{max-width:100%;white-space:normal}
@container(max-width:680px){
 .assessment-directory-head,.assessment-month-head{display:none}
 .assessment-directory-row,.assessment-month-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px 10px}
 .assessment-directory-actions,.assessment-month-row>.assessment-row-action{grid-column:1 / -1;align-self:end;justify-content:flex-end;justify-self:stretch;padding-top:8px;border-top:1px solid #e3eaf0}
 .assessment-directory-row b,.assessment-month-row b{font-size:15px}
 .assessment-topline{gap:12px}
 .assessment-view-tabs{width:100%;min-width:0}
 .assessment-view-tabs button{flex:1;min-width:0;white-space:normal;padding:12px 6px;font-size:15px}
 .assessment-topline>.primary{margin-left:auto}
}
.conditions-surface{container-type:inline-size;min-width:0}
.sidebar-group{display:flex;flex-direction:column;gap:3px;margin:8px 0}
.sidebar-group h2,.sidebar-group summary{font-size:12px;font-weight:600;color:#9dbbd1;margin:0;padding:8px 12px;letter-spacing:0}
.sidebar-group summary{cursor:pointer;min-height:40px}
.sidebar-group button{width:100%;text-align:left}
.sidebar-version{display:block;color:#a2bad0;padding:8px 12px;font-size:11px;flex-shrink:0}
.assessment-cycle-group{margin-bottom:22px}
.assessment-report-source{display:none}
.history-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(180px,1fr);gap:16px}.history-filters .field{min-width:0}.history-summary{display:grid;gap:6px;white-space:normal}.history-summary-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.history-summary-reason{overflow-wrap:anywhere;font-weight:400}
@media(max-width:900px){.history-filters{grid-template-columns:1fr}}
.assessment-density{display:flex;gap:4px;margin-left:auto}
.assessment-density button[aria-pressed=true]{background:#dfeefa;color:#144b71}
.assessment-compact-table{width:100%;overflow:auto}
.assessment-compact-table table{table-layout:fixed;width:100%;border-collapse:collapse;background:white;font-size:12px}
.assessment-compact-table th,.assessment-compact-table td{padding:5px 7px;border-bottom:1px solid #d7e1e9;white-space:normal;overflow-wrap:anywhere;text-align:left;min-width:0}
.assessment-compact-table th{background:#eaf1f5}
.assessment-col-client{width:19%}.assessment-col-nurse{width:18%}.assessment-col-cycle{width:46px}.assessment-col-last{width:88px}.assessment-col-month{width:80px}
.assessment-compact-table th:nth-child(n+3),.assessment-compact-table td:nth-child(3),.assessment-compact-table td:nth-child(4),.assessment-compact-table td:nth-child(5){white-space:nowrap;overflow-wrap:normal}
.assessment-compact-date,.assessment-compact-status{display:block;white-space:nowrap;overflow-wrap:normal;line-height:1.5}
.assessment-compact-status.done{color:#237445;font-weight:600}
@container(max-width:680px){.assessment-col-cycle{width:40px}.assessment-col-last{width:76px}.assessment-col-month{width:68px}}
@container(max-width:480px){.assessment-compact-table table{min-width:510px}}
.assessment-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0;font-size:13px}
.assessment-list-title{flex-wrap:wrap}
@container(max-width:680px){.assessment-compact-table th,.assessment-compact-table td{padding:4px;font-size:11px}.assessment-density{margin-left:0}}
.assessment-cycle-group>h3{display:flex;align-items:center;gap:14px;border-bottom:2px solid #9bbdcc;padding:10px 12px;margin:0;background:#edf5f8}
.assessment-cycle-group>h3 span{font-size:13px;font-weight:400}
.assessment-directory-row .assessment-ibow-label.done{color:#267446;font-weight:600}
.assessment-directory-row .assessment-ibow-label.pending{color:#996016}
.assessment-directory-actions{max-width:210px}
@container(max-width:680px){.assessment-directory-actions{max-width:none}}
.conditions-layout>div,.conditions-editor fieldset{min-width:0}
.conditions-editor .check input{width:18px;min-width:18px;height:18px;flex:0 0 18px}
.conditions-editor legend{font-weight:700}
@container(max-width:760px){
 .conditions-layout{grid-template-columns:minmax(0,1fr);gap:14px}
 .conditions-people{max-height:180px;border-right:0;border-bottom:1px solid #d6e1e8;padding:0 0 10px}
 .conditions-rules,.conditions-staff{grid-template-columns:minmax(0,1fr)}
 .conditions-filters .field{min-width:0;flex-basis:140px}
 .conditions-surface .row{gap:8px}
 .conditions-surface .row button{max-width:100%;white-space:normal}
}
.sidebar .brand{gap:10px;letter-spacing:0;font-size:21px}
.sidebar .brand>div{min-width:0}
.sidebar .brand small{font-size:11px;letter-spacing:0;white-space:normal}
.sidebar .app-brand-icon{display:block;width:48px;height:48px;flex:0 0 48px;object-fit:contain;border-radius:8px;background:transparent}
.assessment-sort{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px;font-size:14px;font-weight:600}
.assessment-sort select{max-width:100%;min-height:44px}
.list-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:12px 0;font-size:14px;flex-wrap:wrap}
.list-pagination button{width:40px;height:40px;padding:8px;flex-shrink:0}
.compact-edit-dialog{width:min(660px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #c6d6e1;border-radius:8px;color:#17334b;background:#fff;overflow:auto}
.compact-edit-dialog::backdrop{background:rgba(18,35,48,.28)}
.compact-edit-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #d6e1e8;position:sticky;top:0;background:#fff;z-index:2}
.compact-edit-dialog h2{font-size:19px;margin:0;overflow-wrap:anywhere}
.compact-edit-dialog>header button{padding:8px;min-width:38px;flex-shrink:0}
.compact-edit-body{padding:0 18px 18px}
.conditions-layout{display:block!important}
.conditions-people{max-height:none!important;overflow:visible;border:0!important;padding:0!important;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.conditions-people button{margin:0}
.condition-dates,.condition-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.conditions-modal:has(.conditions-editor)>:not(.conditions-editor):not(.alert):not([role=status]){display:none}
.conditions-modal .conditions-editor{border:0;margin:0;padding:0}
.condition-dates .field,.condition-times .field{min-width:0;margin:0}
.condition-dates input,.condition-times input{width:100%;min-width:0;box-sizing:border-box;height:44px}
.client-picker{min-width:0;position:relative;display:flex;flex-direction:column;gap:8px}
.client-picker>button{text-align:left;white-space:normal;overflow-wrap:anywhere}
.client-picker-options{border:1px solid #c6d6e1;padding:8px;border-radius:6px;background:#fff;min-width:0}
.client-picker-options input{width:100%;min-width:0}
.client-picker-list{max-height:240px;overflow:auto;margin-top:8px}
.client-picker-list button{display:block;width:100%;text-align:left;border-radius:4px;margin:3px 0;padding:8px;white-space:normal}
.client-picker-list [aria-pressed=true]{background:#dff1f8;border-color:#438ca9}
.meeting-participants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:220px;overflow:auto}
.meeting-participants input{width:18px;height:18px;flex-shrink:0}
@media(max-width:420px){.conditions-people{grid-template-columns:minmax(0,1fr)}.compact-edit-body{padding:0 12px 12px}.condition-dates,.condition-times{gap:8px}}
.week-sheet .table-wrap{position:relative;isolation:isolate;overscroll-behavior-x:contain}
.week-matrix{border-collapse:separate;border-spacing:0}
.week-matrix tr>th:first-child{position:sticky;left:0;z-index:3;background:#edf3f8;box-shadow:2px 0 0 #c4d3df;overflow-wrap:anywhere}
.week-matrix thead tr>th:first-child{z-index:4}
.schedule-view-switch{display:flex;gap:4px;flex-wrap:wrap}
.schedule-view-switch button[aria-pressed=true],.timeline-folds button[aria-pressed=true]{background:#185b88;border-color:#185b88;color:#fff;box-shadow:inset 0 -3px 0 #0c3856}
.schedule-view-controls{justify-content:space-between}
.schedule-output-controls{margin-left:auto}
.schedule-find-button{min-height:40px;align-self:end}
.schedule-finder-query{margin-top:16px}
.schedule-finder-results{display:grid;gap:6px}
.schedule-finder-results button{display:flex;justify-content:space-between;text-align:left;white-space:normal}
.schedule-finder-results small{display:block;font-weight:400}
[data-visit-id]{scroll-margin:70px 130px}
[data-visit-id]:focus{outline:3px solid #157f7a!important;outline-offset:2px;z-index:8}
@media(max-width:700px){.schedule-toolbar .schedule-find-button{grid-column:1/-1}.schedule-view-controls{gap:8px}.schedule-output-controls{margin-left:0}.week-matrix tr>th:first-child{width:96px;min-width:96px}}
@media print{.week-matrix tr>th:first-child{position:static;box-shadow:none}}

/* Compact visit editing keeps all fields reachable by scrolling. */
.visit-editor-compact.drawer{width:min(560px,calc(100vw - 24px));height:auto;max-height:min(660px,88dvh);margin:auto;border-radius:12px;overflow:auto}
.visit-editor-compact .drawer-head{padding:12px 16px}.visit-editor-compact .drawer-head h2{font-size:18px}.visit-editor-compact .eyebrow{display:none}.visit-editor-compact .drawer-body{padding:12px 16px}.visit-editor-compact .form-grid{gap:8px}.visit-editor-compact .field{margin-bottom:8px}.visit-editor-compact .muted{font-size:12px}
.time-request-dialog{width:min(500px,calc(100vw - 24px))!important;padding:16px!important}.time-request-dialog p{margin:8px 0}.time-request-dialog .field{margin-bottom:8px}.time-request-dialog .approval-targets{max-height:180px}

.insurance-choice{border:0;padding:0;margin:0;grid-column:1/-1}.insurance-choice label{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #b8cbd9;border-radius:8px;cursor:pointer}.insurance-choice label.selected{background:#e3f3f1;border-color:#087f83}.insurance-choice input{width:auto;margin:0}
.recurring-editor.drawer{width:min(560px,calc(100vw - 24px));height:auto;max-height:min(690px,90dvh);margin:auto;border-radius:12px;overflow:auto}.recurring-editor .drawer-head,.recurring-editor .drawer-body{padding:12px 16px}.recurring-editor .drawer-head h2{font-size:18px}.recurring-editor .form-grid{gap:8px}.recurring-editor .field{margin-bottom:8px}.recurring-editor details{margin:8px 0}.recurring-editor summary{cursor:pointer}.recurring-editor .drawer-footer{padding:10px 16px}

/* Keep deletion range radios compact; generic .field inputs are full width. */
.visit-delete-confirm fieldset{min-width:0;padding:12px 16px;border:1px solid var(--border);border-radius:8px}.visit-delete-confirm .check{justify-content:flex-start;min-height:40px;margin:4px 0;line-height:1.5}.visit-delete-confirm .check input[type=radio]{width:18px;min-width:18px;height:18px;flex:0 0 18px;margin:0;padding:0}.visit-delete-confirm{width:min(380px,100%);max-height:calc(100dvh - 64px);padding:16px;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.visit-delete-overlay{padding:24px}.visit-delete-confirm h2{font-size:18px;line-height:1.4;margin:0 0 10px;flex-shrink:0}.visit-delete-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.visit-delete-confirm p{font-size:14px;line-height:1.45;margin:8px 0}.visit-delete-confirm .visit-delete-person{margin:0 0 10px}.visit-delete-confirm fieldset{padding:4px 8px;margin:8px 0;gap:0}.visit-delete-confirm legend{font-size:13px}.visit-delete-confirm .check{font-size:14px;min-height:40px;margin:0;gap:8px}.visit-delete-confirm .delete-scope-options{display:flex;flex-wrap:wrap;gap:0 16px}.visit-delete-confirm .delete-scope-options .check{width:auto;flex:0 1 auto}.visit-delete-confirm .small{font-size:12px}.visit-delete-confirm .delete-count{margin:8px 0 0}.visit-delete-confirm .visit-delete-actions{flex-shrink:0;display:grid;grid-template-columns:auto 1fr;gap:8px;padding-top:12px}.visit-delete-confirm button{font-size:14px;padding:8px 12px;white-space:normal;line-height:1.4}.visit-delete-confirm textarea{min-height:60px}.visit-delete-confirm .alert{padding:8px}

/* Keep the full badge border inside the scaled name row, including at 100%. */
.timeline .visit .visit-badges{flex-wrap:nowrap;max-width:none;max-height:none;height:var(--card-line);overflow:visible;align-items:center;gap:1px}
.timeline .visit .glyph{box-sizing:border-box;width:calc(var(--card-line) - 2px);height:calc(var(--card-line) - 2px);min-width:calc(var(--card-line) - 2px);line-height:1;font-size:max(7px,calc(10px * var(--vertical-scale)))!important}
.timeline .visit .glyph svg{width:calc(var(--card-line) - 5px);height:calc(var(--card-line) - 5px)}

.timeline .visit{container-type:inline-size}
.timeline .visit .visit-person b{min-width:0}
@container (max-width:95px){.timeline .visit .visit-badges .glyph:nth-child(n+2){display:none!important}.timeline .visit .visit-person{gap:1px}}

.staff-leave-panel{margin:0 0 8px;padding:0;border:0;background:transparent}.staff-leave-panel>.row{align-items:flex-start}.staff-leave-list{flex:1;min-width:0}.staff-leave-list summary{cursor:pointer;padding:8px 0;font-size:14px;font-weight:600;color:#9f3038}.staff-leave-list summary>span{font-size:12px;color:#9f3038;margin-left:6px}.staff-leave-list-body{padding:0 8px;max-height:240px;overflow:auto}.staff-leave-badges{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:4px 0!important;max-width:100%}.staff-leave-badge{display:block;margin:0!important;max-width:100%;padding:2px 4px;border:1px solid #e8b6bb;border-radius:4px;background:#fff0f1;color:#9f3038;font-size:11px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;letter-spacing:0}.mobile-staff-heading{height:auto;min-height:48px;flex-direction:column}.mobile-staff-heading .staff-leave-badges{align-items:center}.week-matrix th .staff-leave-badge{font-weight:500}.staff-leave-panel .staff-leave-list-body p{margin:6px 0}.leave-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;border-top:1px solid #efd5d8;padding:8px 0}.leave-row small{display:block;color:#667d88}.leave-row strong{color:#9f3038}.staff-leave-panel>p{margin:5px 0 0}

.cancellation-info{padding:8px 10px;border-left:3px solid #bd5555;background:#fff4f2;color:#8a3636;font-size:13px}.cancellation-info small{font-size:11px}

.schedule-date-controls{flex-wrap:wrap}.schedule-calendar{display:flex;align-items:center;gap:6px;font-size:12px}.schedule-calendar input{width:148px;min-height:36px}.duplicate-delete-list{max-height:180px;overflow:auto;border:1px solid #d7e3ee;padding:8px;border-radius:8px}.duplicate-delete-list p{margin:4px 0}

.assessment-top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.quick-guide details{border-top:1px solid #d6e3ed;padding:14px 0}.quick-guide summary{cursor:pointer;font-weight:600;line-height:1.6}.quick-guide li{margin:10px 0;line-height:1.8}.quick-guide p{line-height:1.8}.quick-guide ol,.quick-guide ul{padding-left:24px}
@media(max-width:700px){.assessment-top-actions{width:100%;gap:8px}.assessment-top-actions>.primary{flex:1;justify-content:center;min-height:44px}.assessment-top-actions>.no-report{min-height:44px}}

.client-record-actions{margin-top:24px;border-top:1px solid #d6e3ed;padding-top:20px}.client-record-actions details{margin-top:24px}.client-record-actions summary{cursor:pointer;font-weight:600}.client-record-actions p{line-height:1.8}.client-record-actions .row{margin-top:16px}

.client-companion-event{text-align:left}.client-companion-event span{white-space:normal;overflow-wrap:anywhere}.client-companion-choice{display:block;width:100%;margin:12px 0;text-align:left}
.guide-settings-tabs{display:flex;gap:8px;border-bottom:1px solid #c7d8e5;margin-bottom:18px}.guide-settings-tabs button{border-radius:8px 8px 0 0;padding:12px 24px}.guide-settings-tabs [aria-selected=true]{background:#194c78;color:white}.visual-guide{max-width:1200px;margin:auto;padding:24px}.visual-guide p{line-height:1.75}.guide-kicker{font-size:12px;letter-spacing:.12em;color:#47748a}.visual-guide h2{margin:8px 0}.guide-topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0}.guide-topics button{display:flex;align-items:center;gap:9px;text-align:left;white-space:normal;line-height:1.5;padding:12px}.guide-topics button span{font-size:18px;opacity:.75}.guide-topics [aria-pressed=true]{background:#194c78;color:white;border-color:#194c78}.guide-route{background:#eef5fa;border-radius:8px;padding:10px 14px;color:#255471}.guide-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;list-style:none;padding:0;margin:24px 0}.guide-flow li{position:relative;border:1px solid #bfd6e4;border-radius:12px;padding:16px;background:#f7fbfd;min-width:0}.guide-flow li:not(:last-child):after{content:'→';position:absolute;right:-21px;top:45%;font-size:20px;color:#52798b}.guide-step{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#217780;color:white;margin-bottom:12px}.guide-flow strong{display:block;font-size:15px}.guide-flow p{font-size:13px;margin-bottom:0}.guide-role{border-left:3px solid #427b9c;padding-left:12px}.guide-table-scroll{overflow-x:auto;border:1px solid #cedce6;border-radius:10px}.guide-table{width:100%;border-collapse:collapse;table-layout:fixed}.guide-table th,.guide-table td{padding:14px!important;white-space:normal!important;vertical-align:top;text-align:left;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.guide-table th:first-child{width:21%}.guide-table th:nth-child(2){width:30%}.guide-table tbody th{background:#f6f9fc;color:#234c68}.guide-table thead th{background:#eaf1f7}.guide-note{background:#fff9eb;border-left:4px solid #ba9144;padding:16px;margin:20px 0}.guide-note p,.guide-help p{margin:6px 0 0;font-size:13px}.guide-help{border-top:1px solid #dce6ed;margin-top:24px;padding-top:18px}.guide-state{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;background:#edf7f6;padding:16px;border-radius:10px}.guide-state strong{border:1px solid #81b3b7;background:white;padding:10px;border-radius:8px}.guide-state p{flex-basis:100%;text-align:center;margin:0;font-size:13px}.guide-topics button:focus-visible,.guide-settings-tabs button:focus-visible,.guide-table-scroll:focus-visible{outline:3px solid #2582a6;outline-offset:3px}@media(max-width:900px){.guide-topics{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-flow{grid-template-columns:1fr;gap:24px}.guide-flow li:not(:last-child):after{content:'↓';right:50%;top:auto;bottom:-25px}.guide-flow li{padding:14px 14px 14px 54px}.guide-step{position:absolute;left:14px;top:14px}.guide-flow p{margin:5px 0 0}.visual-guide{padding:16px}.guide-table{min-width:560px}}@media print{.guide-topics,.guide-settings-tabs{display:none}.guide-flow li{break-inside:avoid}.guide-table-scroll{overflow:visible}.guide-table{min-width:0}}
.mobile-month-calendar{min-width:0;letter-spacing:0}
.mobile-month-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0}
.mobile-month-heading h2{font-size:17px;margin:0;letter-spacing:0}
.mobile-month-heading h2 strong{font-size:23px;margin-left:4px}
.mobile-month-heading button{width:40px;height:40px;padding:0;flex:none}
.mobile-month-weekdays,.mobile-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mobile-month-weekdays{font-size:12px;text-align:center;padding:7px 0;background:#fff;border:1px solid #d6e2eb;border-bottom:0;border-radius:8px 8px 0 0}
.mobile-month-calendar .sunday{color:#ae424a}.mobile-month-calendar .saturday{color:#226da5}
.mobile-month-grid{border-top:1px solid #d6e2eb;border-left:1px solid #d6e2eb;background:white}
.mobile-month-grid .mobile-month-day{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;min-width:0;height:100px;padding:3px 2px;border:0;border-right:1px solid #d6e2eb;border-bottom:1px solid #d6e2eb;border-radius:0;background:#fff;white-space:normal;font-weight:500;color:#234762;text-align:left}
.mobile-month-day.outside{background:#f3f5f7;color:#7a8794}
.mobile-month-grid .mobile-month-day.selected{box-shadow:inset 0 0 0 2px #28769e;background:#f0f9ff;z-index:1}
.mobile-month-day:focus-visible{outline-offset:-3px;z-index:2}
.mobile-month-number{align-self:center;display:grid;place-items:center;width:22px;height:22px;flex:none;font-size:12px;border-radius:50%}
.mobile-month-day[aria-current=date] .mobile-month-number{font-weight:800;text-decoration:underline;text-underline-offset:3px}
.mobile-month-day.selected .mobile-month-number{background:#246889;color:#fff;text-decoration:none}
.mobile-month-mini{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;height:51px;background:#dff1fe;border-left:2px solid #55a1cf;border-radius:3px;padding:3px 2px;overflow:hidden;line-height:1.4;font-size:10px;color:#174f76}
.mobile-month-mini time{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.mobile-month-mini-name{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}
.mobile-month-confirmed{background:#d5eddf;color:#216041;font-size:9px;line-height:1.5;padding:0 3px;border-radius:3px;white-space:nowrap;font-weight:700}
.mobile-month-mini.draft{background:#fff0d4;border-color:#b18b3b;color:#7b5719}
.mobile-month-mini.cancelled{background:#f5f6f8;border-color:#b8747a;color:#77575b}
.mobile-month-mini.cancelled .mobile-month-mini-name{text-decoration:line-through;text-decoration-color:#b5424d;text-decoration-thickness:2px}
.mobile-month-mini-state{font-size:9px}
.mobile-month-more{font-size:10px;line-height:1.5;text-align:center;color:#365f7b;white-space:nowrap}
.mobile-month-summary{display:flex;gap:18px;font-size:12px;color:#527086;flex-wrap:wrap;margin:12px 0}
.mobile-month-summary b{color:#204c68;font-size:14px}.mobile-month-summary span:last-child b{color:#24704f}
.mobile-month-agenda{margin-top:22px;scroll-margin-top:150px}
.mobile-month-day-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.mobile-month-day-heading h3{font-size:17px;margin:0;letter-spacing:0}.mobile-month-day-heading>span{font-size:13px;color:#62758a}
.mobile-month-visits{display:grid;gap:9px}
.mobile-month-visits .mobile-month-visit{display:flex;justify-content:space-between;align-items:stretch;gap:8px;background:#e4f3ff;border:1px solid #bcdbed;border-left:3px solid #5a9ec7;border-radius:6px;padding:12px;text-align:left;white-space:normal;width:100%;min-width:0;line-height:1.5}
.mobile-month-visit-main{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1;gap:2px;overflow-wrap:anywhere}
.mobile-month-visit-main>strong{font-size:17px;color:#174868}
.mobile-month-visit-time{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:#275c7e}
.mobile-month-staff{font-size:12px;color:#527086;font-weight:400}
.mobile-month-details{display:flex;gap:6px;align-items:center;flex-wrap:wrap;max-width:100%;font-size:12px;font-weight:400}
.mobile-month-visit-end{display:flex;align-items:flex-end;justify-content:space-between;flex-direction:column;gap:8px;flex:0 0 auto;color:#53748b}
.mobile-month-status{display:inline-flex;align-items:center;gap:3px;padding:3px 6px;border-radius:4px;font-size:11px;background:#fff;color:#476981}
.mobile-month-status.done{background:#d4eddf;color:#206342}.mobile-month-status.draft{background:#f5e1b9;color:#74511b}.mobile-month-status.cancelled{background:#f4dfe2;color:#993d46}
.mobile-month-visits .mobile-month-visit.draft{background:#fff5e4;border-color:#e4cc9b;border-left-color:#b18b3b}
.mobile-month-visits .mobile-month-visit.cancelled{background:#f6f7f9;border-color:#d9dfe5;border-left-color:#b8747a}
.mobile-month-visit.cancelled strong,.mobile-month-visit.cancelled .mobile-month-visit-time{text-decoration:line-through;text-decoration-color:#b5424d;text-decoration-thickness:2px}
.mobile-month-empty{padding:24px 8px;text-align:center;color:#62758a;background:#fff;border-bottom:1px solid #d6e2eb;font-size:14px}
@media screen and (max-width:700px){.phone-month-section .schedule-view-switch{display:flex;width:100%}.phone-month-section .schedule-view-switch button{flex:1;min-height:40px}.phone-month-section .schedule-view-controls{width:100%}}
@media print{.mobile-month-calendar,.mobile-month-summary{display:none}}
.phone-month-view .schedule-page-heading .eyebrow{display:none}.phone-month-view .schedule-page-heading h1{font-size:23px;letter-spacing:0}.phone-month-view .schedule-page-heading{margin:12px 0}.phone-month-view .schedule-toolbar{margin:12px 0}
.service-check{border:1px solid #b5cddd;border-radius:10px;padding:14px;margin:14px 0;background:#f3f8fc}.service-link{border:1px solid #cbdbe7;border-radius:10px;padding:14px;margin:12px 0}.service-check .field{margin-bottom:12px}.service-check p{line-height:1.6}.actual-batch-list .service-check{width:100%}.actual-batch-row:has(.service-check){flex-wrap:wrap}[data-visit-dragging=true]{outline:3px solid #167987!important;opacity:.6;user-select:none;-webkit-user-select:none}.visit,.mobile-visit,.mobile-month-visit{-webkit-touch-callout:none}

/* Client intake: visible sections keep native required-field validation accessible. */
.client-information-layout{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;align-items:start}
.client-information-layout>nav{position:sticky;top:0;display:grid;gap:6px;background:white;padding:8px 0}
.client-information-layout>nav a{padding:10px;border-left:3px solid #c5d9e5;text-decoration:none;color:var(--primary);font-size:13px}
.client-information-layout>nav a:hover,.client-information-layout>nav a:focus{background:#edf4fa;border-color:var(--primary)}
.client-information-section{border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;scroll-margin-top:12px;background:#fff}
.client-information-section>h3{margin:0 0 18px;border-bottom:1px solid var(--border);padding-bottom:12px}
.client-information-section .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.client-information-section .form-grid>p,.client-information-section .form-grid>section,.client-information-section .form-grid>fieldset,.client-information-section .form-grid>.alert{grid-column:1/-1}
.client-information-section .field{min-width:0}.client-information-section .check{white-space:normal}
.client-period-row{border:1px solid var(--border);border-radius:8px;padding:14px;margin:12px 0;background:#f8fafc}
.client-period-row h4{margin:0 0 12px}.client-period-row .period-status{font-size:12px;color:var(--muted)}
.client-profile-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.client-profile-summary .card{margin:0}.client-profile-summary dl{overflow-wrap:anywhere}
@media(max-width:700px){.client-information-layout{display:block}.client-information-layout>nav{position:static;display:flex;flex-wrap:wrap;margin-bottom:12px}.client-information-layout>nav a{padding:8px}.client-information-section{padding:14px}.client-profile-summary{grid-template-columns:1fr}}
@media(max-width:480px){.client-information-section .form-grid{grid-template-columns:1fr}}

/* Activity color is independent of completion/cancellation status. */
.visit.activity-0,.mobile-visit.activity-0,.week-overview button.activity-0,.client-calendar-event.activity-0,.mobile-month-visit.activity-0{background:#f1e8ff;color:#482a73;border-color:#9564bc}
.visit.activity-1,.mobile-visit.activity-1,.week-overview button.activity-1,.client-calendar-event.activity-1,.mobile-month-visit.activity-1{background:#e0f3ef;color:#155d51;border-color:#429786}
.visit.activity-2,.mobile-visit.activity-2,.week-overview button.activity-2,.client-calendar-event.activity-2,.mobile-month-visit.activity-2{background:#ffe9df;color:#783b1e;border-color:#bf7958}
.activity-legend{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0;font-size:12px}.activity-legend span{padding:5px 9px;border-radius:6px}.activity-legend .meeting{background:#f1e8ff;color:#482a73}.activity-legend .discharge{background:#e0f3ef;color:#155d51}.activity-legend .contract{background:#ffe9df;color:#783b1e}
.activity-form{display:grid;gap:12px}.activity-form .check{align-items:flex-start}.activity-form select{max-width:100%}

/* Client directory: compact rows and clear insurance/addition labels. */
.client-list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;flex-wrap:wrap}.client-list-heading .segments{flex:1;margin:0}.client-list-tools{display:flex;align-items:flex-end;gap:22px;margin-bottom:12px;flex-wrap:wrap}.client-list-search{flex:1;min-width:220px;max-width:540px;font-weight:700}.client-list-search>span{display:block;margin-bottom:7px}.client-list-search>div{display:flex;align-items:center;gap:9px;border:1px solid #24608f;box-shadow:0 0 0 3px #e5eef8;border-radius:8px;background:#fff;padding:0 12px}.client-list-search input{border:0;box-shadow:none;background:transparent;width:100%;min-width:0;min-height:44px;padding:9px 0;font-size:16px}.client-list-sort{display:grid;gap:7px;font-weight:600}.client-list-sort select{min-height:44px}.client-list-page .table-wrap{margin-top:8px}.client-list-page table th{background:#1c5078;color:white;padding:10px 16px}.client-list-page table td{padding:9px 16px;vertical-align:middle}.client-list-page table th:first-child{width:30%}.client-list-page table th:nth-child(2){width:21%}.client-list-page table th:last-child{width:13%}.client-list-page .client-name-link{font-size:21px;font-weight:700;line-height:1.4;text-decoration:none;padding:0;min-height:30px;text-align:left}.client-list-kana{font-size:12px;color:#587087;line-height:1.5;margin-top:1px}.client-list-kana>span{display:inline-block;font-size:11px;margin-left:10px}.client-list-address{font-size:13px;overflow-wrap:anywhere}.client-list-badges{display:flex;gap:6px;flex-wrap:wrap}.client-list-badge{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;line-height:1.6;min-width:38px;padding:2px 6px;border-radius:5px;color:white;background:#596b7e;border:1px solid transparent;white-space:nowrap}.client-list-badge.care{background:#27724d}.client-list-badge.medical{background:#2868a9}.client-list-badge.emergency{background:#a75a21}.client-list-badge.special{background:#7c4aa0}
@media(max-width:700px){.client-list-page table{min-width:0;width:100%;table-layout:fixed}.client-list-page table th,.client-list-page table td{padding:8px}.client-list-page table th:first-child{width:43%}.client-list-page table th:nth-child(2){width:25%}.client-list-page table th:nth-child(3){width:32%}.client-list-page table th:last-child,.client-list-page table td:last-child{display:none}.client-list-page .client-name-link{font-size:19px}.client-list-kana>span{display:block;margin:0}.client-list-heading .segments{flex:auto}.client-list-heading{gap:12px}.client-list-search{min-width:180px}.client-list-tools{gap:14px}.client-list-page .list-pagination{flex-wrap:wrap}.client-list-address{font-size:12px}}
@media(pointer:coarse){.client-list-page .client-name-link{min-height:44px}}
@media print{.client-list-page table th:last-child,.client-list-page table td:last-child{display:table-cell}.client-list-badge{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

.client-list-page .client-name-link{white-space:normal;overflow-wrap:anywhere;max-width:100%}
@media(max-width:480px){.client-list-search{flex-basis:100%;max-width:none}.client-list-sort{grid-template-columns:auto 1fr;align-items:center;width:100%}.client-list-sort select{width:100%}}

.client-list-page .clickable-record-row{cursor:pointer}.client-list-page .clickable-record-row:hover td,.client-list-page .clickable-record-row:focus-within td{background:#eaf2fa}.client-list-page .clickable-record-row:active td{background:#dae9f6}.client-list-page .clickable-record-row:focus-within{outline:2px solid #24608f;outline-offset:-2px}

/* Insurance input remains usable in narrow client panels. */
.insurance-application{container-type:inline-size;min-width:0;max-width:100%}.insurance-application fieldset,.insurance-application .field{min-width:0;max-width:100%}.insurance-application input,.insurance-application select{min-width:0;width:100%;max-width:100%}.insurance-application .info{overflow-wrap:anywhere}.insurance-application .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@container(max-width:560px){.insurance-application .form-grid{grid-template-columns:minmax(0,1fr)}}
.client-direct-editor{padding:20px 0}.client-direct-editor fieldset{border:0;margin:0;padding:0;min-width:0}.client-direct-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end;border-top:1px solid var(--border);padding:16px 0;margin-top:20px}.client-direct-actions>span{margin-right:auto}.client-calendar-tabs{flex-wrap:wrap}.preventive-months{grid-column:1/-1}.preventive-month-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:16px 0}.preventive-month-grid>div{padding:8px;border-bottom:2px solid var(--border)}.preventive-month-grid small{display:block}.client-insurance-editor{max-width:1000px}.client-insurance-editor>fieldset>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.client-insurance-editor .care-certification{grid-column:1/-1;border-top:1px solid var(--border);padding-top:16px;gap:10px}.client-insurance-editor h3{margin:0 0 10px}.client-insurance-editor .care-certification>p{margin:0}.client-insurance-editor .care-certification>.client-period-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0;padding:12px 0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent}.client-insurance-editor .care-certification>.client-period-row p{margin:0}.client-insurance-editor .care-certification>.client-period-row button{margin-left:auto}.client-insurance-editor .care-certification>button,.client-insurance-editor .insurance-application>button{justify-self:start;align-self:start;width:auto}.client-insurance-editor .care-certification>.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.client-insurance-editor .insurance-application{border-top:1px solid var(--border);padding-top:16px}.client-insurance-editor .preventive-months{border-top:1px solid var(--border);padding-top:16px;margin-top:6px}.client-insurance-editor .preventive-months>.field{max-width:440px}.client-insurance-editor .preventive-month-grid{gap:4px;margin:10px 0}.client-insurance-editor .preventive-month-grid>div{padding:6px}.client-insurance-editor .client-direct-actions{justify-content:flex-start}.client-insurance-editor .client-direct-actions>span{margin-right:12px}@media(max-width:640px){.client-insurance-editor>fieldset>.form-grid,.client-insurance-editor .care-certification>.form-grid{grid-template-columns:minmax(0,1fr)}.client-insurance-editor .care-certification>.client-period-row button{margin-left:0}}
.preventive-month-check:disabled{display:block;width:20px;height:20px;margin:8px 0 0;opacity:1;accent-color:#486779;cursor:default}
.schedule-candidate-panel{border-top:1px solid #d5e0e9;margin-top:16px;padding-top:12px}.schedule-candidate-panel select{max-width:100%}.schedule-candidate{border:1px solid #d5e0e9;border-radius:6px;padding:10px;margin-top:8px}.schedule-candidate .row{flex-wrap:wrap;gap:8px}.schedule-candidate button{font-size:13px;padding:8px}.schedule-candidate small{font-size:12px;overflow-wrap:anywhere}.schedule-candidate summary{font-size:13px;min-height:32px}.schedule-candidate-panel .condition-dates{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:420px){.schedule-candidate-panel .condition-dates{grid-template-columns:1fr}.schedule-candidate button{min-height:44px}}
.assessment-overview{border-bottom:1px solid #cddce7;padding:0 0 16px;margin:0 0 16px}.assessment-overview-title{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.assessment-overview-title>span{font-size:13px;color:#58748c}.assessment-overview-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.assessment-overview-counts button{border:0;border-bottom:3px solid #cddce7;border-radius:0;background:transparent;display:flex;align-items:baseline;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:10px 12px}.assessment-overview-counts b{font-size:26px}.assessment-overview-counts button[data-status=planning]{border-bottom-color:#ad4150}.assessment-overview-counts button[data-status=scheduled]{border-bottom-color:#28628c}.assessment-overview-counts button[data-status=results]{border-bottom-color:#2d7758}.assessment-overview-counts button[aria-pressed=true]{background:#e7f1f9;color:#163d59}.assessment-overview-bottom{display:grid;grid-template-columns:minmax(170px,1fr) minmax(0,2fr);gap:24px;align-items:center;margin-top:16px}.assessment-completion{height:8px;background:#dae5ed;border-radius:4px;overflow:hidden;margin-bottom:8px}.assessment-completion>span{height:100%;display:block;background:#2d7758}.assessment-overview table{width:100%;table-layout:fixed;font-size:13px}.assessment-overview th,.assessment-overview td{padding:3px;text-align:center}.assessment-overview th:first-child{text-align:left;width:28%}.assessment-overview td button{border:0;background:transparent;min-width:40px;min-height:40px;padding:5px}.assessment-overview td button[aria-pressed=true]{background:#e7f1f9;color:#163d59}.assessment-card-list-title{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.assessment-card-list-title small{display:inline}.assessment-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.assessment-client-card{background:#fff;border:1px solid #cddce7;border-radius:8px;padding:14px;min-width:0;transition:transform .16s,box-shadow .16s,border-color .16s}.assessment-client-card:hover,.assessment-client-card:focus-within{transform:translateY(-2px);border-color:#2b648a;box-shadow:0 5px 14px #28485a20}.assessment-client-card>header{display:grid;gap:3px;margin-bottom:8px;overflow-wrap:anywhere}.assessment-card-heading,.assessment-card-identity{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-width:0}.assessment-card-identity{justify-content:flex-start}.assessment-client-card h3{font-size:18px;margin:0}.assessment-client-card>header small{font-size:12px}.assessment-card-cycle{flex-shrink:0;border-radius:4px;padding:2px 7px;background:#eaf3fa;color:#245e87;font-size:12px;white-space:nowrap}.assessment-card-months{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:0 0 8px}.assessment-card-months button{padding:4px 0;min-width:0;min-height:50px;border:1px solid transparent;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px}.assessment-card-months button[aria-pressed=true]{background:#eaf3fa;border-color:#245e87;color:#20394d}.assessment-month-mark{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#f0f4f7;color:#597487;font-size:11px}.month-results .assessment-month-mark{background:#e8f4ed;color:#246c4c}.month-planning .assessment-month-mark,.month-cancelled .assessment-month-mark{background:#fcecef;color:#a83546}.month-scheduled .assessment-month-mark{background:#e4effa;color:#245e87}.month-next .assessment-month-mark{border:1px dashed #245e87;background:#fff;color:#245e87}.assessment-card-detail{border-top:1px solid #d5e0e9;padding-top:8px}.assessment-card-selected{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.assessment-card-status{font-size:12px;padding:2px 6px;border-radius:4px;background:#f0f4f7;color:#58748c}.assessment-card-status.status-results{background:#e8f4ed;color:#246c4c}.assessment-card-status.status-scheduled{background:#e4effa;color:#245e87}.assessment-card-status.status-planning,.assessment-card-status.status-cancelled{background:#fcecef;color:#a83546}.assessment-card-entry{padding-top:6px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.assessment-card-entry-info{min-width:0;overflow-wrap:anywhere;font-size:14px}.assessment-card-entry-info small{font-size:12px}.assessment-card-entry+.assessment-card-entry{border-top:1px solid #d5e0e9;margin-top:10px}.assessment-card-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.assessment-card-actions button{font-size:13px;max-width:100%;white-space:normal;padding:7px 10px;min-height:36px}.assessment-card-manage{margin-top:8px;padding-top:0}.assessment-card-manage summary{font-size:12px;min-height:24px;color:#58748c}.assessment-card-manage[open]>.row{margin-top:8px}.assessment-card-manage button{font-size:13px}.assessment-card-carry{padding-top:8px}.assessment-card-carry button{font-size:12px;padding:6px}.assessment-card-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:#58748c;margin-top:14px}.assessment-card-legend span{display:flex;align-items:center;gap:4px}
@container(max-width:680px){.assessment-card-grid{grid-template-columns:1fr}.assessment-overview-bottom{grid-template-columns:1fr;gap:12px}.assessment-overview-counts{gap:3px}.assessment-overview-counts button{padding:7px 4px;font-size:12px}.assessment-overview-counts b{font-size:22px}.assessment-overview th,.assessment-overview td{font-size:12px}.assessment-overview td button{min-width:30px}.assessment-client-card{padding:14px}.assessment-card-months{gap:2px}}
@media(pointer:coarse){.assessment-card-months button,.assessment-overview td button,.assessment-card-actions button{min-height:44px}.assessment-card-manage summary{min-height:44px;display:flex;align-items:center}.assessment-card-manage summary::before{content:"▸";margin-right:5px}.assessment-card-manage[open] summary::before{content:"▾"}}
@media(prefers-reduced-motion:reduce){.assessment-client-card{transition:none;transform:none!important}}
.assessment-manager-note{margin:8px 0;font-size:13px;color:#58748c}.assessment-manager-note summary{min-height:28px}.assessment-manager-note p{margin:6px 0}
/* Keep the native service selector compact inside narrow actual-result dialogs. */
.actual-service-field{min-width:0;max-width:100%}
.actual-service-field .field{min-width:0}
.actual-service-field select{width:100%;min-width:0;max-width:100%;text-overflow:ellipsis}
@media(max-width:600px){.actual-service-field select{font-size:14px;padding:10px 28px 10px 10px;min-height:44px}.actual-service-field .field>span{font-size:13px}}
.focus-date-control{min-width:0}
.focus-date-trigger{display:flex;align-items:center;gap:18px;min-height:44px}
dialog.focus-date-dialog{position:fixed;inset:0;margin:auto;width:min(350px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #cbdbe5;border-radius:8px;background:#fff;color:#193b57;overflow:auto;box-sizing:border-box;box-shadow:0 12px 36px #17354d30}
.focus-date-dialog::backdrop{background:#19344c66}
.focus-date-dialog header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #d9e3eb}
.focus-date-dialog header h2{font-size:16px;margin:0}
.focus-date-dialog button{margin:0;letter-spacing:0;min-width:0}
.focus-date-dialog header button,.focus-date-month button{padding:8px;min-height:36px;border:0;background:transparent}
.focus-date-selected{padding:10px;display:flex;align-items:baseline;justify-content:center;gap:8px;background:#eef5f9;white-space:nowrap}
.focus-date-selected span{font-size:13px}.focus-date-selected strong{font-size:28px}
.focus-date-month{display:flex;align-items:center;justify-content:space-between;padding:5px 12px}.focus-date-month b{font-size:15px}
.focus-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:0 12px 10px}
.focus-date-grid>span{text-align:center;font-size:12px;padding:4px 0}
.focus-date-grid button{display:grid;place-items:center;height:32px;min-height:32px;padding:0;border:0;border-radius:5px;font-size:14px;background:transparent}
.focus-date-grid .sun{color:#b63246}.focus-date-grid .sat{color:#226bb2}
.focus-date-grid .outside{opacity:.5}
.focus-date-grid button[aria-current=date]{box-shadow:inset 0 0 0 1px #1b527a}
.focus-date-grid button[aria-pressed=true]{background:#1b527a;color:#fff;font-weight:700;opacity:1}
.focus-date-dialog button:focus-visible{outline:2px solid #187ca0;outline-offset:2px}
.focus-date-dialog footer{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;border-top:1px solid #d9e3eb;background:#f3f7fa}
.focus-date-dialog footer button{font-size:14px;min-height:40px;padding:8px 14px}

/* Compact month picker shared with the visit scheduler. */
.kc-calendar{width:340px;max-width:100%;margin:8px auto;color:#19354f;background:#fff;font:16px/1.4 Arial,'Noto Sans JP',sans-serif;box-sizing:border-box;padding:8px;border:1px solid #d9e3eb;border-radius:12px}
.kc-calendar *{box-sizing:border-box}.kc-month{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}.kc-month strong{font-size:16px}.kc-calendar button,.kc-dialog button{touch-action:manipulation;min-width:0;margin:0;letter-spacing:0;font:inherit;border:1px solid #d9e3eb;border-radius:8px;color:#19354f;background:#fff;cursor:pointer}
.kc-month button{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:8px}
.kc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.kc-grid>span{text-align:center;font-size:12px;padding:3px 0}.kc-grid button{display:grid;place-items:center;width:100%;height:44px;min-height:44px;padding:0;border-color:transparent;font-size:15px}.kc-grid .sun{color:#a73245}.kc-grid .sat{color:#2864a2}.kc-grid .outside{color:#778696}.kc-grid button[aria-current=date]{box-shadow:inset 0 0 0 1px #193c58}.kc-grid button[aria-pressed=true]{background:#193c58;color:#fff;font-weight:700;box-shadow:none}.kc-calendar button:disabled,.kc-dialog button:disabled{opacity:.38;cursor:default}.kc-calendar button:hover:not(:disabled):not([aria-pressed=true]){background:#edf3f8}.kc-calendar button:focus-visible,.kc-dialog button:focus-visible{outline:2px solid #2582ad;outline-offset:1px}
.kc-bottom{display:flex;align-items:center;gap:10px;margin-top:8px}.kc-bottom>button{padding:8px 12px;min-height:44px;flex-shrink:0}.kc-selection{background:#edf3f8;border-radius:8px;padding:7px 9px;flex:1;font-size:13px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.kc-selection small{display:block;color:#60758a;font-size:11px;font-weight:400}
dialog.kc-dialog{position:fixed;inset:0;width:356px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:auto;padding:8px;border:1px solid #cbd9e5;border-radius:14px;background:#fff;color:#19354f;box-shadow:0 12px 40px #142c4630;overflow:auto;overscroll-behavior:contain;box-sizing:border-box;font:16px/1.4 Arial,'Noto Sans JP',sans-serif}
.kc-dialog::backdrop{background:#152d4555}.kc-dialog .kc-calendar{border:0;padding:0;width:100%;margin:4px auto 10px}.kc-heading{display:flex;align-items:center;gap:6px;justify-content:space-between;padding:2px 0 6px}.kc-heading h2{font-size:16px;line-height:1.4;margin:0;overflow-wrap:anywhere}.kc-heading button{display:grid;place-items:center;padding:8px;width:44px;min-height:44px;flex-shrink:0;border:0}.kc-actions{display:flex;justify-content:flex-end;gap:6px;border-top:1px solid #d9e3eb;padding-top:10px}.kc-actions button{padding:8px;min-height:44px;font-size:13px}.kc-dialog .kc-confirm{background:#193c58;color:#fff;border-color:#193c58;flex:1}
.kc-input{position:relative;display:inline-flex;align-items:center;vertical-align:middle;width:100%;min-width:0}.kc-input>input{padding-right:40px!important;min-width:0;width:100%;margin:0!important}.kc-input>input::-webkit-calendar-picker-indicator{display:none}.kc-input>.kc-open{position:absolute;right:1px;top:50%;transform:translateY(-50%);margin:0;padding:8px;min-height:40px;width:38px;border:0;background:transparent;display:grid;place-items:center;color:#193c58}.kc-input>.kc-open:disabled{opacity:.35}label>.kc-input{margin-top:6px}.toolbar>.kc-input{width:auto;max-width:220px}.kc-display-trigger{display:flex;align-items:center;gap:12px;min-height:44px}
@media print{.kc-dialog,.kc-open{display:none!important}}

.kc-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:6px 0}
.kc-month-grid button{min-height:44px;border-radius:8px;font-size:14px}
.kc-month-grid button[aria-pressed="true"]{background:#1b628d;color:white;border-color:#1b628d;font-weight:700}
.kc-month-grid button[aria-current="date"]:not([aria-pressed="true"]){border-color:#1b628d;color:#1b628d;font-weight:700}
.kc-input input[type="month"]::-webkit-calendar-picker-indicator{display:none}

.route-steps{display:flex;gap:12px;list-style:decimal inside;padding:12px 16px;background:#edf4fa;border-radius:8px;color:#194c73;font-weight:700;flex-wrap:wrap}.route-batch-panel h3{font-size:17px;margin:22px 0 12px}.route-batch-summary{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0}.route-batch-summary span{padding:8px 12px;background:#f1f5f9;border-radius:6px}.route-batch-summary b{font-size:20px;color:#174d77}.route-manual-toggle{margin:0 0 12px}.route-batch-run{margin-top:20px;padding:4px 16px 14px;border:1px solid #b5cddd;border-radius:8px;background:#f3f8fc}.route-manual-save{border-top:1px solid #d7e1e9;margin-top:24px}.route-batch-panel th{position:sticky;top:0;background:#eef4f8;z-index:1}.route-batch-panel td{vertical-align:top}.route-batch-panel .table-wrap table{min-width:680px}@media(max-width:600px){.route-steps{gap:6px;font-size:13px}.route-batch-panel .form-grid{grid-template-columns:1fr}.route-batch-summary{gap:6px}.route-batch-summary span{padding:6px 8px}.route-batch-run{padding:4px 10px 12px}}

@media(max-width:600px){.route-batch-panel .table-wrap table{min-width:0;width:100%;display:block}.route-batch-panel thead{display:none}.route-batch-panel tbody{display:block}.route-batch-panel tr{display:grid;grid-template-columns:56px minmax(0,1fr);padding:8px;border-bottom:2px solid #d7e1e9}.route-batch-panel td{display:block;min-width:0;border:0;padding:6px;overflow-wrap:anywhere}.route-batch-panel td:nth-child(n+3){grid-column:1/-1}.route-batch-panel td:before{content:attr(data-label);display:block;color:#526c83;font-size:11px;margin-bottom:4px}.route-batch-panel input[type=checkbox]{width:20px;height:20px}}

.edit-presence-notice{position:fixed;top:86px;left:50%;transform:translateX(-50%);z-index:2500;width:max-content;max-width:calc(100vw - 32px);padding:10px 16px;background:#fff3cd;color:#714c08;border:1px solid #c68c27;border-radius:8px;box-shadow:0 2px 10px #0002;font-size:14px;pointer-events:none}@media print{.edit-presence-notice{display:none}}

/* Date-centered weekly navigation; retain the shared calendar and its dialog. */
.schedule-toolbar:has(.schedule-date-controls){flex-direction:column;align-items:stretch}
.schedule-date-controls{display:grid!important;grid-template-columns:46px minmax(0,240px) 46px;justify-content:center;gap:10px!important;width:100%;margin:0 auto}
.schedule-date-controls>.schedule-calendar{grid-column:2;grid-row:1;min-width:0;display:block}
.schedule-date-controls>.schedule-calendar .kc-input{width:100%;min-width:0}
.schedule-date-controls>.schedule-calendar input{width:100%;min-width:0;min-height:46px;font-size:16px;text-align:center}
.schedule-date-controls>button{min-height:46px;padding:8px;grid-row:1}
.schedule-date-controls>button:first-of-type{grid-column:1}
.schedule-date-controls>button:last-of-type{grid-column:3}
.schedule-date-controls>.date-title{grid-row:2;grid-column:1/-1;text-align:center;font-size:14px;font-weight:500;white-space:normal;min-width:0;color:var(--muted)}
@media(max-width:700px){.schedule-date-controls{grid-template-columns:44px minmax(0,240px) 44px;gap:8px!important}.schedule-date-controls>button{min-height:44px}.schedule-date-controls>.date-title{font-size:13px}}

.schedule-calendar>.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
 .schedule-page-heading{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:14px 0}
 .schedule-page-heading h1{font-size:23px;letter-spacing:0;overflow-wrap:anywhere}
 .schedule-page-heading>.row{display:grid;grid-template-columns:minmax(0,1.4fr) 40px minmax(0,1fr);gap:6px;width:100%;margin:0}
 .schedule-page-heading .schedule-output-controls{display:contents}
 .schedule-page-heading>.row button{min-width:0;min-height:42px;padding:7px 6px;font-size:12px;white-space:normal}
 .schedule-page-heading>.row button svg{flex-shrink:0}
 .schedule-page-heading .schedule-print-button span{display:none}
 .schedule-toolbar .filters{align-items:end}
 .schedule-toolbar .filter-field{margin:0;min-width:0}
 .schedule-toolbar .filters select{min-height:44px}
 .schedule-toolbar .schedule-find-button{width:100%;min-height:44px;white-space:normal}
 .compact-topbar .signed-in-person{width:100%}
 .compact-topbar .identity-name{row-gap:2px}
}

.time-band-phone{display:none}
@media(max-width:700px){.timeline-folds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%}.timeline-folds>button{min-width:0;min-height:44px;padding:7px 2px;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.timeline-folds .time-band-desktop{display:none}.timeline-folds .time-band-phone{display:inline}}

.timeline-folds>button>span{color:inherit}
@media(max-width:360px){.schedule-page-heading>.row>.primary svg{display:none}.schedule-page-heading>.row>.primary{white-space:nowrap}}

.schedule-date-controls>.schedule-calendar{display:flex;align-items:center}.schedule-date-controls>.schedule-calendar>.kc-input{margin-top:0}.schedule-date-controls>button{height:46px}

/* The status panel shares the header row; the schedule keeps the full width. */
.schedule-header-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:24px;align-items:start;margin:18px 0}
.schedule-header-overview>.schedule-toolbar{min-width:0;margin:0;gap:18px;justify-content:flex-start;padding-top:4px}
.schedule-header-overview .filters{flex-wrap:wrap;max-width:100%}
.visit-status-summary{min-width:0;background:#fff;border:1px solid #dce5ee;border-radius:16px;padding:16px 20px;box-shadow:0 2px 10px #193d6008;color:#20394e}
.visit-status-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.visit-status-heading h2{margin:2px 0 0;font-size:18px;line-height:1.4}
.visit-status-eyebrow{font-size:10px;letter-spacing:.12em;color:#647a8c;font-weight:600}
.visit-status-period{display:flex;gap:3px;padding:3px;border-radius:9px;background:#eef3f8}
.visit-status-period button{min-height:36px;padding:6px 14px;border:0;background:transparent;border-radius:7px;font-size:13px;color:#536b80;box-shadow:none}
.visit-status-period button[aria-pressed=true]{background:#1c537b;color:#fff}
.visit-status-scope{display:flex;justify-content:space-between;gap:5px 12px;flex-wrap:wrap;font-size:11px;color:#60768a;margin:10px 0 16px}
.visit-status-body{display:grid;grid-template-columns:104px minmax(0,1fr);gap:22px;align-items:center}
.visit-status-ring{width:104px;height:104px;border-radius:50%;background:conic-gradient(#b88a27 var(--confirmation-rate),#f1eadb 0);display:grid;place-items:center}
.visit-status-ring>div{width:86px;height:86px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.visit-status-ring strong{font-size:23px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:#20394e}
.visit-status-ring span{font-size:10px;color:#60768a}
.visit-status-metrics{display:grid;gap:7px;margin:0;min-width:0}
.visit-status-metrics>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.visit-status-metrics dt{font-size:12px;color:#526c81}
.visit-status-metrics dd{margin:0;font-size:23px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;white-space:nowrap}
.visit-status-metrics dd>span{font-size:16px;font-weight:500;color:#526c81}
.visit-status-metrics small,.visit-status-cancel small{font-size:12px;font-weight:400;margin-left:4px}
.visit-status-cancel{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:14px 0 0;padding-top:11px;border-top:1px solid #e2e9ef;font-size:12px;color:#526c81}
.visit-status-cancel b{color:#344f65;margin-left:5px;font-size:15px;font-variant-numeric:tabular-nums}
.visit-status-caption{font-size:11px;color:#60768a;margin:8px 0 0;line-height:1.7}
.visit-status-definition{margin-top:8px;font-size:11px;color:#60768a}
.visit-status-definition summary{cursor:pointer}
.visit-status-definition p{margin:6px 0;line-height:1.7}
.schedule-header-overview+.schedule-info>.segments{display:grid;grid-template-columns:auto repeat(7,minmax(0,1fr));width:100%}
.schedule-header-overview+.schedule-info>.segments>button{padding:9px 5px;font-size:13px;min-width:0}
@media(min-width:1000px){.schedule-header-overview .filters .schedule-find-button{flex-basis:100%;justify-content:center}.schedule-header-overview .filter-field{flex:1;min-width:0}.schedule-header-overview .filter-field select{width:100%;min-width:0}.schedule-header-overview .schedule-date-controls{grid-template-columns:44px minmax(0,240px) 44px}}
@media(min-width:701px) and (max-width:999px){.schedule-header-overview{grid-template-columns:1fr}.visit-status-summary{max-width:620px;width:100%;justify-self:center}}
@media(max-width:700px){.schedule-header-overview{display:block;margin:12px 0}.visit-status-summary{display:none!important}.schedule-header-overview+.schedule-info>.segments{display:flex;flex-wrap:wrap}.schedule-header-overview+.schedule-info>.segments>button{font-size:12px}}
@media(pointer:coarse){.visit-status-period button{min-height:44px}}
@media print{.visit-status-summary{display:none!important}.schedule-header-overview{display:block}}

/* A visit addition spans the schedule form rather than squeezing into one column. */
.multiple-visit-field{grid-column:1 / -1;min-width:0;width:100%;display:block;box-sizing:border-box}.multiple-visit-field .field{min-width:0}.multiple-visit-field select{width:100%;max-width:100%;min-width:0}.multiple-visit-field .small{line-height:1.6}

.schedule-calendar .schedule-date-trigger{width:100%;min-height:46px;justify-content:center;position:relative;padding:8px 36px;font-size:18px}.schedule-date-trigger svg{position:absolute;right:12px}.schedule-calendar .schedule-date-trigger span{color:inherit}
/* Fixed cancellation rail with independent full-name targets. */
.cancelled-visit-group{position:absolute;height:24px;display:flex;gap:4px;align-items:stretch}
.cancelled-visit-group .cancelled-visit-chip{position:static;flex:0 0 auto;width:auto;font-size:12px;max-width:100%;text-align:left}
.cancelled-visit-group .cancelled-visit-chip del{overflow:visible;text-overflow:clip;white-space:nowrap;text-decoration-thickness:1px}
.cancelled-visit-picker>button del{white-space:normal;overflow-wrap:anywhere;text-decoration-thickness:1px}
.cancelled-visit-picker>button{min-height:40px}
/* Date-linked summary keeps the existing outer grid width. */
.visit-status-compact{padding:12px 16px}
.visit-status-compact .visit-status-heading{margin-bottom:8px;gap:8px;flex-wrap:wrap}
.visit-status-compact .visit-status-heading h2{font-size:16px;margin:0}
.visit-status-date{font-size:12px;font-weight:600;white-space:nowrap}
.visit-status-compact .visit-status-period button{flex:1;min-height:30px;padding:4px 8px;font-size:12px}
.visit-status-compact .visit-status-scope{margin:6px 0 8px}
.visit-status-compact .visit-status-body{grid-template-columns:72px minmax(0,1fr);gap:14px}
.visit-status-compact .visit-status-ring{width:72px;height:72px}
.visit-status-compact .visit-status-ring>div{width:58px;height:58px}
.visit-status-compact .visit-status-ring strong{font-size:17px}
.visit-status-compact .visit-status-metrics{gap:4px}
.visit-status-compact .visit-status-metrics>div{gap:5px}
.visit-status-compact .visit-status-metrics dd{font-size:17px}
.visit-status-compact .visit-status-metrics dd>span{font-size:13px}
.visit-status-compact .visit-status-metrics .visit-status-cancel-value{font-size:14px}
.visit-status-compact .visit-status-metrics dt{font-size:11px;white-space:nowrap}
@media(pointer:coarse){.visit-status-compact .visit-status-period button{min-height:44px}}

.actual-multiple-disclosure{grid-column:1 / -1;width:100%;min-width:0;border-top:1px solid var(--border);margin-top:12px}.actual-multiple-disclosure>summary{padding:12px 0;color:var(--primary);cursor:pointer}.actual-multiple-disclosure>summary .tag{margin-left:8px}.actual-multiple-disclosure .multiple-visit-field{margin-top:0}

/* Compact shared visit editor, without negative overlap between independent fields. */
.visit-summary{position:relative;margin:0 0 12px;padding:10px 12px;background:#eef5fa;border:1px solid #d6e4ec;border-radius:8px;font-size:13px;overflow-wrap:anywhere}
.visit-summary-heading{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;padding-right:160px;min-height:28px}.visit-summary-heading>b{font-size:15px}.visit-summary-heading small{color:#60778e}
.visit-summary-address{margin-top:3px;line-height:1.5}.visit-summary>.inline-client-address{padding:0;margin:0;border:0;background:transparent;border-radius:0}.visit-address-toggle>summary{position:absolute;right:10px;top:9px;font-size:11px;padding:5px 8px;border:1px solid #b7cfe2;border-radius:6px;background:#fff;color:#214f74;list-style:none;min-height:30px}.visit-address-toggle>summary::-webkit-details-marker{display:none}.visit-address-toggle[open]>summary{background:#dcecf8}.visit-address-toggle[open]{padding-top:10px!important}.visit-address-toggle .field{margin-top:8px}.visit-address-toggle p{font-size:11px}
.visit-editor-compact .form-grid,.client-calendar-editor .editor-fields>.form-grid{align-items:start;gap:12px}.visit-companion-control{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.visit-companion-control>.field{flex:1;min-width:180px;margin:0}.visit-companion-control>.check{flex-shrink:0}.registered-companion{grid-column:1/-1;color:#60778e}
.recurring-after-time{margin:0;padding:0;background:none;border:0;border-radius:0;align-self:start}.recurring-after-time button{min-height:38px}.visit-editor-compact textarea,.client-calendar-editor textarea{min-height:62px}
.visit-memo-marker{display:inline-block!important;border:1px solid #bf942d;border-radius:3px;background:#fff4cd;color:#694700;font-size:9px!important;line-height:1.2;padding:1px 2px;flex-shrink:0}.visit-memo-text{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:#5b4b20;line-height:1.5}.visit-hover-info{max-height:min(440px,calc(100vh - 20px));overflow:auto}.visit-hover-info .visit-memo-text{border-top:1px solid #dbe6ef;padding-top:6px;margin-top:4px}.client-calendar-event .visit-memo-text{font-size:11px;text-align:left}
@media(max-width:420px){.visit-summary-heading{padding-right:0}.visit-address-toggle>summary{position:static;width:max-content;margin-top:7px}.visit-companion-control{gap:8px}.visit-companion-control>.field{min-width:160px}.visit-summary{padding:8px 10px}}

/* Completed actuals: compact label without changing visit-card height. */
.actual-confirmed-badge,.mobile-month-status.done.actual-confirmed-badge,.mobile-month-confirmed.actual-confirmed-badge{display:inline-flex;align-items:center;vertical-align:middle;white-space:nowrap;flex:none;background:#176b4b;color:#fff;border:0;border-radius:3px;font-size:10px;font-weight:700;line-height:15px;padding:0 3px;margin-left:3px}
.client-calendar-event .actual-confirmed-badge{display:inline-flex;margin:0 0 0 3px;color:#fff}

.app-update-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #cfdeeb;border-radius:14px;color:#20364b;background:#fff;box-shadow:0 14px 40px #16395820;overflow:auto}.app-update-dialog::backdrop{background:#17365055}.app-update-head{display:flex;gap:12px;align-items:center;padding:22px 24px 12px}.app-update-head h2{font-size:19px;margin:0}.app-update-head p{margin:4px 0 0;color:#61788c;font-size:12px}.app-update-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;background:#e7f3ec;color:#1a7050;border-radius:50%}.app-update-content{padding:6px 24px 18px}.app-update-content ul{padding-left:19px;margin:9px 0 0;font-size:14px;line-height:1.85}.app-update-content li+li{margin-top:7px}.app-update-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 24px;background:#f5f8fc;border-top:1px solid #e1e8f0}.app-update-actions button{min-height:40px}.app-update-more{background:transparent!important;border-color:transparent!important;padding-left:0!important}.app-update-detail{margin-top:16px;border-top:1px solid #dce6ef;padding-top:13px;font-size:13px;line-height:1.8}.update-history details{padding:12px 0;border-bottom:1px solid #e1e8f0}.update-history>button{margin-top:14px}@media(max-width:420px){.app-update-head{padding:18px 16px 10px}.app-update-content{padding:4px 16px 16px}.app-update-actions{padding:12px 16px}.app-update-head h2{font-size:17px}}@media print{.app-update-dialog{display:none!important}}

.visit-kind:empty{display:none}.visit-kind.kind-緊急{color:#a32228;background:#fff0ef;border:1px solid #dea2a6}.visit-kind.kind-代行{color:#205d95;background:#edf5ff;border:1px solid #a7c4e0}.visit-kind.kind-振替{color:#6d4295;background:#f5eeff;border:1px solid #c9b1df}.visit-warning-badge{display:inline-block;white-space:nowrap;vertical-align:middle;margin-left:3px;padding:0 3px;border:1px solid #d8b774;border-radius:3px;background:#fff5db;color:#79510d;font-size:10px;line-height:14px;font-weight:600}

.write-recovery-action{position:fixed;z-index:10000;top:16px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);background:#fff;border:2px solid #174c73;box-shadow:0 4px 20px #081b3533;padding:12px 20px;font-weight:700}
@media print{.write-recovery-action{display:none}}

/* Acquired routes always show the distance, including narrow gaps. */
.distance-marker[data-display="label"] .distance-marker-face,.distance-marker[data-display="label"] .distance-marker-face>span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.2}.mobile-distance-rail .distance-marker[data-display="label"]{font-size:10px;padding:3px}.timeline .lane .distance-marker[data-display="label"]{height:auto;min-height:24px}

.distance-marker .distance-marker-face svg{vertical-align:middle}.paired-schedule .travel-link.distance-pending{border-radius:5px;background:#f0f4f7;border-color:#aab8c4;color:#496173}

@media(min-width:1151px){.metrics.metrics-five{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* Compact visit metadata keeps the existing card rows and icons. */
.visit-companion-badge{display:inline-flex!important;align-items:center;justify-content:center;vertical-align:baseline;background:#245d86;color:#fff;border-radius:3px;padding:0 2px;margin-right:3px;font-size:9px!important;line-height:13px;min-width:13px;font-weight:600}
.visit-memo-marker{display:inline-flex!important;align-items:center;justify-content:center;width:14px;height:14px;padding:0;vertical-align:middle;line-height:1;margin-left:2px;flex:0 0 14px;touch-action:manipulation}
.visit-memo-marker svg{display:block;width:11px!important;height:11px!important}
.visit-memo-overlay{position:fixed;inset:0;z-index:12000;background:#132f4d55;display:flex;align-items:center;justify-content:center;padding:16px}
.visit-memo-dialog{background:#fff;color:#1b2d42;border:1px solid #dce4ed;border-radius:12px;padding:18px;width:min(420px,100%);max-height:80dvh;overflow:auto;box-shadow:0 10px 38px #132f4d33}
.visit-memo-dialog h2{margin:0;font-size:17px}.visit-memo-dialog p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;margin:16px 0 0}.visit-memo-dialog button{min-height:44px}
/* One unobtrusive route rail below all visit/exception cards; labels retain their hit targets. */
.timeline .distance-lower-rail{position:absolute;top:var(--travel-top);left:0;right:0;height:var(--travel-height);background:linear-gradient(#d7e2ea,#d7e2ea) left 12px/100% 1px no-repeat;pointer-events:none}
.timeline .lane .distance-lower-rail .travel-link.distance-marker{top:0!important;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;padding:2px 8px;pointer-events:auto;color:#496173;min-height:24px}
.timeline .distance-lower-rail .distance-marker:before{content:'';position:absolute;left:0;right:0;top:12px;height:1px;background:currentColor;opacity:.35}
.timeline .distance-lower-rail .distance-marker-face{position:relative;background:#fff;padding:1px 3px;max-width:100%;border-bottom:1px solid currentColor}
.timeline .distance-lower-rail .distance-marker.google-measured{color:#21653c!important}.timeline .distance-lower-rail .distance-marker.distance-stale,.timeline .distance-lower-rail .distance-marker.distance-partial{color:#86530b!important}
.timeline .distance-lower-rail .distance-marker:hover .distance-marker-face,.timeline .distance-lower-rail .distance-marker:focus-visible .distance-marker-face{background:#edf5fa}
.timeline .draft-lane .distance-lower-rail .distance-marker-face{background:#fffcf6}
@media(pointer:coarse){.timeline .distance-lower-rail .distance-marker{min-height:32px!important}}
@media print{.visit-memo-overlay{display:none!important}}
.timeline .visit .visit-memo-marker{position:absolute;right:3px;bottom:var(--card-pad);z-index:2}
.timeline .visit:has(.visit-memo-marker) .visit-address{padding-right:17px}
.timeline .lane:not(:has(.cancelled-visit-chip)){--travel-top:calc(var(--cancel-top) + 2px)}

.route-side-overlay>section.distance-hover-details{pointer-events:none}

.cancelled-visit-strip{pointer-events:none}.cancelled-visit-strip .cancelled-visit-chip{pointer-events:auto}

/* A: independent route legs and a reserved status/memo footer. */
.timeline .lane .distance-lower-rail .travel-link.distance-marker{top:calc(var(--distance-row,0) * var(--distance-row-height,36px))!important;line-height:1.3}
.timeline .distance-lower-rail{background:none}
.timeline .lane{--card-height:calc(var(--card-line) * 4 + var(--card-pad) * 2 + 2px + var(--status-line) + var(--result-line))}
.timeline .visit .visit-footer{position:absolute;left:3px;right:3px;bottom:var(--card-pad);height:var(--card-line);display:flex;align-items:center;justify-content:space-between}
.timeline .visit .visit-footer .actual-confirmed-badge{margin-left:auto;flex:none;max-width:none}
.timeline .visit .visit-footer .visit-memo-marker{position:static;margin:0;flex:none}
.timeline .visit:has(.visit-memo-marker) .visit-address{padding-right:0}
.mobile-visit .actual-confirmed-badge{position:absolute;bottom:3px;right:3px;max-width:none;z-index:2}
.mobile-visit .visit-memo-marker{position:absolute;bottom:3px;left:3px;margin:0;z-index:2}

.mobile-visit-content{padding-bottom:18px!important}.mobile-visit-content>small:has(.actual-confirmed-badge):not(:has(.visit-companion-badge)){height:0;min-height:0}

.client-name-link{border:0;padding:0;background:transparent;color:#205d90;font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:3px}
.assessment-compact-table table:has(th:nth-child(7)){min-width:850px}.assessment-compact-table table:has(th:nth-child(7)) col:last-child{width:180px}
.assessment-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;gap:10px;margin:22px 0}.assessment-steps li{border-bottom:3px solid #d4e0e9;padding:10px 4px;color:#60788d;font-size:13px}.assessment-steps li.current{border-color:#2469a0;color:#1d5d8e;font-weight:700}.assessment-steps li.done{border-color:#70a38b}.assessment-flow-fields{border:0;padding:0;margin:0;min-width:0}.assessment-flow-footer{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #d4e0e9;margin-top:22px;padding-top:18px;flex-wrap:wrap}.assessment-action-choice{display:flex;gap:14px;padding:16px;border:1px solid #d4e0e9;border-radius:8px;margin:12px 0;align-items:flex-start}.assessment-action-choice input{width:auto;margin-top:5px;flex-shrink:0}.assessment-action-choice small{display:block;color:#60788d;margin-top:5px}.assessment-wizard{max-width:900px}.assessment-compact-table td:last-child .row{min-width:150px}.assessment-compact-table td button{font-size:12px;padding:6px 8px}@media(max-width:700px){.assessment-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-flow-footer button{min-height:44px}.assessment-action-choice{padding:12px}}
.client-calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0}.client-calendar-heading h2{font-size:27px;margin:0}.client-calendar-heading p{color:var(--muted);font-size:13px}.client-calendar-tabs{margin-bottom:20px}.client-calendar-controls{justify-content:space-between;flex-wrap:wrap}.client-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.client-month-grid.single-day{grid-template-columns:1fr}.client-weekday{text-align:center;padding:12px;background:#f3f7fb;font-size:13px;border-bottom:1px solid var(--border)}.client-weekday:first-child{color:#b44b4b}.client-weekday:nth-child(7){color:#2673b0}.client-calendar-day{min-height:140px;padding:8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0}.client-calendar-day.outside-month{background:#f6f8fa;color:#7c8e9e}.client-calendar-day.is-today{box-shadow:inset 0 3px #2673b0}.client-date-button{width:100%;display:flex;justify-content:space-between;border:0;background:transparent;padding:4px 3px 8px;min-height:32px}.client-date-button:disabled{opacity:1;color:inherit}.mobile-date{display:none}.client-calendar-event{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;white-space:normal;background:#e9f3fc;border:1px solid #b4d3ee;color:#214c70;padding:7px;margin:4px 0;font-size:12px;overflow-wrap:anywhere}.client-calendar-event small{font-size:11px}.client-calendar-event.completed{background:#e7f5ec;border-color:#9acbb1;color:#286346}.client-calendar-event.pending{background:#fff6db;border-color:#e6cb80;color:#765a15}.client-calendar-event.cancelled{background:#f0f1f3;border-color:#ced2d7;color:#666}.client-no-events{color:#a0acb5;font-size:11px}.client-recurring-row{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}
.drawer.client-calendar-editor{width:min(1180px,96vw);height:94dvh;margin:3dvh auto;border-radius:14px;overflow:hidden}.client-calendar-editor>.drawer-head{padding:18px 24px}.client-calendar-editor .drawer-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:26px;padding:20px;overflow-y:auto}.client-calendar-editor .editor-fields{min-width:0}.client-calendar-editor .drawer-footer{flex-wrap:wrap}.client-day-preview{min-width:0;border-left:1px solid var(--border);padding-left:18px}.client-day-preview h3{text-align:center;margin:0 0 8px}.client-day-axis{position:relative;min-height:300px;margin:20px 0 10px 44px}.client-hour{position:absolute;left:0;right:0;height:60px;border-top:1px solid #dce4eb;pointer-events:none}.client-hour span{position:absolute;left:-44px;top:-8px;font-size:11px;color:#718395}.client-day-lanes{display:flex;position:relative;gap:4px;overflow-x:auto;min-height:100%;padding-right:4px}.client-time-event{flex:1 0 82px;min-width:0;background:#edf4fb;border:1px solid #a9c8e3;border-radius:4px;padding:4px;display:flex;flex-direction:column;font-size:11px;overflow:auto;color:#214c70}.client-time-event.draft{background:#ffe7e3;border-color:#dd8071;color:#973e30}.client-calendar dl{display:grid;grid-template-columns:130px 1fr;gap:12px}.client-calendar dd{margin:0;white-space:pre-wrap}.client-calendar-editor .address-details{margin-bottom:16px}
@media(max-width:900px) and (min-width:701px){.client-calendar-event{font-size:11px;padding:4px}.client-calendar-day{padding:4px}.client-calendar-editor .drawer-body{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);gap:16px}}
@media(max-width:700px){.client-calendar-heading{align-items:flex-start;flex-direction:column}.client-calendar-heading h2{font-size:23px}.client-month-grid{display:block}.client-weekday,.desktop-date{display:none}.mobile-date{display:inline}.client-calendar-day{min-height:80px;padding:12px}.client-calendar-day.outside-month{display:none}.client-calendar-event{font-size:14px;padding:10px}.client-calendar-controls input{max-width:150px}.drawer.client-calendar-editor{width:100%;height:100dvh;margin:0;border-radius:0}.client-calendar-editor .drawer-body{display:flex;flex-direction:column;padding:16px}.client-day-preview{border-left:0;border-top:1px solid var(--border);padding:16px 0 0}.client-calendar-editor .drawer-footer{padding:12px;gap:6px}.client-calendar-editor .drawer-footer button{min-height:44px}.client-calendar-tabs{flex-wrap:wrap}}

.client-desktop-calendar-hint{display:none}
@media(min-width:1101px) and (pointer:fine){
 .client-calendar{width:100%;max-width:1200px;margin-inline:auto}
 .client-calendar-heading{margin:14px 0}.client-calendar-heading h2{font-size:24px}.client-calendar-heading p{margin:6px 0}
 .client-calendar-tabs{margin-bottom:12px}.client-calendar-controls{gap:10px;margin-bottom:8px}
 .client-desktop-calendar-hint{display:block;color:var(--muted);font-size:12px;margin:4px 0 10px}
 .client-weekday{padding:7px;font-size:12px}
 .client-month-grid.month-view .client-calendar-day{height:124px;min-height:0;padding:5px 6px;display:flex;flex-direction:column;overflow:hidden}
 .client-month-grid.month-view .client-date-button{flex:none;min-height:25px;padding:2px 3px 4px;font-size:12px}
 .client-month-grid.month-view .client-calendar-events{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .client-calendar-events:focus-visible{outline:2px solid #2673b0;outline-offset:-2px}
 .client-calendar .client-calendar-event{align-items:flex-start;justify-content:flex-start;text-align:left;gap:1px;padding:5px 7px;margin:3px 0;border-radius:5px;font-size:12px;line-height:1.4;min-height:0}
 .client-calendar .client-calendar-event small{font-size:10px;line-height:1.4}
 .client-month-grid.month-view .client-no-events{font-size:10px;padding:5px 3px}
}
