:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183046;background:#f2f6fa;font-size:15px;--blue:#1261a8;--muted:#63798c;--line:#dde6ee}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{border:0;background:var(--blue);color:white;border-radius:8px;padding:11px 17px;cursor:pointer;font-weight:600;min-height:42px}button:disabled{opacity:.5;cursor:wait}.ghost{background:#edf3f8;color:#34536b}.danger{background:#b94141}.tiny{padding:7px 10px;font-size:12px;min-height:36px}a{color:var(--blue)}input,select,textarea{border:1px solid #cbd8e3;border-radius:7px;background:white;padding:11px;width:100%;color:#183046;min-height:44px}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;font-weight:600;margin:14px 0 6px}label small{font-weight:400}input[type=checkbox]{width:20px;min-height:20px;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.8px}h2{font-size:20px}h3{font-size:15px}p{line-height:1.6}small,.muted{color:var(--muted)}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#103a60;color:#fff;padding:30px 20px;position:fixed;inset:0 auto 0 0;width:240px;display:flex;flex-direction:column;gap:25px}.brand{font-size:24px;font-weight:800;letter-spacing:1px}.brand span{color:#70c6ff}.brand small{display:block;color:#a6c5df;font-size:10px;letter-spacing:2.3px;margin-top:7px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{text-align:left;background:transparent;font-weight:500;color:#bed1e1;border-radius:7px;padding:12px 15px}.sidebar nav button.active{background:#245783;color:white}.sidebar footer{margin-top:auto;color:#b6cfdf;font-size:12px;line-height:1.7}.main{grid-column:2;padding:0 36px 36px;max-width:1800px;width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;min-height:88px;border-bottom:1px solid var(--line);margin-bottom:30px;gap:15px}.topbar strong{display:block}.user{display:flex;align-items:center;gap:12px}.avatar{border-radius:50%;background:#d9eafa;color:#1261a8;display:grid;place-items:center;width:38px;height:38px;font-weight:700}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1.8px;margin-bottom:8px}.pagehead p{margin:7px 0 0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.card,.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:23px;box-shadow:0 3px 10px #17355003}.card small{display:block;font-size:12px}.card b{display:block;font-size:29px;margin:14px 0 9px;letter-spacing:-1px}.card .sub{font-size:12px;color:var(--muted)}.card.highlight{background:#1261a8;color:white;border-color:#1261a8}.highlight small,.highlight .sub{color:#d4e7fa}.grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-bottom:22px}.panel{margin-bottom:22px}.panelhead{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.panelhead h2{margin:0}.badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#eaf3fb;color:#246093;font-size:11px;font-weight:700;white-space:nowrap}.badge.green{background:#e7f5ef;color:#287353}.badge.red{background:#fce9e9;color:#a23636}.badge.amber{background:#fff3d9;color:#926b13}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#718597;font-weight:700;background:#f7f9fc}td,th{padding:15px 12px;border-bottom:1px solid #e8eef3;vertical-align:top}td strong{display:block;margin-bottom:4px}td .muted{font-size:11px}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty{padding:35px 15px;text-align:center;color:#718597}.progress{height:8px;border-radius:10px;background:#e9f0f6;overflow:hidden;margin:14px 0}.progress div{height:100%;background:#2187ce}.split{display:flex;justify-content:space-between;gap:15px}.listitem{padding:14px 0;border-bottom:1px solid #edf1f5;display:flex;align-items:center;justify-content:space-between;gap:15px}.listitem:last-child{border:0}.dot{width:9px;height:9px;border-radius:50%;background:#22a57d;display:inline-block;margin-right:8px}.notice{padding:15px 18px;border:1px solid #e2d9b9;border-radius:8px;background:#fffaf0;color:#7b662f;margin-bottom:20px;font-size:13px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.toolbar input,.toolbar select{width:auto}.toolbar input[type=search]{min-width:240px;flex:1}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.loginhero{background:#103a60;color:white;padding:12vh 9vw;display:flex;flex-direction:column;justify-content:center}.loginhero h1{font-size:47px;line-height:1.15;margin-top:70px}.loginhero p{color:#b8d4e9}.loginbox{display:flex;align-items:center;justify-content:center;padding:40px}.loginbox form{max-width:390px;width:100%}.loginbox h2{font-size:28px;margin-bottom:10px}.loginbox button{width:100%;margin-top:22px}.loginbox .ghost{margin-top:10px}.error,#formError{color:#ad3030;font-size:13px}dialog{border:1px solid var(--line);border-radius:14px;width:min(600px,94vw);max-height:90vh;padding:25px;box-shadow:0 30px 100px #1237}dialog::backdrop{background:#0e253e88}.modalhead{display:flex;justify-content:space-between;align-items:center}.modalhead h2{margin:0}#saveButton{width:100%;margin-top:20px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}#toast{position:fixed;bottom:24px;right:24px;background:#153e5e;color:white;padding:14px 24px;border-radius:10px;display:none;z-index:10;max-width:90vw}.dropped td{background:#ffebeb;color:#9c3030}.reportpage{background:white;padding:25px;margin-bottom:20px}.map{width:100%;height:220px;background:#f1f5f8;border-radius:9px}.legend{display:flex;gap:18px;font-size:11px;color:#718597;margin-top:12px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpis b{font-size:24px;display:block}.tabcount{float:right;background:#ffffff20;padding:1px 6px;border-radius:4px}.check{display:flex;gap:8px;align-items:center}.check label{margin:0}.policy{font-size:12px;line-height:1.7;padding:15px;background:#f3f7fa;border-radius:8px}.formhint{font-size:12px;color:#63798c;line-height:1.6;margin-top:12px}.routegap{stroke-dasharray:4 4}.visittime{color:#1261a8;font-weight:700;font-size:12px}button:focus-visible,a:focus-visible{outline:3px solid #51a8e3;outline-offset:3px}.mobilebrand{display:none}.nowrap{white-space:nowrap}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.main{padding:0 22px 25px}.sidebar{width:210px}.layout{grid-template-columns:210px 1fr}}@media(max-width:700px){.layout{display:block}.sidebar{position:sticky;top:0;width:100%;padding:10px 12px;z-index:5;gap:10px}.sidebar .brand,.sidebar footer{display:none}.sidebar nav{display:flex;overflow:auto;gap:4px}.sidebar nav button{white-space:nowrap;font-size:12px;padding:9px 12px}.main{padding:0 15px 25px}.topbar{min-height:75px;margin-bottom:22px}.topbar .ghost{font-size:11px}.mobilebrand{display:block;font-size:16px}.pagehead{align-items:flex-start}h1{font-size:24px}.pagehead p{font-size:12px}.card,.panel{padding:17px}.cards{gap:10px}.card b{font-size:23px}.card small{font-size:11px}.panelhead h2{font-size:17px}.formgrid{grid-template-columns:1fr}.toolbar input,.toolbar select{width:100%}.login{display:block}.loginhero{padding:35px}.loginhero h1{font-size:30px;margin:30px 0 15px}.loginbox{padding:35px 25px}.loginhero .policy{display:none}.user small{font-size:10px}.kpis{grid-template-columns:repeat(2,1fr)}.reportpage{padding:12px}.pagehead>button{font-size:12px}}@media print{.sidebar,.topbar,.toolbar,.pagehead,.noprint,#toast,dialog{display:none!important}.main{display:block;padding:0;max-width:none}.layout{display:block}.reportpage{page-break-after:always;padding:0;margin:0}table{font-size:9px}td,th{padding:6px}.reportpage:last-child{page-break-after:auto}.panel{box-shadow:none}body{background:white}.dropped td{print-color-adjust:exact;background:#ffebeb!important}@page{size:A4 landscape;margin:12mm}}

progress{display:block;width:100%;height:10px;margin:15px 0;accent-color:#2187ce}

.main,.panel,.grid2>*,.topbar>*,.cards>*{min-width:0}.layout{overflow-x:clip}

.loginhero .policy{background:#1f4a70;color:#d2e6f6}

.brand img{display:block;width:100%;max-width:300px;height:auto;background:white;border-radius:5px;padding:6px}.sidebar .brand img{max-width:205px;padding:5px}.sidebar .brand small{font-size:11px;letter-spacing:1.5px;margin:12px 0 0}.loginhero .brand small{margin-top:15px}.mobilebrand img{width:120px;height:auto;background:white;padding:3px;border-radius:4px}.mobilebrand strong{font-size:12px;margin-top:4px;color:#1261a8}@media(max-width:700px){.loginhero .brand img{width:250px}.topbar .mobilebrand{flex-shrink:0}.topbar .user{gap:6px}.topbar .user strong{font-size:12px}.topbar .avatar{width:28px;height:28px;flex-shrink:0}.sidebar{overflow:hidden}}

/* Light horizontal separators keep dense rows easy to follow. */
td,th{border-bottom:.5px solid #dce4eb}.listitem{border-bottom:.5px solid #dce4eb}
