.portal-menu-toggle{background:linear-gradient(180deg,#f7fbff,#eaf4fc);border:1px solid #b4d1e5;border-radius:10px;padding:9px 13px;min-height:42px;white-space:nowrap;color:var(--primary-dark);font-weight:700;box-shadow:0 2px 4px #174d7010,inset 0 1px 0 #fff}
.portal-menu-toggle:hover,.portal-menu-toggle[aria-expanded="true"]{background:#e1f0fb;border-color:#75afd2}
.portal-menu-toggle:focus-visible,.topbar #logoutButton:focus-visible{outline:3px solid #1379b955;outline-offset:3px}
.topbar{background:linear-gradient(115deg,#f5faff,#fff 60%);border-bottom:2px solid #bdd8e9;box-shadow:0 4px 14px #234c6912,inset 0 1px 0 #fff}
.topbar .brand strong{color:#24465e}
.topbar .connection-status{padding:5px 10px;box-shadow:inset 0 1px 0 #ffffffb3;letter-spacing:0}
.topbar #logoutButton{border:1px solid #d8e5ef;border-radius:8px;background:#ffffffb3;padding:6px 11px;min-height:34px}
.topbar #logoutButton:hover{background:#edf5fb;border-color:#b4d1e5}
.portal-menu{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;width:min(300px,88vw);max-width:88vw;border:0;border-left:1px solid #334655;background:#182c3b;color:white;padding:18px;box-shadow:-12px 0 50px #0003}
.portal-menu::backdrop{background:#142a3b77}.portal-menu-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px}.portal-menu-title button{color:white;border-color:#486272}
.portal-menu .admin-nav{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex-wrap:nowrap}.portal-menu .top-nav-link{color:#e1ecf4;background:transparent;border-color:transparent;justify-content:flex-start;padding:12px 15px;white-space:normal;font-size:.94rem}.portal-menu .top-nav-link:hover{background:#294456}.portal-menu .top-nav-link.active{color:#fff;background:#127ab9;border-color:#329edd}
.topbar{gap:12px}.topbar .brand{margin-inline-end:auto}.topbar .userbox{flex-wrap:nowrap}
.field-shift-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 24px;background:#fff5d8;border-bottom:1px solid #e4d7ac;font-size:.8rem}.field-shift-bar.is-tracking{background:#e5f7ef;border-color:#b0d8c8}.field-shift-bar>div{display:flex;gap:7px;flex-shrink:0}.field-shift-bar[hidden]{display:none}
.field-page{max-width:1400px;margin:22px auto;padding:0 20px;display:grid;gap:20px}.field-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px}.field-card h2{margin:0 0 12px;font-size:1.1rem}.field-card p,.field-help{font-size:.84rem;color:var(--muted);line-height:1.8}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field-form{display:grid;gap:12px}.field-form label{display:grid;gap:6px;font-size:.86rem}.field-form input,.field-form select{width:100%;padding:9px;border:1px solid var(--line);border-radius:5px}.field-days{display:flex;flex-wrap:wrap;gap:12px;border:0;padding:0}.field-days label{display:flex;align-items:center;gap:4px}.field-days input,.field-check input{width:auto}.field-check{display:flex!important;align-items:center;gap:7px}.field-actions{display:flex;gap:8px;flex-wrap:wrap}.field-message{min-height:24px;white-space:pre-line;color:var(--primary-dark);line-height:1.8}.field-message.error{color:var(--danger)}
.field-scroll{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:6px}.customer-picker-tools{display:flex;justify-content:space-between;align-items:end;gap:10px;flex-wrap:wrap;padding:10px;background:#f5f9fc;border:1px solid var(--line);border-radius:6px}.customer-picker-tools label{min-width:170px}.customer-picker-tools>div{display:flex;gap:7px;flex-wrap:wrap}.customer-picker{background:#fff}.field-customer{display:flex;align-items:center;gap:9px;padding:10px;border-bottom:1px solid #eef2f5;font-size:.84rem}.field-customer:hover{background:#f5f9fc}.field-customer.is-selected{background:#e8f5ec;border-inline-start:4px solid #188752}.field-customer.is-assigned{background:#f7f7f7;opacity:.72}.field-customer>input[type="checkbox"]{width:18px!important;height:18px;padding:0!important;margin:0;flex:0 0 auto}.field-customer>span{flex:1;min-width:0}.field-customer strong{font-size:.9rem}.field-customer small{display:block;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-customer .customer-address{font-size:.76rem}.field-customer button{padding:5px 8px}.field-empty{padding:18px!important;margin:0;color:var(--muted);text-align:center}.field-stop{display:flex;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.field-stop>span{flex:1}.field-stop button{padding:5px 10px}.field-route{display:grid;gap:9px;border:1px solid var(--line);border-radius:7px;padding:14px;margin-bottom:10px}.field-route small{color:var(--muted)}
.field-table{width:100%;border-collapse:collapse;font-size:.85rem}.field-table td,.field-table th{text-align:right;padding:10px;border-bottom:1px solid var(--line)}.field-table-wrap{overflow:auto}.field-pill{padding:4px 9px;border-radius:15px;background:#eaf0f5;white-space:nowrap;font-size:.78rem}.field-pill.recent{background:#d5f5e3;color:#086e48}.field-pill.stale{background:#fff0c9;color:#805600}.field-pill.ended{background:#e8ecf0}.field-warning{color:#ad4d0b!important}.field-kpis{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.field-kpis span{background:#edf5fa;padding:12px;border-radius:6px;font-size:.88rem}.field-map-dialog{width:min(800px,95vw);border:0;border-radius:10px;padding:20px}.field-map-dialog::backdrop{background:#1237}.field-map-label{position:absolute;z-index:6;transform:translate(-50%,-100%);background:#1379b9;color:#fff;padding:5px 8px;border:2px solid white;border-radius:8px;font-size:11px;white-space:nowrap;pointer-events:none}.field-map-label.stale{background:#a56a05}.field-map-label.ended{background:#667684}.field-map-line{position:absolute;inset:0;z-index:3;pointer-events:none}.field-visit-detail{font-size:.8rem;line-height:1.8;padding:8px;background:#f5f9fc;border-radius:5px}.field-visit-detail summary{cursor:pointer;color:var(--primary-dark)}.field-tracking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
@media(max-width:820px){.field-grid{grid-template-columns:1fr}.field-page{padding:0 10px;margin-top:12px}.field-card{padding:14px}.field-shift-bar{padding:10px;flex-direction:column;align-items:stretch}.field-shift-bar>div>*{flex:1}.topbar{padding:10px!important;flex-wrap:wrap}.topbar .brand strong{font-size:.9rem}.topbar .brand small{font-size:.65rem}.topbar .brand-mark{display:none}.topbar .userbox{margin-inline-start:auto;font-size:.8rem}.field-table{min-width:600px}.customer-picker-tools{align-items:stretch}.customer-picker-tools label{min-width:0}.customer-picker-tools>div>*{flex:1}.field-customer{padding:10px 8px}}
@media print{.portal-menu-toggle,.portal-menu,.field-shift-bar{display:none!important}}
[hidden]{display:none!important}
.lan-access-notice{padding:10px 16px;background:#fff3cd;color:#674c00;font-size:.8rem;line-height:1.9;border-bottom:1px solid #e7d18b;text-align:center}.lan-access-notice a{color:#075c9b;font-weight:bold}
.portal-menu .admin-nav,.portal-menu .portal-menu-nav{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;gap:8px;width:100%;min-width:0;background:transparent;border:0;box-shadow:none;padding:0}
.portal-menu{box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(18px,env(safe-area-inset-bottom))}
.portal-menu .portal-menu-nav>a{display:flex;box-sizing:border-box;width:100%;min-width:0;flex:none;text-align:start;justify-content:flex-start;white-space:normal;overflow-wrap:anywhere;line-height:1.7}
.portal-menu-title{gap:12px}.portal-menu-title>button{flex:0 0 40px;width:40px;min-height:40px;padding:4px;font-size:24px}
.portal-menu .top-nav-link{box-shadow:none}
.field-page>*,.field-grid,.field-card,.field-form,.field-table-wrap{min-width:0}
.neshan-map-canvas{position:absolute;inset:0;z-index:8}.map-picker.neshan-active{cursor:default}.map-picker.neshan-active .mapboxgl-ctrl-top-left{left:0;right:auto}
.map-picker.neshan-loading{cursor:wait;background:#eef4f7}
.attention-row>form{grid-column:1/-1;padding:12px;background:#f5f9fc;border-radius:6px}
.attention-row textarea{width:100%;min-height:70px;padding:8px;border:1px solid var(--line);border-radius:5px;resize:vertical}
.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.field-form fieldset{min-inline-size:0}
@media(max-width:820px){.field-grid{grid-template-columns:minmax(0,1fr)}}
