*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Consolas,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 Microsoft YaHei,PingFang SC,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.tbl td,.tbl th,.stat .vl,.kpi .v,.ring b,.s-score,code,.mono,.conf,.reg-no{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.kpi .\!v{font-variant-numeric:tabular-nums!important;font-feature-settings:"tnum" 1!important}:focus-visible{outline:2px solid rgba(30,110,242,.35);outline-offset:1px;border-radius:4px}h1,h2,h3,h4,p,figure{margin:0}ul,ol{margin:0;padding:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--info-tx);text-decoration:none}a:hover{text-decoration:underline}::-moz-placeholder{color:var(--ink-3)}::placeholder{color:var(--ink-3)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:60px;flex:none;background:var(--surface-1);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;padding:0 20px}.topbar .rule-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:99px;font-size:12px;font-weight:600;background:var(--surface-3);color:var(--ink-2)}.topbar .rule-chip.warn{background:var(--warn-bg);color:var(--warn-tx)}.identity-chip{display:inline-flex;align-items:center;gap:9px;padding:4px 11px 4px 4px;border-radius:99px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-2);background:transparent;transition:background var(--dur-2) var(--ease-in-out)}.identity-chip:hover{background:var(--surface-2)}.identity-chip .av{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.identity-chip .av.user{background:var(--brand-50);color:var(--brand-600)}.identity-chip .av.\!user{background:var(--brand-50)!important;color:var(--brand-600)!important}.identity-chip .av.admin{background:var(--brand-500);color:#fff}.app-body{flex:1;display:flex;align-items:stretch;min-height:0}.sidebar{width:var(--nav-w);flex:none;background:var(--surface-1);border-right:1px solid var(--line);padding:16px 10px 20px;display:flex;flex-direction:column;gap:2px;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:var(--ink-2);font-size:13.5px;font-weight:600;cursor:pointer;background:transparent;border:none;text-align:left;width:100%;transition:background var(--dur-2) var(--ease-in-out),color var(--dur-2) var(--ease-in-out)}.nav-item:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:0 2px 2px 0;background:var(--brand-500);transform:translateY(-50%);transition:height var(--dur-3) var(--ease-spring)}.nav-item.on:before{height:18px}.nav-item.\!on:before{height:18px!important}.nav-item:hover{background:var(--surface-2);color:var(--brand-600)}.nav-item.on{background:var(--brand-50);color:var(--brand-600)}.nav-item.\!on{background:var(--brand-50)!important;color:var(--brand-600)!important}.nav-item .ico{flex:none;transition:transform var(--dur-2) var(--ease-spring)}.nav-item.on .ico{transform:translate(1px)}.nav-item.\!on .ico{transform:translate(1px)!important}.nav-sep{height:1px;background:var(--line);margin:8px 6px}.sidebar .overview{margin-top:auto;padding:11px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.sidebar .overview .oh{font-size:11px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;margin-bottom:6px}.sidebar .overview .ok-row{display:flex;justify-content:space-between;font-size:12px;padding:2px 0}.content{flex:1;min-width:0;padding:24px 26px 80px}.ws-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.confirm-grid{display:grid;grid-template-columns:1.6fr .4fr;gap:18px;align-items:start}.report-grid{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.admin-2col{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;align-items:start}.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dim-2col{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px}.page-title{font-size:19px;font-weight:700;line-height:1.35;margin-bottom:4px}.page-sub{font-size:13px;color:var(--ink-2);margin-bottom:18px;max-width:86ch}.sec-title{font-size:17px;font-weight:700;margin:0 0 12px}.card-title{font-weight:700;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:8px;border:none;background:var(--surface-3);color:var(--ink);font-size:14px;font-weight:400;line-height:1.4;cursor:pointer;transition:filter var(--dur-2) var(--ease-in-out),background var(--dur-2) var(--ease-in-out),border-color var(--dur-2) var(--ease-in-out),color var(--dur-2) var(--ease-in-out),transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out);white-space:nowrap}.btn:hover{filter:brightness(.97)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{filter:none}.btn-primary{background:var(--brand-500);color:#fff;font-weight:600}.btn-primary:hover{background:var(--brand-600);filter:none}.btn-primary:active:not(:disabled){background:var(--brand-600)}.btn-outline{background:var(--surface-1);border:1px solid var(--line);color:var(--ink-2)}.btn-outline:hover{border-color:var(--brand-500);color:var(--brand-600);filter:none}.btn-red{background:var(--danger);color:#fff;font-weight:600}.btn-red:active:not(:disabled){transform:translateY(1px);filter:brightness(.94)}.btn-sm{padding:5px 12px;font-size:13px;border-radius:6px}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--brand-600);filter:none}.btn-block{width:100%}.spin{width:12px;height:12px;flex:none;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tag{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap}.tag-blue{background:var(--info-bg);color:var(--info-tx)}.tag-green{background:var(--ok-bg);color:var(--ok-tx)}.tag-orange{background:var(--warn-bg);color:var(--warn-tx)}.tag-red{background:var(--danger-bg);color:var(--danger-tx)}.tag-gray{background:var(--surface-3);color:var(--ink-2)}.form-row{margin-bottom:14px}.form-label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px}.input,.select,.textarea{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-1);outline:none;font-size:14px;color:var(--ink);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-500);outline:2px solid rgba(30,110,242,.35);outline-offset:1px}.input.err,.select.err,.textarea.err{border-color:var(--danger);background:snow}.field-err{font-size:12px;color:var(--danger-tx);margin-top:5px;line-height:1.55}.textarea{resize:vertical;min-height:84px;line-height:1.65}.code-input{font-family:Consolas,ui-monospace,monospace;font-weight:700}.code-input.review{border-color:var(--track-warn);background:#fffdf8;color:var(--warn-tx)}.code-row{display:flex;gap:8px;align-items:stretch}.code-row .input{flex:1;min-width:0}.code-row .btn{flex:none;padding-left:14px;padding-right:14px;font-size:13px}.field-hint{font-size:12px;color:var(--ink-3);margin-top:5px;line-height:1.55}.label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.label-row .form-label{margin-bottom:0}.link-btn{background:none;border:none;padding:0;cursor:pointer;font-size:12px;color:var(--brand-600);font-family:inherit;line-height:1.4}.link-btn:hover{text-decoration:underline}.link-btn:disabled{color:var(--ink-3);cursor:not-allowed;text-decoration:none}.switch{width:42px;height:23px;border-radius:99px;background:var(--switch-off);position:relative;flex:none;border:none;cursor:pointer;padding:0;transition:background var(--dur-2) var(--ease-in-out)}.switch i{position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform var(--dur-2) var(--ease-spring);box-shadow:0 1px 2px #0003}.switch.on{background:var(--ok)}.switch.\!on{background:var(--ok)!important}.switch.on i{transform:translate(19px)}.switch.\!on i{transform:translate(19px)!important}.switch.warnstate{background:var(--warn)}.switch.warnstate i{transform:translate(19px)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface-1)}.seg button{border:none;background:transparent;padding:8px 15px;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit;border-right:1px solid var(--line);transition:background var(--dur-2) var(--ease-in-out),color var(--dur-2) var(--ease-in-out)}.seg button:last-child{border-right:none}.seg button.on{background:var(--brand-500);color:#fff}.seg button.\!on{background:var(--brand-500)!important;color:#fff!important}.card{background:var(--surface-1);border-radius:12px;box-shadow:var(--shadow);padding:20px;margin-bottom:14px}.card:last-child{margin-bottom:0}.card.report{padding:22px;margin-top:18px;margin-bottom:0}.stat{background:var(--surface-1);border-radius:12px;box-shadow:var(--shadow);padding:17px 19px}.stat .lb{font-size:12.5px;color:var(--ink-3)}.stat .vl{font-size:25px;font-weight:700;margin-top:3px;line-height:1.2}.stat .row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.st{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.st .lb{font-size:12.5px;color:var(--ink-3)}.st .vl{font-size:22px;font-weight:700;margin-top:3px;line-height:1.25}.panel{background:var(--surface-1);border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden}.notice{border-radius:9px;padding:12px 15px;font-size:13px;display:flex;gap:9px;align-items:flex-start;margin-bottom:12px;line-height:1.65}.notice:last-child{margin-bottom:0}.notice .ic{flex:none;display:flex;align-items:center;margin-top:2px}.notice b{font-weight:700}.notice.info{background:var(--info-bg);color:var(--info-tx)}.notice.ok{background:var(--ok-bg);color:var(--ok-tx)}.notice.warn{background:var(--warn-bg);color:var(--warn-tx)}.notice.err{background:var(--danger-bg);color:var(--danger-tx)}.tbl-wrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:12.5px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;transition:background var(--dur-2) var(--ease-out)}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:var(--surface-hover)}.tbl .num{text-align:right}.tbl .time{color:var(--ink-2)}.tbl .fname{max-width:280px;word-break:break-all}.tbl.sticky-first td:first-child,.tbl.sticky-first th:first-child{position:sticky;left:0;background:var(--surface-1);z-index:10}.tbl.sticky-first th:first-child{background:var(--surface-2)}.sparkline{display:block}.chart-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-top:10px}.chart-legend i{width:9px;height:9px;display:inline-block;margin-right:5px}.ring{border-radius:50%;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}.ring b{font-size:24px;line-height:1}.ring span{font-size:11px;opacity:.92;margin-top:3px}.ring.lg{width:78px;height:78px}.ring.md{width:66px;height:66px}.ring.md b{font-size:20px}.ring.sm{width:42px;height:42px}.ring.sm b{font-size:15px}.ring.sm span{display:none}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0f203373;display:flex;align-items:center;justify-content:center;padding:20px;animation:maskIn var(--dur-3) var(--ease-out)}.modal-mask.closing{animation:maskOut .17s var(--ease-in-out) forwards}.\!modal{width:480px!important;max-width:100%!important;background:var(--surface-1)!important;border-radius:14px!important;box-shadow:var(--shadow-modal)!important;max-height:88vh!important;overflow-y:auto!important;padding:22px 24px!important;animation:modalIn var(--dur-3) var(--ease-out)!important}.modal{width:480px;max-width:100%;background:var(--surface-1);border-radius:14px;box-shadow:var(--shadow-modal);max-height:88vh;overflow-y:auto;padding:22px 24px;animation:modalIn var(--dur-3) var(--ease-out)}.\!modal.wide{width:720px!important}.modal.wide{width:720px}.\!modal.closing{animation:modalOut .17s var(--ease-in-out) forwards!important}.modal.closing{animation:modalOut .17s var(--ease-in-out) forwards}@keyframes maskIn{0%{opacity:0}to{opacity:1}}@keyframes maskOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@keyframes modalOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px) scale(.99)}}.\!modal h3{font-size:17px!important;font-weight:700!important;margin-bottom:8px!important}.modal h3{font-size:17px;font-weight:700;margin-bottom:8px}.\!modal .mdesc{font-size:13px!important;color:var(--ink-2)!important;line-height:1.7!important;margin-bottom:14px!important}.modal .mdesc{font-size:13px;color:var(--ink-2);line-height:1.7;margin-bottom:14px}.\!modal .mfoot{display:flex!important;justify-content:flex-end!important;gap:10px!important;margin-top:20px!important;padding-top:16px!important;border-top:1px solid var(--line)!important}.modal .mfoot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}#toast-root{position:fixed;top:72px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:9px;align-items:center;pointer-events:none}.toast{max-width:420px;display:flex;align-items:center;gap:9px;padding:11px 16px;border-radius:99px;background:var(--toast-bg);color:#fff;font-size:13px;line-height:1.5;box-shadow:var(--shadow-toast);animation:toastIn var(--dur-3) var(--ease-spring);pointer-events:auto}.toast.out{animation:toastOut .16s var(--ease-in-out) forwards}.toast .ic{flex:none;display:flex}.toast.ok{background:var(--ok)}.toast.err{background:var(--danger)}.toast .x{background:transparent;border:none;color:inherit;opacity:.8;cursor:pointer;padding:0 0 0 2px;display:flex}.toast .x:hover{opacity:1}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:none}}@keyframes toastOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px) scale(.97)}}.empty{text-align:center;padding:26px 16px}.empty .et{font-size:13.5px;font-weight:700;margin-bottom:10px}.empty .ed{font-size:12.5px;color:var(--ink-2);line-height:1.75;max-width:46ch;margin:0 auto}.global-loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#f3f6fbd1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:pageIn var(--dur-2) var(--ease-out)}.global-loading .gl-spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--brand-100);border-top-color:var(--brand-500);animation:spin .8s linear infinite}.global-loading .gl-tx{font-size:13.5px;font-weight:600;color:var(--ink)}.global-loading .gl-sub{font-size:12.5px;color:var(--ink-2)}.ico{width:18px;height:18px;stroke-width:1.75;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;display:block;flex:none}.ico.xs,.ico.sm{width:16px;height:16px}.ico.md{width:20px;height:20px}.ico.lg{width:24px;height:24px}.logomark{flex:none;display:block}.app-name{font-size:19px;font-weight:700;color:var(--brand-600);letter-spacing:.06em}.brandname{display:flex;align-items:center;gap:10px;transition:opacity var(--dur-2) var(--ease-out)}.brandname:hover{opacity:.82;text-decoration:none}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:600;border:1px solid transparent;white-space:nowrap}.badge svg{width:12px;height:12px;stroke-width:2;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.badge.desen{background:var(--info-bg);color:var(--info-tx);border-color:#cfe1ff}.badge.local{background:var(--ok-bg);color:var(--ok-tx);border-color:#c9ebdc}.badge.inner{background:var(--surface-3);color:var(--ink-2);border-color:var(--line-strong)}.badge.tiny{font-size:11px;padding:1px 7px}.rlv{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:600;flex:none}.rlv.high{background:var(--danger-bg);color:var(--danger-tx)}.rlv.mid{background:var(--warn-bg);color:var(--warn-tx)}.rlv.low{background:var(--ok-bg);color:var(--ok-tx)}.riskrow{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:10px;background:var(--surface-1);overflow:hidden;margin-bottom:8px}.riskrow .bar{width:4px;flex:none;background:var(--danger)}.riskrow.mid .bar{width:3px;background:var(--warn)}.riskrow.low .bar{width:2px;background:var(--ok)}.riskrow .in{padding:12px 14px;flex:1;min-width:0}.riskrow .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.riskrow .ttl{font-size:13px;font-weight:600;flex:1;min-width:0}.riskrow .ev{margin-top:8px;background:var(--surface-2);border-left:2px solid var(--line-strong);border-radius:0 6px 6px 0;padding:8px 11px;font-size:12px;color:var(--ink-2);line-height:1.65}.riskrow .acts{margin-top:9px;display:flex;gap:8px;flex-wrap:wrap}.src{font-size:11px;font-weight:700;padding:2px 8px;border-radius:5px;white-space:nowrap}.src.rule{background:var(--ok-bg);color:var(--ok-tx);border:1px solid #c9ebdc}.src.ai{background:var(--info-bg);color:var(--info-tx);border:1px solid #cfe1ff}.risksum{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}.risksum .rs{display:inline-flex;align-items:center;gap:3px}.conf{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--ink-2);white-space:nowrap}.conf.high{color:var(--ink-2)}.conf.mid,.conf.low{color:var(--warn-tx)}.confbar{width:56px;height:6px;border-radius:99px;background:var(--track);overflow:hidden;flex:none}.confbar i{display:block;height:100%;border-radius:99px}.cand-list{display:flex;flex-direction:column;gap:9px}.cand{border:1px solid var(--line);border-radius:10px;background:var(--surface-1);padding:12px 14px;position:relative;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.cand:hover{border-color:var(--brand-200);box-shadow:var(--shadow-item)}.cand.warnc{border-color:var(--track-warn);background:#fffdf8}.cand.sel{border:2px solid var(--brand-500);padding:11px 13px}.cand .hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cand .cd{font-family:Consolas,ui-monospace,monospace;font-size:14px;font-weight:700;color:var(--brand-600);font-variant-numeric:tabular-nums}.cand.warnc .cd{color:var(--warn-tx)}.cand .nm{font-size:13px;font-weight:600}.cand .conf{margin-left:auto}.cand .act{color:var(--warn-tx);font-size:11.5px;font-weight:700}.cand .why2{font-size:12px;color:var(--ink-2);margin-top:6px;line-height:1.6}.cand .why2 b{color:var(--ink)}.cand .tick{position:absolute;right:-1px;top:-1px;width:20px;height:20px;border-radius:0 10px;background:var(--brand-500);color:#fff;display:flex;align-items:center;justify-content:center}.cand .edited{font-size:11px;font-weight:700;padding:1px 7px;border-radius:5px;background:var(--surface-3);color:var(--ink-2)}.cand .lowconf-tag{position:absolute;right:12px;bottom:10px;font-size:11px;font-weight:700;color:var(--warn-tx)}.drgcard{background:linear-gradient(135deg,#0d3f8f,#1e6ef2 60%,#5ea0f7);border-radius:12px;padding:22px 24px;color:#fff}.drgcard .code{font-family:Consolas,ui-monospace,monospace;font-size:40px;font-weight:700;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}.drgcard .\!code{font-family:Consolas,ui-monospace,monospace!important;font-size:40px!important;font-weight:700!important;letter-spacing:-.02em!important;line-height:1.05!important;font-variant-numeric:tabular-nums!important}.drgcard .nm{font-size:16px;font-weight:700;margin-top:6px}.drgcard .sub2{font-size:12.5px;opacity:.9;margin-top:3px}.drgcard .kpi{display:flex;gap:26px;margin-top:18px;flex-wrap:wrap}.drgcard .kpi .l{font-size:11.5px;opacity:.82}.drgcard .kpi .v{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.drgcard .kpi .\!v{font-size:19px!important;font-weight:700!important;font-variant-numeric:tabular-nums!important}.drgcard .why{margin-top:16px;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:8px;background:#ffffff2e;border:1px solid rgba(255,255,255,.32);font-size:12.5px;font-weight:600;color:#fff;cursor:pointer}.drgcard .why:hover{background:#ffffff42}.drgcard .badge-grp{font-size:11.5px;padding:3px 10px;border-radius:99px;background:#fff3;border:1px solid rgba(255,255,255,.35);font-weight:600;white-space:nowrap}.steps5{border:1px solid var(--line);border-radius:10px;background:var(--surface-1);padding:4px 0}.steps5 .st-row{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:12.5px}.steps5 .st-row:last-child{border-bottom:none}.steps5 .st-row.fail{background:var(--danger-bg)}.steps5 .n{width:22px;height:22px;flex:none;border-radius:6px;background:var(--brand-50);color:var(--brand-600);font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}.steps5 .\!n{width:22px!important;height:22px!important;flex:none!important;border-radius:6px!important;background:var(--brand-50)!important;color:var(--brand-600)!important;font-size:11.5px!important;font-weight:700!important;display:flex!important;align-items:center!important;justify-content:center!important}.steps5 .st-row.fail .n{background:var(--danger);color:#fff}.steps5 .st-row.fail .\!n{background:var(--danger)!important;color:#fff!important}.steps5 .bd{flex:1;min-width:0}.steps5 .bd .t{font-size:13px;font-weight:700}.steps5 .bd .d{color:var(--ink-2);margin-top:2px;line-height:1.6}.steps5 .bd .\!d{color:var(--ink-2)!important;margin-top:2px!important;line-height:1.6!important}.steps5 .chip{display:inline-block;margin-top:6px;font-family:Consolas,ui-monospace,monospace;font-size:11.5px;background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:2px 7px;color:var(--brand-600)}.diff{display:grid;grid-template-columns:1fr 34px 1fr;align-items:center;gap:10px;font-size:13px}.diff .from,.diff .to{border:1px solid var(--line);border-radius:9px;padding:11px 13px;background:var(--surface-1)}.diff .from{border-color:#f3c9c9;background:snow}.diff .to{border-color:#c9ebdc;background:#fbfffd}.diff .ar{text-align:center;color:var(--ink-3);font-weight:700}.diff .cd{font-family:Consolas,ui-monospace,monospace;font-weight:700;font-size:14px}.diff-cap{font-size:11.5px;font-weight:700;margin-bottom:4px}.diff-cap.from{color:var(--danger-tx)}.diff-cap.to{color:var(--ok-tx)}.upgrade-warn{margin-top:14px;padding:12px 14px;border:1px solid #c9ebdc;border-radius:10px;background:#fbfffd}.upgrade-warn .h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;font-weight:700;color:var(--ok-tx)}.upgrade-warn .h .old{font-family:Consolas,ui-monospace,monospace;font-size:14px;color:var(--danger-tx);text-decoration:line-through}.upgrade-warn .h .new{font-family:Consolas,ui-monospace,monospace;font-size:14px;color:var(--ok-tx)}.upgrade-warn .h .btn{margin-left:auto}.upgrade-warn .d{font-size:12px;color:var(--ink-2);margin-top:7px;line-height:1.65}.upgrade-warn .\!d{font-size:12px!important;color:var(--ink-2)!important;margin-top:7px!important;line-height:1.65!important}.upload-zone{border:2px dashed var(--border-dashed);border-radius:12px;background:var(--surface-hover);padding:32px 20px;min-height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.upload-zone:hover{border-color:var(--brand-400);transform:translateY(-1px)}.upload-zone.drag{border-color:var(--brand-500);background:var(--brand-50);transform:translateY(-2px)}.upload-zone .um{font-size:15px;font-weight:700}.upload-zone .uh{font-size:12.5px;color:var(--ink-2);line-height:1.7}.upload-zone.disabled{opacity:.55;cursor:not-allowed}.upload-zone.\!disabled{opacity:.55!important;cursor:not-allowed!important}.file-card{border:1px solid var(--line);border-radius:10px;background:var(--surface-1);padding:12px 14px;margin-bottom:10px;position:relative;overflow:hidden}.file-card.warnc{border-color:var(--track-warn);background:#fffdf8}.file-card .fin{display:flex;align-items:center;gap:12px}.fi{width:40px;height:40px;border-radius:9px;flex:none;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.fi.pdf,.fi.docx,.fi.doc{background:var(--info-bg);color:var(--info-tx)}.fi.jpg,.fi.jpeg,.fi.png,.fi.img{background:var(--warn-bg);color:var(--warn-tx)}.fi.txt{background:var(--surface-3);color:var(--ink-2)}.file-card .fname{font-weight:600;font-size:14px;word-break:break-all}.file-card .fmeta{font-size:12px;color:var(--ink-3);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.file-card.warnc .fmeta{color:var(--warn-tx)}.file-card .fprog{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--track)}.file-card .fprog i{display:block;height:100%;background:var(--brand-500);transition:width var(--dur-4) var(--ease-out)}.ftag.pdf,.ftag.doc{background:var(--info-bg);color:var(--info-tx)}.ftag.img{background:var(--warn-bg);color:var(--warn-tx)}.ftag.txt{background:var(--surface-3);color:var(--ink-2)}.count-line{font-size:12.5px;color:var(--ink-2);margin-top:10px}.count-line.over{color:var(--danger-tx);font-weight:700}.retention-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:13px 0}.retention-row .rt{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.retention-row .rd{font-size:12.5px;color:var(--ink-2);margin-top:4px;line-height:1.6;max-width:62ch}.stream{border:1px solid var(--line);border-radius:10px;background:var(--surface-1);overflow:hidden}.stream .m{padding:11px 15px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;font-size:12.5px}.stream .m:last-child{border-bottom:none}.stream .pt{width:16px;height:16px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff}.stream .m.d .pt{background:var(--ok)}.stream .m.\!d .pt{background:var(--ok)!important}.stream .m.a .pt{background:var(--brand-500)}.stream .m.a{background:var(--surface-hover)}.stream .m.w .pt{background:var(--track)}.stream .m.f .pt{background:var(--danger)}.stream .m.f{background:var(--danger-bg)}.stream .m .sp{margin-left:auto;color:var(--ink-3);font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.progress{flex:1;min-width:180px;height:6px;border-radius:99px;background:var(--track);overflow:hidden}.progress i{display:block;height:100%;border-radius:99px;background:var(--brand-500);transition:width var(--dur-4) var(--ease-out)}.flowbar{display:flex;align-items:center;background:var(--surface-1);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:14px}.flowbar .s{display:flex;align-items:center;gap:9px;flex:none}.flowbar .\!s{display:flex!important;align-items:center!important;gap:9px!important;flex:none!important}.flowbar .dot{width:24px;height:24px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.flowbar .dot.done{background:var(--ok);color:#fff}.flowbar .dot.now{background:var(--brand-50);color:var(--brand-600);box-shadow:var(--ring-now)}.flowbar .dot.next{background:var(--surface-3);color:var(--ink-3)}.flowbar .tx{font-size:13px;font-weight:600;white-space:nowrap}.flowbar .tx.now{color:var(--brand-600)}.flowbar .tx.next{color:var(--ink-3);font-weight:400}.flowbar .ln{flex:1;height:1px;background:var(--line-strong);margin:0 13px;min-width:16px}.\!quota{display:flex!important;align-items:center!important;gap:16px!important;flex-wrap:wrap!important}.quota{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.\!quota .ringwrap{position:relative!important;width:56px!important;height:56px!important;flex:none!important}.quota .ringwrap{position:relative;width:56px;height:56px;flex:none}.\!quota .ringwrap .num{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:12px!important;font-weight:700!important;font-variant-numeric:tabular-nums!important}.quota .ringwrap .num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.\!quota .q1{font-size:13.5px!important;font-weight:700!important}.quota .q1{font-size:13.5px;font-weight:700}.\!quota .q2{font-size:12px!important;color:var(--ink-3)!important;margin-top:2px!important}.quota .q2{font-size:12px;color:var(--ink-3);margin-top:2px}.\!quota.exhausted{border:1px solid #f3c9c9!important;background:snow!important;border-radius:10px!important;padding:16px!important}.quota.exhausted{border:1px solid #f3c9c9;background:snow;border-radius:10px;padding:16px}.disc{border:1px solid var(--track-warn);background:var(--warn-bg);border-radius:10px;padding:12px 15px;font-size:12px;color:var(--warn-tx);line-height:1.7;display:flex;gap:8px;align-items:flex-start}.disc .ic{flex:none;margin-top:1px}.disc b{font-weight:700}.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.admin-tab{padding:8px 17px;border-radius:99px;border:1px solid var(--line);background:var(--surface-1);color:var(--ink-2);font-size:13.5px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.admin-tab:hover{border-color:var(--brand-200);color:var(--brand-600)}.admin-tab.on{border-color:var(--brand-500);background:var(--brand-500);color:#fff}.admin-tab.\!on{border-color:var(--brand-500)!important;background:var(--brand-500)!important;color:#fff!important}.rule-version-card{border:1px solid var(--line);border-radius:12px;background:var(--surface-1);padding:18px 20px}.rule-version-card .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.rule-version-card .t{font-size:15px;font-weight:700}.rule-version-card .meta{font-size:12.5px;color:var(--ink-2);margin-top:7px;line-height:1.7}.kv-row{display:flex;gap:10px;font-size:13px;padding:6px 0;align-items:baseline}.kv-row .k{color:var(--ink-3);flex:none;min-width:84px}.kv-row .v{flex:1;min-width:0}.kv-row .\!v{flex:1!important;min-width:0!important}.info-panel{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:13px 15px}.info-panel .ih{font-size:11px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;margin-bottom:8px}.sidenav{position:sticky;top:76px}.sidenav .sn-item{display:block;width:100%;text-align:left;padding:7px 12px;border-radius:8px;font-size:13px;color:var(--ink-2);background:transparent;border:none;cursor:pointer;border-left:2px solid transparent}.sidenav .sn-item:hover{background:var(--surface-2);color:var(--brand-600)}.sidenav .sn-item.on{color:var(--brand-600);font-weight:600;border-left-color:var(--brand-500);background:var(--brand-50)}.sidenav .sn-item.\!on{color:var(--brand-600)!important;font-weight:600!important;border-left-color:var(--brand-500)!important;background:var(--brand-50)!important}.auth-shell{min-height:100vh;display:flex;background:var(--surface-1)}.auth-brand{width:46%;flex:none;color:#fff;padding:44px 48px;background:linear-gradient(150deg,#0a2a63,#1554c0 52%,#1e6ef2);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-brand .glow{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,#57b3f759,#57b3f700 68%);right:-140px;top:-120px;pointer-events:none}.auth-brand .glow2{position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,#ffffff21,#fff0 70%);left:-120px;bottom:-140px;pointer-events:none}.auth-brand .bz{position:relative;z-index:1}.auth-brand h1{font-size:27px;font-weight:700;letter-spacing:-.01em;margin-bottom:12px;line-height:1.35}.auth-brand .tagline{font-size:15px;line-height:1.75;color:#ffffffe0;max-width:30ch}.auth-brand .badges{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.auth-brand .badge{background:#ffffff29;color:#fff;border-color:#ffffff4d}.auth-brand .feats{display:flex;flex-direction:column;gap:12px;margin-top:34px}.auth-brand .feat{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:#ffffffe6;line-height:1.65}.auth-brand .feat .ico{margin-top:2px;color:#fffffff2}.auth-brand .bfoot{font-size:12px;color:#ffffffa6;line-height:1.7;position:relative;z-index:1}.auth-form{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}.auth-form .wrap{width:100%;max-width:392px}.auth-form .mode-switch{display:flex;gap:6px;margin-bottom:22px}.auth-form .mode-switch button{flex:1;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface-1);color:var(--ink-2);font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.auth-form .mode-switch button.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-600)}.auth-form .mode-switch button.\!on{background:var(--brand-50)!important;border-color:var(--brand-500)!important;color:var(--brand-600)!important}.auth-form h2{font-size:22px;font-weight:700;margin-bottom:6px}.auth-form .dsc{font-size:13px;color:var(--ink-2);margin-bottom:22px;line-height:1.7}.auth-consent{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--ink-2);line-height:1.7;margin:4px 0 16px;cursor:pointer}.auth-consent input{margin:4px 0 0;flex:none;width:15px;height:15px;accent-color:var(--brand-500)}.auth-foot{font-size:12px;color:var(--ink-3);text-align:center;margin-top:20px;line-height:1.7}.report-col,.side-col{min-width:0}.mgmt-conclusion{background:var(--brand-50);border-radius:10px;padding:14px 16px;font-size:13px;color:var(--brand-900);line-height:1.75}.mgmt-conclusion .ch{font-weight:700;margin-bottom:5px;display:flex;align-items:center;gap:7px}.riskstack{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--track)}.riskstack i{display:block;height:100%}.dim{margin-top:12px}.dim .dh{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px;gap:10px}.dim .dh .dn{color:var(--ink-2)}.dim .dh .dv{font-weight:700;font-variant-numeric:tabular-nums}.dim .dbar{position:relative;height:8px;border-radius:99px;background:var(--track)}.dim .dbar i{display:block;height:100%;border-radius:99px}.dim .dbar .anchor{position:absolute;top:-4px;bottom:-4px;width:0;border-left:1.5px dashed var(--ink-3)}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.filter-bar .fb-lb{font-size:12.5px;color:var(--ink-3)}.float-bar{position:sticky;bottom:0;z-index:100;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--surface-1);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-top:16px;box-shadow:0 -4px 16px #1c375a12}.float-bar .hint{font-size:12.5px;color:var(--ink-2)}.float-bar .sp{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.evidence-panel{border:1px solid var(--line);border-radius:10px;background:var(--surface-1);overflow:hidden;position:sticky;top:76px;max-height:calc(100vh - 120px);display:flex;flex-direction:column}.evidence-panel .eh{padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700;background:var(--surface-2)}.evidence-panel .eb{overflow-y:auto;padding:12px 14px}.ev-item{font-size:12px;color:var(--ink-2);line-height:1.75;padding:9px 11px;border-radius:8px;border:1px solid transparent;margin-bottom:8px;cursor:pointer;background:var(--surface-2);transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.ev-item:hover{border-color:var(--line-strong)}.ev-item.on{background:var(--brand-50);border-color:var(--brand-200);color:var(--brand-900)}.ev-item.\!on{background:var(--brand-50)!important;border-color:var(--brand-200)!important;color:var(--brand-900)!important}.ev-item .src-line{font-size:11px;color:var(--ink-3);margin-bottom:4px;font-weight:700}.drawer-mask.closing{animation:maskOut .17s var(--ease-in-out) forwards}.drawer.closing{animation:drawerOut .17s var(--ease-in-out) forwards}@keyframes drawerIn{0%{transform:translate(28px);opacity:0}to{transform:none;opacity:1}}@keyframes drawerOut{0%{transform:none;opacity:1}to{transform:translate(20px);opacity:0}}.drawer .dh{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.chat-box{height:400px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}.chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.bubble{max-width:88%;border-radius:10px;padding:10px 13px;font-size:13px;line-height:1.7;animation:riseIn var(--dur-3) var(--ease-out) backwards}.bubble.me{align-self:flex-end;background:var(--brand-500);color:#fff;border-bottom-right-radius:3px}.bubble.bot{align-self:flex-start;background:var(--surface-1);border:1px solid var(--line);border-bottom-left-radius:3px}.bubble.bot.refused{border-color:var(--danger);background:snow}.bubble .bmeta{font-size:11px;color:var(--ink-3);margin-top:7px}.bubble.bot p{margin:0 0 6px}.bubble.bot p:last-child{margin-bottom:0}.bubble.bot ul{margin:4px 0 6px;padding-left:18px}.bubble.bot li{margin-bottom:3px}.chat-scope{font-size:12px;color:var(--ink-3);line-height:1.7;margin-bottom:10px}.chat-input{display:flex;gap:9px;padding:11px;border-top:1px solid var(--line);background:var(--surface-1)}.chat-foot{font-size:11px;color:var(--ink-3);padding:7px 12px 10px;background:var(--surface-1);border-top:1px solid var(--line)}.legal-grid{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:start}.legal-body{max-width:760px;font-size:14px;line-height:1.9}.legal-body h2{font-size:19px;font-weight:700;margin:32px 0 12px;scroll-margin-top:76px}.legal-body h2:first-child{margin-top:0}.legal-body p{margin:0 0 12px}.legal-body ul{margin:0 0 12px;padding-left:22px}.legal-body li{margin-bottom:6px}.legal-ver{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:4px 13px;margin-bottom:20px}.edu-list{margin-top:12px}.edu-item{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;padding:6px 0;border-bottom:1px dashed var(--line)}.edu-item:last-child{border-bottom:none}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mono{font-family:Consolas,ui-monospace,monospace}.ink2{color:var(--ink-2)}.ink3{color:var(--ink-3)}.f12{font-size:12px;line-height:1.7}.f12-5{font-size:12.5px;line-height:1.7}.f13{font-size:13px;line-height:1.7}.f11-5{font-size:11.5px;line-height:1.55}.mt9{margin-top:9px}.mt12{margin-top:12px}.mt14{margin-top:14px}.mt16{margin-top:16px}.mt18{margin-top:18px}.mb0{margin-bottom:0}.grow{flex:1;min-width:0}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-2) 37%,var(--surface-3) 63%);background-size:400% 100%;animation:sk 1.5s var(--ease-in-out) infinite;border-radius:6px}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.page-enter{animation:pageIn var(--page-enter) var(--ease-out)}.page-enter>*:not(.float-bar){animation:riseIn var(--dur-3) var(--ease-out) backwards}.page-enter>*:nth-child(2){animation-delay:30ms}.page-enter>*:nth-child(3){animation-delay:60ms}.page-enter>*:nth-child(4){animation-delay:90ms}.page-enter>*:nth-child(5){animation-delay:.12s}.page-enter>*:nth-child(n+6){animation-delay:.15s}@keyframes pageIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.rise-list>*{animation:riseIn var(--dur-3) var(--ease-out) backwards}.rise-list>*:nth-child(2){animation-delay:24ms}.rise-list>*:nth-child(3){animation-delay:48ms}.rise-list>*:nth-child(4){animation-delay:72ms}.rise-list>*:nth-child(n+5){animation-delay:96ms}.topbar{transition:box-shadow var(--dur-3) var(--ease-out)}.topbar.scrolled{box-shadow:0 1px 0 var(--line),0 4px 14px #1c375a12}.ring{animation:ringPop var(--dur-3) var(--ease-spring) backwards}@keyframes ringPop{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}.stream .m.a .pt,.flowbar .dot.now{animation:pulseDot 1.6s var(--ease-in-out) infinite}@keyframes pulseDot{0%,to{box-shadow:0 0 #1e6ef252}50%{box-shadow:0 0 0 6px #1e6ef200}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.break-all{word-break:break-all}.border{border-width:1px}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--brand-50: #eaf2ff;--brand-100: #d3e4ff;--brand-200: #a8c8ff;--brand-400: #4b8cf5;--brand-500: #1e6ef2;--brand-600: #1554c0;--brand-900: #0a2a63;--brand-grad-light: #57b3f7;--brand-grad-deep: #0d3f8f;--chart-1: #1e6ef2;--chart-2: #0e9aa7;--chart-3: #5b8def;--chart-4: #7c6bd6;--chart-5: #e8862b;--chart-6: #64748b;--ok: #0f9d6e;--ok-bg: #e6f6f0;--ok-tx: #0c7253;--warn: #e8862b;--warn-bg: #fdf2e5;--warn-tx: #9a5b13;--danger: #d64545;--danger-bg: #fdeeec;--danger-tx: #a33030;--info: #1e6ef2;--info-bg: #e8f1ff;--info-tx: #1554c0;--ink: #1c2733;--ink-2: #5a6b7d;--ink-3: #64748b;--line: #e4eaf2;--line-strong: #ccd8e6;--surface-1: #ffffff;--surface-2: #f7f9fc;--surface-3: #eef2f7;--surface-hover: #fafcff;--track: #edf1f7;--track-warn: #f3d9b0;--border-dashed: #c7d7ee;--switch-off: #cdd6e0;--toast-bg: #25354a;--bg: #f3f6fb;--shadow: 0 2px 10px rgba(28, 55, 90, .07);--shadow-item: 0 2px 8px rgba(30, 110, 242, .08);--shadow-modal: 0 20px 60px rgba(5, 25, 60, .35);--shadow-toast: 0 6px 20px rgba(0, 0, 0, .25);--ring-now: 0 0 0 4px rgba(30, 110, 242, .13);--nav-w: 216px;--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.22, .64, 1);--dur-1: .12s;--dur-2: .18s;--dur-3: .26s;--dur-4: .42s;--dur-5: .9s;--page-enter: .24s}@media (max-width: 1199px){.report-grid{grid-template-columns:1fr}.report-grid .side-col{order:-1}.admin-2col{grid-template-columns:1fr}.sidenav{position:static}}@media (max-width: 1039px){.content{padding:16px}.ws-grid,.confirm-grid,.form-2col,.dim-2col{grid-template-columns:1fr}.sidebar{width:64px;padding:16px 8px 20px}.sidebar .nav-item span,.sidebar .overview,.sidebar .nav-sep{display:none}.sidebar .nav-item{justify-content:center;padding:10px 0}.auth-shell{flex-direction:column}.auth-brand{width:100%;height:120px;padding:20px 24px;justify-content:center}.auth-brand .feats,.auth-brand .bfoot,.auth-brand .glow2{display:none}.auth-brand h1{font-size:20px;margin-bottom:4px}.auth-brand .tagline{font-size:13px}.auth-brand .badges{margin-top:10px}.legal-grid{grid-template-columns:1fr;gap:14px}.legal-nav{display:none}.drawer{width:100%}.evidence-panel{position:static;max-height:340px}}@media (max-width: 767px){.topbar{padding:0 12px;gap:8px}.app-name{font-size:14px}.flowbar .tx{display:none}.flowbar .ln{margin:0 8px}.report-head{padding:22px 20px}.report-head h1{font-size:20px}.drgcard{padding:18px}.drgcard .code{font-size:32px}.drgcard .kpi{gap:16px}.modal.wide{width:100%}.diff{grid-template-columns:1fr}.diff .ar{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
