:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.pageCard__page{flex:1;min-height:0;display:flex;flex-direction:column}.pageCard__card{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--color-bg-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);overflow:auto}.pageCard__header{padding:12px 12px 0;flex-shrink:0}.pageCard__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:var(--line-height-tight)}.pageCard__stepsBar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:nowrap}.pageCard__steps{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap;flex-shrink:0}.pageCard__stepGroup{display:inline-flex;align-items:center;gap:4px}.pageCard__stepSeparator{color:var(--color-neutral-400);font-size:var(--font-size-base);line-height:1;-webkit-user-select:none;user-select:none}.pageCard__stepBtn.iconbtn{outline:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.pageCard__stepBtn.iconbtn:focus-visible{outline:none}.pageCard__stepBtn.iconbtn:disabled{opacity:.45;cursor:not-allowed}.pageCard__stepsMeta{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.pageCard__tabs{display:flex;height:24px;background:var(--color-bg);border-radius:var(--border-radius-md);border:var(--border-width) solid var(--color-border);padding:2px;gap:0}.pageCard__tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:100%;padding:0 12px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--border-radius-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;outline-offset:0;-webkit-tap-highlight-color:transparent;transition:all var(--transition-fast)}.pageCard__tab:focus,.pageCard__tab:focus-visible{outline:none;box-shadow:none}.pageCard__tab:hover:not(.pageCard__tab--active){color:var(--color-text)}.pageCard__tab--active{background:var(--color-brand-50);border:var(--border-width) solid var(--color-brand-200);color:var(--color-text);box-shadow:var(--shadow-xs)}.pageCard__tab--active:focus,.pageCard__tab--active:focus-visible,.pageCard__tab--active:hover{border-color:var(--color-brand-200)!important;outline:none;box-shadow:var(--shadow-xs)}.pageCard__tabCount{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);min-width:16px;text-align:center;padding:0 4px;border-radius:var(--border-radius-pill);line-height:14px}.pageCard__tab--active .pageCard__tabCount{background:var(--color-neutral-100);color:var(--color-text-muted)}.pageCard__tab:not(.pageCard__tab--active) .pageCard__tabCount{color:var(--color-neutral-400)}.pageCard__tabsWrapper{padding:0 12px 12px;border-bottom:1px solid var(--color-border)}.pageCard__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px 11px;border-bottom:1px solid var(--color-border);margin-bottom:8px;flex-wrap:nowrap}.pageCard__tabsWrapper+.pageCard__toolbar,.pageCard__tabsWrapper+div>.pageCard__toolbar{padding-top:12px}@media(max-width:900px){.pageCard__toolbar{flex-wrap:wrap}}.pageCard__toolbar h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);white-space:nowrap}.pageCard__body{flex:1;min-height:0;padding:12px;display:flex;flex-direction:column;margin-top:0}.list__ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;flex:1;min-height:0}.list__row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;padding:10px 12px}.list__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center}.list__content{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;flex:1}.list__content--single{justify-content:center}.list__primary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.list__secondary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--color-text-light);min-width:0}.list__actions{display:inline-flex;gap:8px;flex-shrink:0}.list__item--selected .list__row.iconbtn,.list__item--selected .list__row.iconbtn:hover,.list__item--selected .list__row.iconbtn:focus-visible{background:var(--color-selected-bg)!important;border-color:var(--color-brand-200)!important;color:var(--color-text)!important}.list__item--selected .list__row.iconbtn strong{color:var(--color-text)!important}.list__empty{color:var(--color-text-muted);padding:16px 4px;font-size:var(--font-size-sm)}.list__footer{margin-top:8px;padding-top:6px;border-top:1px dashed var(--color-border);display:flex;gap:8px}.fleet__page,.fleet__content{position:relative;z-index:auto}.fleet__panel{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:10px;padding:12px;display:flex;flex-direction:column;min-height:180px}.fleet__panelHeader{position:sticky;top:0;z-index:200;background:var(--color-bg-panel);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--color-brand-50);flex-wrap:nowrap}@media(max-width:900px){.fleet__panelHeader{flex-wrap:wrap}}.headerControls{display:inline-flex;align-items:center;gap:32px;flex-wrap:nowrap;white-space:nowrap}.headerControls>*{flex:0 0 auto}.headerControls .searchInput{height:24px;border-radius:999px;padding:0 36px 0 28px;font-size:13px;font-family:inherit;line-height:24px;position:relative;z-index:0}.headerControls .searchInput::placeholder{color:#475569;font-size:13px;font-family:inherit;opacity:1;font-weight:600}.headerControls .searchClearBtn{position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:6px;color:#475569;z-index:2;line-height:1}.headerControls .searchClearBtn:disabled{display:none}.headerControls .searchClearBtn svg{width:14px;height:14px;display:block;overflow:visible}.headerControls .searchIcon{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;pointer-events:none;color:#0f172a;z-index:1}.fleet__panelHeader button[role=switch]{outline:none;-webkit-tap-highlight-color:transparent}.fleet__panelHeader button[role=switch]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-focus-ring);border-radius:999px}.headerControls .iconbtn:focus-visible,.headerControls .iconbtn--ghost:focus-visible{outline:none}.fleet__list{list-style:none;margin:0;padding:0;flex:1;overflow:auto;min-height:0}.listHeading{font-size:16px;font-weight:700;color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:6px 8px;margin:0 0 8px}.form{display:flex;flex-direction:column;gap:12px}.formRow{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:12px}.formLabel{color:var(--color-text);font-weight:600}.formControl input,.formControl select,.formControl textarea{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);background:var(--color-bg)}.formHelp{color:var(--color-text-muted);font-size:12px}.formError{color:var(--color-danger-text);font-size:12px}.formActions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.findCode,.findCode__inputWrap{position:relative}.findCode__suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 6px 22px #0000001f;max-height:260px;overflow:auto;z-index:30}.findCode__item{padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:8px}.findCode__item:hover{background:var(--color-brand-50)}.findCode__meta{color:var(--color-text-muted);font-size:12px}.drawerBackdrop{position:fixed;inset:0;background:#0f172a66;-webkit-backdrop-filter:saturate(120%) blur(2px);backdrop-filter:saturate(120%) blur(2px);z-index:1000}.drawerPanel{position:fixed;top:0;right:0;height:100vh;max-width:min(720px,90vw);width:540px;background:var(--color-bg);box-shadow:-8px 0 24px #0000002e;z-index:1001;display:flex;flex-direction:column}.drawerPanel .drawerHeader{position:sticky;top:0;z-index:1;background:var(--color-bg);border-bottom:1px solid var(--color-border)}body.drawer-open{overflow:hidden}.drawerBody{flex:1 1 auto;min-height:0;overflow:auto;overflow-x:hidden;padding:12px 16px}.drawerPanel{overflow-x:hidden}.formRow{grid-template-columns:160px minmax(0,1fr)}.formControl{min-width:0}.formControl input,.formControl select,.formControl textarea{width:100%;max-width:100%;box-sizing:border-box}.formError{overflow-wrap:anywhere}@media(min-height:520px){.formActions{position:sticky;bottom:0;background:linear-gradient(var(--color-bg),var(--color-bg));padding-bottom:10px}}.fleet__list>li>.iconbtn{width:100%}.fleet__list li.fleet__listItem--selected .iconbtn,.fleet__list li.fleet__listItem--selected .iconbtn:hover,.fleet__list li.fleet__listItem--selected .iconbtn:focus-visible{background:var(--color-selected-bg)!important;border-color:var(--color-brand-200)!important;color:var(--color-text)!important}.fleet__list li.fleet__listItem--selected .iconbtn strong{color:var(--color-text)!important}.detailPanel{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px;position:sticky;top:12px}.detailPanel__title{margin:0 0 4px;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:var(--line-height-tight)}.detailPanel__row{display:flex;flex-direction:column;gap:2px}.detailPanel__label{font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-neutral-400)}.detailPanel__value{font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium)}.detailPanel__divider{border:none;border-top:1px solid var(--color-border);margin:2px 0}.detailPanel__sectionTitle{font-size:11px;font-weight:var(--font-weight-bold);color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}.detailPanel__footer{display:flex;flex-direction:column;gap:2px}.detailPanel__footerLabel{font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-neutral-400)}.detailPanel__footerValue{font-size:var(--font-size-xs);color:var(--color-text-light)}.detailPanel__empty{color:var(--color-neutral-400);font-size:var(--font-size-sm)}.confirmDialog__backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirmDialog__panel{background:var(--color-bg, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--border-radius-lg, 10px);padding:24px 28px;max-width:420px;width:90vw;box-shadow:0 12px 40px #0000002e}.confirmDialog__title{margin:0 0 12px;font-size:15px;font-weight:var(--font-weight-bold, 700);line-height:var(--line-height-tight, 1.25)}.confirmDialog__message{margin:0 0 20px}.confirmDialog__message p{margin:0;font-size:var(--font-size-base, 14px);color:var(--color-text-light, #475569);line-height:1.6}.confirmDialog__actions{display:flex;gap:8px;justify-content:flex-end}.schedule__page,.schedule__content{position:relative;z-index:auto}.schedule__twoCol{display:grid;grid-template-columns:280px 1fr;gap:12px;align-items:start}@media(max-width:900px){.schedule__twoCol{grid-template-columns:1fr}}.schedule__panel{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:10px;padding:12px;display:flex;flex-direction:column;min-height:180px}.schedule__detailCard{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px;position:sticky;top:12px}.schedule__detailCard h4{margin:0 0 4px;font-size:13px;font-weight:700;color:#94a3b8}.schedule__detailRow{display:flex;flex-direction:column;gap:2px}.schedule__detailLabel{font-size:11px;font-weight:600;color:#94a3b8}.schedule__detailValue{font-size:14px;color:var(--color-text);font-weight:500}.schedule__detailDivider{border:none;border-top:1px solid var(--color-border);margin:2px 0}.schedule__dayPills{display:flex;gap:4px;flex-wrap:wrap}.schedule__dayPill{display:inline-flex;align-items:center;justify-content:center;width:34px;height:26px;border-radius:5px;font-size:11px;font-weight:700}.schedule__dayPill--on{background:var(--color-selected-bg, #eef2ff);border:1px solid var(--color-brand-200, #c7d2fe);color:var(--color-text, #0f172a)}.schedule__dayPill--off{background:#f8fafc;border:1px solid #e5e7eb;color:#cbd5e1}.schedule__legSeq{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-selected-bg, #eef2ff);border:1px solid var(--color-brand-200, #c7d2fe);font-size:11px;font-weight:700;color:var(--color-text, #0f172a);flex-shrink:0}.schedule__route{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:15px}.schedule__routeArrow{color:#94a3b8;font-size:13px}.schedule__panelHeader{position:sticky;top:0;z-index:200;background:var(--color-bg-panel);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--color-brand-50);flex-wrap:nowrap}@media(max-width:900px){.schedule__panelHeader{flex-wrap:wrap}}.schedule__panelHeader .headerControls{display:inline-flex;align-items:center;gap:32px;flex-wrap:nowrap;white-space:nowrap}.schedule__panelHeader .headerControls>*{flex:0 0 auto}.schedule__list{list-style:none;margin:0;padding:0;flex:1;overflow:auto;min-height:0}.schedule__sectionHeading{margin:4px 0 8px;font-size:13px;font-weight:700;color:#475569}.schedule__legItem{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:7px;margin-bottom:6px;background:var(--color-bg, #fff);transition:border-color .15s}.schedule__legItem:hover{border-color:var(--color-brand-200, #c7d2fe)}.schedule__legBody{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.schedule__legMeta{font-size:12px;color:#64748b;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.schedule__legMetaDot{color:#cbd5e1}.schedule__list li.schedule__listItem--selected .iconbtn,.schedule__list li.schedule__listItem--selected .iconbtn:hover,.schedule__list li.schedule__listItem--selected .iconbtn:focus-visible{background:var(--color-selected-bg)!important;border-color:var(--color-brand-200)!important;color:var(--color-text)!important}.schedule__list li.schedule__listItem--selected .iconbtn strong{color:var(--color-text)!important}.rowActions{display:inline-flex;gap:8px}.schedule__listFooter{margin-top:8px;padding-top:6px;border-top:1px dashed #e5e7eb;display:flex;gap:8px}.inv__page{display:flex;flex-direction:column;gap:12px}.inv__pageHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:4px}.inv__cabinGroup{margin-bottom:16px}.inv__cabinHeader{display:flex;align-items:center;gap:8px;margin-bottom:6px}.inv__cabinLabel{font-size:13px;font-weight:600;color:#475569}.inv__cabinBadge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;font-size:12px;font-weight:700;background:var(--color-selected-bg, #eef2ff);border:1px solid var(--color-brand-200, #c7d2fe);color:var(--color-text, #0f172a);flex-shrink:0}.inv__cabinBadge--sm{width:20px;height:20px;font-size:11px;border-radius:4px}.inv__rbdList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.inv__rbdRow{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;border:1px solid var(--color-border, #e5e7eb);background:var(--color-bg, #fff);font-size:13px;transition:background .1s}.inv__rbdRow:hover{background:var(--color-hover-bg, #f8fafc)}.inv__rbdCode{font-weight:700;font-size:14px;min-width:24px;color:var(--color-text, #0f172a)}.inv__rbdPriority{font-size:11px;font-weight:600;color:#94a3b8;min-width:28px}.inv__rbdDesc{flex:1;color:#475569;font-size:13px;min-width:0}.inv__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.inv__listRow{text-align:left;padding:10px 12px}.inv__rbdInputRow{display:flex;align-items:flex-start;gap:6px;margin-bottom:6px;flex-wrap:wrap}.inv__filters{padding:10px 0 8px;border-bottom:1px solid var(--color-border, #e5e7eb);margin-bottom:8px}.inv__gridWrapper{overflow-x:auto;margin-top:4px}.inv__grid{width:100%;border-collapse:collapse;font-size:13px}.inv__grid th{text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;padding:6px 10px;border-bottom:2px solid var(--color-border, #e5e7eb);white-space:nowrap;background:var(--color-bg, #fff);position:sticky;top:0;z-index:1}.inv__grid td{padding:6px 10px;border-bottom:1px solid var(--color-border, #e5e7eb);vertical-align:middle;white-space:nowrap}.inv__grid tbody tr:hover td{background:var(--color-hover-bg, #f8fafc)}.inv__grid tbody tr.inv__gridRow--editing td{background:var(--color-selected-bg, #eef2ff);border-bottom-color:var(--color-brand-200, #c7d2fe)}.inv__grid tbody tr.inv__gridRow td,.inv__grid tbody tr.inv__gridRow--editing td{height:44px;white-space:nowrap}.inv__grid thead tr.inv__gridColHeader th{padding:6px 10px;font-size:11px;font-weight:700;color:#94a3b8;text-transform:none;letter-spacing:normal;background:#f8fafc;border-bottom:1px solid var(--color-border, #e5e7eb)}.inv__grid thead tr.inv__gridCabinHeader td{padding:10px 10px 6px;background:#fff;border-bottom:none}.inv__grid td.inv__groupSep,.inv__grid th.inv__groupSep{border-left:2px solid var(--color-border, #e2e8f0)}:root{--color-brand-50: #eef2ff;--color-brand-100: #e0e7ff;--color-brand-200: #c7d2fe;--color-brand-300: #a5b4fc;--color-brand-400: #818cf8;--color-brand-500: #6366f1;--color-brand-600: #4f46e5;--color-brand-700: #4338ca;--color-brand-800: #1e3a8a;--color-brand-900: #312e81;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e5e7eb;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-success-bg: #dcfce7;--color-success-border: #86efac;--color-success-text: #166534;--color-warning-bg: #fef3c7;--color-warning-border: #fde68a;--color-warning-text: #854d0e;--color-danger-bg: #fee2e2;--color-danger-border: #fecaca;--color-danger-text: #991b1b;--color-info-bg: #dbeafe;--color-info-border: #93c5fd;--color-info-text: #1e40af;--color-bg: #ffffff;--color-bg-page: #f8fafc;--color-bg-panel: #ffffff;--color-text: #0f172a;--color-text-muted: #475569;--color-border: #e5e7eb;--color-border-light: #f1f5f9;--color-text-light: #64748b;--color-focus-ring: var(--color-brand-200);--color-hover-bg: var(--color-neutral-50);--color-selected-bg: var(--color-brand-50);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.4;--line-height-relaxed: 1.6;--border-width: 1px;--border-radius-sm: 6px;--border-radius-md: 8px;--border-radius-lg: 10px;--border-radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .12);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .15);--topbar-height: 52px;--sidebar-width: 260px;--sidebar-width-collapsed: 72px;--content-max-width: 1400px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);border-radius:var(--border-radius-md);border:var(--border-width) solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn--primary{background:var(--color-brand-800);color:#fff;border-color:var(--color-brand-800)}.btn--primary:hover:not(:disabled){background:var(--color-brand-700);border-color:var(--color-brand-700)}.btn--secondary{background:#fff;color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-hover-bg);border-color:var(--color-border)!important}.btn--ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn--ghost:hover:not(:disabled){background:var(--color-hover-bg);border-color:var(--color-border)!important}.btn--danger{background:transparent;color:var(--color-danger-text);border-color:var(--color-danger-border)}.btn--danger:hover:not(:disabled){background:var(--color-danger-bg)}.iconbtn{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 10px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);white-space:nowrap;background:var(--color-bg);color:var(--color-text);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-fast)!important}.iconbtn:hover:not(:disabled){background:var(--color-hover-bg);border-color:var(--color-border)!important}.iconbtn:focus,.iconbtn:focus-visible{outline:none}.iconbtn:active:not(:disabled){transform:translateY(1px)}.iconbtn:disabled{opacity:.5;cursor:not-allowed}.iconbtn--ghost{color:var(--color-text-muted)}.iconbtn--ghost:hover:not(:disabled){color:var(--color-text)}.iconbtn--ghost.action-archive,.iconbtn--ghost.action-delete{color:var(--color-danger-text)}.iconbtn--ghost.action-archive:hover:not(:disabled),.iconbtn--ghost.action-delete:hover:not(:disabled){color:var(--color-danger-text)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);transition:border-color var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-brand-500);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-input::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-1)}.form-help{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger-text);margin-top:var(--space-1)}.card{background:var(--color-bg-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-4)}.card--fill{height:100%}.panel{background:var(--color-bg-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-3)}.list{list-style:none;margin:0;padding:0}.list-item{display:flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--border-radius-sm);cursor:pointer;transition:background var(--transition-fast)}.list-item:hover{background:var(--color-hover-bg)}.list-item--selected{background:var(--color-selected-bg);border-left:3px solid var(--color-brand-800)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--border-radius-pill);border:var(--border-width) solid}.badge--success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.badge--warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.badge--danger{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-text)}.badge--info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.searchBar{position:relative;display:inline-flex;align-items:center;flex:1 1 220px;min-width:0;max-width:480px}.searchIcon{position:absolute;left:var(--space-3);display:flex;align-items:center;color:var(--color-text-muted);pointer-events:none}.searchInput{width:100%;padding:var(--space-2) var(--space-10) var(--space-2) var(--space-8);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-pill);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.searchInput:focus{outline:none;border-color:var(--color-border);box-shadow:none}.searchClearBtn{position:absolute;right:var(--space-2);display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:var(--border-radius-pill);transition:all var(--transition-fast)}.searchClearBtn:hover{background:var(--color-neutral-200);color:var(--color-text)}.toggle{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.toggle__label{color:var(--color-text-muted);font-weight:var(--font-weight-semibold);-webkit-user-select:none;user-select:none}:root{--topbar-h: 52px;--sidebar-w: 260px;--sidebar-w-collapsed: 72px;--gap: 16px;--border: #e5e7eb;--bg-page: #f8fafc;--bg-panel: #ffffff;--ink: #0f172a;--ink-muted: #475569;--accent: #1e3a8a}html,body,#root{height:100%;width:100%}html,body{margin:0;overflow-x:hidden}body{background:var(--bg-page);color:var(--ink);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,sans-serif;overflow-y:auto;scrollbar-gutter:stable}.app-shell{min-height:100svh;width:100%;display:grid;grid-template-rows:var(--topbar-h) 1fr;grid-template-columns:var(--sidebar-w) 1fr;grid-template-areas:"topbar topbar" "sidenav main"}.app-shell.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.topbar{grid-area:topbar;grid-column:1 / -1;width:100%;position:sticky;top:0;z-index:50;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 12px;gap:12px;background:var(--bg-panel);border-bottom:1px solid var(--border);box-sizing:border-box}.topbar__left{display:flex;align-items:center;gap:8px}.topbar__title{font-weight:700;color:var(--ink);white-space:nowrap}.topbar__actions{display:flex;align-items:center;gap:8px}.sidenav{grid-area:sidenav;background:var(--bg-panel);border-right:1px solid var(--border);overflow:hidden;position:relative;display:flex;flex-direction:column}.sidenav__header{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:var(--bg-panel);position:sticky;top:0;z-index:3}.sidenav__brand{display:inline-flex;align-items:center;gap:8px;min-width:0}.sidenav__brandIcon{width:22px;height:22px;object-fit:contain}.sidenav__brandLabel{font-weight:700;color:var(--ink);white-space:nowrap}.sidenav__collapse{position:static}.sidenav__collapseBtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:4px;background:transparent;border:1px solid transparent;border-radius:var(--border-radius-md, 8px);cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}.sidenav__collapseBtn:hover{background:transparent;border-color:transparent}.sidenav__collapseBtn:focus,.sidenav__collapseBtn:focus-visible{outline:none;box-shadow:none}.sidenav__inner{height:100%;display:flex;flex-direction:column;padding:10px;gap:8px}.sidenav__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.sidenav__item{display:flex}.sidenav__link{flex:1;display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:600;background:transparent}.sidenav__link:visited{color:var(--ink)}.sidenav__link:hover{background:#f8fafc;color:var(--ink)}.sidenav__link[aria-current=page]{background:#eef2ff;color:var(--ink)}.sidenav__link svg{width:22px;height:22px;color:currentColor}.sidenav__label{transition:opacity .15s ease}.app-shell.collapsed .sidenav__label{opacity:0;width:0;overflow:hidden}.app-shell.collapsed .sidenav__link{justify-content:center;padding:10px 0}.app-shell.collapsed .sidenav__brandLabel,.app-shell.collapsed .sidenav__brandIcon{display:none}.main{grid-area:main;min-width:0;min-height:0;padding:12px;display:flex;flex-direction:column;overflow:visible;box-sizing:border-box}.page{flex:1;min-height:0;display:flex;flex-direction:column}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px}.card--fill{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.sidenav__iconImg{width:22px;height:22px;object-fit:contain;display:inline-block}.app-shell.collapsed .sidenav__iconImg{width:24px;height:24px}.sidenav__collapseImg{width:22px;height:22px;object-fit:contain;display:block}.sidenav__collapseImg.is-collapsed{transform:scaleX(-1)}.sidenav{overflow:visible}.sidenav__inner{overflow-y:auto;overflow-x:visible}.sidenav__item--group{flex-direction:column;align-items:stretch}.sidenav__groupToggle{width:100%;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--ink)}.sidenav__groupToggle:hover{background:#f8fafc;color:var(--ink)}.sidenav__subItems{list-style:none;margin:2px 0 0;padding:0}.sidenav__item--child{position:relative;padding-left:10px}.sidenav__item--child:before{content:"";position:absolute;left:20px;top:4px;bottom:4px;width:1.5px;background:var(--color-border);border-radius:1px;transition:background var(--transition-fast)}.sidenav__item--child:has(a[aria-current=page]):before{background:var(--color-brand-300)}.sidenav__link--child{padding-left:16px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.sidenav__iconImg--sm{width:16px;height:16px;opacity:.65}.sidenav__link--child[aria-current=page] .sidenav__iconImg--sm{opacity:1}.app-shell.collapsed .sidenav__subItems{display:none}
