:root{--canvas:#ecebe6;--paper:#f7f6f1;--ink:#101113;--ink-soft:#1a1b1e;--muted:#696a65;--muted-light:#92938d;--line:#d7d6cf;--line-dark:#303136;--signal:#ff5a36;--signal-dark:#de4324;--signal-soft:#fff0eb;--success:#087f67;--danger:#c83d28;--shadow:0 14px 40px rgba(16,17,19,0.07);--shadow-strong:0 24px 70px rgba(16,17,19,0.13);--z-base:0;--z-sticky:20;--z-overlay:40;--z-toast:60}*{box-sizing:border-box}html{background:var(--canvas);scroll-behavior:smooth}body{min-width:320px;margin:0;-webkit-font-smoothing:antialiased}body:before{position:fixed;z-index:var(--z-toast);top:0;right:0;left:0;height:3px;background:var(--signal);content:""}button,input,select{font:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed}[role=button],a,button,input,select{transition:transform .16s ease,opacity .16s ease,color .16s ease,background-color .16s ease,border-color .16s ease}[role=button]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(255,90,54,.38);outline-offset:2px}::selection{color:#fff;background:var(--signal)}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.dashboard-shell{width:min(1540px,calc(100% - 40px));margin:0 auto;padding:16px 0 44px}.topbar{position:sticky;z-index:var(--z-sticky);top:14px;min-height:70px;justify-content:space-between;gap:24px;padding:10px 12px 10px 18px;border:1px solid var(--line-dark);border-radius:16px;color:#fff;background:var(--ink);box-shadow:0 16px 44px rgba(16,17,19,.19);animation:topbarIn .52s ease-out both}.access-brand,.brand,.topbar{display:flex;align-items:center}.access-brand,.brand{gap:12px}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;color:#fff;font-weight:950;line-height:1}.access-brand>span:last-child,.brand>span:last-child{display:grid;gap:3px}.access-brand strong,.brand strong{font-weight:850}.access-brand small,.brand small{color:#9d9e99}.topbar-actions{gap:16px}.data-status,.topbar-actions{display:flex;align-items:center}.data-status{gap:8px;color:#b8b9b5;font-size:11px}.data-status i,.eyebrow i{display:block;width:7px;height:7px;flex:0 0 auto;border-radius:50%;animation:signalPulse .9s ease-out 3 both}.data-status strong{color:#fff}.button{min-height:46px;border:0;border-radius:10px;padding:0 18px;font-size:12px;font-weight:850}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button-plus{display:inline-block;margin-right:5px;font-size:17px;font-weight:500}.hero{position:relative;display:grid;min-height:382px;grid-template-columns:minmax(0,1.45fr) minmax(340px,.72fr);overflow:hidden;margin-top:22px;border-radius:24px;color:#fff;background:var(--ink);isolation:isolate;animation:heroIn .7s ease-out 70ms both}.hero:before{bottom:0;left:52%;width:1px;background:rgba(255,255,255,.12);content:""}.hero:after,.hero:before{position:absolute;z-index:-1}.hero:after{right:27%;bottom:-22px;content:"07D";font-family:Arial Black,PingFang SC,sans-serif;font-size:clamp(150px,20vw,330px);font-weight:950;line-height:.8}.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:54px clamp(32px,5vw,78px)}.eyebrow,.section-kicker{font-weight:900}.eyebrow{display:flex;align-items:center;gap:9px;animation:revealUp .52s ease-out .3s both}.eyebrow,.hero h1{margin-bottom:24px}.hero h1{max-width:760px;font-family:Arial Black,PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(52px,6vw,94px);font-weight:950;line-height:.96;animation:revealUp .62s ease-out .36s both}.hero-copy p{max-width:640px;margin-bottom:0;color:#bcbdb8;line-height:1.85;animation:revealUp .62s ease-out .43s both}.hero-brief{position:relative;z-index:1;display:grid;gap:0;margin:18px;padding:30px;border:1px solid var(--line-dark);border-radius:18px;background:var(--ink-soft);animation:briefIn .62s ease-out .42s both}.brief-label{display:grid;gap:6px;padding-bottom:22px;border-bottom:1px solid var(--line-dark)}.brief-label span{color:var(--signal);font-weight:900}.brief-label small{overflow:hidden;color:#8f908b;text-overflow:ellipsis;white-space:nowrap}.brief-item{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:16px;padding:21px 0;border-bottom:1px solid var(--line-dark)}.brief-item>strong{color:#fff;font-variant-numeric:tabular-nums;line-height:1}.brief-item>span{display:grid;gap:4px;color:#e8e8e4;font-weight:750}.brief-item small{color:#777873;font-weight:500}.brief-foot{padding-top:20px;color:#a9aaa5}.brief-foot strong{font-variant-numeric:tabular-nums}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{position:relative;min-height:152px;overflow:hidden;padding:22px 24px 20px 28px;border-radius:16px;box-shadow:0 8px 24px rgba(16,17,19,.035);animation:cardIn .52s ease-out both}.metric-card:first-child{animation-delay:.16s}.metric-card:nth-child(2){animation-delay:.22s}.metric-card:nth-child(3){animation-delay:.28s}.metric-card:nth-child(4){animation-delay:.34s}.metric-card:before{position:absolute;top:22px;bottom:22px;left:0;width:4px;background:var(--signal);content:""}.metric-card:after{position:absolute;top:18px;right:18px;width:10px;height:10px;border:2px solid var(--line);border-radius:50%;content:""}.metric-card:hover{transform:translateY(-4px)}.metric-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800}.metric-top i{display:none}.metric-card>strong{display:block;margin-top:14px;font-family:Arial Black,PingFang SC,sans-serif;font-size:clamp(32px,3vw,46px);font-weight:950;font-variant-numeric:tabular-nums;line-height:1}.metric-card p{margin:13px 0 0;font-size:9px}.category-section,.rules-section,.workspace-section{margin-top:76px}.category-section{animation:revealUp .6s ease-out .26s both}.workspace-section{animation:revealUp .6s ease-out .32s both}.rules-section{animation:revealUp .6s ease-out .38s both}.section-heading{display:flex;justify-content:space-between;gap:36px}.section-heading h2{margin:7px 0 0;font-family:Arial Black,PingFang SC,sans-serif;font-size:clamp(32px,4vw,54px);font-weight:950;line-height:1.04}.section-heading>p{max-width:500px;margin-bottom:4px;font-size:10px;line-height:1.7;text-align:right}.section-heading-with-filter{align-items:center}.section-time-filter{display:grid;justify-items:end;gap:8px;padding:12px 14px;background:var(--panel)}.section-time-filter-top{display:flex;align-items:center}.section-time-filter-top>span,.toolbar-time-range>span{font-weight:800}.time-preset-group{display:flex;gap:3px;background:var(--paper)}.time-preset-group button{min-height:29px;border:0;border-radius:7px;background:transparent;font-size:9px;font-weight:750}.time-preset-group button:hover{background:#fff}.time-custom-range,.time-custom-range label{display:flex;align-items:center}.time-custom-range label{min-height:34px;gap:7px;padding:0 8px;border:1px solid var(--line)}.time-custom-range label:focus-within{border-color:var(--signal)}.time-custom-range i,.time-custom-range span{color:var(--muted-light);font-style:normal}.time-custom-range input{width:112px;border:0;outline:0;color:var(--ink);background:transparent}.category-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;counter-reset:category}.category-card{position:relative;display:flex;min-height:174px;flex-direction:column;align-items:flex-start;overflow:hidden;border-radius:14px;background:var(--panel);text-align:left;counter-increment:category;animation:categoryIn .5s ease-out both}.category-card:first-child{animation-delay:80ms}.category-card:nth-child(2){animation-delay:.12s}.category-card:nth-child(3){animation-delay:.16s}.category-card:nth-child(4){animation-delay:.2s}.category-card:nth-child(5){animation-delay:.24s}.category-card:nth-child(6){animation-delay:.28s}.category-card:nth-child(7){animation-delay:.32s}.category-card:before{position:absolute;top:16px;right:16px;color:#b6b6af;content:"0" counter(category);font-size:8px;font-weight:850}.category-card:after{position:absolute;right:0;bottom:0;left:0;height:4px;background:var(--signal);content:"";opacity:0;transform:scaleX(.2);transform-origin:left;transition:transform .16s ease,opacity .16s ease}.category-card:hover{border-color:#aaa9a2;transform:translateY(-5px)}.category-active:after,.category-card:hover:after{opacity:1;transform:scaleX(1)}.category-card:active{transform:translateY(-1px)}.category-short{font-weight:900}.category-card>strong{margin-top:20px;font-family:Arial Black,PingFang SC,sans-serif;font-size:38px;font-weight:950;font-variant-numeric:tabular-nums;line-height:1}.category-name{margin-top:8px;font-weight:850}.category-card small{display:-webkit-box;overflow:hidden;margin-top:auto;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.category-active{box-shadow:0 18px 34px rgba(16,17,19,.16);transform:translateY(-4px)}.category-active small,.category-active:before{color:#858681}.category-active .category-short{color:var(--signal)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(350px,.72fr);align-items:start;gap:12px}.detail-card,.table-card{min-width:0;overflow:hidden;border-radius:18px}.toolbar{display:flex;min-height:76px;align-items:center;gap:8px;background:var(--paper)}.search-box,.select-box{display:flex;min-height:44px;align-items:center}.search-box{min-width:240px;flex:1;gap:9px;padding:0 13px}.search-box>span{color:var(--signal);line-height:1}.search-box input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent;font-size:11px}.search-box input::placeholder{color:#a4a49e}.select-box{gap:7px;padding:0 10px}.select-box>span{color:var(--muted-light)}.select-box select{border:0;outline:0;color:var(--ink);background:transparent;font-weight:800}.time-select-box{border-color:#f1b9aa;background:var(--signal-soft)}.time-select-box>span{color:var(--signal-dark)}.toolbar-time-range{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);background:#fff;animation:revealUp .22s ease-out both}.table-wrap{position:relative;min-height:760px;overflow-x:auto}table{width:100%;min-width:830px;border-collapse:collapse}td,th{padding:13px 12px;border-bottom:1px solid #ecebe6;text-align:left;vertical-align:middle}th{position:sticky;z-index:2;top:0;font-size:8px;font-weight:850}tbody tr,th{background:#fff}tbody tr{position:relative;animation:tableRowIn .36s ease-out both}tbody tr:first-child{animation-delay:20ms}tbody tr:nth-child(2){animation-delay:40ms}tbody tr:nth-child(3){animation-delay:60ms}tbody tr:nth-child(4){animation-delay:80ms}tbody tr:nth-child(5){animation-delay:.1s}tbody tr:nth-child(6){animation-delay:.12s}tbody tr:nth-child(7){animation-delay:.14s}tbody tr:nth-child(8){animation-delay:.16s}tbody tr:nth-child(9){animation-delay:.18s}tbody tr:nth-child(n+10){animation-delay:.2s}tbody tr:hover{background:#faf9f5}tbody tr.row-selected td:first-child{box-shadow:inset 4px 0 0 var(--signal)}.material-name{display:grid;gap:5px;border:0;padding:0;color:var(--ink);background:transparent;text-align:left}.material-name:hover span{color:var(--signal-dark)}.material-name span{font-size:10px;font-weight:850}.material-name small,.material-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-name small{color:var(--muted-light);font-weight:500}.number-cell{font-size:9px;font-weight:780;font-variant-numeric:tabular-nums;white-space:nowrap}.good-value{color:var(--success);font-weight:900}.grade-badge{display:inline-grid;width:30px;height:30px;place-items:center;border:1px solid var(--line);color:var(--ink);background:var(--paper);font-weight:950;font-variant-numeric:tabular-nums}.grade-a,.grade-s{color:#fff}.grade-b{border-color:#e7bd49;background:#f4d675}.grade-c{border-color:#efc6b9;background:#f8ddd5}.grade-d{color:#777873;background:#ecece8}.grade-large{border:0;font-size:23px}.spark-bars{display:inline-flex;width:70px;height:28px;align-items:flex-end;gap:3px}.spark-bars i{min-height:3px;border-radius:2px 2px 0 0;background:#d3d2cc;transform-origin:bottom;animation:barRise .42s ease-out both}.spark-bars i:nth-child(2){animation-delay:35ms}.spark-bars i:nth-child(3){animation-delay:70ms}.spark-bars i:nth-child(4){animation-delay:105ms}.spark-bars i:nth-child(5){animation-delay:.14s}.spark-bars i:nth-child(6){animation-delay:175ms}.spark-bars i:nth-child(7){animation-delay:.21s}.muted{color:var(--muted-light);font-size:8px}.empty-state{display:grid;min-height:260px;place-content:center;gap:8px;padding:32px;text-align:center}.empty-state strong{font-size:14px}.empty-state span{color:var(--muted);font-size:10px}.pagination{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);color:var(--muted);background:var(--paper);font-variant-numeric:tabular-nums}.pagination>div{display:flex;gap:6px}.pagination button{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);background:#fff;font-weight:800}.pagination button:not(:disabled):hover{border-color:var(--ink);transform:translateY(-1px)}.pagination button:disabled{opacity:.42}.detail-card{position:sticky;padding:22px;animation:detailIn .38s ease-out both}.detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid var(--line)}.detail-heading h3{max-width:330px;margin:8px 0 10px;font-size:18px;font-weight:900}.tag-row{display:flex;flex-wrap:wrap;gap:5px}.tag{display:inline-flex;min-height:24px;align-items:center;border:1px solid #f0b7a7;padding:0 8px;font-weight:800}.tag-new{border-color:#b9ddd4;background:#edf8f5}.text-link{flex:0 0 auto;color:var(--ink);font-weight:850;text-decoration:none}.text-link:hover{color:var(--signal-dark);transform:translateX(2px)}.score-panel{display:grid;grid-template-columns:82px 1fr;align-items:center;gap:18px;margin-top:18px;padding:20px;border-radius:14px;color:#fff;background:var(--ink)}.score-ring{display:grid;width:82px;height:82px;place-items:center;border:2px solid var(--signal);border-radius:50%;animation:scoreIn .48s ease-out .12s both}.score-panel>div:last-child{display:grid;gap:4px}.score-panel>div:last-child>span{color:#8d8e89}.score-panel>div:last-child>strong{font-size:17px;font-variant-numeric:tabular-nums}.score-panel p{margin:0;color:#989994;font-size:8px;line-height:1.5}.check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}.check-list>div{display:grid;min-height:64px;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;padding:10px;border-radius:11px;background:var(--paper)}.check-list>div.check-pass{border-color:#add9cf;background:#f0f9f7}.check-icon{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:var(--muted-light);background:#e4e4df;font-size:9px;font-weight:900}.check-pass .check-icon{color:#fff;background:var(--success)}.check-list>div>span:nth-child(2){display:grid;gap:3px}.check-list small{color:var(--muted-light);font-size:7px}.check-list strong{font-variant-numeric:tabular-nums}.check-list em{color:var(--muted-light);font-size:7px;font-style:normal;white-space:nowrap}.trend-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:24px}.trend-heading>div{display:grid;gap:4px}.trend-heading>div>span{color:var(--muted)}.trend-heading>div>strong{font-size:18px;font-variant-numeric:tabular-nums}.change-pill{display:inline-flex;min-height:26px;align-items:center;border-radius:7px;padding:0 9px;color:var(--muted);background:var(--paper);font-weight:850;font-variant-numeric:tabular-nums}.change-up{color:var(--danger);background:#fff0ed}.change-down{color:var(--success);background:#edf8f5}.trend-canvas{width:100%;overflow:hidden;margin-top:8px}.trend-canvas canvas{display:block;max-width:100%}.trend-axis{display:flex;justify-content:space-between;padding:0 12px;color:var(--muted-light);font-size:7px}.chart-empty{display:grid;min-height:160px;place-items:center;margin-top:8px;border:1px dashed var(--line);border-radius:12px;padding:24px;color:var(--muted);background:var(--paper);font-size:9px;text-align:center}.recommendation{display:grid;gap:5px;margin-top:22px;padding:16px 18px;border-radius:0 12px 12px 0}.recommendation>span{color:var(--signal-dark);font-weight:900}.recommendation p{margin:0;color:var(--muted);line-height:1.6}.detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:18px 0 0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.detail-meta>div{display:grid;gap:4px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-meta dt{color:var(--muted-light);font-size:7px}.detail-meta dd{margin:0;font-weight:750;font-variant-numeric:tabular-nums}.rules-section{overflow:hidden;border-radius:22px;color:#fff;background:var(--ink)}.rules-section .section-heading{margin-bottom:26px}.rules-section .section-heading>p{color:#8d8e89}.rules-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.rules-grid article{position:relative;min-height:112px;border:1px solid var(--line-dark);border-radius:12px;background:var(--ink-soft)}.rules-grid article:hover{border-color:#55565a}.rule-dot{width:7px;height:7px;margin-bottom:16px;border-radius:50%}.rule-dot,.rules-grid strong{display:block}.rules-grid p{margin:7px 0 0;color:#858681;line-height:1.5}.grade-rule .rule-dot{background:#fff}.grade-rule p{color:#ffe1d9}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 4px 0;color:var(--muted-light)}.modal-backdrop{position:fixed;z-index:var(--z-overlay);inset:0;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:rgba(16,17,19,.78);animation:fadeIn .18s ease-out both}.upload-modal{position:relative;width:min(620px,100%);max-height:min(760px,calc(100dvh - 40px));overflow-y:auto;border-radius:20px;background:#fff;box-shadow:var(--shadow-strong);animation:modalIn .26s ease-out both}.modal-close{position:absolute;top:18px;right:18px;display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--paper);font-size:18px}.modal-close:hover{border-color:var(--ink);transform:rotate(5deg)}.upload-modal h2{margin:8px 0 10px;font-family:Arial Black,PingFang SC,sans-serif}.modal-intro{color:var(--muted);line-height:1.7}.drop-zone{display:grid;min-height:210px;place-content:center;gap:8px;margin-top:22px;border:1px dashed #aaa9a2;border-radius:14px;text-align:center}.drop-zone:focus-visible,.drop-zone:hover{transform:translateY(-2px)}.drop-loading{opacity:.72}.upload-symbol{display:grid;width:54px;height:54px;place-items:center;margin:0 auto 4px;border-radius:14px;color:#fff;background:var(--signal);font-size:24px;font-weight:900}.drop-zone small{color:var(--muted-light);font-size:9px}.access-error,.import-error{margin-top:12px;padding:10px 12px;border:1px solid #ecc0b7;border-radius:8px;color:var(--danger);background:#fff1ee;font-size:9px}.upload-guide{margin-top:14px;padding:14px;border-left:3px solid var(--ink);background:#f3f2ee}.upload-guide strong{font-size:10px}.upload-guide p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.6}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;color:var(--muted-light);font-size:8px}.text-button{flex:0 0 auto;border:0;padding:0;color:var(--signal-dark);background:transparent;font-size:9px;font-weight:850}.text-button:hover{transform:translateX(2px)}.toast{position:fixed;z-index:var(--z-toast);right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));max-width:min(380px,calc(100% - 40px));padding:14px 18px;border-left:4px solid var(--signal);border-radius:10px;color:#fff;box-shadow:var(--shadow-strong);animation:toastIn .26s ease-out both}.access-shell{position:relative;display:grid;min-height:100dvh;overflow:hidden;place-items:center;padding:max(28px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));background:var(--ink)}.access-shell:before{position:absolute;top:0;bottom:0;left:18%;width:1px;background:var(--line-dark);box-shadow:26vw 0 0 var(--line-dark),52vw 0 0 var(--line-dark);content:""}.access-shell:after{position:absolute;right:5vw;bottom:-40px;color:rgba(255,255,255,.035);content:"MOHA";font-family:Arial Black,sans-serif;font-size:clamp(110px,18vw,280px);font-weight:950;line-height:.8}.access-card{position:relative;z-index:1;width:min(510px,100%);overflow:hidden;padding:38px;border-radius:20px;background:#fff;box-shadow:0 36px 100px rgba(0,0,0,.34);animation:accessIn .62s ease-out both}.access-card:before{position:absolute;top:0;right:0;left:0;height:6px;content:""}.access-brand{margin-bottom:54px}.access-brand strong{color:var(--ink)}.access-card h1{margin:10px 0 12px;font-family:Arial Black,PingFang SC,sans-serif;font-size:clamp(34px,7vw,50px);font-weight:950;line-height:1.05}.access-card>p{color:var(--muted);line-height:1.65}.access-card form{display:grid;gap:9px;margin-top:28px}.access-card form label{font-weight:850}.access-card form input{min-height:52px;border:1px solid var(--line);border-radius:10px;padding:0 14px;outline:0;color:var(--ink);background:var(--paper);font-size:12px}.access-card form input:focus{border-color:var(--signal);background:#fff}.access-card form button{min-height:52px;margin-top:7px;border:0;border-radius:10px;color:#fff;background:var(--signal);font-size:11px;font-weight:900}.access-card form button:not(:disabled):hover{background:var(--signal-dark);transform:translateY(-2px)}.access-card form button:disabled{opacity:.46}.access-foot{display:block;margin-top:22px;color:var(--muted-light);font-size:8px;line-height:1.6}@keyframes topbarIn{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes heroIn{0%{opacity:0;transform:translateY(24px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes revealUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes briefIn{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes categoryIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes tableRowIn{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}@keyframes detailIn{0%{opacity:0;transform:translateX(14px)}to{opacity:1;transform:translateX(0)}}@keyframes scoreIn{0%{opacity:0;transform:scale(.78)}to{opacity:1;transform:scale(1)}}@keyframes barRise{0%{opacity:0;transform:scaleY(.18)}to{opacity:1;transform:scaleY(1)}}@keyframes signalPulse{0%{opacity:.5;transform:scale(.72)}55%{opacity:1;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes accessIn{0%{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:1260px){.hero{grid-template-columns:minmax(0,1.25fr) minmax(330px,.8fr)}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.workspace-grid{grid-template-columns:minmax(0,1fr)}.detail-card{position:static}.table-wrap{min-height:auto}}@media (max-width:940px){.topbar{align-items:flex-start}.data-status{display:none}.hero{grid-template-columns:minmax(0,1fr)}.hero:before{display:none}.hero-brief{grid-template-columns:1fr 1fr;margin-top:0}.brief-foot,.brief-label{grid-column:1/-1}.brief-item:nth-of-type(2){border-right:1px solid var(--line-dark)}.metric-grid,.rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading,.section-heading-with-filter{align-items:flex-start;flex-direction:column;gap:18px}.section-heading>p{max-width:none;text-align:left}.section-time-filter{width:100%;justify-items:start}.section-time-filter-top{width:100%;justify-content:space-between}.toolbar{align-items:stretch;flex-wrap:wrap}.search-box{flex-basis:100%}}@media (max-width:680px){.dashboard-shell{width:min(100% - 20px,1540px);padding-top:10px}.topbar{top:7px;min-height:62px;padding:8px;border-radius:13px}.brand small{display:none}.brand strong{font-size:11px}.brand-mark{width:38px;height:38px}.button{min-height:40px;padding:0 12px;font-size:10px}.button-plus{display:none}.hero{min-height:auto;margin-top:12px;border-radius:18px}.hero-copy{padding:44px 24px 36px}.hero h1{font-size:clamp(46px,15vw,70px)}.hero-copy p{font-size:11px}.hero-brief{display:block;margin:0 10px 10px;padding:22px}.brief-item:nth-of-type(2){border-right:0}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-card{min-height:132px;padding:18px 16px 16px 20px}.metric-card>strong{font-size:30px}.category-section,.rules-section,.workspace-section{margin-top:54px}.section-heading h2{font-size:36px}.section-time-filter-top{align-items:flex-start;flex-direction:column}.time-preset-group{width:100%;overflow-x:auto}.time-preset-group button{flex:1 0 auto}.time-custom-range{width:100%;flex-wrap:wrap}.time-custom-range label{flex:1}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-card{min-height:156px}.toolbar .select-box{flex:1;justify-content:space-between}.toolbar-time-range{align-items:flex-start;flex-direction:column}.detail-card{padding:16px}.detail-heading{flex-direction:column}.check-list,.detail-meta,.rules-grid{grid-template-columns:minmax(0,1fr)}.rules-section{padding:24px 16px;border-radius:18px}.modal-foot,footer{align-items:flex-start;flex-direction:column}.upload-modal{padding:28px 20px}.access-card{padding:30px 22px}.access-brand{margin-bottom:40px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--canvas:#f3f5f8;--paper:#f8f9fb;--panel:#ffffff;--ink:#141b2b;--ink-soft:#1b2538;--muted:#667085;--muted-light:#98a2b3;--line:#e4e7ec;--line-dark:#344054;--signal:#f04b38;--signal-dark:#d83a2a;--signal-soft:#fff0ed;--success:#087e6b;--danger:#c9362b;--shadow:0 12px 30px rgba(20,27,43,0.06);--shadow-strong:0 24px 64px rgba(20,27,43,0.12)}html{scroll-padding-top:108px}body{color:var(--ink);background:var(--canvas);font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif}body:before{display:none}[role=button],a,button,input,select{transition:transform .16s ease-out,opacity .16s ease-out,color .16s ease-out,background-color .16s ease-out,border-color .16s ease-out}[role=button]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(240,75,56,.28);outline-offset:3px}.dashboard-shell{width:min(1580px,calc(100% - 48px))}.topbar{top:12px;min-height:72px;gap:28px;padding:10px 12px 10px 16px;border:1px solid rgba(228,231,236,.94);border-radius:18px;color:var(--ink);background:rgba(255,255,255,.96);box-shadow:0 12px 36px rgba(20,27,43,.08);animation:uiTopbarIn .46s ease-out both}.access-brand,.brand{gap:11px}.brand-mark{position:relative;width:44px;height:44px;border-radius:13px;background:var(--signal);box-shadow:0 8px 18px rgba(240,75,56,.24);font-size:18px}.brand-mark:after{position:absolute;inset:4px;border:1px solid rgba(255,255,255,.26);border-radius:9px;content:""}.access-brand strong,.brand strong{color:var(--ink);font-size:14px;font-weight:800}.access-brand small,.brand small{color:var(--muted-light);font-size:9px;font-weight:600}.topnav{display:flex;align-items:center;gap:3px;margin-right:auto}.topnav a{border-radius:9px;padding:9px 12px;color:var(--muted);font-size:11px;font-weight:720;text-decoration:none}.topnav a:hover{color:var(--ink);background:var(--paper)}.topbar-actions{gap:10px}.data-status{gap:9px;min-height:42px;border:1px solid var(--line);border-radius:11px;padding:0 13px;color:var(--muted);background:var(--paper);font-size:10px}.data-status i,.eyebrow i{width:8px;height:8px;background:var(--signal);animation:uiSignalPulse 1.2s ease-out 3 both}.data-status strong{color:var(--ink)}.button{min-height:44px;border-radius:11px;padding:0 16px;font-size:11px;font-weight:800}.button-dark{display:inline-flex;align-items:center;gap:8px;color:#fff;background:var(--signal);box-shadow:0 8px 18px rgba(240,75,56,.2)}.button-dark:hover{background:var(--signal-dark);transform:translateY(-2px)}.button-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.hero{min-height:360px;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);margin-top:18px;border:1px solid #263247;border-radius:26px;background:#111827;box-shadow:var(--shadow-strong);animation:uiHeroIn .64s ease-out 60ms both}.hero:before{z-index:2;top:0;right:auto;bottom:auto;left:0;width:100%;height:4px;background:var(--signal);transform-origin:left;animation:uiSignalSweep .85s ease-out .26s both}.hero:after{right:34%;bottom:-34px;color:rgba(255,255,255,.035);font-family:Inter,PingFang SC,sans-serif;font-size:clamp(150px,19vw,290px);font-weight:900}.hero-copy{padding:52px clamp(34px,4.6vw,70px)}.eyebrow,.section-kicker{color:var(--signal);font-size:10px;font-weight:850}.eyebrow{margin-bottom:21px;animation:uiRise .48s ease-out .26s both}.hero h1{max-width:700px;margin-bottom:20px;font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:clamp(52px,5.2vw,78px);font-weight:900;line-height:1;animation:uiRise .56s ease-out .32s both}.hero-copy p{max-width:670px;color:#aeb7c6;font-size:14px;line-height:1.8;animation:uiRise .56s ease-out .39s both}.hero-brief{align-content:center;margin:20px;padding:28px;border:1px solid #344158;border-radius:19px;background:#1b2538;box-shadow:0 16px 38px rgba(7,12,22,.24);animation:uiSlideIn .56s ease-out .36s both}.brief-label{gap:7px;padding-bottom:18px;border-color:#344158}.brief-label span{font-size:10px}.brief-label small{color:#8d9aaf;font-size:9px}.brief-item{grid-template-columns:62px 1fr;gap:14px;padding:19px 0;border-color:#344158}.brief-item>strong{font-size:38px;font-weight:850}.brief-item>span{color:#f5f7fa;font-size:12px}.brief-item small{color:#8390a5;font-size:9px}.brief-foot{padding-top:18px;color:#9aa6b9;font-size:10px}.brief-foot strong{color:#fff;font-size:15px}.metric-grid{gap:14px;margin-top:14px}.metric-card{min-height:158px;padding:22px 22px 20px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow);animation:uiRise .48s ease-out both}.metric-card:after,.metric-card:before{display:none}.metric-card:hover{border-color:#d0d5dd;transform:translateY(-3px)}.metric-top{color:var(--muted);font-size:11px;font-weight:750}.metric-top i{display:grid;width:36px;height:36px;place-items:center;border:1px solid #ffd7cf;border-radius:11px;color:var(--signal-dark);background:var(--signal-soft);font-size:14px;font-style:normal;font-weight:900}.metric-card>strong{margin-top:16px;font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:clamp(34px,3vw,46px);font-weight:850;line-height:.95}.metric-card p{margin-top:12px;color:var(--muted-light);font-size:10px}.category-section,.rules-section,.source-section,.workspace-section{margin-top:48px;scroll-margin-top:108px}.category-section,.workspace-section{animation:uiRise .56s ease-out .22s both}.category-section{padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--panel);box-shadow:var(--shadow)}.section-heading{align-items:flex-end;gap:30px;margin-bottom:22px}.section-heading h2{margin-top:8px;font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:clamp(28px,3vw,38px);font-weight:850;line-height:1.12}.section-heading>p{max-width:520px;color:var(--muted);font-size:11px;line-height:1.65}.section-time-filter{width:min(680px,100%);min-width:min(600px,58vw);border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:var(--paper)}.section-time-filter-top{width:100%;align-items:flex-start;justify-content:flex-end;gap:14px}.section-time-filter-top>span,.toolbar-time-range>span{color:var(--muted);font-size:9px;font-weight:750}.section-time-filter small{color:var(--muted-light);font-size:8px}.time-preset-group{max-width:520px;flex-wrap:wrap;justify-content:flex-end;gap:2px;border:1px solid var(--line);border-radius:9px;padding:3px;background:#fff}.time-preset-group button{min-height:28px;border-radius:6px;padding:0 9px;color:var(--muted);font-size:8px;font-weight:720}.time-preset-group button:hover{color:var(--ink);background:var(--paper)}.time-preset-group .time-preset-active{color:#fff;background:var(--ink)}.time-custom-range{gap:8px}.time-custom-range label{min-height:36px;border-radius:8px;padding:0 9px;background:#fff}.time-custom-range i,.time-custom-range span{font-size:8px}.time-custom-range input{font-size:9px}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.category-card{min-height:156px;border:1px solid var(--line);border-radius:16px;padding:18px;color:var(--ink);background:var(--paper);animation:uiRise .42s ease-out both}.category-card:before{top:0;right:auto;bottom:0;left:0;width:3px;height:auto;border-radius:16px 0 0 16px;background:transparent}.category-card:after{display:none}.category-card:hover{border-color:#cfd4dc;background:#fff;transform:translateY(-3px)}.category-short{color:var(--signal);font-size:9px;font-weight:850}.category-card>strong{margin-top:14px;font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:36px;font-weight:850}.category-name{margin-top:7px;font-size:12px;font-weight:800}.category-card small{margin-top:18px;color:var(--muted-light);font-size:8px}.category-arrow{position:absolute;top:16px;right:16px;display:grid;width:25px;height:25px;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--muted-light);background:#fff;font-size:12px}.category-active{border-color:var(--ink);color:#fff;background:var(--ink);box-shadow:0 12px 24px rgba(20,27,43,.16);animation:uiCategorySelect .18s ease-out both}.category-active:before{background:var(--signal)}.category-active .category-short,.category-active small{color:#aeb8c8}.category-active .category-arrow{border-color:#3c475b;color:#fff;background:#283448}.workspace-grid{grid-template-columns:minmax(0,1.9fr) minmax(360px,.6fr);gap:18px}.detail-card,.table-card{border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}.toolbar{gap:9px;padding:14px;border-bottom:1px solid var(--line);background:#fbfcfd}.search-box,.select-box{min-height:42px;border:1px solid var(--line);border-radius:10px;background:#fff}.search-box:focus-within,.select-box:focus-within{border-color:var(--signal)}.search-box{min-width:250px}.search-box>span{color:var(--muted-light);font-size:20px}.search-box input{font-size:10px}.select-box>span{font-size:8px}.select-box select{font-size:9px;font-weight:700}.toolbar-time-range{padding:10px 14px;background:var(--paper)}.table-wrap{min-height:min(780px,calc(100dvh - 132px));max-height:min(780px,calc(100dvh - 132px));overflow:auto;scrollbar-gutter:stable;background:#fff}table{min-width:900px}td,th{padding:14px 12px;border-bottom-color:#eef0f3}th{color:var(--muted-light);background:#fbfcfd;font-size:9px;font-weight:800}tbody tr{animation:uiRowIn .32s ease-out both}tbody tr:hover{background:#f8fafc}tbody tr.row-selected{background:var(--signal-soft)}tbody tr.row-selected td:first-child{box-shadow:inset 3px 0 0 var(--signal)}.material-name{max-width:300px;gap:6px}.material-name span{font-size:11px;font-weight:800}.material-name small{display:flex;align-items:center;gap:5px;font-size:8px}.material-new-badge{display:inline-flex;min-width:20px;min-height:20px;align-items:center;justify-content:center;border:1px solid #b9ddd4;border-radius:6px;color:var(--success);background:#edf8f5;font-size:8px;font-weight:850;line-height:1}.materials-table{min-width:1130px}.materials-table thead th{position:sticky;z-index:4;top:0;box-shadow:inset 0 -1px 0 var(--line)}.materials-table td:last-child,.materials-table th:last-child{min-width:112px;padding-right:18px;padding-left:14px}.material-upload-cell{min-width:118px;white-space:nowrap}.material-upload-time{display:grid;gap:3px;color:var(--ink);font-variant-numeric:tabular-nums}.material-upload-time strong{font-size:9px;font-weight:760}.material-upload-time small{color:var(--muted-light);font-size:7px}.material-upload-missing{color:var(--muted-light);font-size:8px}.material-days-cell{min-width:66px}.number-cell{color:#344054;font-size:10px;font-weight:720}.grade-badge{width:32px;height:32px;border-radius:9px;font-size:10px}.grade-a,.grade-s{border-color:var(--signal);background:var(--signal)}.grade-b{border-color:#d6dae1;color:#344054;background:#eef0f4}.grade-c,.grade-d{border-color:var(--line);color:var(--muted);background:var(--paper)}.grade-large{width:54px;height:54px;border-radius:15px;font-size:22px}.spark-bars{width:74px;height:30px}.spark-bars i{width:7px;background:#d7dce4;animation:uiBarRise .42s ease-out both}.spark-bars i:last-child{background:var(--signal)}.pagination{min-height:62px;padding:10px 14px;border-color:var(--line);background:#fbfcfd;font-size:9px}.pagination button{min-height:36px;border-radius:9px;font-size:9px}.detail-card{top:104px;padding:24px;animation:uiSlideIn .44s ease-out both}.detail-heading h3{margin-top:7px;font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:19px;font-weight:820;line-height:1.35}.tag{border-color:#ffcfc5;border-radius:7px;color:var(--signal-dark);background:var(--signal-soft);font-size:8px}.tag-dark{border-color:var(--ink);color:#fff;background:var(--ink)}.tag-new{border-color:#cae8e1;color:var(--success);background:#eef9f6}.text-link{color:var(--signal-dark);font-size:9px}.score-panel{margin-top:20px;border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--paper)}.score-ring{width:72px;height:72px;border-left:6px solid #e1e5eb;border-bottom:6px solid #e1e5eb;border-top:6px solid #e1e5eb;border-top-color:var(--signal);border-right:6px solid #e1e5eb;border-right-color:var(--signal);background:transparent;animation:uiScoreIn .48s ease-out both}.score-panel>div:last-child>span{font-size:8px}.score-panel>div:last-child>strong{margin-top:5px;font-size:14px}.score-panel p{font-size:9px}.check-list{gap:8px;margin-top:16px}.check-list>div{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff}.check-list>div.check-pass{border-color:#c9e7e0;background:#f1faf8}.check-icon{width:25px;height:25px;border-radius:8px}.check-list em,.check-list small{font-size:7px}.check-list strong{font-size:9px}.trend-heading{margin-top:22px}.trend-heading>div>span{font-size:8px}.trend-heading>div>strong{font-size:16px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.trend-canvas{position:relative;overflow:visible}.trend-canvas canvas{border-radius:10px;cursor:crosshair;touch-action:pan-y}.trend-canvas canvas:focus-visible{outline:3px solid rgba(240,75,56,.28);outline-offset:3px}.trend-tooltip{position:absolute;z-index:var(--z-sticky);top:7px;display:grid;min-width:116px;gap:2px;padding:9px 11px;border:1px solid var(--line-dark);border-radius:10px;color:#fff;background:var(--ink);box-shadow:var(--shadow);pointer-events:none;transform:translateX(-50%)}.trend-tooltip-start{transform:none}.trend-tooltip-end{transform:translateX(-100%)}.trend-tooltip small,.trend-tooltip span{color:#aeb8c8;font-size:8px}.trend-tooltip strong{font-size:12px;font-variant-numeric:tabular-nums}.change-pill{border-radius:8px}.change-pill,.trend-axis{font-size:8px}.recommendation{margin-top:20px;border:1px solid #ffd4ca;border-left:4px solid var(--signal);border-radius:12px;padding:15px 16px;background:var(--signal-soft)}.recommendation>span{font-size:8px}.recommendation>strong{font-size:13px}.recommendation p{font-size:9px}.detail-meta,.detail-meta>div{border-color:var(--line)}.detail-meta>div{background:#fff}.detail-meta dt{font-size:8px}.detail-meta dd{font-size:9px}.source-section{padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--panel);box-shadow:var(--shadow);animation:uiRise .56s ease-out .26s both}.source-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.source-summary-card{display:grid;min-height:136px;align-content:space-between;gap:8px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.source-summary-card>span{color:var(--muted);font-size:9px;font-weight:760}.source-summary-card>strong{overflow-wrap:anywhere;font-size:31px;font-variant-numeric:tabular-nums;font-weight:850;line-height:1}.source-summary-card>small{color:var(--muted-light);font-size:8px}.source-summary-primary{border-color:var(--ink);color:#fff;background:var(--ink)}.source-summary-primary>small,.source-summary-primary>span{color:#aeb8c8}.source-summary-card>.source-date-value{font-size:17px;line-height:1.25}.source-catalog-card,.source-table-card{overflow:hidden;margin-top:12px;border:1px solid var(--line);border-radius:18px;background:#fff}.source-catalog-heading,.source-table-toolbar{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fbfcfd}.source-catalog-title,.source-table-toolbar>div{display:grid;gap:4px}.source-catalog-title>strong,.source-table-toolbar strong{font-size:13px;font-weight:820}.source-catalog-title>small,.source-table-toolbar small{color:var(--muted-light);font-size:8px;font-variant-numeric:tabular-nums}.source-catalog-controls{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:8px}.source-catalog-search{width:min(310px,32vw);min-width:230px}.source-catalog-date-filter{min-width:168px;justify-content:space-between}.source-catalog-list{display:grid;max-height:560px;overflow-y:auto;overscroll-behavior:contain;padding:0 14px 14px;scrollbar-gutter:stable}.source-date-group{padding:16px 0;border-bottom:1px solid var(--line)}.source-date-group:last-child{border-bottom:0}.source-date-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:9px}.source-date-heading>div{display:flex;align-items:baseline;gap:8px}.source-date-heading strong{font-size:12px;font-weight:830}.source-date-heading small,.source-date-heading>span{color:var(--muted-light);font-size:8px;font-variant-numeric:tabular-nums}.source-date-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.source-catalog-item{display:grid;min-width:0;min-height:64px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px 11px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--paper);text-align:left}.source-catalog-item:hover{border-color:#cfd4dc;background:#fff;transform:translateY(-2px)}.source-catalog-active{border-color:var(--ink);background:#fff;box-shadow:inset 3px 0 0 var(--signal)}.source-catalog-item>div{display:grid;min-width:0;gap:4px}.source-catalog-item strong{font-size:10px;font-weight:780}.source-catalog-item small,.source-catalog-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-catalog-item small{color:var(--muted-light);font-size:8px}.source-catalog-action{min-width:52px;color:var(--muted);font-size:8px;font-weight:760;text-align:right;white-space:nowrap}.source-catalog-active .source-catalog-action{color:var(--signal-dark)}.source-catalog-empty{display:grid;min-height:210px;place-content:center;justify-items:center;gap:8px;color:var(--muted);text-align:center}.source-catalog-empty strong{color:var(--ink);font-size:12px}.source-catalog-empty span{font-size:9px}.source-catalog-empty button{min-height:34px;margin-top:4px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);background:#fff;font-size:9px;font-weight:780}.source-search-box{width:min(430px,100%);flex:0 1 430px}.source-table-actions{display:flex;min-width:0;flex:1;align-items:center;justify-content:flex-end;gap:8px}.raw-sort-column{min-width:190px;max-width:260px}.raw-sort-column select{min-width:0;max-width:170px;overflow:hidden;text-overflow:ellipsis}.raw-sort-direction{min-width:124px}.raw-sort-column select:disabled,.raw-sort-direction select:disabled{cursor:not-allowed;opacity:.5}.source-search-box:has(input:disabled){opacity:.6}.source-table-wrap{position:relative;max-height:760px;overflow:auto;background:#fff}.source-data-table{min-width:2500px}.source-data-table td,.source-data-table th{padding:12px 11px;color:#475467;background:#fff;font-size:9px;white-space:nowrap}.source-data-table th{color:var(--muted-light);background:#fbfcfd}.source-data-table th:not(:first-child){min-width:140px;max-width:280px;overflow:hidden;text-overflow:ellipsis}.source-data-table tbody tr:hover td{background:#f8fafc}.source-data-table td:first-child,.source-data-table th:first-child{position:sticky;z-index:3;left:0;width:58px;min-width:58px;box-shadow:1px 0 0 var(--line)}.source-data-table td:nth-child(2),.source-data-table th:nth-child(2){position:sticky;z-index:3;left:58px;box-shadow:1px 0 0 var(--line)}.source-data-table thead th:first-child,.source-data-table thead th:nth-child(2){z-index:5;background:#fbfcfd}.source-row-number{color:var(--muted-light)!important;font-variant-numeric:tabular-nums;text-align:center}.source-raw-cell{max-width:280px;overflow:hidden;font-variant-numeric:tabular-nums;text-overflow:ellipsis}.raw-source-empty{display:grid;min-height:190px;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:20px;padding:24px;border:1px dashed #c9ced7;border-radius:18px;background:var(--paper)}.raw-empty-mark{display:grid;width:58px;height:58px;place-items:center;border-radius:14px;color:#fff;background:var(--ink);font-size:15px;font-weight:850}.raw-source-empty>div{display:grid;gap:8px}.raw-source-empty strong{font-size:15px;font-weight:820}.raw-source-empty p{max-width:720px;margin:0;color:var(--muted);font-size:10px;line-height:1.7}.raw-loading-state,.raw-source-error{display:flex;min-height:180px;align-items:center;justify-content:center;gap:8px;padding:28px;text-align:center}.raw-loading-state{flex-direction:column;background:#fff}.raw-loading-state strong,.raw-source-error strong{font-size:12px;font-weight:800}.raw-loading-state span,.raw-source-error span{color:var(--muted);font-size:9px}.raw-source-error{flex-direction:column;color:var(--danger);background:#fff7f5}.raw-source-error>div{display:grid;gap:6px}.raw-source-error button{min-height:34px;border:1px solid #efc4bc;border-radius:8px;padding:0 12px;color:var(--danger);background:#fff;font-size:9px;font-weight:800}.source-name-cell{width:280px;min-width:280px;max-width:280px;color:var(--ink)!important;font-weight:760}.source-id-cell,.source-name-cell{overflow:hidden;text-overflow:ellipsis}.source-id-cell{max-width:170px;color:var(--muted)!important;font-variant-numeric:tabular-nums}.source-script-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis}.source-trend-cell{min-width:520px;color:var(--muted)!important;font-variant-numeric:tabular-nums}.source-link{color:var(--signal-dark);font-size:9px;font-weight:800;text-decoration:none}.source-link:hover{color:var(--ink)}.rules-section{padding:32px;border:1px solid #253147;border-radius:24px;background:#111827;box-shadow:var(--shadow-strong);animation:uiRise .56s ease-out .26s both}.rules-section .section-heading>p{color:#8f9bad}.rules-grid{gap:10px}.rules-grid article{min-height:120px;border:1px solid #2d394f;border-radius:14px;padding:18px;background:#1b2538}.rules-grid article:hover{border-color:#56637a;transform:translateY(-3px)}.rule-dot{width:8px;height:8px;background:var(--signal)}.rules-grid strong{font-size:11px}.rules-grid p{color:#8f9bad;font-size:8px}.grade-rule{border-color:var(--signal)!important;background:var(--signal)!important}.grade-rule p{color:#ffe2dc}footer{padding-top:22px;font-size:8px}.modal-backdrop{background:rgba(13,19,31,.82)}.upload-modal{width:min(640px,100%);padding:34px;border:1px solid var(--line);border-radius:22px;box-shadow:0 32px 88px rgba(7,12,22,.3);animation:uiModalIn .24s ease-out both}.modal-close{width:36px;height:36px;border-radius:10px}.upload-modal h2{font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:34px;font-weight:850}.modal-intro{font-size:10px}.drop-zone{min-height:220px;border-color:#c9ced7;border-radius:16px;background:var(--paper)}.drop-zone:focus-visible,.drop-zone:hover{border-color:var(--signal);background:var(--signal-soft)}.upload-symbol{width:56px;height:56px;border-radius:16px;box-shadow:0 10px 24px rgba(240,75,56,.2)}.drop-zone strong{font-size:14px}.drop-zone small,.modal-foot,.upload-guide p{font-size:9px}.toast{border-radius:12px;background:var(--ink);font-size:10px;animation:uiToastIn .24s ease-out both}.access-shell{background:#111827}.access-shell:before{left:24%;background:#263247;box-shadow:26vw 0 0 #263247,52vw 0 0 #263247}.access-shell:after{color:rgba(255,255,255,.025);font-family:Inter,PingFang SC,sans-serif}.access-card{width:min(530px,100%);padding:40px;border:1px solid var(--line);border-radius:24px;box-shadow:0 36px 100px rgba(7,12,22,.38);animation:uiModalIn .56s ease-out both}.access-card:before{height:5px;background:var(--signal)}.access-brand{margin-bottom:50px}.access-card h1{font-family:Inter,SF Pro Display,PingFang SC,sans-serif;font-size:clamp(34px,7vw,48px);font-weight:880}.access-card>p{font-size:11px}.access-card form label{font-size:9px}.access-card form button,.access-card form input{min-height:54px;border-radius:11px;font-size:11px}@keyframes uiTopbarIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes uiHeroIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes uiRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes uiSlideIn{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}@keyframes uiSignalSweep{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes uiSignalPulse{0%{opacity:.45;transform:scale(.75)}55%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}@keyframes uiCategorySelect{0%{opacity:.82;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes uiRowIn{0%{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:translateX(0)}}@keyframes uiBarRise{0%{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:scaleY(1)}}@keyframes uiScoreIn{0%{opacity:0;transform:scale(.84)}to{opacity:1;transform:scale(1)}}@keyframes uiModalIn{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes uiToastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1280px){.topnav{display:none}.hero{grid-template-columns:minmax(0,1.15fr) minmax(350px,.75fr)}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.workspace-grid{grid-template-columns:minmax(0,1fr)}.detail-card{position:static}.table-wrap{min-height:auto}.source-date-items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:960px){.dashboard-shell{width:min(100% - 28px,1580px)}.data-status{display:none}.hero{grid-template-columns:minmax(0,1fr)}.hero:after{right:6%}.hero-brief{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.brief-foot,.brief-label{grid-column:1/-1}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.source-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading,.section-heading-with-filter{align-items:flex-start;flex-direction:column}.section-heading>p,.section-time-filter{width:100%;max-width:none}.source-table-toolbar{align-items:flex-start;flex-direction:column}.source-table-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.source-catalog-controls{flex-wrap:wrap}.source-search-box{flex:1 1 300px}}@media (max-width:680px){.dashboard-shell{width:min(100% - 20px,1580px);padding-top:10px}.topbar{top:7px;min-height:62px;border-radius:14px;padding:8px}.brand strong{font-size:11px}.brand-mark{width:40px;height:40px}.button{min-height:40px;padding:0 12px;font-size:9px}.button-icon{width:15px;height:15px}.hero{margin-top:12px;border-radius:20px}.hero-copy{padding:42px 24px 32px}.hero h1{font-size:clamp(44px,14vw,62px)}.hero-copy p{font-size:11px}.hero-brief{display:block;margin:0 10px 10px;padding:22px}.metric-grid{gap:8px}.metric-card{min-height:144px;padding:17px}.metric-top i{width:32px;height:32px}.metric-card>strong{font-size:30px}.category-section,.rules-section,.source-section,.workspace-section{margin-top:32px}.category-section,.source-section{padding:20px 14px;border-radius:19px}.section-heading h2{font-size:30px}.section-time-filter{min-width:0}.section-time-filter-top{align-items:flex-start;flex-direction:column}.time-preset-group{width:100%;overflow-x:auto}.time-preset-group button{flex:1 0 auto}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.category-card{min-height:148px;padding:16px}.toolbar{align-items:stretch;flex-wrap:wrap}.source-catalog-controls,.source-catalog-heading{align-items:stretch;flex-direction:column}.source-catalog-controls{width:100%}.source-catalog-date-filter,.source-catalog-search{width:100%;min-width:0}.source-date-items{grid-template-columns:minmax(0,1fr)}.source-date-heading{gap:6px}.source-date-heading,.source-table-toolbar{align-items:flex-start;flex-direction:column}.source-table-actions{align-items:stretch;flex-direction:column}.source-search-box{width:100%;flex-basis:auto}.raw-sort-column,.raw-sort-direction{width:100%;max-width:none;justify-content:space-between}.raw-sort-column select{max-width:min(70vw,260px)}.raw-source-empty,.source-catalog-list{grid-template-columns:minmax(0,1fr)}.raw-source-empty{justify-items:start}.search-box{flex-basis:100%;min-width:0}.toolbar .select-box{flex:1;justify-content:space-between}.detail-card{padding:18px}.rules-section{padding:24px 16px;border-radius:20px}.rules-grid{grid-template-columns:minmax(0,1fr)}.upload-modal{padding:28px 20px}}@media (max-width:460px){.brand small{display:none}.brand strong{max-width:112px;line-height:1.2}.button-dark{gap:5px}.category-grid,.metric-grid,.source-overview{grid-template-columns:minmax(0,1fr)}.category-card{min-height:138px}}html{scroll-padding-top:24px}.dashboard-shell{display:grid;width:min(1780px,calc(100% - 36px));grid-template-columns:232px minmax(0,1fr);align-items:start;gap:18px;padding:18px 0 52px}.sidebar{position:sticky;z-index:var(--z-sticky);top:max(18px,env(safe-area-inset-top));display:flex;height:calc(100dvh - 36px - env(safe-area-inset-top));min-height:610px;flex-direction:column;overflow:hidden;padding:18px 14px 14px;border:1px solid #263247;border-radius:22px;color:#fff;background:#111827;box-shadow:var(--shadow-strong);animation:uiSidebarIn .48s ease-out both}.sidebar .brand{gap:10px;padding:2px 4px 18px;border-bottom:1px solid #2a3549}.sidebar .brand-mark{width:42px;height:42px;flex:0 0 auto;border-radius:12px}.sidebar .brand>span:last-child{min-width:0}.sidebar .brand strong{color:#fff;font-size:12px}.sidebar .brand small,.sidebar .brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .brand small{color:#7f8ca2;font-size:7px}.sidebar .topnav{display:flex;width:100%;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:5px;margin:22px 0 0}.sidebar-nav-label{padding:0 11px 7px;color:#68758b;font-size:8px;font-weight:800}.sidebar .topnav a{display:flex;min-height:44px;align-items:center;gap:11px;border:1px solid transparent;border-radius:11px;padding:0 11px;color:#aab4c4;font-size:10px;font-weight:720;text-decoration:none}.sidebar .topnav a:first-of-type,.sidebar .topnav a:hover{border-color:#354157;color:#fff;background:#1d283b}.sidebar .topnav a:hover{transform:translateX(2px)}.nav-icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.sidebar .topnav a:first-of-type .nav-icon{color:var(--signal)}.sidebar-footer{display:grid;gap:10px;margin-top:auto;padding-top:16px;border-top:1px solid #2a3549}.sidebar .data-status{min-height:0;align-items:flex-start;border-color:#313d52;padding:11px;color:#91a0b5;background:#182235;font-size:8px;line-height:1.55}.sidebar .data-status i{margin-top:3px}.sidebar .data-status strong{color:#fff}.sidebar .button-dark{width:100%;min-height:46px;justify-content:center}.dashboard-main{min-width:0}.dashboard-main>.hero{margin-top:0}.dashboard-main>.category-section,.dashboard-main>.hero,.dashboard-main>.rules-section,.dashboard-main>.source-section,.dashboard-main>.workspace-section{scroll-margin-top:24px}@keyframes uiSidebarIn{0%{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}@media (max-width:1100px){.dashboard-shell{grid-template-columns:208px minmax(0,1fr);gap:14px}.sidebar{padding-right:11px;padding-left:11px}.sidebar .brand small{display:none}}@media (max-width:960px){html{scroll-padding-top:94px}.dashboard-shell{display:block;width:min(100% - 24px,1580px);padding-top:10px}.sidebar{top:max(8px,env(safe-area-inset-top));display:flex;width:100%;height:auto;min-height:0;flex-direction:row;align-items:center;gap:10px;overflow:visible;padding:8px;border-color:var(--line);border-radius:16px;color:var(--ink);background:rgba(255,255,255,.97);box-shadow:0 12px 36px rgba(20,27,43,.09);animation:uiTopbarIn .42s ease-out both}.sidebar .brand{flex:0 0 auto;padding:0;border:0}.sidebar .brand strong{color:var(--ink);font-size:11px}.sidebar .brand small{display:none}.sidebar .topnav{width:auto;flex:1 1 auto;flex-direction:row;align-items:center;justify-content:center;gap:2px;margin:0}.sidebar-nav-label{display:none}.sidebar .topnav a{min-height:40px;gap:7px;border-radius:9px;padding:0 9px;color:var(--muted);font-size:9px}.sidebar .topnav a:first-of-type,.sidebar .topnav a:hover{border-color:var(--line);color:var(--ink);background:var(--paper)}.sidebar .topnav a:hover{transform:translateY(-1px)}.nav-icon{width:16px;height:16px}.sidebar-footer{display:flex;flex:0 0 auto;margin:0;padding:0;border:0}.sidebar .data-status{display:none}.sidebar .button-dark{width:auto;min-height:40px;padding:0 12px;font-size:9px}.dashboard-main{margin-top:12px}.dashboard-main>.category-section,.dashboard-main>.hero,.dashboard-main>.rules-section,.dashboard-main>.source-section,.dashboard-main>.workspace-section{scroll-margin-top:94px}}@media (max-width:760px){html{scroll-padding-top:132px}.sidebar{flex-wrap:wrap}.sidebar .brand{flex:1 1 auto}.sidebar .topnav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;padding-top:7px;border-top:1px solid var(--line);scrollbar-width:none}.sidebar .topnav::-webkit-scrollbar{display:none}.sidebar .topnav a{flex:0 0 auto;white-space:nowrap}.dashboard-main>.category-section,.dashboard-main>.hero,.dashboard-main>.rules-section,.dashboard-main>.source-section,.dashboard-main>.workspace-section{scroll-margin-top:132px}}@media (max-width:460px){.dashboard-shell{width:min(100% - 16px,1580px)}.sidebar .brand strong{max-width:none}.sidebar .topnav a{min-width:0;flex:1 1 0;justify-content:center;min-height:38px;gap:3px;padding:0 4px;font-size:7px}.sidebar .topnav{gap:0}.sidebar .topnav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .nav-icon{width:14px;height:14px}}.sidebar-header{display:flex;align-items:center;gap:8px;padding:2px 2px 18px 4px;border-bottom:1px solid #2a3549}.sidebar-header .brand{min-width:0;flex:1 1 auto;padding:0;border:0}.sidebar-toggle{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border:1px solid #354157;border-radius:9px;padding:0;color:#aab4c4;background:#1d283b}.sidebar-toggle:hover{color:#fff;background:#283449;transform:translateX(-1px)}.sidebar-toggle:active{transform:translateX(0)}.sidebar-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.dashboard-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar-collapsed .sidebar{padding-right:10px;padding-left:10px}.sidebar-collapsed .sidebar-header{flex-direction:column;gap:12px;padding:2px 0 16px}.sidebar-collapsed .sidebar .brand{justify-content:center}.sidebar-collapsed .sidebar .brand>span:last-child,.sidebar-collapsed .sidebar .button-label,.sidebar-collapsed .sidebar .data-status>span,.sidebar-collapsed .sidebar .topnav a>span,.sidebar-collapsed .sidebar-nav-label{display:none}.sidebar-collapsed .sidebar .topnav{margin-top:18px}.sidebar-collapsed .sidebar .topnav a{justify-content:center;padding:0}.sidebar-collapsed .sidebar .topnav a:hover{transform:translateY(-1px)}.sidebar-collapsed .sidebar-footer{justify-items:center}.sidebar-collapsed .sidebar .data-status{width:46px;min-height:42px;align-items:center;justify-content:center;padding:0}.sidebar-collapsed .sidebar .data-status i{margin:0}.sidebar-collapsed .sidebar .button-dark{width:46px;padding:0}@media (max-width:960px){.sidebar-header{min-width:0;flex:0 1 auto;gap:7px;padding:0;border:0}.sidebar-header .brand{flex:1 1 auto}.sidebar-toggle{border-color:var(--line);color:var(--muted);background:var(--paper)}.sidebar-toggle:hover{color:var(--ink);background:#fff;transform:translateY(-1px)}.sidebar-collapsed .sidebar{flex-wrap:nowrap;padding:8px}.sidebar-collapsed .sidebar-header{flex:1 1 auto;flex-direction:row;gap:7px;padding:0}.sidebar-collapsed .sidebar .brand{justify-content:flex-start}.sidebar-collapsed .sidebar .brand>span:last-child{display:grid}.sidebar-collapsed .sidebar .topnav{display:none}.sidebar-collapsed .sidebar-footer{display:flex}.sidebar-collapsed .sidebar .button-dark{width:auto;padding:0 12px}.sidebar-collapsed .sidebar .button-label{display:inline}}@media (max-width:460px){.sidebar-toggle{width:30px;height:30px;border-radius:8px}.sidebar-toggle svg{width:15px;height:15px}.sidebar-collapsed .sidebar .brand strong{max-width:120px}}