*{box-sizing:border-box} :root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#182738;background:#f4f6fa;font-size:14px}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:7px;font-weight:600;padding:11px 15px;transition:background .15s}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #81a9ff;outline-offset:2px}[hidden]{display:none!important}aside{position:fixed;width:244px;inset:0 auto 0 0;background:#122337;color:#e8eef7;padding:34px 22px;display:flex;flex-direction:column}.brand{font-size:31px;letter-spacing:-1px;font-weight:800}.brand span{display:block;font-size:10px;letter-spacing:3px;margin-top:7px;color:#8ca4c0}.nav-label{font-size:10px;letter-spacing:1.7px;color:#899ab0;margin:55px 12px 17px}nav button{display:flex;gap:13px;text-align:left;align-items:center;width:100%;background:transparent;color:#aebed0;margin-bottom:9px;font-size:18px;padding:14px 12px}nav button span{font-size:13px}nav button.active{background:#28415d;color:white}nav button:hover{background:#203751}.aside-bottom{margin-top:auto;font-size:12px;line-height:2}.aside-bottom small{color:#8ca4c0;margin-left:15px}.aside-bottom button{display:block;background:none;color:#aebed0;padding:20px 0 0;font-size:12px}.local-dot{display:inline-block;width:6px;height:6px;background:#62c8ad;border-radius:50%;margin-right:8px}main{margin-left:244px;padding:38px 40px;max-width:1800px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:2px;color:#6f8094;font-weight:700}h1{font-size:29px;letter-spacing:-.8px;margin:10px 0}header p{margin:0;color:#6b7889;line-height:1.5}.primary{background:#245fde;color:white}.primary:hover{background:#194cb9}.secondary{background:white;color:#3f536a;border:1px solid #dce3ec}.secondary:hover{background:#f1f5fa}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:25px}.stats>div{background:white;border:1px solid #e1e7ef;border-radius:10px;padding:21px}.stats span{font-size:12px;color:#68798d}.stats strong{display:block;font-size:32px;margin:14px 0 8px;font-weight:650;letter-spacing:-1px}.stats small{font-size:10px;color:#8a96a5}.filter-card,.records,.sync-card{background:white;border:1px solid #e1e7ef;border-radius:10px;margin-bottom:22px}.filter-card{padding:22px}h2{font-size:15px;margin:0;font-weight:650}.filter-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.presets button{background:none;color:#245fde;font-size:12px;padding:5px 8px}#filters{display:grid;grid-template-columns:1fr 1fr 1.25fr .9fr 1.3fr 1fr;gap:14px;align-items:end}label{display:block;font-size:11px;color:#627186;font-weight:600}input,select,textarea{width:100%;padding:10px 9px;margin-top:8px;border:1px solid #d8e0ea;border-radius:6px;background:white;color:#25374c;min-width:0}#filters>.primary{grid-column:6;padding:10px}.hint{font-size:11px;line-height:1.6;color:#788697;margin:8px 0 0;max-width:850px}.records-top{display:flex;align-items:center;justify-content:space-between;padding:23px;gap:15px}.records-top span{display:block;font-size:11px;color:#8390a0;margin-top:7px}.actions{display:flex;gap:8px}.actions button{font-size:12px}.table-wrap{overflow:auto;min-height:230px}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{text-align:left;background:#f8fafc;padding:13px 20px;border-block:1px solid #e7edf3;color:#788797;font-size:10px;letter-spacing:.6px;text-transform:uppercase}td{padding:16px 20px;border-bottom:1px solid #edf1f5}td.school{white-space:normal;min-width:240px;max-width:330px;font-size:12px;line-height:1.5}td .sub{display:block;font-size:10px;color:#8795a5;margin-top:5px}tbody tr:hover{background:#fafcff}.badge{padding:5px 8px;border-radius:5px;font-size:10px;display:inline-block;background:#eef2f6;color:#65758a}.badge.green{background:#e8f6ee;color:#217849}.badge.red{background:#fff0ed;color:#ae4836}.badge.blue{background:#eaf1ff;color:#315fae}.link-button{background:none;padding:5px;color:#245fde;font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:17px 23px;color:#7a899a;font-size:12px}.pagination button{font-size:11px;margin-left:7px}.sync-card{padding:23px;display:flex;justify-content:space-between;gap:25px}.sync-card p{font-size:12px;line-height:1.8;color:#556c83;margin:12px 0 5px}.sync-card small{font-size:11px;color:#8b97a5}#queue-status{font-size:12px;line-height:1.9;color:#657990;min-width:150px}footer{font-size:11px;color:#8b97a5;margin:25px 0}#message{padding:14px 23px;background:#edf4ff;color:#345d94;font-size:12px}.empty{text-align:center;color:#8998a8;padding:65px 20px!important}.login{min-height:100vh;display:grid;place-items:center;background:#122337}.login form{background:white;padding:45px;border-radius:14px;width:min(440px,92vw)}.login .brand{color:#173b6a}.login h1{font-size:25px;margin-top:30px}.login p{line-height:1.6;color:#768497}.login label{margin-top:24px}.login button{width:100%;margin-top:18px}.login small{font-size:11px;color:#8390a0;line-height:1.6}#login-error{color:#b53e39}dialog{border:0;border-radius:12px;width:min(740px,94vw);padding:28px;color:#25374c;max-height:85vh}dialog::backdrop{background:#10233888}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head button{background:none;font-size:24px}.detail-field{border-bottom:1px solid #e9edf2;padding:14px 0}.detail-field small{display:block;color:#8a97a7;margin-bottom:6px}.detail-field p,pre{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;font-size:12px}pre{background:#f4f6f9;padding:15px;border-radius:6px;max-height:240px;overflow:auto}#note-form{margin-top:25px;border-top:1px solid #dde4ed;padding-top:14px}#note-form p{font-size:12px;color:#7b8b9c}#note-form label{margin:12px 0}#note-form button{margin-top:8px}@media(max-width:1200px){main{padding:28px 22px}aside{width:210px}main{margin-left:210px}.stats{gap:9px}.stats>div{padding:16px}#filters{grid-template-columns:repeat(3,1fr)}#filters>.primary{grid-column:3}.records-top{align-items:flex-start;flex-direction:column}}@media(max-width:750px){aside{position:static;width:auto;padding:18px}.brand{font-size:23px}.brand span,.nav-label,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:15px}nav button{min-width:max-content;width:auto;margin:0 8px 0 0;padding:9px}nav button span{font-size:11px}main{margin:0;padding:22px 14px}header{align-items:flex-start}h1{font-size:24px}.stats{grid-template-columns:repeat(2,1fr)}#filters{grid-template-columns:repeat(2,1fr)}#filters>.primary{grid-column:2}.actions{flex-wrap:wrap}.sync-card{flex-direction:column}.filter-card{padding:16px}}

.table-wrap{max-height:620px;overflow:auto}thead th{position:sticky;top:0;z-index:1}
.map-card{background:white;border:1px solid #e1e7ef;border-radius:10px;padding:20px;margin-bottom:22px}.map-toolbar{display:flex;align-items:end;gap:18px;flex-wrap:wrap}.map-toolbar label{min-width:220px}.map-toolbar span,#map-legend,#map-warning{font-size:12px;color:#556c83;line-height:1.6}#web-map{height:550px;min-height:320px;border-radius:8px;isolation:isolate;background:#e3eaf0}.leaflet-popup-content{max-height:320px;overflow:auto}.leaflet-popup-content p{white-space:pre-line}.leaflet-container a{color:#245fde}.process-focus{border:2px solid #245fde}main{display:flex;flex-direction:column}#export-card .actions{flex-wrap:wrap}aside{overflow:auto}nav button{margin-bottom:3px;padding-block:11px}@media(max-width:750px){#web-map{height:430px}.map-card{padding:12px}.map-toolbar{gap:10px}}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px;border-bottom:1px solid #dce3ec;padding-bottom:12px}.subnav button{padding:11px 14px;color:#53667d;background:transparent}.subnav button.active{background:#e3edff;color:#215bca}.pilot-notice{background:#fff6df;border:1px solid #ecd39c;padding:15px;border-radius:8px;font-size:12px;line-height:1.7;margin:0 0 22px}fieldset{border:0;padding:0;margin:0}fieldset label{margin:14px 0}#assignment-error,#movement-error{color:#a33328;line-height:1.6}#sync-form{margin-top:18px;max-width:480px}#sync-form button{margin-top:12px}td .link-button{display:block;text-align:left}#filters>.primary{grid-column:auto}dialog fieldset:disabled{opacity:.65}.leaflet-popup-content .link-button{display:block;margin:7px 0}
/* Compact, mobile-first consultation and record cards. */
.context-bar{display:flex;justify-content:flex-end;gap:14px;align-items:center;margin:0 0 12px}.context-bar label{display:flex;align-items:center;gap:8px}.context-bar select{width:auto;margin:0;padding:7px;max-width:220px}.compact-query{padding:12px 16px}.compact-query summary{cursor:pointer;font-weight:650;list-style:inside}.compact-query summary span{font-weight:400;font-size:12px;color:#65758a;margin-left:10px}.compact-query #filters{margin-top:14px;grid-template-columns:1fr 1fr 1.4fr 1fr 1.4fr}.query-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}#filter-hint{margin-top:10px}.visit-reason{white-space:normal;min-width:150px;max-width:360px;line-height:1.6;color:#913e2c}.site-check{display:flex;align-items:center;gap:8px;margin:0 0 8px}.site-check input,.map-selection input,.leaflet-popup-content input[type=checkbox]{width:20px;height:20px;margin:0}.bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:sticky;top:0;z-index:900;background:#e3edff;padding:10px 14px;border:1px solid #b3cbf4;border-radius:8px;margin-bottom:12px}.map-selection{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:12px}.map-selection label{display:flex;align-items:center;gap:8px}.map-selection small{color:#65758a}.assignment-list{max-height:220px;overflow:auto;font-size:12px;line-height:1.5}.records .table-wrap{min-height:0}.records tbody .empty{padding:24px!important}.subnav{gap:2px;margin-bottom:12px}header{margin-bottom:16px}#bulk-count{font-weight:650}.records-top{padding:16px}#filters input,#filters select{margin-top:5px}.pilot-notice{font-size:11px;padding:9px 12px;margin-bottom:10px}
@media(max-width:750px){main{padding:14px 10px}header h1{font-size:22px}.context-bar{justify-content:flex-start;flex-wrap:wrap}.context-bar label{font-size:11px}.compact-query #filters{grid-template-columns:1fr 1fr;gap:10px}.compact-query summary span{display:block;margin:6px 0 0 15px}.query-actions{justify-content:flex-start;flex-wrap:wrap}.records .table-wrap{max-height:none;overflow:visible}.records table{white-space:normal}.records thead{display:none}.records tbody{display:block;padding:0 10px}.records tr{display:flex;flex-direction:column;border:1px solid #dce3ec;border-radius:8px;padding:10px;margin:0 0 12px}.records td{display:flex;gap:10px;justify-content:space-between;border:0;padding:5px 0;min-width:0;max-width:none;font-size:12px;align-items:flex-start}.records td::before{content:attr(data-label);color:#788797;font-size:10px;min-width:85px}.records td.school{display:block;font-weight:650;font-size:14px}.records td.school::before{display:none}.records td:last-child{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px;margin-top:8px}.records td:last-child::before{display:none}.records .visit-reason{max-width:none;min-width:0;overflow-wrap:anywhere}.operation-records td:last-child{order:-1}.operation-records td.school{order:-2}.operation-records td:last-child button:nth-child(2){background:#245fde;color:white;padding:12px 14px;order:-1}.records .pagination{padding:10px;font-size:11px}.map-toolbar label{min-width:0;width:100%}#web-map{height:55vh;min-height:300px}.bulk-bar button{padding:10px;font-size:12px}.sync-card{padding:14px}.records-top .actions{gap:5px}.records-top .actions button{padding:9px}.records .empty{display:block}.records .empty::before{display:none}}

.visit-result>div{min-width:0;max-width:280px}.visit-result .visit-reason{display:block;font-size:12px;color:#913e2c;margin-top:6px;min-width:0;overflow-wrap:anywhere}.compact-query summary{list-style:none}.compact-query summary::before{content:'▸';margin-right:8px;color:#245fde}.compact-query[open] summary::before{content:'▾'}

.account-card{border:1px solid #dce3ee;border-radius:12px;padding:16px;margin:12px 0}.account-card label{display:flex;align-items:center;gap:8px;padding:8px}.account-card input{width:auto}.account-card button{margin-top:12px}

.session-controls{display:flex;flex-direction:column;gap:6px;align-items:flex-end;min-width:100px}.session-controls small{font-size:12px;text-align:right}
