: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}}
