.submit-btn{justify-content:center;align-items:center;gap:var(--ma-space-2);color:#fff;font-family:var(--mono);font-size:var(--ma-text-xs);font-weight:var(--ma-weight-semibold);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--ma-radius-pill);cursor:pointer;white-space:nowrap;min-height:48px;transition:transform var(--ma-dur-fast) var(--ma-ease-out), box-shadow var(--ma-dur-base) var(--ma-ease-out), opacity var(--ma-dur-base) var(--ma-ease-out);background:linear-gradient(#5a96ff,#4f8cff);border:0;padding:13px 26px;display:inline-flex;box-shadow:0 6px 22px -8px #4f8cffb3}.submit-btn:hover:not(:disabled):not([aria-disabled=true]){transform:translateY(-1px);box-shadow:0 10px 28px -10px #4f8cffe6}.submit-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(0)}.submit-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff80}.submit-btn:disabled,.submit-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:0 6px 22px -8px #4f8cff66}.submit-btn svg{width:14px;height:14px}.btn-secondary{justify-content:center;align-items:center;gap:var(--ma-space-2);border:1px solid var(--border-strong);color:var(--text);font-family:var(--mono);font-size:var(--ma-text-xs);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--ma-radius-md);cursor:pointer;white-space:nowrap;transition:border-color var(--ma-dur-fast) var(--ma-ease-out), background var(--ma-dur-fast) var(--ma-ease-out), color var(--ma-dur-fast) var(--ma-ease-out);background:#ffffff06;padding:10px 16px;display:inline-flex}.btn-secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--blue);color:var(--blue);background:#4f8cff14}.btn-secondary:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff80}.btn-secondary:disabled,.btn-secondary[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-ghost{justify-content:center;align-items:center;gap:var(--ma-space-2);color:var(--text-dim);font-family:var(--mono);font-size:var(--ma-text-xs);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--ma-radius-md);cursor:pointer;white-space:nowrap;transition:background var(--ma-dur-fast) var(--ma-ease-out), color var(--ma-dur-fast) var(--ma-ease-out), border-color var(--ma-dur-fast) var(--ma-ease-out);background:0 0;border:1px solid #0000;padding:10px 16px;display:inline-flex}.btn-ghost:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--border);color:var(--text);background:#ffffff0a}.btn-ghost:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff80}.btn-ghost:disabled,.btn-ghost[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-small{border:1px solid var(--border-strong);color:var(--text-dim);font-family:var(--mono);font-size:var(--ma-text-xs);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--ma-radius-sm);cursor:pointer;white-space:nowrap;transition:border-color var(--ma-dur-fast) var(--ma-ease-out), background var(--ma-dur-fast) var(--ma-ease-out), color var(--ma-dur-fast) var(--ma-ease-out);background:#ffffff06;justify-content:center;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.btn-small:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--blue);color:var(--text);background:#ffffff0d}.btn-small:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff80}.btn-small:disabled,.btn-small[aria-disabled=true]{opacity:.5;cursor:not-allowed}.export-btn{border:1px solid var(--border-strong);color:var(--text-dim);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--ma-radius-pill);cursor:pointer;white-space:nowrap;transition:border-color var(--ma-dur-fast) var(--ma-ease-out), background var(--ma-dur-fast) var(--ma-ease-out), color var(--ma-dur-fast) var(--ma-ease-out);background:#ffffff0b;align-items:center;gap:6px;padding:8px 14px;font-size:11px;display:inline-flex}.export-btn:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--border-strong);color:var(--text);background:#ffffff0d}.export-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff80}.export-btn:disabled,.export-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.export-btn.done{color:var(--success);background:#4fc88a12;border-color:#4fc88a66}.export-btn.loading{color:var(--blue);border-color:#4f8cff59}.export-btn svg{width:13px;height:13px}.mini-app-scope *{scrollbar-width:thin;scrollbar-color:#ffffff29 transparent}.mini-app-scope ::-webkit-scrollbar{width:10px;height:10px}.mini-app-scope ::-webkit-scrollbar-track{background:0 0}.mini-app-scope ::-webkit-scrollbar-thumb{background:#ffffff24 padding-box padding-box;border:2px solid #0000;border-radius:8px}.mini-app-scope ::-webkit-scrollbar-thumb:hover{background:#ffffff3d padding-box padding-box}.mini-app-scope ::-webkit-scrollbar-corner{background:0 0}.submit-row{justify-content:flex-end;align-items:center;gap:var(--ma-space-2);margin-top:var(--ma-space-5);flex-wrap:wrap;display:flex}.input-field,.textarea-field{gap:var(--ma-space-2);margin-bottom:var(--ma-space-5);flex-direction:column;display:flex}.input-field label,.textarea-field label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin:0;font-size:11px;display:block}.input-box{border:1px solid var(--border);border-radius:var(--ma-radius-md);transition:border-color var(--ma-dur-base) var(--ma-ease-out), box-shadow var(--ma-dur-base) var(--ma-ease-out), background var(--ma-dur-base) var(--ma-ease-out);background:#ffffff06;align-items:center;padding:14px 16px;display:flex;overflow:hidden}.input-box:focus-within{background:#4f8cff08;border-color:#4f8cff8c;box-shadow:0 0 0 3px #4f8cff1f}.input-box.error{border-color:var(--error);animation:ma-shake .35s var(--ma-ease-out)}.input-box input,.input-box textarea,.textarea-box textarea{width:100%;color:var(--text);font-family:var(--sans);font-size:var(--ma-text-base);letter-spacing:-.005em;line-height:var(--ma-leading-snug);background:0 0;border:0;outline:none;padding:0}.input-box input::placeholder,.input-box textarea::placeholder{color:var(--text-faint)}.input-box input:disabled,.input-box textarea:disabled{color:var(--text-muted)}.textarea-box{border:1px solid var(--border);border-radius:var(--ma-radius-md);transition:border-color var(--ma-dur-base) var(--ma-ease-out), box-shadow var(--ma-dur-base) var(--ma-ease-out), background var(--ma-dur-base) var(--ma-ease-out);background:#ffffff06;padding:14px 16px}.textarea-box:focus-within{background:#4f8cff08;border-color:#4f8cff8c;box-shadow:0 0 0 3px #4f8cff1f}.textarea-box.error{border-color:var(--error);animation:ma-shake .35s var(--ma-ease-out)}.textarea-box textarea{width:100%;color:var(--text);font:inherit;font-family:var(--mono);font-size:var(--ma-text-base);letter-spacing:-.005em;line-height:var(--ma-leading-normal);resize:vertical;background:0 0;border:0;outline:none;min-height:160px;padding:0}.textarea-box textarea::placeholder{color:var(--text-faint)}.textarea-box textarea:disabled{color:var(--text-muted)}.field-error{font-family:var(--mono);color:var(--error);margin-top:var(--ma-space-1);font-size:12px;line-height:var(--ma-leading-snug)}.char-counter{font-family:var(--mono);letter-spacing:.1em;color:var(--text-muted);text-align:right;margin-top:var(--ma-space-1);font-size:10px}.char-counter.warn{color:var(--warning)}.char-counter.over{color:var(--error)}.textarea-meta{justify-content:space-between;align-items:flex-start;gap:var(--ma-space-3);display:flex}.textarea-meta:empty{display:none}.input-box input:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--bg) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.input-box input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--bg) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.input-box input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--bg) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.input-box input:-webkit-autofill:active{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--bg) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.panel-wrap{width:min(100%, var(--ma-width-narrow));margin:0 auto;position:relative}.panel{border:1px solid var(--border);border-radius:var(--ma-radius-lg);-webkit-backdrop-filter:blur(12px)saturate(120%);background:linear-gradient(#16161bd9,#101014d9);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 30px 80px -30px #0009,0 0 0 1px #0006}.corner{border-color:var(--blue);opacity:.85;pointer-events:none;z-index:1;border-style:solid;border-width:0;width:14px;height:14px;position:absolute}.corner.tl{border-top-left-radius:var(--ma-radius-lg);border-top-width:2px;border-left-width:2px;top:-1px;left:-1px}.corner.tr{border-top-right-radius:var(--ma-radius-lg);border-top-width:2px;border-right-width:2px;top:-1px;right:-1px}.corner.bl{border-bottom-left-radius:var(--ma-radius-lg);border-bottom-width:2px;border-left-width:2px;bottom:-1px;left:-1px}.corner.br{border-bottom-right-radius:var(--ma-radius-lg);border-bottom-width:2px;border-right-width:2px;bottom:-1px;right:-1px}.result-head{justify-content:space-between;align-items:baseline;gap:var(--ma-space-2);margin-bottom:var(--ma-space-5);flex-wrap:wrap;display:flex}.result-head .title{font-size:var(--ma-text-sm);color:var(--text-dim);font-weight:var(--ma-weight-medium)}.result-head .ts-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px}.result-footer{justify-content:center;align-items:center;gap:var(--ma-space-2);padding-top:var(--ma-space-4);margin-top:var(--ma-space-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.result-actions{align-items:center;gap:var(--ma-space-4);padding-top:var(--ma-space-5);margin-top:var(--ma-space-5);border-top:1px solid var(--border);flex-direction:column;display:flex}.result-actions .result-footer{border-top:0;margin-top:0;padding-top:0}.run-again{align-items:center;gap:var(--ma-space-2);border:1px solid var(--border-strong);color:var(--text);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:#ffffff06;border-radius:6px;padding:9px 14px;font-size:11.5px;transition:border-color .16s,background .16s,color .16s;display:inline-flex}.run-again:hover{border-color:var(--blue);color:var(--blue);background:#4f8cff14}.run-again svg{width:12px;height:12px}.progress-track{background:#ffffff0f;border-radius:2px;height:2px;margin-bottom:22px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--cyan), var(--blue));height:100%;box-shadow:0 0 14px #4f8cff99}.progress-bar.waiting{animation:1.3s ease-in-out infinite ma-bar-pulse}@keyframes ma-bar-pulse{0%,to{opacity:1}50%{opacity:.4}}.loading-header{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:14px;font-size:11px;display:flex}.loading-header strong{color:var(--text);font-weight:500}.stages{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stage{border:1px solid var(--border);background:#ffffff03;border-radius:10px;padding:16px 16px 18px;transition:border-color .24s,background .24s,opacity .24s;position:relative}.stage-num-row{font-family:var(--mono);letter-spacing:.18em;color:var(--text-faint);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10px;display:flex}.stage-title{color:var(--text-dim);font-size:14px;font-weight:500;transition:color .24s}.stage-status-icon{border:1px solid var(--border-strong);background:#0000004d;border-radius:50%;flex-shrink:0;place-items:center;width:14px;height:14px;display:grid;position:relative}.stage-status-icon svg{opacity:0;width:8px;height:8px;transition:opacity .2s}.stage.active{background:linear-gradient(#4f8cff0f,#4f8cff03);border-color:#4f8cff8c;box-shadow:0 0 0 1px #4f8cff26,0 0 30px -8px #4f8cff66,inset 0 0 60px -20px #4f8cff4d}.stage.active .stage-title{color:var(--text)}.stage.active .stage-status-icon{border-color:var(--blue);background:var(--blue);animation:1.2s ease-in-out infinite ma-spin-pulse;box-shadow:0 0 12px #4f8cffb3}.stage.active .stage-status-icon:before{content:"";border:1px solid var(--blue);border-top-color:#0000;border-radius:50%;animation:1.1s linear infinite ma-spin;position:absolute;inset:-2px}@keyframes ma-spin{to{transform:rotate(360deg)}}@keyframes ma-spin-pulse{0%,to{box-shadow:0 0 12px #4f8cffb3}50%{box-shadow:0 0 18px #4f8cff}}.stage.done{opacity:.55}.stage.done .stage-status-icon{border-color:var(--success);background:var(--success)}.stage.done .stage-status-icon svg{opacity:1}.stage.done .stage-status-icon svg path{stroke:#0b1410}.stage-log{font-family:var(--mono);color:var(--text-faint);min-height:14px;margin-top:10px;font-size:10.5px;line-height:1.5;transition:color .24s;overflow:hidden}.stage.active .stage-log{color:var(--text-dim)}.stage.done .stage-log{color:var(--text-faint)}@media (max-width:560px){.stages{grid-template-columns:1fr}}.score-row{gap:var(--ma-space-3);margin-bottom:var(--ma-space-5);grid-template-columns:repeat(auto-fit,minmax(0,1fr));display:grid}.score-card{border:1px solid var(--border);border-radius:var(--ma-radius-md);background:linear-gradient(#ffffff06,#ffffff01);padding:16px 14px;position:relative;overflow:hidden}.score-card:before{content:"";background:var(--border-strong);width:2px;height:100%;position:absolute;top:0;left:0}.score-card.good:before{background:var(--grade-good);box-shadow:0 0 12px var(--grade-good)}.score-card.mid:before{background:var(--grade-mid);box-shadow:0 0 10px var(--grade-mid)}.score-card.bad:before{background:var(--grade-bad);box-shadow:0 0 10px var(--grade-bad)}.score-label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--ma-space-2);font-size:11px}.score-value{font-family:var(--sans);font-size:var(--ma-text-2xl);font-weight:var(--ma-weight-semibold);letter-spacing:-.03em;line-height:1}.score-card.good .score-value{color:var(--grade-good)}.score-card.mid .score-value{color:var(--grade-mid)}.score-card.bad .score-value{color:var(--grade-bad)}.summary-block{border-left:2px solid var(--blue);padding-left:var(--ma-space-4);margin-bottom:var(--ma-space-5);color:var(--text-dim);font-size:var(--ma-text-base);line-height:var(--ma-leading-normal)}.issue-list{gap:var(--ma-space-2);margin-bottom:var(--ma-space-5);flex-direction:column;display:flex}.issue-card{border:1px solid var(--border);border-radius:var(--ma-radius-md);background:#ffffff03;padding:14px 16px}.issue-card.critical{background:linear-gradient(#ff5c7a0f,#ff5c7a03);border-color:#ff5c7a59}.issue-card.warning{background:linear-gradient(#f5a6230d,#f5a62303);border-color:#f5a6234d}.issue-card.suggestion{background:linear-gradient(#4f8cff0d,#4f8cff03);border-color:#4f8cff4d}.issue-header{justify-content:space-between;align-items:center;gap:var(--ma-space-2);margin-bottom:var(--ma-space-2);flex-wrap:wrap;display:flex}.issue-badge{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:var(--ma-radius-sm);border:1px solid var(--border-strong);white-space:nowrap;flex-shrink:0;padding:3px 8px;font-size:9px}.issue-badge.critical{color:var(--error);background:#ff5c7a1a;border-color:#ff5c7a66}.issue-badge.warning{color:var(--warning);background:#f5a62314;border-color:#f5a62359}.issue-badge.suggestion{color:var(--blue);background:#4f8cff14;border-color:#4f8cff59}.issue-title{font-size:var(--ma-text-base);font-weight:var(--ma-weight-medium);color:var(--text);letter-spacing:.02em}.issue-desc{font-size:var(--ma-text-sm);color:var(--text-dim);line-height:var(--ma-leading-normal);margin-top:var(--ma-space-2)}.issue-fix{align-items:flex-start;gap:var(--ma-space-2);margin-top:var(--ma-space-3);border-radius:var(--ma-radius-sm);color:var(--text-dim);font-size:12.5px;line-height:var(--ma-leading-snug);background:#4fc88a0a;border:1px solid #4fc88a26;padding:8px 10px;display:flex}.err-icon{width:64px;height:64px;color:var(--error);margin:0 auto var(--ma-space-5);background:#ff5c7a0d;border:1.5px solid #ff5c7a66;border-radius:50%;place-items:center;display:grid;box-shadow:0 0 30px -6px #ff5c7a4d}.err-icon svg{width:28px;height:28px}.err-title{font-size:var(--ma-text-lg);font-weight:var(--ma-weight-medium);text-align:center;margin:0 0 var(--ma-space-2);letter-spacing:-.01em}.err-msg{color:var(--text-dim);font-size:var(--ma-text-base);line-height:var(--ma-leading-normal);text-align:center;max-width:380px;margin:0 auto var(--ma-space-5)}.err-btn{justify-content:center;align-items:center;gap:var(--ma-space-2);color:#fff;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:var(--ma-radius-sm);cursor:pointer;transition:transform var(--ma-dur-fast) var(--ma-ease-out), box-shadow var(--ma-dur-base) var(--ma-ease-out);background:linear-gradient(#5a96ff,#4f8cff);border:0;padding:10px 18px;font-size:11.5px;display:inline-flex;box-shadow:inset 0 1px #ffffff40,0 0 24px -6px #4f8cff99}.err-btn:hover:not(:disabled):not([aria-disabled=true]){transform:translateY(-1px);box-shadow:inset 0 1px #ffffff40,0 0 28px -6px #4f8cffcc}.err-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff80}@keyframes ma-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.input-box.error,.textarea-box.error{animation:none}.submit-btn,.btn-secondary,.btn-ghost,.btn-small,.export-btn,.err-btn,.input-box,.textarea-box{transition:none}.submit-btn:hover:not(:disabled):not([aria-disabled=true]),.submit-btn:active:not(:disabled):not([aria-disabled=true]),.err-btn:hover:not(:disabled):not([aria-disabled=true]){transform:none}}