/* CareShift AIを参考にした、くるっとの共通配色。計算・保存には関与しない。 */
:root {
  --ink:#26323a; --muted:#64727e; --primary:#303b66; --nav-soft:#edf0f8;
  --accent:#d77a16; --accent-hover:#c56b10; --on-accent:#fff;
  --orange:#a7510b; --orange-soft:#fff0de; --green:#e5f2ea;
  --line:#e2e7eb; --line-strong:#c7d0da; --bg:#f4f7f6;
  --surface:#fff; --surface-soft:#f4f6f8; --vehicle-head:#f4f6f8;
  --blue-soft:#e1f0fa; --blue-line:#c8dfef; --blue-ink:#285f86;
  --purple-soft:#f0eaf8; --purple-ink:#715297; --red:#ac3e3a;
  --shadow:0 2px 5px #24324808;
  background:var(--bg); color:var(--ink); line-height:1.7;
}
:focus-visible{outline:3px solid #4167bc;outline-offset:3px}
body{background:var(--bg)}
a{color:var(--primary);text-underline-offset:3px}
button{border-radius:10px;background:var(--surface);font-weight:500;transition:background-color .12s,border-color .12s}
button:hover{background:var(--surface-soft);border-color:var(--line-strong)}
button.primary,.map-link.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-size:19px;font-weight:700}
button.primary:hover,.map-link.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
button.primary:disabled,button:disabled{opacity:1;background:var(--surface-soft);border-color:var(--line);color:var(--muted)}
button.ghost{color:var(--primary)}
input,select,textarea{border-color:var(--line-strong)}
h1{letter-spacing:-.025em;font-weight:700}
.sidebar,.topbar{background:var(--surface)}
.sidebar{padding-top:28px}
.brand,.entry-brand{position:relative;color:var(--ink);letter-spacing:-1px;padding-left:42px;font-weight:700}
.brand:before,.entry-brand:before{content:'';display:grid;place-items:center;position:absolute;left:0;top:2px;width:32px;height:32px;border-radius:50%;background:var(--accent);color:white;font-size:20px;letter-spacing:0;font-weight:500}
.brand{font-size:28px;margin-left:9px;margin-bottom:28px}
.brand span{font-size:11px;letter-spacing:0;margin-top:8px;line-height:1.5}
.entry-brand{line-height:1.2;padding-left:48px}
.entry-brand:before{width:36px;height:36px;font-size:24px}
.entry-brand span{font-size:12px;letter-spacing:0}
.nav button{color:var(--muted);border-radius:10px}
.nav button:hover{background:var(--surface-soft);color:var(--primary)}
.nav button.active{background:var(--primary);color:#fff;box-shadow:none;font-weight:600}
.nav .count{background:var(--surface-soft);color:var(--muted)}
.nav button.active .count{background:#ffffff22;color:#fff}
.sidebar-bottom{line-height:1.9}
.dot{background:#38885d}
.topbar .prototype,.avatar{background:var(--surface-soft);color:var(--muted)}
.page-heading{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:16px;align-items:center;box-shadow:var(--shadow)}
.page-heading>div:first-child{flex:1 1 380px}
.page-heading .actions{flex-wrap:wrap;flex-shrink:1}
.page-heading p{line-height:1.8;font-size:13px}
.demo-note{background:var(--surface);border-color:var(--line);color:var(--muted);padding:10px 14px;border-radius:9px;line-height:1.7}
.toolbar{padding-bottom:16px;border-bottom:1px solid var(--line)}
.segmented{padding:0;background:transparent;border:0;border-radius:0;gap:6px}
.segmented button{border-radius:0;padding:10px 14px;border-bottom:3px solid transparent;color:var(--muted);font-size:13px}
.segmented button.active{background:transparent;color:var(--orange);box-shadow:none;border-bottom-color:var(--accent);font-weight:600}
.metrics{gap:12px}
.metric{border-top:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.metric.alert{border-color:#e5c49e;background:#fffaf4}
.metric-label,.metric-foot{font-size:12px;color:var(--muted)}
.metric-value{font-size:28px}
.metric-icon{background:var(--nav-soft);color:var(--primary)}
.panel{border-radius:13px}
.panel-header{background:var(--surface);padding:17px 20px}
.workflow{border-color:var(--line);padding:13px 16px;background:var(--surface);box-shadow:none}
.workflow-heading{margin-bottom:10px}
.mode-badge{background:var(--nav-soft);color:var(--primary)}
.workflow-steps button{background:var(--surface);border-color:var(--line);border-radius:9px}
.workflow-steps button.current{background:var(--nav-soft);border-color:#c1cbe2;box-shadow:none;color:var(--primary)}
.step-number{background:var(--nav-soft);color:var(--primary)}
.current .step-number{background:var(--primary);color:#fff}
.workflow-steps small{font-size:11px}
.status-tag{background:var(--surface-soft);color:var(--muted);font-size:11px;border-radius:6px}
.status-tag.success{background:#e5f2ea;color:#286c4d}
.status-tag.warning{background:var(--orange-soft);color:var(--orange)}
.status-tag.bad{background:#fce9e7;color:var(--red)}
.plan-handoff{background:var(--surface);border-color:var(--line)}
.plan-handoff button.primary{background:var(--surface-soft);border-color:var(--line);color:var(--primary);font-size:13px;font-weight:600}
.plan-handoff button.primary:hover{background:var(--nav-soft)}
.route-list{align-items:start;gap:16px}
.route-card{padding:0 18px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.route-head{background:var(--surface-soft);color:var(--ink);margin:0 -18px 14px;padding:17px 18px;border-radius:11px 11px 0 0;min-height:80px;gap:12px}
.route-head .route-meta,.route-head>.tiny{color:var(--muted);font-size:12px}
.route-head .route-number{background:var(--primary);color:#fff;border:0;width:32px;height:32px}
.route-head .route-title{font-size:15px}
.route-head .status-tag.warning{color:var(--orange);background:var(--orange-soft)}
.route-line{background:transparent;border:0;padding:4px 0 10px;font-size:13px}
.route-line .line{background:var(--line);height:1px}
.route-line .line:after{background:var(--primary)}
.route-card .stop-chips{display:grid;gap:0;margin-bottom:14px}
.route-card .stop-chip{display:flex;align-items:center;gap:9px;padding:11px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);font-size:13px;background:transparent;min-width:0}
.route-card .stop-chip:last-child{border-bottom:0}
.stop-order{color:var(--muted);font-size:11px;width:12px;flex-shrink:0}
.stop-chip time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}
.stop-name{overflow-wrap:anywhere}
.mobility-tag{font-size:11px;padding:2px 6px;border-radius:5px;margin-left:auto;white-space:nowrap}
.mobility-tag.wheelchair{background:var(--blue-soft);color:var(--blue-ink)}
.mobility-tag.walker{background:var(--purple-soft);color:var(--purple-ink)}
.route-actions{flex-wrap:wrap}
.route-actions .muted,.route-card .route-meta{font-size:12px}
.route-card .map-route-actions>span{max-width:none}
.map-link{color:var(--primary);background:var(--surface);border-color:var(--line)}
.map-link:hover{background:var(--nav-soft)}
.map-route-actions{flex-wrap:wrap}
.map-route-actions .small{background:var(--surface-soft);color:var(--primary);border-color:var(--line);font-size:12px}
.map-route-actions .small:hover{background:var(--nav-soft)}
.map-external-note{background:var(--blue-soft)}
.vehicle-icon{background:var(--nav-soft);color:var(--primary)}
.config-list,.config-row{background:var(--surface-soft);border-color:var(--line)}
.dispatch-card header,.driver-header{background:var(--surface-soft)}
.next-visit{background:var(--surface);border-color:var(--line);border-left:4px solid var(--primary)}
.pickup-note{background:var(--orange-soft);border-color:#ead0ab;color:#724b24}
.experience-facts>span,.experience-boundary{background:var(--surface-soft)}
.experience-start-note{background:var(--surface-soft);border-color:var(--line)}
.experience-document{background:var(--surface)}
.experience-progress progress{accent-color:var(--accent)}
.experience-welcome{box-shadow:var(--shadow)}
.experience-link{color:var(--primary)}
.facility-list button:hover{border-color:var(--line-strong);background:var(--nav-soft)}
.footer-note{font-size:11px;line-height:1.8}
dialog{border-radius:16px}
dialog::backdrop{background:#20293f55}
.modal-head{background:var(--surface)}
#toast{background:var(--primary)}
@media(max-width:1150px){.brand{font-size:26px;margin-left:2px;padding-left:37px}.brand:before{width:28px;height:28px;font-size:18px}.page-heading{padding:22px}.page-heading .actions{justify-content:flex-start}}
@media(max-width:850px){.sidebar{padding:18px}.brand{display:block;margin:0;padding-left:42px;font-size:26px}.brand span{margin-top:5px}.brand:before{width:32px;height:32px;font-size:21px}.nav{margin-top:18px}.nav button{font-size:12px;padding:9px 11px}.page-heading{padding:20px}.topbar{height:auto;min-height:45px;padding-top:8px;padding-bottom:8px;gap:10px;flex-wrap:wrap}}
@media(max-width:680px){.page-heading{padding:18px;border-radius:13px}.page-heading .actions button{font-size:12px}.page-heading .actions button.primary{font-size:19px;flex:1 1 auto}.page-heading>div:first-child{flex-basis:100%}.page-heading p{font-size:12px}.demo-note{font-size:11px}.route-card{padding:0 15px 15px}.route-head{margin:0 -15px 14px;padding:15px;flex-wrap:wrap}.route-head>.tiny{font-size:12px}.route-head>.flex{min-width:0}.route-head .route-title{overflow-wrap:anywhere}.metric-label,.metric-foot{font-size:11px}.metric-value{font-size:26px}.workflow-heading{font-size:11px}.workflow-steps button{min-height:54px}.map-link.primary{font-size:19px}.plan-handoff button.primary{font-size:13px}.experience-start{font-size:19px!important}.experience-welcome{padding:20px}.modal-actions{flex-wrap:wrap}.modal-actions button.primary{flex:1}.modal-head{gap:12px}.topbar>.flex{flex-wrap:wrap}}
@media(pointer:coarse){button,.map-link{min-height:44px}input,select,textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
@media print{.page-heading{display:none}.route-card{padding:12px 0;border:0;border-bottom:1px solid var(--line);box-shadow:none}.route-head{background:#fff;color:#000;margin:0 0 12px;padding:0;min-height:0}.route-head .route-meta,.route-head>.tiny{color:#222}.route-head .route-number{background:#fff;color:#000;border:1px solid #888}.route-list{display:block}.route-card .stop-chips{display:grid}.route-card .stop-chip{font-size:10pt;padding:5px 0;break-inside:avoid}.stop-order,.stop-chip time,.mobility-tag{font-size:9pt}.mobility-tag.wheelchair,.mobility-tag.walker{background:#fff;color:#000}.route-line{background:#fff}.stop-name{font-size:10pt}}

/* 利用者情報を同じ入口で管理する */
[hidden]{display:none!important}
.client-facility{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:19px 20px;margin-bottom:16px}
.client-facility h2{font-size:15px;margin-bottom:5px}
.client-facility p{overflow-wrap:anywhere}
.client-facility button{flex-shrink:0}
.client-address-cell{min-width:190px;max-width:280px;overflow-wrap:anywhere;white-space:normal}
.client-map-link{display:block;font-size:12px;margin-top:5px}
.client-register-list th{font-size:12px}
.client-register-list td{vertical-align:top}
.client-sample{margin-top:18px}
.client-sample summary,.address-paste summary,.address-advanced summary,.client-advanced summary{cursor:pointer;font-weight:600;font-size:13px}
.client-sample p{margin:12px 0}
.client-editor-section,.address-editor{margin:20px 0;padding-top:18px;border-top:1px solid var(--line)}
.client-editor h3,.address-editor h3{margin-bottom:12px;font-size:15px}
.client-editor p,.address-editor p{line-height:1.8}
.client-checks{margin-top:13px}
.address-editor .form-grid{margin-top:14px}
.address-paste{margin:12px 0;padding:12px 14px;background:var(--surface-soft);border-radius:9px}
.address-paste .field{margin:12px 0}
.address-preview{margin:15px 0}
.address-check{align-items:flex-start;margin:17px 0;font-size:13px}
.address-check input{flex-shrink:0;margin-top:4px}
.address-advanced{padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:15px}
.address-advanced p{margin-top:13px}
.client-advanced>.form-grid,.client-advanced>h3{margin-top:18px}
@media(max-width:680px){.client-facility{align-items:flex-start;flex-direction:column;padding:16px}.client-facility button{width:100%}.client-editor-section,.address-editor{margin-top:16px}.address-editor input,.address-editor textarea{font-size:16px}.address-preview .map-link{width:100%;min-height:44px}.address-check{font-size:13px}.client-register-list table{min-width:1080px}}
@media print{.client-sample,.client-facility,.address-preview{display:none!important}}
.client-register-list th:first-child,.client-register-list td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;min-width:150px}
.client-register-list td:first-child button{display:flex;margin-top:9px;font-size:11px;white-space:nowrap}
@media(max-width:680px){.client-register-list th:first-child,.client-register-list td:first-child{min-width:135px}.client-register-list td:first-child button{padding:7px 8px}}
@media(min-width:851px){.nav button{font-size:13px;white-space:nowrap;gap:8px}}

/* 住所エリアによる配車 */
.area-intro p,.area-form p,.area-check p{margin:12px 0;line-height:1.9}
.area-form,.area-check{margin-top:18px}
.area-form fieldset{border:0;padding:0}
.area-form legend{font-size:16px;font-weight:600;margin-bottom:14px}
.area-facility{max-width:300px;margin:18px 0}
.area-rows{display:grid;gap:12px;margin:18px 0}
.area-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(160px,2fr) 110px auto;gap:12px;align-items:end;border-bottom:1px solid var(--line);padding:0 0 14px}
.area-row textarea{resize:vertical}
.area-matrix{margin:22px 0}
.area-matrix h3{margin-bottom:12px;font-size:14px}
.area-matrix table{min-width:560px}
.area-matrix th{font-size:12px}
.area-matrix td{padding:9px}
.area-matrix input[type=number]{min-width:66px;max-width:85px;font-size:14px;text-align:right}
.area-time-note{background:var(--surface-soft);padding:14px;border-radius:9px;margin-top:20px;font-size:13px}
.area-save{margin-top:18px}
.client-area-select{display:block;margin-top:9px;font-size:12px;max-width:175px}
.client-area-field{margin:16px 0}
.route-area-label{font-size:11px;color:var(--primary);margin:4px 0}
.client-facility{flex-wrap:wrap}
.client-facility>div{flex:1 1 240px}
@media(max-width:1000px){.area-row{grid-template-columns:1fr 1fr}.area-row .field:nth-child(2){grid-column:2}.area-row button{justify-self:start}.area-matrix .table-wrap{max-width:100%}}
@media(max-width:680px){.area-row{grid-template-columns:1fr}.area-row .field:nth-child(2){grid-column:auto}.area-row button{justify-self:end}.area-form .primary{font-size:19px}.area-save{align-items:stretch;flex-direction:column}.client-register-list table{min-width:1240px}.client-area-select{font-size:16px}}
@media print{.area-form,.area-intro,.area-check{display:none!important}}

/* 別画面が開かない端末でも、同画面とコピーで地図へ進める。 */
.map-launcher{display:block;min-width:0;max-width:100%;margin:8px 0}
.map-launch-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.map-launch-buttons .map-link{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.map-secondary{font-size:12px!important;background:#fff!important;color:#303b66!important;border:1px solid #dce1e5!important}
.map-copy{margin-top:8px;min-width:0}
.map-copy summary{font-size:12px;color:#67747f;cursor:pointer}
.map-copy[open]{padding:10px;background:#f7f8fa;border:1px solid #e2e6e9;border-radius:10px}
.map-copy p{margin:8px 0!important}
.map-copy input{width:100%;box-sizing:border-box;font-size:12px;min-width:0}
.map-copy-status{display:block;margin-top:8px;overflow-wrap:anywhere}
.client-address-cell .map-launch-buttons{gap:4px}
.client-address-cell .map-link{font-size:11px;padding:5px 7px;min-height:30px}
.client-address-cell .map-copy[open]{width:240px;max-width:100%}
.driver-map-links .map-launch-buttons{align-items:stretch}

.miyako-demo{border-top:3px solid #dd8018;margin-bottom:20px}
.miyako-demo h2{margin:10px 0}
.miyako-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style-position:inside;gap:12px;padding:0;margin:20px 0}
.miyako-steps li{background:#f6f7fa;border:1px solid #e1e5eb;padding:16px;border-radius:12px;min-width:0}
.miyako-steps p{font-size:13px;line-height:1.7;margin:10px 0}
.miyako-steps button{white-space:normal;max-width:100%;margin-top:6px}
.miyako-stage{padding:12px 16px;background:#fff6e8;border-radius:8px;color:#885013;font-weight:600}
@media(max-width:850px){.miyako-steps{grid-template-columns:1fr}}
