:root {
    color-scheme: dark;
    --bg: #0b0f14;
    --panel: #111827;
    --panel-soft: #1f2937;
    --border: #334155;
    --text: #e5e7eb;
    --muted: #94a3b8;
    --accent: #f59e0b;
    --accent-soft: #fbbf24;
    --radius: 18px;
}
* {
    box-sizing: border-box;
}
body {
    margin: 0;
    min-height: 100vh;
    background: radial-gradient(circle at top left, rgba(245,158,11,0.12), transparent 25%), linear-gradient(180deg, #0b0f14 0%, #080b11 100%);
    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: 280px minmax(0, 1fr);
    min-height: calc(100vh - 80px);
}
.sidebar {
    background: var(--panel);
    padding: 24px 16px;
    border-right: 1px solid var(--border);
    overflow-y: auto;
}
.sidebar .section-title {
    margin: 0 0 10px;
    font-size: 0.88rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.menu,
.group,
.subgroup {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--text);
    padding: 12px 14px;
    border-radius: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 160ms ease, color 160ms ease;
    min-height: 48px;
    font-size: 0.96rem;
    line-height: 1.2;
}
.sidebar > .group {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 20px;
    align-items: center;
    column-gap: 10px;
}
.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,0.16);
    color: var(--accent);
}
.menu-icon {
    width: 28px;
    min-width: 28px;
    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-top: 6px;
    display: none;
    flex-direction: column;
    gap: 4px;
    padding-left: 12px;
}
.submenu.active {
    display: flex;
}
.submenu.level2 {
    padding-left: 20px;
}
.submenu.level3 {
    padding-left: 30px;
}
.submenu .menu {
    padding-left: 26px;
    font-size: 0.92rem;
    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);
}
.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;
}
.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}}
.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}}
.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%}}
