body.auth-pending .sidebar button{pointer-events:none;cursor:wait;opacity:.55}
.titan-progress-stats{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.titan-progress-table table{min-width:1120px}.titan-progress-table td{vertical-align:middle}.titan-progress-table td:first-child b,.titan-progress-table td:first-child small{display:block}.titan-progress-table td:first-child small{margin-top:4px;color:#64748b}.titan-stage{display:inline-flex;border-radius:999px;padding:3px 9px;font-size:12px;white-space:nowrap}.titan-stage-normal{background:rgba(56,189,248,.1);color:#7dd3fc}.titan-stage-warning{background:rgba(245,158,11,.12);color:#fbbf24}.titan-stage-inventory{background:rgba(34,197,94,.1);color:#86efac}.titan-stage-outbound{background:rgba(168,85,247,.12);color:#d8b4fe}.titan-stage-completed{background:rgba(100,116,139,.16);color:#cbd5e1}.titan-progress-issue{display:block;width:max-content;max-width:210px;margin:2px 0;border-radius:4px;padding:2px 6px;background:rgba(245,158,11,.08);color:#fbbf24;font-size:12px}.titan-progress-note{margin-top:10px;color:#64748b;font-size:12px}@media(max-width:1100px){.titan-progress-stats{grid-template-columns:repeat(3,1fr)}}
.work-progress-stats{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.work-progress-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:14px 0 10px}.work-progress-toolbar>.input{width:min(320px,100%)}.work-filter-tabs{display:flex;flex-wrap:wrap;gap:6px}.work-filter-tabs button{border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:7px 13px;background:rgba(15,23,42,.35);color:#94a3b8;cursor:pointer}.work-filter-tabs button.active{border-color:rgba(245,158,11,.48);background:rgba(245,158,11,.1);color:#fbbf24}.work-progress-table table{min-width:1250px}.work-progress-table td{vertical-align:middle}.work-row td:first-child{border-left:3px solid transparent}.work-row-overdue td:first-child{border-left-color:#ef4444}.work-row-due td:first-child{border-left-color:#eab308}.work-row-completed td:first-child{border-left-color:#64748b}.work-status{display:inline-flex;border-radius:999px;padding:3px 9px;font-size:12px;white-space:nowrap}.work-status-normal{background:rgba(34,197,94,.1);color:#86efac}.work-status-due{background:rgba(234,179,8,.12);color:#fde047}.work-status-overdue{background:rgba(239,68,68,.12);color:#fca5a5}.work-status-completed{background:rgba(100,116,139,.16);color:#cbd5e1}.stacked-cell span,.stacked-cell b,.stacked-cell small{display:block}.stacked-cell small,.completion-note,.muted{margin-top:3px;color:#64748b;font-size:12px}.work-issue{display:block;width:max-content;max-width:190px;margin:2px 0;border-radius:4px;padding:2px 6px;background:rgba(245,158,11,.08);color:#fbbf24;font-size:12px}.work-issue-link{cursor:pointer;text-decoration:underline;text-underline-offset:2px}@media(max-width:1100px){.work-progress-stats{grid-template-columns:repeat(3,1fr)}.work-progress-toolbar{align-items:stretch;flex-direction:column}.work-progress-toolbar>.input{width:100%}}
.nav-brand-label{order:1;padding:3px 10px 7px;color:#e2e8f0;font-size:11px;font-weight:700;letter-spacing:.13em}.sidebar>[data-page="overview"]{order:2}
.nav-section-title{padding:15px 10px 6px;color:#64748b;font-size:11px;font-weight:700;line-height:1;letter-spacing:.1em;text-transform:uppercase;pointer-events:none;user-select:none}.nav-business-title{order:3}.sidebar>[data-target="kleitos"]{order:4}.sidebar>#kleitos{order:5}.sidebar>[data-target="titan"]{order:6}.sidebar>#titan{order:7}.sidebar>[data-target="trade"]{order:8}.sidebar>#trade{order:9}.nav-management-title{order:10}.sidebar>[data-page="approval-center"]{order:11}.sidebar>[data-target="vendors"]{order:12}.sidebar>#vendors{order:13}.sidebar>[data-target="finance"]{order:14}.sidebar>#finance{order:15}.nav-ai-title{order:16}.sidebar>[data-page="kdt-ai"]{order:17}.nav-system-title{order:18}#systemNavigation{order:19;display:block}
.sidebar>[data-page="approval-center"]{order:3}.nav-business-title{order:4}.sidebar>[data-target="kleitos"]{order:5}.sidebar>#kleitos{order:6}.sidebar>[data-target="titan"]{order:7}.sidebar>#titan{order:8}.sidebar>[data-target="trade"]{order:9}.sidebar>#trade{order:10}.nav-management-title{order:11}
.app-boot-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#123151 0,transparent 36%),linear-gradient(145deg,#050b13,#0a1524 55%,#07101c);color:#94a3b8;text-align:center}.app-boot-screen strong{display:block;margin-bottom:10px;color:#e0f2fe;font-size:26px;letter-spacing:3px}.app-boot-screen span{font-size:13px}
.app-startup-placeholder{display:grid;min-height:55vh;place-items:center;color:#94a3b8;text-align:center}
.app-startup-placeholder strong{display:block;margin-bottom:8px;color:#dbeafe;font-size:18px}

:root {
    color-scheme: dark;
    --bg-page:#080d14;--bg-sidebar:#0d1522;--bg-surface:#111827;--bg-surface-elevated:#172235;
    --border:rgba(148,163,184,.14);--border-strong:rgba(148,163,184,.26);
    --text-primary:#e5e7eb;--text-secondary:#cbd5e1;--text-muted:#94a3b8;
    --primary:#f59e0b;--primary-hover:#fbbf24;--info:#38bdf8;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;
    --overlay:rgba(2,6,12,.72);--focus-ring:rgba(56,189,248,.42);
    --radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;
    --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;
    --control-compact:32px;--control-normal:38px;
    /* Backwards-compatible aliases while legacy page classes are progressively converged. */
    --bg:var(--bg-page);--panel:var(--bg-surface);--panel-soft:var(--bg-surface-elevated);
    --text:var(--text-primary);--muted:var(--text-muted);--accent:var(--primary);--accent-soft:var(--primary-hover);--radius:var(--radius-lg);
}
* {
    box-sizing: border-box;
}
body {
    margin: 0;
    min-height: 100vh;
    background:radial-gradient(circle at top left,rgba(245,158,11,.08),transparent 25%),var(--bg-page);
    color: var(--text);
    font-family: "Microsoft YaHei", Arial, sans-serif;
}
button,
.menu,
.group {
    font: inherit;
}
.header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0 28px;
    min-height: 80px;
    background: rgba(15,23,42,0.95);
    border-bottom: 1px solid var(--border);
    position: relative;
    z-index: 2;
}
.header-left {
    display: flex;
    align-items: center;
    gap: 16px;
}
.logo {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--accent);
}
.system-info,
.subtitle,
.user-info {
    color: var(--muted);
}
.header-center {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.header-search {
    position: relative;
    min-width: 320px;
    width: clamp(320px, 30vw, 520px);
}
.search-input {
    width: 100%;
    padding: 12px 16px;
    border-radius: 16px;
    border: 1px solid rgba(148,163,184,0.16);
    background: #111827;
    color: var(--text);
}
.search-results {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    background: var(--panel);
    border: 1px solid rgba(148,163,184,0.18);
    border-radius: 16px;
    max-height: 320px;
    overflow: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,0.35);
    display: none;
    z-index: 10;
}
.search-results.active {
    display: block;
}
.search-results .result-item {
    padding: 14px 16px;
    border-bottom: 1px solid rgba(148,163,184,0.08);
    cursor: pointer;
    transition: background 0.2s ease;
}
.search-results .result-item:hover {
    background: rgba(255,255,255,0.04);
}
.search-results .result-item:last-child {
    border-bottom: none;
}
.search-results .result-type {
    font-size: 0.78rem;
    color: var(--muted);
    margin-top: 6px;
}
.header-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--text);
}
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(148,163,184,0.16);
    color: var(--muted);
    font-size: 0.92rem;
}
.main {
    display: grid;
    grid-template-columns: 218px minmax(0, 1fr);
    min-height: calc(100vh - 80px);
}
.sidebar {
    display:flex;flex-direction:column;height:calc(100vh - 80px);position:sticky;top:80px;
    background:var(--bg-sidebar);
    padding:10px 9px 14px;
    border-right: 1px solid var(--border);
    overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.32) transparent;
}
.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-thumb{background:rgba(148,163,184,.3);border-radius:var(--radius-md)}
.sidebar .section-title {
    display:none;
}
.menu,
.group,
.subgroup {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--text);
    padding:7px 10px;
    border-radius:var(--radius-md);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 160ms ease, color 160ms ease;
    min-height:39px;font-size:14px;line-height:1.15;
}
.sidebar > .group {
    display: grid;
    grid-template-columns:18px minmax(0,1fr) 16px;
    align-items: center;
    column-gap:7px;
}
.sidebar > .group .menu-icon,
.sidebar > .group .menu-label,
.sidebar > .group .arrow {
    margin: 0;
    padding: 0;
}
.sidebar > .group .menu-label {
    min-width: 0;
    text-align: left;
}
.menu {
    position: relative;
    justify-content: flex-start;
    white-space: nowrap;
}
.menu:hover,
.group:hover,
.subgroup:hover {
    background: rgba(255,255,255,0.06);
}
.menu.active,
.group.active-group,
.subgroup.active-group {
    background:rgba(245,158,11,.075);box-shadow:inset 3px 0 0 var(--primary);
    color: var(--accent);
}
.menu-icon {
    width:16px;min-width:16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.menu-label {
    flex: 1;
    text-align: left;
}
.arrow {
    width: 20px;
    min-width: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease;
}
.submenu {
    margin:1px 0 2px;
    display: none;
    flex-direction: column;
    gap:1px;padding-left:0;
}
.submenu.active {
    display: flex;
}
.submenu.level2 {
    padding-left: 20px;
}
.submenu.level3 {
    padding-left: 30px;
}
.submenu .menu {
    min-height:34px;padding:6px 9px 6px 37px;border-radius:var(--radius-sm);font-size:13px;
    color: var(--muted);
}
.subgroup {
    padding-left: 28px;
    font-size: 0.95rem;
}
.group.open .arrow,
.subgroup.open .arrow {
    transform: rotate(180deg);
}
.content {
    padding: 22px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}
.page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.page-title {
    margin: 0;
    font-size: 1.4rem;
}
.page-actions {
    display: flex;
    gap: 10px;
}
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}
.stat-card {
    background: var(--panel);
    border: 1px solid rgba(148,163,184,0.1);
    border-radius: 18px;
    padding: 18px;
}
.stat-card h3 {
    margin: 0;
    font-size: 0.96rem;
    color: var(--muted);
}
.stat-card p {
    margin: 10px 0 0;
    font-size: 1.55rem;
    color: var(--text);
    font-weight: 700;
}
.titan-badge {
    color: #67e8f9;
    background: rgba(8, 145, 178, 0.12);
    border: 1px solid rgba(34, 211, 238, 0.24);
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
}
.titan-stats {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.titan-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}
.titan-panel {
    min-height: 105px;
}
.titan-panel-count {
    margin: 14px 0 0;
    font-size: 1.25rem;
    font-weight: 700;
}
.titan-panel-empty {
    margin: 14px 0 0;
    color: var(--muted);
}
.titan-overview-empty,
.titan-page-empty {
    border: 1px dashed rgba(34, 211, 238, 0.22);
}
.titan-flow-note p {
    margin: 0;
    color: var(--text);
    line-height: 1.8;
}
.supplier-machine-stats {
    grid-template-columns: repeat(auto-fit,minmax(145px,1fr));
}
.supplier-machine-filters {
    grid-template-columns: minmax(260px,1.7fr) repeat(8,minmax(135px,1fr)) auto;
    overflow-x: auto;
}
.supplier-machine-table {
    min-width: 2150px;
}
.supplier-machine-drawer {
    width: min(1220px,98vw);
}
.supplier-action-drawer {
    width: min(940px,96vw);
}
.supplier-detail-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(150px,1fr));
    gap: 12px;
}
.supplier-detail-metrics .status-box p {
    font-size: 1rem;
}
.supplier-detail-metrics .state-alert {
    border-color: rgba(239,68,68,.42);
    background: rgba(239,68,68,.09);
}
.supplier-progress-timeline {
    display: grid;
    gap: 14px;
}
.timeline-card {
    padding: 16px;
    border: 1px solid rgba(148,163,184,.13);
    border-left: 3px solid var(--accent);
    border-radius: 14px;
    background: rgba(15,23,42,.62);
}
.timeline-card p {
    margin: 9px 0 0;
    color: var(--muted);
}
.timeline-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.timeline-progress {
    max-width: 420px;
    margin-top: 14px;
}
.titan-overview-wide {
    grid-column: span 2;
}
.supplier-overview-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}
.supplier-overview-row {
    display: grid;
    grid-template-columns: minmax(150px,1.2fr) auto 60px minmax(140px,1fr) 70px 105px 90px;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 11px;
    border: 1px solid rgba(148,163,184,.1);
    border-radius: 11px;
    background: rgba(15,23,42,.55);
    color: var(--text);
    text-align: left;
    cursor: pointer;
}
.supplier-overview-row:hover {
    border-color: rgba(245,158,11,.35);
}
.supplier-overview-row > span:first-child {
    display: grid;
    gap: 3px;
}
.supplier-overview-row small {
    color: var(--muted);
}
.supplier-overview-row em {
    font-style: normal;
}
.yard-machine-table {
    min-width: 1450px;
}
.yard-machine-stats {
    grid-template-columns: repeat(auto-fit,minmax(145px,1fr));
}
.yard-machine-filters {
    grid-template-columns: minmax(260px,1.7fr) repeat(8,minmax(135px,1fr)) auto;
    overflow-x: auto;
}
.yard-machine-table-full {
    min-width: 2200px;
}
.yard-machine-drawer {
    width: min(1220px,98vw);
}
.yard-status-drawer {
    width: min(980px,96vw);
}
.yard-overview-sections {
    display: grid;
    gap: 16px;
}
.yard-overview-sections .detail-card h2 {
    margin: 0 0 14px;
}
.yard-detail-tabs {
    overflow-x: auto;
}
.yard-detail-tabs .detail-tab {
    white-space: nowrap;
}
.yard-overview-row {
    grid-template-columns: minmax(145px,1.1fr) auto minmax(110px,.8fr) minmax(145px,1fr) 60px 70px 105px;
}
.inspection-record-drawer,
.technical-inspection-drawer {
    width: min(1260px,98vw);
}
.initial-summary,
.technical-summary {
    grid-template-columns: repeat(auto-fit,minmax(145px,1fr));
}
.technical-issue-row {
    display: grid;
    gap: 14px;
    margin-top: 16px;
    padding: 18px;
    border: 1px solid rgba(148,163,184,.15);
    border-radius: 16px;
    background: rgba(15,23,42,.58);
}
.technical-issue-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.technical-parts-fields {
    display: contents;
}
.technical-issue-filters {
    grid-template-columns: repeat(4,minmax(145px,1fr)) auto;
}
.technical-issues-table {
    min-width: 1450px;
}
.technical-summary .status-box p {
    font-size: 1rem;
}
.purchase-workbench-stats {
    grid-template-columns: repeat(auto-fit,minmax(145px,1fr));
}
.purchase-workbench-filters {
    grid-template-columns: minmax(250px,1.7fr) repeat(7,minmax(135px,1fr)) auto;
    overflow-x: auto;
}
.purchase-orders-table {
    min-width: 2150px;
}
.purchase-order-drawer {
    width: min(1320px,99vw);
}
.purchase-items-editor {
    min-width: 1850px;
}
.purchase-items-editor .input,
.purchase-items-editor .select {
    min-width: 115px;
}
.purchase-detail-items {
    min-width: 1500px;
}
.titan-repair-drawer {
    width: min(1380px,99vw);
}
.titan-repair-table {
    min-width: 1650px;
}
.repair-items-editor {
    min-width: 2400px;
}
.repair-items-editor .input,
.repair-items-editor .select {
    min-width: 125px;
}
.repair-detail-items {
    min-width: 1500px;
}
.reinspection-drawer {
    width: min(1380px,99vw);
}
.reinspection-items-editor {
    min-width: 2200px;
}
.reinspection-items-editor .input,
.reinspection-items-editor .select {
    min-width: 125px;
}
.reinspection-table {
    min-width: 1550px;
}
.report-stage-note {
    margin: 18px 0 0;
    padding: 14px;
    border-left: 3px solid var(--accent);
    background: rgba(245,158,11,.08);
    color: var(--muted);
}
@media (max-width: 760px) {
    .technical-issue-filters { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .titan-overview-wide { grid-column: span 1; }
    .supplier-overview-row { grid-template-columns: 1fr auto; }
    .supplier-overview-row > span:nth-child(n+3) { display: none; }
}
.titan-machine-stats {
    grid-template-columns: repeat(auto-fit,minmax(145px,1fr));
}
.titan-machine-filters {
    grid-template-columns: minmax(260px,1.7fr) repeat(7,minmax(135px,1fr)) auto;
    overflow-x: auto;
}
.titan-machine-table {
    min-width: 2050px;
}
.titan-dynamics-table {
    min-width: 1250px;
}
.titan-dynamics-panel {
    display: grid;
    gap: 14px;
}
.titan-dynamics-panel h3 {
    margin: 0;
}
.titan-machine-drawer {
    width: min(1180px,98vw);
}
.titan-detail-group {
    margin-bottom: 16px;
}
.titan-machine-alerts {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.titan-machine-alerts .status-box {
    min-width: 190px;
}
.titan-machine-alerts .state-alert {
    border-color: rgba(239,68,68,.42);
    background: rgba(239,68,68,.09);
}
.titan-machine-alerts .state-alert p {
    color: #fca5a5;
    font-size: 1rem;
}
.filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    align-items: end;
    margin-bottom: 0;
}
.filter-group {
    display: grid;
    gap: 6px;
}
.filter-group label {
    font-size: 0.85rem;
    color: var(--muted);
}
.input,
.select,
.input-small {
    width: 100%;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(148,163,184,0.15);
    background: #111827;
    color: var(--text);
}
.select {
    appearance: none;
}
.filter-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.button-primary,
.button-secondary,
.button-outline,
.button-link {
    padding: 12px 18px;
    border-radius: 14px;
    border: none;
    cursor: pointer;
    font-weight: 700;
}
.button-primary {
    background: linear-gradient(135deg, #f59e0b, #fbbf24);
    color: #0b0f14;
}
.button-secondary {
    background: rgba(255,255,255,0.08);
    color: var(--text);
}
.button-outline {
    background: transparent;
    color: var(--text);
    border: 1px solid rgba(148,163,184,0.2);
}
.button-link {
    background: transparent;
    color: var(--accent);
    border: none;
    padding: 0;
    font-weight: 700;
}
.table-container {
    overflow-x: auto;
    background: var(--panel);
    border: 1px solid rgba(148,163,184,0.1);
    border-radius: 18px;
}
table {
    width: 100%;
    border-collapse: collapse;
    min-width: 980px;
}
th,
 td {
    padding: 14px 12px;
    border-bottom: 1px solid rgba(148,163,184,0.1);
    text-align: left;
    color: var(--text);
}
th {
    color: var(--muted);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8rem;
}
tr:last-child td {
    border-bottom: none;
}
td.align-right {
    text-align: right;
}
.tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}
.tag-unpaid { background: rgba(248,113,113,0.14); color: #f87171; }
.tag-partial { background: rgba(251,191,36,0.14); color: #fbbf24; }
.tag-paid { background: rgba(34,197,94,0.14); color: #22c55e; }
.tag-overdue { background: rgba(248,113,113,0.18); color: #ef4444; }
.tag-normal { background: rgba(56,189,248,0.12); color: #38bdf8; }
.tag-warning { background: rgba(251,191,36,0.18); color: #fbbf24; }
.tag-success { background: rgba(34,197,94,0.18); color: #22c55e; }
.tag-critical { background: rgba(239,68,68,.26); color: #fecaca; border: 1px solid rgba(239,68,68,.35); }
.tag-progress { background: rgba(59,130,246,.18); color: #93c5fd; }
.tag-muted { background: rgba(148,163,184,.13); color: #cbd5e1; }
.tag-review { background: rgba(168,85,247,.18); color: #d8b4fe; }
.progress-wrap{height:12px;background:rgba(255,255,255,0.04);border-radius:999px;overflow:hidden;width:160px}
.progress-bar{height:100%;background:linear-gradient(90deg,#f59e0b,#fbbf24);width:0%;transition:width .5s ease}
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 20;
}
.modal-overlay.active {
    display: flex;
}
.modal-open,.no-scroll{overflow:hidden}.modal-overlay.active,.drawer-overlay.active{pointer-events:auto}.modal{position:relative;z-index:1}.modal-close,.dialog-close,.drawer-close,[data-modal-close],[data-close-modal]{position:relative;z-index:3;pointer-events:auto;cursor:pointer}
.modal {
    width: min(820px, 100%);
    max-height: 90vh;
    overflow-y: auto;
    background: #0f172a;
    border: 1px solid rgba(148,163,184,0.15);
    border-radius: 20px;
    padding: 24px;
}
.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
}
.modal-header h3 {
    margin: 0;
    font-size: 1.2rem;
}
.modal-close {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(148,163,184,0.18);
    border-radius: 50%;
    background: transparent;
    color: var(--text);
    cursor: pointer;
}
.modal-body {
    display: grid;
    gap: 14px;
}
.modal-body .field {
    display: grid;
    gap: 6px;
}
.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
    flex-wrap: wrap;
}
.status-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
}
.status-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(148,163,184,0.12);
    border-radius: 16px;
    padding: 16px;
}
.status-box h3 {
    margin: 0 0 6px;
    font-size: 0.85rem;
    color: var(--muted);
}
.status-box p {
    margin: 0;
    font-size: 1.35rem;
    color: var(--text);
    font-weight: 700;
}
.note-panel {
    background: var(--panel);
    border: 1px solid rgba(148,163,184,0.12);
    border-radius: 18px;
    padding: 18px;
}
.note-panel h3 {
    margin: 0 0 10px;
    font-size: 1rem;
    color: var(--muted);
}
.note-panel ul {
    margin: 0;
    padding-left: 18px;
    color: var(--text);
}
.note-panel li {
    margin-bottom: 10px;
    line-height: 1.6;
}
.link-button {
    background: transparent;
    border: none;
    color: var(--accent);
    cursor: pointer;
    font-size: 0.95rem;
    padding: 0;
}
.page-subtitle {
    margin: 6px 0 0;
    color: var(--muted);
}
.machine-ledger-filters {
    grid-template-columns: minmax(260px, 1.6fr) repeat(4, minmax(130px, 1fr)) auto;
}
.machine-table .clickable-row {
    cursor: pointer;
    transition: background 160ms ease;
}
.machine-table .clickable-row:hover {
    background: rgba(245,158,11,0.06);
}
.row-actions {
    white-space: nowrap;
}
.row-actions .button-link + .button-link {
    margin-left: 12px;
}
.danger-link {
    color: #f87171;
}
.empty-cell {
    padding: 42px;
    text-align: center;
    color: var(--muted);
}
.dashboard-drilldown,.stat-card.dashboard-drilldown{cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .08s ease}.dashboard-drilldown:hover{border-color:rgba(56,189,248,.42);background-color:rgba(14,165,233,.07)}.dashboard-drilldown:active{transform:translateY(1px)}
.drawer-overlay {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: none;
    justify-content: flex-end;
    background: rgba(0,0,0,.62);
}
.drawer-overlay.active {
    display: flex;
}
.machine-drawer {
    width: min(760px, 96vw);
    height: 100vh;
    overflow-y: auto;
    background: #0f172a;
    border-left: 1px solid rgba(148,163,184,.18);
    box-shadow: -24px 0 70px rgba(0,0,0,.4);
}
#machineForm {
    min-height: 100%;
    padding: 24px;
}
.drawer-header {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: -24px -24px 18px;
    padding: 22px 24px;
    background: rgba(15,23,42,.97);
    border-bottom: 1px solid rgba(148,163,184,.12);
}
.drawer-header h2,
.drawer-header p {
    margin: 0;
}
.drawer-header p {
    margin-top: 5px;
    color: var(--muted);
}
.form-section {
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.025);
}
.form-section h3,
.detail-card h2 {
    margin: 0 0 16px;
    color: var(--accent);
    font-size: 1rem;
}
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 14px;
}
.field {
    display: grid;
    gap: 7px;
    color: var(--muted);
    font-size: .88rem;
}
.field-wide {
    grid-column: 1 / -1;
}
.textarea {
    min-height: 92px;
    resize: vertical;
    font: inherit;
}
.required,
.form-error {
    color: #f87171;
}
.form-error {
    min-height: 22px;
    margin-bottom: 8px;
}
.is-hidden {
    display: none !important;
}
.drawer-footer {
    position: sticky;
    bottom: 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin: 0 -24px -24px;
    padding: 16px 24px;
    background: rgba(15,23,42,.97);
    border-top: 1px solid rgba(148,163,184,.12);
}
.app-toast {
    position: fixed;
    right: 28px;
    bottom: 28px;
    z-index: 80;
    padding: 14px 20px;
    border: 1px solid rgba(34,197,94,.35);
    border-radius: 14px;
    background: #123022;
    color: #86efac;
    box-shadow: 0 14px 40px rgba(0,0,0,.35);
    opacity: 0;
    transform: translateY(15px);
    pointer-events: none;
    transition: .2s ease;
}
.app-toast.active {
    opacity: 1;
    transform: translateY(0);
}
.back-button {
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
}
.detail-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 3px;
}
.detail-tab {
    flex: 0 0 auto;
    padding: 11px 16px;
    border: 1px solid rgba(148,163,184,.14);
    border-radius: 12px;
    background: var(--panel);
    color: var(--muted);
    cursor: pointer;
}
.detail-tab.active {
    border-color: rgba(245,158,11,.4);
    background: rgba(245,158,11,.14);
    color: var(--accent);
}
.detail-tab-panel {
    display: none;
}
.detail-tab-panel.active {
    display: block;
}
.detail-card,
.empty-state {
    padding: 22px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 18px;
    background: var(--panel);
}
.detail-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(148,163,184,.1);
    border-radius: 14px;
    background: rgba(148,163,184,.1);
}
.detail-item {
    display: grid;
    gap: 7px;
    min-height: 82px;
    padding: 14px;
    background: #111827;
}
.detail-item span {
    color: var(--muted);
    font-size: .82rem;
}
.detail-item strong {
    line-height: 1.45;
    word-break: break-word;
}
.empty-state {
    min-height: 320px;
    display: grid;
    place-content: center;
    text-align: center;
    color: var(--muted);
}
.empty-state h3 {
    margin: 10px 0 4px;
    color: var(--text);
}
.empty-state p {
    margin: 0;
}
.empty-icon {
    color: var(--accent);
    font-size: 2rem;
}
.inspection-panel {
    display: grid;
    gap: 16px;
}
.section-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.section-toolbar h2,
.section-toolbar p {
    margin: 0;
}
.section-toolbar p {
    margin-top: 5px;
    color: var(--muted);
}
.inspection-filters {
    grid-template-columns: repeat(3,minmax(150px,1fr)) auto;
}
.inspection-table {
    min-width: 1180px;
}
.fault-cell {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.inspection-empty {
    gap: 10px;
}
.inspection-empty .button-primary {
    margin-top: 10px;
}
.inspection-detail-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
}
.reserved-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}
.reserved-actions button:disabled {
    cursor: not-allowed;
    opacity: .55;
}
.generated-mark {
    display: inline-flex;
    margin-left: 10px;
    color: #86efac;
    font-size: .82rem;
}
.repair-panel {
    display: grid;
    gap: 16px;
}
.repair-summary {
    display: grid;
    grid-template-columns: repeat(5,minmax(110px,1fr));
    gap: 12px;
}
.repair-summary > div {
    display: grid;
    gap: 8px;
    padding: 15px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 14px;
    background: var(--panel);
}
.repair-summary span {
    color: var(--muted);
    font-size: .84rem;
}
.repair-summary strong {
    font-size: 1.4rem;
}
.repair-filters {
    grid-template-columns: repeat(4,minmax(140px,1fr)) auto;
}
.repair-table {
    min-width: 1180px;
}
.repair-empty {
    gap: 10px;
}
.repair-empty .button-primary {
    margin-top: 10px;
}
.relation-note {
    display: block;
    margin-top: 5px;
    color: #86efac;
    font-size: .75rem;
}
.part-panel {
    display: grid;
    gap: 16px;
}
.part-stats {
    display: grid;
    grid-template-columns: repeat(8,minmax(125px,1fr));
    gap: 12px;
    overflow-x: auto;
}
.part-filters {
    grid-template-columns: minmax(240px,1.6fr) repeat(4,minmax(135px,1fr)) auto;
}
.part-request-table {
    min-width: 1500px;
}
.overdue-row {
    background: rgba(239,68,68,.045);
}
.overdue-mark {
    display: inline-flex;
    margin-left: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(239,68,68,.2);
    color: #fca5a5;
    font-size: .72rem;
    font-weight: 700;
}
.part-request-drawer {
    width: min(1240px,98vw);
}
.part-items-section {
    padding: 0;
    overflow: hidden;
}
.part-items-section .section-toolbar {
    padding: 18px;
}
.part-items-section .section-toolbar h3 {
    margin: 0;
}
.part-items-scroll {
    overflow-x: auto;
    border-top: 1px solid rgba(148,163,184,.1);
    border-bottom: 1px solid rgba(148,163,184,.1);
}
.part-items-table {
    min-width: 2200px;
}
.part-items-table th,
.part-items-table td {
    padding: 9px 7px;
}
.part-items-table .input,
.part-items-table .select {
    min-width: 105px;
    padding: 9px 10px;
    border-radius: 10px;
}
.part-items-table .pi-name {
    min-width: 150px;
}
.part-form-totals {
    display: flex;
    justify-content: flex-end;
    gap: 28px;
    padding: 16px 18px;
}
.part-form-totals strong {
    color: var(--accent);
}
.part-empty {
    gap: 10px;
}
.part-empty .button-primary {
    margin-top: 10px;
}
.detail-subtitle {
    margin: 22px 0 12px;
    color: var(--accent);
}
.part-detail-table {
    min-width: 1400px;
}
.production-progress-panel {
    display: grid;
    gap: 18px;
}
.production-timeline-panel { display:grid; gap:24px; }
.timeline-managed-notice { margin:14px 18px 0; padding:12px 14px; border:1px solid rgba(245,158,11,.35); border-radius:10px; color:var(--accent); background:rgba(245,158,11,.08); }
.timeline-summary-cards { display:grid; grid-template-columns:repeat(6,minmax(140px,1fr)); gap:12px; overflow-x:auto; }
.timeline-summary-cards .status-box { min-width:140px; }
.timeline-node-grid { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:12px; margin:15px 0; }
.timeline-node-grid span { color:var(--muted); font-size:.8rem; }
.timeline-node-grid p { margin:5px 0 0; }
.timeline-daily-records { border-top:1px solid rgba(148,163,184,.16); padding-top:22px; }
@media (max-width:900px) { .timeline-node-grid { grid-template-columns:1fr 1fr; } }
.progress-state-cards {
    display: grid;
    grid-template-columns: repeat(9,minmax(130px,1fr));
    gap: 11px;
    overflow-x: auto;
}
.progress-state-cards .status-box {
    min-width: 130px;
}
.progress-state-cards .status-box p {
    font-size: 1rem;
}
.progress-state-cards .state-alert {
    border-color: rgba(239,68,68,.4);
    background: rgba(239,68,68,.09);
}
.progress-state-cards .state-alert p {
    color: #fca5a5;
}
.progress-filters {
    grid-template-columns: repeat(5,minmax(130px,1fr)) auto;
}
.progress-timeline {
    position: relative;
    display: grid;
    gap: 16px;
    padding-left: 28px;
}
.progress-timeline::before {
    content: "";
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: 8px;
    width: 2px;
    background: rgba(245,158,11,.25);
}
.timeline-item {
    position: relative;
}
.timeline-dot {
    position: absolute;
    top: 23px;
    left: -27px;
    width: 14px;
    height: 14px;
    border: 3px solid #0f172a;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 2px rgba(245,158,11,.35);
}
.timeline-card {
    padding: 18px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 17px;
    background: var(--panel);
}
.timeline-abnormal .timeline-card {
    border-color: rgba(239,68,68,.32);
}
.timeline-abnormal .timeline-dot {
    background: #ef4444;
    box-shadow: 0 0 0 2px rgba(239,68,68,.35);
}
.timeline-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.timeline-header time {
    color: var(--muted);
    font-size: .8rem;
}
.timeline-header h3 {
    margin: 5px 0 0;
    color: var(--accent);
}
.timeline-actions {
    display: flex;
    gap: 12px;
}
.timeline-progress {
    margin: 15px 0;
}
.timeline-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
}
.timeline-grid > div {
    padding: 12px;
    border-radius: 12px;
    background: rgba(255,255,255,.025);
}
.timeline-grid span {
    color: var(--muted);
    font-size: .78rem;
}
.timeline-grid p {
    margin: 7px 0 0;
    line-height: 1.55;
    white-space: pre-wrap;
}
.timeline-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.readonly-summary,
.feature-placeholder {
    padding: 12px 14px;
    border: 1px dashed rgba(148,163,184,.2);
    border-radius: 12px;
    background: rgba(255,255,255,.025);
    color: var(--muted);
    line-height: 1.55;
}
.feature-placeholder {
    margin-top: 14px;
}
.progress-empty {
    gap: 10px;
}
.progress-empty .button-primary {
    margin-top: 10px;
}
.acceptance-panel {
    display: grid;
    gap: 18px;
}
.acceptance-state-cards {
    display: grid;
    grid-template-columns: repeat(8,minmax(145px,1fr));
    gap: 11px;
    overflow-x: auto;
}
.acceptance-state-cards .status-box {
    min-width: 145px;
}
.acceptance-state-cards .status-box p {
    font-size: 1rem;
}
.acceptance-state-cards .state-alert {
    border-color: rgba(239,68,68,.4);
    background: rgba(239,68,68,.09);
}
.acceptance-state-cards .state-alert p {
    color: #fca5a5;
}
.acceptance-table {
    min-width: 1280px;
}
.acceptance-drawer {
    width: min(900px,97vw);
}
.nested-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
    padding: 14px;
    border: 1px dashed rgba(148,163,184,.18);
    border-radius: 13px;
    background: rgba(255,255,255,.02);
}
.nested-grid .field-wide {
    grid-column: 1 / -1;
}
.acceptance-empty {
    gap: 10px;
}
.acceptance-empty .button-primary {
    margin-top: 10px;
}
.factory-order-stats {
    display: grid;
    grid-template-columns: repeat(10,minmax(130px,1fr));
    gap: 12px;
    overflow-x: auto;
}
.factory-order-filters {
    grid-template-columns: minmax(240px,1.5fr) repeat(6,minmax(130px,1fr)) auto;
}
.factory-order-table {
    min-width: 1900px;
}
.factory-order-empty,
.compact-empty {
    gap: 10px;
}
.factory-order-drawer {
    width: min(980px,97vw);
}
.order-machine-picker {
    display: grid;
    gap: 10px;
}
.order-machine-option {
    padding: 13px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 13px;
    background: rgba(255,255,255,.025);
}
.order-machine-option label {
    cursor: pointer;
}
.order-machine-option.is-disabled {
    opacity: .55;
}
.order-machine-option small {
    display: block;
    margin-top: 6px;
    color: #fca5a5;
}
.order-machine-inputs {
    display: grid;
    grid-template-columns: 180px minmax(200px,1fr);
    gap: 10px;
    margin-top: 10px;
}
.order-total-line {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(148,163,184,.12);
    text-align: right;
}
.order-total-line strong {
    color: var(--accent);
    font-size: 1.25rem;
}
.amount-preview {
    display: grid;
    gap: 7px;
    padding: 12px 14px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 13px;
    background: rgba(255,255,255,.025);
}
.amount-preview span {
    color: var(--muted);
    font-size: .82rem;
}
.amount-preview strong {
    color: var(--accent);
    font-size: 1.15rem;
}
.danger-button {
    color: #fca5a5;
}
.order-detail-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
}
.order-device-table {
    min-width: 1700px;
}
.finance-numbers {
    display: grid;
    grid-template-columns: repeat(4,minmax(150px,1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.finance-numbers > div {
    display: grid;
    gap: 7px;
    padding: 16px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 14px;
    background: rgba(255,255,255,.025);
}
.finance-numbers span {
    color: var(--muted);
    font-size: .82rem;
}
.finance-numbers strong {
    font-size: 1.2rem;
}
.shipping-check-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(180px,1fr));
    gap: 12px;
}
.shipping-check-grid > div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px;
    border-radius: 13px;
}
.check-pass {
    border: 1px solid rgba(34,197,94,.25);
    background: rgba(34,197,94,.08);
    color: #86efac;
}
.check-fail {
    border: 1px solid rgba(239,68,68,.28);
    background: rgba(239,68,68,.08);
    color: #fca5a5;
}
.shipping-check-grid span {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
}
.risk-banner {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid rgba(239,68,68,.32);
    border-radius: 13px;
    background: rgba(239,68,68,.09);
    color: #fca5a5;
}
.after-sales-panel {
    display: grid;
    gap: 16px;
}
.after-sale-table {
    min-width: 1300px;
}
.order-log-list {
    display: grid;
    gap: 10px;
}
.order-log-list > div {
    display: grid;
    grid-template-columns: 180px 180px 1fr;
    gap: 12px;
    padding: 13px;
    border-bottom: 1px solid rgba(148,163,184,.1);
}
.order-log-list time,
.order-log-list span {
    color: var(--muted);
}
.maintenance-drawer,
.reinspection-drawer {
    width: min(980px, 96vw);
}
.maintenance-drawer .form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
#maintenanceForm .field:has(select[name="charged"] option[value="否"]:checked) + .field,
#maintenanceForm .field:has(select[name="refueled"] option[value="否"]:checked) + .field,
#maintenanceForm .field:has(select[name="refueled"] option[value="否"]:checked) + .field + .field {
    display: none;
}
.titan-report-card {
    display: grid;
    gap: 18px;
}
.titan-report-card .report-stage-note {
    margin: 0;
    padding: 14px 16px;
    border: 1px solid rgba(56, 189, 248, .22);
    border-radius: 12px;
    background: rgba(14, 165, 233, .07);
    color: #bae6fd;
}
.reserved-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}
.after-sale-drawer {
    width: min(1180px, 97vw);
}
.after-sale-drawer .form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.after-sale-stats {
    grid-template-columns: repeat(12, minmax(145px, 1fr));
    overflow-x: auto;
}
.after-sale-filters {
    grid-template-columns: repeat(6, minmax(155px, 1fr));
}
.titan-after-sale-table,
.after-sale-issues-editor {
    min-width: 1800px;
}
.after-sale-detail-tabs {
    overflow-x: auto;
    scrollbar-width: thin;
}
.after-sale-detail-tabs .detail-tab {
    flex: 0 0 auto;
}
.after-sale-drawer .form-section {
    border-color: rgba(56, 189, 248, .16);
}
@media (max-width: 960px) {
    .main {
        grid-template-columns: 1fr;
    }
    .sidebar {
        min-height: auto;
    }
    .filters {
        grid-template-columns: 1fr;
    }
    .header-search {
        width: 100%;
    }
    .machine-ledger-filters,
    .form-grid {
        grid-template-columns: 1fr;
    }
    .detail-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .inspection-filters,
    .repair-filters,
    .inspection-detail-grid {
        grid-template-columns: 1fr;
    }
    .repair-summary {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .part-filters {
        grid-template-columns: 1fr;
    }
    .part-stats {
        grid-template-columns: repeat(8,150px);
    }
    .progress-state-cards {
        grid-template-columns: repeat(9,145px);
    }
    .progress-filters,
    .timeline-grid {
        grid-template-columns: 1fr;
    }
    .timeline-header {
        flex-direction: column;
    }
    .acceptance-state-cards {
        grid-template-columns: repeat(8,155px);
    }
    .nested-grid {
        grid-template-columns: 1fr;
    }
    .factory-order-stats {
        grid-template-columns: repeat(10,150px);
    }
    .factory-order-filters,
    .shipping-check-grid,
    .finance-numbers {
        grid-template-columns: 1fr;
    }
    .order-machine-inputs {
        grid-template-columns: 1fr;
    }
    .order-log-list > div {
        grid-template-columns: 1fr;
    }
    .maintenance-drawer .form-grid {
        grid-template-columns: 1fr;
    }
    .after-sale-drawer .form-grid,
    .after-sale-filters {
        grid-template-columns: 1fr;
    }
}

/* 外贸经营分析 */
.trade-page{display:grid;gap:18px}.trade-source{padding:8px 12px;border:1px solid rgba(56,189,248,.24);border-radius:999px;color:#7dd3fc;background:rgba(14,165,233,.07);font-size:12px}.trade-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border:1px solid rgba(148,163,184,.16);border-radius:12px;background:rgba(15,23,42,.72)}.trade-range-buttons{display:flex;gap:7px;flex-wrap:wrap}.trade-range-buttons button,.trade-custom button{border:1px solid rgba(148,163,184,.2);background:#111c2f;color:#94a3b8;border-radius:7px;padding:7px 11px;cursor:pointer}.trade-range-buttons button.active,.trade-range-buttons button:hover{color:#e0f2fe;border-color:#0ea5e9;background:rgba(14,165,233,.14)}.trade-custom{display:flex;align-items:center;gap:7px}.trade-custom input{color:#dbeafe;background:#0b1220;border:1px solid #26354d;border-radius:7px;padding:6px}.trade-range-label{margin-left:auto;color:#64748b;font-size:12px}.trade-kpis{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px}.trade-kpi{min-height:94px;padding:14px;text-align:left;border:1px solid rgba(56,189,248,.13);border-radius:11px;background:linear-gradient(145deg,rgba(15,31,51,.96),rgba(10,20,34,.96));color:#fff;cursor:pointer;transition:.2s}.trade-kpi:hover{transform:translateY(-2px);border-color:#0ea5e9}.trade-kpi span{display:block;color:#8291a7;font-size:12px}.trade-kpi strong{display:block;margin-top:9px;color:#f8fafc;font-size:21px}.trade-kpi small{color:#64748b}.trade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.trade-panel{padding:18px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(12,23,39,.86);min-width:0}.trade-panel h2{margin:0 0 16px;color:#dbeafe;font-size:15px}.trade-wide{grid-column:1/-1}.trade-empty{display:grid;place-items:center;min-height:160px;text-align:center;color:#64748b}.trade-empty span{font-size:28px;color:#334155}.trade-empty h3{margin:8px 0 2px;color:#94a3b8;font-size:14px}.trade-empty p{margin:0;font-size:12px}.trade-ranks{display:grid;gap:11px}.trade-ranks button{display:grid;grid-template-columns:minmax(90px,140px) 1fr auto;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:#cbd5e1;cursor:pointer;text-align:left}.trade-ranks i{height:7px;border-radius:9px;background:#17243a;overflow:hidden}.trade-ranks b{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#0284c7,#22d3ee)}.trade-ranks strong{color:#e2e8f0;font-size:12px}.trade-chart-placeholder{display:grid;place-items:center;min-height:160px;border:1px dashed #26354d;border-radius:10px;color:#64748b}.trade-recent{display:grid}.trade-recent button{display:grid;grid-template-columns:110px 1fr 1fr auto;gap:12px;padding:11px;border:0;border-bottom:1px solid rgba(148,163,184,.1);background:transparent;color:#94a3b8;text-align:left;cursor:pointer}.trade-recent button:hover{background:rgba(56,189,248,.05)}.trade-recent strong{color:#7dd3fc}.trade-table-panel{overflow:hidden}.trade-table-panel table{min-width:1100px}.trade-table-panel tbody tr{cursor:pointer}.trade-table-panel tbody tr:hover{background:rgba(14,165,233,.06)}.trade-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;color:#64748b}.trade-note{color:#94a3b8;line-height:1.8}.trade-data-actions{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}.trade-data-actions button{display:grid;gap:7px;padding:18px 10px;border:1px solid rgba(56,189,248,.14);border-radius:10px;background:#101c2e;color:#dbeafe;cursor:pointer}.trade-data-actions button:hover{border-color:#0ea5e9}.trade-data-actions button span{color:#38bdf8;font-size:20px}.trade-data-actions small{color:#64748b}.trade-definitions{columns:2;column-gap:36px;margin:0;padding-left:22px;color:#94a3b8;line-height:1.8}.trade-definitions li{break-inside:avoid;margin-bottom:7px}.modal #viewBody .table-container{max-height:65vh;overflow:auto}
.trade-test-toggle{display:flex;align-items:center;gap:6px;color:#fbbf24;font-size:12px}.trade-data-toolbar{display:flex;gap:9px;flex-wrap:wrap;padding:14px;border:1px solid rgba(56,189,248,.14);border-radius:11px;background:rgba(15,23,42,.7)}.trade-form-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.trade-form-grid label{display:grid;gap:6px;color:#94a3b8;font-size:12px}.trade-form-grid input,.trade-form-grid select,.trade-form-grid textarea,.trade-mapping select,.trade-import-head input{width:100%;box-sizing:border-box;padding:9px;border:1px solid #293951;border-radius:7px;background:#0b1424;color:#e2e8f0}.trade-span-2{grid-column:span 2}.trade-section-head,.trade-import-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}.trade-section-head h2,.trade-section-head h3,.trade-import-head h3{margin:0}.trade-line-table{min-width:1350px}.trade-line-table input{width:120px;padding:7px;border:1px solid #26364e;border-radius:6px;background:#0b1424;color:#e2e8f0}.trade-order-summary{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;padding:14px;border-radius:9px;background:rgba(14,165,233,.08);color:#bae6fd}.trade-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.trade-import-step h3{color:#dbeafe}.trade-mapping{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:9px;max-height:48vh;overflow:auto}.trade-mapping label{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px;padding:8px;border:1px solid rgba(148,163,184,.12);border-radius:8px;color:#94a3b8}.trade-validation-summary{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.trade-validation-summary b{padding:8px 12px;border-radius:7px;background:#172033;color:#cbd5e1}.trade-validation-summary .ok{color:#6ee7b7;background:rgba(16,185,129,.12)}.trade-validation-summary .warn{color:#fbbf24;background:rgba(245,158,11,.12)}.trade-validation-summary .error{color:#fca5a5;background:rgba(239,68,68,.12)}.trade-record-table{min-width:2200px}.trade-order-form .form-error{color:#fca5a5}.trade-import-step input[type=file]{display:block;width:100%;padding:20px;border:1px dashed #37506e;border-radius:10px;background:#0d1828;color:#94a3b8}
.target-dashboard{margin-top:2px}.target-dashboard>.trade-section-head{margin-top:0}.target-dashboard>.trade-section-head p{margin:5px 0 0;color:#64748b;font-size:12px}.target-status{padding:7px 11px;border-radius:999px;background:rgba(16,185,129,.13);color:#6ee7b7;font-size:12px}.target-status.danger,.target-person-list .danger{color:#fca5a5;background:rgba(239,68,68,.12)}.target-progress-list{display:grid;gap:13px}.target-progress-row{display:grid;grid-template-columns:minmax(180px,1.2fr) 2fr 90px 130px;align-items:center;gap:12px}.target-progress-row>div{display:grid}.target-progress-row span,.target-progress-row small{color:#64748b;font-size:12px}.target-progress-row i,.target-person-list i,.target-history i{height:8px;border-radius:10px;background:#17243a;overflow:hidden}.target-progress-row i b,.target-history i b{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#0284c7,#22d3ee)}.target-progress-row strong{color:#e2e8f0}.target-warnings{display:grid;gap:8px}.target-warnings button{display:grid;grid-template-columns:1fr 1fr 1.4fr 90px 1.4fr;gap:10px;align-items:center;padding:11px;border:1px solid rgba(239,68,68,.13);border-radius:8px;background:rgba(127,29,29,.08);color:#cbd5e1;text-align:left;cursor:pointer}.target-warnings em{color:#fca5a5;font-style:normal}.target-manager .detail-tabs{margin-bottom:16px}.target-manager table{min-width:1250px}.target-form{display:grid;gap:12px}.target-person-list{display:grid;gap:9px}.target-person-list button{display:grid;grid-template-columns:160px 130px 1fr 90px 110px;align-items:center;gap:10px;padding:12px;border:1px solid rgba(56,189,248,.12);border-radius:9px;background:#101b2d;color:#cbd5e1;text-align:left;cursor:pointer}.target-person-list i em{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#22d3ee)}.target-person-list small{padding:5px 7px;border-radius:6px;color:#7dd3fc}.target-history{display:grid;gap:10px}.target-history>div{display:grid;grid-template-columns:220px 1fr 80px;gap:12px;align-items:center;color:#94a3b8}.target-detail h3{margin-top:22px}
@media(max-width:1200px){.trade-kpis{grid-template-columns:repeat(3,minmax(130px,1fr))}.trade-data-actions{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.trade-kpis,.trade-grid,.trade-data-actions,.trade-form-grid,.trade-mapping{grid-template-columns:1fr 1fr}.trade-range-label{width:100%;margin-left:0}.trade-definitions{columns:1}.trade-recent button{grid-template-columns:1fr 1fr}.trade-source{display:none}.trade-span-2{grid-column:1/-1}.target-progress-row,.target-warnings button,.target-person-list button,.target-history>div{grid-template-columns:1fr 1fr}}
.report-actions{margin-left:auto}.management-report{max-width:1180px;margin:0 auto;color:#cbd5e1}.report-screen-actions{position:sticky;top:0;z-index:8;display:flex;gap:8px;justify-content:flex-end;padding:12px;background:rgba(7,15,27,.94);backdrop-filter:blur(8px)}.report-cover{min-height:520px;display:grid;place-content:center;text-align:center;padding:60px;border:1px solid rgba(56,189,248,.2);border-radius:14px;background:radial-gradient(circle at top,rgba(14,165,233,.12),transparent 55%),#0b1424}.report-cover>div{color:#38bdf8;letter-spacing:5px}.report-cover h1{margin:24px 0 6px;font-size:34px;color:#f8fafc}.report-cover h2{margin:0 0 20px;color:#94a3b8;font-weight:400}.report-cover dl{display:grid;grid-template-columns:auto auto;gap:8px 24px;margin:30px auto;text-align:left}.report-cover dt{color:#64748b}.report-cover dd{margin:0}.report-cover>strong{color:#fbbf24}.report-nav{position:sticky;top:64px;z-index:7;display:flex;gap:6px;overflow:auto;margin:14px 0;padding:10px;border:1px solid rgba(148,163,184,.13);border-radius:10px;background:#0a1423}.report-nav a{flex:none;padding:7px 10px;border-radius:6px;color:#94a3b8;text-decoration:none}.report-nav a:hover{background:rgba(14,165,233,.12);color:#7dd3fc}.report-section{margin:14px 0;padding:24px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:#0c1727}.report-section>h2{margin:0 0 18px;color:#e0f2fe;font-size:19px}.management-summary{font-size:16px;line-height:2;color:#dbeafe}.report-metric-table{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.report-metric-table button{display:grid;gap:7px;padding:15px;border:1px solid rgba(56,189,248,.13);border-radius:9px;background:#101c2e;color:#94a3b8;text-align:left;cursor:pointer}.report-metric-table strong{color:#f8fafc;font-size:19px}.report-metric-table small{color:#64748b}.report-reference{margin-top:14px;padding:13px;border-left:3px solid #0ea5e9;background:rgba(14,165,233,.07);color:#94a3b8}.report-finance{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.report-finance b{padding:15px;border-radius:8px;background:#111e31;color:#bae6fd}.report-risks{display:grid;gap:8px}.report-risks button{display:grid;grid-template-columns:70px 1fr 150px;gap:10px;padding:12px;border:1px solid rgba(239,68,68,.14);border-radius:8px;background:rgba(127,29,29,.08);color:#cbd5e1;text-align:left;cursor:pointer}.report-risks button>b{color:#fca5a5}.report-risks p{grid-column:2/-1;margin:0;color:#94a3b8}.report-recommendations{display:grid;gap:12px;line-height:1.7}.report-section textarea{width:100%;min-height:150px;box-sizing:border-box;margin-bottom:10px;padding:14px;border:1px solid #293951;border-radius:8px;background:#091321;color:#e2e8f0}.report-signatures{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:24px 0;padding:35px 20px;border:1px solid #334155}.management-report>footer{text-align:center;color:#64748b;padding:18px}
@media(max-width:760px){.report-actions{width:100%;margin-left:0}.report-metric-table,.report-finance,.report-signatures{grid-template-columns:1fr 1fr}.report-risks button{grid-template-columns:1fr}.report-risks p{grid-column:auto}.report-cover{padding:25px}.report-cover h1{font-size:25px}}
@media print{@page{size:A4 portrait;margin:12mm}.header,.sidebar,.report-screen-actions,.report-nav,.report-section button,.management-report textarea+.button-secondary{display:none!important}.main{display:block}.content{padding:0}.management-report{max-width:none;color:#111}.report-cover,.report-section{background:#fff;color:#111;border-color:#999;box-shadow:none}.report-cover{min-height:255mm;break-after:page}.report-cover h1,.report-section>h2,.management-summary,.report-metric-table strong{color:#111}.report-section{break-before:page;break-inside:auto;padding:10px;margin:0}.report-section table tr,.report-risks button,.report-metric-table button{break-inside:avoid;background:#fff;color:#111}.report-metric-table{grid-template-columns:repeat(3,1fr)}.report-signatures{break-inside:avoid;color:#111}.management-report>footer{color:#555}.trade-panel{background:#fff;color:#111;border-color:#aaa}.trade-panel h2{color:#111}}
.group-dashboard{display:grid;gap:16px}.group-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px;border:1px solid rgba(56,189,248,.18);border-radius:14px;background:linear-gradient(120deg,rgba(14,165,233,.1),rgba(15,23,42,.82))}.group-hero small{color:#38bdf8;letter-spacing:4px}.group-hero h1{margin:5px 0;color:#f8fafc}.group-hero p{margin:0;color:#64748b}.group-statuses{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.group-statuses>span{padding:7px 9px;border-radius:7px;background:#101d30;color:#94a3b8;font-size:12px}.group-toolbar{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid rgba(148,163,184,.12);border-radius:10px;background:#0b1525}.group-core,.group-panel,.group-summary{padding:18px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(12,23,39,.88)}.group-core h2,.group-panel h2,.group-summary h2{margin:0 0 14px;color:#dbeafe;font-size:17px}.group-metrics{display:grid;grid-template-columns:repeat(8,minmax(125px,1fr));gap:9px}.group-metric{display:grid;gap:9px;min-height:87px;padding:12px;border:1px solid rgba(56,189,248,.11);border-radius:9px;background:#101c2e;color:#94a3b8;text-align:left;cursor:pointer}.group-metric:hover{border-color:#0ea5e9}.group-metric span{display:flex;justify-content:space-between;gap:5px;font-size:12px}.group-metric em{color:#38bdf8;font-size:10px;font-style:normal}.group-metric strong{color:#f8fafc;font-size:18px}.group-summary p{margin:0;color:#cbd5e1;line-height:1.9}.group-module-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.group-module-cards>button{display:grid;gap:10px;padding:20px;border:1px solid rgba(56,189,248,.14);border-radius:12px;background:linear-gradient(145deg,#101d30,#0b1524);color:#94a3b8;text-align:left;cursor:pointer}.group-module-cards h2{margin:0;color:#dbeafe}.group-module-cards strong{color:#7dd3fc;font-size:22px}.group-module-cards em{color:#38bdf8;font-style:normal}.group-sections{display:grid;grid-template-columns:1fr 1fr;gap:14px}.group-inline-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.group-inline-stats span{padding:7px 10px;border-radius:7px;background:#111f33;color:#94a3b8}.group-recent{display:grid}.group-recent button{display:grid;grid-template-columns:1fr 1.2fr 1fr 1fr 60px;gap:8px;padding:9px;border:0;border-bottom:1px solid rgba(148,163,184,.09);background:transparent;color:#94a3b8;text-align:left;cursor:pointer}.group-recent strong{color:#7dd3fc}.group-trade-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.group-mini-panel{padding:14px;border:1px solid rgba(148,163,184,.1);border-radius:9px;background:#0b1626}.group-mini-panel h3{margin:0 0 12px;color:#cbd5e1}.group-mini-panel>button{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:7px;width:100%;padding:7px 0;border:0;background:transparent;color:#94a3b8;text-align:left;cursor:pointer}.group-mini-panel i{height:6px;overflow:hidden;border-radius:7px;background:#17243a}.group-mini-panel i b{display:block;height:100%;background:linear-gradient(90deg,#0284c7,#22d3ee)}.group-risks{display:grid;gap:8px}.group-risks>div{display:grid;grid-template-columns:60px 90px 1fr 1.5fr 1.2fr auto auto;gap:9px;align-items:center;padding:10px;border:1px solid rgba(239,68,68,.11);border-radius:8px;background:rgba(127,29,29,.06)}.group-risks b{padding:4px 6px;border-radius:5px;text-align:center}.risk-重大{color:#fecaca;background:#7f1d1d}.risk-较高{color:#fca5a5;background:rgba(239,68,68,.18)}.risk-关注{color:#fcd34d;background:rgba(245,158,11,.15)}.risk-提醒{color:#93c5fd;background:rgba(59,130,246,.13)}.group-risks p{margin:0;color:#cbd5e1}.group-risks small{color:#64748b}.group-focus-list{display:grid;gap:7px}.group-focus-list button{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 80px;gap:10px;padding:11px;border:1px solid rgba(56,189,248,.11);border-radius:8px;background:#101c2e;color:#94a3b8;text-align:left;cursor:pointer}.group-focus-list b{color:#dbeafe}.group-completeness{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.group-completeness>div{display:grid;gap:7px;padding:14px;border-radius:9px;background:#101d30}.group-completeness strong{color:#7dd3fc}.group-completeness span{color:#64748b}.group-signatures{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:32px 20px;border:1px solid rgba(148,163,184,.18);color:#94a3b8}
@media(max-width:1300px){.group-metrics{grid-template-columns:repeat(4,1fr)}.group-trade-grid{grid-template-columns:1fr 1fr}.group-risks>div{grid-template-columns:70px 90px 1fr 1fr}.group-risks small{grid-column:3/-1}}
@media(max-width:800px){.group-hero,.group-toolbar{align-items:flex-start;flex-direction:column}.group-metrics,.group-module-cards,.group-sections,.group-trade-grid,.group-completeness{grid-template-columns:1fr 1fr}.group-recent button,.group-focus-list button,.group-risks>div{grid-template-columns:1fr 1fr}.group-signatures{grid-template-columns:1fr 1fr}}
@media print{.group-toolbar,.group-statuses button,.group-panel button,.group-module-cards{display:none!important}.group-dashboard{color:#111}.group-hero,.group-core,.group-panel,.group-summary{background:#fff;color:#111;border-color:#999;break-inside:avoid}.group-hero h1,.group-core h2,.group-panel h2,.group-summary h2,.group-summary p,.group-metric strong{color:#111}.group-metrics{grid-template-columns:repeat(4,1fr)}.group-metric{background:#fff;border-color:#aaa}.group-sections,.group-trade-grid{grid-template-columns:1fr 1fr}.group-risks>div{background:#fff;color:#111}.group-signatures{color:#111;break-inside:avoid}}
.group-overview-v1{display:grid;gap:18px}.group-overview-v1>header{display:flex;align-items:center;justify-content:space-between}.group-overview-v1 header small{color:#38bdf8;letter-spacing:3px}.group-overview-v1 header h1{margin:4px 0;color:#f8fafc}.group-overview-v1 header p,.overview-attention .overview-section-head p{margin:0;color:#64748b}.overview-core-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.overview-core-card,.overview-mini-grid button{border:1px solid rgba(56,189,248,.14);background:#101c2e;color:#94a3b8;cursor:pointer;text-align:left}.overview-core-card{display:grid;gap:9px;padding:18px;border-radius:11px}.overview-core-card strong{color:#f8fafc;font-size:30px}.overview-core-card small{color:#64748b}.overview-business-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.overview-business-grid>section,.overview-attention{padding:18px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(12,23,39,.88)}.overview-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.overview-section-head h2{margin:0;color:#dbeafe}.overview-section-head>button{border:0;background:transparent;color:#38bdf8;cursor:pointer}.overview-section-head>span{color:#7dd3fc}.overview-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.overview-mini-grid button{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:8px}.overview-mini-grid strong{color:#f8fafc;font-size:20px}.overview-attention-list{display:grid}.overview-attention-list button{display:grid;grid-template-columns:minmax(90px,.7fr) 90px minmax(220px,3fr) 90px;align-items:center;gap:12px;padding:12px 8px;border:0;border-bottom:1px solid rgba(148,163,184,.1);background:transparent;color:#94a3b8;text-align:left;cursor:pointer}.overview-attention-list b{color:#e2e8f0}.overview-attention-list em{color:#7dd3fc;font-style:normal;font-size:12px}.overview-attention-list strong{color:#38bdf8;text-align:right}.overview-empty{padding:30px;text-align:center;color:#64748b}@media(max-width:900px){.overview-core-grid,.overview-business-grid{grid-template-columns:1fr 1fr}.overview-attention-list button{grid-template-columns:1fr 90px}.overview-attention-list span{grid-column:1/-1}}
.overview-load-error{max-width:560px;margin:80px auto;padding:28px;border:1px solid rgba(239,68,68,.25);border-radius:12px;background:rgba(127,29,29,.1);text-align:center}.overview-load-error h2{color:#fecaca}.overview-load-error p{color:#94a3b8}
.vendor-page{display:grid;gap:16px}.vendor-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.vendor-attention{display:grid;gap:8px}.vendor-attention button{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;padding:12px;border:1px solid rgba(245,158,11,.14);border-radius:8px;background:rgba(120,53,15,.08);color:#94a3b8;text-align:left;cursor:pointer}.vendor-attention b{color:#fcd34d}.pending-vendors{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pending-vendors>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid rgba(148,163,184,.12);border-radius:8px;background:#101c2e;color:#cbd5e1}.vendor-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.vendor-cards article{display:grid;gap:11px;padding:17px;border:1px solid rgba(56,189,248,.13);border-radius:11px;background:#0d192a}.vendor-cards article>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.vendor-cards h2{margin:0;color:#dbeafe;font-size:17px}.vendor-cards article>div:first-child span{color:#64748b;font-size:12px}.vendor-cards p{margin:0;color:#94a3b8;min-height:38px}.vendor-tags{display:flex;gap:7px}.vendor-tags b{padding:5px 7px;border-radius:6px;background:rgba(14,165,233,.1);color:#7dd3fc;font-size:12px}.vendor-cards small{color:#64748b}.vendor-cards footer{display:flex;justify-content:flex-end;gap:5px;border-top:1px solid rgba(148,163,184,.09);padding-top:8px}.vendor-detail{display:grid;gap:14px}.vendor-detail .page-header h1{margin:8px 0 4px;color:#f8fafc}.vendor-detail .page-header p{margin:0;color:#94a3b8}.vendor-detail-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.vendor-detail-kpis>div{display:grid;gap:8px;padding:14px;border:1px solid rgba(56,189,248,.12);border-radius:8px;background:#101c2e}.vendor-detail-kpis span{color:#64748b;font-size:12px}.vendor-detail-kpis strong{color:#e0f2fe}.vendor-detail table tbody tr{cursor:pointer}.vendor-detail .trade-panel h2 small{color:#64748b;font-weight:400}.vendor-print-sign{padding:30px;border:1px solid rgba(148,163,184,.15);color:#94a3b8}.vendor-evaluation-table{min-width:1900px}
@media(max-width:1100px){.vendor-overview-grid,.vendor-cards,.pending-vendors{grid-template-columns:1fr 1fr}.vendor-detail-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.vendor-overview-grid,.vendor-cards,.pending-vendors{grid-template-columns:1fr}.vendor-detail-kpis{grid-template-columns:1fr 1fr}.vendor-attention button{grid-template-columns:1fr}}
@media print{.vendor-detail .page-actions,.vendor-detail .back-button{display:none!important}.vendor-detail{color:#111}.vendor-detail .page-header h1,.vendor-detail .trade-panel h2,.vendor-detail-kpis strong{color:#111}.vendor-detail .trade-panel,.vendor-detail-kpis>div{background:#fff;border-color:#999;break-inside:avoid}.vendor-detail table tr{break-inside:avoid}.vendor-print-sign{color:#111;min-height:80px}}
.finance-page{display:grid;gap:15px}.finance-alert{padding:12px 15px;border:1px solid rgba(245,158,11,.3);border-radius:8px;background:rgba(120,53,15,.12);color:#fcd34d}.finance-unit-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.finance-unit-cards>button{display:grid;gap:10px;padding:20px;border:1px solid rgba(56,189,248,.14);border-radius:12px;background:linear-gradient(145deg,#101d30,#0a1524);color:#94a3b8;text-align:left;cursor:pointer}.finance-unit-cards h2{margin:0;color:#dbeafe}.finance-unit-cards>button>strong{font-size:22px;color:#7dd3fc}.finance-unit-cards>button>div{display:flex;gap:8px;flex-wrap:wrap}.finance-unit-cards em{font-style:normal;padding:5px 7px;border-radius:6px;background:#16243a}.finance-unit-cards b{color:#6ee7b7}.finance-unit-cards .negative,.negative{color:#fca5a5!important}.finance-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.finance-kpis>div{display:grid;gap:8px;padding:13px;border:1px solid rgba(56,189,248,.11);border-radius:8px;background:#101c2e}.finance-kpis span{color:#64748b;font-size:12px}.finance-kpis strong{color:#e0f2fe;font-size:17px}.finance-note{padding:11px;border-left:3px solid #0ea5e9;background:rgba(14,165,233,.06);color:#94a3b8;line-height:1.7}.finance-deposit{display:grid;gap:11px}.finance-deposit>div{display:grid;grid-template-columns:130px 1fr 130px 70px;gap:10px;align-items:center;color:#94a3b8}.finance-deposit i{height:8px;border-radius:8px;background:#17243a;overflow:hidden}.finance-deposit i b{display:block;height:100%;background:linear-gradient(90deg,#0284c7,#22d3ee)}.finance-risks{display:grid;gap:8px}.finance-risks button{display:grid;grid-template-columns:70px 120px 1fr;gap:10px;padding:11px;border:1px solid rgba(239,68,68,.12);border-radius:8px;background:rgba(127,29,29,.07);color:#94a3b8;text-align:left;cursor:pointer}.finance-risks b{color:#fca5a5}.finance-risks p{margin:0;color:#cbd5e1}.finance-trend{display:flex;align-items:end;gap:7px;height:220px;padding:15px;border-bottom:1px solid #334155;overflow-x:auto}.finance-trend>div{display:grid;grid-template-rows:1fr auto auto;align-items:end;min-width:38px;height:100%;text-align:center}.finance-trend i{display:block;min-height:4px;border-radius:5px 5px 0 0;background:linear-gradient(#22d3ee,#2563eb)}.finance-trend span,.finance-trend small{color:#64748b;font-size:10px}.finance-ledger-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.finance-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.finance-detail-grid>div{display:grid;gap:6px;padding:11px;border-radius:7px;background:#101c2e}.finance-detail-grid span{color:#64748b;font-size:12px}.finance-detail-grid strong{color:#dbeafe}.finance-signatures{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;min-height:70px;padding:28px 18px;border:1px solid rgba(148,163,184,.15);color:#94a3b8}.finance-form-section{margin-top:16px;padding:14px;border:1px solid rgba(148,163,184,.12);border-radius:9px}.finance-internal-row{display:grid;grid-template-columns:160px 130px 1fr 160px auto;gap:8px;margin-bottom:8px}.finance-internal-row select,.finance-internal-row input{padding:8px;border:1px solid #293951;border-radius:6px;background:#0b1424;color:#e2e8f0}.finance-snapshot-view{display:grid;gap:14px}
@media(max-width:1100px){.finance-kpis{grid-template-columns:repeat(3,1fr)}.finance-unit-cards{grid-template-columns:1fr}.finance-internal-row{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.finance-kpis,.finance-ledger-grid,.finance-detail-grid{grid-template-columns:1fr 1fr}.finance-deposit>div,.finance-risks button{grid-template-columns:1fr 1fr}.finance-signatures{grid-template-columns:1fr 1fr}}
@media print{.finance-page .page-actions,.finance-page button{display:none!important}.finance-page{color:#111}.finance-unit-cards>button,.finance-kpis>div,.finance-detail-grid>div,.finance-page .trade-panel{background:#fff;color:#111;border-color:#999;break-inside:avoid}.finance-unit-cards h2,.finance-unit-cards>button>strong,.finance-kpis strong,.finance-detail-grid strong,.finance-page .trade-panel h2{color:#111}.finance-unit-cards,.finance-kpis{grid-template-columns:repeat(3,1fr)}.finance-signatures{color:#111;break-inside:avoid}.finance-risks button{background:#fff;color:#111}}

/* Local authentication and authorization V1 */
.auth-hidden{display:none!important}#authRoot{min-height:100vh;display:grid;place-items:center;padding:28px;box-sizing:border-box;background:radial-gradient(circle at 20% 10%,#123151 0,transparent 36%),linear-gradient(145deg,#050b13,#0a1524 55%,#07101c);color:#cbd5e1}.auth-card{width:min(460px,100%);padding:34px;border:1px solid rgba(56,189,248,.22);border-radius:16px;background:rgba(8,18,32,.94);box-shadow:0 24px 80px rgba(0,0,0,.42)}.auth-brand{color:#e0f2fe;font-size:24px;font-weight:800;letter-spacing:3px}.auth-brand small{display:block;margin-top:8px;color:#38bdf8;font-size:11px;letter-spacing:2px}.auth-card h1{margin:30px 0 8px;color:#f8fafc}.auth-card>p{color:#94a3b8}.auth-form{display:grid;gap:15px;margin-top:22px}.auth-form label{display:grid;gap:7px;color:#94a3b8;font-size:13px}.auth-form input,.auth-form select,.auth-form textarea,.permission-toolbar input,.permission-matrix select{box-sizing:border-box;width:100%;padding:11px 12px;border:1px solid #293b53;border-radius:8px;background:#081321;color:#e2e8f0;outline:none}.auth-form input:focus,.auth-form select:focus{border-color:#0ea5e9}.auth-form textarea{min-height:80px}.password-row{display:grid;grid-template-columns:1fr auto}.password-row input{border-radius:8px 0 0 8px}.password-row button{border:1px solid #293b53;border-left:0;border-radius:0 8px 8px 0;background:#12233a;color:#7dd3fc}.auth-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.auth-check input{width:auto}.auth-actions{display:flex;justify-content:flex-end;gap:9px}.auth-error{min-height:18px;margin:0;color:#fca5a5}.auth-security{margin:24px 0 0!important;padding:13px;border-left:3px solid #f59e0b;background:rgba(120,53,15,.12);color:#fcd34d!important;font-size:12px;line-height:1.7}.auth-user-button{display:grid;gap:2px;border:0;background:transparent;color:#f8fafc;text-align:right;cursor:pointer}.auth-user-button span{color:#7dd3fc;font-size:11px}.header-right{position:relative}.auth-user-menu{position:absolute;top:48px;right:0;z-index:60;width:190px;padding:7px;border:1px solid #263a54;border-radius:9px;background:#0b1728;box-shadow:0 16px 45px rgba(0,0,0,.45)}.auth-user-menu button{display:block;width:100%;padding:10px;border:0;border-radius:6px;background:transparent;color:#cbd5e1;text-align:left;cursor:pointer}.auth-user-menu button:hover{background:#142641}.auth-panel-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(2,6,12,.74)}.auth-panel{width:min(680px,100%);max-height:88vh;overflow:auto;padding:22px;border:1px solid #29415f;border-radius:14px;background:#0a1626;color:#cbd5e1}.auth-panel>header{display:flex;justify-content:space-between;align-items:center}.auth-panel>header h2{color:#e0f2fe}.auth-panel>header button{border:0;background:transparent;color:#94a3b8;font-size:26px}.auth-account{display:grid;grid-template-columns:130px 1fr;gap:12px}.auth-account dt{color:#64748b}.auth-account dd{margin:0;color:#e2e8f0}.auth-empty{margin:10vh auto;max-width:600px;padding:40px;text-align:center;border:1px solid #263a54;border-radius:14px;background:#0b1728;color:#94a3b8}.permission-page{display:grid;gap:16px}.permission-tabs{display:flex;gap:7px;overflow:auto;padding:8px;border:1px solid rgba(148,163,184,.14);border-radius:10px;background:#0a1524}.permission-tabs button{flex:none;padding:9px 13px;border:0;border-radius:7px;background:transparent;color:#94a3b8}.permission-tabs button.active{background:#0c4a6e;color:#e0f2fe}.permission-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.permission-toolbar input{max-width:360px}.permission-page table small,.permission-page table b{display:block}.permission-page table small{margin-top:4px;color:#64748b}.permission-page td button,.role-grid button{margin:2px;padding:5px 8px;border:1px solid #29415f;border-radius:5px;background:#101f33;color:#93c5fd}.account-正常{color:#6ee7b7}.account-暂停{color:#fcd34d}.account-已停用{color:#fca5a5}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.role-grid article{padding:16px;border:1px solid rgba(56,189,248,.14);border-radius:10px;background:#0c1829}.role-grid h3{margin:0;color:#dbeafe}.role-grid p{color:#64748b}.permission-matrix table{min-width:1150px}.permission-matrix select{min-width:95px;padding:7px}.permission-page .auth-security{max-width:760px}.sidebar [hidden]{display:none!important}
@media(max-width:800px){#authRoot{padding:15px}.auth-card{padding:24px}.role-grid{grid-template-columns:1fr}.permission-toolbar{align-items:stretch;flex-direction:column}.permission-toolbar input{max-width:none}}
.account-active{color:#6ee7b7}.account-disabled{color:#fca5a5}
.server-tech-info{margin-top:18px;padding:12px;white-space:pre-wrap;word-break:break-word;border:1px solid #293b53;border-radius:8px;background:#050d17;color:#93c5fd;font-size:12px;line-height:1.7}
.ai-brain-page{display:grid;gap:14px;height:calc(100vh - 110px);min-height:560px}.ai-brain-header{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border:1px solid rgba(56,189,248,.16);border-radius:12px;background:#0b1728}.ai-brain-header h1{margin:0;color:#f8fafc}.ai-brain-header p{margin:4px 0 0;color:#38bdf8}.ai-brain-identity{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.ai-brain-identity span,.ai-brain-identity b{padding:6px 9px;border-radius:7px;background:#111f33;color:#94a3b8}.ai-brain-identity b{color:#dbeafe}.ai-brain-layout{display:grid;grid-template-columns:250px 1fr;gap:12px;min-height:0}.ai-conversations,.ai-chat{min-height:0;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:#091524}.ai-conversations{display:flex;flex-direction:column;gap:9px;padding:12px;overflow:auto}.ai-conversation-item{display:grid;gap:5px;padding:11px;border:1px solid transparent;border-radius:8px;background:#101d30;color:#cbd5e1;text-align:left}.ai-conversation-item.active{border-color:#0ea5e9;background:#0c2942}.ai-conversation-item small,.ai-empty,.ai-loading{color:#64748b}.ai-chat{display:grid;grid-template-rows:1fr auto auto;overflow:hidden}.ai-chat-messages{display:grid;align-content:start;gap:12px;padding:18px;overflow:auto}.ai-message{display:grid;gap:7px;max-width:82%;padding:13px 15px;border-radius:11px;background:#101d30;color:#cbd5e1;line-height:1.65}.ai-message.user{justify-self:end;background:#0c4a6e}.ai-message strong{color:#7dd3fc}.ai-message small{color:#64748b}.ai-welcome,.ai-unconfigured{margin:auto;padding:30px;text-align:center;color:#94a3b8}.ai-welcome h2,.ai-unconfigured h2{color:#dbeafe}.ai-welcome button{margin:4px;padding:8px 10px;border:1px solid #29415f;border-radius:7px;background:#101f33;color:#93c5fd}.ai-composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px;border-top:1px solid rgba(148,163,184,.14)}.ai-composer textarea{resize:none;padding:12px;border:1px solid #293b53;border-radius:9px;background:#07111f;color:#e2e8f0}.ai-action-card{margin:0 12px 12px;padding:14px;border:1px solid #f59e0b;border-radius:10px;background:rgba(120,53,15,.12);color:#cbd5e1}.ai-action-card>header,.ai-action-card>footer{display:flex;justify-content:space-between;gap:8px}.ai-action-card dl{display:grid;grid-template-columns:90px 1fr;gap:8px}.ai-action-card dt{color:#64748b}.ai-action-card dd{margin:0}.ai-action-card pre{max-height:150px;overflow:auto;white-space:pre-wrap}.ai-action-card footer{justify-content:flex-end}.ai-action-card.risk-high{border-color:#ef4444;background:rgba(127,29,29,.14)}
@media(max-width:850px){.ai-brain-page{height:auto}.ai-brain-header{align-items:flex-start;flex-direction:column}.ai-brain-layout{grid-template-columns:1fr}.ai-conversations{max-height:220px}.ai-chat{min-height:600px}.ai-message{max-width:94%}}
.machine-dossier{display:grid;gap:14px;max-width:1200px;margin:auto}.dossier-cover{display:flex;justify-content:space-between;gap:20px;padding:24px;border:1px solid rgba(56,189,248,.2);border-radius:12px;background:linear-gradient(135deg,#0a1829,#0d2339)}.dossier-cover span,.dossier-cover small{display:block;color:#7dd3fc}.dossier-cover h2{margin:8px 0;color:#f8fafc;font-size:28px}.dossier-cover p{margin:0;color:#94a3b8}.dossier-cover>div:last-child{display:grid;align-content:center;text-align:right}.dossier-cover strong{color:#e2e8f0;font-size:20px}.dossier-events,.dossier-section{border:1px solid rgba(148,163,184,.14);border-radius:10px;background:#0a1524}.dossier-events{padding:18px}.dossier-event-line{display:flex;gap:8px;overflow:auto}.dossier-event-line button{min-width:145px;padding:10px;border:1px solid #20334b;border-radius:8px;background:#0f1e31;color:#cbd5e1;text-align:left}.dossier-event-line time{display:block;color:#64748b;font-size:11px}.dossier-event-line span{display:block;margin-top:4px}.dossier-section>summary{display:flex;align-items:center;gap:12px;padding:15px 18px;cursor:pointer}.dossier-section>summary span{color:#38bdf8;font-weight:700}.dossier-section>summary h3{margin:0;color:#e2e8f0}.dossier-section>div{padding:0 18px 18px}.dossier-section table{min-width:760px}.dossier-empty{padding:22px;border:1px dashed #293b53;border-radius:8px;color:#64748b;text-align:center}.dossier-note{padding:10px;border-radius:7px;background:#0d2033;color:#93c5fd}.dossier-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.dossier-timeline article{padding:13px;border:1px solid #20334b;border-radius:8px;background:#0d1929}.dossier-timeline header{display:flex;justify-content:space-between;gap:8px}.dossier-timeline p{margin:7px 0;color:#94a3b8;font-size:12px}.dossier-timeline em{display:block;color:#fca5a5;font-style:normal}.dossier-status{padding:3px 7px;border-radius:999px;background:#17243a;color:#94a3b8;font-size:11px}.dossier-status.status-approved,.dossier-status.status-completed{background:rgba(16,185,129,.14);color:#6ee7b7}.dossier-status.status-rejected{background:rgba(239,68,68,.14);color:#fca5a5}.dossier-status.status-submitted,.dossier-status.status-in_progress{background:rgba(245,158,11,.14);color:#fcd34d}@media(max-width:700px){.dossier-cover{flex-direction:column}.dossier-cover>div:last-child{text-align:left}}
.timeline-wait-reason{color:var(--muted);font-size:.88rem}.timeline-parallel-summary{display:block;margin-top:4px;color:var(--muted);font-size:.78rem;white-space:normal}
.admin-correction-overlay .machine-drawer{box-sizing:border-box;max-width:760px}.admin-correction-overlay #adminCorrectionContent{box-sizing:border-box;max-width:100%;min-width:0}.admin-correction-overlay .admin-readonly{line-height:1.8}.admin-correction-overlay form,.admin-correction-overlay .form-section,.admin-correction-overlay .form-grid,.admin-correction-overlay .field{box-sizing:border-box;max-width:100%;min-width:0}.admin-correction-overlay input,.admin-correction-overlay select,.admin-correction-overlay textarea{box-sizing:border-box;max-width:100%;min-width:0;width:100%}.admin-correction-overlay .admin-confirmation{overflow-wrap:anywhere}.admin-actions{white-space:nowrap}.button-danger{border:0;border-radius:8px;padding:10px 16px;background:#b91c1c;color:#fff;cursor:pointer}@media(max-width:700px){.admin-actions{display:flex;gap:6px}.admin-correction-overlay .machine-drawer{width:100%}.admin-correction-overlay .form-grid{grid-template-columns:minmax(0,1fr)}}

/* UI Polish V1 Stage 1: global visual baseline. */
body{font-size:14px;color:var(--text-primary)}
:where(button,input,select,textarea,a):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.content{padding:var(--space-6);gap:var(--space-4);min-width:0;align-content:start}
.page-header{gap:var(--space-4);margin-bottom:var(--space-4);align-items:flex-start}
.page-header-main,.page-header>div:first-child{min-width:0}
.page-title,.page-header h1{margin:0;color:var(--text-primary);font-size:22px;line-height:1.3}
.page-subtitle,.page-header p{margin:6px 0 0;color:var(--text-muted);font-size:13px;line-height:1.55}
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}
.page-breadcrumb,.back-button{display:inline-flex;align-items:center;min-height:var(--control-compact);margin:0 0 var(--space-2);color:var(--text-secondary);font-size:13px}
.section-title,.detail-subtitle{font-size:18px}.card-title,.stat-card h3,.trade-panel h2{font-size:15px}table{font-size:13px}small,.helper-text,.meta-text{font-size:12px}
.button-primary,.button-secondary,.button-outline,.button-ghost,.button-danger{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-normal);padding:0 14px;border:1px solid transparent;border-radius:var(--radius-md);font-size:13px;font-weight:600;line-height:1;cursor:pointer}
.button-primary{background:var(--primary);color:#111}.button-primary:hover{background:var(--primary-hover)}
.button-secondary,.button-outline{border-color:var(--border-strong);background:var(--bg-surface-elevated);color:var(--text-primary)}
.button-ghost,.button-link,.back-button{border-color:transparent;background:transparent;color:var(--info)}
.button-danger,.danger-link{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.1);color:#fca5a5}
.button-compact{min-height:var(--control-compact);padding-inline:10px}:where(button,.button-primary,.button-secondary,.button-outline,.button-ghost,.button-danger)[disabled]{cursor:not-allowed;opacity:.45}
.tag,.badge,.status-badge,.work-status,.titan-stage,.dossier-status{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;line-height:1;white-space:nowrap}
.status-neutral,.tag-muted{background:rgba(148,163,184,.13);color:var(--text-secondary)}.status-info,.tag-normal{background:rgba(56,189,248,.12);color:#7dd3fc}.status-progress,.tag-progress,.tag-review{background:rgba(59,130,246,.16);color:#93c5fd}.status-success,.tag-success,.tag-paid{background:rgba(34,197,94,.14);color:#86efac}.status-warning,.tag-warning,.tag-partial{background:rgba(245,158,11,.14);color:#fcd34d}.status-danger,.tag-critical,.tag-overdue,.tag-unpaid{background:rgba(239,68,68,.16);color:#fca5a5}
.ui-state,.loading-state,.empty-state,.overview-load-error,.ai-loading,.ai-unconfigured{display:grid;place-items:center;align-content:center;gap:var(--space-2);min-height:160px;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-muted);text-align:center}
.loading-state::before,.ai-loading::before{content:"";width:20px;height:20px;border:2px solid var(--border-strong);border-top-color:var(--info);border-radius:50%;animation:kdt-spin .8s linear infinite}@keyframes kdt-spin{to{transform:rotate(360deg)}}
.overview-load-error{border-color:rgba(239,68,68,.28);background:rgba(127,29,29,.1)}.overview-load-error .button-primary{background:var(--bg-surface-elevated);color:var(--text-primary);border-color:var(--border-strong)}
.card,.card-standard,.detail-card,.note-panel,.trade-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:none}.card,.card-standard{padding:var(--space-4)}.metric-card,.stat-card{padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface)}
.input,.select,.input-small,.textarea,.field input,.field select,.field textarea{min-height:var(--control-normal);padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font:inherit}textarea,.textarea,.field textarea{min-height:92px}.field,.filter-group label{font-size:13px}.helper-text{color:var(--text-muted)}
:where(input,select,textarea)[readonly]{background:rgba(148,163,184,.06);color:var(--text-secondary)}:where(input,select,textarea)[disabled]{background:rgba(148,163,184,.04);color:var(--text-muted);cursor:not-allowed;opacity:.58}
.modal-overlay,.drawer-overlay{background:var(--overlay)}.modal{width:min(720px,96vw);max-height:calc(100vh - 32px);padding:0;overflow:hidden;border-color:var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface-elevated)}
.modal-header{position:sticky;top:0;z-index:2;margin:0;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-surface-elevated)}.modal-body{max-height:calc(100vh - 156px);padding:20px;overflow:auto}.modal-footer{position:sticky;bottom:0;z-index:2;margin:0;padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-surface-elevated)}
.modal-sm,.drawer-sm{width:min(480px,96vw)}.modal-md,.drawer-md{width:min(720px,96vw)}.modal-lg,.drawer-lg,.supplier-machine-drawer,.supplier-action-drawer,.yard-machine-drawer,.yard-status-drawer,.inspection-record-drawer,.technical-inspection-drawer,.purchase-order-drawer,.titan-repair-drawer,.reinspection-drawer,.titan-machine-drawer{width:min(960px,96vw)}.machine-drawer{max-width:96vw}.drawer-header,.drawer-footer{background:var(--bg-surface-elevated)}
.excel-import-drawer{width:min(1100px,96vw)}.excel-import-body{padding:var(--space-4);overflow:auto}.excel-drop-zone{display:grid;place-items:center;gap:var(--space-2);min-height:180px;margin:var(--space-4) 0;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);cursor:pointer}.excel-drop-zone.drag-over{border-color:var(--primary);background:var(--primary-soft)}.excel-drop-zone input{position:absolute;opacity:0;pointer-events:none}.excel-row-valid{background:var(--success-soft)}.excel-row-warning{background:var(--warning-soft)}.excel-row-error{background:var(--danger-soft)}.excel-mapping{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.excel-mapping summary{cursor:pointer;font-weight:600}.excel-mapping label{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1fr);align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.excel-mapping select{min-width:0}
.sidebar .menu.active,.sidebar .group.active-group,.sidebar .subgroup.active-group,.sidebar .group.open{background:rgba(245,158,11,.075);color:var(--primary-hover);box-shadow:inset 3px 0 0 var(--primary)}.sidebar .submenu .menu.active{color:var(--primary-hover);background:rgba(245,158,11,.055);box-shadow:inset 2px 0 0 rgba(245,158,11,.85)}
.sidebar [hidden],.sidebar .submenu:not(:has(.menu:not([hidden]))),.sidebar .group:has(+ .submenu:not(:has(.menu:not([hidden])))){display:none!important}
@media(max-width:1440px){.content{padding:20px}}@media(max-width:1366px){.content{padding:var(--space-4)}.header{padding-inline:18px}.page-header{gap:var(--space-3)}.page-actions{max-width:100%}}

/* UI Polish V1 Stage 2: core pages and complex editing workbenches. */
.detail-tabs,.yard-detail-tabs,.order-detail-tabs,.supplier-detail-tabs,.titan-detail-tabs{position:relative;display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;padding:4px 18px 7px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--bg-page) 0,transparent 18px),linear-gradient(270deg,var(--bg-page) 0,transparent 18px)}
.detail-tab{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;white-space:nowrap;scroll-snap-align:nearest;color:var(--text-muted)}
.detail-tab.active{border-color:var(--primary);background:rgba(245,158,11,.07);color:var(--primary-hover)}
.approval-page-tabs{margin-bottom:12px}.approval-segments{display:flex;gap:4px;margin:0 0 12px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);overflow:auto}.approval-segments button{flex:0 0 auto;min-height:32px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted)}.approval-segments button.active{background:var(--bg-surface-elevated);color:var(--text-primary)}
.filters,.machine-ledger-filters,.yard-machine-filters,.technical-issue-filters,.purchase-workbench-filters{gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface)}
.filters .button-secondary.active{border-color:var(--primary);color:var(--primary-hover)}
.table-container{border-radius:var(--radius-lg)}th{height:40px;padding:0 12px;background:rgba(148,163,184,.045);font-size:12px;text-transform:none}td{min-height:44px;padding:10px 12px;font-size:13px}tbody tr{transition:background .15s ease}tbody tr:hover{background:rgba(56,189,248,.035)}.row-actions{position:sticky;right:0;background:var(--bg-surface);box-shadow:-8px 0 14px rgba(2,6,12,.18)}.row-actions .button-link{min-height:32px;padding:0 6px}
.titan-progress-table th:last-child,.titan-progress-table td:last-child,.work-progress-table th:last-child,.work-progress-table td:last-child{position:sticky;right:0;z-index:1;min-width:68px;background:var(--bg-surface);white-space:nowrap;box-shadow:-8px 0 14px rgba(2,6,12,.18)}
#technicalInspectionDrawerOverlay,#titanRepairDrawerOverlay,#reinspectionDrawerOverlay,#acceptanceDrawerOverlay{z-index:120;display:none;inset:0;padding:0;background:var(--bg-page)}
#technicalInspectionDrawerOverlay.active,#titanRepairDrawerOverlay.active,#reinspectionDrawerOverlay.active,#acceptanceDrawerOverlay.active{display:block}
#technicalInspectionDrawerOverlay .machine-drawer,#titanRepairDrawerOverlay .machine-drawer,#reinspectionDrawerOverlay .machine-drawer,#acceptanceDrawerOverlay .machine-drawer{width:100%;max-width:none;height:100vh;border:0;background:var(--bg-page);box-shadow:none;overflow:auto}
#technicalInspectionDrawerOverlay form,#titanRepairDrawerOverlay form,#reinspectionDrawerOverlay form,#acceptanceDrawerOverlay form{min-height:100vh;padding:0 24px 88px}
#technicalInspectionDrawerOverlay .drawer-header,#titanRepairDrawerOverlay .drawer-header,#reinspectionDrawerOverlay .drawer-header,#acceptanceDrawerOverlay .drawer-header{margin:0 -24px 20px;padding:14px max(24px,calc((100vw - 1440px)/2));border-bottom:1px solid var(--border);background:rgba(8,13,20,.96);backdrop-filter:blur(12px)}
#technicalInspectionDrawerOverlay .drawer-header h2,#titanRepairDrawerOverlay .drawer-header h2,#reinspectionDrawerOverlay .drawer-header h2,#acceptanceDrawerOverlay .drawer-header h2{font-size:22px;color:var(--text-primary)}
#technicalInspectionDrawerOverlay .form-section,#titanRepairDrawerOverlay .form-section,#reinspectionDrawerOverlay .form-section,#acceptanceDrawerOverlay .form-section{max-width:1440px;margin:0 auto 16px;padding:16px;border-radius:var(--radius-lg);background:var(--bg-surface)}
#technicalInspectionDrawerOverlay .form-grid,#titanRepairDrawerOverlay .form-grid,#reinspectionDrawerOverlay .form-grid,#acceptanceDrawerOverlay .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}
#technicalInspectionDrawerOverlay .drawer-footer,#titanRepairDrawerOverlay .drawer-footer,#reinspectionDrawerOverlay .drawer-footer,#acceptanceDrawerOverlay .drawer-footer{position:fixed;z-index:4;right:0;bottom:0;left:0;margin:0;padding:12px max(24px,calc((100vw - 1440px)/2));border-top:1px solid var(--border);background:rgba(8,13,20,.96);backdrop-filter:blur(12px)}
.technical-issue-row{max-width:none;margin-top:12px;padding:16px;border-radius:var(--radius-lg);background:var(--bg-surface-elevated)}.technical-issue-row .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.technical-issue-row .field-wide{grid-column:span 2}.technical-parts-fields{display:grid;grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px 16px}
#titanRepairDrawerOverlay .table-container,#reinspectionDrawerOverlay .table-container{overflow:visible;border:0;background:transparent}
#titanRepairDrawerOverlay .repair-items-editor,#reinspectionDrawerOverlay .reinspection-items-editor{display:block;min-width:0}#titanRepairDrawerOverlay thead,#reinspectionDrawerOverlay thead{display:none}#titanRepairDrawerOverlay tbody,#reinspectionDrawerOverlay tbody{display:grid;gap:12px}
#titanRepairDrawerOverlay .repair-item-edit,#reinspectionDrawerOverlay .reinspection-item-edit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface-elevated)}
#titanRepairDrawerOverlay .repair-item-edit td,#reinspectionDrawerOverlay .reinspection-item-edit td{display:grid;align-content:start;gap:6px;padding:0;border:0;min-width:0}#titanRepairDrawerOverlay .repair-item-edit td::before,#reinspectionDrawerOverlay .reinspection-item-edit td::before{content:attr(data-label);color:var(--text-muted);font-size:12px;font-weight:600}
#titanRepairDrawerOverlay .repair-item-edit td:nth-child(1)::before{content:"分类"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(2)::before{content:"部位"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(3)::before{content:"故障"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(4)::before{content:"原因"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(5)::before{content:"批准维修方案"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(6)::before{content:"维修方式"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(7)::before{content:"执行状态"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(8)::before{content:"需要配件"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(9)::before{content:"配件"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(10)::before{content:"采购单"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(11)::before{content:"实际维修"}#titanRepairDrawerOverlay .repair-item-edit td:nth-child(12)::before{content:"维修结果"}
#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(1)::before{content:"分类"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(2)::before{content:"部位"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(3)::before{content:"原故障"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(4)::before{content:"实际维修"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(5)::before{content:"复检方法"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(6)::before{content:"检查结果"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(7)::before{content:"判断依据"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(8)::before{content:"仍有问题"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(9)::before{content:"遗留问题"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(10)::before{content:"整改建议"}#reinspectionDrawerOverlay .reinspection-item-edit td:nth-child(11)::before{content:"责任班组"}
#titanRepairDrawerOverlay .repair-item-edit td:last-child,#reinspectionDrawerOverlay .reinspection-item-edit td:last-child{align-content:end;justify-items:end}
.machine-dossier{gap:16px}.dossier-section{border-radius:var(--radius-lg)}.dossier-section>summary{min-height:52px}.dossier-section:not([open])>summary{border-bottom:0}.dossier-empty{border-color:var(--border);background:rgba(148,163,184,.025)}
@media(max-width:1200px){#technicalInspectionDrawerOverlay .form-grid,#titanRepairDrawerOverlay .form-grid,#reinspectionDrawerOverlay .form-grid,#acceptanceDrawerOverlay .form-grid,.technical-issue-row .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.technical-parts-fields{grid-template-columns:repeat(2,minmax(0,1fr))}#titanRepairDrawerOverlay .repair-item-edit,#reinspectionDrawerOverlay .reinspection-item-edit{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1366px){#technicalInspectionDrawerOverlay form,#titanRepairDrawerOverlay form,#reinspectionDrawerOverlay form,#acceptanceDrawerOverlay form{padding-inline:16px}#technicalInspectionDrawerOverlay .drawer-header,#titanRepairDrawerOverlay .drawer-header,#reinspectionDrawerOverlay .drawer-header,#acceptanceDrawerOverlay .drawer-header{margin-inline:-16px;padding-inline:16px}#technicalInspectionDrawerOverlay .drawer-footer,#titanRepairDrawerOverlay .drawer-footer,#reinspectionDrawerOverlay .drawer-footer,#acceptanceDrawerOverlay .drawer-footer{padding-inline:16px}}

/* Mobile Foundation: activated only below the phone/tablet boundary. */
.mobile-header,.mobile-bottom-nav,.mobile-nav-backdrop,.mobile-drawer-header{display:none}
@media(max-width:768px){
html,body{width:100%;max-width:100%;overflow-x:hidden}body{padding:env(safe-area-inset-top) 0 calc(70px + env(safe-area-inset-bottom));background:var(--bg-page)}body.auth-pending{padding-bottom:0}body.mobile-scroll-locked{overflow:hidden}.header{display:none!important}.main{display:block;min-height:100vh}
.mobile-nav-backdrop{position:fixed;z-index:110;inset:0;display:block;width:100%;height:100dvh;padding:0;border:0;background:rgba(2,6,23,.64);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 180ms ease,visibility 0s linear 180ms}.sidebar{position:fixed;z-index:120;top:0;right:0;bottom:auto;left:auto;display:flex;width:min(82vw,330px);height:100dvh;min-height:0;max-height:none;box-sizing:border-box;padding:0 12px 18px;border-left:1px solid var(--border);border-radius:0;background:var(--bg-sidebar);box-shadow:-18px 0 48px rgba(0,0,0,.46);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);visibility:hidden;transition:transform 190ms ease,visibility 0s linear 190ms}.mobile-drawer-header{position:sticky;z-index:2;top:0;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;margin:0 -12px 10px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;border-bottom:1px solid rgba(148,163,184,.15);background:rgba(13,21,34,.97);backdrop-filter:blur(12px)}.mobile-drawer-header strong,.mobile-drawer-header span{display:block}.mobile-drawer-header strong{color:#f8fafc;letter-spacing:.1em}.mobile-drawer-header span{max-width:235px;margin-top:4px;overflow:hidden;color:#94a3b8;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.mobile-drawer-header button{width:44px;height:44px;border:0;background:transparent;color:#cbd5e1;font-size:28px}.mobile-menu-open .mobile-nav-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.mobile-menu-open .sidebar{transform:translateX(0);visibility:visible;transition-delay:0s}.mobile-menu-open .mobile-bottom-nav{z-index:100}
.mobile-header{position:fixed;z-index:100;top:0;right:0;left:0;height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:env(safe-area-inset-top) 8px 0 10px;border-bottom:1px solid rgba(148,163,184,.16);background:rgba(8,13,20,.96);backdrop-filter:blur(14px)}.mobile-header-left,.mobile-header-actions{display:flex;align-items:center;min-width:0}.mobile-header-left{flex:1;gap:4px}.mobile-header-actions{flex:0 0 auto}.mobile-header button{flex:0 0 44px;width:44px;height:44px;border:0;background:transparent;color:#cbd5e1;font-size:24px}.mobile-header-title{min-width:0;text-align:left}.mobile-header strong,.mobile-header span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-header strong{color:#f8fafc;font-size:14px;letter-spacing:.1em}.mobile-header span{margin-top:2px;color:#94a3b8;font-size:11px}
.mobile-bottom-nav{position:fixed;z-index:100;right:0;bottom:0;left:0;min-height:64px;display:flex;justify-content:space-around;padding:5px 6px calc(5px + env(safe-area-inset-bottom));border-top:1px solid rgba(148,163,184,.16);background:rgba(8,13,20,.97);backdrop-filter:blur(14px)}.mobile-bottom-nav button{flex:1;min-width:0;min-height:52px;border:0;border-radius:10px;background:transparent;color:#64748b}.mobile-bottom-nav b,.mobile-bottom-nav span{display:block}.mobile-bottom-nav b{font-size:17px}.mobile-bottom-nav span{margin-top:3px;font-size:11px}.mobile-bottom-nav button.active{background:rgba(14,165,233,.11);color:#7dd3fc}
.content{width:100%;max-width:100%;min-width:0;padding:72px 12px 18px;overflow:visible}.page-header,.group-overview-v1>header,.trade-section-head{align-items:flex-start;gap:12px}.page-header{flex-direction:column}.page-title,.page-header h1{font-size:22px}.page-actions{width:100%;display:flex;gap:8px;overflow-x:auto;padding-bottom:3px}.page-actions button{flex:0 0 auto;min-height:44px}button,.button-primary,.button-secondary,.button-link,input,select,textarea{min-height:44px}
.stats-grid,.status-row,.work-progress-stats,.yard-machine-stats,.purchase-workbench-stats,.overview-core-grid,.overview-mini-grid,.detail-grid,.supplier-detail-grid,.repair-summary,.report-metric-table,.report-finance,.group-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible}.filters,.machine-ledger-filters,.yard-machine-filters,.purchase-workbench-filters,.after-sale-filters,.form-grid,.inspection-filters,.repair-filters{grid-template-columns:1fr!important}.work-progress-toolbar{display:grid;grid-template-columns:1fr}.work-filter-tabs,.approval-segments{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;scrollbar-width:none;-ms-overflow-style:none}.work-filter-tabs::-webkit-scrollbar,.approval-segments::-webkit-scrollbar{display:none}.work-filter-tabs button,.approval-segments button{flex:0 0 auto}
.table-container{max-width:100%;overflow:visible;border:0;background:transparent}table.mobile-card-table{display:block;min-width:0!important;width:100%;background:transparent}table.mobile-card-table thead{display:none}table.mobile-card-table tbody{display:grid;gap:10px}table.mobile-card-table tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:14px;border:1px solid rgba(148,163,184,.16);border-radius:12px;background:var(--bg-surface);box-shadow:0 5px 18px rgba(0,0,0,.12)}table.mobile-card-table td{display:grid;min-width:0;padding:0!important;border:0!important;color:#e2e8f0;overflow-wrap:anywhere}table.mobile-card-table td::before{content:attr(data-mobile-label);margin-bottom:3px;color:#64748b;font-size:11px}table.mobile-card-table td:first-child,table.mobile-card-table td:last-child,.mobile-card-table .empty-cell{grid-column:1/-1}table.mobile-card-table td:first-child{color:#7dd3fc;font-weight:700}table.mobile-card-table .row-actions{display:flex;flex-wrap:wrap;gap:8px}.mobile-card-table .row-actions::before{width:100%}
.mobile-scroll-tabs,.detail-tabs,.yard-detail-tabs,.after-sale-detail-tabs{display:flex!important;flex-wrap:nowrap!important;max-width:100%;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.mobile-scroll-tabs::-webkit-scrollbar,.detail-tabs::-webkit-scrollbar{display:none}.mobile-scroll-tabs>*,.detail-tabs>*,.yard-detail-tabs>*{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;min-height:44px}
.production-node-timeline,.progress-timeline,.supplier-progress-timeline{padding-left:8px}.timeline-item,.production-node-timeline>article,.timeline-card{position:relative;display:block!important;margin-left:12px;padding:14px 14px 14px 18px}.timeline-node-grid,.timeline-grid{grid-template-columns:1fr!important}.timeline-summary-cards,.part-stats,.progress-state-cards,.acceptance-state-cards{display:flex;overflow-x:auto}.timeline-summary-cards>*,.part-stats>*,.progress-state-cards>*,.acceptance-state-cards>*{flex:0 0 145px}
.modal-overlay,.drawer-overlay{align-items:flex-end;padding:0}.modal-overlay.active,.drawer-overlay.active{z-index:200}.modal-open .mobile-bottom-nav,.no-scroll .mobile-bottom-nav{pointer-events:none;visibility:hidden}.modal,.machine-drawer,.excel-import-drawer,.purchase-order-drawer,.yard-machine-drawer,.maintenance-drawer,.after-sale-drawer{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 58px)!important;margin:0;border-radius:18px 18px 0 0;overflow:auto}.modal-body,.excel-import-body{padding:14px}.mobile-sticky-actions,.drawer-footer,.modal-footer{position:sticky;z-index:5;bottom:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(9,16,28,.97);box-shadow:0 -8px 24px rgba(0,0,0,.25)}
.excel-drop-zone{min-height:120px}.excel-drop-zone strong{font-size:0}.excel-drop-zone strong::after{content:attr(data-mobile-text);font-size:16px}.excel-drop-zone span{font-size:0}.excel-drop-zone span::after{content:attr(data-mobile-text);font-size:12px}#authRoot{overflow:hidden}.auth-card{box-sizing:border-box;width:100%;min-width:0;max-width:430px;padding:22px;overflow-wrap:anywhere}.auth-card h1{font-size:24px}.auth-brand{font-size:20px}.auth-brand small{font-size:11px}.auth-form label{gap:7px}.auth-form input,.auth-form select{width:100%;box-sizing:border-box}.auth-card .auth-actions{display:grid;grid-template-columns:1fr;gap:8px}.auth-card .auth-actions button{width:100%}
.group-overview-v1,.group-dashboard,.trade-page,.vendor-detail,.management-report{min-width:0}.overview-business-grid,.group-business-grid,.group-module-cards,.group-sections,.trade-grid,.finance-ledger-grid{grid-template-columns:1fr!important}.overview-attention-list button{grid-template-columns:1fr auto!important;gap:7px}.overview-attention-list button span,.overview-attention-list button strong{grid-column:1/-1;text-align:left}
.mobile-account-page{max-width:520px;margin:10px auto;padding:24px 18px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:var(--bg-surface);text-align:center}.mobile-account-avatar{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,#0369a1,#22d3ee);color:#fff;font-size:28px;font-weight:800}.mobile-account-page h1{margin:0}.mobile-account-page>p{color:#94a3b8}.mobile-account-page dl{display:grid;gap:0;margin:24px 0;text-align:left}.mobile-account-page dl div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid rgba(148,163,184,.12)}.mobile-account-page dt{color:#64748b}.mobile-account-page dd{margin:0;color:#e2e8f0}.mobile-logout{width:100%}.empty-state,.loading-state,.overview-empty{min-height:160px;display:grid;place-content:center;text-align:center}.toast{right:12px;bottom:82px;left:12px;max-width:none}
}
@media(max-width:390px){.content{padding-right:10px;padding-left:10px}.stat-card,.status-box{padding:11px}table.mobile-card-table tr{grid-template-columns:1fr}.mobile-card-table td{grid-column:1!important}}
.admin-correction-overlay #adminCorrectionForm{min-height:100%;padding:24px}
