
:root{font-family:'Noto Sans KR',Arial,sans-serif;color:#233347;background:#f7f9fc;font-synthesis:none;--blue:#346af2;--line:#e8edf3}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button{border:1px solid var(--line);background:white;color:inherit;border-radius:9px;padding:10px 15px}button:hover{background:#f0f5ff}button:focus-visible,a:focus-visible{outline:3px solid #9ebcff}aside{width:226px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:34px 20px;display:flex;flex-direction:column}.brand{text-decoration:none;color:#1f354a;font-size:22px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.brandmark{background:var(--blue);color:#fff;padding:0 8px;border-radius:10px;font-size:29px}.hub{font-size:10px;letter-spacing:1.6px;color:#8290a1;margin:33px 12px 25px}.hub span{display:block;font-size:12px;letter-spacing:0;margin-top:6px}nav{display:grid;gap:9px}nav button{text-align:left;border:0;background:transparent;color:#8993a3;padding:14px 13px}nav button span{margin-left:10px;font-weight:600}nav button.active{background:#edf3ff;color:var(--blue)}.sidebottom{margin-top:auto;display:flex;align-items:center;gap:9px;font-size:11px;border-top:1px solid var(--line);padding-top:20px}.sidebottom button{padding:7px;font-size:10px;margin-left:auto}.avatar{background:#eef3fc;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;color:#4b70bd;font-weight:700}small{display:block;color:#929eae;margin-top:5px}main{margin-left:226px}header{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:12px;color:#8490a0}.breadcrumb span{margin:0 14px;color:#c5cdd7}.headerRight{display:flex;gap:16px;align-items:center}.demo{font-size:10px;letter-spacing:1px;color:#7c8ba3;background:#f3f6fb;border-radius:5px;padding:6px 9px}.textbutton{border:0;color:#7c8ba3;font-size:11px}.content{max-width:1550px;margin:auto;padding:35px 38px}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#7390b3}h1{font-size:28px;letter-spacing:-1.4px;margin:8px 0 9px}p{color:#8894a5;margin:0;font-size:12px;line-height:1.8}.actions{display:flex;gap:10px}.primary{background:var(--blue);color:white;border-color:var(--blue);font-weight:600}.primary:hover{background:#2459db}input,select{border:1px solid #dfe5ee;border-radius:8px;padding:10px 12px;background:#fff;color:#344359;min-width:0}.notice{margin:25px 0 23px;border:1px solid #dfE9fc;background:#f0f5ff;border-radius:9px;padding:12px 15px;color:#5274ad;font-size:11px;display:flex;align-items:center;gap:9px}.noticeDetail{color:#7d91b2;margin-left:8px}.pulse{width:6px;height:6px;background:#5587ed;border-radius:50%}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.stat{background:white;border:1px solid var(--line);border-radius:13px;padding:21px 23px}.statTop{display:flex;justify-content:space-between;color:#8290a3;font-size:12px}.statIcon{color:#7293cb;background:#f2f6fc;border-radius:8px;padding:5px 8px}.stat strong{font-size:32px;letter-spacing:-1.5px;line-height:1.8}.stat strong em{font-size:13px;color:#9aa5b5;font-style:normal;font-weight:400;margin-left:7px;letter-spacing:0}.stat small{font-size:10px}.sectiontitle{display:flex;justify-content:space-between;align-items:center;margin:29px 0 16px}.sectiontitle h2{font-size:17px;margin:0;letter-spacing:-.5px}.sectiontitle h2 span{font-size:12px;color:#92a0b2;font-weight:400;margin-left:9px}.legend{display:flex;gap:13px;align-items:center;font-size:10px;color:#8c99aa}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--c)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 3px 9px #23334703}.cardTop{display:flex;justify-content:space-between;align-items:center}.chassisid{font-size:17px;font-weight:700;letter-spacing:-.5px}.subline{color:#9ba7b8;font-size:10px;margin-top:5px}.badge{font-size:10px;padding:5px 9px;border-radius:6px;background:#edf3ff;color:#6084c0}.badge.full{background:#e9f8f3;color:#2e9b83}.badge.empty{background:#f2f4f7;color:#98a2b1}.trailer{position:relative;padding:13px 10px 13px 17px;border:2px solid #dbe2ec;border-radius:5px 12px 12px 5px;margin:25px 5px 24px;background:#f6f8fb}.trailer:before{content:'';position:absolute;left:-7px;top:25%;height:50%;width:4px;background:#cad3df;border-radius:3px}.trailer:after{content:'';position:absolute;left:22%;right:19%;bottom:-8px;height:6px;border-left:19px solid #99a8bc;border-right:19px solid #99a8bc}.slots{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.slot{aspect-ratio:.75;border-radius:3px;border:1px dashed #d8e1ed;background:#fff;display:grid;place-items:center;color:#d1dae7;font-size:8px;position:relative}.slot.filled{background:var(--pale);border:1px solid var(--c);color:var(--c)}.slot.filled:after{content:'';position:absolute;bottom:4px;left:3px;right:3px;border-top:2px solid var(--c);opacity:.4}.capacity{display:flex;align-items:baseline;justify-content:space-between}.capacity b{font-size:25px;letter-spacing:-1px}.capacity b span{font-size:12px;color:#a3afbe;font-weight:400;letter-spacing:0}.capacity>span{font-size:10px;color:#8a98ad}.bar{height:5px;background:#f0f3f8;border-radius:5px;overflow:hidden;display:flex;margin:10px 0 16px}.bar span{background:var(--c)}.breakdown{min-height:61px;display:flex;align-content:start;gap:7px;flex-wrap:wrap}.chip{background:var(--pale);color:var(--c);font-size:10px;border-radius:5px;padding:5px 7px}.cardBottom{border-top:1px solid #f0f3f7;padding-top:13px;display:flex;justify-content:space-between;align-items:center;color:#a5afbd;font-size:10px}.cardBottom button{font-size:10px;padding:6px 10px;color:#5b7eae}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.panel table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-weight:500;font-size:10px;color:#95a0b0;background:#fbfcfe;padding:13px 20px}td{padding:16px 20px;border-top:1px solid #f0f3f7}td button{font-size:11px;padding:6px 9px}.plate{font-weight:600;color:#465a73}.emptymsg{padding:25px;color:#98a4b5;text-align:center;font-size:12px}.driverbox{max-width:600px;margin:20px auto;background:white;padding:28px;border:1px solid var(--line);border-radius:16px}.driverbox h2{font-size:22px}.driverbox label,label.field{display:grid;gap:8px;margin:18px 0;font-size:12px;color:#66768e}.wide{width:100%;margin-top:10px}.row{display:flex;gap:12px;align-items:center}.managegrid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}footer{display:flex;gap:13px;border-top:1px solid var(--line);margin-top:34px;padding-top:20px;font-size:10px;color:#a1acbc;letter-spacing:.4px}footer span:last-child{margin-left:auto}dialog{width:420px;border:1px solid var(--line);border-radius:17px;padding:27px;box-shadow:0 30px 100px #172c5525}dialog::backdrop{background:#253b6245;backdrop-filter:blur(3px)}.modalhead{display:flex;justify-content:space-between;align-items:center}.modalhead h2{font-size:20px;margin:0}.modalhead button{border:0;font-size:23px;padding:0 5px}#error{color:#d85c65;margin-top:10px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#285ac5;color:white;padding:13px 25px;border-radius:10px;box-shadow:0 10px 30px #285ac533;display:none;z-index:5}@media(min-width:1600px){.cards{gap:25px}.trailer{margin-top:30px;margin-bottom:30px}}@media(max-width:1100px){aside{width:190px;padding:25px 14px}main{margin-left:190px}.content{padding:26px 24px}.cards{grid-template-columns:repeat(2,1fr)}.heading{align-items:start;flex-direction:column}.legend{flex-wrap:wrap;justify-content:end}.noticeDetail{display:none}}@media(max-width:700px){aside{position:static;width:auto;padding:15px 18px;border-bottom:1px solid var(--line)}.hub,.sidebottom{display:none}nav{display:flex;margin-top:12px;gap:5px}nav button{font-size:11px;padding:9px}nav button span{margin-left:3px}.brand{font-size:19px}main{margin-left:0}header{height:49px;padding:0 19px}.breadcrumb{font-size:10px}.textbutton{display:none}.content{padding:24px 16px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:14px}.stat strong{font-size:27px}.cards{grid-template-columns:1fr}.sectiontitle{align-items:start;gap:15px}.legend{max-width:180px;font-size:9px;gap:6px}.panel{overflow-x:auto}th,td{white-space:nowrap;padding:12px}.managegrid{grid-template-columns:1fr}footer span:last-child{display:none}h1{font-size:26px}.driverbox{padding:20px}.actions{width:100%}.actions input{flex:1}}


/* Compact desktop overview: six chassis and vehicle rows at 1920 x 1080. */
.deleteChassis{color:#c2757d!important}button:disabled{opacity:.45;cursor:not-allowed}
@media(min-width:1101px){
 aside{width:200px;padding:25px 17px}main{margin-left:200px}
 header{height:48px;padding:0 28px}.content{max-width:none;padding:20px 28px 12px}
 h1{font-size:24px;margin:4px 0}.eyebrow{font-size:9px}.heading p{font-size:11px}
 .notice{margin:12px 0;padding:8px 12px}.stats{gap:12px}.stat{padding:10px 17px;position:relative}.statTop{font-size:11px}.statIcon{padding:2px 6px}.stat strong{font-size:27px;line-height:1.35}.stat small{display:inline;margin-left:13px;font-size:10px}
 .sectiontitle{margin:15px 0 10px}.sectiontitle h2{font-size:15px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .card{padding:13px 16px;border-radius:11px}.chassisid{font-size:15px}.subline{font-size:8px;margin-top:2px}.badge{padding:4px 7px}
 .trailer{margin:10px 5px 12px;padding:7px 10px 7px 14px}.slots{gap:4px}.slot{aspect-ratio:auto;height:24px;font-size:8px}.slot.filled:after{bottom:3px}
 .capacity b{font-size:20px}.capacity b span{font-size:11px}.bar{margin:5px 0 8px;height:4px}.breakdown{min-height:25px;gap:5px}.chip{padding:3px 6px}.breakdown p{font-size:10px}
 .cardBottom{padding-top:7px;margin-top:5px;font-size:9px}.cardBottom button{padding:4px 8px;font-size:10px}
 th{padding:8px 16px}td{padding:9px 16px}footer{margin-top:15px;padding-top:10px}
}

/* Small quantity diagram, with no decorative trailer frame. */
.trailer{max-width:240px;border:0;background:transparent;border-radius:0;padding:0;margin:14px 0 12px}
.trailer:before,.trailer:after{display:none}.slots{gap:3px}.slot{aspect-ratio:auto;height:19px;border-radius:2px;font-size:7px}.slot.filled:after{display:none}
@media(min-width:1700px){.cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.card{padding:12px}.trailer{margin:12px 0 10px;max-width:220px}.chassisid{font-size:14px}.cardTop{gap:5px}.cardTop .badge{font-size:9px;white-space:nowrap}.breakdown{min-height:49px}.cardBottom{flex-wrap:wrap;gap:7px}.cardBottom>span{display:none}.cardBottom>div{display:flex;justify-content:flex-end;gap:4px;width:100%}.capacity>span{font-size:9px}.subline{font-size:7px}.chip{font-size:9px}}

/* Operations layout: 10 chassis on the left, 20 inbound vehicles on the right. */
@media(min-width:1800px){
 #dashboard{display:grid;grid-template-columns:minmax(0,1fr) 470px;column-gap:18px;align-items:start}
 #dashboard>.stats{grid-column:1/-1;grid-row:1}
 #dashboard>.chassisHeading{grid-column:1;grid-row:2}
 #dashboard>.sectiontitle{margin:14px 0 10px;min-height:28px}
 #dashboard>.vehiclesHeading{grid-column:2;grid-row:2}
 #dashboard>.cards{grid-column:1;grid-row:3;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-content:start}
 #dashboard>.panel{grid-column:2;grid-row:3;max-height:calc(100vh - 330px);overflow:auto}
 #dashboard>.cards+.emptymsg{grid-column:1;grid-row:3}
 #dashboard>.sectiontitle .legend{gap:7px;font-size:9px;max-width:65%;flex-wrap:wrap;justify-content:flex-end}
 #dashboard>.panel table{font-size:10px;table-layout:fixed}
 #dashboard>.panel th{padding:7px 5px;font-size:9px;position:sticky;top:0;z-index:1}
 #dashboard>.panel td{padding:7px 5px;height:30px;overflow-wrap:anywhere}
 #dashboard>.panel th:nth-child(1){width:25%}#dashboard>.panel th:nth-child(2){width:21%}
 #dashboard>.panel th:nth-child(3){width:12%}#dashboard>.panel th:nth-child(4){width:12%}#dashboard>.panel th:nth-child(5){width:12%}#dashboard>.panel th:nth-child(6){width:18%}
 #dashboard>.panel .badge{font-size:9px;padding:3px 4px;display:inline-block}
 .card{padding:10px}.chassisid{font-size:12px}.subline{font-size:7px}.cardTop .badge{font-size:8px;padding:3px 5px}
 .capacity{gap:4px}.capacity>span{font-size:8px}.capacity b{font-size:20px}.capacity b span{font-size:10px}
 .chip{font-size:9px}.cardBottom button{padding:4px 7px}.breakdown{min-height:49px}
}

body.loading main .content>section{opacity:.45;pointer-events:none}body.loading .actions,body.loading nav,body.loading #loginBtn{pointer-events:none}body.saving button{pointer-events:none;opacity:.6}

@media(min-width:1800px){#dashboard>.panel{max-height:calc(100vh - 390px)}#dashboard>.panel td{height:28px;padding:6px 5px;line-height:1.3}#dashboard>.panel .badge{white-space:nowrap;font-size:9px;line-height:1.2}#dashboard>.panel th{line-height:1.3}.card{min-height:210px}}

section[hidden]{display:none!important}

.compactDriver{padding:18px;max-width:640px;margin:0 auto}.vehiclePicker{border-bottom:1px solid var(--line);padding-bottom:10px}.vehiclePicker summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:13px;gap:8px;list-style:none}.vehiclePicker summary span{font-size:11px;color:#75869e;white-space:nowrap}.vehicleControls{display:flex;gap:7px;margin-top:10px}.vehicleControls select{flex:1;width:0}.vehicleControls button{white-space:nowrap;padding:8px}.dayProgress{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#728299;margin:10px 0}.dayProgress strong{font-size:16px;color:#346af2}.dayProgress small{display:inline;font-size:10px}.arrivalFields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compactDriver .arrivalFields label{margin:8px 0;gap:6px;font-size:11px}.arrivalFields input{width:100%;font-size:17px;font-weight:600;padding:10px}.arrivalFields small{font-size:10px;margin:0}.planField{display:flex;gap:4px}.planField input{min-width:0}.planField button{font-size:11px;padding:5px 8px}.tripSummary{padding:10px;background:#edf3ff;border-radius:9px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;font-size:12px}.tripSummary span{font-size:11px}.tripSummary strong{color:#346af2}.pickHeading{font-size:12px;font-weight:600;margin:12px 0 8px;display:flex;justify-content:space-between}.pickHeading span{font-size:10px;font-weight:400;color:#8995a8}.chassisPicker{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:330px;overflow:auto}.pickChassis{padding:9px;text-align:left;border-color:#dce5f2;border-radius:10px;min-width:0}.pickChassis:disabled{opacity:.55;background:#f3f5f8}.pickTitle{display:flex;justify-content:space-between;align-items:center;gap:5px}.pickTitle b{font-size:12px;overflow-wrap:anywhere}.pickTitle>span{font-size:10px;white-space:nowrap;color:#6b7c94}.miniSlots{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin:7px 0}.miniSlots i{height:8px;background:#f4f6f9;border:1px solid #dfe5ee;border-radius:2px}.miniSlots .used{background:#7da5f7;border-color:#7da5f7}.pickFoot{display:flex;justify-content:space-between;font-size:10px;color:#8290a3;gap:4px}.pickFoot b{color:#346af2;font-size:10px}.tripAllocation,.recentTrips{display:flex;flex-wrap:wrap;gap:6px;font-size:10px;color:#8290a3;margin-top:8px}.tripAllocation span,.recentTrips span{padding:4px 6px;background:#f3f6fb;border-radius:5px}.finishDay{color:#258b75;background:#f1faf6;border-color:#cfeadd}.dayDone{background:#eef9f4;padding:18px;border-radius:10px;text-align:center;color:#258b75}.dayDone p{margin-top:8px}.compactDriver .wide{min-height:42px;margin-top:8px}.vehiclePicker summary::-webkit-details-marker{display:none}
@media(max-width:700px){
 aside{padding:8px 12px}.brand{font-size:16px;gap:7px}.brandmark{font-size:21px;border-radius:7px;padding:0 6px}nav{margin-top:6px;gap:5px}nav button{padding:7px 9px;font-size:11px;min-height:32px}
 header{height:43px;padding:0 12px}.breadcrumb{font-size:10px}.breadcrumb span{margin:0 7px}.logoutButton{min-height:34px;padding:6px 11px}
 .content{padding:10px 12px}.heading{flex-direction:row;align-items:center;gap:8px}.heading .eyebrow,.heading p,footer{display:none}.heading h1{font-size:17px;letter-spacing:-.5px;margin:0}.actions{width:auto;gap:5px}.actions input{width:130px;padding:6px;font-size:11px}.actions button{font-size:10px;padding:7px}
 .notice{margin:8px 0;padding:5px 9px;font-size:10px}.stats{gap:7px}.stat{padding:9px 11px;border-radius:10px}.statTop{font-size:10px}.statIcon{display:none}.stat strong{font-size:23px;line-height:1.3}.stat strong em{font-size:10px}.stat small{font-size:9px;margin-top:3px}.sectiontitle{margin:12px 0 8px;gap:8px}.sectiontitle h2{font-size:14px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.card{padding:10px;border-radius:10px}.chassisid{font-size:12px;overflow-wrap:anywhere}.cardTop{gap:3px}.cardTop .badge{font-size:8px;padding:3px 4px;white-space:nowrap}.subline,.cardBottom>span{display:none}.capacity b{font-size:19px}.capacity b span{font-size:9px}.capacity>span{font-size:8px}.breakdown{min-height:30px;gap:3px}.chip{font-size:8px;padding:3px}.trailer{margin:9px 0}.slot{height:12px;font-size:6px}.bar{margin:6px 0}.cardBottom{padding-top:6px;margin-top:5px}.cardBottom>div{display:flex;gap:3px;flex-wrap:wrap}.cardBottom button{font-size:9px;padding:5px}.compactDriver{padding:12px;border-radius:12px}.compactDriver .chassisPicker{max-height:min(330px,calc(100dvh - 355px));min-height:90px;overscroll-behavior:contain}.compactDriver .dayProgress{margin:8px 0}
 body[data-page=driver] .heading{display:none}body[data-page=driver] .content{padding-top:0}body[data-page=driver] .notice{margin:5px 0}.driverbox h2{font-size:16px}dialog{width:calc(100% - 24px);max-width:420px;padding:18px;max-height:85dvh;overflow:auto}.modalhead h2{font-size:18px}#toast{font-size:12px;max-width:90%;width:max-content;padding:10px 15px;bottom:16px}
}

#loginScreen{display:none;min-height:100vh;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,#edf4ff,#f9fbfe 65%);padding:20px}.locked #loginScreen{display:flex}.locked>aside,.locked>main{display:none}.accessCard{background:white;border:1px solid #e5ebf5;border-radius:24px;padding:40px;width:430px;box-shadow:0 16px 60px #4162a00b}.accessCard .eyebrow{margin-top:30px;font-size:9px}.accessCard h1{font-size:25px;margin:12px 0}.accessTabs{display:flex;gap:5px;background:#f4f7fc;border-radius:10px;padding:5px;margin:25px 0 15px}.accessTabs button{flex:1;font-size:12px;border:0;background:transparent}.accessTabs button.active{color:#346af2;background:white;box-shadow:0 2px 6px #00000007}.accessCard small{font-size:10px;text-align:center;margin-top:20px}#accessError{color:#c65b65;font-size:12px}button[hidden]{display:none!important}@media(max-width:700px){.accessCard{padding:28px 22px}.locked #loginScreen{align-items:start;padding-top:60px}}

.logoutButton{font-size:12px;font-weight:600;padding:8px 12px;white-space:nowrap;color:#526782;border-color:#dce5f1}.logoutButton:hover{color:#346af2;background:#edf3ff}@media(max-width:700px){.headerRight{gap:8px}.headerRight .demo{display:none}.logoutButton{min-height:40px;padding:8px 13px}}

.undoFinishDay{display:inline-block;margin-top:10px;padding:6px 12px;min-height:32px;font-size:11px;color:#6b837a;background:transparent;border-color:#cfe2d9}.deleteWarning{color:#c05261;margin:10px 0}

.resetTools{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid #e8edf3;border-radius:10px;background:#fff;font-size:12px;color:#8090a3}.resetTools button{color:#bd5967;font-size:12px;padding:8px 12px}

.apkDownload{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:11px 8px;border:1px solid #dce5f4;border-radius:10px;color:#315fe8;text-decoration:none;font-size:13px;font-weight:600}.apkDownload:hover{background:#f2f6ff}.apkDownload span{font-size:11px;color:#8291a8;font-weight:400}
