:root{--bg:#f3f5f8;--panel:#fff;--border:#dfe4ea;--text:#1c2430;--muted:#6b7684;--primary:#1f3a93;--primary-2:#2d55d1;--accent:#e8542f;--success:#1f9d55;--warn:#e0a100;--danger:#c0392b;--radius:10px;--sidebar:#16213a;--sidebar-w:236px;--topbar-h:52px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}a{color:var(--primary-2);text-decoration:none}h1,h2,h3{margin:0 0 12px}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}img{max-width:100%}.app{min-height:100vh}.topbar{z-index:40;height:var(--topbar-h);background:var(--sidebar);color:#fff;align-items:center;gap:12px;padding:0 12px;display:flex;position:sticky;top:0}.topbar .burger{cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;display:inline-flex}.topbar .burger:hover{background:#ffffff1a}.topbar .burger span{background:#fff;border-radius:2px;width:20px;height:2px;display:block}.topbar-brand{align-items:center;gap:8px;min-width:0;display:flex}.topbar-brand i{background:linear-gradient(135deg,#e8542f,#1f3a93);border-radius:50%;flex-shrink:0;width:24px;height:24px}.topbar-brand b{white-space:nowrap;font-size:15px}.topbar-brand span{color:#94a0b8;letter-spacing:.5px;white-space:nowrap;font-size:11px}.topbar-user{align-items:center;gap:10px;min-width:0;margin-left:auto;display:flex}.topbar-user .name{color:#d7dce6;white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:13px;overflow:hidden}.topbar-user .btn{color:#fff;background:#ffffff1a;border-color:#fff3}.sidebar{top:var(--topbar-h);width:var(--sidebar-w);background:var(--sidebar);color:#d7dce6;z-index:50;flex-direction:column;transition:transform .2s;display:flex;position:fixed;bottom:0;left:0;overflow-y:auto}.sidebar .brand{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:flex-start;gap:8px;padding:16px 18px 12px;display:flex}.sidebar .brand b{color:#fff;font-size:16px;display:block}.sidebar .brand span{color:#94a0b8;letter-spacing:.5px;font-size:11px}.sidebar .brand .logo{align-items:center;gap:8px;display:inline-flex}.sidebar .brand .logo i{background:linear-gradient(135deg,#e8542f,#1f3a93);border-radius:50%;flex-shrink:0;width:30px;height:30px;display:inline-block}.sidebar .brand .close{color:#fff;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:26px;line-height:1;display:none}.sidebar nav{flex:1;padding:10px 0}.sidebar .group{text-transform:uppercase;letter-spacing:1px;color:#7d8aa5;padding:14px 18px 6px;font-size:10px}.sidebar a{color:#cfd6e4;border-left:3px solid #0000;align-items:center;gap:10px;padding:10px 18px;font-size:13.5px;display:flex}.sidebar a:hover{color:#fff;background:#ffffff0f}.sidebar a.active{color:#fff;border-left-color:var(--accent);background:#ffffff1a}.sidebar .user{border-top:1px solid #ffffff14;padding:14px 18px;font-size:12.5px}.sidebar .user b{color:#fff;display:block}.sidebar .user button{margin-top:8px}.backdrop{inset:var(--topbar-h) 0 0 0;z-index:45;background:#00000073;display:none;position:fixed}.main{min-width:0;padding:22px 28px;transition:margin-left .2s}.sidebar-open .main{margin-left:var(--sidebar-w)}.sidebar-closed .sidebar{transform:translate(-100%)}.sidebar-closed .main{margin-left:0}.topbar-user .name{display:none}@media (width<=1024px){.main{padding:16px;margin-left:0!important}.sidebar{width:min(300px,86vw);transform:translate(-100%);box-shadow:0 0 30px #0006}.sidebar-open .sidebar{transform:translate(0)}.sidebar-open .backdrop{display:block}.sidebar .brand .close{display:inline-block}.sidebar .user{display:none}.topbar-user .name{display:inline}}@media (width<=600px){.main{padding:12px}.topbar-brand span,.topbar-user .name{display:none}h1{font-size:19px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.page-head>div:first-child{min-width:0}.page-head h1{overflow-wrap:anywhere}.page-head p{color:var(--muted);margin:2px 0 0;font-size:13px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;margin-bottom:18px;padding:18px}.card.tight{padding:12px 14px}.grid{gap:14px;min-width:0;display:grid}.grid>*{min-width:0}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-5{grid-template-columns:repeat(5,1fr)}@media (width<=1200px){.grid.cols-5{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.grid.cols-2{grid-template-columns:1fr}.grid.cols-2.stats,.grid.cols-4.stats{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.grid.cols-3,.grid.cols-5{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.cols-5{grid-template-columns:1fr}.grid.cols-2.stats,.grid.cols-3.stats,.grid.cols-4.stats,.grid.cols-5.stats{grid-template-columns:repeat(2,1fr)}}@media (width<=360px){.grid.cols-2.stats,.grid.cols-3.stats,.grid.cols-4.stats,.grid.cols-5.stats{grid-template-columns:1fr}}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:14px 16px}.stat .label{color:var(--muted);font-size:12px}.stat .value{overflow-wrap:anywhere;margin-top:4px;font-size:24px;font-weight:600}.stat .sub{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:12px}.stat.accent{border-left:4px solid var(--accent)}.stat.primary{border-left:4px solid var(--primary-2)}.stat.success{border-left:4px solid var(--success)}.stat.warn{border-left:4px solid var(--warn)}.stat.danger{border-left:4px solid var(--danger)}@media (width<=600px){.stat{padding:10px 12px}.stat .value{font-size:20px}}.split{grid-template-columns:1fr 1fr;gap:14px;min-width:0;display:grid}.split>*{min-width:0}.map-layout{grid-template-columns:1fr 300px;gap:14px;min-width:0;display:grid}.map-layout>*{min-width:0}.map-layout .list{max-height:calc(100vh - var(--topbar-h) - 120px);margin:0;overflow-y:auto}@media (width<=1024px){.split,.map-layout{grid-template-columns:1fr}.map-layout .list{max-height:40vh}}table.tbl{border-collapse:collapse;background:var(--panel);width:100%}.tbl th,.tbl td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:9px 10px}.tbl th{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);white-space:nowrap;background:#f8fafc;font-size:12px}.tbl tr:hover td{background:#f9fbfd}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl .actions{white-space:nowrap;text-align:right}.tbl .plate{white-space:nowrap}.tbl-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);max-width:100%;overflow-x:auto}.tbl-wrap .tbl{border:0}.tbl-wrap .tbl td{white-space:nowrap}.tbl-wrap .tbl td.wrap{white-space:normal;overflow-wrap:anywhere;min-width:180px;max-width:320px}.tbl-wrap .tbl td .small,.tbl-wrap .tbl td .muted{white-space:normal}.card .tbl-wrap{border:0;border-radius:0}@media (width<=600px){.tbl th,.tbl td{padding:8px;font-size:13px}}label.f{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12.5px;display:flex}label.f>span{font-weight:500}input,select,textarea{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:7px;width:100%;min-width:0;max-width:100%;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--primary-2);outline:2px solid #2d55d140}textarea{resize:vertical;min-height:80px}.form-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.form-grid>*{min-width:0}.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:span 3}.form-grid .span-4{grid-column:span 4}@media (width<=1000px){.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid .span-3,.form-grid .span-4{grid-column:span 2}}@media (width<=560px){.form-grid{grid-template-columns:1fr}.form-grid .span-2,.form-grid .span-3,.form-grid .span-4{grid-column:span 1}}.section-title{color:#fff;background:#2b2f36;border-radius:6px;margin:16px 0 12px;padding:7px 12px;font-size:13px;font-weight:600}.check{color:var(--text);align-items:center;gap:6px;margin-right:18px;font-size:13.5px;display:inline-flex}.check input{width:auto}.row{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar input,.toolbar select{width:auto;min-width:160px}@media (width<=600px){.toolbar input,.toolbar select{width:100%;min-width:0}.toolbar>span,.page-head .row{width:100%}.page-head .row .btn{flex:auto;justify-content:center}}.tbl td input{min-width:90px}.btn{border:1px solid var(--border);color:var(--text);cursor:pointer;font:inherit;white-space:nowrap;background:#fff;border-radius:7px;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.btn:hover{background:#f4f6fa}.btn.primary{background:var(--primary-2);border-color:var(--primary-2);color:#fff}.btn.primary:hover{background:var(--primary)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger);border-color:#f1c3bd}.btn.sm{padding:5px 9px;font-size:12.5px}.btn:disabled{opacity:.6;cursor:not-allowed}.badge{color:#3a4556;white-space:nowrap;background:#eef1f6;border-radius:999px;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-block}.badge.green{color:#1b7a43;background:#e2f6ea}.badge.red{color:#b3261e;background:#fde8e6}.badge.yellow{color:#8a6300;background:#fff4d6}.badge.blue{color:#1f3a93;background:#e4ecff}.badge.gray{color:#5b6573;background:#eceff3}.plate{letter-spacing:1px;white-space:nowrap;background:#fff;border:2px solid #1c2430;border-radius:5px;padding:2px 8px;font-family:Consolas,Courier New,monospace;font-size:13px;font-weight:700;display:inline-block}.plate:before{content:"TR";color:#fff;vertical-align:middle;background:#1f3a93;border-radius:2px;margin-right:6px;padding:1px 3px;font-size:8px}.login{background:linear-gradient(135deg,#16213a,#1f3a93 60%,#e8542f);place-items:center;min-height:100vh;padding:16px;display:grid}.login .box{background:#fff;border-radius:14px;width:380px;max-width:100%;padding:32px;box-shadow:0 20px 60px #0000004d}.login .box h1{margin-bottom:4px}.login .box p{color:var(--muted);margin:0 0 18px;font-size:13px}.login .box label.f{margin-bottom:12px}.login .demo{color:var(--muted);margin-top:14px;font-size:12px;line-height:1.6}.error{color:var(--danger);overflow-wrap:anywhere;margin:8px 0;font-size:13px}@media (width<=480px){.login .box{padding:22px 18px}}.vdetail .head{align-items:center;gap:14px;min-width:0;display:flex}.vdetail .head>div{min-width:0}.vdetail .speed{color:#1b7a43;background:#dff5e7;border-radius:10px;flex-shrink:0;place-items:center;width:56px;height:56px;font-weight:700;line-height:1;display:grid}.vdetail .speed small{font-size:10px;font-weight:500}.kv{border:1px solid var(--border);background:#fff;border-radius:10px;align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}.kv>div{min-width:0}.kv .ic{border:1.5px solid var(--accent);width:40px;height:40px;color:var(--accent);border-radius:9px;flex-shrink:0;place-items:center;font-size:18px;display:grid}.kv .lbl{color:var(--muted);font-size:12px}.kv .val{overflow-wrap:anywhere;font-size:15px;font-weight:600}.map{border:1px solid var(--border);border-radius:10px;min-width:0;height:420px;overflow:hidden}.map.tall{height:calc(100vh - var(--topbar-h) - 120px)}@media (width<=1024px){.map{height:340px}.map.tall{height:55vh}}@media (width<=600px){.map{height:280px}.map.tall{height:50vh}}.leaflet-container{font:inherit}.marker-label{color:#fff;white-space:nowrap;background:#1f9d55;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700}.marker-label.idle{background:#e0a100}.marker-label.parked{background:#5b6573}.printable{color:#000;border:1px solid var(--border);background:#fff;max-width:900px;margin:0 auto;padding:26px 30px;font-size:12.5px;overflow-x:auto}.printable .title{color:#fff;text-align:center;background:#2b2f36;padding:8px;font-size:14px;font-weight:700}.printable .sec{color:#fff;background:#2b2f36;margin:12px 0 8px;padding:5px 8px;font-size:12.5px;font-weight:700}.printable .line{overflow-wrap:anywhere;border-bottom:1px dotted #555;min-height:22px;padding:3px 4px}.printable .pf{grid-template-columns:1fr 1fr;gap:6px 24px;display:grid}.printable .pf3{grid-template-columns:1fr 1fr 1fr;gap:6px 24px;display:grid}.printable .pf.wide{grid-template-columns:3fr 1fr}.printable .full{grid-column:1/-1}.printable .pf>*,.printable .pf3>*{overflow-wrap:anywhere;min-width:0}.printable .lbl{font-size:11.5px;font-weight:700}.printable .sig{text-align:center;padding-top:30px}.printable .sig .name{color:#1a2a8a;min-height:26px;font-family:Segoe Script,Brush Script MT,cursive;font-size:18px}.printable .sig .cap{border-top:1px solid #000;margin-top:6px;padding-top:3px;font-size:11px;font-weight:700}.printable .box{border:1.5px solid #000;padding:6px 8px}.printable table{border-collapse:collapse;width:100%}.printable table td,.printable table th{border:1px solid #000;padding:5px 7px}.printable .chk:before{content:"☐ "}.printable .chk.on:before{content:"☑ "}.slip{width:640px;max-width:100%}.slip .brand{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.slip .brand .logo{color:#1f3a93;letter-spacing:1px;font-size:26px;font-weight:900}.slip .brand .logo span{color:#e8542f}.slip .brand small{color:#333;font-size:10px;line-height:1.3;display:block}.slip .red{color:#d1261a;font-size:16px;font-weight:900}.receipt{text-align:center;width:360px;max-width:100%;font-family:Consolas,Courier New,monospace;font-size:12px}.receipt .l{text-align:left}.receipt .r{justify-content:space-between;gap:8px;display:flex}@media (width<=700px){.printable{padding:16px 14px}.printable .pf,.printable .pf.wide,.printable .pf3{grid-template-columns:1fr;gap:8px}.printable .pf3 .sig,.printable .pf .sig{padding-top:18px}}.receipt-layout{grid-template-columns:auto 1fr;align-items:start;gap:14px;display:grid}@media (width<=800px){.receipt-layout{grid-template-columns:1fr}}.signature-pad{border:1px dashed var(--border);touch-action:none;cursor:crosshair;background:#fff;border-radius:8px;max-width:100%;height:auto;display:block}.thumb{border:1px solid var(--border);border-radius:8px;max-width:100%;max-height:380px}.muted{color:var(--muted)}.small{font-size:12px}.mono{overflow-wrap:anywhere;font-family:Consolas,monospace}.right{text-align:right}.mt{margin-top:12px}.mb{margin-bottom:12px}.empty{text-align:center;color:var(--muted);padding:30px}.tabs{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs button{font:inherit;cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex-shrink:0;padding:9px 14px}.tabs button.active{color:var(--primary-2);border-bottom-color:var(--primary-2);font-weight:600}.ellipsis{white-space:nowrap;text-overflow:ellipsis;max-width:260px;overflow:hidden}@media print{body{background:#fff}.topbar,.sidebar,.backdrop,.no-print,.page-head,.toolbar,.tabs{display:none!important}.main{padding:0;margin:0!important}.printable{border:0;max-width:100%;padding:0;overflow:visible}.printable .pf{grid-template-columns:1fr 1fr}.printable .pf.wide{grid-template-columns:3fr 1fr}.printable .pf3{grid-template-columns:1fr 1fr 1fr}@page{size:A4;margin:12mm}}.sec-title{color:var(--text);margin:0 0 10px;font-size:15px}.card-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.card-head h2{margin:0}.card-head a{white-space:nowrap}.strip{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(5,1fr);gap:1px;display:grid;overflow:hidden}.strip .item{background:var(--panel);min-width:0;padding:14px 16px;position:relative}.strip .item:before{content:"";background:0 0;height:3px;position:absolute;top:0;left:0;right:0}.strip .item.primary:before{background:var(--primary-2)}.strip .item.success:before{background:var(--success)}.strip .item.warn:before{background:var(--warn)}.strip .item.danger:before{background:var(--danger)}.strip .label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.strip .value{margin-top:2px;font-size:24px;font-weight:600;line-height:1.2}.strip .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11.5px;overflow:hidden}.mini{background:var(--border);border:1px solid var(--border);border-radius:8px;gap:1px;margin-bottom:10px;display:grid;overflow:hidden}.mini.cols-2{grid-template-columns:repeat(2,1fr)}.mini.cols-3{grid-template-columns:repeat(3,1fr)}.mini.cols-4{grid-template-columns:repeat(4,1fr)}.mini>div{background:var(--panel);border-top:3px solid #0000;min-width:0;padding:10px 12px}.mini>div.primary{border-top-color:var(--primary-2)}.mini>div.success{border-top-color:var(--success)}.mini>div.warn{border-top-color:var(--warn)}.mini>div.danger{border-top-color:var(--danger)}.mini .label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.mini .value{overflow-wrap:anywhere;margin-top:2px;font-size:17px;font-weight:600;line-height:1.2}.mini .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;overflow:hidden}.alerts{margin:0;padding:0;list-style:none}.alerts li{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-width:0;padding:7px 0;font-size:13px;display:flex}.alerts li:last-child{border-bottom:0}.alerts li .txt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.alerts .plate{padding:1px 6px;font-size:12px}.dashboard .card{margin-bottom:14px}.dashboard .grid.cols-2{align-items:start}@media (width<=1100px){.strip{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.mini.cols-4{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.strip{grid-template-columns:repeat(3,1fr)}.strip .item{padding:10px}.strip .value{font-size:20px}.strip .label{font-size:11px}.strip .sub{display:none}.mini.cols-3,.mini.cols-4{grid-template-columns:repeat(2,1fr)}.mini .value{font-size:16px}.card{margin-bottom:12px;padding:14px}.dashboard .card,.page-head{margin-bottom:12px}}@media (width<=380px){.strip{grid-template-columns:repeat(2,1fr)}.strip .item:last-child{grid-column:1/-1}}@media (width<=1100px) and (width>=381px){.strip .item:nth-child(5):last-child{grid-column:span 2}}@media (width<=600px){.mini.cols-3>div:nth-child(3):last-child{grid-column:span 2}}.strip,.mini{background:var(--panel)}.strip .item,.mini>div{box-shadow:0 0 0 1px var(--border)}.grow{flex:auto;min-width:0}.link-btn{color:var(--primary-2);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:12.5px}.warn-text{color:#8a6300;font-weight:600}ul.plain{margin:6px 0 0;padding-left:18px}.notice{border:1px solid var(--border);background:#fff;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:11px 14px;font-size:13.5px;display:flex}.notice>div{overflow-wrap:anywhere;flex:220px;min-width:0}.notice.ok{color:#14532d;background:#e9f8ef;border-color:#bfe6cd}.notice.info{color:#1f3a93;background:#e9f0ff;border-color:#c4d4fb}.notice.warn{color:#6b4e00;background:#fff7e0;border-color:#f0dc9c}.notice.err{color:#8f1d15;background:#fdecea;border-color:#f4c4be}.card .notice{margin:12px 0 0}.sidebar a .nav-count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.bell{position:relative}.bell-btn{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;position:relative}.bell-btn:hover{background:#ffffff1a}.bell-count{background:var(--accent);color:#fff;border:2px solid var(--sidebar);box-sizing:content-box;border-radius:999px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:700;display:inline-flex;position:absolute;top:2px;right:1px}.bell-panel{width:370px;max-width:calc(100vw - 24px);color:var(--text);border:1px solid var(--border);z-index:60;background:#fff;border-radius:12px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 40px #0000002e}.bell-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.bell-ask{border-bottom:1px solid var(--border);background:#f4f7ff;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.bell-ask .btn{color:var(--text);border-color:var(--border);background:#fff}.bell-list{max-height:min(60vh,420px);overflow-y:auto}.bell-item,.notif-list li>button{text-align:left;border:0;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:inherit;background:#fff;align-items:flex-start;gap:10px;padding:11px 14px;display:flex}.bell-item:hover,.notif-list li>button:hover{background:#f7f9fc}.bell-item .dot,.notif-list .dot{background:0 0;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.bell-item.unread,.notif-list li.unread>button{background:#f4f7ff}.bell-item.unread .dot,.notif-list li.unread .dot{background:var(--primary-2)}.bell-item .body,.notif-list .body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bell-item .title,.notif-list .title{overflow-wrap:anywhere;font-size:13.5px;font-weight:600}.bell-item .msg,.notif-list .msg{color:#4a5565;overflow-wrap:anywhere;font-size:12.5px}.bell-item .when,.notif-list .when{color:var(--muted);font-size:11.5px}.bell-foot{text-align:center;background:#fafbfd;padding:10px;font-size:13px;display:block}.notif-list{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin:0;padding:0;list-style:none;overflow:hidden}.notif-list li:last-child>button{border-bottom:0}.notif-list .chev{color:var(--muted);align-self:center;font-size:20px}@media (width<=600px){.bell-panel{left:8px;right:8px;top:calc(var(--topbar-h) + 4px);width:auto;max-width:none;position:fixed}}.toasts{z-index:80;flex-direction:column;gap:8px;width:360px;max-width:calc(100vw - 24px);display:flex;position:fixed;bottom:16px;right:16px}.toast{color:#fff;border-left:4px solid var(--accent);background:#16213a;border-radius:10px;align-items:stretch;display:flex;overflow:hidden;box-shadow:0 10px 30px #0000004d}.toast-body{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex}.toast-body b{overflow-wrap:anywhere;font-size:13.5px}.toast-body span{color:#cfd6e4;overflow-wrap:anywhere;font-size:12.5px}.toast-x{color:#cfd6e4;cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:20px}@media (width<=600px){.toasts{width:auto;max-width:none;bottom:12px;left:12px;right:12px}}.job-status{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.route{gap:0;margin:4px 0 12px;display:grid}.route .pt{align-items:flex-start;gap:12px;min-width:0;padding-bottom:14px;display:flex;position:relative}.route .pt>div{min-width:0}.route .pt:last-child{padding-bottom:0}.route .pin{border:3px solid var(--primary-2);z-index:1;box-sizing:border-box;background:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:3px;position:relative}.route .pt.to .pin{border-color:var(--accent);background:var(--accent)}.route .pt.from:after{content:"";background:repeating-linear-gradient(#b9c2d0 0 4px,#0000 4px 8px);width:2px;position:absolute;top:17px;bottom:-3px;left:6px}.route .lbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px}.route .name{overflow-wrap:anywhere;font-size:14.5px;font-weight:600}.route .addr{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px}.route.big .name{font-size:16px}.facts-inline{flex-wrap:wrap;gap:6px 18px;margin-bottom:4px;font-size:13px;display:flex}.facts-inline span{overflow-wrap:anywhere}.tick{color:#fff;box-sizing:border-box;background:#fff;border:2px solid #c9d1dc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tick.done{background:var(--success);border-color:var(--success)}.tick.current{border-color:var(--primary-2);box-shadow:0 0 0 3px #2d55d12e}.tick.warn{background:var(--warn);border-color:var(--warn)}.step-dots{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.step-dots i{background:#d5dbe4;border-radius:50%;width:9px;height:9px;display:inline-block}.step-dots i.done{background:var(--success)}.step-dots i.current{box-shadow:inset 0 0 0 2px var(--primary-2);background:#fff}.step-dots i.warn{background:var(--warn)}.step-dots .small{margin-left:4px}.progress{background:#e6eaf0;border-radius:999px;height:6px;margin-bottom:12px;overflow:hidden}.progress i{background:var(--success);border-radius:999px;height:100%;transition:width .3s;display:block}.checklist{border:1px solid var(--border);border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.checklist li{border-bottom:1px solid var(--border)}.checklist li:last-child{border-bottom:0}.checklist li a{color:inherit;background:#fff;align-items:center;gap:12px;min-width:0;padding:13px 14px;display:flex}.checklist li a:hover{background:#f7f9fc}.checklist li.current a{background:#f4f7ff}.checklist li.warn a{background:#fffaf0}.checklist .no{color:#3a4556;background:#eef1f6;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:inline-flex}.checklist li.done .no{color:#1b7a43;background:#e2f6ea}.checklist li.current .no{background:var(--primary-2);color:#fff}.checklist .text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.checklist .title{font-size:14.5px;font-weight:600}.checklist li:not(.done):not(.current) .title{color:#5b6573}.checklist .sub{color:#4a5565;overflow-wrap:anywhere;font-size:13px}.checklist .meta{color:var(--muted);font-size:11.5px}.checklist .chev{color:#a3adba;flex-shrink:0;font-size:22px;line-height:1}.checks{margin:0;padding:0;list-style:none}.checks li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;font-size:13.5px;display:flex}.checks li:last-child{border-bottom:0}.checks li.no span:first-child{color:#8a6300;font-weight:600}.step-nav{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.step-nav a{color:#5b6573;background:#fff;border:2px solid #c9d1dc;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:inline-flex}.step-nav a.done{border-color:var(--success);color:var(--success)}.step-nav a.warn{border-color:var(--warn);color:#8a6300}.step-nav a.active{background:var(--primary-2);border-color:var(--primary-2);color:#fff}.step-foot .btn{white-space:normal;text-align:left;max-width:48%}.job-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;display:grid}.job-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;border-left:4px solid #c9d1dc;flex-direction:column;min-width:0;display:flex;overflow:hidden}.job-card.urgent{border-left-color:var(--danger)}.job-card-main{color:inherit;flex-direction:column;flex:1;gap:5px;min-width:0;padding:13px 14px;display:flex}.job-card-main:hover{background:#f9fbfd}.job-card .top,.track-list .top,.pick-item .top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.job-card .line,.track-list .line,.pick-item .line{overflow-wrap:anywhere;font-size:14.5px;font-weight:600}.job-card .arrow{color:var(--muted);margin:0 4px}.job-card .who{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.job-card-foot{border-top:1px solid var(--border);background:#fafbfd;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.track-list{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin:0;padding:0;list-style:none;overflow:hidden}.track-list li{border-bottom:1px solid var(--border);border-left:4px solid #0000}.track-list li:last-child{border-bottom:0}.track-list li.mine{border-left-color:var(--primary-2);background:#f7f9ff}.track-list li.done{border-left-color:var(--success)}.track-list li.cancelled{opacity:.7}.track-list li a{color:inherit;align-items:center;gap:14px;min-width:0;padding:13px 14px;display:flex}.track-list li a:hover{background:#00000005}.track-list .info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.track-list .state{flex-shrink:0;align-items:center;gap:12px;display:flex}.chips{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:12px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{border:1px solid var(--border);font:inherit;cursor:pointer;white-space:nowrap;color:var(--text);background:#fff;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:7px 14px;font-size:13px;display:inline-flex}.chip.active{background:var(--primary-2);border-color:var(--primary-2);color:#fff}.chip .n{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.assign-layout{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:14px;display:grid}.assign-layout>*{min-width:0}.pick-list{max-height:calc(100vh - var(--topbar-h) - 150px);margin:0;overflow-y:auto}.pick-item{text-align:left;width:100%;font:inherit;color:inherit;border:1px solid var(--border);cursor:pointer;background:#fff;border-left:4px solid #c9d1dc;border-radius:8px;flex-direction:column;gap:3px;min-width:0;margin-bottom:8px;padding:10px 12px;display:flex}.pick-item:hover{background:#f7f9fc}.pick-item.urgent{border-left-color:var(--danger)}.pick-item.active{border-color:var(--primary-2);border-left-color:var(--primary-2);background:#f4f7ff;box-shadow:0 0 0 2px #2d55d126}.detail-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.detail-layout>*{min-width:0}@media (width<=1024px){.assign-layout,.detail-layout{grid-template-columns:1fr}.pick-list{max-height:46vh}}@media (width<=600px){.job-list{grid-template-columns:1fr}.track-list li a{gap:10px;padding:12px 10px}.track-list .state{flex-direction:column-reverse;align-items:flex-end;gap:6px}.track-list .step-dots .small{display:none}}.facts{gap:0;margin:0;display:grid}.facts>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(110px,38%) 1fr;gap:10px;padding:8px 0;font-size:13.5px;display:grid}.facts>div:last-child{border-bottom:0}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:500}.doc-view{border:1px solid var(--border);text-align:center;background:#f3f5f8;border-radius:10px;margin-bottom:10px;display:block;overflow:hidden}.doc-view img{object-fit:contain;background:#eef1f6;width:100%;max-height:420px;display:block}.doc-view .pdf{padding:28px 12px;font-weight:600;display:block}.doc-empty{border:1px dashed var(--border);text-align:center;border-radius:10px;margin-bottom:10px;padding:22px 12px;font-size:13px}.doc-upload,.doc-upload .row{margin-bottom:6px}.doc-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=800px){.doc-layout{grid-template-columns:1fr}}.big-input{letter-spacing:.5px;padding:12px 14px;font-size:20px;font-weight:600}.btn.big{padding:12px 20px;font-size:15px}@media (width<=600px){.action-row{flex-direction:column-reverse;align-items:stretch}.action-row .btn{white-space:normal;justify-content:center;width:100%}.doc-upload .row .btn{flex:auto;justify-content:center}.step-foot .btn{padding:7px 10px;font-size:12.5px}}.timeline{margin:0;padding:0;list-style:none}.timeline li{gap:12px;min-width:0;padding-bottom:14px;display:flex;position:relative}.timeline li>div{overflow-wrap:anywhere;min-width:0}.timeline li:last-child{padding-bottom:0}.timeline .dot{background:var(--primary-2);z-index:1;border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px;position:relative}.timeline li:before{content:"";background:#e1e6ed;width:2px;position:absolute;top:14px;bottom:0;left:4px}.timeline li:last-child:before{display:none}.timeline li.approved .dot,.timeline li.accepted .dot{background:var(--success)}.timeline li.correction .dot,.timeline li.rejected .dot,.timeline li.cancelled .dot{background:var(--danger)}.timeline li.analysis .dot{background:#8b5cf6}.timeline .t{font-size:13.5px;font-weight:600}.toolbar .check{white-space:nowrap;margin-right:0}.toolbar .check input,.toolbar input[type=checkbox]{width:auto;min-width:0}.f.combo{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12.5px;display:flex}.f.combo>label{font-weight:500}.combo-box{position:relative}.combo-box input{padding-right:34px}.combo-box input.unresolved{border-color:var(--warn)}.combo-clear{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:20px;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.combo-clear:hover{color:var(--text);background:#eef1f6}.combo-list{z-index:30;border:1px solid var(--border);max-height:300px;color:var(--text);background:#fff;border-radius:10px;margin:0;padding:4px;font-size:13.5px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 30px #00000029}.combo-list li{cursor:pointer;border-radius:7px;flex-direction:column;gap:1px;min-width:0;padding:8px 10px;display:flex}.combo-list li.active{background:#eef3ff}.combo-list li .n{overflow-wrap:anywhere;font-weight:600}.combo-list li .d{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.combo-list li.add{border-top:1px solid var(--border);border-radius:0 0 7px 7px;margin-top:4px;padding-top:10px}.combo-list li.add .n{color:var(--primary-2)}.combo-list li.combo-info{cursor:default;color:var(--muted);font-size:13px}.combo-warn{color:#8a6300;font-weight:600}.combo-new{color:var(--primary-2)}input[readonly]{color:#3a4556;background:#f3f5f8}input:disabled{color:var(--muted);cursor:not-allowed;background:#f3f5f8}.perm-help{flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:12px;font-size:13px;display:flex}.perm-help>span{align-items:center;gap:6px;display:inline-flex}.perm-dot{background:#fff;border:2px solid #c9d1dc;border-radius:4px;width:14px;height:14px;display:inline-block}.perm-dot.on{background:var(--primary-2);border-color:var(--primary-2)}.perm-dot.changed{border-color:var(--warn);background:#fff4d6}.perm-dot.locked{background:#e6eaf0;border-color:#e6eaf0}.perm-wrap{max-height:calc(100vh - var(--topbar-h) - 250px);min-height:320px;margin-bottom:70px;overflow:auto}table.perm{border-collapse:separate;border-spacing:0}table.perm th,table.perm td{border-bottom:1px solid var(--border)}table.perm thead th{z-index:3;vertical-align:bottom;text-transform:none;letter-spacing:0;color:var(--text);background:#f8fafc;font-size:13px;position:sticky;top:0}table.perm th.role,table.perm td.role{text-align:center;min-width:108px}table.perm th.role.admin,table.perm td.role.admin{background:#f8fafc;min-width:70px}table.perm .page{z-index:2;text-align:left;min-width:210px;max-width:320px;box-shadow:1px 0 0 var(--border);background:#fff;position:sticky;left:0}table.perm thead th.page{z-index:4;background:#f8fafc}table.perm tr.group th{text-align:left;color:#fff;letter-spacing:.5px;background:#2b2f36;padding:6px 10px;font-size:12px;position:sticky;left:0}table.perm td.role input{cursor:pointer;width:20px;height:20px;accent-color:var(--primary-2)}table.perm td.role input:disabled{cursor:not-allowed}table.perm td.role.locked{background:#f3f5f8}table.perm td.role.locked input{opacity:.35}table.perm td.role.changed{background:#fff9e8}table.perm td.role.dirty{box-shadow:inset 0 0 0 2px var(--warn)}table.perm .col-actions{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:4px;font-weight:400;display:flex}table.perm .col-actions .link-btn{font-size:11.5px}table.perm .col-actions .link-btn:disabled{color:var(--muted);cursor:not-allowed}.save-bar{z-index:35;border-top:1px solid var(--border);background:#fff;align-items:center;gap:10px;padding:10px 28px;font-size:13.5px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #00000014}.sidebar-open .save-bar{left:var(--sidebar-w)}.save-bar.show{border-top-color:var(--warn);background:#fff9e8;font-weight:600}@media (width<=1024px){.sidebar-open .save-bar,.save-bar{padding:10px 16px;left:0}.perm-wrap{max-height:none}}@media (width<=600px){table.perm .page{min-width:150px;max-width:170px}table.perm th.role,table.perm td.role{min-width:92px}.save-bar>span:first-child{font-size:12.5px}}@media print{.toasts,.bell,.save-bar{display:none!important}}
