/* Enterprise console: shared tokens and component styles. */
:root{--accent:#315d9e;--accent-hover:#24497f;--accent-soft:#edf3fb;--ink:#25344a;--muted:#607087;--subtle:#66758a;--border:#e9edf2;--surface:#fff;--background:#f4f6f9;--radius:8px;--success:#187451;--danger:#b83b35}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--background);color:var(--ink);font:14px/1.6 "PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--accent);text-decoration:none}h1,h2,h3,p{margin-top:0}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}small,.muted,.field-help{font-size:12px;color:var(--muted);line-height:1.8}.muted:empty{display:none}small{overflow-wrap:anywhere}.eyebrow{font-size:13px;font-weight:500;letter-spacing:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.required-mark{color:var(--danger)}
input:not([type=checkbox]),select,textarea{width:100%;min-width:0;max-width:100%;height:36px;padding:7px 12px;border:1px solid #d9dfe7;border-radius:6px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#929aaa}input:hover,select:hover,textarea:hover{border-color:#98bff6}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1677ff16}input:disabled,select:disabled{cursor:not-allowed;background:#f7f8fa;color:var(--subtle)}input[readonly],textarea[readonly]{background:#f7f8fa;color:#4e5969}textarea{height:auto;resize:vertical}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex:none;cursor:pointer}input[type=file]{height:auto;padding:8px}label{display:block;margin:16px 0 8px;font-size:13px;color:#4e5969}label>input:not([type=checkbox]),label>select,label>textarea,label>.layui-form-select{display:block;width:100%;margin-top:7px}button:disabled{cursor:not-allowed;opacity:.45}button[aria-busy=true]{pointer-events:none;opacity:.6}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.layui-btn{height:36px;line-height:34px;border:1px solid var(--accent);border-radius:6px;font-size:13px;background:var(--accent);box-shadow:none;transition:background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.layui-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);opacity:1}.layui-btn-primary{background:#fff;color:#4e5969;border-color:#d9dfe7}.layui-btn-primary:hover{background:#f7faff;color:var(--accent);border-color:#91baff}.layui-btn+.layui-btn{margin-left:0}.layui-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.layui-btn.quiet{background:transparent;border-color:transparent;color:var(--muted)}.layui-btn.quiet:hover{color:var(--accent);background:var(--accent-soft)}.layui-btn.danger{color:var(--danger);border-color:#f1c6c3;background:#fff}.layui-btn-sm{height:28px;line-height:26px;padding:0 10px;font-size:12px}.layui-btn .layui-icon{font-size:16px!important}.layui-form-select .layui-input{height:36px;border-radius:6px}.layui-form-select dl{padding:5px;border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 24px #1d212914;max-height:270px}.layui-form-select dl dd{border-radius:4px;font-size:13px;line-height:34px}.layui-form-select dl dd.layui-this{color:var(--accent);background:var(--accent-soft)}.layui-form-select dl dd:hover{background:#f5f7fa}.layui-form-switch{margin-top:0}.layui-form-onswitch{border-color:var(--accent);background:var(--accent)}.layui-layer{font-family:inherit;border-radius:10px!important;overflow:hidden;max-width:94vw}.layui-layer-title{background:#fff!important;border-bottom:1px solid var(--border)!important;font-weight:600}.layui-layer-dialog .layui-layer-content{white-space:pre-line;overflow-wrap:anywhere;line-height:1.9}.layui-layer-btn{padding:16px 20px!important;border-top:1px solid var(--border)}.layui-layer-btn a{border-radius:5px!important}.layui-layer-btn .layui-layer-btn0{background:var(--accent)!important;border-color:var(--accent)!important}
.workspace{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}aside{height:100dvh;position:sticky;top:0;background:#fff;border-right:1px solid var(--border);padding:0 12px 20px;display:flex;flex-direction:column;z-index:100}.brand{height:88px;display:flex;align-items:center;gap:10px;padding:0 12px;color:#17233d;font-size:19px;font-weight:650;flex:none}.brand small{display:block;font-size:11px;color:#8a94a6;font-weight:400;letter-spacing:1px;margin-top:1px}.brand-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:11px;background:var(--accent);color:#fff;box-shadow:0 4px 12px #1677ff20}.brand-mark i{font-size:27px}.brand-mark.small{width:36px;height:36px;border-radius:9px}.brand-mark.small i{font-size:24px}nav{display:grid;gap:12px;align-content:start;overflow-y:auto;padding-top:8px}.nav-group{min-width:0}.nav,.nav-group-heading{display:flex;align-items:center;gap:12px;width:100%;height:42px;padding:0 14px;border:0;border-radius:6px;background:transparent;color:#4e5969;font-size:14px;text-align:left}.nav-group-heading{font-weight:500;color:#1d2939}.nav i,.nav-group-heading i{font-size:18px;color:#697b95}.nav:hover{background:#f5f7fa;color:var(--accent)}.nav.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-parent{color:#1d2939;font-weight:500}.nav-parent span{flex:1}.nav-parent .nav-chevron{font-size:12px;transition:transform .15s}.nav-parent[aria-expanded=false] .nav-chevron{transform:rotate(-90deg)}.nav-submenu{display:grid;gap:4px;margin:4px 0 0}.nav-submenu .nav{height:40px;padding-left:44px;font-size:13px}.main{min-width:0}.topbar{height:64px;display:flex;align-items:center;gap:14px;padding:0 32px;border-bottom:1px solid var(--border);background:#fff}.breadcrumb{display:flex;align-items:center;gap:12px;flex:1;color:var(--subtle);font-size:12px}.breadcrumb i{font-size:10px;color:#c0c6d0}.breadcrumb span:last-child{color:#4e5969}.user-area{display:flex;align-items:center;gap:10px;font-size:12px}.user-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#eef4ff;color:#5279b5}.user-area .quiet{margin-left:10px;font-size:12px;height:30px;padding:0 9px}#menu-toggle{display:none}.page-content{padding:26px 32px 18px;max-width:1720px;margin:0 auto}.page-heading{margin-bottom:24px}.page-heading h1{font-size:24px;line-height:1.4;font-weight:600;margin:0 0 8px}.page-heading p{font-size:13px;color:var(--muted);margin:0}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;font-size:12px;line-height:20px;border-radius:4px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.badge-neutral,.badge-muted{background:#f2f3f5;color:#667085}.badge-success{background:#e9f7f1;color:var(--success)}.badge-failed{background:#fff0ef;color:var(--danger)}.status-pill::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.service-tag{display:inline-block;padding:1px 7px;background:#f2f5fa;border:1px solid #e7edf6;border-radius:4px;font-size:11px;line-height:21px;color:#4d6384;margin:2px 4px 2px 0}.count-tag{padding:0 7px;min-width:24px;line-height:23px;border-radius:5px;background:#f2f3f5;font-size:12px;font-weight:500;color:#667085}.title-line{display:flex;align-items:center;gap:10px}.notice{display:flex;align-items:flex-start;gap:10px;padding:13px 16px;background:#eef5ff;border:1px solid #d9eaff;border-radius:6px;margin-bottom:20px;font-size:12px;line-height:1.8;color:#5d7390}.notice>i{font-size:17px;color:var(--accent);margin-top:2px;flex:none}.notice strong{color:#355a8b;font-weight:500;display:block;margin-bottom:2px}.message{position:sticky;top:12px;z-index:150;background:#fff8e8;border:1px solid #f3d99e;border-radius:6px;padding:12px 16px;margin-bottom:20px;color:#8c6318;font-size:13px;box-shadow:0 4px 16px #17233d08;overflow-wrap:anywhere}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;min-width:0}.panel-head{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2{margin:0}.panel-head p{color:var(--muted);font-size:12px;margin:5px 0 0}.panel-body{padding:0 24px 24px;min-width:0}.panel-body>p{font-size:13px;color:var(--muted)}.panel-body>label:first-child{margin-top:0}.panel-body small{display:block}.panel-body>select,.panel-body>.layui-form-select{margin-top:10px}.actions,.search-row{display:flex;align-items:center;gap:10px}.actions{flex-wrap:wrap;margin-top:20px}.panel-head .actions{margin:0}.search-row input{flex:1;min-width:0}.search-row button{flex:none}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.two-col>label{margin-top:0}.two-col:has(>label[hidden]){grid-template-columns:1fr;max-width:440px}.filter-bar{display:flex;gap:16px;align-items:flex-end;padding-top:0}.filter-bar label{margin:0;width:180px;flex:none;font-size:12px}.filter-bar .filter-keyword{flex:1;max-width:400px;min-width:240px}.filter-actions{display:flex;gap:8px;flex:none}.table-wrap{overflow-x:auto;max-width:100%}.layui-table-view{margin:0;border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.layui-table-view .layui-table{color:var(--ink);font-size:13px}.layui-table-view .layui-table th{background:#f7f8fa;color:#697386;font-weight:500}.layui-table-cell{height:auto;min-height:40px;line-height:24px;padding:12px 20px}.layui-table-cell small{display:block;font-size:11px;color:#98a1b0}.layui-table td,.layui-table th{border-left:0;border-right:0;border-color:#edf0f4}.layui-table-header{border-color:var(--border)}.layui-table-body tr:hover,.layui-table-hover{background:#f8faff!important}.layui-table-none{padding:64px 20px;color:var(--subtle)}.layui-table-cell .layui-btn{border:0;background:transparent;color:var(--accent);padding:0 6px}.layui-table-cell .layui-btn:hover{background:var(--accent-soft)}.layui-table-sort{margin-left:4px}.pagination{padding:12px 24px;min-height:64px;display:flex;justify-content:flex-end;align-items:center}.layui-laypage{display:flex;flex-wrap:wrap;gap:5px;margin:0}.layui-laypage a,.layui-laypage span{border-radius:4px;font-size:12px;border-color:#e5e8ee;margin:0}.layui-laypage .layui-laypage-count{margin-right:auto;padding-left:0;border:0;color:var(--subtle)}.layui-laypage .layui-laypage-curr .layui-laypage-em{border-radius:4px}.layui-table-page{height:auto;min-height:50px;padding:12px 24px}.empty{padding:48px 24px;text-align:center;color:var(--muted)}.migration-panel summary{cursor:pointer;padding:17px 24px;font-size:13px}.migration-panel summary>span:first-child{display:flex;gap:10px;align-items:center}.migration-panel summary i{color:var(--subtle)}.grant-item{padding:16px 0;border-bottom:1px solid var(--border)}.grant-item:last-child{border-bottom:0}.grant-item strong,.grant-item small{display:block;margin-bottom:6px}.grant-item p{font-size:12px;color:var(--muted);overflow-wrap:anywhere;white-space:pre-line}#ac-pending .grant-item p{max-height:140px;overflow:auto}
.editor-heading{display:flex;align-items:center;justify-content:space-between;margin:-8px 0 16px}.editor-heading .quiet{margin-left:-12px}.editor-panel>.panel-head{border-bottom:1px solid var(--border)}.form-section{display:grid;grid-template-columns:196px minmax(0,1fr);gap:24px;margin:0 24px;padding:28px 0;border-bottom:1px solid var(--border)}.form-section-title{display:flex;align-items:flex-start;gap:10px}.step-number{font-size:12px;font-weight:600;line-height:26px;background:#f0f5ff;color:#5275ae;border-radius:5px;text-align:center;width:28px;flex:none}.form-section-title h3{margin:2px 0 5px}.form-section-title p{font-size:12px;color:var(--subtle);margin:0}.form-section-body{min-width:0}.form-section-body>label:first-child{margin-top:0}.field-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:18px 0 8px}.field-heading label{margin:0;font-size:13px}.field-heading .quiet{padding:0 6px;font-size:12px}.form-section-body>.layui-form-select{margin-top:10px}.form-section-body>.muted{margin:8px 0 0}.check{display:flex;align-items:center;gap:9px}.check input{margin:0}.check strong{font-weight:500;color:#1d2129}.check small{display:block;font-weight:400;color:var(--muted)}#account-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}.account-service{border:1px solid #e2e7ef;border-radius:7px;background:#fff;min-width:0;transition:border-color .15s,background .15s}.account-service:has(.service-check input:checked){border-color:#91baff;background:#fbfdff}.service-check{margin:0;padding:16px;cursor:pointer;gap:10px}.service-check input{order:3;margin-left:auto}.service-check strong{font-size:14px;display:block;margin-bottom:3px}.service-check small{font-size:11px}.service-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#eaf3ff;color:#3e7ce3;flex:none}.service-icon i{font-size:23px}.service-icon.purple{background:#f2edff;color:#9670d9}.service-icon.teal{background:#e6f7f4;color:#35a58e}.service-icon.orange{background:#fff4e8;color:#ce9445}.service-scope{border-top:1px solid #e4edfb;padding:16px;background:#fff;border-radius:0 0 7px 7px}.service-scope label{margin-top:0}.service-scope .field-heading{margin-top:0}.service-scope .search-row button{padding:0 12px}.scope-preview{padding:10px 12px;font-size:12px;line-height:1.8;background:#f5f8fd;border-radius:5px;color:#647790;margin:10px 0 0;overflow-wrap:anywhere}.service-scope>.muted{margin:8px 0 0;font-size:11px}.main-account-results{max-height:230px;overflow:auto;margin-top:8px}.main-account-option{display:flex;align-items:flex-start;gap:9px;padding:10px;margin:0;border-bottom:1px solid var(--border);cursor:pointer}.main-account-option input{display:block!important;flex:none;margin-top:3px}.main-account-option strong{display:block;font-size:12px}.main-account-option small{display:block;font-size:11px}.main-account-option:hover{background:#f7faff}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chips:empty,.main-account-results:empty{display:none}.chip.layui-btn{height:auto;min-height:26px;line-height:20px;padding:3px 8px;white-space:normal;overflow-wrap:anywhere;background:var(--accent-soft);border:1px solid #d9e8fb;color:#50739f;font-size:11px}.field-help{margin:12px 0 0}.enabled-field{margin-top:0;align-items:flex-start}.enabled-field input{margin-top:4px}.enabled-field small{margin-top:3px}.form-footer{position:sticky;bottom:0;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border-radius:0 0 8px 8px;border-top:1px solid var(--border);z-index:20;box-shadow:0 -3px 12px #14243f04}.form-footer .actions{margin:0}.form-section:last-of-type{border-bottom:0}
.capability-hero{background:var(--surface)}.capability-hero .panel-head{align-items:flex-start}.capability-hero h2{font-size:21px}.capability-hero .panel-head p{max-width:820px;font-size:13px;line-height:1.9;margin-top:10px}.capability-hero .actions{margin:0}.service-view-tabs{display:flex;gap:28px;border-bottom:1px solid #e3e8ef;margin-bottom:20px}.service-view-tabs button{border:0;border-bottom:2px solid transparent;padding:12px 4px;background:transparent;color:var(--muted);font-size:14px;margin-bottom:-1px}.service-view-tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.capability-card{padding:20px;border:1px solid var(--border);border-radius:7px;min-width:0;background:#fff}.capability-card h3{font-size:14px;margin:0 0 8px}.capability-card p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:12px}.capability-name{display:inline-block;max-width:100%;padding:3px 7px;background:#f3f6fb;color:#54719d;border-radius:4px;font:11px/1.8 Consolas,monospace;overflow-wrap:anywhere}.capability-io{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px 10px;font-size:12px;margin:16px 0 0;border-top:1px dashed var(--border);padding-top:13px}.capability-io dt{color:var(--subtle)}.capability-io dd{margin:0;overflow-wrap:anywhere;color:#526070}#pf-capability-content .panel-head input{width:260px}#pf-capability-content .empty{grid-column:1/-1}#tab-platform-service>.panel .panel-body{max-width:100%}#pf-source-jobs{margin-top:24px;padding-top:14px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}#pf-source-jobs p{padding:10px 12px;background:#f7f9fc;border-radius:5px;margin-bottom:8px}#pf-source-start{margin-top:8px}#pf-weekly-week,#pf-weekly-baseline-week{max-width:400px}#pf-weekly-summary{margin-top:20px;font-size:13px;color:var(--muted)}#pf-operation-weekly details{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}#pf-operation-weekly summary{cursor:pointer;color:var(--muted);font-size:13px}#pf-trend-metrics{margin:20px 0}#pf-trend-summary{margin-top:20px}.configuration-panel{max-width:1080px}.configuration-panel .panel-head{border-bottom:1px solid var(--border)}.configuration-panel .panel-body{padding-top:20px;max-width:850px}.configuration-panel input{font-size:13px}.configuration-panel .panel-body>p:last-child{margin-top:20px}.log-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.log-filters label{min-width:0;margin:0;font-size:12px}.log-filters label:last-child{grid-column:span 2}#logs-table+.layui-table-view .layui-table-cell{padding:12px}.log-cell{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;overflow-wrap:anywhere;max-height:48px}#log-detail{width:min(760px,94vw);max-height:88dvh;border:1px solid var(--border);border-radius:10px;padding:0;color:var(--ink);box-shadow:0 20px 70px #10204035}#log-detail::backdrop{background:#17223866}#log-detail .panel-head{position:sticky;top:0;background:#fff;z-index:1;border-bottom:1px solid var(--border)}#log-detail-body{padding-top:24px;overflow-wrap:anywhere}#log-detail-body h3{font-size:14px;margin:24px 0 12px}#log-detail-body ul{list-style:disc;padding-left:20px;font-size:13px}#log-detail-body li{margin:10px 0}#log-detail-body p{white-space:pre-wrap}.log-detail-info{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px 16px;margin:0;font-size:13px}.log-detail-info dt{color:var(--muted)}.log-detail-info dd{margin:0;white-space:pre-wrap}#log-detail-body details{margin-top:24px}#log-detail-body summary{cursor:pointer;color:var(--accent);font-size:12px}#log-detail-body pre{padding:16px;background:#f5f7fa;font:12px/1.8 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px}footer{display:flex;justify-content:space-between;gap:15px;margin-top:28px;font-size:11px;color:#a1a9b6;padding:0 2px}
.login-shell{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-intro{background:#edf3fb;padding:42px 9%;display:flex;flex-direction:column;color:#224678}.login-brand{display:flex;gap:12px;align-items:center;font-size:19px;font-weight:600;color:#19365e}.login-story{margin:auto 0;padding:80px 0}.login-story .eyebrow{color:#7592b5}.login-story h1{font-size:42px;font-weight:600;line-height:1.5;letter-spacing:1px;margin:20px 0;color:#19385f}.login-story>p{font-size:14px;line-height:2;color:#566c89}.login-features{margin-top:44px;display:grid;gap:24px}.login-features>div{display:grid;grid-template-columns:36px 1fr;align-items:center;column-gap:12px}.login-features i{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;color:#4888da;background:#ffffff80;border-radius:8px;font-size:21px}.login-features strong{font-size:13px;font-weight:500;color:#456487}.login-features span{font-size:12px;color:#566c89}.intro-note{font-size:12px;color:#566c89}.intro-note span{margin:0 14px}.login-card{width:min(400px,78%);align-self:center;justify-self:center;padding:48px 0}.login-label{display:inline-block;color:#6e8eb5;background:#f0f6ff;border-radius:4px;padding:3px 9px;font-size:12px}.login-card h2{font-size:28px;font-weight:600;margin:18px 0 12px}.login-card>p{color:var(--muted);font-size:13px;line-height:1.9;margin-bottom:28px}.login-card label{margin:22px 0 9px;font-size:13px}.login-card input{height:44px}.login-card .primary{width:100%;height:44px;margin-top:30px;font-size:14px}.login-card .error{color:var(--danger);margin:12px 0}.login-card .error:empty{display:none}.login-hint{display:flex;gap:7px;font-size:12px;color:#98a1af;margin-top:24px}.login-hint i{font-size:14px}
@media(min-width:1600px){.form-section{grid-template-columns:230px minmax(0,1fr)}.form-section-body{max-width:1050px}}
@media(max-width:1200px){.workspace{grid-template-columns:208px minmax(0,1fr)}.topbar{padding:0 24px}.page-content{padding:24px}.filter-bar{flex-wrap:wrap}.filter-bar label{flex:1;width:auto;min-width:140px}.filter-bar .filter-keyword{min-width:260px;max-width:none;flex:2}.form-section{grid-template-columns:1fr;gap:18px}.form-section-title p{display:none}.form-section-title{align-items:center}.form-section-title h3{margin:0}.log-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.log-filters label:last-child{grid-column:span 3}}
@media(max-width:900px){.capability-grid{grid-template-columns:1fr}.filter-bar .filter-keyword{flex-basis:100%}.user-area .badge{display:none}.log-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.log-filters label:last-child{grid-column:span 2}.login-story h1{font-size:34px}.login-intro{padding:32px 8%}.login-brand{font-size:16px}.login-card{width:80%}.login-card h2{font-size:24px}}
@media(max-width:760px){.workspace{display:block}aside{position:fixed;left:-224px;width:224px;transition:left .2s;box-shadow:6px 0 28px #17233d12}.nav-open aside{left:0}.nav-open #menu-toggle{position:fixed;left:232px;top:16px;z-index:101;background:#fff;border:1px solid var(--border)}#menu-toggle{display:inline-flex;padding:0 8px;height:30px}.topbar{height:60px;padding:0 16px;gap:8px}.breadcrumb{font-size:11px;gap:8px}.breadcrumb>span:first-child,.breadcrumb>i{display:none}.user-area{gap:7px;font-size:11px;min-width:0}.user-avatar{width:26px;height:26px}.user-area .quiet{margin:0;font-size:11px;padding:0 5px}#current-user{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-content{padding:20px 16px 16px}.page-heading{margin-bottom:20px}.page-heading h1{font-size:21px;margin-bottom:7px}.page-heading p{font-size:12px}.notice{padding:12px;font-size:12px}.panel-head{padding:18px 16px;gap:12px;flex-wrap:wrap}.panel-body{padding:0 16px 18px}.filter-bar{gap:12px}.filter-bar .filter-keyword{min-width:0}.filter-bar label{min-width:120px}.filter-actions{width:100%;justify-content:flex-end}.pagination{padding:12px 16px;justify-content:flex-start}.layui-laypage{gap:4px}.layui-laypage a,.layui-laypage span{padding:0 9px}.layui-laypage .layui-laypage-count{padding-left:0}.migration-panel summary{padding:16px}.migration-panel summary>.muted{display:none}.two-col{grid-template-columns:1fr;gap:10px}.two-col>label{margin:0 0 10px}.form-section{margin:0 16px;padding:22px 0}.editor-heading{margin:0 0 12px}.editor-panel>.panel-head>.muted{display:none}#account-services{grid-template-columns:1fr}.service-check{padding:14px}.service-scope{padding:14px}.form-footer{padding:14px 16px;flex-wrap:wrap;gap:8px}.form-footer>.muted{font-size:11px}.form-footer .actions{margin-left:auto}.form-footer .layui-btn{padding:0 14px}.capability-card{padding:16px}.capability-hero h2{font-size:19px}.capability-hero .actions{gap:8px}.capability-hero .actions button{padding:0 12px;font-size:12px}#pf-capability-content .panel-head input{width:100%}.capability-grid{gap:12px}.log-filters{gap:12px}.log-detail-info{grid-template-columns:88px minmax(0,1fr);gap:10px}.configuration-panel .panel-body{padding-top:16px}footer{margin-top:24px;font-size:10px}footer>span{display:none}.login-shell{grid-template-columns:1fr}.login-intro{padding:26px 8%}.login-brand{font-size:17px}.login-brand .brand-mark{width:34px;height:34px;border-radius:8px}.login-story{margin:0;padding:30px 0 8px}.login-story .eyebrow{font-size:11px}.login-story h1{font-size:27px;line-height:1.5;margin:12px 0 0}.login-story h1 br{display:none}.login-story>p,.login-features,.intro-note{display:none}.login-card{width:84%;max-width:430px;padding:36px 0 46px}.login-card h2{font-size:24px}.login-card>p{font-size:12px}.login-label{display:none}.login-card .primary{margin-top:24px}}
@media(max-width:380px){.log-filters{grid-template-columns:1fr}.log-filters label:last-child{grid-column:auto}.field-heading{flex-wrap:wrap}.search-row{gap:6px}.layui-btn{padding:0 12px}.brand{height:76px}}
.message{display:flex;align-items:flex-start;gap:12px;background:#eef5ff;border-color:#d9eaff;color:#486b98}.message>span{flex:1}.message>.quiet{height:24px;line-height:22px;padding:0 4px;color:#7690ae;flex:none}.panel-body>p{line-height:1.9;margin-bottom:18px}.panel-body>.muted:empty{display:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


.data-policy-description{margin:12px 16px 16px;line-height:1.7;}
.account-detail-tabs{display:flex;gap:8px;padding:0 24px 18px;flex-wrap:wrap;border-bottom:1px solid var(--border)}.account-detail-tabs .selected{background:#edf4ff;color:#2563b5;border-color:#b8d1f4}.account-service-overview{padding:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.account-grant-card{border:1px solid var(--border);padding:20px;border-radius:8px}.account-grant-card h3{font-size:16px}.account-grant-card .field-heading{margin:0 0 16px}.account-grant-card .actions{margin-top:20px;flex-wrap:wrap}.grant-summary{line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;color:#56657c}.account-detail-note,.account-service-overview>.notice{grid-column:1/-1;line-height:1.8}.account-history-item{padding:20px 0;border-bottom:1px solid var(--border)}.account-history-item p{line-height:1.8;margin:12px 0;overflow-wrap:anywhere}.scope-period{margin-top:18px}.scope-period input{margin-top:8px}#ac-diagnostic{width:min(820px,94vw)}.diagnostic-controls{display:flex;gap:16px;align-items:flex-end;margin:12px 0 24px}.diagnostic-controls label{flex:1}.diagnostic-controls input{margin-top:8px}.diagnostic-row{display:grid;grid-template-columns:110px 100px minmax(0,1fr);align-items:start;gap:14px;padding:16px 0;border-bottom:1px solid var(--border)}.diagnostic-row p{margin:0;line-height:1.75}.diagnostic-row .badge{justify-self:start}#ac-diagnostic-result>p,#ac-diagnostic-result ul{margin:16px 0;line-height:1.85}#ac-diagnostic-result ul{padding-left:20px}
@media(max-width:760px){.account-detail-tabs{padding:0 16px 16px}.account-service-overview{padding:16px;grid-template-columns:1fr}.account-grant-card{padding:16px}.diagnostic-row{grid-template-columns:1fr auto;gap:10px}.diagnostic-row p{grid-column:1/-1}.diagnostic-controls{align-items:stretch;flex-direction:column}.account-detail-tabs .layui-btn{margin-left:0}}
#ac-diagnostic{max-height:90vh;padding:0;border:1px solid var(--border);border-radius:10px;color:var(--text);box-shadow:0 18px 60px #17233d30}#ac-diagnostic::backdrop{background:#17233d55}

.single-service-editor #account-services{grid-template-columns:1fr}#ac-weekly-enterprises>.actions{display:flex;gap:8px;align-items:center;margin:16px 0 8px}#ac-weekly-search{flex:1;min-width:0}#ac-weekly-enterprises>label{display:block;margin:16px 0 10px}#ac-weekly-policy{margin-top:8px;width:100%}#ac-weekly-enterprises>.muted{font-size:12px;margin-top:12px}


/* Service-owned permission editor */
.service-user-id{overflow-wrap:anywhere;white-space:normal}.service-user-id code{display:block;font-size:12px;margin:6px 0}.service-user-id button{margin-top:8px}.service-auth-editor{max-width:960px}.service-auth-editor form{display:grid;gap:18px}.service-auth-editor label{display:block}.service-auth-editor .check{display:flex;align-items:center;gap:10px}.service-auth-editor .search-row label{flex:1;min-width:0}.service-auth-editor .main-account-option{display:flex}.service-auth-editor textarea{min-height:80px}.service-auth-editor .scope-preview{max-height:280px;overflow:auto}.service-auth-editor .chips{max-height:240px;overflow:auto}.service-auth-editor .main-account-results{max-height:320px;overflow:auto}.service-auth-editor .scope-preview:empty{display:none}

.layui-form input[type=checkbox][lay-ignore],.layui-form input[type=radio][lay-ignore]{display:inline-block}.layui-form select[lay-ignore]{display:block}#pf-authorizations .panel-head>div{min-width:0}#pf-authorizations .panel-head p{overflow-wrap:anywhere}

.assembly-panel{overflow:hidden}.assembly-heading{align-items:center}.assembly-heading .actions{display:flex;gap:8px;flex-wrap:wrap;margin:0}.assembly-heading p{margin:7px 0 0;color:var(--muted);font-size:12px}.assembly-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:18px 24px;list-style:none;border-bottom:1px solid var(--border);background:#fafcff}.assembly-progress li{padding:10px 12px;border-radius:7px;color:var(--muted);font-size:12px;font-weight:600;border:1px solid transparent}.assembly-progress li.current{background:#eaf3ff;border-color:#a6c8f4;color:#215993}.assembly-progress li.complete{color:#167060}.assembly-form{padding:24px}.assembly-step{max-width:960px;margin:auto}.assembly-step h3{font-size:18px;margin:0 0 8px}.assembly-step>.muted{margin-bottom:20px}.assembly-step>label{margin-top:16px}.assembly-step .search-row{margin-top:7px}.assembly-step .search-row input{flex:1;min-width:0}.assembly-step .check{display:flex;align-items:flex-start;gap:10px;margin:10px 0}.assembly-step .check input{display:inline-block;width:auto;margin:3px 0 0;flex:none}.assembly-step .check span{min-width:0}.assembly-step .check small{display:block;font-weight:400;line-height:1.7;color:var(--muted)}.assembly-enabled{padding:13px;border:1px solid var(--border);border-radius:7px}.assembly-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assembly-service{padding:14px 16px;border:1px solid var(--border);border-radius:8px;min-width:0;display:flex;justify-content:space-between;align-items:center;gap:10px}.assembly-service:has(input:checked){border-color:#7ab6aa;background:#f5fcf9}.assembly-service .check{margin:0;cursor:pointer}.assembly-service strong{display:block;font-size:14px}.assembly-service .badge{font-size:10px;white-space:nowrap}.assembly-authorization{padding:20px;margin:16px 0;border:1px solid var(--border);border-radius:9px;background:#fff}.assembly-auth-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.assembly-auth-heading h4{font-size:16px;margin:0}.assembly-authorization>.muted{margin:8px 0}.assembly-auth-active{padding:10px 0;border-bottom:1px solid var(--border)}.assembly-confirm{padding:8px 0}.assembly-policy-choices{border:0;padding:0;margin:18px 0 10px}.assembly-policy-choices legend{font-size:13px;font-weight:600}.assembly-policy-choices .check{padding:9px 11px;border:1px solid var(--border);border-radius:6px;margin:8px 0}.assembly-policy-choices .check:has(input:checked){background:#f3faf7;border-color:#8bc9b8}.assembly-policy-choices strong{font-size:13px}.assembly-enterprise-editor{margin:12px 0 16px}.assembly-enterprise-editor .main-account-results{max-height:230px;overflow:auto;border:1px solid var(--border);border-radius:6px}.assembly-enterprise-editor .main-account-option{display:flex;margin:0}.assembly-enterprise-editor .main-account-option input{width:auto}.assembly-enterprise-editor .chips{max-height:150px;overflow:auto}.assembly-scope-note,.assembly-restore-note{padding:10px 12px;background:#fff8ec;border:1px solid #f2ddb0;border-radius:6px;color:#775b24;font-size:12px;line-height:1.7}.assembly-authorization .scope-preview:empty{display:none}.assembly-authorization .scope-preview{max-height:210px;overflow:auto}.assembly-authorization textarea{min-height:62px}.assembly-actions{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding:16px 0 0;margin-top:28px;background:#fff}.assembly-actions #assembly-step-hint{margin-right:auto}.assembly-review-card{padding:18px 20px;margin:12px 0;border:1px solid var(--border);border-radius:8px}.assembly-review-card h4{font-size:15px;margin:0 0 14px}.assembly-review-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}.assembly-review-row:last-child{border:0}.assembly-review-row span{text-align:right;overflow-wrap:anywhere}.assembly-review-service{padding:12px 0;border-top:1px solid var(--border)}.assembly-review-service:first-of-type{border-top:0}.assembly-review-service p{font-size:12px;line-height:1.6;margin:6px 0;color:var(--muted)}.assembly-review-service .assembly-restore-note{color:#775b24}.assembly-review-card ul{padding-left:20px;line-height:1.8}.assembly-impact-warning{padding:10px 12px;border:1px solid #e7c9a6;border-radius:6px;background:#fff8ed;color:#744b1f;line-height:1.7}.assembly-result{padding:42px 24px;max-width:760px;margin:auto}.assembly-result h3{font-size:20px;margin:12px 0}.assembly-result>p{line-height:1.8}.assembly-success-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#e2f5ec;color:#176c50;font-size:24px}.assembly-result-services{margin:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.assembly-oauth-note{padding:14px 16px;background:#f1f7ff;border-radius:7px;color:#365f8a}.assembly-result .actions{margin-top:22px}
.assembly-review-service .assembly-change-line{color:#295b87;font-weight:600}
@media(max-width:760px){.assembly-progress{padding:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.assembly-progress li{padding:7px;font-size:11px}.assembly-form{padding:18px 16px}.assembly-services{grid-template-columns:1fr}.assembly-service{padding:12px}.assembly-service .badge{white-space:normal;text-align:center}.assembly-authorization{padding:15px}.assembly-heading .actions{width:100%}.assembly-actions{padding-top:12px;flex-wrap:wrap}.assembly-actions #assembly-step-hint{width:100%;order:-1}.assembly-review-card{padding:15px}.assembly-review-row{display:block}.assembly-review-row span{display:block;text-align:left;margin-top:5px}.assembly-result{padding:30px 16px}}
.service-auth-editor #sa-range{display:flex;flex-wrap:wrap;gap:12px 28px;min-width:0;margin:0;padding:0;border:0}.service-auth-editor #sa-range legend{margin-bottom:12px;font-size:13px;color:#4e5969}.service-auth-editor #sa-range label{margin:0;cursor:pointer}.service-auth-editor #sa-range input[type=radio]{width:16px;height:16px;flex:none;margin:0;padding:0;accent-color:var(--accent);cursor:pointer}

.account-service .service-user-id{margin:0;padding:0 16px 16px}
/* Trend monthly management shares the console tokens and local Layui controls. */
.trend-management .panel-head{border-bottom:1px solid var(--border);align-items:center}.trend-management .panel-head p{margin:5px 0 0}.trend-toolbar{padding:20px 24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.trend-toolbar input[type=month]{width:170px}.trend-toolbar .muted{flex:1}.trend-list-scroll{overflow-x:auto;padding-bottom:100px;margin-bottom:-100px}.trend-month-table{width:100%;border-collapse:collapse;min-width:800px;text-align:left}.trend-month-table th{padding:12px 24px;background:#fafbfc;color:var(--muted);font-size:12px;font-weight:500;border-block:1px solid var(--border)}.trend-month-table td{padding:22px 24px;vertical-align:middle;border-bottom:1px solid var(--border);white-space:nowrap}.trend-month-table tbody tr:hover{background:#fafcff}.trend-month-table td strong{font-size:15px;font-variant-numeric:tabular-nums}.trend-month-table small{display:block;margin-top:5px}.trend-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:22px;border-radius:4px;padding:1px 7px;background:#f2f4f7;color:#667085;white-space:nowrap}.trend-badge.success{color:#147d5c;background:#eaf7f1}.trend-badge.error{color:#b93831;background:#fff0ee}.trend-badge.active{color:#1764c0;background:#edf4ff}.trend-month-table td:first-child .trend-badge{margin-left:10px}.trend-success{color:#147d5c}.trend-row-actions{display:flex;gap:12px;align-items:center}.trend-row-actions>.layui-btn{height:auto;padding:0;line-height:24px;border:0;background:transparent;color:var(--accent);font-size:13px}.trend-more{position:relative;color:var(--muted);font-size:13px}.trend-more>summary{cursor:pointer;list-style:none;padding:3px 5px}.trend-more>summary::after{content:'⌄';margin-left:5px}.trend-more-menu{position:absolute;z-index:15;right:0;top:30px;background:#fff;border:1px solid var(--border);box-shadow:0 8px 25px #152d491c;border-radius:8px;padding:5px;min-width:132px;display:grid;gap:2px}.trend-more-menu .layui-btn{justify-content:flex-start;border:0;background:#fff;color:#4e5969}.trend-more-menu .layui-btn:hover{background:#f3f7fd;color:var(--accent)}.trend-more-menu .danger{color:var(--danger);border-top:1px solid var(--border);border-radius:0}.trend-list-foot{padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.trend-list-foot a{height:auto;line-height:24px;padding:0;border:0}.trend-empty{padding:48px 24px;text-align:center;color:var(--muted)}.trend-empty h3{font-size:16px;color:var(--ink)}
.trend-dialog{width:min(1080px,94vw);height:min(840px,90dvh);max-width:94vw;max-height:90dvh;padding:0;border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 80px #10204035;color:var(--ink);background:#fff;overflow:hidden}.trend-dialog[open]{display:flex;flex-direction:column}.trend-dialog::backdrop,.trend-confirm::backdrop{background:#15233866}.trend-dialog-head{padding:20px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.trend-dialog-head h2{font-size:18px;margin:0 0 5px}.trend-dialog-head p{margin:0}.trend-dialog-body{padding:24px 28px;overflow:auto;flex:1;min-height:0;overscroll-behavior:contain}.trend-dialog-foot{display:flex;gap:12px;justify-content:flex-end;align-items:center;padding:16px 28px;border-top:1px solid var(--border);background:#fff;flex:none}.trend-dialog-foot>.muted{margin-right:auto}.trend-dialog label{margin-top:0}.trend-dialog input[type=month]{width:230px}.trend-dialog .trend-consent{display:flex;gap:8px;align-items:center;flex-direction:row-reverse;margin:0 auto 0 0}.trend-steps{list-style:none;display:flex;gap:0;padding:0;margin:0 0 22px;background:#f8fafc;border-radius:7px}.trend-steps li{flex:1;padding:12px 20px;font-size:13px;color:var(--subtle)}.trend-steps .current{color:var(--accent);background:#edf4ff;font-weight:600;border-radius:6px}.trend-steps .done{color:#147d5c}.trend-tabs{display:flex;gap:24px;border-bottom:1px solid var(--border);margin-bottom:22px}.trend-tabs .layui-btn{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:0 3px;height:40px;color:var(--muted)}.trend-tabs .layui-btn[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.trend-dropzone{background:#fafcff;border:1px dashed #9ebded;border-radius:8px;padding:28px;text-align:center;transition:background .15s}.trend-dropzone.dragging{background:#eaf3ff;border-color:var(--accent)}.trend-dropzone>i{display:block;font-size:30px;color:var(--accent);margin-bottom:8px}.trend-dropzone h3{margin:0 0 6px;font-size:15px}.trend-dropzone p{margin:0 0 16px}.trend-upload-status{font-size:12px;color:var(--muted);margin:12px 0;overflow-wrap:anywhere}.trend-section-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px}.trend-section-head h3{margin:0}.trend-file-list{border:1px solid var(--border);border-radius:7px;overflow:hidden}.trend-file-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.trend-file-row:last-child{border:0}.trend-file-row>div{flex:1;min-width:200px}.trend-file-row strong{font-size:13px;font-weight:500}.trend-file-row small{display:block;font-size:11px;overflow-wrap:anywhere;margin-top:3px}.trend-file-state{font-size:12px;white-space:nowrap}.trend-file-notes{font-size:12px;color:var(--muted);max-width:100%}.trend-file-notes summary{cursor:pointer}.trend-file-notes[open]{flex-basis:100%}.trend-file-notes p{margin:6px 0}.trend-data-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.trend-data-toolbar input{width:250px;flex:1;min-width:160px}.trend-segment{display:flex;background:#f2f4f7;padding:3px;border-radius:6px;gap:3px}.trend-segment .layui-btn{height:29px;line-height:27px;background:transparent;border:0;color:var(--muted);padding:0 14px}.trend-segment .layui-btn[aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 1px 4px #15223812}.trend-data-count{font-size:12px;color:var(--muted);margin:12px 0}.trend-generation-summary{background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:18px}.trend-generation-summary h3{font-size:16px;margin:0 0 8px}.trend-generation-summary p{margin:0}.trend-generation-summary progress{width:100%;height:8px;accent-color:var(--accent);margin-top:14px}.trend-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.trend-report-card{border:1px solid var(--border);border-radius:7px;padding:16px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.trend-report-card strong{font-size:13px;flex:1}.trend-report-card a{width:100%;height:30px;line-height:28px;font-size:12px}.trend-report-card small{width:100%;color:var(--danger)}.trend-history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--border);padding:16px 0}.trend-history-row small{display:block;margin-top:4px}.trend-error{margin:12px 28px;padding:12px 16px;border:1px solid #ffd4cf;border-radius:6px;background:#fff5f4;color:#af332b;font-size:13px;overflow-wrap:anywhere}.trend-dialog-body .trend-error{margin:0 0 16px}.trend-import-option{border-top:1px solid var(--border);margin-top:28px;padding-top:18px}.trend-import-option summary{color:var(--muted);font-size:13px;cursor:pointer}.trend-import-option p{margin:14px 0}.trend-dialog[aria-busy=true] button,.trend-dialog[aria-busy=true] summary{pointer-events:none;opacity:.5}.trend-confirm{width:min(460px,92vw);padding:24px;border:1px solid var(--border);border-radius:10px;box-shadow:0 20px 80px #10204035;color:var(--ink)}.trend-confirm p{white-space:pre-line;line-height:1.9;font-size:14px}.trend-confirm .actions{justify-content:flex-end;display:flex;gap:12px;margin-top:20px}
@media(max-width:1000px){.trend-month-table th,.trend-month-table td{padding:14px 16px}.trend-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.trend-management .panel-head{gap:14px;flex-wrap:wrap}.trend-toolbar{padding:16px}.trend-toolbar .muted{order:4;flex-basis:100%}.trend-list-foot{padding:16px;flex-wrap:wrap}.trend-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.trend-dialog-head{padding:16px}.trend-dialog-body{padding:16px}.trend-dialog-foot{padding:12px 16px;flex-wrap:wrap}.trend-dialog-foot>.muted{width:100%}.trend-dialog .trend-consent{width:100%;justify-content:flex-end;font-size:12px}.trend-tabs{gap:16px}.trend-steps li{padding:10px 6px;font-size:12px;text-align:center}.trend-dropzone{padding:20px 12px}.trend-report-grid{grid-template-columns:1fr}.trend-error{margin:12px 16px}.trend-data-toolbar .trend-segment{width:100%}.trend-data-toolbar input{width:100%}.trend-dialog .table-wrap{max-width:100%;overflow-x:auto}}
@media(max-width:600px){.trend-month-table{min-width:0;display:block}.trend-month-table thead{display:none}.trend-month-table tbody{display:block}.trend-month-table tbody tr{display:grid;grid-template-columns:1fr 1fr;padding:16px;gap:12px;border-bottom:1px solid var(--border)}.trend-month-table td{display:block;padding:0;border:0;white-space:normal}.trend-month-table td:first-child,.trend-month-table td:last-child{grid-column:1/-1}.trend-month-table td:nth-child(2)::before{content:'数据完整度';display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.trend-month-table td:nth-child(3)::before{content:'生成进度';display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.trend-month-table td:nth-child(4){grid-column:1/-1;font-size:12px;color:var(--muted)}.trend-month-table td:nth-child(4)::before{content:'更新于 '}.trend-month-table td:first-child small{display:inline;margin-left:10px}.trend-month-table .trend-row-actions{border-top:1px dashed var(--border);padding-top:12px;gap:22px}.trend-more-menu{left:0;right:auto}.trend-list-scroll{overflow:visible}.trend-data-toolbar input{flex-basis:100%}.trend-dialog-foot>.primary{width:100%}}


/* Unified private OSS resource catalog */
#rs-detail,#rs-upload-dialog{width:min(700px,94vw);max-height:90vh;overflow:auto} .rs-detail-row{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #edf0f5}.rs-detail-row span{overflow-wrap:anywhere}.rs-detail-row strong{color:#667085;font-weight:500}.rs-file-drop{padding:24px;border:1px dashed #b7c7e0;border-radius:10px;background:#f8faff}.rs-file-drop small{color:#667085}#rs-upload-status{min-height:24px;color:#475467} @media(max-width:600px){.rs-detail-row{grid-template-columns:80px 1fr;gap:8px}}

/* Administrator account provisioning */
.provisioning-dialog { width:min(940px,94vw); max-height:90vh; overflow:auto; overflow-wrap:anywhere; border:0; border-radius:12px; padding:0; box-shadow:0 18px 60px #15274733; }
.provisioning-dialog form { display:grid; gap:16px; }
.provisioning-dialog fieldset { border:1px solid #dfe4eb; padding:16px; border-radius:8px; }
.provisioning-dialog legend { padding:0 8px; font-weight:600; }
.provisioning-scope { padding:12px 0; border-bottom:1px solid #e8ebef; }
.provisioning-scope select { width:100%; padding:8px; }
.provisioning-scope .main-account-results { max-height:220px; overflow:auto; }

/* Unified onboarding uses the existing console palette and native form controls. */
.identity-manager{width:min(980px,94vw);max-height:90dvh;border:1px solid var(--border);border-radius:12px;padding:0;color:var(--ink)}
.identity-manager::backdrop,.workspace-wizard::backdrop{background:#14223866}
.identity-manager details{margin:24px 0;padding:16px 0;border-top:1px solid var(--border)}
.identity-manager summary{cursor:pointer;font-weight:600;margin-bottom:12px}.identity-manager .account-history-item{padding:20px 0}.identity-manager .account-history-item button{margin:8px 8px 0 0}.workspace-plan-state{color:var(--muted);margin:8px 0}
.workspace-wizard{width:min(1100px,96vw);max-height:94dvh;padding:0;border:0;border-radius:12px;color:var(--ink);background:var(--surface);overflow:auto}
.workspace-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:28px 36px 16px;border-bottom:1px solid var(--border)}
.workspace-heading h2{font-size:24px;margin:6px 0}.workspace-heading p{margin:0}.workspace-steps{display:flex;list-style:none;margin:0;padding:24px 36px;gap:32px;border-bottom:1px solid var(--border)}
.workspace-steps li{display:flex;gap:10px;align-items:center;color:var(--muted)}.workspace-steps li>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--background)}.workspace-steps .current{color:var(--accent)}.workspace-steps .current>span{background:var(--accent);color:white}.workspace-steps .complete>span{color:var(--success);background:#e9f7f0}
.workspace-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:40px;padding:32px 36px;min-height:340px}.workspace-step h3{font-size:20px;margin-bottom:10px}.workspace-summary{border-left:1px solid var(--border);padding-left:24px;overflow-wrap:anywhere}.workspace-summary h3{font-size:14px;color:var(--muted);font-weight:400}.workspace-summary strong{font-size:18px}.workspace-summary hr{border:0;border-top:1px solid var(--border);margin:24px 0}.workspace-summary p{margin:16px 0}.workspace-footer{display:flex;gap:12px;align-items:center;position:sticky;bottom:0;padding:18px 36px;border-top:1px solid var(--border);background:white;z-index:2}.workspace-footer>span{margin-right:auto}.workspace-error{color:var(--danger);padding:12px 36px;margin:0}.workspace-step .workspace-error{padding:12px 0}.workspace-consent{padding:12px 0;font-size:12px;color:var(--muted);line-height:1.8}.workspace-agent{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--border);margin:0!important}.workspace-agent small{margin-left:auto}.workspace-tool-list{padding:8px 0;color:var(--muted);font-size:12px}.workspace-tool-list summary{cursor:pointer}.workspace-tool-list p{margin:4px 0}.workspace-services .provisioning-scope{padding:16px 0}.workspace-services .provisioning-scope>label{font-size:15px;font-weight:600;margin-top:0}.workspace-services .provisioning-scope select{margin:8px 0}.workspace-services .provisioning-scope .main-account-results{max-height:220px;overflow:auto}
@media(max-width:700px){.workspace-wizard{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0}.workspace-heading{padding:20px}.workspace-steps{padding:16px 20px;gap:12px}.workspace-steps li{gap:5px;font-size:12px}.workspace-layout{grid-template-columns:1fr;padding:24px 20px;gap:20px}.workspace-summary{border-left:0;border-top:1px solid var(--border);padding:16px 0 0}.workspace-footer{padding:16px 20px}.workspace-agent{flex-wrap:wrap}.workspace-agent small{margin-left:28px}.workspace-error{padding:12px 20px}}

/* Account onboarding: concise primary flow with secondary details folded. */
.workspace-summary{align-self:start;position:sticky;top:24px}.workspace-step>label{display:block;margin-top:20px}.workspace-step input:not([type=checkbox]),.workspace-step textarea{width:100%;box-sizing:border-box}.workspace-step .form-section{margin:20px 0;padding:0;border:0}.phone-company-help{margin:16px 0;padding:12px 16px;border:1px solid var(--border);border-radius:8px}.phone-company-help summary{cursor:pointer;color:var(--muted);font-size:13px}.workspace-agents{margin-bottom:28px}.workspace-review{line-height:1.8}.workspace-review strong{display:block;margin-top:18px}.workspace-tool-list{margin-left:28px}.login-state{font-size:15px;font-weight:600}.account-more{width:min(420px,90vw);padding:24px;border:1px solid var(--border);border-radius:12px}.account-more::backdrop{background:#14223866}.account-more button{display:block;width:100%;margin-top:12px}.identity-manager .panel-head{position:sticky;top:0;background:var(--surface);z-index:2}.identity-manager .panel-body{padding:24px}.identity-manager .account-history-item{border-bottom:1px solid var(--border)}
@media(max-width:700px){.workspace-summary{position:static}.workspace-step input:not([type=checkbox]),.workspace-step textarea{font-size:16px}.workspace-steps{justify-content:space-between}.workspace-layout{min-height:0}.workspace-footer button{min-height:44px}.identity-manager{max-height:95dvh}}

.workspace-heading{padding:24px 32px}.workspace-steps{padding:16px 32px}.workspace-layout{padding:24px 32px;min-height:0}.workspace-step .form-section{display:block}.workspace-step .form-section>label{display:block;margin:0 0 8px}.workspace-step .form-section>.muted{margin:8px 0;font-size:12px}.workspace-step .phone-company-help{margin:12px 0}.workspace-step .phone-company-help p{font-size:12px}.workspace-step input[type=tel]{display:block}.workspace-step textarea{min-height:58px}.workspace-heading h2{font-size:22px}.workspace-step h3{font-size:18px}
@media(max-width:700px){.workspace-heading,.workspace-layout{padding:20px}.workspace-steps{padding:14px 20px}}

#tab-commerce .panel {padding:24px;margin-bottom:20px;background:#fff;border:1px solid #e5e7eb;border-radius:12px}#tab-commerce form {display:grid;gap:16px;max-width:900px}#tab-commerce label {display:flex;gap:12px;align-items:center;flex-wrap:wrap}#tab-commerce input:not([type=checkbox]),#tab-commerce select,#tab-commerce textarea {padding:9px;border:1px solid #cbd5e1;border-radius:6px;max-width:100%;min-width:240px}#tab-commerce pre {white-space:pre-wrap;overflow-wrap:anywhere}#tab-commerce .toolbar {display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}#commerce-list {overflow-x:auto}#commerce-service-options {display:grid;gap:8px}

.dictionary-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;max-width:1000px}.dictionary-card h2{margin-bottom:12px}.dictionary-card label small{display:block;color:var(--muted);font-size:12px;margin-top:6px}.dictionary-card form{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.dictionary-card form>p,.dictionary-actions{grid-column:1/-1}.dictionary-actions{display:flex;gap:12px;margin-top:20px}.dictionary-card>p{margin:12px 0;color:var(--muted)}@media(max-width:720px){.dictionary-card form{grid-template-columns:1fr}.dictionary-actions{flex-wrap:wrap}}

/* Procurement operator console: native form controls and scoped scroll tables. */
.procurement-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.procurement-feature-grid fieldset { border:1px solid #dce3ed; border-radius:8px; padding:16px; min-width:0; }
.procurement-feature-grid legend { font-weight:600; padding:0 6px; }
.procurement-table-scroll { max-width:100%; overflow-x:auto; margin:12px 0; }
.procurement-table { width:100%; border-collapse:collapse; font-size:14px; }
.procurement-table th,.procurement-table td { text-align:left; border-bottom:1px solid #e6ebf2; padding:12px; vertical-align:top; }
.procurement-table th { background:#f5f7fb; color:#48566a; white-space:nowrap; }
.procurement-table td small { display:block; color:#68778b; margin-top:5px; }
.procurement-table .check { white-space:normal; }
.procurement-detail:not(:empty) { border:1px solid #dce3ed; border-radius:8px; padding:18px; margin:16px 0; background:#fbfcff; }
.procurement-detail label { display:block; margin:12px 0; }
.procurement-detail label input:not([type=checkbox]),.procurement-detail select { width:100%; max-width:640px; }
.procurement-detail details { margin:16px 0; }
.procurement-console .scope-preview:empty { display:none; }
@media(max-width:760px) { .procurement-feature-grid { grid-template-columns:1fr; } .procurement-table { min-width:620px; } }

.procurement-table .check > span { display:none; }
.procurement-table-scroll { max-height:520px; }
.procurement-table thead th { position:sticky; top:0; z-index:1; }

/* Approved operations-console visual system. Business controls retain their behavior. */
:root {
  --control-border: #cdd6e2;
  --table-heading: #f7f9fc;
  --selection-border: #9eb7da;
  --text: var(--ink);
}
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
::selection { background: #dce8f8; color: #203d67; }
input, textarea { caret-color: var(--accent); }
input::placeholder, textarea::placeholder { color: #69788c; }
input:not([type=checkbox]), select, textarea { border-color: var(--control-border); }
input:focus, select:focus, textarea:focus { box-shadow: none; outline: 2px solid var(--accent); outline-offset: 1px; }
input:hover, select:hover, textarea:hover { border-color: var(--selection-border); }
input[type=checkbox], input[type=radio] { accent-color: var(--accent); }
.layui-btn-primary { border-color: var(--control-border); color: #435772; }
.layui-btn-primary:hover { background: var(--accent-soft); border-color: var(--selection-border); color: var(--accent); }
.layui-btn:active:not(:disabled) { filter: brightness(.96); }
.layui-btn.quiet { border-color: transparent; }
.layui-btn.primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.layui-btn.danger:hover { color: #9c2c28; background: #fff3f1; border-color: #dca9a4; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline-offset: 3px; }
small, .field-help { line-height: 1.75; }
.layui-table-cell small, .brand small, footer { color: var(--muted); }
.layui-table-cell, .home-log-table, .procurement-table { font-variant-numeric: tabular-nums; }
.layui-table-view .layui-table th { background: var(--table-heading); color: #516078; }
.layui-table-cell { padding: 13px 18px; }
.layui-table-cell small { font-size: 12px; }
.layui-table-none { color: var(--muted); }
.layui-form-select dl { box-shadow: 0 8px 24px #25344a12; }
.layui-form-select .layui-input { border-color: var(--control-border); }

#console-sidebar { padding: 0 12px 16px; }
.brand { height: 86px; padding: 0 8px; gap: 11px; font-size: 18px; color: #203551; }
.brand small { font-size: 12px; letter-spacing: 0; margin-top: 2px; }
.brand-mark, .brand-mark.small { background: #24497f; box-shadow: none; border-radius: 7px; }
#console-sidebar nav { gap: 7px; padding: 8px 0 18px; flex: 1; }
.nav-section-label { font-size: 12px; color: var(--muted); padding: 0 14px 7px; }
.nav, .nav-group-heading { gap: 11px; color: #34465f; height: 42px; }
.nav i, .nav-group-heading i { color: #556882; }
.nav.active i { color: var(--accent); }
.nav-submenu { gap: 2px; margin-top: 3px; }
.nav-submenu .nav { height: 36px; padding-left: 43px; font-size: 13px; }
#platform-submenu .nav { padding-left: 22px; gap: 12px; }
#platform-submenu .nav > i { font-size: 17px; }
.nav-review { font-size: 13px; }


.topbar { background: var(--surface); }
.breadcrumb { font-size: 13px; }
.breadcrumb > span:last-child { color: var(--ink); font-weight: 500; }
.user-avatar { background: var(--accent-soft); color: var(--accent); }
.page-content { padding-top: 28px; max-width: 1760px; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-heading > div { min-width: 0; }
.page-heading h1 { letter-spacing: 0; color: #203551; }
.page-heading p { font-size: 14px; }
#home-refresh { flex: none; }
.panel { margin-bottom: 20px; }
.panel-head { padding: 20px 24px; }
.panel-head h2 { font-size: 16px; }
.panel-head p { font-size: 13px; }
.notice { background: #f0f5fc; border-color: #dbe5f2; color: #4d6484; }
.notice strong { color: #355883; }
.message { box-shadow: none; background: #edf3fb; border-color: #d6e2f1; color: #355883; }
.message > .quiet { color: var(--accent); }
.badge-success { background: #eaf5ee; color: #226542; }
.badge-failed { background: #fff0ee; color: #a13530; }
.badge-neutral, .badge-muted { background: #f0f3f7; color: #58677b; }
.service-tag { background: #f3f6fa; color: #4a607e; border-color: #e5ebf3; font-size: 12px; }
.count-tag { color: #58677b; }
.form-section-title p { color: var(--muted); }
.step-number { background: var(--accent-soft); color: var(--accent); }
.form-footer { box-shadow: none; }
.service-icon, .service-icon.purple, .service-icon.teal, .service-icon.orange { background: var(--accent-soft); color: var(--accent); }
.account-service:has(.service-check input:checked) { border-color: var(--selection-border); background: #fafcff; }
.account-detail-tabs .selected { color: var(--accent); background: var(--accent-soft); border-color: var(--selection-border); }
.scope-preview { background: #f3f6fb; color: #4e6481; }
.chip.layui-btn { color: #3b5f8b; border-color: #d6e2f1; }
.capability-hero { background: var(--surface); }
.capability-hero h2 { font-size: 18px; }
.capability-hero .panel-head p { margin-top: 6px; }
.capability-card { background: #fcfdff; }
.capability-name { color: #45638c; background: #eef3fa; }
.capability-io dt { color: var(--muted); }
.service-view-tabs { gap: 26px; }
.assembly-progress { background: #f8fafd; }
.assembly-progress li.current, .trend-steps .current { background: var(--accent-soft); color: var(--accent); border-color: #d6e2f1; }
.assembly-service:has(input:checked), .assembly-policy-choices .check:has(input:checked) { background: #f6f9fe; border-color: var(--selection-border); }
.workspace-steps li.current, .workspace-steps li.active { color: var(--accent); }
.procurement-table th { background: var(--table-heading); color: #516078; }
.procurement-table th, .procurement-table td { border-color: var(--border); padding: 14px 16px; }
.procurement-detail:not(:empty) { border-color: var(--border); background: #f8fafd; }
.trend-dialog, .trend-confirm, .identity-manager, .workspace-wizard { border-radius: 8px; }
dialog { font-family: inherit; color: var(--ink); }
#rs-detail, #rs-upload-dialog { border: 1px solid var(--border); border-radius: 8px; }
#rs-detail::backdrop, #rs-upload-dialog::backdrop { background: #25344a55; }
.login-intro { background: #edf3fb; color: #344e73; }
.login-story h1 { font-size: 36px; line-height: 1.5; color: #203d67; }
.login-brand { color: #203d67; }
.login-card h2 { font-size: 28px; color: #203551; }
.login-hint { color: var(--muted); }

/* Workbench: three actions, nine existing services, and real audit records. */
.home-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0 24px 24px; }
.home-action { display: flex; gap: 16px; padding: 8px 24px 0; min-width: 0; border-left: 1px solid var(--border); }
.home-action:first-child { padding-left: 0; border-left: 0; }
.home-action:last-child { padding-right: 0; }
.home-action > .layui-icon { font-size: 30px; color: var(--accent); line-height: 1.3; flex: none; }
.home-action > div { display: flex; align-items: flex-start; flex-direction: column; min-width: 0; }
.home-action h3 { font-size: 16px; margin: 0 0 6px; font-weight: 600; }
.home-action p { color: var(--muted); font-size: 13px; line-height: 1.8; margin: 0 0 16px; }
.home-action .layui-btn { margin-top: auto; gap: 10px; }
.home-action .layui-btn-primary { color: var(--accent); }
.home-services-panel .panel-head { padding-bottom: 16px; }
.home-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0 20px 12px; }
.home-service { display: flex; align-items: center; gap: 16px; min-width: 0; padding: 14px 16px; background: transparent; text-align: left; color: var(--ink); border: 0; border-top: 1px solid var(--border); border-radius: 0; }
.home-service:hover { background: #f7faff; }
.home-service:active { background: var(--accent-soft); }
.home-service:focus-visible { outline-offset: -3px; }
.home-service > .layui-icon { font-size: 27px; color: var(--accent); flex: none; }
.home-service > span { min-width: 0; flex: 1; }
.home-service strong { display: block; font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.home-service small { display: block; font-size: 12px; color: var(--muted); }
.home-service > .layui-icon:last-child { font-size: 13px; color: var(--muted); }
.home-log-state { padding: 12px 24px 32px; margin: 0; color: var(--muted); font-size: 13px; }
.home-log-table-wrap { margin: 0 24px 24px; overflow-x: auto; border: 1px solid var(--border); border-radius: 6px; }
.home-log-table { width: 100%; border-collapse: collapse; text-align: left; table-layout: fixed; font-size: 13px; }
.home-log-table th { background: var(--table-heading); color: #516078; font-weight: 500; }
.home-log-table th, .home-log-table td { padding: 12px 16px; border-bottom: 1px solid var(--border); vertical-align: middle; overflow-wrap: anywhere; }
.home-log-table th:first-child { width: 40%; }
.home-log-table th:nth-child(2) { width: 13%; }
.home-log-table th:nth-child(3) { width: 9%; }
.home-log-table th:nth-child(4) { width: 17%; }
.home-log-table th:last-child { width: 21%; }
.home-log-table tr:last-child td { border-bottom: 0; }
.home-log-table tbody tr:hover { background: #fafcff; }
.home-log-table td small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 3px; }
.home-log-link { font: inherit; font-weight: 500; padding: 0; color: var(--accent); background: transparent; border: 0; text-align: left; }
.home-log-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.home-recent-panel .title-line { flex-wrap: wrap; }
.home-recent-panel .panel-head { gap: 8px; }

@media (max-width: 1200px) {
  .home-action { padding-inline: 16px; gap: 12px; }
  .home-action > .layui-icon { font-size: 24px; }
  .home-service { padding: 18px 10px; gap: 12px; }
}
@media (max-width: 1000px) {
  .home-actions { grid-template-columns: 1fr; }
  .home-action, .home-action:first-child, .home-action:last-child { border-left: 0; padding: 18px 0; }
  .home-action + .home-action { border-top: 1px solid var(--border); }
  .home-action:last-child { padding-bottom: 0; }
  .home-action > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 16px; width: 100%; }
  .home-action p { margin: 0; }
  .home-action .layui-btn { grid-column: 2; grid-row: 1 / 3; align-self: center; margin: 0; }
  .home-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-log-table { min-width: 720px; }
}
@media (max-width: 760px) {
  .page-content { padding: 22px 16px 16px; }
  .page-heading { gap: 12px; align-items: flex-start; }
  .page-heading h1 { font-size: 22px; }
  .page-heading p { font-size: 13px; }
  #home-refresh { padding: 0 10px; height: 32px; font-size: 12px; }
  .panel-head { padding: 18px 16px; }
  .home-actions { padding: 0 16px 20px; }
  .home-action > div { display: flex; }
  .home-action h3 { font-size: 15px; }
  .home-action p { margin: 0 0 12px; }
  .home-action .layui-btn { align-self: flex-start; }
  .home-service-grid { padding: 0 16px 10px; grid-template-columns: 1fr; }
  .home-service { padding: 17px 0; }
  .home-service strong { font-size: 14px; }
  .home-service small { font-size: 12px; }
  .home-log-table-wrap { margin: 0 16px 18px; }
  .home-log-state { padding: 4px 16px 24px; }
  .home-recent-panel .title-line > .muted { display: none; }
  .home-recent-panel .panel-head .quiet { padding: 0; font-size: 12px; }
  .login-story h1 { font-size: 26px; margin-top: 0; }
  .login-card h2 { font-size: 24px; }
  .login-intro { padding: 24px 8%; }
}

.dictionary-card, #tab-commerce .panel { border-radius: var(--radius); }
.home-log-link { height: auto; line-height: 1.6; }

/* Application shell: navigation stays in place; only the working area scrolls. */
body:has(#workspace:not([hidden])) { height: 100dvh; overflow: hidden; }
.workspace { height: 100dvh; min-height: 0; overflow: hidden; }
#console-sidebar { position: relative; height: 100%; min-height: 0; overflow: hidden; }
#console-sidebar nav { min-height: 0; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; }
.main { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.topbar { flex: none; position: relative; z-index: 30; }
.shell-heading { flex: none; min-width: 0; background: var(--surface); border-bottom: 1px solid var(--border); }
.shell-heading .page-heading { padding: 18px 32px 16px; margin: 0 auto; max-width: 1760px; }
.shell-heading .page-heading h1 { font-size: 22px; margin: 0 0 4px; }
.shell-heading .page-heading p { font-size: 13px; margin: 0; }
#service-navigation { padding: 0 32px; max-width: 1760px; margin: 0 auto; }
#service-navigation .service-view-tabs { margin: 0; border: 0; gap: 26px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; }
#service-navigation .service-view-tabs button { flex: none; white-space: nowrap; margin-bottom: 0; }
#service-navigation .service-view-tabs button:focus-visible { outline-offset: -3px; }
.page-content { flex: 1; min-height: 0; width: 100%; max-width: none; margin: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scroll-padding-block: 20px 32px; padding-top: 24px; }
.page-content > .tab { min-width: 0; }
.page-content :is(input, select, textarea, button, [tabindex]) { scroll-margin-block: 24px; }
.page-content .message { top: 0; z-index: 25; }
.assembly-panel { overflow: clip; }
#navigation-backdrop { position: fixed; inset: 0; z-index: 90; padding: 0; border: 0; border-radius: 0; background: #25344a55; }
@media (max-width: 1200px) {
  .shell-heading .page-heading { padding-inline: 24px; }
  #service-navigation { padding-inline: 24px; }
}
@media (max-width: 760px) {
  #console-sidebar { position: fixed; top: 0; bottom: 0; height: 100dvh; }
  .nav-open .topbar { z-index: auto; }
  .shell-heading .page-heading { padding: 14px 16px; gap: 12px; }
  .shell-heading .page-heading h1 { font-size: 20px; margin: 0; }
  .shell-heading .page-heading p { display: none; }
  #service-navigation { padding-inline: 16px; }
  #service-navigation .service-view-tabs { gap: 24px; }
  .page-content { padding-top: 16px; scroll-padding-block: 16px 24px; }
}
@media (max-height: 500px) and (min-width: 761px) {
  .topbar { height: 48px; }
  .shell-heading .page-heading { padding-block: 10px; }
  .shell-heading .page-heading p { display: none; }

}

/* Functional pages: shared working rhythm, without changing any control or flow. */
.tab:not(#tab-home) .panel-head > :first-child { min-width: 0; }
.tab:not(#tab-home) .panel-head > div:first-child { flex: 1; }
.tab:not(#tab-home) .panel-head > button { flex: none; }
.tab:not(#tab-home) .panel-head h2 { line-height: 1.5; }
.tab:not(#tab-home) .panel-head p { max-width: 78ch; line-height: 1.75; }
.tab:not(#tab-home) .panel-head + .panel-body:not(.filter-bar):not(.log-filters) { padding-top: 20px; border-top: 1px solid var(--border); }
.tab:not(#tab-home) .panel-body > p:last-child { margin-bottom: 0; }
.tab:not(#tab-home) :is(.filter-bar,.log-filters) { background: var(--table-heading); border-top: 1px solid var(--border); padding-block: 18px; }
.filter-toolbar { padding: 14px 16px; background: var(--table-heading); border: 1px solid var(--border); border-radius: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.filter-toolbar > input { flex: 1 1 260px; max-width: 560px; }
.filter-toolbar > label { margin: 0; }
.filter-toolbar > .check { flex: none; }
#tab-resources .filter-bar { flex-wrap: wrap; }
#tab-resources .filter-bar label { flex: 1 1 150px; width: auto; min-width: 0; }
#tab-resources .filter-bar .filter-keyword { flex: 2 1 260px; max-width: none; }
.tab:not(#tab-home) .pagination { font-variant-numeric: tabular-nums; }
#pf-authorizations .pagination { padding: 16px 0 0; min-height: 48px; }
.tab:not(#tab-home) .table-wrap { overscroll-behavior-x: contain; }
.tab:not(#tab-home) .layui-table-cell { vertical-align: middle; }
.tab:not(#tab-home) .layui-table-cell .layui-btn { min-height: 32px; }
.tab:not(#tab-home) .layui-table-cell .layui-btn:focus-visible { outline-offset: -2px; }

/* A compact service overview and scannable capability rows. */
.capability-hero .panel-head { align-items: center; padding-block: 22px; }
.capability-hero .panel-head > div:first-child { flex: 1; }
.capability-hero .panel-head p { margin-top: 6px; }
.service-overview-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; flex: none; }
.service-overview-actions .actions { gap: 8px; }
#tab-platform-service .capability-hero .panel-body:empty { display: none; }
.capability-hero .panel-body > p { max-width: 80ch; overflow-wrap: anywhere; }
#pf-tools-panel .panel-head > input { flex: none; }
#pf-tools-panel .capability-grid { display: block; padding-top: 0; }
.capability-card { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(160px,.75fr) minmax(0,1fr); grid-template-rows: auto 1fr; column-gap: 28px; padding: 22px 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; }
.capability-card:last-child { border-bottom: 0; padding-bottom: 0; }
.capability-card h3 { grid-column: 1; grid-row: 1; font-size: 14px; margin-bottom: 6px; }
.capability-card p { grid-column: 1; grid-row: 2; margin: 0; font-size: 13px; }
.capability-card .capability-name { grid-column: 2; grid-row: 1 / 3; align-self: start; justify-self: start; font-size: 12px; padding: 4px 8px; }
.capability-card .capability-io { grid-column: 3; grid-row: 1 / 3; margin: 0; padding: 0; border: 0; gap: 6px 12px; align-content: start; }

/* Permission choices stay visible, with the existing final actions kept together. */
.service-auth-editor { max-width: none; }
.service-auth-editor > .muted, #sa-form { max-width: 960px; }
#sa-form { gap: 16px; }
#sa-form > label { margin: 0; }
#sa-form > .check { padding: 14px 16px; border: 1px solid var(--border); border-radius: 6px; }
#sa-form > .check:has(input:checked) { border-color: var(--selection-border); background: #f6f9fe; }
#sa-form > .check + .muted { padding-left: 16px; margin: -8px 0 4px; }
#sa-form > .grant-summary { margin: -6px 0 0; color: var(--muted); font-size: 13px; }
#sa-range { border: 0; padding: 0; margin: 8px 0 0; min-width: 0; display: flex; flex-wrap: wrap; gap: 10px; }
#sa-range legend { font-size: 14px; font-weight: 600; padding: 0 0 10px; }
#sa-range .check { margin: 0; padding: 12px 16px; border: 1px solid var(--control-border); border-radius: 6px; cursor: pointer; }
#sa-range .check:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
#sa-range input[type=radio] { width: 16px; height: 16px; margin: 0; padding: 0; flex: none; }
#sa-scope .search-row { align-items: flex-end; }
#sa-scope .search-row label { margin: 0; }
#sa-scope .main-account-results:not(:empty) { border: 1px solid var(--border); border-radius: 6px; }
#sa-scope > .muted { margin-top: 12px; }
#sa-form > .notice, #sa-form > .chips { margin: 0; }
#sa-form > button { justify-self: start; }
#sa-form .scope-preview { margin: 0; }
.editor-actions { position: sticky; bottom: 0; z-index: 10; background: var(--surface); border-top: 1px solid var(--border); padding: 16px 0; margin-top: 16px; gap: 10px; }
#sa-form > .editor-actions { margin: 8px 0 0; }
#sa-form > .editor-actions + .muted { margin-top: 0; }
.main-account-option:hover, .main-account-option:has(input:focus-visible) { background: var(--accent-soft); }
.main-account-option:has(input:checked) { background: #f6f9fe; }
.assembly-step { margin-inline: 0; }
.assembly-actions { padding-bottom: 16px; }
.assembly-authorization { border: 0; border-top: 1px solid var(--border); padding: 24px 0; margin: 24px 0 0; border-radius: 0; }
.assembly-authorization:first-child { margin-top: 0; }
.assembly-policy-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.assembly-policy-choices legend { padding-bottom: 8px; }
.assembly-policy-choices .check { margin: 0; min-width: 180px; flex: 1; }
.assembly-services { gap: 14px; }
.assembly-service { padding: 18px; }
.account-detail-tabs { flex-wrap: wrap; }

/* Procurement tables, existing batch controls and settings use the same hierarchy. */
.procurement-feature-grid { align-items: start; gap: 20px; }
.procurement-feature-grid fieldset { margin: 0; padding: 16px; border-color: var(--border); background: #fafcff; }
.procurement-feature-grid legend { font-size: 14px; }
.procurement-feature-grid label { margin: 8px 0; }
.procurement-feature-grid .notice { margin: 12px 0; }
.procurement-batch { gap: 8px; padding: 14px 0; margin-top: 0; border-block: 1px solid var(--border); }
.procurement-batch > span { flex-basis: 100%; color: var(--muted); font-size: 12px; }
.procurement-batch .layui-btn { height: 32px; font-size: 12px; padding-inline: 12px; }
.procurement-console .procurement-batch + .notice { margin-block: 16px; }
.procurement-console > .notice:empty { display: none; }
.procurement-table { font-size: 13px; }
.procurement-table tbody tr:hover { background: #fafcff; }
.procurement-table .check { margin: 0; min-height: 32px; align-items: center; }
.procurement-table td > .layui-btn { font-size: 12px; }
.procurement-pagination { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 12px; padding-top: 10px; }
.procurement-detail h3 { margin-bottom: 12px; }
.procurement-detail h4 { margin: 20px 0 8px; }
.procurement-detail p { font-size: 13px; line-height: 1.8; }

/* Existing long settings form: visual sections, original field and submission order. */
.dictionary-card { max-width: 1120px; padding: 24px; }
.dictionary-card > h2 { margin-bottom: 6px; }
.dictionary-card > p { font-size: 13px; max-width: 80ch; }
.dictionary-card #dictionary-status { max-width: none; padding: 12px 16px; background: var(--accent-soft); border-radius: 6px; color: #355883; margin: 20px 0; }
.dictionary-card > label { padding-bottom: 20px; margin-bottom: 0; }
.dictionary-card form { display: block; }
.dictionary-section { border: 0; border-top: 1px solid var(--border); min-width: 0; margin: 0; padding: 24px 0; }
.dictionary-section legend { float: left; width: 196px; font-size: 14px; font-weight: 600; padding: 0 24px 0 0; color: var(--ink); }
.dictionary-fields { margin-left: 196px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 24px; }
.dictionary-fields label { margin: 0; min-width: 0; }
.dictionary-section::after { content: ''; display: table; clear: both; }
.dictionary-card form > p { padding: 14px 16px; background: var(--table-heading); color: var(--muted); font-size: 12px; line-height: 1.8; margin-bottom: 0; }
.dictionary-actions { margin: 20px 0 0; padding-bottom: 0; }
.configuration-panel .panel-body { max-width: 960px; }
.configuration-panel .panel-body > label { margin-block: 20px; }
#oauth-mcp-url { color: var(--accent); font-weight: 500; }

/* Data management and details: clear table rhythm and usable dialog boundaries. */
.trend-toolbar { background: var(--table-heading); border-block: 1px solid var(--border); padding: 16px 24px; }
.trend-month-table th { background: var(--table-heading); font-weight: 500; color: #516078; }
.trend-month-table tbody tr:hover { background: #fafcff; }
.trend-month-table th, .trend-month-table td { font-variant-numeric: tabular-nums; }
.trend-dialog-body { scroll-padding-block: 20px; }
.trend-dialog-foot, .workspace-footer { gap: 12px; }
#rs-detail, #rs-upload-dialog { padding: 0; width: min(760px,94vw); max-height: 88dvh; }
#rs-detail .panel-head, #rs-upload-dialog .panel-head { position: sticky; top: 0; z-index: 2; background: var(--surface); border-bottom: 1px solid var(--border); }
#rs-detail .panel-body, #rs-upload-dialog .panel-body { padding-top: 24px; }
.rs-detail-row { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.rs-detail-row strong { color: var(--muted); font-weight: 400; }
.rs-detail-row span { overflow-wrap: anywhere; }
.rs-file-drop { padding: 16px; border: 1px dashed var(--selection-border); border-radius: 6px; background: #fafcff; }
.rs-file-drop input { background: var(--surface); }
#rs-upload-status:not(:empty) { padding: 12px 16px; border-radius: 6px; background: var(--accent-soft); color: var(--accent); }
#tab-commerce .panel { padding: 24px; }
#tab-commerce label { display: block; margin: 0; }
#tab-commerce label:has(input[type=checkbox]) { display: flex; }
#tab-commerce :is(input:not([type=checkbox]),select,textarea) { min-width: 0; border-color: var(--control-border); }
#tab-commerce h2 { padding-bottom: 16px; border-bottom: 1px solid var(--border); }

@media (max-width: 1200px) {
  .capability-card { grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 24px; }
  .capability-card .capability-name { grid-column: 1; grid-row: 3; margin-top: 10px; }
  .capability-card .capability-io { grid-column: 2; grid-row: 1 / 4; }
  .dictionary-section legend { float: none; width: auto; padding: 0 0 16px; }
  .dictionary-fields { margin-left: 0; }
  .procurement-feature-grid { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 760px) {
  .tab:not(#tab-home) .panel-head > div:first-child { flex-basis: 100%; }
  .tab:not(#tab-home) .panel-head + .panel-body:not(.filter-bar):not(.log-filters) { padding-top: 16px; }
  .tab:not(#tab-home) .panel-head .actions { flex-wrap: wrap; }
  .tab:not(#tab-home) :is(.filter-bar,.log-filters) { padding-block: 16px; }
  .filter-toolbar { padding: 12px; gap: 10px; }
  .filter-toolbar > input { flex-basis: 180px; }
  #tab-resources .filter-bar label { flex-basis: 120px; }
  #tab-resources .filter-bar .filter-keyword { flex-basis: 100%; }
  .service-overview-actions { flex-direction: row; justify-content: space-between; width: 100%; align-items: center; }
  .service-overview-actions .layui-btn { min-height: 36px; }
  .capability-card { display: block; padding-block: 18px; }
  .capability-card .capability-name { margin-top: 10px; }
  .capability-card .capability-io { margin-top: 14px; }
  .editor-actions { flex-wrap: wrap; padding-block: 12px; }
  .editor-actions .layui-btn, .assembly-actions .layui-btn { min-height: 40px; }
  .assembly-policy-choices { display: block; }
  .assembly-policy-choices .check { margin-bottom: 10px; }
  #sa-range .check { flex: 1 1 100%; }
  .dictionary-card { padding: 20px 16px; }
  .dictionary-fields { grid-template-columns: 1fr; gap: 18px; }
  .dictionary-section { padding-block: 20px; }
  .dictionary-actions { padding-bottom: 4px; }
  .trend-toolbar { padding-inline: 16px; }
  .rs-detail-row { grid-template-columns: 90px minmax(0,1fr); gap: 12px; }
  #rs-detail .panel-head, #rs-upload-dialog .panel-head { flex-wrap: nowrap; }
  #tab-commerce .panel { padding: 18px 16px; }
}

/* Keep the bottom action surface flush with the scrolling viewport. */
.page-content { --content-bottom-gap: 18px; }
#tab-platform-service #pf-tools-panel .capability-grid { padding-top: 0; }
.page-content :is(.editor-actions,.assembly-actions,.form-footer) { bottom: calc(-1 * var(--content-bottom-gap)); padding-bottom: calc(16px + var(--content-bottom-gap)); }
@media (max-width: 1200px) { .page-content { --content-bottom-gap: 24px; } }
@media (max-width: 760px) { .page-content { --content-bottom-gap: 16px; } }

/* The shared phone lookup is a field group inside the existing account step. */
#assembly-lighthouse { display: block; margin: 18px 0; padding: 0; border: 0; }
#assembly-lighthouse > label { margin: 0 0 7px; }
#assembly-lighthouse > .muted { margin: 8px 0; }
#assembly-lighthouse .phone-company-help { margin: 12px 0; }
