:root{--background: 210 40% 98%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--primary: 212 95% 48%;--primary-soft: 212 100% 96%;--primary-foreground: 0 0% 100%;--accent: 28 100% 56%;--muted: 210 40% 96%;--muted-foreground: 215 16% 40%;--success: 152 62% 42%;--destructive: 0 84% 60%;--border: 214 32% 90%;--radius: 10px;--shadow: 0 8px 24px -12px hsl(212 60% 30% / .18)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:hsl(var(--background));color:hsl(var(--foreground));font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{width:100%;min-height:40px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));padding:0 12px;outline:none}textarea{min-height:96px;padding:10px 12px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.button{min-height:38px;border:1px solid transparent;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;font-weight:600}.button:disabled{opacity:.7;cursor:wait}.button-block{width:100%}.button-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.button-secondary{background:hsl(var(--card));border-color:hsl(var(--border));color:hsl(var(--foreground))}.button-danger{background:hsl(var(--destructive));color:#fff}.panel{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:var(--shadow)}.section-panel,.form-panel{padding:16px}.notice{margin-bottom:16px;padding:10px 12px;border-radius:var(--radius);border:1px solid hsl(var(--border))}.notice-error{background:hsl(var(--destructive) / .08);border-color:hsl(var(--destructive) / .25);color:hsl(var(--destructive))}.notice-success{background:hsl(var(--success) / .09);border-color:hsl(var(--success) / .25);color:hsl(var(--success))}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{padding:18px;border-right:1px solid hsl(var(--border));background:linear-gradient(180deg,hsl(var(--card)),hsl(var(--primary-soft)));display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:12px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:grid;place-items:center;font-weight:800}.brand-title{font-size:15px;font-weight:700}.brand-subtitle{color:hsl(var(--muted-foreground))}.nav-list{display:grid;gap:8px}.nav-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border-radius:var(--radius);color:hsl(var(--foreground));text-decoration:none;border:1px solid transparent}.nav-item:hover,.nav-item.is-active{background:hsl(var(--card));border-color:hsl(var(--border))}.nav-item.is-active{color:hsl(var(--primary));font-weight:700}.sidebar-footer{margin-top:auto;display:grid;gap:12px}.admin-chip{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:var(--radius);padding:12px}.admin-name{font-weight:700}.admin-meta{color:hsl(var(--muted-foreground))}.content{padding:20px}.page{display:grid;gap:16px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.page-header h2{margin:0 0 4px;font-size:20px}.page-header p{margin:0;color:hsl(var(--muted-foreground))}.page-header-split{align-items:center}.toolbar{display:flex;gap:10px;align-items:center}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{padding:14px}.stat-label{color:hsl(var(--muted-foreground));margin-bottom:8px}.stat-value{font-size:20px;font-weight:700}.stat-hint{margin-top:6px;color:hsl(var(--muted-foreground));font-size:12px}.content-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-heading h3{margin:0;font-size:15px}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-box{border:1px solid hsl(var(--border));border-radius:var(--radius);padding:14px;background:hsl(var(--background));display:grid;gap:6px}.metric-box span{color:hsl(var(--muted-foreground))}.metric-box strong{font-size:18px}.compact-list{display:grid;gap:10px}.compact-item{display:flex;justify-content:space-between;gap:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:12px;background:hsl(var(--background))}.compact-main,.compact-side{display:grid;gap:4px}.compact-main span,.compact-main small{color:hsl(var(--muted-foreground))}.compact-side{text-align:right;justify-items:end}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.badge-blue{background:hsl(var(--primary) / .12);color:hsl(var(--primary))}.badge-green{background:hsl(var(--success) / .12);color:hsl(var(--success))}.badge-orange{background:hsl(var(--accent) / .14);color:hsl(var(--accent))}.badge-red{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.badge-gray{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px;border-bottom:1px solid hsl(var(--border));text-align:left;vertical-align:top}.data-table th{position:sticky;top:0;background:hsl(var(--card));z-index:1;font-size:12px;color:hsl(var(--muted-foreground))}.data-table td strong,.data-table td small{display:block}.data-table td small{margin-top:4px;color:hsl(var(--muted-foreground))}.vehicle-cell{display:flex;align-items:center;gap:12px;min-width:220px}.vehicle-thumb{width:72px;height:54px;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--background));overflow:hidden;flex-shrink:0}.vehicle-thumb img{width:100%;height:100%;object-fit:cover;display:block}.vehicle-thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;padding:6px;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.row-actions{display:grid;gap:8px;min-width:160px}.empty-state{min-height:180px;display:grid;place-items:center;gap:12px;padding:24px;text-align:center}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid hsl(var(--border));border-top-color:hsl(var(--primary));animation:spin .8s linear infinite}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,hsl(var(--primary) / .12),transparent 28%),radial-gradient(circle at bottom right,hsl(var(--accent) / .1),transparent 24%),hsl(var(--background))}.login-card{width:min(420px,100%);padding:24px;border-radius:18px;border:1px solid hsl(var(--border));background:hsl(var(--card));box-shadow:var(--shadow)}.login-hero{display:flex;gap:14px;align-items:center;margin-bottom:18px}.login-hero h1{margin:0 0 4px;font-size:22px}.login-hero p{margin:0;color:hsl(var(--muted-foreground))}.login-icon{width:48px;height:48px;border-radius:14px;background:hsl(var(--primary-soft));color:hsl(var(--primary));display:grid;place-items:center}.form-grid{display:grid;gap:14px}.field{display:grid;gap:6px}.field span{font-weight:600}.field-hint{color:hsl(var(--muted-foreground));line-height:1.5}.form-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.field-span-2{grid-column:span 2}.field-span-4{grid-column:1 / -1}.checkbox-field{min-height:40px;grid-template-columns:auto 1fr;align-items:center;gap:10px}.checkbox-field input{width:16px;min-height:16px;margin:0;box-shadow:none}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.permission-item{border:1px solid hsl(var(--border));border-radius:var(--radius);padding:10px 12px;background:hsl(var(--background))}.row-actions-inline{display:flex;gap:8px;flex-wrap:wrap}.upload-preview-card{width:100%;min-height:180px;border:1px dashed hsl(var(--border));border-radius:14px;background:hsl(var(--background));overflow:hidden}.upload-preview-image{width:100%;height:100%;min-height:180px;object-fit:cover;display:block}.upload-preview-empty{min-height:180px;display:grid;place-items:center;padding:16px;text-align:center;color:hsl(var(--muted-foreground))}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172961;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(100%,860px);max-height:calc(100vh - 48px);overflow:auto;border:1px solid hsl(var(--border));border-radius:18px;background:hsl(var(--card));box-shadow:0 24px 60px -24px #0f172980}.modal-md{max-width:520px}.modal-lg{max-width:860px}.modal-xl{max-width:1080px}.modal-header,.modal-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px}.modal-header{border-bottom:1px solid hsl(var(--border))}.modal-header h3{margin:0 0 4px;font-size:16px}.modal-header p{margin:0;color:hsl(var(--muted-foreground))}.modal-body{padding:18px}.modal-footer{border-top:1px solid hsl(var(--border));justify-content:flex-end}.modal-close{min-width:74px}.login-note{margin-top:16px;padding-top:14px;border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));display:grid;gap:4px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1080px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.form-grid-4,.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid hsl(var(--border))}}@media (max-width: 640px){.content{padding:14px}.stats-grid{grid-template-columns:1fr}.toolbar,.page-header,.page-header-split{flex-direction:column;align-items:stretch}.form-grid-4,.permission-grid{grid-template-columns:1fr}.field-span-2,.field-span-4{grid-column:auto}.modal-backdrop{padding:12px}.modal-header,.modal-footer{flex-direction:column;align-items:stretch}}
