@font-face{font-family:Roboto;src:url('/assets/fonts/Roboto-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Roboto;src:url('/assets/fonts/Roboto-Medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Roboto;src:url('/assets/fonts/Roboto-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{color-scheme:light;--bg:#fff;--paper:#fff;--ink:#111629;--muted:#626983;--accent:#1046ed;--pressed:#0837c8;--line:#e2e6f0;--danger:#b42318;--danger-wash:#fcecea;--wash:#eef1ff;--disabled:#e3e5eb;--disabled-ink:#7b8294;font-family:Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:20px}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{min-height:48px;padding:12px 16px;border:1px solid var(--accent);border-radius:12px;background:var(--paper);color:var(--accent);font-weight:500;cursor:pointer}
button:hover:not(:disabled){background:var(--wash)}
button:active:not(:disabled){border-color:var(--pressed);color:var(--pressed)}
button:disabled{background:var(--disabled);border-color:var(--disabled);color:var(--disabled-ink);cursor:wait}
.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.primary:hover:not(:disabled),.primary:active:not(:disabled){background:var(--pressed);border-color:var(--pressed);color:#fff}
.danger{color:var(--danger);border-color:var(--danger)}
.danger:hover:not(:disabled){background:var(--danger-wash)}
.danger.primary{background:var(--danger);border-color:var(--danger);color:#fff}
.danger.primary:hover:not(:disabled){background:#8f1c13;border-color:#8f1c13}
.text-button{border-color:transparent;background:transparent}
.text-button:disabled{background:transparent;border-color:transparent}
a{color:var(--accent);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1{font-size:32px;line-height:38px;font-weight:700;margin:0;overflow-wrap:anywhere}
h2{font-size:20px;line-height:26px;font-weight:500;margin:0 0 16px;overflow-wrap:anywhere}
h3{font-size:16px;line-height:22px;font-weight:500;margin:0 0 8px;overflow-wrap:anywhere}
p{margin:8px 0 16px;line-height:20px;overflow-wrap:anywhere}
.muted,small{color:var(--muted)}
small{font-size:12px;line-height:16px}
.workspace{min-height:100vh}
.page-width,main{width:min(1160px,calc(100% - 48px));margin-inline:auto}
.site-header{border-bottom:1px solid var(--line)}
.brand{display:block;width:max-content;max-width:100%;margin:0 auto;padding:24px 16px 28px;text-align:center;text-decoration:none;color:var(--ink);font-size:24px;line-height:30px;font-weight:700}
.brand small{display:block;margin-top:6px;font-size:14px;line-height:20px;font-weight:400}
.navigation-row{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:64px}
nav{display:flex;align-self:stretch;gap:32px}
nav a{display:flex;align-items:center;min-height:64px;padding:20px 0 17px;border-bottom:3px solid transparent;text-decoration:none;color:var(--muted);font-weight:500}
nav a[aria-current=page]{border-bottom-color:var(--accent);color:var(--accent)}
#logout{color:var(--muted);flex-shrink:0}
main{padding-block:56px 64px}
.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 32px}
.heading p{margin:12px 0 0;color:var(--muted)}
.heading>div{min-width:0}
.breadcrumb{font-size:14px;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:8px;overflow-wrap:anywhere}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.panel{padding:24px 0;margin:24px 0 32px;border-block:1px solid var(--line)}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:24px;margin:0}
.profile-grid dt{font-size:12px;color:var(--muted);margin-bottom:8px}
.profile-grid dd{margin:0;overflow-wrap:anywhere}
.search-form{display:flex;gap:12px;max-width:960px;margin:0 0 32px}
.search-form input{flex:1;min-width:0}
.search-form button{min-width:128px}
.table-wrap{width:100%;overflow-x:auto}
table{border-collapse:collapse;width:100%;text-align:left}
th{color:var(--muted);font-weight:500;font-size:14px;padding:12px 16px;border-bottom:1px solid var(--line)}
td{padding:20px 16px;border-bottom:1px solid var(--line);vertical-align:middle;overflow-wrap:anywhere;max-width:420px}
td small{display:block;margin-top:4px}
td a{font-weight:500;text-decoration:none}
td a:hover{text-decoration:underline}
td .actions button{padding:12px;white-space:normal}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px}
.vehicle-card{border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0}
.vehicle-card p{color:var(--muted)}
.vehicle-card .actions{margin-top:24px}
.tabs{display:flex;gap:16px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:24px}
.tabs button{white-space:nowrap;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted);padding:12px 0}
.tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent)}
.empty{padding:32px 0;color:var(--muted);border-block:1px solid var(--line)}
.more{margin-top:32px}
.notice{background:var(--wash);padding:16px;margin-bottom:24px;border-radius:12px;overflow-wrap:anywhere}
.notice.error{background:var(--danger-wash);color:var(--danger)}
label{display:grid;gap:8px;font-size:14px;font-weight:500;margin-bottom:24px}
input,select,textarea{min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:12px 16px;color:var(--ink);width:100%;font-weight:400}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
input:disabled,select:disabled,textarea:disabled{background:#f8f9fd;color:var(--disabled-ink)}
textarea{min-height:112px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-error{color:var(--danger);font-size:14px;line-height:20px;white-space:pre-line}
.form-error:empty{margin:0}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
dialog{border:1px solid var(--line);border-radius:16px;padding:24px;width:620px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);background:var(--paper);overflow-y:auto}
dialog::backdrop{background:#11162966}
.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}
.dialog-head h2{margin:0}
.dialog-head button{flex-shrink:0}
.check{display:flex;align-items:center;gap:12px;font-weight:400;min-height:48px}
.check input{width:24px;min-height:24px;height:24px;flex:0 0 24px;accent-color:var(--accent)}
.works-list{max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:8px 16px;margin-bottom:12px}
.works-list label{margin:0;padding:8px 0;min-height:48px;font-size:14px}
.count{font-size:12px;color:var(--muted);margin:8px 0 24px}
.detail{overflow-wrap:anywhere;line-height:22px}
.detail dl{margin:12px 0}
.detail dt{font-size:14px;font-weight:500;color:var(--muted);margin-top:16px}
.detail dd{margin:8px 0;white-space:pre-wrap}
.detail ul{padding-left:24px}
.detail li{margin:12px 0}
.status{font-size:12px;color:var(--muted)}
.login-layout{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:48px 24px}
.login-column{width:420px;max-width:100%}
.login-brand{text-align:center;margin-bottom:56px}
.login-brand h1{font-size:24px;line-height:30px}
.login-brand p{color:var(--muted);margin:6px 0 0}
.login-panel h2{font-size:32px;line-height:38px;font-weight:700;text-align:center;margin:0 0 12px}
.login-description{text-align:center;margin:0 0 40px}
.login-panel .primary{width:100%}
.login-panel .text-button{margin-top:12px;width:100%}
.login-access{text-align:center;margin:24px 0 0}
.code-input{font-size:20px;line-height:26px;letter-spacing:8px}
@media(max-width:760px){
 .page-width,main{width:calc(100% - 32px)}
 .brand{padding:20px 16px;font-size:20px;line-height:26px}
 .navigation-row{flex-wrap:wrap;gap:0 12px;min-height:64px}
 nav{gap:24px;flex-wrap:wrap;min-width:0}
 nav a{min-height:56px;padding:16px 0 13px}
 #logout{margin-left:auto;padding-inline:8px}
 main{padding-block:32px 48px}
 .heading{display:block;margin-bottom:24px}
 .heading .actions{margin-top:16px}
 .heading h1{font-size:28px;line-height:34px}
 .panel{padding-block:20px}
 .table-wrap{overflow:visible}
 table,tbody,tr,td{display:block;width:100%}
 thead{display:none}
 tr{padding:16px 0;border-bottom:1px solid var(--line)}
 td{border:0;padding:8px 0;max-width:none}
 td[data-label]:before{content:attr(data-label);display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
 .search-form{flex-wrap:wrap;margin-bottom:24px}
 .search-form input{flex-basis:100%}
 .row{grid-template-columns:1fr;gap:0}
 .profile-grid{gap:20px}
 .card-grid{grid-template-columns:1fr}
 .tabs{gap:16px;margin-top:24px}
 .login-layout{padding:32px 24px}
 .login-brand{margin-bottom:40px}
 .login-panel h2{font-size:28px;line-height:34px}
 .login-description{margin-bottom:32px}
 dialog{padding:20px;max-width:calc(100vw - 24px)}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
