* { box-sizing: border-box; } html, body, #root { width: 100%; height: 100%; margin: 0; } body { color: #1f2933; background: #edf2f7; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } .app-shell { display: grid; grid-template-columns: 300px minmax(0, 1fr); width: 100%; height: 100vh; overflow: hidden; background: #f5f8fb; } .product-sidebar { display: flex; min-height: 0; flex-direction: column; gap: 14px; border-right: 1px solid #d8e0e8; background: #ffffff; padding: 18px 16px; } .sidebar-head, .panel-head, .section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .sidebar-head h4, .panel-head h5 { margin: 0 0 2px; } .product-search { width: 100%; } .current-product { display: grid; gap: 8px; border: 1px solid #bdd2ff; border-radius: 8px; background: #edf4ff; padding: 14px; } .current-product > span, .muted { color: #697586; font-size: 12px; } .current-product strong { font-size: 16px; } .inventory-line { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #2f8f50; font-size: 12px; } .product-list { display: flex; min-height: 0; flex: 1; flex-direction: column; gap: 8px; overflow: auto; padding-right: 2px; } .product-empty { display: grid; min-height: 120px; place-content: center; gap: 6px; border: 1px dashed #cbd5e1; border-radius: 8px; color: #697586; text-align: center; } .product-empty strong { color: #344054; } .product-empty span { font-size: 12px; } .product-row { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 10px; width: 100%; border: 1px solid transparent; border-radius: 8px; background: transparent; padding: 8px; text-align: left; cursor: pointer; } .product-row:hover, .product-row.selected { border-color: #a8c5ff; background: #eef5ff; } .product-thumb { display: grid; width: 42px; height: 42px; place-items: center; overflow: hidden; border: 1px solid #d5dde7; border-radius: 8px; background: #f8fafc; color: #2563eb; font-weight: 700; } .product-thumb img { width: 100%; height: 100%; object-fit: cover; } .product-meta { min-width: 0; } .product-meta strong { display: block; overflow: hidden; margin-bottom: 5px; text-overflow: ellipsis; white-space: nowrap; } .desk { display: grid; min-width: 0; min-height: 0; grid-template-rows: 64px 48px 72px minmax(0, 1fr); background: #f7fafc; } .topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #d8e0e8; background: #fff; padding: 0 20px; } .tab-strip { display: flex; gap: 12px; } .statusbar { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #d8e0e8; background: #fff; padding: 0 20px; } .statusbar span { color: #697586; } .statusbar strong { font-size: 16px; } .green { color: #16803d; } .red { color: #d92d20; } .actionbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #d8e0e8; background: #fff; padding: 12px 20px; } .green-button { background: #16803d; border-color: #16803d; } .green-button:hover { background: #117233 !important; border-color: #117233 !important; } .target-time { width: 190px; } .main-grid { display: grid; min-height: 0; grid-template-columns: minmax(560px, 1.35fr) minmax(380px, 0.95fr); gap: 14px; padding: 14px 20px; } .account-panel, .side-log-panel { min-width: 0; min-height: 0; overflow: hidden; border: 1px solid #d8e0e8; border-radius: 8px; background: #fff; } .account-panel { display: flex; flex-direction: column; } .panel-head { min-height: 50px; border-bottom: 1px solid #e6edf3; padding: 0 14px; } .panel-head h5 { margin: 0; } .side-log-panel { padding: 0 12px 12px; } .panel-tools, .panel-tools .ant-tabs, .panel-tools .ant-tabs-content-holder, .panel-tools .ant-tabs-content, .panel-tools .ant-tabs-tabpane { height: 100%; min-height: 0; } .panel-tools .ant-tabs-nav { margin-bottom: 8px; } .log-view { height: calc(100% - 2px); min-height: 300px; overflow: auto; border: 1px solid #e6edf3; border-radius: 6px; background: #ffffff; padding: 10px; } .log-line { display: grid; grid-template-columns: 88px 54px minmax(0, 1fr); align-items: start; gap: 6px; min-height: 23px; color: #4b5565; font-size: 12px; line-height: 1.55; } .log-line code { color: #1677ff; white-space: pre-wrap; word-break: break-word; } .log-line.level-error code { color: #d92d20; } .log-line.level-debug code { color: #667085; } .stats-pane { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 8px 2px; } .stats-pane .ant-statistic { border: 1px solid #e6edf3; border-radius: 8px; background: #fff; } .stats-pane .ant-statistic { padding: 14px; } .settings-modal { display: grid; gap: 16px; padding-top: 4px; } .ck-manager { display: grid; gap: 12px; } .ck-manager-tools { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; } .ck-text-preview { display: block; overflow: hidden; color: #344054; text-overflow: ellipsis; white-space: nowrap; } .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .settings-wide { grid-column: 1 / -1; } .settings-summary { display: flex; align-items: center; justify-content: space-between; min-height: 38px; border: 1px solid #e6edf3; border-radius: 6px; padding: 8px 10px; } .settings-grid .ant-form-item, .settings-param-grid .ant-form-item, .settings-switch-grid .ant-form-item { margin-bottom: 0; } .settings-param-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .settings-param-grid .ant-input-number { width: 100%; } .settings-switch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .settings-switch-grid .ant-form-item { display: flex; align-items: center; justify-content: space-between; min-height: 38px; border: 1px solid #e6edf3; border-radius: 6px; padding: 8px 10px; } .settings-switch-grid .ant-form-item-row { width: 100%; } .ant-table-wrapper { min-height: 0; } .account-panel .ant-table-wrapper, .account-panel .ant-spin-nested-loading, .account-panel .ant-spin-container { min-height: 0; flex: 1; } @media (max-width: 1180px) { .app-shell { grid-template-columns: 280px minmax(0, 1fr); } .main-grid { grid-template-columns: 1fr; } .settings-grid, .settings-param-grid, .settings-switch-grid { grid-template-columns: 1fr; } } @media (max-width: 880px) { .app-shell { grid-template-columns: 1fr; overflow: auto; } .product-sidebar, .desk { min-height: 720px; } }