@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--teal: #0E4D64;--teal-700: #0a3c4f;--amber: #F2A900;--ink: #10262E;--muted: #5b6b71;--mist: #F5F7F8;--surface: #ffffff;--line: #D8E0E3;--online: #1f9d55;--offline: #9aa5a9;--danger: #b3261e;--font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;--radius: 12px;--shadow: 0 1px 2px rgba(16,38,46,.06), 0 8px 24px rgba(16,38,46,.06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--mist);-webkit-font-smoothing:antialiased}button,input{font-family:inherit}.login{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 500px at 50% -10%,rgba(14,77,100,.1),transparent 60%),var(--mist)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:32px 28px}.brand{display:flex;align-items:center;gap:10px;color:var(--teal)}.brand .wordmark{font-size:20px;font-weight:700;letter-spacing:-.02em}.login-lede{margin:14px 0 24px;color:var(--muted);font-size:14px;line-height:1.5}.field{display:grid;gap:6px;margin-bottom:16px}.field label{font-size:13px;font-weight:600;color:var(--ink)}.field input{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:15px;color:var(--ink);background:#fff;transition:border-color .12s,box-shadow .12s}.field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #0e4d6426}.btn-primary{width:100%;height:46px;border:0;border-radius:10px;background:var(--teal);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .12s}.btn-primary:hover:not(:disabled){background:var(--teal-700)}.btn-primary:disabled{opacity:.6;cursor:default}.form-error{margin:0 0 16px;padding:10px 12px;border-radius:10px;background:#fdecea;color:var(--danger);font-size:13px}.appbar{height:56px;background:var(--teal);color:#fff;display:flex;align-items:center;gap:12px;padding:0 16px}.appbar .brand{color:#fff}.appbar .wordmark{font-size:16px}.appbar .spacer{flex:1}.appbar .who{font-size:14px;color:#ffffffd9;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-ghost{height:34px;padding:0 14px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:transparent;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.btn-ghost:hover{background:#ffffff1f}.page{max-width:720px;margin:0 auto;padding:24px 16px 48px}.page-title{font-size:15px;font-weight:600;color:var(--muted);margin:4px 0 14px}.vehicles{list-style:none;margin:0;padding:0;display:grid;gap:10px}.vehicle{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.vehicle .v-name{font-weight:600;font-size:15px}.vehicle .v-meta{color:var(--muted);font-size:13px;margin-top:2px}.vehicle .v-main{flex:1;min-width:0}.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--mist);color:var(--muted);white-space:nowrap}.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--offline)}.pill.is-online{background:#1f9d551f;color:#157347}.pill.is-online .dot{background:var(--online)}.pill.is-offline{background:var(--mist);color:var(--muted)}.state{color:var(--muted);font-size:14px;padding:24px 4px}.state-empty{text-align:center;padding:48px 16px}.vehicle--btn{width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}.vehicle--btn:hover{border-color:var(--teal)}.btn-ghost--ink{border-color:var(--line);color:var(--teal);background:#fff}.feed-title{font-size:18px;margin:12px 0 16px}.feed-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.feed-item{display:flex;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.feed-msg{font-weight:500}.feed-time{color:var(--muted);font-size:13px;white-space:nowrap}@media (max-width: 420px){.page{padding:16px 12px 40px}.appbar .who{max-width:28vw}}.v-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.v-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:14px 0 8px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.v-detail>div{min-width:0}.v-detail dt{font-size:12px;color:var(--muted);font-weight:600;margin:0}.v-detail dd{margin:2px 0 0;font-size:14px;word-break:break-word}.v-detail a{color:var(--teal)}.feed-subtitle{font-size:13px;font-weight:600;color:var(--muted);margin:18px 0 8px}@media (max-width: 420px){.v-detail{grid-template-columns:1fr}}.note-section{margin:18px 0}.note-section h3{font-size:14px;margin:0 0 10px}.note-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}.note-item{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.note-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.note-form select,.note-form input{height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px}.btn-sm{height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--danger);cursor:pointer}
