/* CRM35 extends the existing K3 operational surfaces. */
.movement-modes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.movement-modes .btn{min-height:44px;white-space:normal}
.movement-modes [aria-current=page],.movement-phone-switch [aria-pressed=true]{color:var(--blue-dark);background:var(--blue-pale);border-color:var(--blue)}
.usage-consent{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:20px;max-width:80ch}
.usage-consent h2{font-size:19px;line-height:1.5;margin:0 0 8px;text-wrap:balance}
.usage-consent p{margin:8px 0;max-width:72ch}
.usage-consent .usage-state{font-weight:700;color:var(--blue-dark)}
.usage-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.usage-actions .btn{min-height:44px;white-space:normal}
.movement-workspace{overflow:hidden}
.movement-workspace .panel-head{align-items:start}
.movement-filters{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) minmax(160px,1.5fr) auto;align-items:end;gap:12px;padding:20px;border-bottom:1px solid var(--line)}
.movement-filters label{display:grid;gap:6px;min-width:0;font-weight:700;font-size:14px}
.movement-filters input,.movement-filters select,.movement-filters .btn{min-width:0;width:100%;min-height:44px}
.movement-summary{padding:18px 20px 8px}
.movement-summary>strong,.movement-summary>span{display:block}
.movement-summary>span{margin-top:4px;color:var(--muted);font-variant-numeric:tabular-nums}
.movement-summary p{max-width:74ch;margin:8px 0}
.movement-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:20px;padding:12px 20px 20px}
.movement-map-pane,.movement-list-pane{min-width:0}
.movement-map{height:440px;min-height:240px;border:1px solid var(--line);border-radius:12px;z-index:0}
.movement-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.movement-map-marker{display:grid;place-items:center;background:none;border:0}
.movement-map-marker span{display:grid;place-items:center;width:34px;height:34px;background:var(--blue-dark);border:2px solid var(--white);color:var(--white);border-radius:50%;font-family:Sarabun,Tahoma,sans-serif;font-weight:700;font-size:13px;box-shadow:0 2px 6px rgb(0 0 0 / 18%)}
.movement-map-marker.is-selected span{background:var(--navy);outline:3px solid var(--blue);outline-offset:2px}
.movement-selection{display:grid;gap:4px;padding:12px 0;overflow-wrap:anywhere;font-size:14px}
.movement-selection strong{font-size:16px}
.movement-coordinates{font-variant-numeric:tabular-nums;color:var(--muted)}
.movement-list-pane{max-height:560px;overflow:auto;scrollbar-color:var(--muted) var(--canvas);overscroll-behavior:contain;scroll-padding:12px}
.movement-timeline{list-style:none;margin:0;padding:0}
.movement-timeline h3{font-size:14px;color:var(--muted);margin:20px 0 6px}
.movement-timeline li:first-child h3{margin-top:0}
.movement-point{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--white);color:var(--ink);padding:12px 8px}
.movement-point:hover,.movement-point[aria-pressed=true]{background:var(--blue-pale)}
.movement-point>span:last-child{min-width:0;flex:1}
.movement-point strong,.movement-point>span>span{display:block;overflow-wrap:anywhere}
.movement-point>span>span{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;margin-top:3px}
.movement-number{display:grid;place-items:center;min-width:32px;height:32px;border-radius:50%;background:var(--blue-pale);color:var(--blue-dark);font-weight:700;font-variant-numeric:tabular-nums}
.movement-more{margin-top:16px;min-height:44px;width:100%}
.movement-policy{padding:16px 20px;border-top:1px solid var(--line)}
.movement-policy summary{min-height:44px;cursor:pointer;color:var(--blue-dark);font-weight:700;padding-block:8px}
.movement-policy p,.movement-policy ul{max-width:74ch}
.movement-policy li{margin-bottom:8px;overflow-wrap:anywhere}
.movement-empty,.movement-error{padding:20px;max-width:74ch}
.movement-empty p{margin:8px 0}
.movement-error{color:var(--danger)}
.movement-phone-switch{display:none}
@media(max-width:1000px){.movement-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.movement-layout{grid-template-columns:minmax(0,1fr)}.movement-list-pane{max-height:420px}}
@media(max-width:760px){
 .usage-consent{padding:16px;margin-bottom:16px}
 .usage-consent h2{font-size:18px}
 .usage-actions .btn{flex:1 1 140px;min-height:48px}
 .movement-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .movement-modes .btn{min-height:48px;padding-inline:8px;font-size:14px}
 .movement-filters{padding:16px;gap:12px}
 .movement-filters label:nth-child(3){grid-column:1/-1}
 .movement-filters>.btn{grid-column:1/-1;min-height:48px}
 .movement-filters input,.movement-filters select{font-size:16px;min-height:48px;padding:8px;max-width:100%}
 .movement-summary{padding:16px 16px 4px}
 .movement-phone-switch{display:flex;gap:8px;padding:8px 16px}
 .movement-phone-switch .btn{flex:1;min-height:44px}
 .movement-layout{padding:8px 16px 16px;gap:0}
 .movement-map{height:clamp(260px,46dvh,440px)}
 .movement-list-pane{max-height:none;overflow:visible}
 .movement-workspace[data-movement-view=map] .movement-list-pane{display:none}
 .movement-workspace[data-movement-view=list] .movement-map-pane{display:none}
 .movement-workspace .btn,.movement-policy summary{min-height:48px}
 .movement-map .leaflet-control-zoom a{width:48px;height:48px;line-height:48px}
 .movement-policy{padding:12px 16px}
 .movement-policy summary{font-size:14px}
}
