/**
 * ALOS Driver Mobile Interface (v0.18.0) — mobile-first styles.
 * Orange (#E8590C) + black branding. Large touch targets (min 48px),
 * high contrast, single-column cards. Scoped to .alos-driver.
 */

.alos-driver {
    max-width: 640px;
    margin: 0 auto;
    padding: 8px 8px 48px;
    font-size: 16px;
    line-height: 1.5;
    color: #1a1a1a;
    -webkit-text-size-adjust: 100%;
}

/* Header */
.alos-driver-head {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #111;
    border-left: 5px solid #E8590C;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 14px;
    color: #fff;
}
.alos-driver-head img {
    border-radius: 8px;
    flex: 0 0 auto;
}
.alos-driver-title {
    font-size: 19px;
    font-weight: 800;
}
.alos-driver-name {
    color: #E8590C;
    font-weight: 700;
    font-size: 14px;
}

/* Tabs */
.alos-driver-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}
.alos-driver-tab {
    flex: 1;
    text-align: center;
    text-decoration: none;
    color: #444;
    font-weight: 700;
    font-size: 16px;
    padding: 12px 8px;
    border-radius: 10px;
    border: 2px solid #ddd;
    background: #fff;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.alos-driver-tab-active {
    background: #111;
    color: #fff;
    border-color: #111;
}

/* Messages & notices */
.alos-driver-msg {
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 14px;
    font-weight: 600;
}
.alos-driver-msg-ok { background: #e6f4ea; color: #137333; border: 1px solid #a8dab5; }
.alos-driver-msg-warn { background: #fef7e0; color: #b06000; border: 1px solid #f5d67b; }
.alos-driver-msg-err { background: #fce8e6; color: #a50e0e; border: 1px solid #f5a3a3; }
.alos-driver-notice {
    background: #fff8e1;
    border: 1px solid #f5d67b;
    border-radius: 10px;
    padding: 16px;
}
.alos-driver-empty {
    color: #666;
    padding: 24px 8px;
    text-align: center;
}
.alos-driver-muted { color: #666; font-size: 14px; }

/* Headings */
.alos-driver-h2 { font-size: 20px; margin: 4px 0 12px; }
.alos-driver-h3 { font-size: 17px; margin: 18px 0 10px; }

/* Cards */
.alos-driver-card {
    background: #fff;
    border: 1px solid #e3e3e3;
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
a.alos-driver-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.alos-driver-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 17px;
}

/* Badges */
.alos-driver-badge {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    background: #eee;
    color: #444;
    white-space: nowrap;
}
.alos-driver-badge-green { background: #e6f4ea; color: #137333; }
.alos-driver-badge-orange { background: #fef7e0; color: #b06000; }
.alos-driver-badge-red { background: #fce8e6; color: #a50e0e; }

/* Stops list */
.alos-driver-stops {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
}
.alos-driver-stops li { margin-bottom: 8px; }
.alos-driver-stop {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
    background: #f8f8f8;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    padding: 10px 12px;
    min-height: 56px;
}
.alos-driver-stop-num {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}
.alos-driver-stop-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Big touch-friendly buttons (min 48px) */
.alos-driver-bigbtn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 60px;
    font-size: 19px;
    font-weight: 800;
    color: #fff;
    background: #E8590C;
    border: none;
    border-radius: 12px;
    padding: 14px 18px;
    cursor: pointer;
    margin: 14px 0 4px;
}
.alos-driver-bigbtn:active { background: #c74a08; }
.alos-driver-bigbtn-green { background: #137333; }
.alos-driver-bigbtn-green:active { background: #0d5c28; }

.alos-driver-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    color: #fff;
    background: #E8590C;
    border: none;
    border-radius: 10px;
    padding: 10px 20px;
    cursor: pointer;
}
.alos-driver-btn-ghost {
    background: #fff;
    color: #333;
    border: 2px solid #ddd;
}
.alos-driver-btn-danger { background: #a50e0e; }
.alos-driver-action { margin: 0; }

/* Forms */
.alos-driver label {
    display: block;
    font-weight: 700;
    margin-bottom: 4px;
    font-size: 15px;
}
.alos-driver input[type="text"],
.alos-driver input[type="file"],
.alos-driver textarea {
    width: 100%;
    font-size: 16px;
    padding: 12px;
    border: 2px solid #ddd;
    border-radius: 10px;
    background: #fff;
    box-sizing: border-box;
}
.alos-driver input[type="file"] { padding: 8px; }
.alos-driver textarea { resize: vertical; }
.alos-driver p { margin: 12px 0; }
.alos-driver-hint {
    display: block;
    font-size: 13px;
    color: #666;
    margin-top: 4px;
}

/* Fail form */
.alos-driver-fail summary {
    font-weight: 700;
    font-size: 16px;
    color: #a50e0e;
    cursor: pointer;
    padding: 6px 0;
    min-height: 44px;
}

/* Detail layout */
.alos-driver-route > div {
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}
.alos-driver-route > div:last-child { border-bottom: none; }
.alos-driver-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #E8590C;
}
.alos-driver-contact { font-size: 15px; margin-top: 4px; }
.alos-driver-contact a { color: #1a73e8; font-weight: 700; }
.alos-driver-note {
    background: #fff8e1;
    border-left: 4px solid #E8590C;
    border-radius: 0 8px 8px 0;
    padding: 8px 12px;
    margin-top: 8px;
    font-size: 14px;
}
.alos-driver-kv {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    font-size: 15px;
}
.alos-driver-kv th {
    text-align: left;
    color: #666;
    font-weight: 600;
    padding: 6px 8px 6px 0;
    vertical-align: top;
    white-space: nowrap;
}
.alos-driver-kv td { padding: 6px 0; }

/* Timeline */
.alos-driver-timeline {
    list-style: none;
    margin: 0;
    padding: 0 0 0 4px;
}
.alos-driver-timeline li {
    position: relative;
    padding: 0 0 14px 22px;
    border-left: 3px solid #E8590C;
    margin-left: 6px;
    font-size: 15px;
}
.alos-driver-timeline li:last-child { padding-bottom: 0; }

/* Stats */
.alos-driver-stats {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}
.alos-driver-stat {
    background: #111;
    color: #fff;
    border-radius: 12px;
    padding: 16px 8px;
    text-align: center;
    border-top: 4px solid #E8590C;
}
.alos-driver-stat-num {
    font-size: 28px;
    font-weight: 800;
    color: #E8590C;
}
.alos-driver-stat-label {
    font-size: 12px;
    color: #ccc;
    margin-top: 4px;
}

/* Login */
.alos-driver-login {
    background: #fff;
    border: 1px solid #e3e3e3;
    border-radius: 12px;
    padding: 20px;
}
.alos-driver-login input[type="text"],
.alos-driver-login input[type="password"] {
    min-height: 48px;
}

/* v0.22.0: subtle GPS capture note under status-advance buttons. */
.alos-gps-note {
    display: block;
    font-size: 12px;
    color: #666;
    min-height: 16px;
    margin-top: 4px;
}
