:root{--lf-primary: #84b90c;--lf-primary-hover: #76b00c;--lf-primary-dark: #5f8e09;--lf-dark: #171917;--lf-dark-soft: #232723;--lf-text: #202320;--lf-muted: #69716a;--lf-border: #e1e5df;--lf-background: #f4f6f3;--lf-surface: #ffffff;--lf-success: #27834b;--lf-warning: #bd7815;--lf-danger: #bd3b3b;--lf-info: #296e9b;--font-ui: "Open Sans", Arial, Helvetica, sans-serif;--font-display: Arial, Helvetica, sans-serif;--radius-sm: 5px;--radius-md: 10px;--radius-lg: 16px;--shadow: 0 1px 2px rgb(18 26 19 / 5%), 0 12px 28px rgb(18 26 19 / 6%);font-family:var(--font-ui);color:var(--lf-text);background:var(--lf-background);font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{margin:0;background:var(--lf-background);line-height:1.5}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);color:var(--lf-dark);margin:0}p{margin:0}:focus-visible{outline:3px solid rgb(132 185 12 / 35%);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.button{min-height:42px;border:1px solid transparent;border-radius:8px;padding:9px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:700;font-size:14px;transition:.15s ease}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{color:#fff;background:var(--lf-primary)}.button--primary:hover{background:var(--lf-primary-hover)}.button--secondary{background:#fff;border-color:var(--lf-border);color:var(--lf-dark)}.button--secondary:hover,.button--ghost:hover{border-color:#bcc5ba;background:#f8faf7}.button--ghost{background:transparent;color:var(--lf-muted)}.button--danger{background:var(--lf-danger);color:#fff}.input{width:100%;min-height:44px;border:1px solid var(--lf-border);border-radius:8px;background:#fff;color:var(--lf-text);padding:10px 12px}.input:focus{border-color:var(--lf-primary);box-shadow:0 0 0 3px #84b90c24;outline:none}textarea.input{min-height:110px;resize:vertical}label.field{display:grid;gap:6px;font-size:13px;font-weight:700;color:#4b524c}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px}.app-shell{display:grid;grid-template-columns:254px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--lf-dark);color:#fff;padding:22px 14px 14px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 22px}.brand img{width:40px;height:40px;object-fit:contain;border-radius:8px}.brand div{display:grid;line-height:1}.brand strong{font-family:var(--font-display);font-size:21px}.brand span{font-size:10px;letter-spacing:.28em;color:var(--lf-primary);font-weight:800;margin-top:5px}.nav-group{margin-bottom:19px;display:grid;gap:3px}.nav-group__label{padding:0 12px 7px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#899189}.nav-group a{min-height:42px;padding:9px 11px;border-radius:8px;display:flex;align-items:center;gap:11px;color:#d0d5d0;font-size:13px;font-weight:600}.nav-group a:hover{background:#2a2e2a;color:#fff}.nav-group a.active{background:var(--lf-primary);color:#fff}.sidebar__footer{margin-top:auto;padding:14px 6px 2px;border-top:1px solid #343934;display:flex;align-items:center;gap:8px}.user-mini{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.user-mini>span{width:34px;height:34px;border-radius:50%;background:#313731;color:var(--lf-primary);display:grid;place-items:center;font-weight:800;font-size:12px}.user-mini div{display:grid;min-width:0}.user-mini strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-mini small{font-size:9px;color:#8e978f;overflow:hidden;text-overflow:ellipsis}.icon-button{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;cursor:pointer;color:var(--lf-muted)}.icon-button:hover{background:var(--lf-background)}.icon-button--dark{color:#aab1aa}.icon-button--dark:hover{background:#2f342f;color:#fff}.app-content{min-width:0}.topbar{height:68px;position:sticky;top:0;z-index:8;background:#fffffff0;backdrop-filter:blur(9px);border-bottom:1px solid var(--lf-border);display:flex;align-items:center;gap:16px;padding:10px 28px}.global-search{display:flex;align-items:center;flex:1;max-width:720px;border:1px solid var(--lf-border);background:#f8faf7;border-radius:9px;padding-left:13px;color:var(--lf-muted)}.global-search:focus-within{border-color:var(--lf-primary);box-shadow:0 0 0 3px #84b90c1f}.global-search input{border:0;background:transparent;outline:0;min-width:0;flex:1;padding:10px}.global-search .button{min-height:38px;border-radius:7px;margin:2px}.mode-pill{margin-left:auto;padding:7px 10px;border:1px solid var(--lf-border);border-radius:999px;color:var(--lf-muted);font-size:10px;font-weight:800;letter-spacing:.06em;display:flex;align-items:center;gap:7px;white-space:nowrap}.mode-pill span{width:7px;height:7px;border-radius:50%;background:var(--lf-primary);box-shadow:0 0 0 3px #84b90c29}.mobile-menu{display:none;border:0;background:transparent}.app-content main{padding:28px;max-width:1700px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.page-header h1{font-size:clamp(25px,3vw,34px);line-height:1.15;letter-spacing:-.02em}.page-header p{margin-top:6px;color:var(--lf-muted);max-width:760px;font-size:14px}.card{background:var(--lf-surface);border:1px solid var(--lf-border);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:20px}.card h2{font-size:17px;margin-bottom:16px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.stat-card{display:flex;align-items:center;gap:14px;padding:17px;box-shadow:none}.stat-card__icon{width:39px;height:39px;display:grid;place-items:center;border-radius:9px;color:var(--lf-primary-dark);background:#84b90c1c}.stat-card>div:last-child{display:grid}.stat-card strong{font-family:var(--font-display);font-size:25px;line-height:1.05}.stat-card span{color:var(--lf-muted);font-size:12px;margin-top:4px}.stat-card--accent{background:var(--lf-dark);border-color:var(--lf-dark);color:#fff}.stat-card--accent strong{color:#fff}.stat-card--accent .stat-card__icon{background:var(--lf-primary);color:#fff}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.bar-list{display:grid;gap:13px}.bar-row{display:grid;grid-template-columns:minmax(125px,1fr) 2fr 40px;gap:12px;align-items:center;font-size:12px}.bar-track{height:8px;background:#edf0eb;border-radius:10px;overflow:hidden}.bar-track span{display:block;height:100%;background:var(--lf-primary);border-radius:inherit}.event-list{display:grid}.event-item{display:grid;grid-template-columns:9px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid var(--lf-border);font-size:12px}.event-item:last-child{border:0}.event-item>span:first-child{width:9px;height:9px;border-radius:50%;background:var(--lf-primary)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.filters .input{width:auto;min-width:180px}.filters .search-wide{min-width:min(440px,100%);flex:1}.table-shell{overflow-x:auto;background:#fff;border:1px solid var(--lf-border);border-radius:var(--radius-md);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f6f8f5;color:#586059;font-size:10px;text-transform:uppercase;letter-spacing:.07em;text-align:left;padding:11px 14px;border-bottom:1px solid var(--lf-border)}td{padding:13px 14px;border-bottom:1px solid #edf0eb;vertical-align:middle}tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#fbfcfa}.cell-primary{font-weight:800;color:var(--lf-dark)}.cell-secondary{color:var(--lf-muted);font-size:11px;margin-top:2px}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;color:var(--lf-muted);font-size:12px}.badge{display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border-radius:999px;border:1px solid #dfe4dc;background:#f5f7f4;color:#586059;font-size:10px;font-weight:800;white-space:nowrap}.badge--success,.badge--rented,.badge--repaired{background:#edf8f1;color:var(--lf-success);border-color:#cce8d5}.badge--warning,.badge--returned,.badge--checking{background:#fff8e8;color:var(--lf-warning);border-color:#f0debb}.badge--danger,.badge--needs_repair{background:#fff0f0;color:var(--lf-danger);border-color:#efcaca}.badge--info,.badge--new{background:#eef6fb;color:var(--lf-info);border-color:#cde0ed}.badge--decommissioned{background:#f1f2f1;color:#606660}.state{min-height:180px;display:flex;justify-content:center;align-items:center;gap:10px;color:var(--lf-muted);font-size:13px}.state--empty{border:1px dashed #cfd5cd;border-radius:var(--radius-md);background:#ffffff8c}.state--error{color:var(--lf-danger);flex-direction:column}.spinner{width:23px;height:23px;border:3px solid #dfe4dc;border-top-color:var(--lf-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.asset-hero{background:var(--lf-dark);color:#fff;border-radius:var(--radius-lg);padding:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;box-shadow:var(--shadow)}.asset-hero h1{color:#fff;font-size:clamp(24px,4vw,36px)}.asset-hero__eyebrow{color:var(--lf-primary);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.asset-hero__meta{display:flex;gap:15px;flex-wrap:wrap;margin-top:12px;color:#c5cbc5;font-size:12px}.asset-tabs{display:flex;gap:5px;overflow-x:auto;padding-bottom:7px;margin-bottom:14px}.asset-tabs button{white-space:nowrap;border:0;background:transparent;padding:9px 12px;border-radius:7px;color:var(--lf-muted);cursor:pointer;font-weight:700;font-size:12px}.asset-tabs button.active{background:var(--lf-dark);color:#fff}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.detail-item{padding:13px;background:#f7f9f6;border-radius:8px}.detail-item dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--lf-muted);margin-bottom:5px}.detail-item dd{margin:0;font-size:13px;font-weight:700}.identifier-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.identifier{border:1px solid var(--lf-border);border-radius:8px;padding:12px}.identifier strong{display:block;font-size:10px;color:var(--lf-muted);margin-bottom:5px}.identifier code{overflow-wrap:anywhere;font-size:12px}.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding-bottom:17px}.timeline-item:before{content:"";position:absolute;width:1px;background:var(--lf-border);left:7px;top:13px;bottom:0}.timeline-item:last-child:before{display:none}.timeline-dot{width:15px;height:15px;border:4px solid #e5efda;background:var(--lf-primary);border-radius:50%;z-index:1}.timeline-item strong{display:block;font-size:12px}.timeline-item small{color:var(--lf-muted);font-size:10px}.counter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:15px 0}.counter{text-align:center;padding:18px 10px;border:1px solid var(--lf-border);border-radius:10px;background:#f8faf7}.counter strong{font-size:29px;display:block}.counter span{color:var(--lf-muted);font-size:11px;font-weight:700;text-transform:uppercase}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mt-card{margin-top:18px}.label-preview{width:min(100%,520px);aspect-ratio:16 / 9;background:#fff;border:2px solid var(--lf-dark);border-radius:6px;padding:22px;display:grid;grid-template-columns:1fr auto;gap:18px}.label-preview__brand{color:var(--lf-primary);font-size:22px;font-weight:900}.label-preview h3{font-size:18px;margin:8px 0}.table-sort{width:100%;padding:0;border:0;background:transparent;color:inherit;display:inline-flex;align-items:center;gap:6px;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.table-sort svg{color:#9aa19a}.data-table{min-width:0}.status-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.status-filters button{min-height:36px;padding:7px 13px;border:1px solid var(--lf-border);border-radius:999px;background:#fff;color:var(--lf-muted);cursor:pointer;font-size:12px;font-weight:700}.status-filters button:hover{border-color:#b8c4b4;color:var(--lf-text)}.status-filters button.active{border-color:#b8d681;background:#f2f8e6;color:var(--lf-primary-dark);box-shadow:inset 0 0 0 1px #dbeabf}.active-search{margin:-6px 0 14px;padding:9px 12px;border:1px solid #dce6d5;border-radius:9px;background:#f8faf7;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--lf-muted);font-size:12px}.active-search .button{min-height:32px;padding-block:4px}.result-count{color:var(--lf-muted);font-size:12px;margin-bottom:10px}.movement-label{color:var(--lf-text);font-weight:750}.back-link{display:inline-flex;align-items:center;gap:5px;margin-bottom:13px}.settings-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}.settings-shortcuts .card p{margin:7px 0 15px;color:var(--lf-muted);font-size:13px}.settings-links{display:flex;flex-wrap:wrap;gap:8px}.settings-links .button{text-decoration:none}.section-title{margin:10px 0 14px;font-size:19px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,480px) 1fr;background:#fff}.auth-panel{display:grid;align-content:center;padding:clamp(28px,7vw,72px)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:46px}.auth-brand img{width:52px;height:52px;border-radius:10px}.auth-brand strong{display:block;font-size:24px}.auth-brand span{font-size:10px;letter-spacing:.25em;color:var(--lf-primary-dark);font-weight:900}.auth-panel h1{font-size:30px;margin-bottom:7px}.auth-panel>p{color:var(--lf-muted);font-size:13px;margin-bottom:26px}.auth-panel form{display:grid;gap:15px}.auth-link{color:var(--lf-primary-dark);font-size:12px;font-weight:800}.auth-visual{min-height:100vh;background:linear-gradient(100deg,#000c08e5,#05191240),url(/luxfleet-hero.webp) center/cover;padding:58px;display:flex;align-items:flex-end}.auth-visual div{max-width:600px;color:#fff}.auth-visual h2{color:#fff;font-size:clamp(36px,6vw,72px);line-height:.97;margin-bottom:18px}.auth-visual p{color:#e3e8e2;max-width:500px}.auth-error{padding:11px;color:var(--lf-danger);background:#fff2f2;border:1px solid #f0cece;border-radius:8px;font-size:12px}.password-policy{padding:13px 14px;border:1px solid var(--lf-border);border-radius:8px;background:#f8faf7}.password-policy>strong{display:block;margin-bottom:8px;color:var(--lf-text);font-size:12px}.password-policy ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.password-policy li{display:flex;align-items:center;gap:7px;color:var(--lf-muted);font-size:11px;font-weight:600}.password-policy li:before{content:"•";width:18px;height:18px;flex:0 0 18px;display:grid;place-items:center;border-radius:50%;background:#e8ece6;color:#7b847c;font-size:12px;line-height:1}.password-policy li.is-valid{color:var(--lf-success)}.password-policy li.is-valid:before{content:"✓";color:#fff;background:var(--lf-success);font-weight:800}.password-policy li.is-error{color:var(--lf-danger)}.password-policy li.is-error:before{content:"!";color:#fff;background:var(--lf-danger);font-weight:800}.auth-panel .input[aria-invalid=true]{border-color:#df8e8e}.auth-panel form>.button{width:100%}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:50;background:#0a0f0b94;display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 28px 70px #0000003d}.modal>header{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--lf-border)}.modal>header h2{font-size:18px}.modal__body{padding:20px}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:90;display:grid;gap:8px}.toast{min-width:260px;max-width:420px;padding:12px 14px;background:var(--lf-dark);color:#fff;border-radius:9px;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;font-size:12px}.toast--success svg{color:var(--lf-primary)}.toast--error svg{color:#ff8a8a}@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app-shell{display:block}.sidebar{display:none}.mobile-menu{display:grid;place-items:center}.topbar{padding:9px 13px;height:64px}.global-search .button,.mode-pill{display:none}.app-content main{padding:18px 14px 80px}.drawer-backdrop{place-items:stretch start;padding:0}.drawer{width:min(86vw,310px);height:100%;background:var(--lf-dark);padding:22px 14px;color:#fff;overflow-y:auto;display:flex;flex-direction:column;position:relative}.drawer__close{position:absolute;right:11px;top:11px;border:0;background:#2d322d;color:#fff;border-radius:8px;width:38px;height:38px}.auth-shell{display:block}.auth-panel{min-height:100vh;padding:28px}.auth-visual{display:none}.form-grid,.split-grid{grid-template-columns:1fr}}@media(max-width:620px){.settings-shortcuts{grid-template-columns:1fr}.status-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.status-filters button{white-space:nowrap}.password-policy ul{grid-template-columns:1fr}.page-header{display:grid}.page-header>div:last-child .button{width:100%}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:13px;gap:9px}.stat-card__icon{width:34px;height:34px}.stat-card strong{font-size:21px}.counter-grid{grid-template-columns:1fr 1fr}.detail-grid,.identifier-list{grid-template-columns:1fr}.asset-hero{display:grid;padding:19px}.filters .input{width:100%}.table-shell{overflow:visible;background:transparent;border:0;box-shadow:none}table,tbody,tr,td{display:block;width:100%}thead{display:none}tbody{display:grid;gap:10px}tr{border:1px solid var(--lf-border);border-radius:10px;background:#fff;box-shadow:0 3px 12px #0f16100a;padding:8px 12px}td{display:grid;grid-template-columns:108px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid #edf0eb;overflow-wrap:anywhere}td:before{content:attr(data-label);color:var(--lf-muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}td.hide-mobile{display:none}.toast-stack{left:12px;right:12px;bottom:12px}.toast{min-width:0;width:100%}}
