:root{--color-brand-400: #fe474b;--color-brand-500: #e20917;--color-brand-600: #b60610;--color-brand-700: #8e030a;--color-dark-50: #fafafa;--color-dark-100: #f4f4f5;--color-dark-200: #e4e4e7;--color-dark-300: #a1a1aa;--color-dark-400: #71717a;--color-dark-500: #52525b;--color-dark-600: #3f3f46;--color-dark-700: #27272a;--color-dark-800: #1a1a1a;--color-dark-900: #141414;--color-dark-950: #0a0a0a;--color-success: #22c55e;--color-success-bg: rgba(34, 197, 94, .14);--color-warning: #f5a524;--color-warning-bg: rgba(245, 165, 36, .14);--color-surface-base: var(--color-dark-950);--color-surface-raised: var(--color-dark-800);--color-surface-overlay: var(--color-dark-700);--color-surface-pressed: var(--color-dark-600);--color-border-subtle: var(--color-dark-700);--color-border-strong: var(--color-dark-600);--color-content-strong: var(--color-dark-50);--color-content-muted: var(--color-dark-300);--color-content-soft: var(--color-dark-400);--color-link: var(--color-brand-400);--color-header-glass: rgba(20, 20, 20, .85);--color-alert-bg: #2c0001;--color-alert-text: #fe8486;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--font-sans: "Inter Tight", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;font-family:var(--font-sans);color-scheme:dark}:root[data-theme=light]{--color-success: #16a34a;--color-warning: #b45309;--color-surface-base: #f4f4f5;--color-surface-raised: #ffffff;--color-surface-overlay: #e4e4e7;--color-surface-pressed: #d4d4d8;--color-border-subtle: #e4e4e7;--color-border-strong: #d4d4d8;--color-content-strong: #18181b;--color-content-muted: #52525b;--color-content-soft: #71717a;--color-link: var(--color-brand-600);--color-header-glass: rgba(255, 255, 255, .85);--color-alert-bg: #fee2e2;--color-alert-text: #991b1b;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--color-surface-base);color:var(--color-content-strong);-webkit-tap-highlight-color:transparent}button,input,textarea{font-family:inherit}a{color:var(--color-link)}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px,env(safe-area-inset-left)) 12px max(16px,env(safe-area-inset-right));background:var(--color-header-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border-subtle)}.app-brand{display:flex;align-items:baseline;gap:6px;min-width:0}.app-brand__logo{height:22px;width:auto}.app-brand__app{font-size:13px;color:var(--color-content-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header__user{display:flex;align-items:center;gap:10px;flex-shrink:0}.avatar{width:30px;height:30px;border-radius:999px;background:var(--color-brand-600);color:var(--color-dark-50);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.icon-btn{border:1px solid var(--color-border-subtle);background:var(--color-surface-raised);color:var(--color-content-muted);width:34px;height:34px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer}.icon-btn:active{background:var(--color-surface-overlay)}.app-tabs{display:flex;gap:6px;padding:10px max(16px,env(safe-area-inset-left)) 0 max(16px,env(safe-area-inset-right));overflow-x:auto}.app-tab{padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--color-content-muted);text-decoration:none;white-space:nowrap;border:1px solid transparent}.app-tab.active{background:var(--color-surface-raised);border-color:var(--color-border-subtle);color:var(--color-content-strong)}.app-main{display:flex;flex-direction:column;flex:1;min-width:0}.sidebar,.topbar{display:none}@media (min-width: 900px){.app-shell--sidebar .topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:var(--color-surface-raised);border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0;z-index:10}.topbar__user{display:flex;align-items:center;gap:10px}.topbar__name{font-size:13px;font-weight:600;color:var(--color-content-strong);white-space:nowrap}.app-shell--sidebar{flex-direction:row;align-items:stretch}.app-shell--sidebar .app-header,.app-shell--sidebar .app-tabs{display:none}.app-shell--sidebar .sidebar{display:flex;flex-direction:column;width:232px;flex-shrink:0;gap:20px;padding:20px 16px;background:var(--color-surface-raised);border-right:1px solid var(--color-border-subtle)}.sidebar__brand{display:flex;align-items:center;gap:8px}.sidebar__logo{height:26px;width:auto}.sidebar__app{font-size:13px;color:var(--color-content-soft)}.sidebar__nav{display:flex;flex-direction:column;gap:2px}.sidebar__link{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--color-content-muted);text-decoration:none;border:none;background:transparent;cursor:pointer;text-align:left}.sidebar__link:hover,.sidebar__link.active{background:var(--color-surface-overlay);color:var(--color-content-strong)}.sidebar__link--group span{flex:1}.sidebar__chevron{flex-shrink:0;transition:transform .15s ease;color:var(--color-content-soft)}.sidebar__chevron--collapsed{transform:rotate(-90deg)}.sidebar__submenu{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px;padding-left:28px}.sidebar__sublink{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-content-muted);text-decoration:none}.sidebar__sublink svg{width:15px;height:15px}.sidebar__sublink:hover{color:var(--color-content-strong)}.sidebar__sublink.active{background:var(--color-surface-overlay);color:var(--color-content-strong)}}.page{flex:1;width:100%;margin:0 auto;padding:16px max(16px,env(safe-area-inset-left)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-right))}.page-title{font-size:15px;font-weight:600;color:var(--color-content-muted);margin:4px 0 12px}.alert{background:var(--color-alert-bg);border:1px solid var(--color-brand-700);color:var(--color-alert-text);border-radius:var(--radius-md);padding:10px 12px;font-size:14px;margin-bottom:12px}.empty-state{color:var(--color-content-soft);text-align:center;padding:48px 16px;font-size:14px}.cards{display:flex;flex-direction:column;gap:12px}.card{display:flex;flex-direction:column;gap:12px;background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:16px}.vehicle-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.vehicle-card__info{flex:1;min-width:0}.vehicle-card__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.6em;font-size:16px;font-weight:600;line-height:1.3;color:var(--color-content-strong)}.vehicle-card__meta{font-size:13px;color:var(--color-content-soft);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:13px;font-weight:600;letter-spacing:.03em;background:var(--color-dark-50);color:var(--color-dark-950);border-radius:var(--radius-sm);padding:3px 8px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.badge-libre{background:var(--color-success-bg);color:var(--color-success)}.badge-en-uso{background:var(--color-warning-bg);color:var(--color-warning)}.field{width:100%;background:var(--color-surface-overlay);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:9px 11px;color:var(--color-content-strong);font-size:14px;resize:vertical}.field::placeholder{color:var(--color-content-soft)}.field:focus,.btn:focus-visible{outline:2px solid var(--color-brand-400);outline-offset:1px}.vehicle-card__actions{margin-top:auto;padding-top:4px}.btn{border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;font-size:14px;font-weight:600}.btn-block{width:100%;padding:12px 16px}.btn-primary{background:var(--color-brand-600);color:var(--color-dark-50)}.btn-primary:active:not(:disabled){background:var(--color-brand-700)}.btn-secondary{background:var(--color-surface-overlay);color:var(--color-content-strong);border:1px solid var(--color-border-strong)}.btn-secondary:active:not(:disabled){background:var(--color-surface-pressed)}.btn:disabled{opacity:.5;cursor:not-allowed}.user-card{display:flex;flex-direction:column;gap:10px}.user-card__row{display:flex;align-items:center;justify-content:space-between;gap:12px}.user-card__name{font-size:15px;font-weight:600}.user-card__email{font-size:13px;color:var(--color-content-soft)}.user-card__field{display:flex;align-items:center;justify-content:space-between;gap:12px}.user-card__label{font-size:13px;color:var(--color-content-muted);flex-shrink:0}.input{background:var(--color-surface-overlay);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:7px 10px;color:var(--color-content-strong);font-size:14px;text-align:right;min-width:0;flex:1}.select{width:100%;background:var(--color-surface-overlay);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:9px 10px;color:var(--color-content-strong);font-size:14px}.badge-inactivo{background:var(--color-surface-overlay);color:var(--color-content-soft)}.table-scroll{overflow-x:auto;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.table{width:100%;table-layout:fixed;border-collapse:collapse;background:var(--color-surface-raised);font-size:13px}.td-spacer{padding:0}.table th{position:relative;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-content-muted);padding:0;border-bottom:1px solid var(--color-border-subtle);white-space:nowrap;overflow:hidden}.th-content{padding:10px 14px 10px 12px;display:flex;align-items:center;gap:5px}.th-content--sortable{cursor:pointer}.th-content--sortable:hover{color:var(--color-content-strong)}.th-arrow{font-size:8px}.th-resizer{position:absolute;top:0;right:0;bottom:0;width:8px;cursor:col-resize;touch-action:none}.th-resizer:hover,.th-resizer:active{background:var(--color-brand-500)}.table td{padding:6px 12px;border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--color-surface-overlay)}.table tr.row--inactivo td{opacity:.55}.table td .input,.table td .select{min-width:0;width:100%;padding:6px 8px;font-size:13px;text-align:left}.table td.col-dominio{font-family:var(--font-mono)}.table td.col-actions{text-align:right;overflow:visible}.table td.col-accesos{overflow:visible;white-space:normal;padding-top:8px;padding-bottom:8px}.table td.col-accesos .access-list{margin-top:0}.table-add-row td{background:var(--color-surface-overlay)}.btn-sm{padding:6px 10px;font-size:12px;border-radius:var(--radius-sm)}.checkbox{width:18px;height:18px;accent-color:var(--color-brand-600);cursor:pointer}.access-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.access-empty{color:var(--color-content-soft);font-size:13px;margin:12px 0 0}.access-chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-surface-overlay);border:1px solid var(--color-border-subtle);border-radius:999px;padding:5px 6px 5px 10px;font-size:13px}.access-chip__remove{border:none;background:transparent;color:var(--color-content-soft);cursor:pointer;font-size:15px;line-height:1;padding:2px 5px;border-radius:999px}.access-chip__remove:hover{background:var(--color-surface-pressed);color:var(--color-content-strong)}.user-picker{position:relative}.user-picker .input{text-align:left}.user-picker__list{position:fixed;z-index:50;max-height:220px;overflow-y:auto;background:var(--color-surface-overlay);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:0 8px 24px #0006}.user-picker__option{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;color:var(--color-content-strong);font-size:13px;cursor:pointer;white-space:nowrap}.user-picker__option:hover{background:var(--color-surface-pressed)}.user-picker__empty{padding:8px 10px;font-size:13px;color:var(--color-content-soft)}.login-shell{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.login-shell__toggle{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}.login-card{width:100%;max-width:360px;text-align:center;background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);padding:32px 28px;border-radius:var(--radius-lg)}.login-card__logo{width:100%;max-width:220px;height:auto;margin-bottom:16px}.login-card__subtitle{color:var(--color-content-muted);font-size:14px;margin:0 0 24px}.login-card .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;width:100%}@media (min-width: 640px){.page{padding-top:24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}}
