/* AutoSOS — a shared, restrained visual language for every Bootstrap workspace. */
:root { --canvas:#f6f8f9; --line:#e8eef0; --muted:#70828d; --mint:#e9f5ef; }
body { line-height:1.6; }
.workspace { background:var(--canvas); }
.topbar { border-bottom-color:transparent; background:#f6f8f9; }
.sidebar { border-right-color:transparent; }
.main-content { max-width:1600px; margin-inline:auto; }
.card,.stat-card,.service-tile { border-color:transparent; border-radius:20px; box-shadow:0 4px 22px rgb(24 47 65 / 3%); }
.card-body { padding:24px; }
.page-heading h1 { font-size:28px; line-height:1.25; letter-spacing:-.8px; }
.page-heading p { font-size:13px; max-width:650px; }
.page-heading { margin-bottom:26px; }
.hero-card { border:0; border-radius:26px; background:linear-gradient(115deg,#e8f4ed,#f1f7f0); box-shadow:none; }
.hero-copy p { font-size:13px; color:#648379; line-height:1.7; }
.hero-copy h2 { font-size:32px; line-height:1.22; }
.eyebrow { font-size:11px; }
.hero-note { font-size:11px; }
.hero-art { opacity:.82; }
.stat-label { font-size:12px; color:var(--muted); }
.stat-value { color:var(--ink); font-size:27px; }
.stat-card { padding:20px; }
.stat-icon,.service-icon { border-radius:14px; }
.service-tile { transition:box-shadow .18s,transform .18s; }
.service-tile:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgb(24 47 65 / 7%); }
.service-tile h3,.provider-info h3,.station-card h3 { font-size:15px; }
.service-tile p,.provider-info p,.provider-info .provider-meta { font-size:12px; }
.provider-distance { font-size:13px; }
.provider-distance small { font-size:10px; }
.service-tile .tile-arrow { opacity:.55; }
.section-top p,.section-top>a,.form-text { font-size:12px; }
.badge-soft { border-radius:30px; padding:6px 10px; font-size:11px; }
.notice { border:0; border-radius:14px; font-size:13px; }
.btn { border-radius:13px; min-height:44px; font-weight:600; }
.btn-sm { border-radius:11px; min-height:36px; }
.btn-light { border-color:#e6edef; background:#fff; }
.btn-soft { border-color:transparent; }
.form-control,.form-select { border-radius:12px; min-height:46px; border-color:#e0e8eb; font-size:14px; }
.form-label { font-size:13px; }
.form-control::placeholder { color:#9aa8b0; }
.form-section { padding:24px; border-bottom-color:#f0f4f5; }
.form-section h3 { font-size:16px; }
.nav-item-link { border-radius:13px; font-size:13px; padding-block:12px; }
.brand-subtitle,.user-role,.help-card p { font-size:11px; }
.help-card { background:#f1f7f4; border:0; border-radius:18px; }
.table { font-size:13px; }
.table thead th { font-size:11px; text-transform:none; letter-spacing:0; background:#f8fafb; }
.table td .secondary { font-size:11px; }
.table tbody td { padding-block:18px; }
.table tbody tr:hover { background:#f9fbfb; }
.table-toolbar .form-control,.table-toolbar .form-select { font-size:13px; }
.doc-row h3 { font-size:14px; }
.doc-row p,.timeline li,.timeline li small { font-size:12px; }
.timeline li strong { font-size:13px; }
.map-view { overflow:hidden; isolation:isolate; border-radius:18px; }
.map-card { overflow:hidden; }
.map-card .map-view { margin:0 16px; width:calc(100% - 32px); height:240px; }
.map-note { font-size:11px; background:transparent; }
.map-marker { box-shadow:0 3px 14px #182f4120; }
.station-card { padding:24px; }
.station-list { max-height:720px; }
.vehicle-art { height:92px; border-radius:16px; }
.trust-strip { border:0; border-radius:20px; background:transparent; }
.trust-item strong { font-size:12px; }
.trust-item small { font-size:11px; }
.small { font-size:13px; }
.modal-content { border:1px solid #ffffffb3; border-radius:26px; box-shadow:0 24px 80px #162f4130; }
.modal-header { padding:24px 28px; border-bottom-color:#edf2f3; }
.modal-body { padding:28px; }
.modal-backdrop { background:rgb(24 47 65 / 24%); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.modal-backdrop.show { opacity:1; }
.modal-backdrop.fade { transition:opacity .18s ease; }
.sidebar-overlay { backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.modal.fade .modal-dialog { transition:transform .2s ease-out; transform:translateY(14px); }
.modal.show .modal-dialog { transform:none; }
.service-picker { gap:10px; }
.service-choice { border-radius:15px; min-height:90px; border-color:#e7eef0; font-size:12px; padding:16px 6px; }
.service-choice.selected { border:1px solid #86bab0; background:#eaf5ef; }
.service-choice:focus-within { outline:3px solid #61bdac; outline-offset:2px; }
.stepper { gap:12px; font-size:13px; }
.stepper .step { flex:1; padding:12px 0; border-bottom:3px solid #e1e9eb; }
.stepper .step.current,.stepper .step.done { border-bottom-color:var(--teal); }
.stepper .step.done { color:var(--teal); }
[hidden] { display:none!important; }
.position-summary { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center; margin:0 0 18px; }
.position-summary>span { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--muted); }
.coordinate-details { padding:14px 0 0; font-size:12px; color:var(--muted); }
.coordinate-details summary { cursor:pointer; color:var(--teal); }
.request-summary { margin-bottom:24px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.request-summary p { color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.summary-service,.summary-location { display:flex; gap:10px; align-items:center; margin:14px 0; }
.summary-service .icon,.summary-location .icon { color:var(--teal); }
.summary-location { font-size:13px; color:var(--muted); }
.draft-state { font-size:11px; color:var(--muted); margin-right:auto; }
.estimate-loading { display:flex; gap:9px; align-items:center; color:var(--teal); font-size:13px; }
.wizard-layout aside { position:sticky; top:24px; }
.form-actions { gap:12px; flex-wrap:wrap; align-items:center; }
.app-toast { border-radius:16px; font-size:13px; }
.breadcrumb-label { font-size:12px; }
.login-page { min-height:100dvh; background:#f7f9fa; padding:0 5vw; }
.login-header { max-width:1200px; margin:auto; padding:30px 0; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.login-header .brand { font-size:28px; }
.login-back { color:var(--muted); display:flex; gap:8px; align-items:center; font-size:12px; }
.login-back>.icon { transform:rotate(180deg); }
.login-main { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center; max-width:1120px; margin:28px auto 42px; }
.login-story { padding:20px 0; }
.login-story>.eyebrow { display:inline-flex; gap:8px; align-items:center; background:var(--mint); color:var(--teal); padding:8px 13px; border-radius:30px; }
.login-story h1 { font-size:52px; letter-spacing:-1.8px; line-height:1.14; margin:26px 0 20px; }
.login-story h1 em { color:var(--teal); font-style:normal; }
.login-story>p { color:var(--muted); font-size:15px; line-height:1.8; max-width:410px; }
.login-illustration { position:relative; height:260px; max-width:430px; border-radius:28px; background:linear-gradient(130deg,#e9f4ed,#f2f7f0); overflow:hidden; margin:28px 0 20px; }
.login-illustration>svg { width:100%; height:100%; }
.login-visual-note { position:absolute; bottom:18px; left:18px; right:18px; background:#fffffff2; padding:12px 15px; display:flex; gap:9px; align-items:center; border-radius:14px; font-size:11px; color:#55796b; }
.login-benefits { display:flex; gap:24px; color:#748a85; font-size:12px; }
.login-benefits>span { display:flex; gap:7px; align-items:center; }
.login-benefits .icon { width:17px; height:17px; }
.login-panel { background:#fff; padding:38px; border:1px solid #edf2f3; border-radius:28px; box-shadow:0 14px 60px #193b4506; }
.login-icon { width:48px; height:48px; border-radius:16px; background:var(--mint); color:var(--teal); display:grid; place-items:center; margin-bottom:16px; }
.login-icon>.icon { width:23px; height:23px; }
.login-overline { color:var(--muted); font-size:11px; }
.login-welcome h2 { font-size:27px; letter-spacing:-.8px; margin:10px 0; }
.login-welcome p { color:var(--muted); font-size:13px; margin-bottom:26px; }
.login-phone-group { display:flex; align-items:center; border:1px solid #e0e8eb; border-radius:13px; min-height:52px; }
.login-phone-group:focus-within { border-color:#78b9af; box-shadow:0 0 0 3px #087f7510; }
.login-country { padding:0 14px; display:flex; align-items:center; gap:9px; white-space:nowrap; color:#4d6774; font-size:13px; border-right:1px solid var(--line); }
.country-mark { width:21px; height:15px; border-radius:3px; background:linear-gradient(to right,#e4954e 33.3%,#fff 33.3%,#fff 66.6%,#4d9e80 66.6%); border:1px solid #e8eeec; }
.login-phone-group>.form-control { flex:1; min-width:0; border:0; background:none; box-shadow:none; font-size:16px; padding:13px 14px; }
.login-form .form-control { min-height:52px; }
.login-consent { margin:24px 0; }
.login-consent .form-check-label { color:var(--muted); font-size:12px; line-height:1.7; }
.login-submit { width:100%; min-height:52px; justify-content:space-between; border-radius:14px; }
.login-reassurance { display:flex; align-items:center; justify-content:center; gap:7px; margin:17px 0 0; color:#90a0a6; font-size:11px; }
.login-demo { border-top:1px solid var(--line); margin-top:24px; padding-top:20px; font-size:12px; }
.login-demo>summary { cursor:pointer; color:var(--teal); }
.login-demo p { color:var(--muted); font-size:11px; margin:12px 0; }
.login-footer { text-align:center; color:#90a0a6; font-size:11px; padding:12px 0 26px; }
.otp-welcome h3 { font-size:24px; line-height:1.3; margin-bottom:10px; }
.otp-welcome p { font-size:13px; color:var(--muted); margin-bottom:24px; }
.otp-pilot { background:#fff6e5; border-radius:16px; padding:15px 18px; margin:0 0 22px; }
.otp-pilot span { display:block; font-size:11px; color:#927644; }
.otp-pilot strong { display:block; font-size:25px; letter-spacing:7px; color:#67573c; margin-top:5px; }
.otp-input { font-size:26px; letter-spacing:9px; min-height:62px; border-radius:16px; }
@media(max-width:991px) { .wizard-layout aside { position:static; } .hero-copy h2 { font-size:29px; } }
@media(max-width:991px) { .login-main { gap:36px; } .login-story h1 { font-size:42px; } .login-panel { padding:28px; } }
@media(max-width:767px) {
 .main-content { padding:20px 18px 100px; } .card-body,.form-section { padding:20px; }
 .page-heading h1 { font-size:25px; } .page-heading p { font-size:13px; }
 .hero-copy h2 { font-size:28px; } .hero-copy p { font-size:13px; }
 .hero-card { min-height:240px; } .hero-copy { max-width:90%; } .hero-art { opacity:.2; }
 .stat-card { padding:17px 14px; } .stat-label { font-size:11px; } .stat-value { font-size:25px; }
 .service-tile h3 { font-size:14px; } .service-tile p { font-size:12px; }
 .mobile-nav { border-top:0; box-shadow:0 -4px 24px #182f4107; }
 .mobile-nav a { font-size:11px; padding:7px 11px; min-width:56px; } .mobile-nav a.active { background:#e9f5ef; border-radius:14px; }
 .stepper { gap:8px; font-size:11px; } .stepper .step { gap:5px; } .step-number { width:22px; height:22px; }
 .service-choice { font-size:11px; padding:13px 4px; min-height:88px; }
 .modal-dialog { margin:16px; } .modal-header,.modal-body { padding:22px; }
 .form-actions { padding:18px 20px; } .draft-state { width:100%; }
 .table tbody td { font-size:13px; } .trust-item strong { font-size:11px; }
 .login-page { padding:0 20px; } .login-header { padding:22px 0; } .login-header .brand { font-size:24px; } .login-header .brand img { width:30px; height:30px; }
 .login-back { font-size:11px; } .login-main { grid-template-columns:1fr; gap:22px; margin:10px auto 24px; max-width:460px; }
 .login-story { padding:22px; border-radius:24px; background:linear-gradient(130deg,#e9f4ed,#f2f7f0); }
 .login-story>.eyebrow { padding:0; background:none; font-size:11px; } .login-story h1 { font-size:34px; margin:18px 0 12px; }
 .login-story>p { font-size:13px; margin-bottom:0; } .login-illustration,.login-benefits { display:none; }
 .login-panel { padding:26px 22px; border:0; border-radius:24px; } .login-welcome h2 { font-size:25px; }
 .login-footer { font-size:10px; } .login-reassurance { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .service-tile:hover { transform:none; } }

/* Private attachment previews and easy towing destinations. */
.attachment-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.attachment-wrap{position:relative}
.attachment-card{display:flex;flex-direction:column;width:150px;border:1px solid #e5eeeb;border-radius:16px;background:#fff;overflow:hidden;padding:0;text-align:left;color:var(--ink,#243c43);transition:box-shadow .15s,transform .15s}
.attachment-card:hover{box-shadow:0 6px 24px #163e3510;transform:translateY(-2px)}
.attachment-card:focus-visible,.destination-result:focus-visible{outline:3px solid #098577;outline-offset:3px}
.attachment-image{display:flex;width:100%;height:108px;align-items:center;justify-content:center;background:#f1f7f5;color:#55877c}
.attachment-image img{width:100%;height:100%;object-fit:cover}
.attachment-image>.icon{width:32px;height:32px}
.attachment-name{display:block;width:100%;padding:10px 12px 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}
.attachment-caption{padding:0 12px 10px;font-size:10px;color:#718782}
.attachment-remove{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:28px;height:28px;background:#fffffff2;border:1px solid #e5eeeb;border-radius:50%;color:#294d43}
.attachment-remove .icon{width:14px;height:14px}
.attachment-viewer{text-align:center}
.attachment-full{display:block;max-width:100%;max-height:70vh;margin:auto;object-fit:contain;border-radius:12px}
.attachment-pdf{display:block;width:100%;height:65vh;border:0;border-radius:12px;background:#f4f8f7}
.destination-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.destination-results{display:grid;gap:8px;margin-bottom:12px}
.destination-result{display:flex;align-items:center;gap:12px;width:100%;border:1px solid #e5eeeb;background:#fff;border-radius:14px;padding:14px;text-align:left;color:#29463f}
.destination-result>span{flex:1;min-width:0}
.destination-result strong{display:block;font-size:13px;font-weight:600}
.destination-result small{display:block;font-size:11px;color:#718782;margin-top:4px}
@media(max-width:576px){.attachment-card{width:138px}.attachment-image{height:100px}.attachment-full{max-height:65vh}}

/* Administrative account directory. */
.user-filter-card{padding:22px;margin-bottom:20px}
.user-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(140px,1fr)) 140px;gap:16px;align-items:end}
.user-filter-actions{display:flex;gap:8px;grid-column:1/-1}
.user-list-heading{padding:20px 24px 0}
.user-list-heading h2{font-size:16px}
.user-list-table td{vertical-align:middle}
.user-list-table .avatar{width:38px;height:38px;font-size:13px;flex-shrink:0}
.user-role-pill{display:inline-block;padding:4px 10px;border-radius:9px;background:#f0f5f7;color:#526b77;font-size:11px;font-weight:600;white-space:nowrap}
.user-row-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:190px}
.user-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 24px;border-top:1px solid var(--line)}
.user-pagination nav{display:flex;gap:8px}
@media(max-width:1000px){.user-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:576px){.user-filter-card{padding:18px}.user-filter-grid{grid-template-columns:minmax(0,1fr)}.user-list-heading{padding:18px 18px 0}.user-pagination{padding:16px 18px}.user-pagination nav{width:100%;justify-content:flex-end}}

/* Document requirements at startup. */
.startup-scope{grid-template-columns:repeat(3,minmax(0,1fr))}
.startup-document{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.startup-document strong{font-size:14px;font-weight:600;color:var(--ink)}
.startup-document p{margin:3px 0 7px;font-size:12px;color:var(--muted)}
.startup-document .form-label{font-size:11px;color:var(--muted)}
.startup-bulk{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.startup-mode-select{min-width:200px}
@media(max-width:700px){.startup-scope,.startup-document{grid-template-columns:minmax(0,1fr)}.startup-document{gap:10px}}

.mission-marker{display:grid;place-items:center;width:38px;height:38px;border:3px solid #fff;border-radius:50%;background:#087f75;color:#fff;box-shadow:0 3px 12px #163e3526}
.mission-marker.client{background:#536da8}.mission-marker.stale{background:#84959e}.mission-marker .icon{width:19px;height:19px}
