:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1b2633;background:#f4f7f9}*{box-sizing:border-box}body{margin:0}header{background:#12395b;color:white;padding:28px max(24px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center}header h1{margin:4px 0;font-size:30px}header p{margin:0;color:#dbe7f0}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#91d0ad}.status{background:#ffffff18;border:1px solid #ffffff30;padding:10px 14px;border-radius:999px;white-space:nowrap}main{max-width:1180px;margin:28px auto;padding:0 20px 60px}.card{background:white;border:1px solid #dfe7ec;border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 6px 22px #1f3d5510}.card h2{margin-top:0;font-size:19px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}label{font-size:13px;font-weight:650;color:#485a68}input,select{display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid #cbd7de;border-radius:8px;background:white;font:inherit;color:#1b2633}.hint{font-size:12px;color:#6a7984}.drop{border:2px dashed #9db3c1;border-radius:12px;padding:34px;text-align:center;display:flex;flex-direction:column;gap:7px;cursor:pointer;background:#f8fbfd}.drop.drag{border-color:#2776aa;background:#eef8ff}.drop span{color:#6b7e8a;font-size:13px}.actions{display:flex;gap:10px;margin-top:14px}button{border:0;background:#146a9f;color:white;border-radius:8px;padding:11px 16px;font-weight:700;cursor:pointer}button.secondary{background:#e9f1f5;color:#24485f}button:disabled{opacity:.45;cursor:not-allowed}.hidden{display:none}.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.metric{background:#f5f9fb;border-radius:10px;padding:13px}.metric span{display:block;font-size:11px;text-transform:uppercase;color:#758694;margin-bottom:5px}.metric strong{font-size:16px}.alert{background:#fff7dc;border:1px solid #f1d98e;padding:10px 12px;border-radius:8px;margin:8px 0;font-size:13px}.tablewrap{overflow:auto;margin-top:14px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid #e7edf1}th{color:#60717d;background:#f8fafb}small{color:#778895}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.check{display:flex;gap:9px;align-items:center;padding:10px;border-radius:8px;background:#f4f7f8;font-size:13px}.check.ok b{color:#218653}.check.bad{background:#fff0f0}.check.bad b{color:#b33a3a}pre{background:#0f2433;color:#d7e6ef;padding:16px;border-radius:9px;overflow:auto;max-height:520px;font-size:12px}.error{color:#b33a3a;font-weight:700}@media(max-width:800px){header{align-items:flex-start;flex-direction:column}.grid{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:1fr 1fr 1fr}.checks{grid-template-columns:1fr}}@media(max-width:520px){.grid,.metrics{grid-template-columns:1fr 1fr}}
.distance-input{min-width:140px;margin:0}.route-state{font-size:12px;color:#6b7e8a}.route-state.oktext{color:#218653;font-weight:650}
button.mini{display:block;margin-top:8px;padding:7px 10px;font-size:11px;width:100%}.actions.wrap{flex-wrap:wrap}.service-statuses{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.ncm-choice{padding:12px;border:1px solid #d7e5ec;background:#f7fbfd;border-radius:9px;margin:12px 0}.ncm-choice label{max-width:620px}.ncm-choice select{margin-top:7px}.card small{display:block;margin-top:5px}@media(max-width:700px){.service-statuses{grid-template-columns:1fr}}

.establishment-box{margin-top:18px;padding:16px;border:1px solid var(--line,#d9dfe7);border-radius:12px;background:rgba(127,127,127,.035)}
.establishment-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.grid.compact{margin-top:10px}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:700;background:#eef1f5;white-space:nowrap}
.badge.okbadge{background:#e9f7ee}
.badge.warn{background:#fff3cd}
.checkbox-line{display:flex!important;align-items:center;gap:8px;padding-top:26px}
.checkbox-line input{width:auto!important}
@media(min-width:900px){#summaryCard .metrics{grid-template-columns:repeat(7,minmax(0,1fr))}}
.warntext{color:#a15c00;font-weight:600}

/* v0.10 - composição veicular */
.composition-toggle{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:16px;padding:12px 14px;background:#f7fafc;border:1px solid #dfe8ed;border-radius:10px}.composition-toggle .checkbox-line{margin:0}.composition-box{margin-top:12px;padding:14px;border:1px solid #d7e3e9;border-radius:10px;background:#fbfdfe}.composition-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.implement-grid{display:grid;gap:10px}.implement-row{display:grid;grid-template-columns:110px minmax(120px,1fr) 110px minmax(150px,1fr) 120px;gap:9px;align-items:center;padding:10px;background:#fff;border:1px solid #e3ebef;border-radius:9px}.implement-row input,.implement-row select{margin-top:0}.implement-row button{margin-top:0}.implement-row small{grid-column:2/-1;margin-top:-2px}.oktext{color:#218653}.warntext{color:#a26b00}@media(max-width:900px){.composition-toggle,.composition-head{align-items:flex-start;flex-direction:column}.implement-row{grid-template-columns:1fr 1fr}.implement-row strong{grid-column:1/-1}.implement-row small{grid-column:1/-1}.implement-row button{width:100%}}@media(max-width:520px){.implement-row{grid-template-columns:1fr}}
.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.topnav{display:flex;gap:8px;flex-wrap:wrap}.topnav a,.button-link{display:inline-flex;align-items:center;text-decoration:none;border-radius:8px;padding:10px 13px;font-weight:700}.topnav a{color:white;background:#ffffff12;border:1px solid #ffffff24}.topnav a:hover{background:#ffffff22}.logout-btn{background:#ffffff15;border:1px solid #ffffff30;color:white;padding:9px 12px}.button-link{background:#146a9f;color:white}.button-link.secondary{background:#e9f1f5;color:#24485f}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef3f6}.login-card{width:min(440px,100%);background:#fff;border:1px solid #dfe7ec;border-radius:16px;padding:28px;box-shadow:0 20px 60px #1f3d5520}.login-card h1{margin:6px 0 8px}.login-card form{display:grid;gap:14px;margin-top:20px}.login-card button{width:100%}.nav-shell{max-width:1180px;margin:0 auto;padding:18px 20px 0;display:flex;justify-content:space-between;gap:16px;align-items:center}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.toolbar label{min-width:150px}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;background:#edf2f5}.status-pill.OPEN{background:#e7f7ec;color:#176d3b}.status-pill.CLOSED{background:#e8eef8;color:#294f88}.status-pill.CANCELLED{background:#ffeaea;color:#9b2f2f}.status-pill.ERROR{background:#fff0d8;color:#9a5d00}.status-pill.DRAFT,.status-pill.VALIDATED{background:#f1f1f1;color:#555}.copy-btn{padding:6px 9px;font-size:12px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-grid .card{margin-bottom:0}.secret-ok{color:#218653;font-weight:700}.secret-warn{color:#a26b00;font-weight:700}@media(max-width:850px){.admin-grid{grid-template-columns:1fr}.header-right{justify-content:flex-start}.topnav{order:3;width:100%}}
