/* Orbit 控制台:所有资源共享一套可读的工作台样式,不依赖外部字体或 CDN。 */ :root { color-scheme: light; --bg:#f5f7fa; --surface:#fff; --soft:#f8fafb; --text:#243447; --heading:#142438; --muted:#66768a; --line:#e4e9ef; --accent:#087f75; --accent-hover:#06685f; --accent-soft:#e8f5f1; --blue:#366dd9; --danger:#bb4250; --warn:#a46617; --radius:12px; --shadow:0 2px 5px #12263804; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; font-size:14px; } * { box-sizing:border-box; } body { margin:0; background:var(--bg); color:var(--text); line-height:1.55; } button,input,select,textarea { font:inherit; } button { cursor:pointer; } button:disabled { cursor:not-allowed; opacity:.48; } input,select,textarea { max-width:100%; width:100%; min-width:0; color:var(--text); background:#fff; border:1px solid #d6dee7; border-radius:7px; padding:9px 11px; outline:none; transition:border-color .15s,box-shadow .15s; } input::placeholder,textarea::placeholder { color:#93a0af; } input[type=checkbox],input[type=radio] { width:16px; height:16px; accent-color:var(--accent); padding:0; flex-shrink:0; } textarea { min-height:90px; resize:vertical; } input:focus,select:focus,textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px #087f7515; } :focus-visible { outline:3px solid #087f7555; outline-offset:3px; } [hidden] { display:none!important; } h1,h2,h3,p { margin:0; } h1,h2,h3 { color:var(--heading); font-weight:650; } h1 { font-size:27px; letter-spacing:-.6px; line-height:1.35; } h2 { font-size:16px; } h3 { font-size:15px; } a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; } small,.muted { color:var(--muted); font-size:12px; } code,pre,.drawer-id { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; } pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; } label { display:block; color:var(--muted); font-size:12px; } label input,label select,label textarea { display:block; margin-top:7px; font-size:14px; } summary { cursor:pointer; font-size:13px; font-weight:550; color:var(--muted); } summary:hover { color:var(--accent); } .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; } .skip-link { position:fixed; top:-100px; left:20px; z-index:100; background:#fff; padding:12px; border:1px solid var(--accent); }.skip-link:focus { top:12px; } .app-shell { display:grid; grid-template-columns:218px minmax(0,1fr); min-height:100vh; } .sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; background:#fff; border-right:1px solid var(--line); padding:28px 16px 20px; overflow-y:auto; } .brand { display:flex; gap:11px; align-items:center; padding:0 12px; color:var(--heading); } .brand strong { font-size:23px; line-height:1.2; font-weight:750; letter-spacing:-.8px; } .brand small { display:block; font-size:11px; margin-top:4px; letter-spacing:2px; color:var(--muted); } .brand-mark { width:35px; height:35px; border-radius:10px; background:var(--accent); display:flex; align-items:center; justify-content:center; gap:3px; flex-shrink:0; } .brand-mark span { width:4px; height:11px; border-radius:3px; background:white; }.brand-mark span:nth-child(2){height:20px}.brand-mark span:nth-child(3){height:15px} .workspace-label,.nav-group-label { display:block; color:#8c98a7; font-size:10px; letter-spacing:1.2px; margin:27px 13px 8px; } .nav-group-label { margin-top:22px; }.nav-list { display:flex; flex-direction:column; gap:4px; } .nav-item { border:0; display:flex; align-items:center; gap:12px; padding:11px 13px; border-radius:8px; color:#5e6e80; background:transparent; text-align:left; font-size:13px; font-weight:500; } .nav-item:hover { background:var(--soft); color:var(--heading); }.nav-item.active { background:var(--accent-soft); color:var(--accent); font-weight:650; } .nav-icon { font-size:19px; width:22px; text-align:center; line-height:1; } .sidebar-bottom { margin-top:auto; padding-top:30px; }.rail-card { padding:13px; border:1px solid var(--line); background:var(--soft); border-radius:9px; } .rail-card-top { display:flex; gap:8px; align-items:center; font-size:11px; }.status-dot,.live-chip i,.note-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#a2adba; flex-shrink:0; }.status-dot.ready,.live-chip.ready i { background:#149c83; } .rail-card p { font-size:10px; color:#8694a4; margin-top:6px; overflow-wrap:anywhere; }.rail-progress { height:2px; background:#e9eff3; margin-top:10px; }.rail-progress span { display:block; height:100%; background:var(--accent); } .sidebar-foot { margin-top:15px; padding:0 10px; font-size:10px; color:#9ba7b5; }.foot-version { float:right; } .main-content { min-width:0; padding:0 34px 20px; max-width:1800px; width:100%; margin:auto; } .topbar { height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); margin-bottom:24px; } .crumbs { display:flex; align-items:center; gap:13px; font-size:12px; color:#8a98a8; }.crumbs b { font-weight:400; color:#bbc5cf; }.crumbs strong { color:var(--text); font-weight:500; } .topbar-actions { display:flex; align-items:center; gap:14px; }.live-chip { display:flex; align-items:center; gap:7px; font-size:11px; color:var(--muted); }.last-updated { font-size:10px; color:#8b98a7; }.auto-refresh { display:flex; align-items:center; gap:6px; font-size:11px; }.auto-refresh input { margin:0; width:13px; height:13px; } .icon-button { border:1px solid var(--line); background:#fff; color:var(--muted); border-radius:7px; height:32px; width:32px; display:inline-grid; place-items:center; font-size:18px; flex-shrink:0; }.icon-button:hover { background:var(--accent-soft); color:var(--accent); } .application-scope { display:flex; gap:16px; align-items:center; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:9px; padding:12px 16px; margin-bottom:26px; } .scope-heading { min-width:86px; display:flex; align-items:center; gap:9px; }.scope-heading b { font-size:12px; }.scope-heading small { display:none; }.scope-symbol { color:var(--accent); font-size:18px; } .scope-field { display:flex; align-items:center; gap:9px; flex:1; min-width:170px; }.scope-field>span { white-space:nowrap; font-size:11px; }.scope-field select { margin:0; font-size:12px; background:var(--soft); border-color:var(--line); padding:7px 9px; }.scope-queue { flex:1.1; }.scope-note { display:flex; align-items:center; gap:12px; }.scope-note small { display:none; }.scope-note button { font-size:11px; }.scope-error { width:100%; color:var(--danger); font-size:12px; }.scope-error:empty { display:none; } .page-view { display:none; }.page-view.active { display:block; } .page-heading,.access-heading,.archive-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:0 0 22px; }.page-heading p,.access-heading p,.archive-heading p { font-size:12px; color:var(--muted); margin-top:7px; }.page-eyebrow { display:block; font-size:9px; letter-spacing:1.8px; color:#8a98a8; margin-bottom:8px; } .primary-button,.secondary-button,.quiet-button,.text-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; border-radius:7px; padding:9px 14px; font-weight:550; font-size:12px; line-height:1.5; text-decoration:none; white-space:nowrap; } .primary-button { color:#fff; background:var(--accent); border:1px solid var(--accent); }.primary-button:hover { background:var(--accent-hover); } .secondary-button,.quiet-button { background:#fff; border:1px solid #d9e1e9; color:var(--text); }.secondary-button:hover,.quiet-button:hover { background:var(--soft); border-color:#bdc9d5; } .text-button { padding:5px 0; border:0; background:transparent; color:var(--accent); }.text-button:hover { text-decoration:underline; }.compact { padding:7px 12px; font-size:12px; }.danger-button { color:var(--danger); border-color:#eed6da; } .metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:16px; }.metric-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; min-width:0; text-align:left; position:relative; box-shadow:var(--shadow); }.metric-top { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:12px; }.metric-top span:last-child { color:#93a0ad; }.metric-card strong { display:block; font-size:32px; font-weight:650; line-height:1.3; margin:14px 0 7px; color:var(--heading); letter-spacing:-1px; }.metric-card small { font-size:10px; display:block; }.metric-highlight { background:var(--accent-soft); border-color:#d4eae4; }.metric-highlight strong { color:var(--accent); font-size:27px; margin-top:17px; }.metric-card[data-view]:hover { border-color:#95c7bb; box-shadow:0 3px 10px #12263807; }.mini-bar,.subscription-meter { display:flex; height:3px; margin-top:13px; background:#edf2f6; border-radius:4px; overflow:hidden; }.mini-bar i { height:100%; background:var(--accent); }.mini-bar i:nth-child(2){background:var(--blue)}.mini-bar i:nth-child(3){background:#e2b36c}.mini-bar i:nth-child(4){background:#d77885}.subscription-meter span { background:var(--blue); height:100%; } .snapshot-note { display:flex; align-items:center; gap:7px; color:#8290a0; font-size:10px; margin-bottom:22px; }.note-dot { width:4px; height:4px; background:var(--accent); }.snapshot-note>span:last-child { margin-left:auto; white-space:nowrap; } .panel { border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:22px; box-shadow:var(--shadow); min-width:0; }.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:22px; }.panel-heading p { color:var(--muted); font-size:11px; margin-top:4px; }.table-count { font-size:11px; color:var(--muted); }.panel-description { font-size:12px; color:var(--muted); line-height:1.75; margin:12px 0; }.panel-tools { display:flex; gap:14px; align-items:center; } .overview-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr); gap:20px; margin-bottom:20px; }.distribution-list { display:grid; gap:14px; }.distribution-row { display:flex; gap:15px; align-items:center; font-size:11px; }.distribution-row>span { width:89px; color:var(--muted); flex-shrink:0; }.distribution-row b { min-width:25px; text-align:right; font-size:12px; font-weight:550; }.status-track { flex:1; background:#f0f3f7; height:6px; border-radius:4px; overflow:hidden; }.status-track i { display:block; height:100%; background:var(--accent); border-radius:4px; transition:width .25s; }#stat-bar-running { background:#648cdb; }#stat-bar-waiting { background:#dfb063; }#stat-bar-other { background:#d77c89; }#stat-bar-cancelled { background:#a3afbd; } .stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); padding-top:19px; margin-top:24px; gap:12px; }.stat-tile span { display:block; font-size:10px; color:var(--muted); }.stat-tile strong { display:block; font-size:23px; color:var(--heading); font-weight:600; margin:5px 0; }.stat-tile small { font-size:9px; display:block; } .attention-mark { border-radius:50%; color:var(--warn); background:#fcf3e3; width:23px; height:23px; text-align:center; font-weight:650; }.attention-list { display:grid; gap:10px; }.attention-item { display:flex; align-items:center; gap:10px; width:100%; border:1px solid #f0e5d3; background:#fffcf7; border-radius:8px; padding:13px; text-align:left; color:var(--text); }.attention-item strong { display:block; font-size:12px; }.attention-item small { display:block; font-size:10px; margin-top:3px; }.attention-number { color:var(--warn); font-size:21px; font-weight:600; min-width:25px; }.attention-item>span:last-child { margin-left:auto; color:#c2b293; }.attention-clear { background:var(--soft); padding:23px 15px; border:1px dashed var(--line); border-radius:8px; color:var(--muted); font-size:12px; }.attention-clear strong { display:block; color:var(--text); margin-bottom:7px; }.quick-links { display:flex; gap:12px; padding-top:17px; margin-top:18px; border-top:1px solid var(--line); }.quick-links button { flex:1; display:flex; align-items:center; justify-content:space-between; border:0; background:var(--soft); padding:10px; border-radius:6px; color:var(--muted); font-size:11px; } .recent-panel { margin-bottom:20px; }.table-wrap { width:100%; overflow:auto; }table { border-collapse:collapse; text-align:left; width:100%; font-size:12px; }th { font-size:11px; color:#7a899b; font-weight:500; background:var(--soft); padding:11px 13px; white-space:nowrap; border-bottom:1px solid var(--line); }td { padding:15px 13px; border-bottom:1px solid #eff2f5; }tbody tr:last-child td { border-bottom:0; }td:first-child { min-width:170px; }th:last-child,td:last-child { white-space:nowrap; }.resource-row:hover,.task-row:hover { background:#fafcfd; }td b { font-size:12px; font-weight:550; color:var(--heading); }td small { font-size:10px; display:block; color:#8c99a9; margin-top:4px; }td .task-id>small { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.task-processor { max-width:200px; overflow-wrap:anywhere; }.resource-row .resource-name { max-width:250px; white-space:normal; overflow-wrap:anywhere; text-align:left; justify-content:flex-start; }.state-pill { display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:500; border-radius:5px; padding:3px 8px; white-space:nowrap; color:#6b7a8b; background:#edf1f5; }.state-pill::before { content:""; height:4px; width:4px; background:currentColor; border-radius:50%; }.state-pill.succeeded,.state-pill.acked,.state-pill.active,.state-pill.enabled { color:#16896c; background:#eaf6f0; }.state-pill.running,.state-pill.leased { color:#4576c1; background:#ecf2fd; }.state-pill.waiting,.state-pill.pending,.state-pill.paused { color:#a57623; background:#fbf3e2; }.state-pill.failed,.state-pill.needs_review,.state-pill.expired { color:#be5866; background:#fceff1; }.state-pill.cancelled,.state-pill.retired,.state-pill.abandoned { color:#8591a1; background:#f0f3f6; }.application-badge { display:inline-flex; flex-wrap:wrap; align-items:center; gap:5px; font-size:10px; }.application-badge i { width:4px; height:4px; background:#9eafbd; border-radius:50%; }.application-badge b { font-size:10px; font-weight:500; color:#687a8b; }.application-badge em { font-style:normal; padding:1px 4px; background:#f0f3f7; color:#8493a3; border-radius:3px; font-size:9px; } .empty-row,.empty-compact,.detail-empty { padding:40px 18px; text-align:center; color:var(--muted); font-size:12px; }.empty-row b,.empty-compact b { display:block; color:var(--text); font-size:13px; font-weight:500; }.empty-row small,.empty-compact small { display:block; margin-top:7px; }.empty-icon { display:block; font-size:25px; color:#acbac8; margin-bottom:10px; }.data-panel { padding:0; overflow:hidden; }.data-panel .table-wrap { min-height:140px; }.list-summary { display:flex; justify-content:space-between; padding:16px 20px 12px; gap:12px; font-size:11px; }.list-summary .muted { font-size:10px; } .list-filters { padding:18px 20px; display:flex; gap:12px; flex-wrap:wrap; align-items:end; border-bottom:1px solid var(--line); background:#fdfefe; }.list-filters label { min-width:120px; font-size:11px; }.list-filters select,.list-filters input { height:36px; font-size:12px; }.filter-key { flex:1; max-width:330px; }.filter-more { align-self:center; font-size:12px; }.filter-more[open] { flex-basis:100%; }.filter-dates { display:flex; align-items:end; flex-wrap:wrap; gap:16px; margin-top:12px; }.filter-dates small { font-size:10px; padding-bottom:9px; }.id-lookup { display:flex; gap:8px; align-items:center; }.id-lookup input { width:210px; font-size:12px; height:35px; }.list-pagination { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-top:1px solid var(--line); gap:15px; font-size:11px; color:var(--muted); }.list-pagination>label,.list-pagination>div { display:flex; align-items:center; gap:9px; }.list-pagination select { width:65px; margin:0; padding:5px; font-size:11px; }.list-pagination button { font-size:11px; }.list-error,.page-error { background:#fff6f6; border:1px solid #efdadf; border-radius:7px; color:var(--danger); padding:12px 16px; font-size:12px; }.list-error { margin:0 20px 12px; }.page-error { margin-bottom:20px; }.service-details { margin-top:24px; font-size:11px; color:var(--muted); }.service-details summary { font-size:11px; }.service-details summary span { color:var(--accent); font-size:10px; margin-left:10px; }.service-detail-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:20px; margin:16px 0; }.service-detail-grid span,.service-detail-grid b,.service-detail-grid small { display:block; }.service-detail-grid b { color:var(--text); font-weight:500; margin:5px 0; overflow-wrap:anywhere; } .page-footer { display:flex; justify-content:space-between; border-top:1px solid var(--line); color:#9ba7b4; font-size:10px; gap:20px; padding:20px 0 0; margin-top:30px; }.page-footer a { color:#80929e; }.footer-orbit { color:var(--accent); margin-right:4px; }.toast { position:fixed; bottom:25px; left:50%; transform:translate(-50%,20px); padding:11px 18px; border-radius:8px; color:#fff; background:#243c43; box-shadow:0 8px 30px #172c3322; font-size:12px; opacity:0; visibility:hidden; transition:.2s; z-index:80; max-width:min(90vw,650px); }.toast.show { transform:translate(-50%,0); opacity:1; visibility:visible; } /* 详情和操作始终在一个有边界的抽屉内完成。 */ .drawer-open { overflow:hidden; }.drawer-backdrop { position:fixed; inset:0; z-index:35; display:flex; justify-content:flex-end; background:#172d4240; }.task-drawer { background:#fff; width:min(690px,100vw); height:100%; overflow-y:auto; padding:28px; box-shadow:-5px 0 45px #16283f10; }.drawer-header { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; margin:13px 0 20px; }.drawer-header h2 { font-size:21px; overflow-wrap:anywhere; }.drawer-id { display:inline-block; color:#95a0af; font-size:11px; margin-top:8px; overflow-wrap:anywhere; }.copy-id { font-size:10px; margin-left:10px; }.detail-scope { margin-bottom:10px; }.drawer-status-line { display:flex; gap:15px; align-items:center; font-size:11px; color:var(--muted); margin-bottom:20px; }.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; padding:20px; background:var(--soft); border:1px solid var(--line); border-radius:9px; }.detail-grid span { font-size:11px; color:var(--muted); display:block; margin-bottom:5px; }.detail-grid b { display:block; font-size:12px; font-weight:500; overflow-wrap:anywhere; }.detail-block { border-top:1px solid var(--line); margin-top:24px; padding-top:20px; }.detail-block-heading { display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:550; margin-bottom:15px; }.detail-block-heading small { font-size:11px; font-weight:400; }.detail-block pre,.access-code { padding:16px; border:1px solid var(--line); border-radius:7px; background:#f8fafc; color:#516579; }.detail-list-row { display:flex; gap:11px; align-items:start; padding:12px 0; border-bottom:1px solid #f0f3f6; font-size:12px; }.detail-list-row>div { flex:1; min-width:0; }.detail-list-row b { display:block; font-size:12px; font-weight:550; overflow-wrap:anywhere; }.detail-list-row small { display:block; font-size:10px; overflow-wrap:anywhere; margin-top:5px; }.detail-list-row em { font-size:10px; color:var(--muted); font-style:normal; }.timeline-dot { width:7px; height:7px; border-radius:50%; background:#90b7ad; flex-shrink:0; margin-top:6px; }.timeline-dot.failed,.timeline-dot.needs_review { background:#ce8993; }.detail-loading { font-size:12px; color:var(--muted); padding:16px 0; }.drawer-actions,.action-form-buttons { display:flex; gap:10px; margin:22px 0 12px; flex-wrap:wrap; }.drawer-note { color:var(--muted); font-size:11px; line-height:1.8; margin-top:12px; }.action-form { background:var(--soft); border:1px solid var(--line); border-radius:9px; padding:20px; margin-top:20px; }.action-form h3 { margin-bottom:8px; }.action-form p { color:var(--muted); font-size:12px; margin:8px 0 15px; }.field-label { display:block; font-size:12px; margin:16px 0 7px; }.action-check { display:flex; gap:8px; align-items:start; color:var(--text); margin-top:15px; }.action-check input { margin-top:4px; }.action-error { color:var(--danger); font-size:12px; line-height:1.7; margin-top:12px; overflow-wrap:anywhere; }.action-error:empty { display:none; }.recovery-actions { display:flex; gap:8px; flex-wrap:wrap; } /* 应用接入:选择、接入配置、低频管理。 */ .access-grid { display:grid; grid-template-columns:280px minmax(0,1fr); gap:20px; align-items:start; }.access-list-panel { padding:18px; }.access-search { margin-bottom:16px; font-size:11px; }.access-search input { background:var(--soft); font-size:12px; }.access-list { display:flex; flex-direction:column; gap:7px; }.access-item { border:1px solid transparent; background:#fff; color:var(--text); display:flex; width:100%; align-items:center; gap:11px; padding:13px 10px; border-radius:8px; text-align:left; }.access-item:hover { background:var(--soft); }.access-item.selected { background:var(--accent-soft); border-color:#d9eae4; }.access-avatar { display:grid; place-items:center; width:33px; height:33px; border-radius:8px; background:#edf2f5; font-size:13px; color:#768b9b; flex-shrink:0; }.access-item.selected .access-avatar { background:#d5ece4; color:var(--accent); }.access-item strong { display:block; font-size:12px; font-weight:600; overflow-wrap:anywhere; }.access-item small { display:block; font-size:10px; margin-top:4px; }.access-pager,.archive-pager { display:flex; justify-content:space-between; gap:10px; margin-top:20px; }.access-pager button { font-size:11px; }.connection-state { color:var(--accent); background:var(--accent-soft); border-radius:5px; padding:4px 8px; font-size:10px; }.access-meta { display:grid; gap:9px; padding:14px 0 4px; }.access-meta>div { display:flex; justify-content:space-between; gap:16px; font-size:11px; }.access-meta span { color:var(--muted); white-space:nowrap; }.access-meta code { word-break:break-all; font-size:11px; }.access-meta b { font-weight:500; }.technical-details { border:1px solid var(--line); background:var(--soft); border-radius:7px; padding:12px 14px; margin:15px 0; }.technical-details>summary { font-size:11px; }.access-config-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin:18px 0 10px; }.access-config-grid label { font-size:11px; }.access-config-grid input,.access-config-grid select { font-size:12px; }.access-credential { border:1px solid var(--line); border-radius:9px; padding:17px; margin:18px 0; }.access-credential-header { display:flex; justify-content:space-between; align-items:start; gap:16px; }.access-credential-header b { font-size:13px; }.access-credential-header button { font-size:10px; }.access-credential>p { font-size:11px; color:var(--muted); line-height:1.8; margin-top:10px; overflow-wrap:anywhere; }.access-token-summary { display:flex; gap:10px; margin:15px 0; padding:12px 14px; background:var(--soft); border-radius:7px; }.access-token-summary strong { font-size:12px; }.access-token-summary span { display:block; color:var(--muted); font-size:10px; margin-top:3px; }.access-form-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:15px 0 5px; }.access-permissions { display:flex; flex-wrap:wrap; gap:5px; margin-top:16px; }.access-permissions span { padding:3px 6px; border-radius:4px; background:#f0f4f7; color:#6e8192; font-size:10px; }.access-permission-details { margin-top:12px; }.access-permission-details summary { font-size:10px; }.access-permission-details p { font-size:10px; line-height:1.8; color:var(--muted); overflow-wrap:anywhere; margin-top:10px; }.access-rotation-notice { background:#fffcf5; border:1px solid #eee2c5; border-radius:7px; padding:12px 14px; margin-top:15px; color:#826838; }.access-rotation-notice strong { font-size:11px; }.access-rotation-notice p { font-size:11px; line-height:1.8; margin-top:5px; }.access-rotation-notice time { font-weight:600; }.access-config-heading { display:flex; align-items:center; justify-content:space-between; margin:14px 0; }.access-help { color:var(--muted); font-size:11px; margin-top:17px; }.danger-zone { border-top:1px solid var(--line); margin-top:17px; padding-top:14px; }.danger-zone summary { font-size:11px; color:#9f757a; }.danger-zone button { margin:12px 8px 0 0; }#access-retire-form { background:#fff8f8; border:1px solid #efdadf; border-radius:7px; margin-top:12px; padding:14px; } .access-dialog { width:min(620px,calc(100vw - 36px)); max-height:calc(100dvh - 48px); border:1px solid var(--line); border-radius:14px; padding:25px; color:var(--text); background:#fff; box-shadow:0 20px 90px #132c4233; overflow-y:auto; }.access-dialog::backdrop { background:#172d4260; }.access-dialog-top { display:flex; justify-content:flex-end; margin-bottom:8px; }.access-dialog h2 { font-size:22px; margin-bottom:12px; }.access-dialog h3 { margin-top:20px; }.access-dialog form>label { margin-top:16px; }.access-dialog textarea { font:11px/1.8 ui-monospace,monospace; background:var(--soft); }.access-capabilities { border:1px solid var(--line); border-radius:7px; display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:15px; margin-top:18px; }.access-capabilities legend { font-size:12px; }.access-capabilities legend small { display:block; font-size:10px; }.access-capabilities label { display:flex; align-items:center; gap:7px; }.access-capabilities input { margin:0; }.access-success { padding:12px; background:var(--accent-soft); color:var(--accent); border-radius:7px; margin-bottom:14px; }.access-token-once-note { font-size:12px; line-height:1.8; color:var(--muted); margin:12px 0; }.credential-controls { margin-top:15px; padding-top:13px; border-top:1px solid var(--line); }.credential-controls>summary { font-size:11px; }.access-credential-help p { color:var(--muted); font-size:12px; line-height:1.85; margin:12px 0; } /* 保留与归档沿用同一组表单、提示和间距。 */ .content-grid.single-column { display:block; }.retention-panel { max-width:1100px; }.retention-switch { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:15px 0 20px; border-bottom:1px solid var(--line); margin-bottom:20px; }.retention-switch b { font-size:13px; }.retention-switch small { display:block; max-width:650px; line-height:1.75; margin-top:5px; font-size:11px; }.switch { display:inline-flex; align-items:center; }.switch input { width:33px; height:18px; margin:0; }.switch>span { display:none; }.retention-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.retention-field { border:1px solid var(--line); border-radius:8px; padding:13px; position:relative; }.retention-field small { float:right; font-size:10px; }.retention-field input { margin-top:9px; font-size:18px; color:var(--heading); font-weight:550; border:0; background:var(--soft); }.retention-meta { display:flex; gap:20px; color:var(--muted); font-size:11px; margin:20px 0; }.retention-meta b { font-weight:500; color:var(--text); }.retention-tools { display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; align-items:end; padding-top:24px; margin-top:25px; border-top:1px solid var(--line); }.retention-select { min-width:180px; }.retention-tool-buttons { display:flex; gap:10px; flex-wrap:wrap; }.retention-preview { background:var(--soft); border-radius:7px; padding:16px; font-size:12px; line-height:1.8; color:var(--muted); overflow-wrap:anywhere; }.retention-preview code,.retention-export-result code { display:block; overflow-wrap:anywhere; font-size:10px; }.retention-export-result { margin:15px 0; font-size:11px; }.retention-export-result a { margin-left:12px; }.retention-preview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.retention-preview-grid b { display:block; font-size:20px; color:var(--heading); }.archive-grid { display:grid; grid-template-columns:340px minmax(0,1fr); gap:20px; align-items:start; }.archive-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }.archive-stats article { border:1px solid var(--line); background:white; padding:18px 22px; border-radius:10px; }.archive-stats span { color:var(--muted); font-size:11px; }.archive-stats strong { display:block; font-size:26px; font-weight:600; margin:8px 0 2px; }.archive-stats small { font-size:10px; }.archive-input-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.archive-plan-meta { display:grid; gap:6px; margin:15px 0; font-size:10px; color:var(--muted); }.archive-plan-chips { display:flex; flex-wrap:wrap; gap:5px; border-top:1px solid var(--line); margin-top:18px; padding-top:16px; }.archive-plan-chips span { border-radius:4px; background:var(--soft); padding:4px 6px; font-size:10px; color:var(--muted); }.archive-plan-chips span.enabled { color:var(--accent); background:var(--accent-soft); }.archive-job { border:1px solid var(--line); border-radius:8px; padding:15px; margin-top:12px; }.archive-job-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }.archive-job-head>div { display:flex; align-items:center; gap:9px; }.archive-job-head b { font-size:12px; }.archive-job-head time { font-size:10px; color:var(--muted); }.archive-job>.application-badge { margin:8px 0; }.archive-job-id { display:block; font-size:10px; color:#93a1af; overflow-wrap:anywhere; }.archive-progress { display:flex; flex-wrap:wrap; gap:12px; font-size:10px; margin:13px 0; color:var(--muted); }.archive-progress b { color:var(--text); font-weight:550; }.archive-job summary { font-size:10px; }.archive-digest { display:block; font-size:10px; overflow-wrap:anywhere; margin-top:10px; color:var(--muted); }.archive-job-error { background:#fdf2f3; color:var(--danger); border-radius:5px; padding:8px; font-size:11px; margin-top:10px; }.archive-job-note { font-size:11px; color:var(--muted); }.archive-job-actions { display:flex; gap:12px; margin-top:12px; }#archive-action-form { margin-top:20px; border-top:1px solid var(--line); padding-top:20px; } /* 登录页与工作台使用同一套颜色和输入组件。 */ .login-body { background:#fff; }.login-page { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; }.login-brand { display:flex; flex-direction:column; justify-content:space-between; padding:55px 65px; background:#edf5f2; border-right:1px solid #e3ede7; }.login-brand .brand { padding:0; }.login-brand .brand strong { display:flex; align-items:center; gap:10px; }.login-brand .brand small { letter-spacing:1px; font-size:12px; font-weight:400; margin:0; }.brand-separator { font-size:16px; color:#b5c9c1; font-weight:300; }.login-intro { margin:80px 0; }.login-intro h1 { font-size:52px; font-weight:600; line-height:1.35; letter-spacing:-2px; color:#205a4e; margin:18px 0; }.login-intro p { color:#7b9288; font-size:15px; line-height:1.9; }.login-flow { display:flex; align-items:center; gap:20px; margin-top:45px; color:#659784; }.login-flow span { background:#ffffff90; border:1px solid #d8e8df; border-radius:9px; width:65px; height:58px; display:grid; place-items:center; font-size:12px; }.login-flow i { font-style:normal; font-size:19px; color:#adc8bb; }.login-brand>small { font-size:11px; color:#99aea2; }.login-panel { display:flex; align-items:center; justify-content:center; padding:60px 30px; position:relative; }.login-card { width:350px; max-width:100%; }.login-card h2 { font-size:25px; }.login-copy { color:var(--muted); font-size:12px; margin-top:10px; margin-bottom:32px; }.login-form { display:grid; gap:19px; }.login-field input { height:43px; font-size:13px; }.password-toggle { display:flex; align-items:center; gap:7px; font-size:11px; }.password-toggle input { margin:0; width:13px; height:13px; }.login-error { font-size:12px; color:var(--danger); }.login-error:empty { display:none; }.login-submit { width:100%; height:43px; font-size:13px; margin-top:6px; }.login-help { font-size:11px; color:#96a2ae; margin-top:24px; text-align:center; }.login-footer { position:absolute; bottom:38px; font-size:10px; color:#adb5bf; } @media(min-width:1600px){.main-content{padding-left:46px;padding-right:46px}.metric-card{padding:24px}.overview-grid{grid-template-columns:1.5fr 1fr}} @media(max-width:1200px){.app-shell{grid-template-columns:185px minmax(0,1fr)}.main-content{padding:0 22px 20px}.sidebar{padding:23px 11px}.topbar-actions{gap:9px}.last-updated{display:none}.scope-heading{display:none}.overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(250px,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.access-grid{grid-template-columns:220px minmax(0,1fr)}.archive-grid{grid-template-columns:290px minmax(0,1fr)}.id-lookup input{width:165px}.page-heading{align-items:start}.page-heading h1{font-size:24px}} @media(max-width:920px){.app-shell{grid-template-columns:160px minmax(0,1fr)}.brand{padding:0 5px}.brand strong{font-size:20px}.brand small{font-size:10px}.nav-item{font-size:12px;padding:10px}.nav-icon{font-size:17px}.main-content{padding:0 18px 20px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid,.archive-grid{grid-template-columns:1fr}.access-grid{grid-template-columns:1fr}.access-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{flex-direction:column;align-items:stretch;gap:14px}.page-heading>.secondary-button{align-self:start}.id-lookup input{width:240px}.snapshot-note{flex-wrap:wrap}.snapshot-note>span:last-child{margin-left:0}.scope-note{flex-basis:100%;justify-content:flex-end}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.login-brand{padding:40px}.login-intro h1{font-size:42px}.login-brand .brand small{display:none}} @media(max-width:640px){.app-shell{display:block}.sidebar{position:relative;height:auto;display:block;padding:15px 16px 0;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0}.brand small{display:inline-block;margin-left:10px;letter-spacing:1px}.brand-mark{width:30px;height:30px}.workspace-label,.nav-group-label,.sidebar-bottom{display:none}.nav-list{flex-direction:row;overflow-x:auto;gap:3px;margin-top:14px;padding-bottom:10px}.nav-item{flex-shrink:0;padding:9px 11px;font-size:12px;gap:6px}.nav-icon{font-size:14px;width:16px}.main-content{padding:0 14px 16px}.topbar{height:58px;margin-bottom:16px;gap:10px}.crumbs{font-size:11px;gap:8px}.live-chip{display:none}.topbar-actions{gap:8px}.auto-refresh{font-size:10px}.application-scope{padding:12px;gap:10px;margin-bottom:20px}.scope-field{display:block;min-width:120px}.scope-field select{margin-top:5px}.scope-note{display:none}.page-heading h1,.archive-heading h1,.access-heading h1{font-size:23px}.page-heading p,.archive-heading p,.access-heading p{font-size:11px}.page-heading,.access-heading,.archive-heading{margin-bottom:18px}.access-heading,.archive-heading{align-items:start}.metric-grid{gap:10px}.metric-card{padding:16px}.metric-card strong{font-size:27px;margin:10px 0 5px}.metric-card small{font-size:9px}.metric-top{font-size:11px}.snapshot-note{font-size:9px;line-height:1.8}.panel{padding:17px}.data-panel{padding:0}.panel-heading{margin-bottom:16px}h2{font-size:15px}.stat-grid{gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.list-filters{padding:15px;gap:10px}.filter-key{max-width:none;min-width:170px!important}.filter-more{flex-basis:100%}.list-summary{padding:12px 15px}.list-summary .muted{display:none}.list-pagination{padding:12px 15px;flex-wrap:wrap;justify-content:center}.list-pagination>label{font-size:10px}.list-pagination>div{gap:8px}.list-pagination button{font-size:10px;padding:6px 9px}.list-pagination .text-button{padding:3px 0}.list-pagination>div>span{font-size:10px}.id-lookup input{width:100%}.table-wrap table{min-width:660px}.recent-panel table{min-width:540px}td{padding:13px 11px}.access-list{grid-template-columns:1fr}.access-config-grid{grid-template-columns:1fr}.access-meta>div{flex-direction:column;gap:5px}.access-credential{padding:14px}.access-credential-header{flex-wrap:wrap;gap:6px}.access-dialog{padding:20px;max-height:calc(100dvh - 24px);width:calc(100vw - 24px)}.access-form-actions{gap:10px}.access-form-actions button{font-size:11px}.retention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.retention-meta{flex-direction:column;gap:7px}.archive-stats{gap:9px}.archive-stats article{padding:13px}.archive-stats strong{font-size:24px}.archive-stats small{font-size:9px}.task-drawer{padding:22px 17px}.drawer-header h2{font-size:19px}.detail-grid{padding:15px;gap:14px}.page-footer{flex-direction:column;gap:7px;font-size:9px}.service-detail-grid{grid-template-columns:1fr}.login-page{display:flex;flex-direction:column;min-height:100dvh}.login-brand{padding:24px;background:#edf5f2}.login-brand .brand small{display:inline-block}.login-intro{margin:28px 0 12px}.login-intro .page-eyebrow,.login-flow,.login-brand>small{display:none}.login-intro h1{font-size:28px;letter-spacing:-.5px;margin:0 0 9px}.login-intro h1 br{display:none}.login-intro p{font-size:11px}.login-intro p br{display:none}.login-panel{padding:35px 26px 70px;flex:1}.login-card{width:100%;max-width:380px}.login-card h2{font-size:22px}.login-copy{margin-bottom:24px}.login-footer{bottom:22px}} /* 筛选工作区:限制大屏拉伸,范围与查询使用一致的控件。 */ .main-content { max-width:1580px; margin:0 auto; } .application-scope { gap:16px 22px; padding:16px 20px; margin-bottom:28px; } .scope-heading { padding-right:6px; } .scope-field { display:block; flex:0 1 300px; min-width:180px; } .scope-field>span { display:block; margin-bottom:7px; font-size:11px; } .scope-queue { flex-basis:300px; } .scope-note { margin-left:auto; } .scope-field select { height:40px; } .select-trigger { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; min-width:0; height:40px; padding:0 12px; border:1px solid #d6dee7; border-radius:7px; background:#fff; color:var(--text); text-align:left; font-size:12px; font-weight:400; } .select-trigger:hover:not(:disabled) { border-color:#9abbb4; background:#fcfefd; } .select-trigger[aria-expanded=true] { border-color:var(--accent); box-shadow:0 0 0 3px #087f7512; } .select-caption { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .select-chevron { border-right:1.5px solid #7d8f9d; border-bottom:1.5px solid #7d8f9d; width:6px; height:6px; transform:rotate(45deg); margin:0 2px 3px; flex-shrink:0; } .select-trigger[aria-expanded=true] .select-chevron { transform:rotate(225deg); margin-top:6px; } .select-popover { position:fixed; z-index:45; padding:5px; background:#fff; border:1px solid #dde7e4; border-radius:10px; box-shadow:0 10px 32px #183b2f1c,0 2px 6px #183b2f09; } .select-search { padding:6px 6px 10px; } .select-search input { margin:0; height:36px; background:var(--soft); font-size:12px; padding:8px 10px; } .select-options { overflow-y:auto; overscroll-behavior:contain; } .select-option { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:6px; cursor:pointer; color:var(--text); font-size:12px; } .select-option[aria-selected=true] { color:var(--accent); background:#edf7f3; } .select-option.is-active { background:#f0f5f3; } .select-option.is-active[aria-selected=true] { background:#e5f2ed; } .select-option[aria-disabled=true] { opacity:.45; cursor:not-allowed; } .select-option-copy { min-width:0; } .select-option b { display:block; font-weight:500; overflow-wrap:anywhere; } .select-option small { display:block; font-size:10px; margin-top:3px; color:#83948e; } .select-check { color:var(--accent); font-size:13px; flex-shrink:0; } .select-empty { padding:22px 12px; font-size:12px; text-align:center; color:var(--muted); } .select-options:focus { outline:none; } input:focus-visible,textarea:focus-visible { outline:none; } .task-processor>span { display:block; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .list-filters { display:grid; grid-template-columns:155px minmax(200px,1fr) auto auto; gap:16px; padding:22px; align-items:end; } .list-filters>label { font-size:12px; min-width:0; } .list-filters>label>.select-trigger { margin-top:7px; } .list-filters input,.list-filters select { height:40px; } .filter-key { max-width:none; } .filter-actions { display:flex; gap:9px; grid-column:4; grid-row:1; } .filter-actions button { height:40px; padding:0 17px; } .filter-more { display:flex; gap:12px; align-items:center; align-self:end; justify-content:center; height:40px; border:1px solid #d6dee7; background:#fff; color:var(--muted); border-radius:7px; padding:0 13px; grid-column:3; grid-row:1; font-size:12px; font-weight:400; list-style:none; } .filter-more::-webkit-details-marker { display:none; } .filter-more:hover { background:var(--soft); border-color:#9abbb4; } .filter-more[aria-expanded=true] { background:var(--accent-soft); border-color:#b8d9ce; color:var(--accent); } .filter-more[aria-expanded=true] span { transform:rotate(180deg); } .filter-dates { grid-column:1/-1; border-top:1px solid var(--line); padding-top:17px; margin:0; gap:16px; } .filter-dates label { flex:0 1 230px; } .filter-dates small { font-size:11px; } .list-pagination { padding:15px 22px; background:#fcfdfd; } .list-pagination>label { white-space:nowrap; } .list-pagination .select-trigger { width:72px; height:34px; font-size:12px; } .list-pagination>div>span { padding:5px 8px; font-size:12px; color:var(--text); } /* 品牌内容在左半屏内居中,与右侧表单形成平衡的两列。 */ .login-brand { padding:54px clamp(32px,5vw,80px); } .login-brand>* { width:min(100%,400px); margin-left:auto; margin-right:auto; } .login-intro { margin-top:70px; margin-bottom:70px; } .login-intro h1 { font-size:clamp(40px,3.4vw,54px); } .login-card { width:360px; } @media(max-width:1200px){.scope-field{flex:1;min-width:160px}.scope-note{margin-left:0}} @media(max-width:920px){.application-scope{gap:12px}.scope-note{flex-basis:100%;margin-top:-4px}.list-filters{grid-template-columns:145px minmax(160px,1fr)}.filter-more{grid-column:1;grid-row:2}.filter-actions{grid-column:2;grid-row:2}.login-brand{padding:40px}.login-intro h1{font-size:40px}} @media(max-width:640px){.application-scope{padding:14px;gap:12px}.scope-field{flex:1 1 100%;min-width:0}.scope-note{display:none}.scope-field>span{margin-bottom:5px}.list-filters{padding:16px;grid-template-columns:1fr 1fr;gap:14px}.list-filters>label{grid-column:1/-1;min-width:0!important}.filter-more{grid-column:1;grid-row:3}.filter-actions{grid-column:2;grid-row:3;gap:7px}.filter-actions button{flex:1;padding:0 11px}.filter-dates{grid-row:4;gap:14px}.filter-dates label{flex:1 1 100%;min-width:0}.filter-dates small{padding:0}.list-pagination{padding:14px 10px;gap:12px}.list-pagination>div{gap:6px}.list-pagination .select-trigger{width:65px;height:32px}.login-brand{padding:28px}.login-brand>*{width:100%;max-width:380px}.login-intro{margin:30px auto 8px}.login-intro h1{font-size:28px}.login-card{width:100%}} /* none 同时关闭边界回弹和滚动传递;contain 仍会让 macOS 上的菜单和内容弹动。 根视口与各实际滚动容器分别设置,保留短屏导航、内容和弹层的正常滚动。 */ .console-document, .console-body { height:100%; overflow:hidden; overscroll-behavior:none; } .console-body .app-shell { position:fixed; inset:0; height:100%; min-height:0; overflow:hidden; grid-template-rows:minmax(0,1fr); } .console-body .sidebar { position:relative; height:100%; min-height:0; overscroll-behavior:none; } .console-body .main-content { height:100%; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:none; scrollbar-gutter:stable; scroll-padding-top:100px; } .console-body .topbar { position:sticky; top:0; z-index:20; background:var(--bg); } .console-body :is(.select-options,.table-wrap,.task-drawer,.access-dialog){overscroll-behavior:none} @media(min-width:921px){.access-list-panel{position:sticky;top:100px;max-height:calc(100dvh - 124px);overflow:auto;overscroll-behavior:none}} @media(max-width:640px){.console-body .app-shell{display:flex;flex-direction:column}.console-body .sidebar{height:auto;flex:0 0 auto;overflow:visible}.console-body .main-content{flex:1;scroll-padding-top:78px}.nav-list{overscroll-behavior:none}} @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}} @media(max-width:640px){.data-panel .table-wrap::before{content:"左右滑动查看完整表格 →";display:block;padding:0 15px 10px;color:var(--muted);font-size:10px}.retention-panel{max-width:none}} .login-audit-dialog{width:min(960px,calc(100vw - 32px))}.login-audit-dialog .table-wrap{margin:20px 0}.login-audit-dialog th,.login-audit-dialog td{padding:12px;text-align:left;white-space:nowrap}.login-audit-dialog .audit-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px}