/* Shared PIIO tokens; business-specific controls keep their existing behavior. */
:root {
  --ui-primary:#245dcc; --ui-primary-soft:#eaf0fd; --ui-success:#18724e;
  --ui-warning:#a85b12; --ui-danger:#b5353e; --ui-info:#286ba1;
  --ui-bg:#f3f5f8; --ui-surface:#fff; --ui-border:#dce2eb;
  --ui-text:#1d2c43; --ui-secondary:#65758b; --ui-sidebar:#12233e;
  --ui-radius:12px; --ui-shadow:0 2px 8px #1b355008;
  --ui-space-1:4px; --ui-space-2:8px; --ui-space-3:12px; --ui-space-4:16px;
  --ui-space-6:24px; --ui-space-8:32px; --ui-sidebar-width:252px;
  --brand:var(--ui-primary); --line:var(--ui-border); --bs-body-color:var(--ui-text);
}
body {background:var(--ui-bg);color:var(--ui-text);font-family:Inter,"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px}
a {color:var(--ui-primary)}
.app-shell {display:grid;grid-template-columns:var(--ui-sidebar-width) minmax(0,1fr);min-height:100vh}
.sidebar {position:sticky;top:0;width:auto;height:100dvh;display:flex;flex-direction:column;background:var(--ui-sidebar);color:#d5dfef;padding:20px 12px 12px;overflow-y:auto;z-index:1050}
.brand-link {display:flex;gap:12px;align-items:center;padding:0 8px 22px;color:white;text-decoration:none}.brand-link:hover {color:white}
.brand-mark {width:38px;height:38px;display:grid;place-content:center;position:relative;border:1px solid #526681;border-radius:11px;font-size:24px;font-weight:700;flex-shrink:0}.brand-mark span {position:absolute;right:4px;bottom:3px;font-size:12px;color:#9fbaf0}
.brand-text {display:grid;gap:4px}.brand {font-size:17px;letter-spacing:-.4px}.brand-subtitle {font-size:11px;color:#adbbd1}
.primary-navigation {display:grid;gap:7px}.sidebar-nav-group {border:0;margin:0;padding:0}
.sidebar .nav-section-label {color:#97aac5;font-size:10px;padding:6px 12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}
.sidebar .nav-link {display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:#ced9eb;font-size:12px;min-height:42px;position:relative;text-decoration:none}.sidebar .nav-link:hover {color:#fff;background:#203754}.sidebar .nav-link.active {color:#fff;background:#2b4f85}
.ui-icon {width:21px;height:21px;flex-shrink:0;vertical-align:middle}.nav-active-dot {margin-left:auto;width:5px;height:5px;background:#bcd2ff;border-radius:50%;flex-shrink:0}
.sidebar-footer {margin-top:auto;padding:18px 12px 5px;color:#9fb0c8;font-size:11px;display:grid;gap:8px}
.main-panel {min-width:0;margin:0;width:auto}.topbar {min-height:68px;height:auto;padding:12px 28px;background:#ffffffed;border-bottom:1px solid var(--ui-border);display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:1030}
.ui-icon-button {border:1px solid var(--ui-border);background:white;border-radius:8px;width:36px;height:36px;display:grid;place-content:center;color:var(--ui-secondary);flex-shrink:0}
.page-breadcrumb {display:flex;gap:8px;align-items:center;font-size:11px;color:var(--ui-secondary);min-width:0;flex-wrap:wrap}.page-breadcrumb a {text-decoration:none;white-space:nowrap;color:var(--ui-secondary)}.breadcrumb-current {display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-tools {margin-left:auto;display:flex;align-items:center;gap:16px;flex-shrink:0}.header-time {color:var(--ui-secondary);font-size:11px}
.user-menu {position:relative}.user-menu>summary {display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:12px}.user-menu>summary::-webkit-details-marker {display:none}.user-avatar {display:grid;place-content:center;width:34px;height:34px;border-radius:50%;color:var(--ui-primary);background:var(--ui-primary-soft)}
.user-menu-panel {position:absolute;top:45px;right:0;width:290px;padding:20px;display:grid;gap:12px;background:white;border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:0 12px 32px #12233e22}.user-menu-panel small,.language-label {color:var(--ui-secondary);font-size:12px}.user-menu-panel a {text-decoration:none}.system-info {font-size:12px}.system-info dd {overflow-wrap:anywhere;color:var(--ui-secondary)}.system-info dl {margin-top:12px}
.content-area {padding:24px 28px 40px;max-width:1800px;margin:auto}.page-heading {margin-bottom:22px;align-items:flex-start;gap:16px}.page-heading h1,.content-area h1 {font-size:clamp(20px,1.8vw,27px);font-weight:700;letter-spacing:-.5px;color:var(--ui-text)}.page-heading p {color:var(--ui-secondary);font-size:12px;max-width:85ch;line-height:1.7}
.workspace-tabs {display:flex;gap:4px;overflow-x:auto;padding:0 0 12px;margin-bottom:22px;border-bottom:1px solid var(--ui-border);scrollbar-width:thin}.workspace-tabs a {text-decoration:none;padding:8px 12px;white-space:nowrap;color:var(--ui-secondary);border-radius:7px;font-size:12px}.workspace-tabs a.active {background:var(--ui-primary-soft);color:var(--ui-primary);font-weight:650}.workspace-tabs a:hover {background:#e8edf4}
.role-workspace {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow {font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--ui-secondary)}.role-workspace h2 {font-size:22px;margin:7px 0;letter-spacing:-.4px}.role-workspace p {font-size:12px;margin:0;color:var(--ui-secondary)}.quick-actions {display:flex;gap:8px;flex-wrap:wrap}
.card,.metric-card,.service-card {border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);background:var(--ui-surface)}.card-header {padding:14px 18px;background:#fff;border-color:var(--ui-border);font-size:13px}.card-body {padding:20px}.metric-card {padding:20px;min-height:116px}.metric-card>span {font-size:12px;color:var(--ui-secondary)}.metric-card>strong {margin-top:12px;font-size:30px;line-height:1.25;color:var(--ui-text);font-variant-numeric:tabular-nums}.metric-warning,.metric-danger {border-top:3px solid var(--ui-warning)}.metric-danger {border-top-color:var(--ui-danger)}.metric-warning>strong {color:var(--ui-warning)}.metric-danger>strong {color:var(--ui-danger)}.money-card {font-variant-numeric:tabular-nums}
.btn {border-radius:7px;font-size:12px;padding:8px 13px;font-weight:550}.btn-primary {--bs-btn-bg:var(--ui-primary);--bs-btn-border-color:var(--ui-primary);--bs-btn-hover-bg:#194cae;--bs-btn-hover-border-color:#194cae}.btn-outline-primary {--bs-btn-color:var(--ui-primary);--bs-btn-border-color:#b6c9ed;--bs-btn-hover-bg:var(--ui-primary);--bs-btn-hover-border-color:var(--ui-primary)}.btn-sm {font-size:11px;padding:5px 9px}
.form-control,.form-select {border-color:#ccd5e1;border-radius:7px;font-size:13px;min-height:38px}.form-label {color:#40516a;font-size:12px;font-weight:550}.form-text,.invalid-feedback {font-size:12px}.filter-card {box-shadow:none}.section-title {font-size:15px;font-weight:650;margin-bottom:18px}.sticky-actions {position:sticky;bottom:0;z-index:15;padding:14px 18px;border:1px solid var(--ui-border);background:#fff;box-shadow:0 -3px 12px #12233e08;border-radius:var(--ui-radius);display:flex;flex-wrap:wrap;gap:10px}
.table {font-size:12px;--bs-table-bg:transparent;--bs-table-hover-bg:#f4f7fc;margin-bottom:0}.table th {font-size:11px;letter-spacing:.1px;color:#5f6f86;font-weight:650;background:#f8fafc;white-space:nowrap;padding:13px 16px;border-bottom:1px solid var(--ui-border);vertical-align:middle}.table td {padding:13px 16px;border-color:#e9edf3;vertical-align:middle}.table thead {position:sticky;top:0;z-index:1}.table-responsive {scrollbar-width:thin}.table .ui-money {text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ui-number {font-variant-numeric:tabular-nums}.table td small {color:var(--ui-secondary)}
.status-badge,.badge {border-radius:6px;font-size:10px;font-weight:600;padding:5px 8px;line-height:1.4;white-space:normal}.status-draft {background:#eef1f5;color:#536176}.status-pending,.status-pending_approval,.status-unconfirmed,.status-cancellation_requested,.status-outstanding {background:#fff2de;color:#8d4e0e}.status-approved,.status-confirmed,.status-completed,.status-paid {background:#e5f4ec;color:#166242}.status-cancelled,.status-rejected,.status-exception {background:#fdebee;color:#a12633}.readonly-badge {background:#e9eef7;color:#435777;font-size:10px;border-radius:5px;padding:4px 7px;white-space:nowrap}
.empty-state {color:var(--ui-secondary);text-align:center;padding:36px 20px !important;font-size:13px}.alert {border-radius:9px;font-size:13px}.ui-request-state {padding:12px 16px;margin-bottom:16px;border:1px solid var(--ui-border);border-radius:8px;background:#fff;color:var(--ui-secondary)}.ui-request-state.is-error {color:var(--ui-danger);border-color:#efc1c5}
.section-navigation {display:flex;gap:6px;overflow-x:auto;margin-bottom:18px;padding-bottom:8px}.section-navigation a {color:var(--ui-secondary);text-decoration:none;border:1px solid var(--ui-border);border-radius:6px;padding:6px 10px;font-size:11px;white-space:nowrap;background:white}[data-ui-section] {scroll-margin-top:92px}
.order-mobile-list {display:none}.order-summary {min-width:190px;max-width:330px}.order-name {display:block;font-weight:600;text-decoration:none;color:var(--ui-text);margin-bottom:5px}.order-number {color:var(--ui-secondary);font-size:11px}.order-service-summary {max-width:290px}.order-more {color:var(--ui-secondary);font-size:11px;margin-top:5px}
.ui-danger-zone {border:1px solid #efc6ca;border-radius:9px;padding:12px;background:#fffafa;margin-bottom:16px}.ui-danger-zone>summary {color:var(--ui-danger);cursor:pointer;font-size:12px;font-weight:600}.ui-danger-zone .danger-actions {margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.skip-link {position:fixed;top:-60px;left:12px;background:#fff;padding:10px 16px;z-index:2000}.skip-link:focus {top:8px}a:focus-visible,button:focus-visible,summary:focus-visible {outline:3px solid #8aaff8;outline-offset:3px}.sidebar-backdrop {display:none}
body.sidebar-collapsed {--ui-sidebar-width:72px}body.sidebar-collapsed .sidebar {padding-inline:8px}body.sidebar-collapsed .brand-link {padding:0 8px 24px}body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-text,body.sidebar-collapsed .nav-section-label,body.sidebar-collapsed .nav-active-dot,body.sidebar-collapsed .sidebar-footer {display:none}body.sidebar-collapsed .sidebar .nav-link {justify-content:center;padding:12px}body.sidebar-collapsed .sidebar-nav-group:not([open]) .sidebar-nav-items {display:block}
@media (max-width:1199px) and (min-width:992px) {body:not(.sidebar-expanded) {--ui-sidebar-width:72px}body:not(.sidebar-expanded) .brand-text,body:not(.sidebar-expanded) .nav-text,body:not(.sidebar-expanded) .nav-section-label,body:not(.sidebar-expanded) .sidebar-footer,body:not(.sidebar-expanded) .nav-active-dot {display:none}body:not(.sidebar-expanded) .sidebar-nav-items {display:block}body:not(.sidebar-expanded) .sidebar .nav-link {justify-content:center;padding-inline:0}.header-time {display:none}}
@media (max-width:991px) {.app-shell {grid-template-columns:minmax(0,1fr)}.sidebar {position:fixed;width:252px;transform:translateX(-100%);transition:transform .15s ease}.sidebar.open {transform:translateX(0)}.sidebar-backdrop:not([hidden]) {display:block;position:fixed;inset:0;z-index:1040;background:#12233e66;border:0}.topbar {padding:12px 16px}.content-area {padding:20px 16px 32px}.header-time,.breadcrumb-current {display:none}.role-workspace {align-items:flex-start;flex-direction:column;gap:12px}.page-heading {flex-wrap:wrap}}
@media (max-width:767px) {.order-desktop-list {display:none}.order-mobile-list {display:grid;gap:12px}.order-mobile-list article {padding:16px}.order-mobile-list header {display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.order-mobile-list .order-name {font-size:15px}.order-mobile-list .btn {margin-top:14px;width:100%;min-height:40px}.user-name {display:none}.header-tools {gap:8px}.page-breadcrumb {font-size:10px;gap:5px}.page-breadcrumb>a:first-child {display:none}.content-area h1 {font-size:21px}.card-body {padding:16px}.role-workspace h2 {font-size:20px}.quick-actions {gap:6px}.quick-actions .btn {font-size:11px}.user-menu-panel {width:min(290px,calc(100vw - 32px))}.workspace-tabs {margin-bottom:16px}.table td,.table th {padding:11px 12px}.metric-card {padding:16px;min-height:110px}.metric-card>strong {font-size:26px}}
@media (prefers-reduced-motion:reduce) {.sidebar {transition:none}}
@media print {.sidebar,.topbar,.workspace-tabs,.quick-actions,.section-navigation {display:none !important}.app-shell {display:block}.content-area {padding:0}.card,.metric-card {box-shadow:none;break-inside:avoid}}

.pax-chart {display:grid;gap:10px;max-height:360px;overflow:auto}.pax-chart-row {display:grid;grid-template-columns:90px 1fr 45px;gap:12px;align-items:center;font-size:12px}.pax-chart-track {background:var(--ui-primary-soft);height:12px;border-radius:4px;overflow:hidden}.pax-chart-track span {display:block;height:100%;background:var(--ui-primary);border-radius:4px;min-width:2px}.pax-chart-row strong {text-align:right;font-variant-numeric:tabular-nums}

/* Override the legacy sidebar's desktop-only spacing and forced-open rules. */
.sidebar .nav-section-label {margin:0;padding:5px 10px;cursor:pointer}
.sidebar .nav-link {margin-bottom:0;min-height:38px;padding:8px 10px}
.primary-navigation {gap:2px}
.sidebar .sidebar-nav-group>summary::after {display:inline}
.sidebar .sidebar-nav-group:not([open])>.sidebar-nav-items {display:none}
body.sidebar-collapsed .sidebar .sidebar-nav-items {display:block}
.brand-link {padding-bottom:16px}
.sidebar-footer {padding-top:12px}
.header-notifications {font-size:11px;white-space:nowrap;text-decoration:none}
