@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f3f5f7;--nav:#111b2b;--nav2:#1c293d;--ink:#172338;--muted:#7a8595;--line:#e4e9ef;--yellow:#f8c933;--blue:#336ce6;--purple:#7658d9;--green:#119d78;--red:#d64955;--white:#fff;--shadow:0 15px 40px rgba(29,44,65,.08)}
*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.hidden{display:none!important}.muted{color:var(--muted)!important}.btn{border:none;border-radius:10px;padding:12px 18px;font-weight:700;transition:background .15s,color .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary{background:#f4c73a;color:#182333}.btn.primary:hover{background:#e8b921}.btn.secondary{background:#ecf1f7;color:#223249}.btn.danger{background:#fce6e8;color:#ac3441}.btn.full{width:100%}.btn:focus-visible,.nav-item:focus-visible{outline:3px solid #75b1ff;outline-offset:2px}
/* Uwierzytelnianie */
.auth-body{min-height:100vh;background:#f7f8fa}.auth-shell{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);min-height:100vh}.auth-hero{background:linear-gradient(135deg,rgba(7,17,33,.92),rgba(18,35,57,.96)),repeating-linear-gradient(35deg,transparent 0 65px,#fbcb32 66px 67px,transparent 68px 130px);padding:54px clamp(30px,7vw,115px);display:flex;flex-direction:column;justify-content:center;color:#fff;position:relative;overflow:hidden}.auth-hero:after{content:'';position:absolute;width:620px;height:620px;right:-310px;bottom:-260px;border:90px solid rgba(255,206,55,.09);border-radius:50%;pointer-events:none}.brand,.side-brand{display:flex;align-items:center;gap:12px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.9px;font-size:20px}.brand span:last-child,.side-brand>div>span{color:#f7c738}.brand-mark{background:#f6ca3d;color:#111d30;width:43px;height:43px;display:grid;place-items:center;border-radius:12px;font-size:28px}.eyebrow{letter-spacing:3px;color:#eac857;font-size:11px;font-weight:800;margin-top:110px}.auth-hero h1{font-size:clamp(39px,4.2vw,65px);letter-spacing:-2px;font-family:Manrope,sans-serif;line-height:1.12;margin:24px 0}.auth-hero h1 em{font-style:normal;color:#f9d35e}.auth-hero p{max-width:620px;color:#bac6d6;font-size:17px;line-height:1.8}.auth-benefits{display:flex;flex-wrap:wrap;gap:12px;margin-top:43px}.auth-benefits span{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.14);padding:11px 14px;border-radius:30px;color:#e6eef8;font-weight:600;font-size:12px}.auth-panel{display:grid;place-items:center;padding:48px}.form-card{width:min(100%,440px)}.form-head h2{font:800 33px Manrope;margin:0 0 8px;letter-spacing:-1px}.form-head p{color:var(--muted);margin:0 0 30px}.form-card label,.dialog label{display:block;font-size:12px;font-weight:700;color:#42536b;margin:16px 0 8px}.form-card input,.dialog select{display:block;width:100%;height:48px;border:1px solid #dbe2e9;background:#fff;padding:0 14px;border-radius:9px;margin-top:8px;color:#25364a;outline:none}.form-card input:focus,.dialog select:focus{border-color:#5a8bdf;box-shadow:0 0 0 3px #d4e3ff}.form-card .btn{margin-top:24px;height:48px}.form-footer{text-align:center;margin-top:23px;color:#667488}.link-btn{border:0;background:none;color:#245ecc;font-weight:800;text-decoration:underline}.auth-disclaimer{font-size:11px;color:#9ca7b5;text-align:center;line-height:1.7;margin-top:38px}.form-error{background:#fff0f1;border:1px solid #f4c7ce;color:#a23344;padding:11px 14px;border-radius:8px;margin-bottom:18px}
/* Aplikacja */
.app-body{height:100vh;overflow:hidden}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:245px;min-width:245px;background:var(--nav);color:#c7d0df;display:flex;flex-direction:column;padding:24px 15px 15px}.side-brand{color:#fff;font-size:16px;letter-spacing:-.6px;padding:0 8px 29px}.side-brand .brand-mark{width:36px;height:36px;font-size:24px;border-radius:10px}.side-brand small{display:block;font:700 9px 'DM Sans';letter-spacing:1.6px;color:#8291a8;margin-top:4px}.side-label{font-size:9px;letter-spacing:1.7px;font-weight:800;color:#64738e;margin:18px 13px 12px}.spacer-label{margin-top:31px}.nav-item{color:#abb9cb;border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:13px;padding:13px;border-radius:9px;font-weight:600;width:100%;margin-bottom:3px;transition:.15s}.nav-item>span:first-child{font-size:20px;min-width:19px;text-align:center}.nav-item strong{margin-left:auto;background:#334158;border-radius:6px;font-size:10px;padding:3px 7px;color:#c2d1e8}.nav-item.active{background:#2b374c;color:white}.nav-item.active:before{content:'';height:22px;width:3px;background:#f5cd40;border-radius:3px;margin-left:-12px;margin-right:9px}.nav-item:hover{background:#263347;color:#fff}.action-item{font-size:13px}.action-item>span{font-size:13px!important}.sidebar-bottom{margin-top:auto}.online-dot{padding:10px 12px;color:#83aa9a;font-size:10px;font-weight:700}.user-row{display:flex;align-items:center;gap:10px;border-top:1px solid #2b3648;padding:16px 7px 0}.avatar{background:#f9cb3a;color:#111b2b;border-radius:9px;width:35px;height:35px;display:grid;place-items:center;font-weight:800}.user-meta{display:flex;flex-direction:column;gap:2px;flex:1;overflow:hidden}.user-meta strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.user-meta small{font-size:10px;color:#7f8fa6}.logout{border:0;background:transparent;color:#a5b6c7;font-size:22px}.main-area{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:87px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--line);padding:17px 26px;display:flex;justify-content:space-between;align-items:center}.topbar h1{font:800 23px Manrope,sans-serif;letter-spacing:-.8px;margin:3px 0 0}.top-eyebrow{font-size:9px;letter-spacing:1.8px;color:#9da8b7;font-weight:800}.topbar-right{display:flex;align-items:center;gap:14px}.account-pill{border:1px solid #e8edf2;background:#f8f9fb;border-radius:8px;padding:11px 14px;font-size:12px;font-weight:700;white-space:nowrap}.speed-box{display:flex;background:#edf1f6;border-radius:9px;padding:4px;gap:2px}.speed-box button{border:0;background:transparent;color:#728097;border-radius:7px;padding:8px 9px;font-size:12px;font-weight:800}.speed-box button.active{background:#182d49;color:#fff;box-shadow:0 2px 8px #233b601d}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:20px 24px 18px;flex-shrink:0}.kpi{background:white;border:1px solid #e7ebf0;border-radius:12px;padding:15px 17px;min-width:0}.kpi>span{font-size:10px;color:#8997a7;letter-spacing:1px;font-weight:800}.kpi>b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:800 clamp(17px,1.65vw,24px) Manrope;letter-spacing:-.8px;margin:8px 0}.kpi>small{font-size:11px;color:#9da6b3}.workspace{flex:1;min-height:0;display:flex;margin:0 24px 14px;gap:14px}.map-wrap{position:relative;flex:1;min-width:0;background:#eaeff4;border-radius:13px;border:1px solid #dce5ed;overflow:hidden;box-shadow:var(--shadow)}#map{height:100%;width:100%;z-index:0;background:#eef1f5}.map-muted .leaflet-tile-pane{filter:grayscale(.92) brightness(1.09) contrast(.90)}.map-toolbar{position:absolute;top:17px;left:17px;right:17px;z-index:401;display:flex;align-items:start;justify-content:space-between;gap:10px;pointer-events:none}.map-title,.map-legends{background:rgba(255,255,255,.97);box-shadow:0 6px 30px #23304920;border:1px solid #e9edf2;border-radius:9px;pointer-events:auto}.map-title{padding:11px 15px;font-weight:800;color:#27364b}.map-title span{display:block;font-size:10px;font-weight:500;color:#9aa5b4;margin-top:2px}.map-legends{display:flex;gap:12px;padding:14px;align-items:center;color:#657388;font-size:10px;font-weight:700}.legend-marker{display:inline-block;width:10px;height:10px;border-radius:4px;margin-right:4px}.yellow{background:#ecc032}.purple{background:#825bcb}.blue{background:#4179e8}.map-hint{position:absolute;z-index:401;bottom:18px;left:50%;transform:translateX(-50%);white-space:nowrap;max-width:calc(100% - 30px);overflow:hidden;text-overflow:ellipsis;color:#43536b;background:rgba(255,255,255,.96);padding:11px 18px;border:1px solid #e6ebf0;box-shadow:0 5px 20px #172e5322;border-radius:9px;font-weight:700;font-size:11px}.build-cursor{cursor:crosshair!important}.build-cursor .leaflet-grab{cursor:crosshair!important}.facility-holder{background:transparent;border:0}.facility-marker{display:grid;place-items:center;width:33px;height:33px;font-size:21px;border-radius:10px;color:#1f2b3a;border:2px solid white;box-shadow:0 3px 12px #10253e60;position:relative}.facility-marker:after{content:'';position:absolute;bottom:-6px;left:10px;border-top:6px solid #25314a;border-left:5px solid transparent;border-right:5px solid transparent}.facility-marker.locker{background:#f4cb39}.facility-marker.depot{background:#7a61c7;color:white}.vehicle-marker{height:29px;width:29px;border:2px solid white;background:#3d73d6;color:#fff;box-shadow:0 3px 12px #183a7280;border-radius:50%;display:grid;place-items:center;font-size:16px}
/* Panel boczny */
.inspector{width:286px;min-width:286px;border:1px solid #e5eaf0;border-radius:13px;background:#fff;overflow:hidden;display:flex;flex-direction:column}.inspector-top{display:flex;align-items:center;justify-content:space-between;padding:21px 22px 0}.panel-heading{letter-spacing:1.3px;color:#a3aebe;font-weight:800;font-size:10px}.mini-close{background:transparent;border:0;color:#788598;font-size:25px;line-height:1}.empty-inspector{padding:22px;text-align:center}.empty-icon{display:grid;place-items:center;margin:23px auto;width:66px;height:66px;border-radius:20px;color:#af8525;background:#fff6d8;font-size:35px}.empty-inspector h3{font-size:17px;font-family:Manrope;letter-spacing:-.5px;margin-bottom:9px}.empty-inspector p{font-size:12px;color:#8e9baa;line-height:1.8;margin-bottom:20px}.inspector #inspector-content:not(:has(.empty-inspector)){padding:18px 20px}.inspector #inspector-content h3{font:800 17px Manrope;letter-spacing:-.4px;margin:7px 0 5px}.inspector #inspector-content p{font-size:11px;line-height:1.6}.inspector-symbol{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-size:27px}.yellow-bg{background:#fff0b7;color:#9f751a}.purple-bg{background:#eee9ff;color:#7555bd}.blue-bg{background:#e8f1ff;color:#3968c2}.detail-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #edf0f3;padding:12px 0;font-size:11px}.detail-row span{color:#8c98a6}.detail-row b{font-size:11px;text-align:right}.progress{height:7px;border-radius:8px;background:#e6ebf1;overflow:hidden}.progress>div{height:100%;background:#efbc2d;border-radius:8px}.growth-box{background:#f3f6fa;border-radius:9px;padding:12px;font-size:11px;margin:15px 0 20px;color:#7b8798}.growth-box b{color:#2f465c}.task-list{margin:17px 0}.task{font-size:11px;border-radius:8px;background:#f5f7fa;padding:11px;margin-bottom:7px;color:#40526c;line-height:1.4}.activity{border-top:1px solid #e9eef3;margin-top:auto;overflow:auto;max-height:38%;padding:18px 18px 12px}.activity-header{font-size:10px;font-weight:800;color:#9eacbd;letter-spacing:1.2px;margin-bottom:12px}.activity-item{position:relative;padding:0 0 11px 15px;border-left:1px solid #dbe2e9}.activity-item:before{content:'';width:6px;height:6px;border-radius:50%;background:#85a0bd;position:absolute;left:-3.5px;top:2px}.activity-item small{font-size:9px;color:#9facbd}.activity-item p{font-size:10px!important;margin:5px 0 0;line-height:1.45;color:#536175}.bottom-bar{display:flex;justify-content:space-between;border-top:1px solid #e2e8ef;background:#fff;padding:10px 24px;color:#7790a2;font-size:10px}.bottom-bar span:first-child{color:#3a9d7a;font-weight:700}
/* Widoki tabel */
.content-panel{flex:1;background:#fff;border:1px solid var(--line);border-radius:13px;overflow:auto;padding:24px;min-width:0}.content-header{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:18px}.content-header h2{font:800 22px Manrope;margin:0 0 6px;letter-spacing:-.7px}.content-header p{color:var(--muted);font-size:11px;margin:0}.panel-count{background:#f0f3f7;border-radius:8px;padding:9px 13px;color:#536176;font-weight:700;white-space:nowrap;font-size:12px}.content-panel h3{font:800 15px Manrope;margin:25px 0 15px}.data-list{display:flex;flex-direction:column;gap:6px}.data-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #edf0f4;background:#fff;border-radius:10px;text-align:left;color:#25354c;width:100%;justify-content:space-between}.data-row[data-node]:hover{border-color:#cbd6e8;background:#f9fbfe}.data-row>strong{font-size:11px;color:#69788b;margin-left:auto}.round-icon{height:39px;width:39px;border-radius:10px;display:grid;place-items:center;font-size:19px;flex-shrink:0}.data-row-name{display:flex;flex-direction:column;gap:4px;margin-right:auto}.data-row-name b{font-size:12px}.data-row-name small{font-size:10px;color:#9aa5b2}.empty-data{text-align:center;padding:40px 15px;color:#9ca8b6;font-size:12px;background:#fafbfd;border-radius:10px}.financial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.finance-tile{background:#f7f9fc;border-radius:10px;padding:17px}.finance-tile small{display:block;color:#8794a4;margin-bottom:10px;font-size:11px}.finance-tile b{font:800 20px Manrope}.danger-zone{margin:30px 0 0;padding:18px;background:#fff8f9;border:1px solid #f1d9dd;border-radius:9px;display:flex;align-items:center;justify-content:space-between}.danger-zone strong{font-size:12px}.danger-zone p{margin:4px 0 0;color:#a18287;font-size:11px}
/* Okna */
.dialog-backdrop{position:fixed;inset:0;background:rgba(12,20,34,.65);z-index:3000;display:grid;place-items:center;padding:16px}.dialog{width:min(100%,560px);max-height:min(93vh,790px);overflow:auto;background:white;border-radius:16px;box-shadow:0 35px 100px #0004;padding:23px 25px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font:800 21px Manrope;letter-spacing:-.7px;margin:0}.dialog>div>p.muted{font-size:11px;line-height:1.6}.minor-heading{color:#8794a5;font-size:10px;font-weight:800;letter-spacing:1.4px;margin-top:18px}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.option-card{border:1px solid #dfe5ec;border-radius:11px;padding:15px!important;margin:0!important;display:flex!important;flex-direction:column;gap:6px;cursor:pointer;position:relative;transition:.16s}.option-card:has(input:checked){border-color:#e1b72b;background:#fffbea;box-shadow:inset 0 0 0 1px #e1b72b}.option-card input{position:absolute;right:14px;top:15px;accent-color:#b8901c}.radio-title{font-size:13px;font-weight:800;color:#24364c}.option-card small{color:#8a95a4;font-size:10px}.option-card b{font:800 16px Manrope;color:#263650;margin-top:8px}.dialog .btn.full{margin-top:12px}.small-note{padding:12px;background:#f2f5f9;color:#8794a4;border-radius:8px;font-size:11px;line-height:1.6;margin-top:13px}.dialog select{background:#fff}.toast{padding:14px 20px;background:#1a2d46;color:#fff;border-radius:9px;box-shadow:0 10px 40px #13223d44;font-size:12px;font-weight:700}.toast-error{background:#a93442}#toast-stack{position:fixed;right:22px;bottom:22px;z-index:6000;display:flex;flex-direction:column;gap:9px;max-width:min(420px,calc(100vw - 44px))}
@media(max-width:1220px){.sidebar{width:210px;min-width:210px}.inspector{width:255px;min-width:255px}.kpis{gap:9px;padding:14px}.workspace{margin:0 14px 12px;gap:10px}.topbar{padding:17px}.map-legends{display:none}}
@media(max-width:960px){.sidebar{width:66px;min-width:66px;padding:14px 8px}.side-brand{padding:7px}.side-brand>div,.side-label,.nav-item:not(.action-item){font-size:0}.nav-item{font-size:0;gap:0;padding:13px 12px;justify-content:center}.nav-item>span:first-child{font-size:21px}.action-item>span{display:none}.sidebar-bottom .online-dot,.user-meta,.user-row form{display:none}.user-row{padding:12px 5px}.sidebar .nav-item.active:before{display:none}.inspector{width:240px;min-width:240px}.kpi{padding:12px}.kpi>b{font-size:16px}.topbar-right{gap:7px}.account-pill{padding:8px;font-size:10px}.speed-box button{padding:8px 6px}}
@media(max-width:740px){.auth-shell{display:block}.auth-hero{padding:30px}.auth-hero h1{font-size:35px}.eyebrow{margin-top:40px}.auth-panel{padding:30px}.app-body,.app-shell{height:100dvh}.sidebar{width:55px;min-width:55px}.side-brand .brand-mark{width:30px;height:30px;font-size:19px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.kpi{padding:9px}.kpi>b{font-size:15px;margin:4px 0}.kpi>span{font-size:8px}.kpi>small{font-size:9px}.topbar{height:auto;min-height:86px;align-items:flex-start;flex-direction:column;padding:8px 10px;gap:6px}.topbar h1{font-size:17px}.top-eyebrow{font-size:8px}.topbar-right{width:100%;justify-content:space-between}.speed-box button{font-size:10px;padding:6px}.account-pill{font-size:9px}.workspace{position:relative}.inspector{position:absolute;right:5px;top:5px;bottom:5px;z-index:500;width:min(275px,90%);min-width:0;box-shadow:0 8px 25px #26355040}.inspector:has(.empty-inspector){display:none}.map-toolbar{left:8px;right:8px;top:8px}.map-title{padding:7px;font-size:11px}.map-hint{font-size:9px;white-space:normal;bottom:9px;text-align:center}.bottom-help{display:none}.bottom-bar{padding:7px}.content-panel{padding:12px}.financial-grid{grid-template-columns:1fr}}

/* Alpha 0.2: trasy wielopunktowe i podgląd ładunku */
.cargo-progress>div{background:#3d73d6}
.vehicle-selected{outline:3px solid #f7ca35;outline-offset:2px}
.vehicle-row{cursor:pointer}
.vehicle-row:hover{border-color:#cbd6e8;background:#f9fbfe}
.route-inspector{border:1px solid #e5eaf0;background:#f7f9fc;border-radius:9px;padding:12px;margin:16px 0;font-size:11px}
.route-inspector p{word-break:break-word;color:#607187;margin:6px 0 0}
.route-stop-row{display:flex;gap:6px;align-items:center;margin:8px 0}
.route-stop-row .route-stop-select{flex:1;min-width:0;height:39px;margin:0;padding:0 8px;font-size:11px}
.stop-number{flex:0 0 24px;height:25px;display:grid;place-items:center;border-radius:50%;background:#eaf0fa;color:#47648d;font-size:10px;font-weight:800}
.stop-tool{flex:0 0 26px;height:30px;border:1px solid #dee5ee;background:#f5f7fa;border-radius:6px;font-size:13px}
.stop-remove{color:#bd4555}
.route-return{font-size:11px;font-weight:700;color:#61758d;margin:12px 0}

/* Alpha 0.3: zagregowane kierunki paczek i rozdzielona zajętość skrytek */
.destination-section{margin:18px 0 6px;padding:12px 10px;border:1px solid #e4eaf1;background:#f8fafc;border-radius:10px}
.destination-title{font-size:10px;text-transform:uppercase;letter-spacing:.7px;line-height:1.5;color:#64748b;font-weight:800;margin:0 0 8px}
.destination-list{display:flex;flex-direction:column;gap:0;max-height:230px;overflow-y:auto}
.destination-row{padding:9px 0;display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid #e7edf4}
.destination-row:last-child{border-bottom:0}
.destination-name{display:flex;min-width:0;flex-direction:column;gap:3px}
.destination-name>b{font-size:11px;color:#23374f;white-space:normal;overflow-wrap:anywhere}
.destination-name>small{font-size:10px;color:#8796a7}
.destination-row>strong{font-size:13px;color:#253e5e;white-space:nowrap;text-align:right}
.destination-row>strong>small{font-weight:500;color:#8796a7;font-size:9px}
.destination-empty{font-size:10px;color:#8f9cab;line-height:1.5;padding:5px 0}

/* Alpha 0.4 — kreator dostępnych tras, edytowanie kursów i jednolite listy */
.route-add-panel{margin:15px 0;padding:15px;border:1px solid #e1e8f0;border-radius:12px;background:#f8fafc}
.route-add-panel .minor-heading{margin-top:0}
.route-add-panel label{margin:10px 0 6px}
.route-add-panel input[type=search]{display:block;width:100%;min-height:39px;border:1px solid #dbe2e9;background:white;color:#24364c;border-radius:8px;margin-top:7px;padding:0 11px;font:inherit}
.route-add-panel input[type=search]:focus{outline:3px solid #d4e3ff;border-color:#5a8bdf}
#route-candidates{max-height:180px;overflow:auto;margin-top:10px;display:flex;flex-direction:column;gap:5px}
.route-candidate{width:100%;min-height:44px;background:#fff;border:1px solid #e1e7ee;border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;text-align:left;color:#26374b}
.route-candidate:hover{border-color:#83a7e8;background:#eef4ff}
.route-candidate>span:first-child{display:flex;flex-direction:column;gap:2px}
.route-candidate b{font-size:11px}.route-candidate small{font-size:10px;color:#8190a4}
.route-candidate>span:last-child{white-space:nowrap;font-size:10px;font-weight:800;color:#316ad3}
.route-summary{border:1px solid #dce8f1;background:#eef5fc;border-radius:11px;padding:12px;margin:13px 0;font-size:11px}
.route-summary>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0}
.route-summary strong{font-size:17px;color:#1f4f8c}.route-summary p{color:#60738b;line-height:1.6;margin:7px 0 0}
.route-summary .route-invalid{font-weight:700;color:#bc3d51}
.empty-routes{color:#8495a9;background:#fff;padding:12px;font-size:11px;line-height:1.7;border-radius:8px}
.route-stop-row .route-stop-select:disabled{opacity:1;color:#4e617c;background:#eef3f8;border-color:#e0e8f0}
.route-stop-row .stop-tool{flex-shrink:0}.route-stop-row .stop-tool:disabled{opacity:.26}
.route-preview-row{align-items:center}.route-preview-row .destination-name{flex:1}
.route-preview-row strong{text-align:right;max-width:110px;font-size:11px}
.route-order{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;border-radius:50%;background:#e5edfb;color:#335c91;font-size:10px;font-weight:800}
.route-pending{color:#875a0c;background:#fff6e2;border-radius:8px;padding:9px;font-size:10px;line-height:1.5}
.route-edit-small{font-size:11px;padding:9px 11px;flex-shrink:0}
@media(max-width:740px){.dialog{padding:16px 12px}.route-stop-row{gap:3px}.route-stop-row .stop-tool{flex-basis:22px;width:22px}.route-stop-row .stop-number{flex-basis:20px;width:20px}}

/* Alpha 0.5 — listy kierunków dokładnie w układzie standardowych wierszy panelu.
   Bez ramek, szarej karty i dużych liczników niezwiązanych z resztą panelu. */
.direction-heading{margin:22px 0 3px;padding:0 0 7px;border-bottom:1px solid #edf0f3;color:#8c98a6;font-size:10px;letter-spacing:.3px;line-height:1.5;font-weight:750;text-transform:uppercase}
.direction-list{max-height:330px;overflow-y:auto;scrollbar-width:thin}
.direction-detail-row,.route-preview-row{padding:12px 0}
.direction-name{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;color:#8c98a6;overflow-wrap:anywhere}
.direction-name>span{font-size:11px;color:#8c98a6}
.direction-name>small{font-size:10px;color:#a4afbc}
.detail-row .direction-name{color:#8c98a6}
.detail-row.direction-detail-row>b,.detail-row.route-preview-row>b{font-size:11px;font-weight:750;color:#27374d;white-space:nowrap}
.direction-empty{font-size:11px}
.direction-empty>b{font-size:11px;color:#8c98a6}
.route-detail-label{display:flex;align-items:center;gap:9px;min-width:0}
.route-preview-row .route-order{display:flex;flex:none;width:21px;height:21px;align-items:center;justify-content:center;border-radius:50%;background:#eff3f8;color:#506887;font-style:normal;font-weight:750;font-size:10px}

/* Długie listy kierunków przewijają się niezależnie od ostatnich zdarzeń. */
.inspector #inspector-content{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.inspector .activity{flex:0 1 auto;max-height:150px}

/* Alpha 0.6 — licznik paczek w rogu obiektów na mapie. */
.facility-marker,.vehicle-marker{position:relative;overflow:visible}
.map-parcel-badge{
  position:absolute;top:-9px;right:-11px;z-index:3;
  display:flex;align-items:center;justify-content:center;
  min-width:19px;height:19px;padding:0 4px;
  border:2px solid #fff;border-radius:12px;
  background:#233b60;color:#fff;
  font-family:'DM Sans',Arial,sans-serif;
  font-size:10px;font-weight:800;line-height:1;white-space:nowrap;
  letter-spacing:-.15px;box-shadow:0 2px 6px #1e314044;
  pointer-events:none;font-variant-numeric:tabular-nums;
}
.map-parcel-badge-empty{background:#e9eef5;color:#586778;border-color:#fff}
.vehicle-marker .map-parcel-badge{background:#2458a5}
.vehicle-marker .map-parcel-badge-empty{background:#e9eef5;color:#586778}


/* Alpha 0.7 — pełnoekranowy kreator tras z mapą i usuwaniem tras */
.route-planner-overlay{position:fixed;inset:0;z-index:4500;background:#f4f6f9;display:flex;color:#26364b;font-family:inherit}
.route-planner-sidebar{width:350px;min-width:350px;max-width:46vw;background:#fff;box-shadow:5px 0 30px #233d5a24;z-index:2;display:flex;flex-direction:column;max-height:100vh}
.route-planner-header{padding:20px 20px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8edf3}
.route-planner-header small{font-size:10px;letter-spacing:1px;color:#94a1b2;font-weight:800}
.route-planner-header h2{font-size:21px;margin:5px 0 0;font-weight:800;color:#24364c}
.route-planner-close{background:#f1f4f9;border:none;border-radius:10px;font-size:24px;width:36px;height:36px;color:#5e7391}
.route-planner-scroll{overflow:auto;padding:18px 20px;flex:1;min-height:0;scrollbar-width:thin}
.route-planner-intro{font-size:12px;line-height:1.7;color:#65758a;margin:0 0 17px}
.route-planner-label{display:block;color:#65758a;font-size:11px;font-weight:700;margin-bottom:12px}
.route-planner-label select{display:block;width:100%;border:1px solid #dce4ef;border-radius:9px;background:#fff;margin-top:7px;padding:10px;color:#24364c}
.route-planner-actions{display:flex;gap:7px;margin-bottom:13px}
.route-planner-actions .btn{flex:1;font-size:11px;padding:9px 7px}
.route-planner-actions .route-button-active{background:#ffed9a;border:1px solid #e3b93d;color:#5f4b08}
.route-planner-info{padding:12px;background:#fff7dc;border:1px solid #f2db8f;color:#765d19;font-size:11px;line-height:1.6;border-radius:9px;margin-bottom:17px}
.route-planner-heading{font-size:10px;font-weight:800;letter-spacing:.7px;color:#8c9aac;margin:14px 0 9px}
.route-editor-stop{display:flex;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #e9edf4}
.route-editor-stop>.route-editor-index{display:grid;place-items:center;flex:none;width:25px;height:25px;border-radius:50%;background:#dce8fb;color:#28529e;font-size:12px}
.route-editor-stop>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.route-editor-stop strong{font-size:11px;overflow-wrap:anywhere}
.route-editor-stop small{font-size:10px;color:#91a0b1}
.route-editor-tools{display:flex;gap:3px;align-items:center}
.route-editor-tools button{border:1px solid #e1e7ee;background:#f8fafd;border-radius:5px;color:#546b8a;width:25px;height:28px;font-size:14px}
.route-editor-tools button:hover{background:#e5eefc}
.route-planner-footer{flex:none;border-top:1px solid #e8edf3;padding:13px 18px;display:flex;flex-direction:column;gap:6px}
.route-planner-footer .btn{margin:0;padding:12px}
.route-planner-map-wrap{position:relative;flex:1;min-width:0}
#route-edit-map{height:100%;width:100%;z-index:0}
.route-planner-map-tip{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:999;background:#fffffff0;padding:10px 16px;border:1px solid #e5edf5;box-shadow:0 4px 25px #30476025;border-radius:12px;font-size:11px;color:#526887;text-align:center;max-width:90%;pointer-events:none}
.route-editor-marker{background:transparent;border:none}
.route-map-pin{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;border:3px solid white;background:#f6c933;color:#26364b;font-size:18px;font-weight:900;box-shadow:0 2px 12px #233e6070;cursor:pointer}
.route-map-pin.picked{background:#3168c9;color:#fff}
.route-map-pin.route-base-pin{background:#159b74;color:#fff}
@media(max-width:700px){.route-planner-overlay{flex-direction:column-reverse}.route-planner-sidebar{width:100%;min-width:0;max-width:none;height:51vh;max-height:51vh}.route-planner-map-wrap{height:49vh;flex:none}.route-planner-header{padding:10px 14px}.route-planner-header h2{font-size:16px}.route-planner-scroll{padding:10px 14px}.route-planner-footer{padding:7px 12px;flex-direction:row;flex-wrap:wrap}.route-planner-footer .btn{flex:1;padding:9px 6px;font-size:10px}.route-planner-map-tip{top:7px;padding:6px;font-size:10px}}

/* Alpha 0.8 — analiza potencjału miejsca przed postawieniem Paczkomatu */
.site-preview{border:1px solid #dce6ef;background:#f7f9fc;border-radius:12px;padding:14px;margin:15px 0 10px;font-size:11px;color:#344761}
.site-preview-loading{color:#74869d;padding:10px 0;text-align:center}
.site-preview-header{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.site-preview-eyebrow{font-size:9px;font-weight:800;color:#71849b;letter-spacing:1px}
.site-rating{padding:6px 8px;border-radius:7px;font-weight:800;font-size:10px;background:#e8edf5;color:#59677f}
.site-rating.excellent{background:#d9f5e7;color:#146b47}
.site-rating.good{background:#e8f4e4;color:#437d30}
.site-rating.average{background:#fff1d7;color:#8c6614}
.site-rating.weak{background:#fde8e8;color:#a84545}
.site-preview-city{font-size:17px;font-weight:800;color:#26374d;margin:8px 0 13px}
.site-preview-city span{font-size:10px;color:#8b9aac;font-weight:600}
.site-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:13px}
.site-preview-metric{padding:12px 10px;border-radius:9px;border:1px solid #e1e9f2;background:white;display:flex;flex-direction:column;gap:3px;min-width:0}
.site-preview-metric small{font-size:10px;line-height:1.4;color:#79899d}
.site-preview-metric strong{font-size:20px;color:#263e61;font-weight:800;line-height:1.3}
.site-preview-metric span{font-size:10px;color:#8091a6}
.site-preview-line{padding:8px 1px;border-bottom:1px solid #e4eaf2;display:flex;align-items:center;justify-content:space-between;gap:12px}
.site-preview-line span{color:#71829a;max-width:65%}
.site-preview-line b{font-weight:750;text-align:right;line-height:1.3}
.site-preview-disclaimer{margin:12px 0 0;font-size:10px;color:#8795a9;line-height:1.6}
.site-preview-warning{margin-top:11px;background:#fff1d9;color:#946814;padding:10px;border-radius:8px;line-height:1.5}
@media(max-width:500px){.site-preview-grid{grid-template-columns:1fr}.site-preview{padding:10px}.site-preview-city{font-size:15px}}

/* Alpha 0.9 — kilka pojazdów może obsługiwać jedną trasę */
.route-vehicle-label{margin-bottom:7px;display:flex;flex-direction:column;gap:4px}
.route-vehicle-label small{font-size:10px;font-weight:400;color:#8190a3;line-height:1.45}
.route-vehicle-list{max-height:205px;overflow-y:auto;border:1px solid #dee6f1;border-radius:10px;background:#f8fafc;padding:5px;margin-bottom:6px}
.route-vehicle-choice{display:flex;align-items:center;gap:10px;padding:9px 8px;cursor:pointer;border-radius:7px;font-size:12px;color:#233750}
.route-vehicle-choice:hover{background:#eaf0fa}
.route-vehicle-choice:has(input:checked){background:#e5edff}
.route-vehicle-choice input{width:16px;height:16px;accent-color:#346ad5;flex-shrink:0}
.route-vehicle-choice span{display:flex;flex-direction:column;gap:2px}
.route-vehicle-choice small{font-size:10px;color:#78899f}
.route-vehicle-hint{color:#4d6387;font-size:10px;line-height:1.4;margin:2px 0 11px}


/* Alpha 0.11 — dzienne prognozy i sześciodniowa historia finansowa */
.finance-today-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.finance-today-grid .finance-tile{min-width:0}
.finance-highlight{grid-column:1/-1;background:#eaf1ff;border:1px solid #cbdcfb;border-radius:11px;padding:17px;display:flex;flex-direction:column;gap:8px}
.finance-highlight small{font-size:11px;color:#506b94}
.finance-highlight b{font:800 24px Manrope;color:#1c497d;line-height:1.3}
.finance-highlight span{font-size:10px;color:#667d9d;line-height:1.5}
.finance-positive{color:#19845b!important}
.finance-negative{color:#c24651!important}
.finance-hint{color:#8391a4;font-size:11px;line-height:1.7;margin:11px 0 8px}
.finance-history-wrap{max-width:100%;overflow-x:auto;border:1px solid #e9edf4;border-radius:10px;margin-top:10px}
.finance-history{border-collapse:collapse;width:100%;min-width:410px;font-size:11px;white-space:nowrap}
.finance-history th{text-align:right;padding:13px 11px;background:#f5f8fc;color:#76869a;font-weight:750}
.finance-history th:first-child,.finance-history td:first-child{text-align:left}
.finance-history td{padding:13px 11px;text-align:right;color:#36475f;border-top:1px solid #edf0f4;font-variant-numeric:tabular-nums}
.finance-history tbody tr:nth-child(even){background:#fafbfd}
.finance-history td small{color:#ad7b19;margin-left:3px}
@media(max-width:740px){.finance-today-grid{grid-template-columns:1fr}.finance-highlight b{font-size:21px}}

/* 0.11.1 — czytelny komunikat o niezgodnym pliku silnika PHP */
.finance-error{border:1px solid #eab8b8;background:#fff8f8;color:#772626;padding:18px 20px;border-radius:13px;line-height:1.6;margin:18px 0;}
.finance-error strong{font-size:15px;display:block;margin-bottom:8px;}
.finance-error p{margin:8px 0 0;}
.finance-error code{color:#642424;background:rgba(180,30,30,.07);padding:2px 5px;border-radius:4px;}

/* Alpha 0.13 — wybór miasta i kredyty (spójne ze stylem aplikacji) */
.locality-choice{background:#f7f9fc;border:1px solid #e3eaf3;border-radius:10px;padding:12px;margin:12px 0;font-size:11px;display:flex;flex-direction:column;gap:7px}
.locality-label{font-size:11px;font-weight:800;color:#334764}
.locality-choice select{width:100%;padding:10px 12px;border:1px solid #d4dfeb;background:white;color:#23354b;border-radius:8px;font:600 12px Manrope,Arial,sans-serif}
.locality-choice small{color:#74839a;font-size:10px;line-height:1.55}
.loan-offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.loan-offer,.loan-account{border:1px solid #e5ebf3;background:#fff;border-radius:11px;padding:16px;display:flex;flex-direction:column;gap:14px}
.loan-offer-top{display:flex;justify-content:space-between;align-items:baseline;gap:9px;flex-wrap:wrap}
.loan-offer-top strong{color:#1e304d;font-size:13px}.loan-offer-top>span{font:800 18px Manrope;color:#2a4a7a}
.loan-offer-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;font-size:10px;color:#8391a4}
.loan-offer-data span{display:flex;flex-direction:column;gap:3px}
.loan-offer-data b{font-size:11px;color:#334764}
.loan-blocked{color:#b45b52;font-size:10px;line-height:1.5}
.loan-offer .btn{align-self:flex-start}
.loan-account{margin-bottom:4px}
.loan-account .btn{align-self:flex-start}
@media(max-width:520px){.loan-offer-data{grid-template-columns:1fr 1fr}.loan-offers{grid-template-columns:1fr}}

/* Alpha 0.15 — częściowa nadpłata */
.loan-overpay{width:100%;padding:12px;background:#f5f8fc;border-radius:10px;display:flex;flex-direction:column;gap:7px}
.loan-overpay label{font-size:11px;font-weight:800;color:#334764}
.loan-overpay-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.loan-overpay-controls input{flex:1 1 125px;min-width:0;height:41px;border:1px solid #c8d3df;border-radius:8px;padding:0 10px;background:white;color:#213249}
.loan-overpay-controls .btn{padding:11px 14px}
.loan-overpay small{font-size:10px;line-height:1.5;color:#65778f}

/* Alpha 0.17 — wybór okresu spłaty na karcie kredytu. */
.loan-term-label{grid-column:1 / -1;display:flex!important;flex-direction:column!important;gap:6px!important}
.loan-term-select{height:37px;max-width:100%;width:100%;border:1px solid #cdd8e6;border-radius:8px;padding:5px 10px;background:#fff;color:#263f64;font-weight:700;font-size:12px}
.loan-term-select:focus-visible{outline:3px solid #d6e6ff;border-color:#5684cf}


/* Alpha 0.19 — mobilny interfejs dotykowy oraz katalog pojazdów */
.vehicle-choices{grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(56vh,510px);overflow:auto;padding:2px;align-items:stretch}
.vehicle-option{min-height:190px;gap:7px}
.vehicle-option-type{color:#6d7e93;font-size:10px;text-transform:uppercase;letter-spacing:.8px;font-weight:800}
.vehicle-specs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;margin:4px 0}
.vehicle-specs-grid span{background:#f0f4f8;color:#425871;padding:6px 4px;border-radius:6px;font-size:10px;line-height:1.4}
.vehicle-purchase-summary{display:flex;flex-direction:column;gap:5px;padding:13px;border:1px solid #e6eaf1;border-radius:10px;background:#f8faff;font-size:12px}
.vehicle-purchase-summary span{color:#5c7089;font-size:11px;line-height:1.45}
.mobile-menu-toggle,.mobile-bottom-nav,.mobile-menu-shade{display:none}
@media (max-width:740px), (max-width:950px) and (max-height:540px) and (pointer:coarse){
 html,body{width:100%;overflow-x:hidden}
 .app-body{height:100dvh;overflow:hidden}
 .app-shell{height:100dvh;min-height:0;width:100%;display:flex;position:relative;overflow:hidden}
 .main-area{width:100%;height:100dvh;min-height:0;min-width:0;overflow:hidden;padding-bottom:calc(61px + env(safe-area-inset-bottom,0px))}
 .sidebar{position:fixed;top:0;bottom:0;left:0;width:min(316px,86vw);min-width:0;z-index:3200;transform:translateX(-105%);transition:transform .2s ease;background:#111b2b;padding:19px 15px 22px;padding-top:calc(19px + env(safe-area-inset-top,0px));overflow-y:auto;overflow-x:hidden;box-shadow:12px 0 35px #0005}
 .mobile-menu-open .sidebar{transform:translateX(0)}
 .mobile-menu-shade{position:fixed;inset:0;z-index:3100;background:#15223c99}
 .mobile-menu-open .mobile-menu-shade{display:block}
 .sidebar .side-brand{padding:3px 8px 20px;font-size:16px}
 .sidebar .side-brand>div,.sidebar .side-label{display:block;font-size:inherit}
 .sidebar .side-label{font-size:10px;margin:15px 11px 10px}
 .sidebar .nav-item,.sidebar .nav-item:not(.action-item){font-size:14px!important;justify-content:flex-start;gap:12px;padding:12px 14px;min-height:46px}
 .sidebar .nav-item>span:first-child{font-size:20px}
 .sidebar .action-item>span{display:inline!important;font-size:14px!important}
 .sidebar .sidebar-bottom .online-dot,.sidebar .user-meta,.sidebar .user-row form{display:block}
 .sidebar .user-row{padding:13px 7px}
 .sidebar .user-meta{display:flex}
 .sidebar .nav-item.active:before{display:none}
 .mobile-menu-toggle{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid #e0e5ed;border-radius:10px;background:#f7f9fc;color:#253b56;font-size:22px;padding:0}
 .topbar{height:auto;flex:none;min-height:0;flex-direction:column;gap:9px;padding:9px 13px 10px}
 .topbar-title-wrap{display:flex;align-items:center;gap:11px;width:100%;min-width:0}
 .topbar-title-wrap>div{min-width:0}
 .topbar h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .top-eyebrow{font-size:9px;letter-spacing:1px}
 .topbar-right{display:flex;justify-content:space-between;align-items:center;gap:5px;width:100%}
 .account-pill{font-size:11px;min-height:34px;display:flex;align-items:center;padding:7px 8px}
 .speed-box{gap:1px;padding:3px}
 .speed-box button{font-size:12px;min-width:35px;min-height:34px;padding:5px 6px}
 .kpis{display:flex;flex:none;gap:7px;padding:8px 10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
 .kpis::-webkit-scrollbar{display:none}
 .kpi{flex:0 0 142px;min-width:142px;padding:9px 11px;scroll-snap-align:start;border-radius:10px}
 .kpi>span{font-size:9px;letter-spacing:.3px}
 .kpi>b{font-size:16px;margin:4px 0;overflow:visible}
 .kpi>small{font-size:10px}
 .workspace{margin:0 7px 5px;gap:0;flex:1;min-height:0;position:relative}
 .map-wrap{min-height:0;border-radius:12px;width:100%;height:100%}
 .content-panel{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;padding:13px 12px 30px;border-radius:12px}
 .content-header{align-items:flex-start;flex-wrap:wrap;gap:9px;padding-bottom:13px;margin-bottom:12px}
 .content-header h2{font-size:18px}.panel-count{font-size:11px;padding:7px 9px}
 .map-toolbar{top:8px;left:8px;right:8px}
 .map-title{padding:7px 9px;font-size:11px}
 .facility-marker{width:40px;height:40px;font-size:24px}
 .vehicle-marker{width:37px;height:37px;font-size:20px}
 .map-hint{bottom:10px;padding:9px 12px;font-size:10px;white-space:normal;text-align:center;line-height:1.4;max-width:calc(100% - 22px)}
 #map .leaflet-control-zoom{margin-bottom:45px}
 #map .leaflet-control-zoom a{width:36px;height:36px;line-height:36px}
 .inspector{position:absolute;z-index:950;left:0;right:0;bottom:0;top:auto;width:100%;min-width:0;height:auto;max-height:min(68%,530px);border-radius:16px 16px 10px 10px;box-shadow:0 -12px 35px #16263b4d;display:none;flex-direction:column}
 .mobile-inspector-open .inspector{display:flex}
 .inspector:has(.empty-inspector){display:none}
 .inspector-top{flex-shrink:0;padding:13px 17px 7px;border-bottom:1px solid #edf0f5}
 .inspector .mini-close{display:block!important;font-size:30px;width:44px;height:40px}
 .inspector #inspector-content{overflow-y:auto;flex:1;min-height:0;padding:12px 17px 18px!important;touch-action:pan-y}
 .inspector #inspector-content .btn{min-height:44px}
 .inspector .activity{display:none}
 .bottom-bar{display:none}
 .mobile-bottom-nav{position:fixed;z-index:2000;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(61px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:white;border-top:1px solid #e0e6ee;box-shadow:0 -4px 16px #182b4020}
 .mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:750;border:0;background:white;color:#64748b;min-width:0;padding:5px 1px}
 .mobile-bottom-nav button span{font-size:20px;line-height:1.2}
 .mobile-bottom-nav button.active{color:#164d99;background:#f0f5ff}
 .mobile-bottom-nav .mobile-build-button{background:#fbe7a3;color:#3c3218}
 .dialog-backdrop{padding:0;place-items:end center;overscroll-behavior:contain}
 .dialog{width:100%;max-height:min(92dvh,900px);border-radius:18px 18px 0 0;padding:16px 14px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 60px #12243a50}
 .dialog-head{position:sticky;top:-16px;z-index:3;background:white;padding:6px 0 11px;margin-bottom:10px;border-bottom:1px solid #eef1f6}
 .dialog-head h2{font-size:18px}.dialog .mini-close{font-size:28px;min-width:44px;min-height:44px}
 .dialog input,.dialog select{font-size:16px!important;min-height:42px}
 .dialog .btn.full{min-height:48px}
 .option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}
 .option-card{padding:12px!important}.vehicle-option{min-height:174px}
 .vehicle-specs-grid span{font-size:9px;padding:5px 3px}
 .vehicle-choices{max-height:min(50dvh,480px);overflow:auto;overscroll-behavior:contain}
 .data-row{min-width:0;flex-wrap:wrap;gap:7px;padding:10px}
 .data-row-name{flex:1;min-width:0;overflow-wrap:anywhere}
 .data-row .route-edit-small{min-height:40px;flex:1}
 .finance-history-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
 .finance-history{min-width:500px}
 .financial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .finance-tile{min-width:0;padding:10px}.finance-tile b{font-size:16px;overflow-wrap:anywhere}
 .danger-zone{flex-wrap:wrap;gap:10px}
 .route-planner-overlay{flex-direction:column-reverse;height:100dvh;max-height:100dvh}
 .route-planner-map-wrap{flex:none;height:41dvh;min-height:180px}
 .route-planner-sidebar{height:59dvh;max-height:59dvh;width:100%;max-width:100%;min-width:0}
 .route-planner-header{padding:9px 13px}.route-planner-scroll{padding:8px 13px}
 .route-planner-footer{padding:7px 12px calc(9px + env(safe-area-inset-bottom,0px));flex-direction:row;flex-wrap:wrap}
 .route-planner-footer .btn{min-height:42px;font-size:12px;padding:9px 7px}
 .route-map-pin{width:40px;height:40px;touch-action:manipulation}
 .route-planner-map-tip{max-width:92%;font-size:10px;padding:6px}
 .route-editor-tools button{min-width:36px;height:36px}
 .route-vehicle-choice{min-height:44px}
 .route-vehicle-choice input{width:20px;height:20px}
}
@media(max-width:370px){
 .vehicle-choices{grid-template-columns:1fr 1fr}.vehicle-option{padding:8px!important}
 .vehicle-specs-grid{grid-template-columns:1fr}
 .kpi{flex-basis:125px;min-width:125px}
 .speed-box button{min-width:31px}
 .route-planner-map-wrap{height:37dvh}.route-planner-sidebar{height:63dvh;max-height:63dvh}
}
@media (orientation:landscape) and (max-height:540px) and (pointer:coarse){
 .topbar{flex-direction:row;align-items:center;padding:4px 10px;gap:6px}
 .topbar-title-wrap{width:auto;flex:1;min-width:0}
 .topbar-right{width:auto;flex:0 0 auto}
 .top-eyebrow{display:none}
 .account-pill{font-size:10px;padding:5px}
 .speed-box button{min-height:32px}
 .kpis{padding:4px 8px;gap:6px}
 .kpi{flex:0 0 128px;padding:5px 8px}
 .kpi>small{display:none}
 .kpi>b{margin:2px 0;font-size:13px}
 .kpi>span{font-size:8px}
 .mobile-bottom-nav{height:calc(51px + env(safe-area-inset-bottom,0px))}
 .main-area{padding-bottom:calc(51px + env(safe-area-inset-bottom,0px))}
 .route-planner-overlay{flex-direction:row;height:100dvh}
 .route-planner-sidebar{width:min(45vw,355px);max-width:45vw;min-width:235px;height:100dvh;max-height:100dvh}
 .route-planner-map-wrap{height:100dvh;min-height:0;flex:1}
 .route-planner-footer{padding-bottom:8px}
 .dialog{max-height:95dvh;width:min(720px,100vw);border-radius:12px;padding:9px 15px}
 .vehicle-choices{max-height:53dvh}
}

/* Alpha 0.20: KPI terminowości i raport miasta → miasta */
button.kpi-action{font:inherit;color:inherit;text-align:left;cursor:pointer;appearance:none;width:100%;min-width:0}
.kpi-action:hover,.kpi-action:focus-visible{border-color:#4179e8;box-shadow:0 2px 12px #2563eb17}
.kpi-action:focus-visible{outline:3px solid #a8c8ff;outline-offset:2px}
.quality-report h3{font-size:14px;margin:21px 0 9px;color:#213853}
.quality-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.quality-meta>div{background:#f2f5f9;border-radius:9px;padding:10px 8px;min-width:0}
.quality-meta small{display:block;color:#74869b;font-size:10px}
.quality-meta strong{display:block;margin-top:5px;font-size:17px}
.quality-table{width:100%;border-collapse:collapse;font-size:11px}
.quality-table th{text-align:left;background:#edf2f8;color:#60728b;padding:10px 7px;font-size:10px}
.quality-table td{padding:10px 7px;border-bottom:1px solid #e7edf3;vertical-align:top}
.quality-table th:nth-child(n+2),.quality-table td:nth-child(n+2){text-align:right;white-space:nowrap}
.quality-good{color:#16803e}.quality-bad{color:#bf3344}
.quality-note,.quality-empty{font-size:11px;color:#697b8f;line-height:1.55}
@media(max-width:740px){.quality-table{font-size:10px}.quality-meta strong{font-size:15px}.quality-table th,.quality-table td{padding:9px 4px}}


/* Courier Empire Alpha 0.21 — indywidualne ikony i rozbudowa Paczkomatów */
.facility-marker.locker{background:#f4cb39}
.facility-marker.locker-model-30{background:#ffedaa}
.facility-marker.locker-model-60{background:#f4cb39}
.facility-marker.locker-model-120{background:#ffc244}
.facility-marker.locker-model-200{background:#f7af23}
.model-locker-svg{display:block;width:26px;height:28px;overflow:visible}
.locker-model-120 .model-locker-svg,.locker-model-200 .model-locker-svg{width:30px;height:30px}
/* Lewy licznik: wolne skrytki; prawy: paczki do zabrania przez kuriera. */
.map-free-badge{
 position:absolute;top:-11px;left:-16px;z-index:5;display:flex;align-items:center;justify-content:center;
 height:20px;min-width:20px;padding:0 4px;border:2px solid #fff;border-radius:11px;
 color:#fff;background:#12875c;font-size:10px;font-weight:900;line-height:1;white-space:nowrap;
 box-shadow:0 2px 7px #25354450;pointer-events:none;font-variant-numeric:tabular-nums;
}
.map-free-badge.is-full{background:#bb3a46}
.facility-marker.locker .map-parcel-badge{right:-16px;top:-11px}
.vehicle-marker{width:36px;height:32px;border-radius:9px;font-size:14px;box-shadow:0 3px 12px #183a7280}
.model-vehicle-svg{width:34px;height:27px;display:block;overflow:visible}
.model-vehicle-svg .vehicle-body{fill:#f3f8ff;stroke:#e0ebff;stroke-width:.6;stroke-linejoin:round}
.model-vehicle-svg .vehicle-wheels{fill:#152a46}
.model-vehicle-svg .vehicle-glass{fill:#5c8fc0;stroke:none}
.model-vehicle-svg .vehicle-detail{fill:#86d7eb;stroke:#86d7eb;stroke-width:1}
.vehicle-marker.vehicle-model-van_mini{background:#466ecc}
.vehicle-marker.vehicle-model-van{background:#2d6db9}
.vehicle-marker.vehicle-model-van_maxi{background:#264e9b}
.vehicle-marker.vehicle-model-van_electric{background:#159c91}
.vehicle-marker.vehicle-model-truck_light{background:#c16e40}
.vehicle-marker.vehicle-model-truck{background:#7958bd}
.vehicle-marker.vehicle-model-truck_heavy{background:#3a4d7c}
.vehicle-marker.vehicle-model-truck_express{background:#be3e5c}
.vehicle-marker.vehicle-selected{outline:3px solid #f1b72a;outline-offset:1px}
.model-inspector-icon .model-locker-svg{width:40px;height:41px}
.model-inspector-icon .model-vehicle-svg{width:42px;height:39px}
.model-row-icon .model-vehicle-svg{width:34px;height:30px}
.round-icon .model-locker-svg{width:29px;height:31px}
.vehicle-choice-icon{display:flex;align-items:center;justify-content:center;width:56px;height:43px;border-radius:10px;background:#e7f1fc}
.vehicle-choice-icon .model-vehicle-svg{width:49px;height:38px}
.vehicle-choice-icon.vehicle-model-van_electric{background:#e0f7f1}
.vehicle-choice-icon.vehicle-model-truck_light{background:#fff0e4}
.vehicle-choice-icon.vehicle-model-truck{background:#eee7fa}
.vehicle-choice-icon.vehicle-model-truck_heavy{background:#e5e9f4}
.vehicle-choice-icon.vehicle-model-truck_express{background:#fbe7ec}
.vehicle-choice-icon .model-vehicle-svg .vehicle-body{fill:#356394;stroke:#274c78}
.vehicle-choice-icon.vehicle-model-truck_light .model-vehicle-svg .vehicle-body{fill:#b15a30;stroke:#914a2a}
.vehicle-choice-icon.vehicle-model-truck .model-vehicle-svg .vehicle-body{fill:#7556b1;stroke:#5b4295}
.vehicle-choice-icon.vehicle-model-truck_heavy .model-vehicle-svg .vehicle-body{fill:#344975;stroke:#22395f}
.vehicle-choice-icon.vehicle-model-truck_express .model-vehicle-svg .vehicle-body{fill:#c03e5d;stroke:#962c48}
.vehicle-choice-icon.vehicle-model-van_electric .model-vehicle-svg .vehicle-body{fill:#138b7f;stroke:#0e7268}
.vehicle-choice-icon .model-vehicle-svg .vehicle-glass{fill:#e1f2fd}
.upgrade-option-icon{display:flex;align-items:center;justify-content:center;min-height:41px;align-self:flex-start;background:#fff1bd;border-radius:9px;width:49px}
.upgrade-option-icon .model-locker-svg{height:37px;width:36px}
.upgrade-summary{border:1px solid #e3e9f2;background:#f6f8fc;border-radius:10px;padding:13px;display:flex;flex-direction:column;gap:6px;font-size:12px}
.upgrade-summary small{font-size:11px;color:#64748b}
@media(max-width:740px){.facility-marker.locker .map-free-badge{left:-15px;top:-10px}.facility-marker.locker .map-parcel-badge{right:-15px;top:-10px}.vehicle-marker{width:40px;height:36px}.model-vehicle-svg{width:38px;height:30px}.upgrade-choices .option-card{min-height:150px}}

/* Alpha 0.22 — nazwy linii, wybór auta zastępczego i sprzedaż floty. */
.line-label-holder{background:transparent;border:0;pointer-events:auto}
.route-map-label{display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;background:rgba(255,255,255,.95);border:1px solid #a5bce0;box-shadow:0 2px 10px #263f6628;color:#214b86;font-size:10px;font-weight:800;text-align:center;line-height:22px;padding:0 6px;cursor:pointer}
.route-map-label:hover{border-color:#3067ce;background:#f1f6ff}
.route-name-field,.swap-field{display:flex;flex-direction:column;gap:7px;font-weight:750;font-size:12px;color:#445e80;margin-bottom:15px}
.route-name-field input,.swap-field select{width:100%;height:42px;padding:0 11px;border-radius:9px;border:1px solid #cad6e8;background:#fff;color:#233d5b;font:inherit;font-weight:500}
.route-name-field small{font-weight:400;font-size:10px;color:#8090a5;line-height:1.4}
.fleet-vehicle-entry{display:flex;gap:8px;align-items:stretch;min-width:0}
.fleet-vehicle-entry .data-row{flex:1;min-width:0;text-align:left}
.fleet-sell-action{align-self:stretch;flex:none;padding:0 13px;border:1px solid #f5ced3;border-radius:10px;background:#fff2f4;color:#a72e45;font-weight:750;font-size:11px;cursor:pointer}
.fleet-sell-action:hover{background:#ffe1e6}
.fleet-sell-action:disabled{opacity:.45;cursor:default}
@media(max-width:740px){
  .fleet-vehicle-entry{flex-direction:column;gap:4px;padding:8px;border-radius:12px;border:1px solid #e8edf6}
  .fleet-vehicle-entry .data-row{border:0;padding:3px 0;min-height:48px}
  .fleet-sell-action{min-height:42px;align-self:stretch}
  .route-map-label{max-width:100px;font-size:9px}
  .route-name-field input,.swap-field select{min-height:44px}
}
