/* AppSheet Analyzer — BAMFLOW. TỆP SINH TỰ ĐỘNG từ bamflow-vn/appsheet-analyzer/analyzer.src.css
   bằng build-css.mjs; đừng sửa tay. Mọi quy tắc nằm dưới #asa (trừ body.asa-*). */
#asa{--blue:#1d4ed8;--blue-dark:#133c9f;--blue-light:#e8eefc;--green:#15803d;--green-light:#e7f5ec;--red:#b91c1c;--red-light:#fdecec;--yellow:#e6a100;--yellow-light:#fdf5dc;--purple:#7c3aed;--purple-light:#f1ebfd;--cyan:#0e7490;--cyan-light:#e3f4f7;--orange:#ea580c;--orange-light:#fdeee4;--pink:#be185d;--pink-light:#fce8f1;--bg:#f4f6fa;--surface:#fff;--border:#d9dfe7;--border-soft:#e7ebf1;--text:#0b1420;--text2:#42505f;--text3:#5c6a7a;--radius:10px;--shadow:0 1px 2px rgba(11,20,32,.08),0 2px 8px -2px rgba(11,20,32,.08);--shadow-hover:0 2px 4px rgba(11,20,32,.06),0 14px 28px -12px rgba(29,78,216,.22);--asa-top:calc(var(--header-h) + var(--header-offset) + 10px);--asa-bar:52px;--m3-surface:#fbfcfe;--m3-surface-cl:#ffffff;--m3-surface-c1:#f4f6fa;--m3-surface-c2:#eef1f6;--m3-surface-c3:#e7ebf1;--m3-surface-c4:#e1e6ed;--m3-on-surface:#0b1420;--m3-on-surface-var:#42505f;--m3-outline:#7a8696;--m3-outline-var:#d3d9e2;--m3-primary:#1d4ed8;--m3-on-primary:#ffffff;--m3-primary-c:#dbe5fd;--m3-on-primary-c:#0b1d4f;--m3-secondary:#4b5870;--m3-secondary-c:#e3e9f6;--m3-on-secondary-c:#14203a;--m3-error:#b91c1c;--m3-on-error:#ffffff;--m3-error-c:#fde2e1;--m3-on-error-c:#5b0b0b;--m3-warning:#8a5a00;--m3-warning-c:#ffe6bf;--m3-on-warning-c:#2a1800;--m3-success:#15803d;--m3-success-c:#c9f2d4;--m3-on-success-c:#002204;}
#asa{padding-top:var(--asa-top);background:radial-gradient(ellipse 70% 420px at 30% 0%, rgba(29,78,216,.08), transparent 70%),var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;position:relative}
#asa *{margin:0;padding:0;box-sizing:border-box}
#asa .mi{font-family:'Material Symbols Rounded';font-weight:400;font-style:normal;line-height:1;vertical-align:middle;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;-webkit-font-feature-settings:'liga';user-select:none;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr}
#asa .mi.filled{font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}
#asa button{font-family:inherit;color:inherit}
#asa h2,#asa h3,#asa h4{font-family:var(--font-display);text-wrap:balance}
body.asa-app{overflow:hidden}
body.asa-app .footer{display:none}
#asa .asa-bar{position:relative;z-index:30;height:var(--asa-bar);width:100%;max-width:var(--container-max);margin:0 auto;padding-inline:var(--gutter);display:flex;align-items:center;flex-shrink:0}
#asa .asa-bar__in{flex:1;height:44px;display:flex;align-items:center;gap:4px;background:rgba(255,255,255,.82);border:1px solid var(--border-soft);border-radius:14px;padding:0 6px 0 8px;box-shadow:0 1px 2px rgba(11,20,32,.04),0 8px 20px -14px rgba(11,20,32,.18);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px)}
#asa .asa-brand{display:inline-flex;align-items:center;gap:9px;background:transparent;border:none;cursor:pointer;padding:4px 8px 4px 2px;border-radius:10px;height:34px}
#asa .asa-brand__ico{width:28px;height:28px;border-radius:8px;background:linear-gradient(180deg,#1d4ed8,#133c9f);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
#asa .asa-brand__ico .mi{color:#fff;font-size:17px;font-variation-settings:'FILL' 1,'wght' 600,'GRAD' 0,'opsz' 20}
#asa .asa-brand__name{font-family:var(--font-display);font-size:14.5px;font-weight:700;color:var(--text);letter-spacing:-.015em;white-space:nowrap}
#asa .asa-brand__name em{font-style:normal;font-weight:500;color:var(--text3)}
#asa .asa-brand:hover .asa-brand__name{color:var(--blue)}
#asa .asa-tag{font-size:10.5px;font-weight:700;color:var(--green);background:var(--green-light);padding:2px 8px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}
#asa .asa-nav{display:flex;gap:2px;margin-left:10px;padding-left:10px;border-left:1px solid var(--border-soft);height:24px;align-items:center}
#asa .asa-nav button{font-size:13px;font-weight:600;color:var(--text2);background:transparent;border:none;height:32px;padding:0 12px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,color .12s;white-space:nowrap}
#asa .asa-nav button .mi{font-size:17px}
#asa .asa-nav button:hover{background:var(--bg);color:var(--text)}
#asa .asa-nav button.active{background:var(--blue-light);color:var(--blue)}
#asa .asa-nav a.asa-nav__gift{font-size:13px;font-weight:700;color:var(--green);height:32px;padding:0 12px;border-radius:9px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;transition:background .12s}
#asa .asa-nav a.asa-nav__gift .mi{font-size:17px}
#asa .asa-nav a.asa-nav__gift:hover{background:var(--green-light)}
#asa .asa-gift{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px dashed rgba(21,128,61,.45);background:linear-gradient(135deg,#f1faf4,#fff);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;margin-top:2px}
#asa .asa-gift:hover{border-style:solid;border-color:var(--green);box-shadow:0 10px 24px -14px rgba(21,128,61,.5);transform:translateY(-1px)}
#asa .asa-gift__ico{width:38px;height:38px;border-radius:11px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
#asa .asa-gift__ico .mi{font-size:21px;font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 24}
#asa .asa-gift__txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
#asa .asa-gift__txt b{font-size:13.5px;font-weight:700;color:var(--text)}
#asa .asa-gift__txt span{font-size:12.5px;color:var(--text2);line-height:1.45}
#asa .asa-gift__go{flex-shrink:0;font-size:12.5px;font-weight:700;color:var(--green);white-space:nowrap}
#asa .asa-gift__go::after{content:" →"}
#asa .asa-gift--wide{padding:18px 20px;border-radius:18px}
#asa .asa-gift--wide .asa-gift__ico{width:48px;height:48px;border-radius:13px}
#asa .asa-gift--wide .asa-gift__txt b{font-size:16px}
#asa .asa-gift--wide .asa-gift__txt span{font-size:14px}
@media (max-width:560px){#asa .asa-gift__go{display:none}
}
#asa .asa-bar__right{display:inline-flex;align-items:center;gap:2px;margin-left:auto}
#asa .icon-btn{height:34px;width:34px;min-width:34px;padding:0;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s}
#asa .icon-btn.has-label{width:auto;padding:0 10px}
#asa .icon-btn:hover{background:var(--bg);border-color:var(--border-soft);color:var(--text)}
#asa .icon-btn .mi{font-size:18px}
#asa #lang-btn #lang-code{font-size:12px;font-weight:700;letter-spacing:.04em}
@media (max-width:768px){#asa .asa-brand__name{display:none}
#asa .asa-tag{display:none}
#asa .asa-nav{margin-left:4px;padding-left:6px}
#asa .asa-nav button{padding:0 9px}
#asa .icon-btn.has-label .lbl{display:none}
#asa .icon-btn.has-label{width:34px;padding:0}
}
@media (max-width:400px){#asa .asa-nav button .lbl{display:none}
}
#asa .landing{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--asa-top) - var(--asa-bar));padding:28px var(--gutter) 56px;background:radial-gradient(circle at 90% 90%, rgba(29,78,216,.05), transparent 45%)}
#asa .landing-split{display:grid;grid-template-columns:minmax(420px,520px) 1fr;gap:48px;max-width:1100px;width:100%;align-items:center}
@media (max-width:980px){#asa .landing-split{grid-template-columns:1fr;max-width:540px;gap:24px}
#asa .landing-preview{display:none}
}
#asa .landing .card{background:var(--surface);border:1px solid var(--border-soft);border-radius:24px;box-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(11,20,32,.05),0 24px 48px -24px rgba(29,78,216,.28);padding:44px 48px 36px;display:flex;flex-direction:column;align-items:stretch;gap:20px;width:100%}
#asa .landing-preview{position:relative;height:480px}
#asa .lp-window{background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;box-shadow:0 18px 44px -14px rgba(29,78,216,.22),0 4px 12px -4px rgba(11,20,32,.08);overflow:hidden}
#asa .lp-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--border-soft);background:var(--bg)}
#asa .lp-dot{width:9px;height:9px;border-radius:50%;background:var(--border)}
#asa .lp-dot.r{background:#ff5f57}
#asa .lp-dot.y{background:#febc2e}
#asa .lp-dot.g{background:#28c840}
#asa .lp-tabs{display:flex;gap:14px;margin-left:14px;font-size:11px;color:var(--text3);font-weight:600}
#asa .lp-tab.on{color:var(--text)}
#asa .lp-tab.on::after{content:'';display:inline-block;width:14px;height:2px;background:var(--blue);margin-left:4px;border-radius:1px;vertical-align:middle}
#asa .lp-1{position:absolute;left:8%;top:0;width:78%;z-index:3;transform:rotate(-2deg)}
#asa .lp-2{position:absolute;right:-6%;top:36%;width:64%;z-index:2;transform:rotate(3deg)}
#asa .lp-3{position:absolute;left:-4%;bottom:0;width:58%;z-index:1;transform:rotate(-1.5deg)}
#asa .lp-rows{padding:10px}
#asa .lp-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;font-size:11.5px;color:var(--text2)}
#asa .lp-row+.lp-row{margin-top:2px}
#asa .lp-row .mi{font-size:14px;color:var(--text3)}
#asa .lp-row b{font-weight:600;color:var(--text)}
#asa .lp-row .badge{margin-left:auto;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:4px;background:var(--blue-light);color:var(--blue);font-variant-numeric:tabular-nums}
#asa .lp-row .badge.k{background:#fef3d6;color:#9a5b00}
#asa .lp-row.head{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);padding:4px 8px}
#asa .lp-erd{padding:14px;background:#f4f6fa;background-image:radial-gradient(circle,#d3d9e2 1px,transparent 1px);background-size:10px 10px;height:140px;display:flex;align-items:center;justify-content:center}
#asa .lp-erd svg{width:100%;height:100%}
#asa .lp-box{fill:var(--surface);stroke:var(--blue);stroke-width:1.4}
#asa .lp-box-txt{font-family:var(--font-body);font-size:8px;font-weight:700;fill:var(--text)}
#asa .lp-link{stroke:var(--blue);stroke-width:1.2;fill:none;stroke-dasharray:3 3}
#asa .lp-metrics{padding:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
#asa .lp-metric{background:var(--bg);border-radius:10px;padding:8px 10px}
#asa .lp-metric .n{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.018em;font-variant-numeric:tabular-nums;line-height:1.1}
#asa .lp-metric .l{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-top:3px;font-weight:700}
#asa .landing .brand-tag{white-space:nowrap;align-self:center;font-size:11px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.14em;margin-bottom:2px}
#asa .landing .brand-tag::before,#asa .landing .brand-tag::after{content:'';display:inline-block;width:14px;height:1px;background:var(--border);vertical-align:middle;margin:-2px 8px 0}
#asa .landing .trust-row{align-self:center;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text2);background:var(--bg);border:1px solid var(--border-soft);padding:5px 12px 5px 10px;border-radius:100px;text-align:center}
#asa .landing .trust-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(21,128,61,.18);flex-shrink:0}
#asa .landing h1{font-family:var(--font-display);font-size:32px;font-weight:800;color:var(--text);text-align:center;letter-spacing:-.03em;line-height:1.15;margin-top:2px}
#asa .landing .lead{color:var(--text2);font-size:15px;text-align:center;line-height:1.6;max-width:44ch;margin:-8px auto 4px}
@media (max-width:560px){#asa .landing{padding:16px var(--gutter) 40px;align-items:flex-start}
#asa .landing .card{padding:30px 22px 26px;border-radius:20px;gap:16px}
#asa .landing h1{font-size:25px}
#asa .landing .brand-tag{letter-spacing:.1em}
#asa .landing .brand-tag::before,#asa .landing .brand-tag::after{display:none}
#asa .landing .trust-row{font-size:11px;padding:4px 10px 4px 8px}
#asa .landing .lead{font-size:14px}
}
#asa .method{display:flex;flex-direction:column;align-items:stretch;gap:14px;width:100%}
#asa .url-group{display:flex;align-items:center;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:6px 8px 6px 16px;transition:box-shadow .18s,border-color .15s}
#asa .url-group:hover{border-color:#b9c3d0}
#asa .url-group:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.14)}
#asa .url-group .url-ico{color:var(--text3);font-size:20px;flex-shrink:0}
#asa .url-group input{flex:1;border:none;outline:none;font-size:14.5px;font-family:inherit;color:var(--text);background:transparent;padding:12px;min-width:0;line-height:24px}
#asa .url-group input:focus-visible{box-shadow:none}
#asa .url-group input::placeholder{color:var(--text3)}
#asa .url-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%}
#asa .g-btn{font-family:inherit;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(180deg,#1d4ed8 0%,#133c9f 100%);border:1px solid #133c9f;height:48px;padding:0 22px;border-radius:12px;cursor:pointer;transition:all .15s cubic-bezier(.2,0,0,1);display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 20px -8px rgba(29,78,216,.45)}
#asa .g-btn:hover{background:linear-gradient(180deg,#1a46c4 0%,#0f3286 100%);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 12px 26px -8px rgba(29,78,216,.5)}
#asa .g-btn:active{transform:translateY(0)}
#asa .g-btn .mi{font-size:19px}
#asa .g-link{align-self:center;display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text2);background:transparent;border:none;cursor:pointer;padding:6px 10px;border-radius:8px;transition:color .12s,background .12s}
#asa .g-link:hover{color:var(--blue);background:var(--bg)}
#asa .g-link .mi{font-size:17px}
#asa #steps-guide{display:none;padding:20px var(--gutter) 4px;max-width:calc(var(--container-max));margin:0 auto;width:100%}
#asa #steps-guide.show{display:block}
#asa .sg-inner{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow)}
#asa .sg-head{display:flex;align-items:baseline;gap:10px;margin-bottom:16px;flex-wrap:wrap}
#asa .sg-eyebrow{font-size:10.5px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.16em}
#asa .sg-title{font-size:14.5px;font-weight:700;color:var(--text)}
#asa .sg-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:stretch}
#asa .sg-step{display:flex;flex-direction:column;gap:10px;padding:18px 20px;background:var(--bg);border:1px solid var(--border-soft);border-radius:14px;transition:border-color .15s,background .15s}
#asa .sg-step:hover{border-color:var(--border)}
#asa .sg-step.active{background:var(--surface);border-color:var(--blue)}
#asa .sg-step-top{display:flex;align-items:center;gap:10px}
#asa .sg-num{width:24px;height:24px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;flex-shrink:0}
#asa .sg-step.active .sg-num{background:var(--blue);border-color:var(--blue);color:#fff}
#asa .sg-step-label{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
#asa .sg-step h4{font-size:15px;font-weight:700;color:var(--text);line-height:1.3}
#asa .sg-step p{font-size:12.5px;color:var(--text2);line-height:1.55;margin:0}
#asa .sg-step p kbd{background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:4px;font-family:var(--font-mono);font-size:10.5px;color:var(--text)}
#asa .sg-step p code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border-soft);padding:1px 6px;border-radius:4px;font-size:11px;color:var(--text2)}
#asa .sg-step-cta{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-family:inherit;font-size:12.5px;font-weight:700;color:#fff;background:var(--blue);border:1px solid var(--blue);height:34px;padding:0 14px;border-radius:9px;cursor:pointer;transition:all .15s cubic-bezier(.2,0,0,1)}
#asa .sg-step-cta:hover{background:var(--blue-dark);border-color:var(--blue-dark);transform:translateY(-1px);box-shadow:0 3px 10px -2px rgba(29,78,216,.32)}
#asa .sg-step-cta .mi{font-size:15px}
#asa .sg-arrow{display:flex;align-items:center;justify-content:center;color:var(--text3);align-self:center}
#asa .sg-arrow .mi{font-size:18px}
@media (max-width:820px){#asa .sg-steps{grid-template-columns:1fr;gap:10px}
#asa .sg-arrow{display:none}
}
#asa .info-panel{display:none;background:transparent}
#asa .info-panel.show{display:block}
#asa .info-wrap{max-width:1040px;margin:0 auto;padding:44px var(--gutter) 72px}
#asa .info-hero{text-align:center;margin-bottom:44px}
#asa .info-eyebrow{font-size:11px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.16em;margin-bottom:14px;display:block}
#asa .info-title{font-size:clamp(1.7rem,1.2rem + 1.6vw,2.4rem);font-weight:800;color:var(--text);letter-spacing:-.03em;line-height:1.15;margin-bottom:14px;max-width:700px;margin-left:auto;margin-right:auto}
#asa .info-lead{font-size:15.5px;color:var(--text2);line-height:1.6;max-width:62ch;margin:0 auto}
#asa .info-section{margin-bottom:44px}
#asa .info-section-title{font-size:13px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px}
#asa .info-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
#asa .info-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:820px){#asa .info-grid-3,#asa .info-grid-4{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){#asa .info-grid-3,#asa .info-grid-4{grid-template-columns:1fr}
}
#asa .guide-step{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s,transform .15s}
#asa .guide-step:hover{border-color:var(--border);box-shadow:var(--shadow-hover);transform:translateY(-2px)}
#asa .guide-step-num{width:32px;height:32px;border-radius:50%;background:var(--blue-light);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:800}
#asa .guide-step h3{font-size:16px;font-weight:700;color:var(--text);line-height:1.3}
#asa .guide-step p{font-size:13.5px;color:var(--text2);line-height:1.55;margin:0}
#asa .info-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:12px;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
#asa .info-card:hover{border-color:rgba(29,78,216,.35);box-shadow:var(--shadow-hover);transform:translateY(-2px)}
#asa .info-card-ico{width:44px;height:44px;border-radius:12px;background:var(--blue-light);color:var(--blue);display:flex;align-items:center;justify-content:center}
#asa .info-card-ico .mi{font-size:24px;font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24}
#asa .info-card h3{font-size:15.5px;font-weight:700;color:var(--text)}
#asa .info-card p{font-size:13px;color:var(--text2);line-height:1.55;margin:0;flex:1}
#asa .asa-cta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:26px 28px;border-radius:22px;background:linear-gradient(135deg,#1d4ed8 0%,#133c9f 60%,#0a1a5c 100%);color:#fff;box-shadow:0 24px 48px -24px rgba(29,78,216,.55)}
#asa .asa-cta__txt{flex:1;min-width:240px}
#asa .asa-cta h3{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.02em;margin-bottom:6px}
#asa .asa-cta p{font-size:14px;color:rgba(255,255,255,.82);line-height:1.55}
#asa .asa-cta__act{display:flex;gap:10px;flex-wrap:wrap}
#asa .asa-cta__btn{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 18px;border-radius:11px;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;transition:all .15s}
#asa .asa-cta__btn:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
#asa .asa-cta__btn.white{background:#fff;color:#133c9f;border-color:#fff}
#asa .asa-cta__btn.white:hover{background:#eef3ff}
#asa .asa-cta__btn .mi{font-size:18px}
#asa .result{display:none;flex-direction:column;height:calc(100vh - var(--asa-top) - var(--asa-bar) - 12px);height:calc(100dvh - var(--asa-top) - var(--asa-bar) - 12px);margin:0 12px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;overflow:hidden;box-shadow:0 1px 2px rgba(11,20,32,.05),0 18px 40px -26px rgba(11,20,32,.3)}
#asa .result.show{display:flex}
#asa .toolbar{padding:0 12px 0 16px;background:var(--surface);border-bottom:1px solid var(--border-soft);display:flex;align-items:flex-end;flex-shrink:0;height:48px;gap:8px}
#asa .tab-group{display:flex;gap:2px;height:100%;overflow-x:auto;scrollbar-width:none;min-width:0}
#asa .tab-group::-webkit-scrollbar{display:none}
#asa .tb-export{align-self:center;position:relative;flex-shrink:0}
#asa .tb-export-btn{font-family:inherit;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text2);background:transparent;border:1px solid var(--border);height:34px;padding:0 8px 0 12px;border-radius:9px;cursor:pointer;transition:all .15s;white-space:nowrap}
#asa .tb-export-btn:hover{background:var(--bg);color:var(--text)}
#asa .tb-export-btn .mi{font-size:17px}
#asa .tb-export-btn .tb-export-caret{font-size:20px;margin-left:-2px}
#asa .tb-export .menu{position:absolute;top:calc(100% + 4px);right:0;left:auto;bottom:auto;min-width:240px}
@media(max-width:560px){#asa .tb-export-btn span:not(.mi){display:none}
#asa .tb-export-btn{padding:0 6px;width:36px;justify-content:center}
#asa .tb-export-btn .tb-export-caret{display:none}
}
#asa .tab-item{font-size:13.5px;font-weight:600;padding:0 14px;border:none;background:transparent;color:var(--text3);cursor:pointer;transition:color .12s;display:flex;align-items:center;gap:7px;position:relative;height:100%;white-space:nowrap;flex-shrink:0}
#asa .tab-item .mi{font-size:17px;color:var(--text3);transition:color .12s}
#asa .tab-item:hover{color:var(--text)}
#asa .tab-item:hover .mi{color:var(--text2)}
#asa .tab-item.active{color:var(--text)}
#asa .tab-item.active .mi{color:var(--blue)}
#asa .tab-item.active::after{content:'';position:absolute;left:14px;right:14px;bottom:0;height:2px;background:var(--blue);border-radius:2px 2px 0 0}
#asa .spacer{flex:1}
#asa .stat-chips{display:inline-flex;gap:5px;align-items:center;flex-wrap:wrap}
#asa .t-meta{font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums;margin-left:6px;white-space:nowrap}
#asa .t-meta:empty{display:none}
#asa .options-bar{padding:9px 16px;background:var(--surface);border-bottom:1px solid var(--border-soft);display:flex;gap:10px;flex-shrink:0;align-items:center;flex-wrap:wrap}
#asa .opts-wrap{position:relative}
#asa .opts-btn{font-family:inherit;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--text2);background:transparent;border:1px solid var(--border-soft);height:32px;padding:0 12px;border-radius:9px;cursor:pointer;transition:all .12s}
#asa .opts-btn:hover,#asa .opts-btn.open{background:var(--bg);border-color:var(--border);color:var(--text)}
#asa .opts-btn .mi{font-size:16px;color:var(--text3)}
#asa .opts-btn .opts-caret{font-size:18px;transition:transform .15s}
#asa .opts-btn.open .opts-caret{transform:rotate(180deg)}
#asa .opts-count{font-size:11px;font-weight:700;background:var(--blue-light);color:var(--blue);padding:1px 7px;border-radius:10px;font-variant-numeric:tabular-nums}
#asa .opts-popover{display:none;position:absolute;top:38px;left:0;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px -8px rgba(11,20,32,.22),0 2px 6px rgba(11,20,32,.06);padding:6px;z-index:40}
#asa .opts-popover.show{display:block}
#asa .opts-head{display:flex;align-items:center;gap:6px;padding:8px 10px 10px;border-bottom:1px solid var(--border-soft);margin-bottom:4px;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
#asa .opts-link{margin-left:auto;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--blue);background:transparent;border:none;cursor:pointer;padding:2px 6px;border-radius:4px;text-transform:none;letter-spacing:0}
#asa .opts-link:hover{background:var(--blue-light)}
#asa .opts-link+.opts-link{margin-left:2px}
#asa .opt-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--text);transition:background .1s;user-select:none}
#asa .opt-row:hover{background:var(--bg)}
#asa .opt-row input{width:15px;height:15px;accent-color:var(--blue);margin:0;cursor:pointer}
#asa .opt-row-divider{margin-top:4px;padding-top:11px;border-top:1px solid var(--border-soft);border-radius:0 0 6px 6px}
#asa .output-wrap{flex:1;position:relative;overflow:hidden;background:var(--bg)}
#asa #output-area{position:absolute;inset:0;width:100%;height:100%;background:var(--surface);color:var(--text);border:none;padding:22px 26px;font-family:var(--font-mono);font-size:12.5px;line-height:1.7;resize:none;outline:none;white-space:pre-wrap;word-break:break-word}
#asa #output-area:focus-visible{box-shadow:none}
#asa #erd-panel{position:absolute;inset:0;background:#f4f6fa;background-image:radial-gradient(circle,#d3d9e2 1px,transparent 1px);background-size:22px 22px;overflow:auto;display:none}
#asa #erd-panel.show{display:block}
#asa #overview-panel{position:absolute;inset:0;overflow-y:auto;display:none;padding:24px 24px 56px;background:var(--bg)}
#asa #overview-panel.show{display:block}
#asa .app-banner{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;padding:20px 22px;margin-bottom:20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
#asa .app-banner .app-ico{width:48px;height:48px;border-radius:13px;background:linear-gradient(135deg,#3b6ff0,#133c9f);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 14px -4px rgba(29,78,216,.4)}
#asa .app-banner .app-ico .mi{color:#fff;font-size:26px;font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24}
#asa .app-banner .app-name{font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.2}
#asa .app-banner .app-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
#asa .app-tag{font-size:11px;padding:3px 9px;border-radius:7px;background:var(--bg);color:var(--text2);border:1px solid var(--border-soft);display:inline-flex;align-items:center;gap:4px;font-weight:600}
#asa .app-tag .mi{font-size:13px;color:var(--text3)}
#asa .app-tag.status{background:var(--green-light);color:var(--green);border-color:transparent}
#asa .app-tag.status .mi{color:var(--green)}
#asa .app-banner .app-meta{margin-left:auto;text-align:right;font-size:11.5px;color:var(--text3);line-height:1.75;font-variant-numeric:tabular-nums}
#asa .app-banner .app-meta b{color:var(--text2);font-weight:600}
#asa .metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:22px}
#asa .metric-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;padding:14px 16px;transition:border-color .18s,box-shadow .18s;position:relative}
#asa .metric-card:hover{border-color:var(--border);box-shadow:var(--shadow)}
#asa .metric-card .m-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}
#asa .metric-card .m-ico{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
#asa .metric-card .m-ico .mi{font-size:15px}
#asa .metric-card .m-lbl{font-size:12px;color:var(--text3);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#asa .metric-card .m-num{font-family:var(--font-display);font-size:25px;font-weight:800;color:var(--text);line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
#asa .metric-card .m-sub{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.4}
#asa .c-blue .m-ico{background:var(--blue-light)}
#asa .c-blue .m-ico .mi{color:var(--blue)}
#asa .c-green .m-ico{background:var(--green-light)}
#asa .c-green .m-ico .mi{color:var(--green)}
#asa .c-purple .m-ico{background:var(--purple-light)}
#asa .c-purple .m-ico .mi{color:var(--purple)}
#asa .c-orange .m-ico{background:var(--orange-light)}
#asa .c-orange .m-ico .mi{color:var(--orange)}
#asa .c-cyan .m-ico{background:var(--cyan-light)}
#asa .c-cyan .m-ico .mi{color:var(--cyan)}
#asa .c-pink .m-ico{background:var(--pink-light)}
#asa .c-pink .m-ico .mi{color:var(--pink)}
#asa .c-yellow .m-ico{background:var(--yellow-light)}
#asa .c-yellow .m-ico .mi{color:#c2670a}
#asa .c-red .m-ico{background:var(--red-light)}
#asa .c-red .m-ico .mi{color:var(--red)}
#asa .ov-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;overflow:hidden}
#asa .ov-card .ov-head{padding:14px 20px;border-bottom:1px solid var(--border-soft);font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:9px}
#asa .ov-card .ov-head .mi{font-size:18px;color:var(--text3)}
#asa .ov-card .ov-head .count{margin-left:auto;font-size:11.5px;color:var(--text3);font-weight:600;font-variant-numeric:tabular-nums;background:var(--bg);padding:2px 8px;border-radius:6px}
#asa .dtable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;background:var(--surface)}
#asa .dtable th{text-align:left;padding:8px 14px;font-size:11.5px;font-weight:600;color:var(--text2);border-bottom:2px solid var(--border);border-right:1px solid var(--border-soft);background:var(--bg);height:34px;white-space:nowrap}
#asa .dtable th:first-child{border-left:1px solid var(--border-soft)}
#asa .dtable th.num,#asa .dtable td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#asa .dtable td{padding:0 14px;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);color:var(--text);height:36px;vertical-align:middle;transition:background .08s}
#asa .dtable td:first-child{border-left:1px solid var(--border-soft)}
#asa .dtable tbody tr:last-child td{border-bottom:1px solid var(--border)}
#asa .dtable tbody tr:hover td{background:#f3f6fd}
#asa .dtable .tname{font-weight:600;display:flex;align-items:center;gap:8px;white-space:nowrap}
#asa .dtable td.tname{width:1%}
#asa .dtable .tname .mi{font-size:16px;color:var(--text3)}
#asa .dtable .bar-cell{position:relative}
#asa .dtable .bar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:20px;background:var(--blue-light);border-radius:4px;z-index:0;opacity:.8}
#asa .dtable .bar-cell span{position:relative;z-index:1;font-weight:600;padding-left:2px;font-variant-numeric:tabular-nums}
#asa .mini-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;background:var(--bg);color:var(--text2);font-variant-numeric:tabular-nums}
#asa .mini-badge.k{background:#fef3d6;color:#9a5b00}
#asa .mini-badge.r{background:var(--blue-light);color:var(--blue-dark)}
#asa .mini-badge.v{background:var(--purple-light);color:var(--purple)}
#asa .mini-badge.zero{background:transparent;color:var(--text3);font-weight:400}
#asa .breakdown-list{padding:8px 0}
#asa .bk-row{display:flex;align-items:center;gap:12px;padding:9px 20px}
#asa .bk-row .bk-name{font-size:13px;color:var(--text);flex-shrink:0;width:140px;font-family:var(--font-mono);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#asa .bk-row .bk-track{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
#asa .bk-row .bk-fill{height:100%;border-radius:4px}
#asa .bk-row .bk-val{font-size:13px;font-weight:600;color:var(--text2);width:34px;text-align:right}
#asa .bottom-bar{height:60px;padding:0 var(--gutter);display:flex;gap:8px;align-items:center;flex-shrink:0;max-width:var(--container-max);margin:0 auto;width:100%}
#asa .bottom-bar button{font-family:inherit;font-size:13px;font-weight:600;padding:0 16px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:all .15s cubic-bezier(.2,0,0,1)}
#asa .bottom-bar button:hover{border-color:#b9c3d0;color:var(--text);transform:translateY(-1px)}
#asa .bottom-bar button .mi{font-size:17px}
#asa .loading-overlay{position:fixed;inset:calc(var(--asa-top) + var(--asa-bar)) 12px 12px;background:var(--bg);display:none;flex-direction:column;z-index:60;overflow:hidden;border-radius:18px;border:1px solid var(--border-soft)}
#asa .loading-overlay.show{display:flex}
#asa .ld-progress{position:absolute;top:0;left:0;right:0;height:2px;background:var(--border-soft);overflow:hidden}
#asa .ld-progress::before{content:'';position:absolute;left:-30%;top:0;height:100%;width:30%;background:linear-gradient(90deg,transparent,var(--blue),transparent);animation:asaLdBar 1.2s cubic-bezier(.4,0,.2,1) infinite}
@keyframes asaLdBar{0%{left:-30%}100%{left:100%}}
#asa .ld-skel{flex:1;overflow:hidden;padding:24px}
#asa .ld-msg{position:absolute;top:20px;right:24px;display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border-soft);padding:8px 14px 8px 12px;border-radius:100px;font-size:12.5px;font-weight:600;color:var(--text2);box-shadow:0 4px 12px -4px rgba(11,20,32,.14);z-index:2}
#asa .ld-msg::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.18);animation:asaLdDot 1.1s ease-in-out infinite}
@keyframes asaLdDot{0%,100%{opacity:1}50%{opacity:.35}}
#asa .sk{background:linear-gradient(90deg,var(--surface) 0%,var(--bg) 50%,var(--surface) 100%);background-size:200% 100%;animation:asaSkShim 1.4s ease-in-out infinite;border-radius:10px;border:1px solid var(--border-soft)}
@keyframes asaSkShim{0%{background-position:200% 0}100%{background-position:-200% 0}}
#asa .ld-skel-banner{height:84px;border-radius:16px;margin-bottom:20px}
#asa .ld-skel-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:22px}
#asa .ld-skel-metric{height:80px;border-radius:14px}
#asa .ld-skel-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}
#asa .ld-skel-card{height:360px;border-radius:16px}
@media(max-width:1000px){#asa .ld-skel-cols{grid-template-columns:1fr}
}
#asa #manual-panel{display:none;min-height:calc(100vh - var(--asa-top) - var(--asa-bar));flex-direction:column}
#asa .drop-zone{flex:1;width:100%;display:flex;align-items:center;justify-content:center;padding:28px var(--gutter)}
#asa .drop-zone-inner{width:100%;max-width:540px;background:var(--surface);border:2px dashed var(--border);border-radius:22px;padding:44px 36px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;transition:border-color .15s,background .15s;cursor:pointer}
#asa .drop-zone-inner:hover,#asa .drop-zone-inner.over{border-color:var(--blue);background:#f7f9ff}
#asa .drop-icon{width:56px;height:56px;border-radius:15px;background:var(--blue-light);color:var(--blue);display:flex;align-items:center;justify-content:center}
#asa .drop-icon .mi{font-size:30px;font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 24}
#asa .drop-title{font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.02em}
#asa .drop-sub{font-size:13.5px;color:var(--text2);line-height:1.55;max-width:40ch}
#asa .drop-sub kbd{background:var(--bg);border:1px solid var(--border);padding:1px 7px;border-radius:5px;font-family:var(--font-mono);font-size:11.5px;color:var(--text)}
#asa .drop-btn{margin-top:4px;font-family:inherit;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(180deg,#1d4ed8 0%,#133c9f 100%);border:1px solid #133c9f;height:42px;padding:0 24px;border-radius:11px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s cubic-bezier(.2,0,0,1)}
#asa .drop-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px -6px rgba(29,78,216,.45)}
#asa .drop-btn .mi{font-size:18px}
#asa .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:#0b1420;color:#fff;padding:12px 22px;border-radius:12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:9px;box-shadow:0 10px 28px rgba(11,20,32,.3);opacity:0;transition:all .25s cubic-bezier(.4,0,.2,1);z-index:200;pointer-events:none;max-width:calc(100vw - 32px)}
#asa .toast.show{transform:translateX(-50%) translateY(0);opacity:1}
#asa .toast .mi{font-size:18px;color:#86efac}
#asa .ov-hint{font-size:12px;color:var(--text3);padding:8px 20px 6px}
#asa .filter-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}
#asa .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:16px;cursor:pointer;transition:all .12s;font-family:inherit;white-space:nowrap}
#asa .chip:empty{display:none}
#asa .chip:hover{background:var(--bg);border-color:var(--text3)}
#asa .chip.active{background:var(--blue);border-color:var(--blue);color:#fff}
#asa .chip.green{color:var(--green);background:var(--green-light);border-color:transparent}
#asa .stat-chips .chip{font-family:var(--font-mono);font-size:11px;padding:3px 9px;border-radius:7px;cursor:default;font-weight:500}
#asa .chip .cnt{font-size:11px;font-weight:700;background:rgba(11,20,32,.07);padding:1px 6px;border-radius:8px}
#asa .chip.active .cnt{background:rgba(255,255,255,.25)}
#asa .bk-row.clickable{cursor:pointer;border-radius:7px;transition:background .12s;padding-left:4px}
#asa .bk-row.clickable:hover{background:var(--bg)}
#asa .bk-row .caret{font-size:18px;color:var(--text3);transition:transform .15s;flex-shrink:0;margin-right:2px}
#asa .bk-row.open .caret{transform:rotate(90deg);color:var(--blue)}
#asa .bk-sub{display:none;padding:2px 0 10px 26px}
#asa .bk-sub.open{display:block}
#asa .name-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);padding:5px 8px;border-radius:7px}
#asa .name-item:hover{background:var(--bg)}
#asa .name-item .nm{font-family:var(--font-mono);font-size:12px}
#asa .name-item .nm-lbl{font-size:11.5px;color:var(--text3);font-style:italic}
#asa .nb-wrap{margin-left:auto;display:flex;gap:4px;flex-shrink:0}
#asa .nb{font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.3px}
#asa .nb.sys{background:var(--blue-light);color:var(--blue-dark)}
#asa .nb.hide{background:#fef3d6;color:#8a5a00}
#asa .nb.unused{background:var(--red-light);color:var(--red)}
#asa .empty-row{padding:16px 20px;color:var(--text3);font-size:13px}
#asa .card-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px 4px}
#asa .seg{display:inline-flex;border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--surface)}
#asa .seg-btn{display:inline-flex;align-items:center;gap:5px;border:none;background:transparent;color:var(--text2);font-size:12.5px;font-weight:600;padding:6px 13px;cursor:pointer;font-family:inherit;transition:all .12s}
#asa .seg-btn .mi{font-size:15px}
#asa .seg-btn+.seg-btn{border-left:1px solid var(--border)}
#asa .seg-btn:hover{background:var(--bg)}
#asa .seg-btn.active{background:var(--blue);color:#fff}
#asa .name-item .nm-sec{display:inline-flex;align-items:center;gap:5px;margin-left:6px}
#asa .nm-tbl{font-size:11.5px;color:var(--text2);font-family:var(--font-mono)}
#asa .nm-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text3);background:var(--bg);padding:1px 7px;border-radius:8px}
#asa .kind-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:1px 6px;border-radius:7px}
#asa .kind-tag.tbl{background:var(--green-light);color:var(--green)}
#asa .kind-tag.slice{background:var(--cyan-light);color:var(--cyan)}
#asa .bk-name .kind-tag{margin-left:6px;vertical-align:middle}
#asa .bk-name .nm-tbl{font-size:12.5px}
#asa .trow.clickable{cursor:pointer}
#asa .trow .caret{font-size:17px;color:var(--text3);vertical-align:middle;transition:transform .15s;margin-right:2px}
#asa .trow.open .caret{transform:rotate(90deg);color:var(--blue)}
#asa .trow-detail{display:none}
#asa .trow-detail.open{display:table-row}
#asa .trow-detail>td{background:var(--bg);padding:14px 18px!important;height:auto}
#asa .col-groups{display:flex;flex-direction:column;gap:12px}
#asa .col-grp .cg-title{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
#asa .col-grp .cg-title span{color:var(--text3);font-weight:500}
#asa .cg-items{display:flex;flex-wrap:wrap;gap:6px}
#asa .col-chip{font-family:var(--font-mono);font-size:11.5px;background:var(--surface);border:1px solid var(--border);padding:3px 9px;border-radius:7px;color:var(--text)}
#asa .col-chip.k{border-color:#e6a100;background:#fef3d6}
#asa .col-chip.r{border-color:var(--blue);background:var(--blue-light)}
#asa .col-chip.v{border-color:var(--purple);background:var(--purple-light)}
#asa .col-chip .cc-ref{color:var(--blue-dark);font-size:10px;margin-left:3px}
#asa .erd-wrap{position:relative;min-width:2400px;min-height:1800px}
#asa .erd-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:1;max-width:none}
#asa .erd-box{position:absolute;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;min-width:168px;max-width:248px;cursor:grab;user-select:none;z-index:2;box-shadow:var(--shadow);transition:opacity .18s,filter .18s,box-shadow .15s}
#asa .erd-box:hover{box-shadow:var(--shadow-hover)}
#asa .erd-box.dragging{cursor:grabbing;box-shadow:0 10px 24px rgba(11,20,32,.28);z-index:10}
#asa .erd-box .t-head{background:var(--blue);padding:8px 14px;font-weight:700;font-size:12px;color:#fff;text-align:center;cursor:pointer}
#asa .erd-box .t-head:hover{filter:brightness(1.1)}
#asa .erd-box .t-grid{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:10.5px}
#asa .erd-box .t-grid tr{border-bottom:1px solid var(--border-soft)}
#asa .erd-box .t-grid tr:last-child{border-bottom:none}
#asa .erd-box .t-grid tr.pk-row{border-bottom:2px solid var(--border)}
#asa .erd-box .t-grid td{padding:4px 8px;color:var(--text)}
#asa .erd-box .badge-td{border-radius:0;width:30px;text-align:center;font-size:8px;font-weight:700;letter-spacing:.4px;border-right:1px solid var(--border-soft);color:var(--text2);background:var(--bg)}
#asa .erd-box .badge-td.pk{background:#e6a100;color:#fff}
#asa .erd-box .badge-td.fk{background:var(--blue);color:#fff}
#asa .erd-box .badge-td.pfk{background:var(--purple);color:#fff}
#asa .erd-box .name-td{color:var(--text);padding-left:8px}
#asa .erd-box .name-td.pk-n{font-weight:700}
#asa .erd-box .toggle-row{text-align:center;padding:5px 0;background:var(--bg);border-top:1px solid var(--border-soft);cursor:pointer;font-size:10.5px;color:var(--text3);font-weight:600;transition:background .1s}
#asa .erd-box .toggle-row:hover{background:var(--blue-light);color:var(--blue)}
#asa .erd-box .extra{display:none}
#asa .erd-box .extra.open{display:table-row-group}
#asa .erd-box.erd-dim{opacity:.18;filter:grayscale(.5)}
#asa .erd-box.erd-focused{box-shadow:0 0 0 3px var(--blue),0 8px 24px -8px rgba(11,20,32,.24);z-index:5}
#asa .erd-rel{transition:opacity .18s}
#asa .erd-legend{position:absolute;top:66px;left:16px;display:flex;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;padding:7px 12px;font-size:11.5px;color:var(--text2);z-index:4;box-shadow:var(--shadow)}
#asa .el-item{display:flex;align-items:center;gap:6px}
#asa .el-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
#asa .erd-toolbar{position:sticky;top:12px;left:16px;margin:12px 16px 0;width:min(640px,calc(100vw - 80px));z-index:6;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;padding:6px 8px 6px 16px;box-shadow:var(--shadow)}
#asa .erd-toolbar>.mi{color:var(--text3);font-size:20px}
#asa .erd-toolbar input{flex:0 1 280px;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--text);padding:6px 0}
#asa .erd-toolbar input:focus-visible{box-shadow:none}
#asa .erd-focus-badge{display:inline-flex;align-items:center;gap:8px;background:var(--blue-light);color:var(--blue-dark);font-size:12.5px;font-weight:600;padding:4px 4px 4px 12px;border-radius:8px;font-family:var(--font-mono);height:28px}
#asa .erd-focus-badge .mi{font-size:16px}
#asa .erd-focus-badge button{border:none;background:transparent;color:inherit;cursor:pointer;display:inline-flex;width:24px;height:24px;border-radius:50%;align-items:center;justify-content:center}
#asa .erd-focus-badge button:hover{background:rgba(29,78,216,.14)}
#asa .erd-tip{margin-left:auto;font-size:12px;color:var(--text3);white-space:nowrap}
@media(max-width:720px){#asa .erd-tip{display:none}
}
#asa .tab-panel{position:absolute;inset:0;overflow:auto;display:none;padding:24px 24px 48px}
#asa .tab-panel.show{display:block}
#asa #expr-panel,#asa #lint-panel{padding:0 0 48px}
#asa .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}
#asa .panel-head h2{font-size:20px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:9px;letter-spacing:-.02em}
#asa .panel-head h2 .mi{font-size:22px;color:var(--blue)}
#asa .panel-head p{font-size:13px;color:var(--text2);margin-top:6px;max-width:680px;line-height:1.55}
#asa .panel-head>button{font-size:13px;font-weight:600;padding:9px 16px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--blue);cursor:pointer;display:flex;align-items:center;gap:7px;flex-shrink:0;transition:all .12s}
#asa .panel-head>button:hover:not([disabled]){background:var(--blue-light);border-color:transparent}
#asa .panel-head>button[disabled]{color:var(--text3);cursor:not-allowed;opacity:.6}
#asa .ov-search{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:4px 8px 4px 16px;margin-bottom:18px;transition:border-color .15s,box-shadow .15s}
#asa .ov-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.12)}
#asa .ov-search>.mi{color:var(--text3);font-size:20px}
#asa .ov-search input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--text);padding:9px 0;min-width:0}
#asa .ov-search input:focus-visible{box-shadow:none}
#asa .ov-q-clear{border:none;background:transparent;color:var(--text3);cursor:pointer;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center}
#asa .ov-q-clear:hover{background:var(--bg)}
#asa .search-summary{font-size:13px;color:var(--text2);margin-bottom:14px}
#asa .search-grp{margin-bottom:16px}
#asa .sg-head2{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
#asa .sg-head2 span{font-weight:500}
#asa .search-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;border:1px solid var(--border-soft);background:var(--surface);margin-bottom:6px}
#asa .search-item .mi{font-size:18px;color:var(--text3)}
#asa .search-item .si-name{font-family:var(--font-mono);font-size:13px;color:var(--text)}
#asa .search-item .si-sub{margin-left:auto;font-size:11.5px;color:var(--text3);text-align:right}
#asa .clean-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;align-items:start}
#asa .ov-card .clean-body{padding:8px 12px 14px}
#asa .clean-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px}
#asa .clean-item:hover{background:var(--bg)}
#asa .clean-item .ci-name{font-family:var(--font-mono);font-size:12.5px;color:var(--text)}
#asa .clean-item .ci-sub{margin-left:auto;font-size:11.5px;color:var(--text3);text-align:right}
#asa .clean-chip{display:inline-block;font-family:var(--font-mono);font-size:12px;background:var(--bg);border:1px solid var(--border-soft);padding:4px 10px;border-radius:8px;color:var(--text);margin:3px}
#asa .empty-row.good{display:flex;align-items:center;gap:8px;color:var(--green)}
#asa .empty-row.good .mi{font-size:18px}
#asa .sev-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}
#asa .sev-dot.high{background:var(--red)}
#asa .sev-dot.med{background:var(--yellow)}
#asa .sev-dot.low{background:var(--text3)}
#asa .fn-chip{font-family:var(--font-mono);font-size:10.5px;font-weight:600;background:var(--blue-light);color:var(--blue-dark);padding:2px 7px;border-radius:7px}
#asa .menu-wrap{position:relative}
#asa .menu{position:absolute;bottom:46px;left:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px -10px rgba(11,20,32,.25),0 2px 6px rgba(11,20,32,.06);padding:6px;min-width:240px;display:none;z-index:50}
#asa .menu.open{display:block}
#asa .menu button{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--text);font-size:13px;padding:9px 12px;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit}
#asa .menu button:hover{background:var(--bg)}
#asa .menu button .mi{font-size:18px;color:var(--text3)}
#asa .lang-wrap,#asa .hist-wrap{position:relative}
#asa .lang-menu{right:0;left:auto;bottom:auto;top:42px;min-width:170px;padding:6px}
#asa .lang-menu button{font-weight:600}
#asa .lang-tag{font-size:10.5px;font-weight:700;color:var(--text2);background:var(--bg);border:1px solid var(--border-soft);padding:2px 6px;border-radius:4px;letter-spacing:.06em;min-width:26px;text-align:center}
#asa .hist-menu{right:0;left:auto;bottom:auto;top:42px;width:420px;min-width:420px;max-width:calc(100vw - 32px);padding:0;display:none;flex-direction:column;max-height:480px;overflow:hidden}
#asa .hist-menu.open{display:flex}
#asa .hist-menu button{width:auto;padding:0;text-align:left;background:transparent;display:inline-flex}
#asa .hist-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border-soft);font-size:13px;font-weight:700;color:var(--text);background:var(--bg);min-height:48px;flex-shrink:0}
#asa .hist-head-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#asa .hist-clear{background:transparent;border:none;color:var(--text3);cursor:pointer;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;padding:0;flex-shrink:0}
#asa .hist-clear:hover{background:var(--red-light);color:var(--red)}
#asa .hist-clear .mi{font-size:18px}
#asa .hist-list{flex:1;overflow-y:auto;padding:4px 0;background:var(--surface)}
#asa .hist-empty{padding:36px 24px;text-align:center;color:var(--text3);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px}
#asa .hist-empty .mi{font-size:36px;color:var(--text3);margin-bottom:4px}
#asa .hist-empty-sub{font-size:11.5px;color:var(--text3);max-width:240px;line-height:1.5}
#asa .hist-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-soft);transition:background .12s}
#asa .hist-item:last-child{border-bottom:none}
#asa .hist-item:hover{background:var(--bg)}
#asa .hist-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
#asa .hist-name{font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text);background:transparent;border:1px solid transparent;border-radius:6px;padding:3px 6px;outline:none;width:100%;text-overflow:ellipsis;transition:border-color .12s,background .12s}
#asa .hist-name:hover{border-color:var(--border-soft)}
#asa .hist-name:focus{border-color:var(--blue);background:var(--surface);box-shadow:0 0 0 2px rgba(29,78,216,.14)}
#asa .hist-meta{font-size:11px;color:var(--text3);padding:0 6px;font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#asa .hist-menu .hist-act{flex-shrink:0;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:all .12s}
#asa .hist-menu .hist-act:hover{border-color:var(--border-soft);background:var(--bg)}
#asa .hist-menu .hist-act.open:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue-light)}
#asa .hist-menu .hist-act.del:hover{background:var(--red-light);color:var(--red);border-color:var(--red-light)}
#asa .hist-menu .hist-act .mi{font-size:17px}
@media(max-width:560px){#asa .hist-menu{min-width:280px;width:calc(100vw - 32px)}
#asa .hist-meta{font-size:10.5px}
}
#asa .ov-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
@media(max-width:1300px){#asa .ov-trio{grid-template-columns:1fr 1fr}
}
@media(max-width:880px){#asa .ov-trio{grid-template-columns:1fr}
}
#asa .ov-trio .dtable th,#asa .ov-trio .dtable td{padding-left:12px;padding-right:12px}
#asa .ov-trio .ov-card{overflow-x:auto}
#asa .ov-health{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:22px}
#asa .health-card{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:14px;border:1px solid var(--border-soft);background:var(--surface);cursor:pointer;text-align:left;font-family:inherit;transition:box-shadow .14s,border-color .14s,transform .14s}
#asa .health-card:hover{box-shadow:var(--shadow-hover);border-color:transparent;transform:translateY(-2px)}
#asa .health-card .hc-ic{font-size:19px;width:33px;height:33px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
#asa .health-card.warn .hc-ic{background:var(--yellow-light);color:#c2670a}
#asa .health-card.ok .hc-ic{background:var(--green-light);color:var(--green)}
#asa .health-card .hc-num{font-size:20px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;min-width:14px}
#asa .health-card .hc-lbl{font-size:12px;color:var(--text2);line-height:1.25;flex:1}
#asa .health-card .hc-go{font-size:18px;color:var(--text3)}
#asa .health-card.ok{opacity:.72}
#asa .ov-head.clickable{cursor:pointer}
#asa .ov-head.clickable:hover{background:var(--bg)}
#asa .ov-head .caret{font-size:20px;color:var(--text3);transition:transform .15s}
#asa .ov-head.open .caret{transform:rotate(90deg);color:var(--blue)}
#asa .expr-tables{display:flex;flex-direction:column}
#asa .expr-tbl-body{padding:0}
#asa .expr-tbl{overflow:visible;border-radius:0;border-left:none;border-right:none;border-top:none}
#asa .expr-tbl:first-child{border-top:1px solid var(--border-soft)}
#asa .expr-tbl-body.bk-sub{padding:0}
#asa .expr-tbl .ov-head{position:sticky;top:64px;z-index:6;background:var(--surface);height:48px;padding:0 24px;border-bottom:1px solid var(--border);box-shadow:0 4px 8px -6px rgba(11,20,32,.18)}
#asa .expr-matrix-wrap{overflow:visible}
#asa .expr-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;background:var(--surface)}
#asa .expr-matrix thead th{position:sticky;top:112px;z-index:5;text-align:left;padding:8px 12px;font-size:11.5px;font-weight:600;color:var(--text2);background:var(--bg);white-space:nowrap;border-bottom:2px solid var(--border);border-right:1px solid var(--border-soft);height:34px}
#asa .expr-matrix thead th .mi.col-ic{font-size:14px;color:var(--text3);margin-right:5px;vertical-align:-2px}
#asa .expr-matrix thead th:first-child{border-left:1px solid var(--border-soft)}
#asa .expr-matrix td{padding:7px 12px;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);vertical-align:top;background:var(--surface);transition:background .08s}
#asa .expr-matrix td:first-child{border-left:1px solid var(--border-soft)}
#asa .expr-matrix tbody tr:hover td{background:#f3f6fd}
#asa .expr-matrix tbody tr:last-child td{border-bottom:1px solid var(--border)}
#asa .expr-matrix .ech-type{position:sticky;left:0;z-index:2;width:104px;min-width:104px;font-size:11.5px;color:var(--text2);white-space:nowrap;background:var(--surface);vertical-align:middle}
#asa .expr-matrix thead th.ech-type{z-index:7;background:var(--bg)}
#asa .expr-matrix .ech-col{position:sticky;left:104px;z-index:2;font-family:var(--font-mono);font-weight:500;color:var(--text);white-space:nowrap;background:var(--surface);vertical-align:middle;font-size:12.5px;box-shadow:1px 0 0 var(--border)}
#asa .expr-matrix thead th.ech-col{z-index:7;background:var(--bg);box-shadow:1px 0 0 var(--border),inset 0 -1px 0 var(--border)}
#asa .expr-matrix td.ech-type{font-weight:600}
#asa .expr-matrix tbody tr:hover td.ech-type,#asa .expr-matrix tbody tr:hover td.ech-col{background:#f3f6fd}
#asa .expr-matrix td.ech-col .mi{font-size:15px;color:var(--text3);vertical-align:-3px;margin-right:5px}
#asa .ec-cell{min-width:200px;max-width:340px;position:relative;padding-left:14px}
#asa .ec-cell code{font-family:var(--font-mono);font-size:11.5px;color:var(--text);white-space:pre-wrap;word-break:break-word;display:block;line-height:1.5}
#asa .ec-cell.sev-high::before,#asa .ec-cell.sev-med::before,#asa .ec-cell.sev-low::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px}
#asa .ec-cell.sev-high::before{background:var(--red)}
#asa .ec-cell.sev-med::before{background:var(--yellow)}
#asa .ec-cell.sev-low::before{background:var(--border)}
#asa .ec-cell .cell-fns{display:inline-flex;gap:4px;margin-right:5px;margin-bottom:4px;flex-wrap:wrap}
#asa .ec-empty{position:relative;min-width:60px}
#asa td.ec-empty{background-color:var(--surface);background-image:linear-gradient(135deg,transparent 49%,var(--border-soft) 49%,var(--border-soft) 51%,transparent 51%);background-size:8px 8px;background-position:center;background-repeat:no-repeat}
#asa .expr-matrix tr:hover td.ec-empty{background-color:var(--bg)}
#asa .ec-copy{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:6px;border:1px solid var(--border-soft);background:var(--surface);color:var(--text3);cursor:pointer;display:none;align-items:center;justify-content:center;z-index:3;transition:all .12s;padding:0}
#asa .ec-copy:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue-light)}
#asa .ec-copy .mi{font-size:14px}
#asa .ec-cell:hover .ec-copy{display:inline-flex}
#asa .expr-toolbar{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border-soft);box-shadow:0 4px 8px -4px rgba(11,20,32,.08);padding:14px 24px;margin:0;display:grid;grid-template-columns:minmax(220px,320px) 1fr auto;gap:12px;align-items:center;min-height:64px}
@media(max-width:880px){#asa .expr-toolbar{grid-template-columns:1fr;gap:10px}
}
#asa .etb-search{display:flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:11px;padding:0 10px;transition:border-color .15s,box-shadow .15s;height:36px}
#asa .etb-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.14)}
#asa .etb-search>.mi{font-size:18px;color:var(--text3);flex-shrink:0}
#asa .etb-search input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:13px;color:var(--text);min-width:0}
#asa .etb-search input:focus-visible{box-shadow:none}
#asa .etb-search input::placeholder{color:var(--text3)}
#asa .etb-clear{background:transparent;border:none;color:var(--text3);cursor:pointer;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}
#asa .etb-clear:hover{background:var(--bg);color:var(--text)}
#asa .etb-clear .mi{font-size:16px}
#asa .etb-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
#asa .etb-tools{display:inline-flex;gap:6px;align-items:center}
#asa .etb-btn{font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;min-width:34px;padding:0 8px;border-radius:9px;border:1px solid var(--border-soft);background:var(--surface);color:var(--text2);cursor:pointer;font-size:12.5px;font-weight:600;transition:all .12s}
#asa .etb-btn:hover{background:var(--bg);border-color:var(--border);color:var(--text)}
#asa .etb-btn.has-label{padding:0 12px}
#asa .etb-btn .mi{font-size:17px}
#asa .etb-btn .opts-caret{font-size:17px}
#asa .sev-chip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border-radius:9px;border:1px solid var(--border-soft);background:var(--surface);color:var(--text2);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .12s}
#asa .sev-chip:hover{background:var(--bg);border-color:var(--border);color:var(--text)}
#asa .sev-chip .sev-dot{width:8px;height:8px}
#asa .sev-chip .cnt{font-size:10.5px;font-weight:700;color:var(--text3);padding:1px 7px;border-radius:10px;background:var(--bg);font-variant-numeric:tabular-nums}
#asa .sev-chip.active{background:var(--text);border-color:var(--text);color:#fff}
#asa .sev-chip.active .cnt{background:rgba(255,255,255,.18);color:#fff}
#asa .sev-chip.high.active{background:var(--red);border-color:var(--red)}
#asa .sev-chip.med.active{background:#a16207;border-color:#a16207}
#asa .sev-chip.low.active{background:var(--text3);border-color:var(--text3)}
#asa .sev-chip.exp.active{background:var(--blue);border-color:var(--blue)}
#asa .sev-chip .mi{font-size:14px}
#asa .expr-tables-popover{max-height:340px;overflow-y:auto;min-width:240px;right:0;left:auto}
#asa .expr-tables-popover .opts-list{max-height:260px;overflow-y:auto}
#asa .fmt-switch{display:inline-flex;border:1px solid var(--border-soft);border-radius:10px;overflow:hidden;background:var(--bg);padding:2px}
#asa .fmt-switch button{border:none;background:transparent;color:var(--text2);font-size:12px;font-weight:600;padding:5px 12px;cursor:pointer;font-family:inherit;border-radius:7px;transition:all .12s}
#asa .fmt-switch button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(11,20,32,.08)}
#asa .fmt-switch button:not(.active):hover{color:var(--text)}
body.asa-dragging::after{content:'Thả file JSON vào đây';position:fixed;inset:16px;z-index:9999;border:3px dashed #1d4ed8;border-radius:22px;background:rgba(29,78,216,.06);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#1d4ed8;font-family:var(--font-body);pointer-events:none}
#asa #lint-panel{background:var(--m3-surface);color:var(--m3-on-surface)}
#asa #lint-panel .lint-summary{display:grid;grid-template-columns:minmax(320px,1fr) 1.4fr;gap:12px;margin:24px 24px 12px;align-items:stretch}
@media(max-width:880px){#asa #lint-panel .lint-summary{grid-template-columns:1fr;margin:16px 16px 8px}
}
#asa #lint-panel .lint-summary .rule-book{margin:0;display:flex;flex-direction:column}
#asa #lint-panel .lint-score-card{display:flex;align-items:center;gap:20px;background:var(--m3-primary-c);color:var(--m3-on-primary-c);border:none;border-radius:22px;padding:22px 26px;min-width:0;position:relative;overflow:hidden}
#asa #lint-panel .lint-score-card::before{content:'';position:absolute;top:-30%;right:-10%;width:60%;height:160%;background:radial-gradient(circle,var(--m3-primary) 0%,transparent 65%);opacity:.1;pointer-events:none}
#asa #lint-panel .lsc-circle{position:relative;width:84px;height:84px;flex-shrink:0;z-index:1}
#asa #lint-panel .lsc-circle svg{width:100%;height:100%;max-width:none}
#asa #lint-panel .lsc-circle svg circle:first-child{stroke:rgba(255,255,255,.55)}
#asa #lint-panel .lsc-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:30px;font-weight:800;color:var(--m3-on-primary-c);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
#asa #lint-panel .lsc-info{display:flex;flex-direction:column;gap:4px;z-index:1;min-width:0}
#asa #lint-panel .lsc-label{font-family:var(--font-display);font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:30px}
#asa #lint-panel .lsc-sub{font-size:11px;color:var(--m3-on-primary-c);opacity:.85;font-weight:700;text-transform:uppercase;letter-spacing:.5px;line-height:16px}
#asa #lint-panel .rule-book{background:var(--m3-surface-c1);border:1px solid var(--border-soft);border-radius:16px;overflow:hidden}
#asa #lint-panel .rb-head{min-height:56px;height:100%;padding:0 22px 0 16px;display:flex;align-items:center;gap:12px;cursor:pointer;font-size:15px;font-weight:700;color:var(--m3-on-surface);transition:background .15s}
#asa #lint-panel .rule-book:has(.rb-body.open) .rb-head{height:56px}
#asa #lint-panel .rb-head:hover{background:rgba(11,20,32,.04)}
#asa #lint-panel .rb-head .mi:not(.caret){font-size:24px;color:var(--m3-primary)}
#asa #lint-panel .rb-head .caret{font-size:22px;color:var(--m3-on-surface-var);transition:transform .2s}
#asa #lint-panel .rb-head.open .caret{transform:rotate(90deg)}
#asa #lint-panel .rb-hint{margin-left:auto;font-size:12px;color:var(--m3-on-surface-var);font-weight:500}
#asa #lint-panel .rb-body{display:none;padding:8px 22px 22px;border-top:1px solid var(--m3-outline-var)}
#asa #lint-panel .rb-body.open{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;padding-top:20px}
#asa #lint-panel .rb-sec-h{font-size:14px;font-weight:700;color:var(--m3-on-surface);margin-bottom:8px;display:flex;align-items:center;gap:8px}
#asa #lint-panel .rb-sec-h .mi{font-size:20px;color:var(--m3-primary)}
#asa #lint-panel .rb-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;list-style:disc}
#asa #lint-panel .rb-list li{font-size:13.5px;color:var(--m3-on-surface-var);line-height:20px}
#asa #lint-panel .lint-toolbar{margin:0;padding:10px 24px 12px;position:sticky;top:0;z-index:10;background:var(--m3-surface);border:none;box-shadow:none;min-height:auto;display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:12px;align-items:center}
#asa #lint-panel .lint-toolbar::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--m3-outline-var)}
@media(max-width:880px){#asa #lint-panel .lint-toolbar{grid-template-columns:1fr;padding:8px 16px 12px}
}
#asa #lint-panel .etb-search{background:var(--m3-surface-c2);border:none;border-radius:14px;padding:0 14px 0 18px;height:44px}
#asa #lint-panel .etb-search:focus-within{background:var(--m3-surface-c3);box-shadow:none}
#asa #lint-panel .sev-chip{height:32px;padding:0 12px 0 10px;border:1px solid var(--m3-outline-var);background:transparent;font-size:13px;color:var(--m3-on-surface-var)}
#asa #lint-panel .sev-chip.active{background:var(--m3-secondary-c);border-color:transparent;color:var(--m3-on-secondary-c)}
#asa #lint-panel .sev-chip.active::before{content:'check';font-family:'Material Symbols Rounded';font-size:17px}
#asa #lint-panel .sev-chip.active .sev-dot{display:none}
#asa #lint-panel .sev-chip.active .cnt{color:var(--m3-on-secondary-c);background:rgba(255,255,255,.6)}
#asa #lint-panel .sev-chip.err.active{background:var(--m3-error-c);color:var(--m3-on-error-c)}
#asa #lint-panel .sev-chip.warn.active{background:var(--m3-warning-c);color:var(--m3-on-warning-c)}
#asa #lint-panel .sev-chip.info.active{background:var(--m3-primary-c);color:var(--m3-on-primary-c)}
#asa #lint-panel .etb-btn{height:38px;padding:0 14px;border-radius:11px;border:1px solid var(--m3-outline-var);background:transparent;font-size:13px;color:var(--m3-on-surface)}
#asa #lint-panel .etb-btn .opts-count{background:var(--m3-surface-c3);color:var(--m3-on-surface-var)}
#asa #lint-panel .opts-popover{top:44px;right:0;left:auto;min-width:300px}
#asa #lint-panel .lint-groups-wrap{display:block;margin:20px 24px 48px}
@media(max-width:880px){#asa #lint-panel .lint-groups-wrap{margin:16px 16px 48px}
}
#asa #lint-panel .lint-kanban{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
#asa #lint-panel .lint-kanban.cols-1{grid-template-columns:minmax(0,720px)}
#asa #lint-panel .lint-kanban.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){#asa #lint-panel .lint-kanban,#asa #lint-panel .lint-kanban.cols-2{grid-template-columns:1fr;max-width:720px}
}
#asa #lint-panel .lk-col{background:var(--m3-surface-c1);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
#asa #lint-panel .lk-col.sev-err{background:color-mix(in srgb,var(--m3-error-c) 38%,var(--m3-surface-c1))}
#asa #lint-panel .lk-col.sev-warn{background:color-mix(in srgb,var(--m3-warning-c) 38%,var(--m3-surface-c1))}
#asa #lint-panel .lk-col.sev-info{background:color-mix(in srgb,var(--m3-primary-c) 45%,var(--m3-surface-c1))}
#asa #lint-panel .lk-col-head{display:flex;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:700;color:var(--m3-on-surface)}
#asa #lint-panel .lk-col-label{flex:1;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
#asa #lint-panel .lk-col.sev-err .lk-col-label{color:var(--m3-error)}
#asa #lint-panel .lk-col.sev-warn .lk-col-label{color:var(--m3-warning)}
#asa #lint-panel .lk-col.sev-info .lk-col-label{color:var(--m3-primary)}
#asa #lint-panel .lk-col-count{font-size:13px;font-weight:700;color:var(--m3-on-surface);background:var(--m3-surface-cl);padding:3px 12px;border-radius:12px;font-variant-numeric:tabular-nums;min-width:32px;text-align:center}
#asa #lint-panel .lk-col-body{padding:8px;display:flex;flex-direction:column;gap:8px}
#asa #lint-panel .lk-section{background:var(--m3-surface-cl);border-radius:12px;overflow:hidden;border:1px solid var(--m3-outline-var)}
#asa #lint-panel .lk-section-head{display:flex;align-items:center;gap:8px;padding:8px 12px;font-family:var(--font-mono);font-size:12.5px;font-weight:500;color:var(--m3-on-surface);background:var(--m3-surface-c1);border-bottom:1px solid var(--m3-outline-var);min-height:36px}
#asa #lint-panel .lk-section-head .mi{font-size:16px;color:var(--m3-on-surface-var)}
#asa #lint-panel .lk-tname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#asa #lint-panel .lk-tcount{font-size:11px;font-weight:700;color:var(--m3-on-surface-var);background:var(--m3-surface-c3);padding:1px 8px;border-radius:10px;font-variant-numeric:tabular-nums;flex-shrink:0;font-family:var(--font-body)}
#asa #lint-panel .lk-item{padding:8px 12px;border-bottom:1px solid var(--m3-outline-var);cursor:pointer;transition:background .12s;display:flex;align-items:center;gap:10px;min-width:0;position:relative}
#asa #lint-panel .lk-item:last-child{border-bottom:none}
#asa #lint-panel .lk-item:hover{background:rgba(11,20,32,.04)}
#asa #lint-panel .lk-loc{font-family:var(--font-mono);font-size:12.5px;font-weight:500;color:var(--m3-on-surface);line-height:18px;white-space:nowrap;flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis}
#asa #lint-panel .lk-loc-bldg{color:var(--m3-on-surface-var);font-style:italic;font-family:inherit}
#asa #lint-panel .lk-loc::after{content:'·';color:var(--m3-on-surface-var);margin-left:10px;font-weight:400}
#asa #lint-panel .lk-issue{font-size:12.5px;color:var(--m3-on-surface-var);line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
#asa #lint-panel .lk-item:hover .lk-issue{white-space:normal}
#asa #lint-panel .lk-item:hover .lk-loc{max-width:none}
#asa #lint-panel .lk-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--m3-on-surface-var);font-style:italic}
#asa #lint-panel .lk-item[data-tip]:hover::before{content:attr(data-tip);position:absolute;left:12px;right:12px;bottom:calc(100% + 4px);background:#0b1420;color:#f3f6fa;font-size:11px;font-weight:600;line-height:16px;padding:6px 10px;border-radius:6px;white-space:normal;word-wrap:break-word;box-shadow:0 2px 6px rgba(0,0,0,.18);z-index:20;animation:asaTipFade .15s cubic-bezier(.2,0,0,1)}
@keyframes asaTipFade{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}
@keyframes asaCopiedPulse{0%{background:rgba(29,78,216,.18)}100%{background:transparent}}
#asa #lint-panel .lk-item.copied,#asa .ec-cell.copied{animation:asaCopiedPulse .7s cubic-bezier(.2,0,0,1) forwards}
#asa .copied{position:relative}
#asa .copied::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px var(--blue);pointer-events:none;animation:asaCopiedRing .7s cubic-bezier(.2,0,0,1) forwards}
@keyframes asaCopiedRing{0%{opacity:1}100%{opacity:0}}
#asa #lint-panel .lint-empty{background:var(--m3-surface-c1);border-radius:24px;padding:56px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
#asa #lint-panel .lint-empty.good{background:var(--m3-primary-c)}
#asa #lint-panel .lint-empty-mark{width:88px;height:88px;border-radius:50%;background:var(--m3-primary);color:var(--m3-on-primary);display:flex;align-items:center;justify-content:center}
#asa #lint-panel .lint-empty.good .lint-empty-mark{background:var(--m3-success);color:#fff}
#asa #lint-panel .lint-empty-mark.muted{background:var(--m3-surface-c3);color:var(--m3-on-surface-var)}
#asa #lint-panel .lint-empty-mark .mi{font-size:44px;font-variation-settings:'FILL' 1,'wght' 500,'GRAD' 0,'opsz' 48}
#asa #lint-panel .lint-empty h3{font-size:22px;font-weight:800;color:var(--m3-on-surface);letter-spacing:-.02em;margin:6px 0 0}
#asa #lint-panel .lint-empty.good h3{color:var(--m3-on-primary-c)}
#asa #lint-panel .lint-empty p{font-size:14px;color:var(--m3-on-surface-var);line-height:20px;margin:0;max-width:52ch}
#asa #lint-panel .lint-empty-btn{margin-top:6px;font-family:inherit;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--m3-primary);background:var(--surface);border:1px solid var(--m3-outline-var);height:40px;padding:0 22px;border-radius:12px;cursor:pointer;transition:background .15s}
#asa #lint-panel .lint-empty-btn:hover{background:var(--blue-light)}
#asa #lint-panel .lint-empty-btn .mi{font-size:18px}
