:root{--accent:#ff5a00;--accent-dark:#e34e00;--accent-soft:#fff3ec;--accent-line:rgba(255,90,0,.18);--black:#0c0d0e;--ink:#1a1c1e;--gray:#6b7177;--gray-soft:#9aa0a6;--bg:#f7f8fa;--surface:#ffffff;--line:rgba(12,13,14,.08);--line-strong:rgba(12,13,14,.13);--soft:rgba(12,13,14,.04);--ok:#16a34a;--ok-soft:#e9f8ef;--warn:#b06f00;--warn-soft:#fbf1dd;--err:#c0392b;--err-soft:#fbeceb;--blue:#1f54c9;--blue-soft:#eaf0fb;--shadow-s:0 1px 2px rgba(12,13,14,.04);--shadow-m:0 1px 3px rgba(12,13,14,.05),0 10px 30px -12px rgba(12,13,14,.14);--shadow-accent:0 1px 2px rgba(255,90,0,.25),0 8px 20px -6px rgba(255,90,0,.42);--r:14px;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;letter-spacing:-.01em}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.i{stroke:currentColor;stroke-width:1.75;fill:none;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.submit-btn svg{width:18px;height:18px;stroke-width:2.2}::selection{background:var(--accent);color:#fff}.layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 14px;z-index:40}.logo{display:flex;align-items:center;gap:11px;padding:8px 10px 22px}.logo-mark{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.logo-img{width:40px;height:40px;object-fit:contain;display:block;border-radius:10px}.logo-text{font-weight:700;font-size:14.5px;letter-spacing:-.02em;line-height:1.15}.logo-text small{display:block;font-weight:450;font-size:11.5px;color:var(--gray-soft);letter-spacing:0}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--gray);transition:.14s ease}.nav-item svg{width:18px;height:18px;color:var(--gray-soft);transition:.14s}.nav-item:hover{background:var(--soft);color:var(--ink)}.nav-item:hover svg{color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.nav-item.active svg{color:var(--accent)}.nav-item .badge{margin-left:auto;font-size:11px;font-weight:600;background:var(--soft);color:var(--gray);padding:2px 8px;border-radius:20px}.nav-sec{margin-top:12px}.nav-sec-head{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:6px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-soft);cursor:pointer;border-radius:7px;transition:.14s;text-align:left}.nav-sec-head:hover{color:var(--gray);background:var(--soft)}.nav-sec-head .dotm{width:15px;height:15px;flex-shrink:0}.nav-sec-head .lbl{flex:1;text-align:left}.nav-sec-head .chev{width:13px;height:13px;flex-shrink:0;transition:transform .2s}.nav-sec.collapsed .chev{transform:rotate(-90deg)}.nav-sec-body{overflow:hidden;max-height:320px;transition:max-height .26s ease;margin-top:2px}.nav-sec.collapsed .nav-sec-body{max-height:0}.nav-bottom{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.user{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;transition:.14s}.user:hover{background:var(--soft)}.avatar{width:32px;height:32px;border-radius:9px;background:linear-gradient(140deg,#1a1c1e,#3a3f44);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;flex-shrink:0}.user-info{min-width:0;flex:1}.user-info b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info span{display:block;font-size:11.5px;color:var(--gray-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{background:none;border:none;color:var(--gray-soft);display:grid;place-items:center;width:30px;height:30px;border-radius:8px;flex-shrink:0;transition:.14s}.logout-btn:hover{background:var(--err-soft);color:var(--err)}.logout-btn svg{width:17px;height:17px}.content{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:14px 32px;background:#f7f8fad1;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line)}.crumbs{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--gray);font-weight:500}.crumbs .cur{color:var(--ink);font-weight:600}.crumbs a:hover{color:var(--ink)}main{padding:30px 32px 64px;max-width:1080px;width:100%}.fade{opacity:0;transform:translateY(8px);animation:enter .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes enter{to{opacity:1;transform:none}}.d1{animation-delay:.05s}.d2{animation-delay:.1s}.d3{animation-delay:.16s}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px;flex-wrap:wrap}h1{font-size:29px;font-weight:800;letter-spacing:-.035em;line-height:1.1}.page-head p{color:var(--gray);font-size:14.5px;margin-top:8px}.btn-primary{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;background:var(--accent);color:#fff;border:none;padding:12px 20px;border-radius:11px;font-size:14px;font-weight:600;box-shadow:var(--shadow-accent);transition:.16s}.btn-primary:hover{background:var(--accent-dark);transform:translateY(-1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary svg{width:18px;height:18px;stroke-width:2.3}.btn-soft{display:inline-flex;align-items:center;gap:7px;padding:11px 16px;border:1px solid var(--line-strong);background:var(--surface);border-radius:11px;font-size:13.5px;font-weight:600;color:var(--ink);transition:.14s;white-space:nowrap}.btn-soft:hover{background:var(--soft)}.btn-soft:disabled{opacity:.55;cursor:not-allowed}.btn-soft svg{width:16px;height:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow-s);transition:.18s}.stat:hover{border-color:var(--line-strong);box-shadow:var(--shadow-m);transform:translateY(-2px)}.stat .h{display:flex;align-items:center;justify-content:space-between;color:var(--gray);font-size:13px;font-weight:500}.stat .h svg{width:17px;height:17px}.stat .v{font-size:27px;font-weight:800;letter-spacing:-.03em;margin-top:11px}.list-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.list-bar h2{font-size:16px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.list-bar h2 .count{font-size:12px;font-weight:600;color:var(--gray);background:var(--soft);padding:2px 9px;border-radius:20px}.list-bar a{font-size:13px;font-weight:600;color:var(--accent-dark)}.list-bar a:hover{text-decoration:underline}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden}.row{display:flex;align-items:center;gap:15px;padding:15px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s;position:relative}.row:last-child{border-bottom:none}.row:hover{background:#fafbfc}.row-doc{width:42px;height:42px;border-radius:10px;flex-shrink:0;background:linear-gradient(150deg,#fff1ea,#ffe2d3);color:var(--accent-dark);border:1px solid var(--accent-line);display:grid;place-items:center;transition:.16s}.row-doc.blue{background:var(--blue-soft);color:var(--blue);border-color:#1f54c92e}.row-doc svg{width:20px;height:20px}.row-main{flex:1;min-width:0}.row-name{font-weight:600;font-size:14.5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta{font-size:12.5px;color:var(--gray-soft);margin-top:3px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.row-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--line-strong)}.row-go{color:var(--gray-soft);display:flex;flex-shrink:0;transition:.16s}.row:hover .row-go{color:var(--accent);transform:translate(2px)}.row-go svg{width:18px;height:18px}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:8px;flex-shrink:0;white-space:nowrap}.status .d{width:6px;height:6px;border-radius:50%;background:currentColor}.status--ok{background:var(--ok-soft);color:var(--ok)}.status--warn{background:var(--warn-soft);color:var(--warn)}.status--err{background:var(--err-soft);color:var(--err)}.status--info{background:var(--blue-soft);color:var(--blue)}.hello{margin-bottom:24px}.hello h1{font-size:29px;font-weight:800;letter-spacing:-.035em}.hello p{color:var(--gray);font-size:14.5px;margin-top:7px}.modules{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}.module{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow-s);transition:.2s ease;overflow:hidden}.module:after{content:"";position:absolute;right:-44px;top:-44px;width:150px;height:150px;border-radius:50%;opacity:.06;transition:.2s}.module.m-check:after{background:var(--blue)}.module.m-gen:after{background:var(--accent)}.module:hover{transform:translateY(-3px);box-shadow:var(--shadow-m);border-color:var(--line-strong)}.module-ic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;margin-bottom:16px}.module-ic svg{width:25px;height:25px}.m-check .module-ic{background:var(--blue-soft);color:var(--blue)}.m-gen .module-ic{background:var(--accent-soft);color:var(--accent-dark)}.module h3{font-size:18px;font-weight:800;letter-spacing:-.03em}.module>p{color:var(--gray);font-size:13.5px;margin-top:7px;line-height:1.5}.module-stat{display:flex;align-items:center;gap:9px;margin:18px 0;padding:11px 13px;background:var(--soft);border-radius:11px;font-size:12.5px;color:var(--gray)}.module-stat svg{width:16px;height:16px;flex-shrink:0;color:var(--gray-soft)}.module-stat b{color:var(--ink);font-weight:700}.module-foot{display:flex;align-items:center;gap:8px}.module-foot .btn-primary{flex:1;justify-content:center}.duo{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line)}.panel-head b{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:8px}.panel-head b svg{width:16px;height:16px;color:var(--gray-soft)}.panel-head a{font-size:12.5px;color:var(--accent-dark);font-weight:600}.prow{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}.prow:last-child{border-bottom:none}.prow:hover{background:#fafbfc}.prow-ic{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:grid;place-items:center}.prow-ic.c{background:var(--blue-soft);color:var(--blue)}.prow-ic.g{background:linear-gradient(150deg,#fff1ea,#ffe2d3);color:var(--accent-dark);border:1px solid var(--accent-line)}.prow-ic svg{width:18px;height:18px}.prow-main{flex:1;min-width:0}.prow-name{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prow-meta{font-size:11.5px;color:var(--gray-soft);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);padding:24px}.card+.card{margin-top:18px}.card h3{font-size:16px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}.card .sub{color:var(--gray);font-size:13px;margin-bottom:18px}.field{display:block;margin-bottom:18px}.field-label{display:block;font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:7px}.field-input,textarea.field-input{width:100%;font-size:14px;color:var(--ink);padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--bg);transition:.16s}textarea.field-input{resize:vertical;min-height:160px;line-height:1.6}.field-input:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px #ff5a001a}.field-input::placeholder{color:var(--gray-soft)}.dropzone{border:1.6px dashed var(--line-strong);border-radius:14px;padding:34px 20px;text-align:center;background:var(--bg);transition:.16s;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}.dropzone .dz-ic{width:50px;height:50px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 14px;color:var(--accent-dark)}.dropzone .dz-ic svg{width:24px;height:24px}.dropzone b{font-size:14px;font-weight:600}.dropzone p{color:var(--gray-soft);font-size:12.5px;margin-top:5px}.file-pill{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:11px;font-size:13px;font-weight:600;color:var(--accent-dark)}.file-pill svg{width:17px;height:17px;flex-shrink:0}.file-pill .x{margin-left:auto;color:var(--gray);background:none;border:none;display:grid;place-items:center;width:24px;height:24px;border-radius:6px}.file-pill .x:hover{background:#0000000f;color:var(--err)}.model-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.model-opt{position:relative;text-align:left;border:1.6px solid var(--line);background:var(--bg);border-radius:12px;padding:14px 16px;transition:.16s;cursor:pointer;display:flex;gap:12px;align-items:flex-start}.model-opt:hover{border-color:var(--line-strong);background:#fff}.model-opt.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px #ff5a0014}.model-opt .m-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);flex-shrink:0;margin-top:1px;display:grid;place-items:center;transition:.16s}.model-opt.active .m-radio{border-color:var(--accent)}.model-opt.active .m-radio:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent)}.model-opt .m-name{font-size:14px;font-weight:700;letter-spacing:-.01em}.model-opt .m-desc{font-size:12px;color:var(--gray);margin-top:3px;line-height:1.4}@media(max-width:620px){.model-grid{grid-template-columns:1fr}}.progress-wrap{height:8px;background:var(--soft);border-radius:20px;overflow:hidden;margin:14px 0}.progress-bar{height:100%;background:var(--accent);border-radius:20px;transition:width .4s ease}.stage-text{font-size:13px;color:var(--gray);display:flex;align-items:center;gap:9px}.score-ring{display:grid;place-items:center;width:128px;height:128px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p,0)*1%),var(--soft) 0);position:relative}.score-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--surface)}.score-ring .val{position:relative;z-index:1;font-size:34px;font-weight:800;letter-spacing:-.03em}.score-ring .val small{display:block;font-size:11px;font-weight:600;color:var(--gray-soft);letter-spacing:0}.finding{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;background:var(--surface)}.finding.fail{border-left:3px solid var(--err)}.finding.warn{border-left:3px solid var(--warn)}.finding.pass{border-left:3px solid var(--ok)}.finding .ftop{display:flex;align-items:center;gap:10px;margin-bottom:6px}.finding .ftop b{font-size:13.5px;font-weight:700}.finding .msg{font-size:13px;color:var(--ink)}.finding .rec{font-size:12.5px;color:var(--gray);margin-top:7px;padding-top:7px;border-top:1px dashed var(--line)}.empty{text-align:center;padding:60px 20px;color:var(--gray-soft)}.empty .e-ic{width:56px;height:56px;border-radius:16px;background:var(--soft);display:grid;place-items:center;margin:0 auto 16px;color:var(--gray-soft)}.empty .e-ic svg{width:26px;height:26px}.empty b{display:block;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:6px}.spinner{width:34px;height:34px;border:3px solid var(--soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}.spinner.sm{width:18px;height:18px;border-width:2px;margin:0}.center-load{display:grid;place-items:center;padding:80px 0}.alert{display:flex;align-items:center;gap:9px;background:var(--err-soft);border:1px solid #f3c9c4;color:var(--err);font-size:13px;font-weight:500;padding:11px 13px;border-radius:10px;margin-bottom:16px}.alert svg{width:16px;height:16px;flex-shrink:0}.burger{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:none;border:none;color:var(--ink);flex-shrink:0;transition:.14s}.burger:hover{background:var(--soft)}.burger svg{width:22px;height:22px}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0c0d0e59;z-index:30;opacity:0;pointer-events:none;transition:opacity .28s}.sidebar-overlay.show{opacity:1;pointer-events:auto}@media(max-width:1000px){.layout{grid-template-columns:1fr}aside{position:fixed;left:0;top:0;bottom:0;width:250px;transform:translate(-100%);transition:transform .3s cubic-bezier(.16,1,.3,1);box-shadow:4px 0 24px #0c0d0e1f}aside.open{transform:translate(0)}.sidebar-overlay{display:block}.burger{display:flex}}@media(max-width:880px){.modules,.duo,.stats{grid-template-columns:1fr}}@media(max-width:620px){main,.topbar{padding-left:16px;padding-right:16px}h1{font-size:24px}}.auth-shell{min-height:100vh;display:flex;flex-direction:column}.auth-topbar{padding:12px 24px;border-bottom:1px solid var(--line);background:#ffffffb8;-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px)}.brand{display:inline-flex;align-items:center;gap:11px}.brand-mark{width:34px;height:34px;border-radius:9px;flex-shrink:0;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-s);overflow:hidden}.brand-logo{width:34px;height:34px;object-fit:contain}.brand-text{font-weight:700;font-size:14px;letter-spacing:-.02em;line-height:1.12}.brand-text small{display:block;font-weight:450;font-size:11px;color:var(--gray-soft);letter-spacing:0}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.auth-grid{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-m);overflow:hidden}.form-side{padding:44px 40px}.form-head{margin-bottom:26px}.form-head h2{font-size:22px;font-weight:800;letter-spacing:-.02em}.form-head p{font-size:13.5px;color:var(--gray);margin-top:7px}.auth-field{display:block;margin-bottom:18px}.input-wrap{position:relative}.input-wrap .lead-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--gray-soft);pointer-events:none;display:grid}.input-wrap .lead-ic svg{width:18px;height:18px}.auth-input{width:100%;font-size:14px;color:var(--ink);padding:12px 14px 12px 42px;border:1px solid var(--line);border-radius:11px;background:var(--bg);transition:.16s}.auth-input:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px #ff5a001a}.submit-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--accent);color:#fff;border:none;padding:14px 20px;border-radius:12px;font-size:14.5px;font-weight:700;box-shadow:var(--shadow-accent);transition:.16s}.submit-btn:hover{background:var(--accent-dark);transform:translateY(-1px)}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.page-foot{padding:20px;text-align:center;font-size:12px;color:var(--gray-soft)}.lib .page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px;flex-wrap:wrap}.lib .page-head p{color:var(--gray);font-size:14.5px;margin-top:8px;max-width:580px}.lib .head-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.lib .ghost{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--gray);padding:11px 15px;border:1px solid var(--line);border-radius:11px;background:var(--surface);transition:.14s;white-space:nowrap}.lib .ghost:hover{border-color:var(--line-strong);color:var(--ink)}.lib .ghost svg{width:16px;height:16px}.lib .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}.lib .stats.four{grid-template-columns:repeat(4,1fr)}.lib .stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow-s);transition:.16s}.lib .stat:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:var(--shadow-m)}.lib .stat .h{display:flex;align-items:center;gap:8px;color:var(--gray);font-size:12.5px;font-weight:500}.lib .stat .h svg{width:16px;height:16px;color:var(--gray-soft)}.lib .stat .h .sdot{width:9px;height:9px;border-radius:50%}.lib .stat .v{font-size:25px;font-weight:800;letter-spacing:-.03em;margin-top:9px}.lib .bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}.lib .bar h2{font-size:16px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.lib .bar h2 .count{font-size:12px;font-weight:600;color:var(--gray);background:var(--soft);padding:2px 9px;border-radius:20px}.lib .tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lib .search{display:flex;align-items:center;gap:9px;width:230px;padding:8px 12px;background:var(--soft);border:1px solid transparent;border-radius:10px;transition:.16s}.lib .search:focus-within{background:#fff;border-color:var(--line-strong);box-shadow:0 0 0 4px #ff5a0014}.lib .search svg{width:16px;height:16px;color:var(--gray-soft)}.lib .search input{border:none;background:none;outline:none;font-size:13.5px;width:100%;color:var(--ink);font-family:inherit}.lib .sel{appearance:none;font-family:inherit;font-size:13px;font-weight:500;color:var(--gray);padding:9px 30px 9px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%239aa0a6' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m4 6 3 3 3-3'/%3E%3C/svg%3E") no-repeat right 11px center;cursor:pointer}.lib .sel:focus{outline:none;border-color:var(--accent)}.lib .chips{display:flex;gap:7px;margin-bottom:16px;flex-wrap:wrap}.lib .chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--gray);padding:7px 13px;border-radius:9px;border:1px solid var(--line);background:var(--surface);transition:.14s}.lib .chip:hover{border-color:var(--line-strong);color:var(--ink)}.lib .chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.lib .chip.act{background:var(--accent-soft);color:var(--accent-dark);border-color:var(--accent-line)}.lib .chip.act svg{color:var(--accent)}.lib .chip .c{font-size:11px;font-weight:700;opacity:.7}.lib .chip svg{width:14px;height:14px}.lib .list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden}.lib .row{display:flex;align-items:center;gap:15px;padding:15px 20px;border-bottom:1px solid var(--line);transition:background .12s;position:relative}.lib .row:last-child{border-bottom:none}.lib .row:hover{background:#fafbfc}.lib .row-doc{width:44px;height:44px;border-radius:11px;flex-shrink:0;background:linear-gradient(150deg,#fff1ea,#ffe2d3);color:var(--accent-dark);border:1px solid var(--accent-line);display:grid;place-items:center;transition:.16s}.lib .row:hover .row-doc{transform:scale(1.05)}.lib .row-doc svg{width:20px;height:20px}.lib .row-main{flex:1;min-width:0}.lib .row-name{font-weight:600;font-size:14.5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib .row-meta{font-size:12.5px;color:var(--gray-soft);margin-top:4px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.lib .row-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--line-strong)}.lib .row-meta .file{color:var(--gray);font-weight:500}.lib .mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:7px}.lib .mode svg{width:13px;height:13px}.lib .mode--auto{background:var(--blue-soft);color:var(--blue)}.lib .mode--manual{background:var(--warn-soft);color:var(--warn)}.lib .status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:8px;flex-shrink:0;white-space:nowrap}.lib .status .d{width:6px;height:6px;border-radius:50%;background:currentColor}.lib .status--ready{background:var(--ok-soft);color:var(--ok)}.lib .status--empty{background:var(--warn-soft);color:var(--warn)}.lib .row-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.lib .btn-open{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:9px 15px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:.14s;white-space:nowrap}.lib .btn-open:hover{border-color:var(--accent);color:var(--accent-dark);background:var(--accent-soft)}.lib .btn-open svg{width:16px;height:16px}.lib .icon-btn{background:var(--soft);border:none;color:var(--gray);width:36px;height:36px;border-radius:9px;display:grid;place-items:center;transition:.14s}.lib .icon-btn:hover{background:var(--line);color:var(--ink)}.lib .icon-btn.del:hover{background:var(--err-soft);color:var(--err)}.lib .icon-btn svg{width:16px;height:16px}.lib .empty{padding:60px 20px;text-align:center;color:var(--gray-soft)}.lib .empty svg{width:40px;height:40px;opacity:.5}.lib .empty p{margin-top:12px;font-size:14px;font-weight:600;color:var(--gray)}.lib .empty span{font-size:12.5px}.lib .loading{display:grid;place-items:center;padding:70px 0}.lib .pager{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px;flex-wrap:wrap}.lib .pager-info{font-size:13px;color:var(--gray)}.lib .pager-info b{color:var(--ink);font-weight:600}.lib .pager-ctrl{display:flex;gap:5px}.lib .pg{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0 6px;border:1px solid var(--line);background:var(--surface);border-radius:9px;font-size:13px;font-weight:600;color:var(--gray);transition:.14s}.lib .pg:hover:not(:disabled):not(.cur){border-color:var(--line-strong);color:var(--ink)}.lib .pg.cur{background:var(--accent);border-color:var(--accent);color:#fff}.lib .pg:disabled{opacity:.4;cursor:default}.lib .pg svg{width:16px;height:16px}.lib .pg-dots{padding:0 4px;color:var(--gray-soft)}.lib .mc-list{display:flex;flex-direction:column;gap:12px}.lib .mc-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow-s);transition:.16s;position:relative;overflow:hidden}.lib .mc-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-m)}.lib .mc-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--st-color,transparent)}.lib .mc-top{display:flex;align-items:flex-start;gap:14px}.lib .mc-fic{width:42px;height:42px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}.lib .mc-fic svg{width:20px;height:20px}.lib .mc-main{flex:1;min-width:0}.lib .mc-title{font-weight:650;font-size:14.5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib .mc-meta{font-size:12.5px;color:var(--gray-soft);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib .badges{display:flex;gap:7px;flex-shrink:0;align-items:center;flex-wrap:wrap;justify-content:flex-end}.lib .pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:20px;white-space:nowrap}.lib .pill--done{background:var(--ok-soft);color:var(--ok)}.lib .pill--run{background:var(--blue-soft);color:var(--blue)}.lib .pill--queue{background:var(--warn-soft);color:var(--warn)}.lib .pill--err{background:var(--err-soft);color:var(--err)}.lib .pill--crit{background:#fbe9e7;color:#d6453a}.lib .mc-body{display:flex;align-items:center;gap:22px;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.lib .facts{display:flex;gap:26px;flex:1;flex-wrap:wrap}.lib .fact .k{font-size:11px;color:var(--gray-soft);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.lib .fact .v{font-size:13.5px;font-weight:600;margin-top:3px}.lib .ring-wrap{display:flex;align-items:center;gap:11px;flex-shrink:0}.lib .ring{width:50px;height:50px;flex-shrink:0}.lib .ring text{font-weight:800;font-size:13px}.lib .ring-lbl{font-size:11px;color:var(--gray-soft);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.lib .ring-lbl b{display:block;font-size:13.5px;color:var(--ink);text-transform:none;letter-spacing:0;margin-top:2px}.lib .prog{flex:1;min-width:0}.lib .prog-top{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;margin-bottom:7px}.lib .prog-top .stage{color:var(--gray);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:12px}.lib .prog-top .pct{font-weight:700;flex-shrink:0}.lib .pbar{height:7px;border-radius:20px;background:var(--soft);overflow:hidden}.lib .pbar i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--blue),#5b8def);transition:width .4s}.lib .pbar.q i{background:linear-gradient(90deg,var(--warn),#d8a23a)}.lib .banner{display:flex;align-items:center;gap:9px;margin-top:13px;padding:10px 13px;background:var(--err-soft);border:1px solid rgba(192,57,43,.18);border-radius:10px;font-size:12.5px;color:var(--err);font-weight:500}.lib .banner svg{width:16px;height:16px;flex-shrink:0}.lib .mc-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lib .act{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:9px 15px;border-radius:10px;border:none;transition:.14s;white-space:nowrap}.lib .act-prime{background:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}.lib .act-prime:hover{background:var(--accent-dark)}.lib .act-prime svg{width:16px;height:16px}.lib .act-del{background:var(--soft);color:var(--gray);width:38px;height:38px;justify-content:center;padding:0}.lib .act-del:hover{background:var(--err-soft);color:var(--err)}.lib .act-del:disabled{opacity:.4;cursor:not-allowed}.lib .act-del svg{width:17px;height:17px}.lib .zone{position:relative;border:1.5px dashed var(--line-strong);border-radius:var(--r);padding:22px 24px;display:flex;align-items:center;gap:20px;background:var(--surface);margin-bottom:30px;transition:.2s ease;overflow:hidden;cursor:pointer}.lib .zone:hover,.lib .zone.drag{border-color:var(--accent);background:var(--accent-soft)}.lib .zone-mark{width:52px;height:52px;border-radius:14px;flex-shrink:0;background:#fff;border:1px solid var(--line);color:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-s)}.lib .zone-mark svg{width:25px;height:25px}.lib .zone-body{flex:1;min-width:0}.lib .zone-body b{font-size:15px;font-weight:650;letter-spacing:-.02em}.lib .zone-body p{font-size:13px;color:var(--gray);margin-top:4px}.lib .list-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}.lib .list-bar h2{font-size:16px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.lib .list-bar h2 .count{font-size:12px;font-weight:600;color:var(--gray);background:var(--soft);padding:2px 9px;border-radius:20px}.lib .row.pick{cursor:pointer}.lib .row.sel{background:var(--accent-soft)}.lib .row.sel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.lib .row-check{width:22px;height:22px;border-radius:7px;border:1.6px solid var(--line-strong);flex-shrink:0;display:grid;place-items:center;background:#fff;transition:.12s}.lib .row-check svg{width:14px;height:14px;color:#fff;opacity:0;transition:.12s}.lib .row.sel .row-check{background:var(--accent);border-color:var(--accent)}.lib .row.sel .row-check svg{opacity:1}.lib .row-open{display:none;align-items:center;gap:7px;flex-shrink:0;background:var(--accent);color:#fff;border:none;padding:9px 15px;border-radius:9px;font-size:13px;font-weight:600;box-shadow:var(--shadow-accent);transition:.16s;white-space:nowrap}.lib .row-open:hover{background:var(--accent-dark)}.lib .row-open svg{width:15px;height:15px;stroke-width:2.2}.lib .row.sel .row-open{display:inline-flex;animation:popIn .22s cubic-bezier(.16,1,.3,1)}.lib .row.sel .status{display:none}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.lib .fav-btn{background:none;border:none;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--gray-soft);flex-shrink:0;transition:.14s}.lib .fav-btn:hover{background:var(--soft);color:#f5a623}.lib .fav-btn.on{color:#f5a623}.lib .fav-btn.on svg{fill:#f5a623}.dock{position:fixed;left:calc(50% + 125px);bottom:26px;transform:translate(-50%,160%);display:flex;align-items:center;gap:14px;z-index:40;background:#0c0d0ef0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;padding:11px 12px 11px 18px;border-radius:16px;box-shadow:0 14px 44px -10px #0c0d0e8c;transition:transform .35s cubic-bezier(.16,1,.3,1);max-width:calc(100vw - 40px)}.dock.show{transform:translate(-50%)}.dock-doc{width:38px;height:38px;border-radius:10px;background:#ffffff1a;display:grid;place-items:center;flex-shrink:0}.dock-doc svg{width:18px;height:18px;color:#ffb486}.dock-text{min-width:0}.dock-text small{display:block;font-size:11px;color:#ffffff8c;font-weight:500}.dock-text b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;display:block}.dock-btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:none;padding:11px 18px;border-radius:11px;font-size:13.5px;font-weight:600;transition:.16s;white-space:nowrap}.dock-btn:hover{background:var(--accent-dark)}.dock-btn svg{width:16px;height:16px;stroke-width:2.2}.dock-close{background:none;border:none;color:#ffffff80;display:flex;padding:7px;border-radius:8px;transition:.14s}.dock-close:hover{background:#ffffff1f;color:#fff}.dock-close svg{width:16px;height:16px}@media(max-width:1000px){.dock{left:50%}}.lib-toast{position:fixed;left:50%;top:20px;transform:translate(-50%,-200%);background:#0c0d0ef0;color:#fff;padding:13px 20px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:0 14px 44px -10px #0c0d0e8c;z-index:60;transition:transform .35s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 40px)}.lib-toast.show{transform:translate(-50%)}.lib-toast svg{width:17px;height:17px;color:#ffb486;flex-shrink:0}.lib .back-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--gray);margin-bottom:14px;transition:.14s;background:none;border:none}.lib .back-link:hover{color:var(--accent-dark)}.lib .back-link svg{width:16px;height:16px}.lib .head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.lib .btn-ghost{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--gray);border:1px solid var(--line);padding:11px 18px;border-radius:11px;font-size:13.5px;font-weight:600;transition:.14s}.lib .btn-ghost:hover{border-color:var(--line-strong);color:var(--ink)}.lib .btn-ghost svg{width:16px;height:16px}.lib .rpanel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden}.lib .rpanel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid rgba(12,13,14,.06)}.lib .rpanel-head h3{font-size:15px;font-weight:700;letter-spacing:-.02em}.lib .rpanel-head span{font-size:12.5px;color:var(--gray-soft);font-weight:500}.lib .analysis-wrap{max-width:840px;margin:0 auto}.lib .center-head{margin-bottom:24px}.lib .prog-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-m);padding:26px 28px}.lib .prog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.lib .prog-title{font-size:17px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}.lib .prog-title .spin{width:18px;height:18px;color:var(--accent);animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lib .prog-sub{font-size:13px;color:var(--gray);margin-top:5px}.lib .prog-percent{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}.lib .prog-bar{height:10px;border-radius:20px;background:var(--soft);overflow:hidden;margin-bottom:26px}.lib .prog-bar i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--accent),#ff8a3d);transition:width .5s cubic-bezier(.16,1,.3,1)}.lib .steps{display:flex;flex-direction:column;gap:2px;position:relative}.lib .step{display:flex;align-items:flex-start;gap:14px;padding:11px 0;position:relative}.lib .step:not(:last-child):before{content:"";position:absolute;left:15px;top:36px;bottom:-2px;width:2px;background:var(--line)}.lib .step.done:not(:last-child):before{background:var(--ok)}.lib .step-icon{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;z-index:1;background:var(--surface);border:2px solid var(--line);transition:.2s}.lib .step-icon svg{width:17px;height:17px}.lib .step.done .step-icon{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.lib .step.current .step-icon{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.lib .step.current .step-icon svg{animation:spin 1.1s linear infinite}.lib .step.pending .step-icon{color:var(--gray-soft)}.lib .step-copy{flex:1;padding-top:5px}.lib .step-title{font-size:14px;font-weight:650;letter-spacing:-.01em;color:var(--ink)}.lib .step.pending .step-title{color:var(--gray-soft);font-weight:500}.lib .step.current .step-title{color:var(--accent-dark)}.lib .step-sub{font-size:12.5px;color:var(--gray);margin-top:3px}.lib .step-badge{margin-left:auto;align-self:center;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:20px;flex-shrink:0}.lib .step.done .step-badge{background:var(--ok-soft);color:var(--ok)}.lib .step.current .step-badge{background:var(--accent-soft);color:var(--accent-dark)}.lib .prog-foot{margin-top:24px;padding-top:18px;border-top:1px solid rgba(12,13,14,.06);display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--gray-soft)}.lib .prog-foot svg{width:16px;height:16px;flex-shrink:0}.lib .done-banner{display:flex;align-items:center;gap:14px;background:var(--ok-soft);border:1px solid #bfe8d0;border-radius:12px;padding:16px 18px;margin-top:20px}.lib .done-banner .db-icon{width:40px;height:40px;border-radius:11px;background:var(--ok);color:#fff;display:grid;place-items:center;flex-shrink:0}.lib .done-banner .db-icon svg{width:22px;height:22px;stroke-width:2.4}.lib .done-banner .db-copy{flex:1}.lib .done-banner .db-copy b{font-size:14.5px;font-weight:700;color:#0c6b44}.lib .done-banner .db-copy span{display:block;font-size:12.5px;color:#157a52;margin-top:2px}.lib .btn-report{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:none;padding:11px 20px;border-radius:11px;font-size:13.5px;font-weight:700;box-shadow:var(--shadow-accent);transition:.16s;white-space:nowrap}.lib .btn-report:hover{background:var(--accent-dark)}.lib .btn-report svg{width:16px;height:16px;stroke-width:2.2}.lib .prog-actions{display:flex;justify-content:center;margin-top:20px}.lib .btn-cancel{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--gray);border:1px solid var(--line);padding:11px 20px;border-radius:11px;font-size:13.5px;font-weight:600;transition:.14s}.lib .btn-cancel:hover{border-color:#f3c9c4;color:#c0392b;background:#fbeceb}.lib .btn-cancel svg{width:16px;height:16px}.lib .report-grid{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}.lib .report-main{display:flex;flex-direction:column;gap:22px;min-width:0}.lib .report-side{display:flex;flex-direction:column;gap:16px}.lib .summary{display:flex;align-items:center;gap:24px;background:linear-gradient(135deg,#ffffff,var(--accent-soft));border:1px solid var(--accent-line);border-radius:var(--r);padding:26px 28px;box-shadow:var(--shadow-m);position:relative;overflow:hidden}.lib .summary:after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,90,0,.12),transparent 70%)}.lib .summary-copy{flex:1;min-width:0;position:relative;z-index:1}.lib .summary-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px}.lib .summary-pill .d{width:6px;height:6px;border-radius:50%;background:currentColor}.lib .summary-pill.crit{background:#fdecea;color:#c0392b;border:1px solid #f3c9c4}.lib .summary-pill.ok{background:var(--ok-soft);color:var(--ok);border:1px solid #bfe8d0}.lib .summary h2{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-top:12px}.lib .summary p{font-size:13.5px;color:var(--gray);margin-top:7px;line-height:1.5;max-width:380px}.lib .summary-score{flex-shrink:0;text-align:center;position:relative;z-index:1}.lib .rscore-ring{position:relative;width:120px;height:120px}.lib .rscore-ring svg{transform:rotate(-90deg)}.lib .rscore-ring .num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;letter-spacing:-.03em}.lib .summary-score-cap{font-size:12px;color:var(--gray-soft);margin-top:8px;font-weight:500}.lib .slide-table{padding:6px}.lib .st-head{display:grid;grid-template-columns:80px 1fr 90px 40px;gap:12px;padding:10px 14px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-soft)}.lib .slide-row{display:grid;grid-template-columns:80px 1fr 90px 40px;gap:12px;align-items:center;width:100%;padding:14px;border:none;background:none;border-radius:10px;cursor:pointer;text-align:left;transition:.14s;font-family:inherit}.lib .slide-row:hover{background:var(--soft)}.lib .sr-num{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700}.lib .sr-thumb{width:40px;height:30px;border-radius:6px;background:linear-gradient(135deg,#eef2f7,#e2e8f1);border:1px solid var(--line);display:grid;place-items:center;color:var(--gray-soft);flex-shrink:0;overflow:hidden}.lib .sr-thumb svg{width:15px;height:15px}.lib .sr-thumb img{width:100%;height:100%;object-fit:cover}.lib .sr-status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:8px;width:fit-content}.lib .sr-status .d{width:6px;height:6px;border-radius:50%;background:currentColor}.lib .sr-status--fail{background:#fdecea;color:#c0392b}.lib .sr-status--warn{background:var(--warn-soft);color:var(--warn)}.lib .sr-status--pass{background:var(--ok-soft);color:var(--ok)}.lib .sr-errors{font-size:14px;font-weight:700;color:var(--ink)}.lib .sr-errors small{font-size:11.5px;color:var(--gray-soft);font-weight:500;margin-left:4px}.lib .sr-chev{color:var(--gray-soft);display:flex;justify-content:flex-end}.lib .sr-chev svg{width:18px;height:18px}.lib .issue-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);padding:16px 18px}.lib .issue-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.lib .issue-title h3{font-size:15px;font-weight:750;letter-spacing:-.02em}.lib .issue-total{font-size:12px;font-weight:700;color:var(--accent-dark);background:var(--accent-soft);border:1px solid var(--accent-line);padding:4px 9px;border-radius:7px;white-space:nowrap}.lib .issue-item{display:grid;grid-template-columns:30px 1fr;gap:11px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(12,13,14,.07)}.lib .issue-item:last-child{border-bottom:none}.lib .issue-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-dark);border:1px solid var(--accent-line)}.lib .issue-icon svg{width:16px;height:16px}.lib .issue-main{min-width:0}.lib .issue-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.lib .issue-name{font-size:13.5px;font-weight:650;color:var(--ink)}.lib .issue-count{font-size:12.5px;font-weight:750;color:var(--gray);font-variant-numeric:tabular-nums}.lib .issue-bar{height:5px;border-radius:20px;background:var(--soft);overflow:hidden;margin-top:7px}.lib .issue-bar i{display:block;height:100%;background:var(--accent);border-radius:20px}.lib .action-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#fff;border:none;padding:12px 18px;border-radius:10px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-accent);transition:.16s}.lib .action-btn:hover{background:var(--accent-dark);transform:translateY(-1px)}.lib .action-btn svg{width:16px;height:16px;stroke-width:2.2}.lib .detail-grid{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}.lib .detail-main{display:flex;flex-direction:column;gap:22px;min-width:0}.lib .detail-side{display:flex;flex-direction:column;gap:22px}.lib .pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:8px}.lib .pill .d{width:6px;height:6px;border-radius:50%;background:currentColor}.lib .pill--fail{background:#fdecea;color:#c0392b}.lib .pill--warn{background:var(--warn-soft);color:var(--warn)}.lib .pill--pass{background:var(--ok-soft);color:var(--ok)}.lib .preview-wrap{padding:18px}.lib .slide-canvas{position:relative;width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#eef2f7;display:flex;align-items:center;justify-content:center;min-height:120px}.lib .slide-imgwrap{position:relative;width:100%;line-height:0}.lib .slide-imgwrap img{display:block;width:100%;height:auto;cursor:zoom-in}.lib .slide-canvas .ph{padding:48px;color:var(--gray-soft)}.lib .slide-canvas .ph svg{width:42px;height:42px;opacity:.4}.lib .overlay{position:absolute;border:2px solid var(--accent);background:#ff5a0024;border-radius:7px;cursor:pointer;transition:.16s}.lib .overlay .lbl{position:absolute;left:-1px;top:-1px;transform:translate(-40%,-40%);width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--accent)}.lib .overlay.dim{opacity:.28}.lib .overlay.hot{box-shadow:0 0 0 3px #ffffff80;z-index:5}.lib .preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.lib .preview-toolbar .hint{font-size:12px;color:var(--gray-soft);line-height:1.4}.lib .findings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid rgba(12,13,14,.06)}.lib .findings-head h3{font-size:15px;font-weight:700}.lib .findings{padding:8px}.lib .det-finding{display:flex;gap:14px;padding:14px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;transition:.16s;cursor:pointer;background:var(--surface)}.lib .det-finding:last-child{margin-bottom:0}.lib .det-finding:hover{border-color:var(--line-strong);background:#fafbfc}.lib .det-finding.hot{border-color:var(--accent);box-shadow:0 0 0 3px #ff5a001a}.lib .f-idx{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:#fff;background:var(--accent)}.lib .f-idx.warn{background:var(--warn)}.lib .f-body{flex:1;min-width:0}.lib .f-cat{font-size:11.5px;color:var(--gray-soft);font-weight:600}.lib .f-title{font-size:14px;font-weight:650;letter-spacing:-.01em;margin-top:7px;line-height:1.35}.lib .f-explain{font-size:13px;color:var(--gray);margin-top:6px;line-height:1.5}.lib .f-refs{font-size:11.5px;color:var(--gray-soft);margin-top:8px;display:inline-flex;align-items:center;gap:6px;background:var(--soft);padding:3px 9px;border-radius:7px}.lib .f-refs svg{width:13px;height:13px}.lib .rec-list{padding:8px 8px 12px}.lib .rec-item{display:flex;gap:11px;padding:11px 12px;border-radius:10px;transition:.14s}.lib .rec-item:hover{background:var(--soft)}.lib .rec-item .ri-ic{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin-top:1px}.lib .rec-item .ri-ic svg{width:14px;height:14px;stroke-width:2.4}.lib .rec-item span.txt{font-size:13px;color:var(--ink);line-height:1.5}.lib .slide-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;box-shadow:var(--shadow-s)}.lib .nav-btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:10px 18px;border-radius:11px;font-size:13.5px;font-weight:600;transition:.14s}.lib .nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-dark)}.lib .nav-btn:disabled{opacity:.4;cursor:not-allowed}.lib .nav-btn svg{width:16px;height:16px}.lib .nav-meta{font-size:13px;font-weight:600;color:var(--gray)}.lib .nav-meta b{color:var(--ink)}.lib .head-meta{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.lib .chip-stat{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:8px;background:var(--accent-soft);color:var(--accent-dark);border:1px solid var(--accent-line)}.lib .chip-stat svg{width:14px;height:14px;color:var(--accent)}.lib .chip-stat--soft{background:var(--soft);color:var(--gray);border-color:var(--line)}.lib .chip-stat--soft svg{color:var(--gray)}.lib .rules-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);overflow:hidden;margin-bottom:22px}.lib .rules-panel .ph2{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid rgba(12,13,14,.06)}.lib .rules-panel .ph2 h3{font-size:16px;font-weight:700;letter-spacing:-.02em}.lib .rules-panel .ph2 small{display:block;font-size:12.5px;color:var(--gray-soft);font-weight:500;margin-top:3px}.lib .panel-body{padding:14px 16px}.lib .group{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden;background:var(--surface)}.lib .group:last-child{margin-bottom:0}.lib .group-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;padding:15px 18px;cursor:pointer;text-align:left;transition:.14s}.lib .group-head:hover{background:var(--soft)}.lib .group-head .gh-copy{flex:1;min-width:0}.lib .group-head .gh-copy span{font-size:14.5px;font-weight:700;letter-spacing:-.01em;display:block}.lib .group-head .gh-copy small{font-size:12.5px;color:var(--gray);font-weight:500}.lib .group-head .g-count{font-size:11.5px;font-weight:600;background:var(--surface);color:var(--gray);border:1px solid var(--line);padding:2px 9px;border-radius:20px;flex-shrink:0}.lib .group-head .chev{width:18px;height:18px;color:var(--gray-soft);transition:transform .22s;flex-shrink:0}.lib .group.open .group-head .chev{transform:rotate(180deg)}.lib .group-body{display:none;padding:4px 12px 12px}.lib .group.open .group-body{display:block}.lib .item{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden;background:var(--surface);transition:border-color .14s}.lib .item:last-child{margin-bottom:0}.lib .item:hover{border-color:var(--line-strong)}.lib .item.open{border-color:var(--accent-line)}.lib .item-sum{display:flex;align-items:flex-start;gap:14px;width:100%;background:none;border:none;padding:14px 16px;cursor:pointer;text-align:left;transition:.14s}.lib .item-sum:hover{background:#fafbfc}.lib .item-main{flex:1;min-width:0}.lib .item-title{font-size:14px;font-weight:650;letter-spacing:-.01em;line-height:1.35}.lib .item-meta{font-size:12px;color:var(--gray-soft);margin-top:4px}.lib .item-chips{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}.lib .rule-chip{font-size:11px;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--accent-soft);color:var(--accent-dark);border:1px solid var(--accent-line)}.lib .item-snippet{font-size:12.5px;color:var(--gray);margin-top:8px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lib .item-sum .chev{width:16px;height:16px;color:var(--gray-soft);flex-shrink:0;transition:transform .22s;margin-top:3px}.lib .item.open .item-sum .chev{transform:rotate(180deg);color:var(--accent)}.lib .item-body{display:none;padding:0 16px 16px;border-top:1px solid rgba(12,13,14,.06)}.lib .item.open .item-body{display:block}.lib .editor{display:grid;grid-template-columns:280px 1fr;gap:18px;padding-top:16px}.lib .editor.single{grid-template-columns:1fr}.lib .preview-card{display:flex;flex-direction:column;gap:10px}.lib .preview-img{width:100%;border-radius:10px;border:1px solid var(--line);background:linear-gradient(135deg,#f0f3f7,#e6ebf2);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:var(--gray-soft);overflow:hidden}.lib .preview-img img{width:100%;height:100%;object-fit:cover}.lib .preview-img svg{width:38px;height:38px;opacity:.45}.lib .fields{display:flex;flex-direction:column;gap:14px}.lib .req-hint{font-size:12px;color:var(--gray);background:var(--soft);padding:9px 12px;border-radius:9px;line-height:1.45}.lib .ed-field{display:flex;flex-direction:column;gap:6px}.lib .ed-label{font-size:12.5px;font-weight:600;color:var(--ink)}.lib .ed-label .req{color:var(--accent)}.lib .ed-input,.lib .ed-textarea,.lib .ed-select{font-family:inherit;font-size:13.5px;color:var(--ink);padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);transition:.14s;width:100%;resize:vertical}.lib .ed-input:focus,.lib .ed-textarea:focus,.lib .ed-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #ff5a0014}.lib .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lib .editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.lib .btn-sm{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:9px;font-size:13px;font-weight:600;box-shadow:var(--shadow-accent);transition:.16s;white-space:nowrap}.lib .btn-sm:hover:not(:disabled){background:var(--accent-dark)}.lib .btn-sm:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.lib .btn-sm svg{width:15px;height:15px;stroke-width:2.2}.lib .item.add-item{border-color:var(--accent-line);background:var(--accent-soft)}.lib .item.add-item .item-title{color:var(--accent-dark)}.lib .item.add-item .chev{color:var(--accent)}.lib .page-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:8px;flex-wrap:wrap}.lib .btn-back{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--gray);border:1px solid var(--line);padding:12px 20px;border-radius:11px;font-size:14px;font-weight:600;transition:.14s}.lib .btn-back:hover{border-color:var(--line-strong);color:var(--ink)}.lib .btn-back svg{width:17px;height:17px}.lib .btn-continue{display:inline-flex;align-items:center;gap:9px;background:var(--accent);color:#fff;border:none;padding:13px 26px;border-radius:11px;font-size:14.5px;font-weight:700;box-shadow:var(--shadow-accent);transition:.16s}.lib .btn-continue:hover{background:var(--accent-dark);transform:translateY(-1px)}.lib .btn-continue svg{width:18px;height:18px;stroke-width:2.2}.lightbox{position:fixed;inset:0;background:#0c0d0ed1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:80;display:flex;align-items:center;justify-content:center;padding:40px;cursor:zoom-out}.lightbox img{max-width:960px;width:100%;border-radius:12px}@media(max-width:960px){.lib .report-grid,.lib .detail-grid{grid-template-columns:1fr}}@media(max-width:760px){.lib .editor,.lib .grid3{grid-template-columns:1fr}}@media(max-width:620px){.lib .summary{flex-direction:column;text-align:center}.lib .st-head{display:none}.lib .slide-row{grid-template-columns:1fr auto;gap:8px}.lib .slide-row .sr-chev{display:none}.lib .slide-nav{flex-direction:column;gap:10px}.lib .nav-btn{width:100%;justify-content:center}.lib .page-actions{flex-direction:column-reverse;align-items:stretch}}@media(max-width:880px){.lib .stats,.lib .stats.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.lib .search{width:100%}}@media(max-width:680px){.lib .stats,.lib .stats.four{grid-template-columns:1fr}.lib .mc-body{flex-direction:column;align-items:stretch;gap:14px}.lib .mc-actions{justify-content:space-between}.lib .zone{flex-direction:column;text-align:center}}
