/* Shared Fleet Manager visual language, adapted to the Baplie Viewer shell. */
:root{--font-sans:Tahoma,Geneva,sans-serif;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--accent:#0f766e;--accent-strong:#0b4f4b;--control-height:32px;--control-radius:3px;font-family:var(--font-sans);font-size:16px;color:var(--text-primary);background:#fff;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}[hidden]{display:none!important}h1,h2,p{margin-top:0}h1,h2{font-weight:700}h1{font-size:1rem;letter-spacing:-.02em;margin-bottom:0}h2{font-size:1.2rem;letter-spacing:-.03em;margin-bottom:12px}.muted{color:var(--text-muted)}.eyebrow{font-size:.65rem;font-weight:700;letter-spacing:1.1px;color:var(--text-muted);margin-bottom:8px}.primary,.secondary{min-height:var(--control-height);border-radius:var(--control-radius);padding:0 10px;font-size:.78rem;font-weight:700;white-space:nowrap}.primary{border:1px solid transparent;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:white;box-shadow:0 14px 30px #0f766e25}.primary:hover{box-shadow:0 20px 36px #0f766e36}.secondary{border:1px solid #94a3b838;background:#fff;color:var(--text-primary);box-shadow:none}.secondary:hover{border-color:#94a3b857;background:#f8fafc}input,select{border:1px solid #94a3b845;border-radius:var(--control-radius);background:#ffffffe0;color:var(--text-primary);min-height:var(--control-height);padding:4px 10px;width:100%;min-width:0;font-size:.88rem}input:focus,select:focus{outline:2px solid #00b2b32e;outline-offset:1px;border-color:#00b2b3c7}label{display:block;font-weight:600;font-size:.88rem;margin-bottom:7px;color:var(--text-secondary)}button:focus-visible,a:focus-visible{outline:3px solid #00b2b380;outline-offset:2px}.error{padding:12px 14px;background:#fff0f0;color:#991b1b;border:1px solid #efb6bd;border-radius:var(--control-radius);font-size:.8rem;line-height:1.5}.notice{padding:12px 14px;background:#dcfce7;color:#166534;border-radius:var(--control-radius);font-size:.8rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

.app-layout{--dashboard-footer-offset:42px;display:block;min-height:100vh;width:100%;min-width:0;overflow-x:hidden;padding:68px 0 42px;background:#fff url('/assets/port-pano.png') repeat-x center calc(100% - var(--dashboard-footer-offset));background-size:auto}.top-bar{position:fixed;z-index:40;top:0;right:0;left:0;display:flex;align-items:center;gap:18px;min-height:50px;padding:0 10px;border-bottom:1px solid #94a3b83d;background:#fffffff5;box-shadow:0 10px 28px #0f172a14;backdrop-filter:blur(18px)}#menu-toggle{width:32px;height:32px;min-height:32px;display:inline-grid;place-content:center;gap:3px;padding:4px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#f97316;font-size:25px;line-height:1}#menu-toggle:hover{background:#f1f5f9e0}#menu-toggle span{display:block;width:22px;height:3px;border-radius:1px;background:#f97316}#company-name{max-width:calc(100vw - 120px);color:#0f172a;font-size:clamp(1.2rem,3vw,1.9rem);font-weight:800;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace{position:relative;z-index:1;width:100%;min-width:0;padding:0 10px;margin:0;max-width:none}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;margin-bottom:6px}.page-header>div:first-child{display:flex;align-items:center;gap:8px}.page-header .eyebrow,.page-header #page-description{display:none}.header-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-controls label{margin:0;min-width:180px;font-size:.78rem}.header-controls select{margin-left:6px;width:auto;font-size:.78rem}.header-controls button{box-shadow:none}

.drawer-overlay{position:fixed;z-index:48;inset:0;pointer-events:none;background:#0f172a00;opacity:0;transition:opacity 180ms ease,background 180ms ease}.drawer-overlay.open{pointer-events:auto;background:#0f172a47;opacity:1}.sidebar{position:fixed;z-index:50;top:0;bottom:0;left:0;width:min(390px,92vw);height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);padding:0;background:#00b2b3;color:#fff;box-shadow:24px 0 60px #0f172a47;transform:translateX(-105%);transition:transform 220ms cubic-bezier(.22,1,.36,1)}.sidebar.open{transform:translateX(0)}.drawer-header{display:grid;align-items:center;justify-items:center;min-height:53px;padding:10px 17px;background:#f97316;color:#fff}.drawer-header button,#drawer-heading{position:relative;width:100%;min-height:33px;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#fff;box-shadow:none;font-size:1.05rem;font-weight:700;line-height:1.1;text-align:center}.drawer-header #drawer-heading:hover{background:transparent}.drawer-header .back-arrow{position:absolute;left:0;font-size:1.35rem;font-weight:700}.drawer-nav{position:relative;overflow:hidden;min-height:0}.menu-panel,.submenu-panel{position:absolute;inset:0;display:grid;align-content:start;overflow:auto;background:#00b2b3;transition:transform 440ms cubic-bezier(.22,1,.36,1)}.menu-panel{transform:translateX(0)}.sidebar.submenu-open .menu-panel{transform:translateX(-100%)}.submenu-panel{z-index:1;transform:translateX(100%)}.submenu-panel.open{transform:translateX(0)}.drawer-nav button,.drawer-nav a{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 17px;border:0;border-bottom:1px solid #05565447;border-radius:0;background:transparent;color:#fff;box-shadow:none;font-size:.95rem;font-weight:800;line-height:1.2;text-align:left;text-decoration:none}.drawer-nav button:hover,.drawer-nav button.active,.drawer-nav a:hover{background:#0556543d;color:#fff;box-shadow:none}.drawer-nav .menu-arrow,.drawer-nav .arrow{color:#ffffffd1;font-size:1.35rem;font-weight:500;line-height:1;margin-left:auto}.drawer-nav #logout{margin-top:13px}.tenant-context{padding:13px 17px;color:#fff;font-size:.78rem;line-height:1.5}.tenant-context strong{display:block}.sidebar-footer{padding:17px;font-size:.78rem;line-height:1.5}.sidebar-footer strong,.sidebar-footer>span{display:block}.sidebar-footer .logout{color:white;background:none;border:0;padding:0}.logo{color:inherit;text-decoration:none}.account-menu-info{padding:16px 17px;font-size:.78rem;line-height:1.6}.account-menu-info strong,.account-menu-info span{display:block}

.app-footer{position:fixed;z-index:38;right:0;bottom:0;left:0;min-height:42px;display:flex;align-items:center;gap:18px;padding:5px 14px;border-top:2px solid #facc15;background:#fffffff5;box-shadow:0 -10px 30px #0f172a14;font-size:.78rem}.footer-brand{display:flex;align-items:center;gap:12px;padding-right:18px;border-right:1px solid #94a3b873;white-space:nowrap}.footer-brand img{display:block;width:auto;height:26px;border:0;box-shadow:none;clip-path:inset(0 2px 0 0);transform:translateY(4px)}.footer-brand span{font-weight:700;color:#475569}.tenant-selector{position:relative;display:flex;align-items:center;gap:10px;min-width:min(560px,52vw);color:#0f172a;font-size:.88rem;font-weight:700}.tenant-selector label{margin:0;color:inherit;font-size:inherit;font-weight:400;white-space:nowrap}.tenant-selector input{flex:1;min-width:180px;font-weight:400;background:#f8fafc;font-size:.88rem;padding:4px 12px}.tenant-selector>div{position:relative;flex:1;min-width:180px}#tenant-menu{position:absolute;right:0;bottom:calc(100% + 8px);left:0;z-index:45;max-height:min(420px,calc(100vh - 120px));overflow:auto;padding:4px;border:1px solid #94a3b852;border-radius:8px;background:#fffffffa;box-shadow:0 16px 38px #0f172a29}#tenant-menu button{width:100%;min-height:30px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 7px;border:0;border-radius:4px;background:transparent;color:#0f172a;box-shadow:none;font-size:.8rem;text-align:left}#tenant-menu button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}#tenant-menu button small{max-width:110px;overflow:hidden;color:#64748b;font-size:.69rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}#tenant-menu button:hover{background:#00b2b31f;color:#075985}#tenant-menu button[aria-selected=true]{background:#facc153d}#tenant-menu p{padding:8px 9px;margin:0;color:#64748b;font-size:.78rem;font-weight:700}.footer-account{margin-left:auto;color:#64748b;font-size:.78rem;white-space:nowrap}

.data-card{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.table-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;padding:0 0 6px;border:0}.table-toolbar strong{font-size:.85rem;margin-right:8px}.table-toolbar span{font-size:.78rem}#table-search{width:220px;min-height:32px;font-size:.78rem;padding:0 10px}.table-scroll{position:relative;width:100%;max-width:100%;min-width:0;height:calc(100vh - 240px);min-height:260px;overflow:auto;overscroll-behavior:contain;border:1px solid #d1d5db;border-radius:0;background:#fff;box-shadow:0 18px 46px #0f172a1a;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#94a3b8 #e5e7eb;-webkit-overflow-scrolling:touch}table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:#fff;text-align:left}thead{position:sticky;top:0;z-index:5;background:#6b7280}th,td{border:0;border-right:1px solid #d1d5db;border-bottom:1px solid #d1d5db;padding:3px 6px;vertical-align:middle;font-size:.78rem;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}th{position:sticky;top:0;z-index:6;padding-top:6px;padding-bottom:6px;background:#6b7280;color:#fff;font-weight:800;letter-spacing:.03em;text-transform:none;white-space:nowrap}th:last-child,td:last-child{border-right:0}tbody tr{min-height:25px;background:#fff}tbody tr:nth-child(even){background:#efefef}tbody tr:hover{background:#fff3e8}tbody td{height:25px;border-bottom:0}.primary-cell{display:block;font-weight:400;color:#0f172a}.secondary-cell{display:block;color:#475569;font-size:inherit;margin-top:1px}.device-id{font-family:var(--font-sans);font-size:inherit;color:#0f172a}.badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:3px 7px;border-radius:3px;font-size:.68rem;font-weight:700;white-space:nowrap;background:#dbeafe;color:#0c4a6e}.badge.active{background:#dcfce7;color:#166534}.badge.inactive{background:#ffedd5;color:#9a3412}.row-action{border:0;background:none;color:#0f172a;font-size:.78rem;font-weight:400;padding:0;min-height:0}.row-action:hover{color:#f97316}.sort-header,th button{min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;cursor:pointer;font:inherit;line-height:1.15;letter-spacing:inherit;text-transform:inherit}th button:hover{color:white;opacity:.88;background:transparent;box-shadow:none}th button[aria-pressed=true]{text-decoration:underline;text-underline-offset:3px}.column-resize-handle,.gridColumnResizeHandle{position:absolute;z-index:7;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;user-select:none;touch-action:none}.column-resize-handle::after{content:'';position:absolute;top:20%;right:3px;width:1px;height:60%;background:#9ca3af;opacity:0}.column-resize-handle:hover::after{opacity:1}th[draggable=true]{cursor:grab}th[draggable=true]:active{cursor:grabbing}th.dragging{opacity:.55}th.drag-target{background:#fff3e8;color:#0f172a;box-shadow:inset 3px 0 0 #f97316}.empty-state{padding:26px;text-align:center;border:1px dashed #94a3b84d;border-radius:3px;color:#475569;background:#f8fafcad;font-size:.88rem;line-height:1.6}.pagination{position:sticky;bottom:46px;z-index:8;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;width:100%;max-width:100%;min-width:0;padding:6px 2px 4px;margin-bottom:2px;border-top:1px solid #d1d5db;background:#fffffffa;color:#64748b;font-size:.78rem}.pagination>div{display:inline-flex;align-items:center;gap:8px}.pagination label{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.78rem;font-weight:400;white-space:nowrap}.pagination input,.pagination select{width:auto;min-height:32px;padding:0 8px;font-size:.78rem}#page-index{width:58px}#page-size{width:72px}.pagination button{min-height:32px;padding:0 10px;font-size:.78rem}#export-csv{margin-left:auto}.table-scroll::-webkit-scrollbar{height:11px;width:11px}.table-scroll::-webkit-scrollbar-track{background:#e5e7eb}.table-scroll::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:999px;border:2px solid #e5e7eb}

.login-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:white}.login-brand{position:relative;background:#00b2b3;color:white;padding:12vh 12%;overflow:hidden}.brand-symbol{font-size:58px;display:block;margin-bottom:65px;color:white}.login-brand .eyebrow{color:#fff}.login-brand h1{font-size:42px;line-height:1.2;margin:20px 0}.login-brand>p:not(.eyebrow){font-size:16px;line-height:1.8;color:#e1ffff;max-width:340px}.brand-lines{display:flex;gap:12px;margin-top:70px;transform:skewY(-10deg);opacity:.5}.brand-lines i{display:block;width:46px;height:80px;border:1px solid #fff;border-top:12px solid #f97316}.brand-lines i:nth-child(even){margin-top:30px;height:110px}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px;background:#fff}.login-card{width:100%;max-width:360px}.login-card h2{font-size:24px}.login-card>.muted{font-size:.88rem}.login-card label{margin-top:24px;font-size:.78rem}.login-card input{min-height:38px}.login-card>.primary{margin-top:24px;width:100%;min-height:38px;font-size:.88rem}.optional{font-weight:400;color:#64748b;margin-left:5px;font-size:.69rem}.login-note{font-size:.69rem;text-align:center;color:#64748b;margin-top:24px;line-height:1.7}dialog{border:1px solid #94a3b83d;border-radius:3px;padding:20px;width:min(460px,calc(100% - 20px));max-height:calc(100dvh - 20px);overflow:auto;box-shadow:0 26px 80px #0f172a47;background:#fffffffa}dialog::backdrop{background:#0f172a73;backdrop-filter:blur(2px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.dialog-heading h2{margin:0;font-size:1.2rem}.icon-button{min-height:32px;background:none;border:0;font-size:25px;color:#0f172a;padding:0 3px;box-shadow:none}.icon-button:hover{color:#f97316}#editor-fields label{margin-top:14px}#editor-fields .checkbox-label{display:flex;align-items:center;gap:10px;font-size:.88rem}#editor-fields input[type=checkbox]{width:16px;height:16px;min-height:0;accent-color:#0f766e}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.dialog-actions button{font-size:.88rem}
@media(max-width:720px){.app-layout{--dashboard-footer-offset:82px;padding-top:66px;padding-bottom:82px}.top-bar{min-height:66px;padding:0 12px;gap:10px}.workspace{padding:8px 8px 12px}.app-footer{align-items:stretch;flex-direction:column;gap:6px;padding:7px 10px}.footer-brand{width:100%;padding-right:0;border-right:0}.tenant-selector{width:100%;min-width:0}.tenant-selector input{min-width:0}#tenant-menu{max-height:min(340px,calc(100vh - 128px))}.footer-account{position:absolute;top:12px;right:10px;max-width:38vw;overflow:hidden;text-overflow:ellipsis;font-size:.65rem}.table-scroll{height:calc(100vh - 270px);min-height:220px}.pagination{bottom:86px}.page-header{gap:8px}.table-toolbar{gap:6px}#table-search{width:180px}.table-toolbar strong{font-size:.8rem}.table-toolbar span{font-size:.72rem}.login-layout{grid-template-columns:1fr}.login-brand{padding:28px 30px}.brand-symbol{font-size:34px;margin-bottom:15px}.login-brand h1{font-size:28px}.login-brand>p:not(.eyebrow),.brand-lines{display:none}.login-panel{padding:36px 28px}.pagination #export-csv{margin-left:0}.header-controls{gap:6px}.footer-brand img{height:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* Element names used by the compact static shell. */
.drawer-header{position:relative}.drawer-header #drawer-heading{padding:0 28px}.drawer-header #close-menu{position:absolute;right:10px;top:11px;width:30px;height:30px;min-height:30px;padding:0;border:0;background:transparent;color:#fff;font-size:24px;box-shadow:none}.drawer-nav #admin-nav>span{color:#ffffffd1;font-size:1.35rem;font-weight:500;line-height:1;margin-left:auto}.account-context{margin-left:auto;display:flex;align-items:center;gap:8px;color:#64748b;font-size:.78rem;white-space:nowrap}.account-context strong{font-weight:400}.account-context span{font-size:.7rem}.tenant-combobox input{padding-right:78px}#clear-tenant{position:absolute;right:5px;top:5px;min-height:22px;padding:0 10px;border:0;border-radius:1px;background:#f1f5f9f0;color:#475569;font-size:.78rem;font-weight:800;box-shadow:none}#clear-tenant:hover{background:#e2e8f0f5}.primary-cell,.secondary-cell{display:inline;white-space:nowrap}.secondary-cell{margin:0 0 0 6px;font-size:.72rem;color:#64748b}.secondary-cell::before{content:'('}.secondary-cell::after{content:')'}#page-index{width:auto;white-space:nowrap}
@media(max-width:720px){.account-context{position:absolute;top:12px;right:10px;max-width:38vw;overflow:hidden;text-overflow:ellipsis;font-size:.65rem}.account-context span{display:none}}

#page-size{min-width:110px;width:110px}

.login-brand{background:linear-gradient(145deg,#008b8c,#006d70)}.login-card>.primary{background:#008b8c;border-color:#008b8c}.login-card>.primary:hover{background:#006d70;border-color:#006d70}.settings-card{max-width:650px;padding:24px;background:#fff;border:1px solid #cbd5e1;border-radius:3px}.settings-card label{margin:0 0 8px}.settings-card input{margin-bottom:22px}.settings-card .muted{font-size:.78rem;line-height:1.5}.settings-actions{display:flex;gap:10px;margin-top:22px}#logo-preview{display:block;max-width:100%;max-height:100px;object-fit:contain;background:#f1f5f9;padding:8px}#company-logo{max-width:180px;max-height:40px;object-fit:contain}.top-bar #company-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.login-brand .app-logo{display:block;width:86px;height:86px;margin-bottom:38px}.drawer-header #drawer-heading::before{content:"";display:block;width:32px;height:32px;flex-shrink:0;background:url("/assets/baplie-launcher.svg") center/contain no-repeat}.sidebar.submenu-open #drawer-heading::before{display:none}@media(max-width:720px){.login-brand .app-logo{width:54px;height:54px;margin-bottom:18px}}
