*{box-sizing:border-box}:root{--bg: #0f1115;--panel: #181b22;--panel-2: #1f232c;--border: #2a2f3a;--text: #e6e8ee;--muted: #8a93a4;--accent: #6aa9ff;--good: #4ade80;--warn: #fbbf24;--bad: #f87171}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px}.app{display:grid;grid-template-columns:280px 1fr;height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:16px}@media(max-width:768px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:100vh}.sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:none}.main{padding:16px!important;overflow-x:hidden}.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex-shrink:0;white-space:nowrap;padding:8px 12px;font-size:13px}.input{min-height:180px}}.sidebar h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}.history-item{padding:10px;border-radius:6px;margin-bottom:6px;cursor:pointer;border:1px solid transparent;background:var(--panel-2)}.history-item:hover{border-color:var(--border)}.history-item.active{border-color:var(--accent)}.history-item .meta{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:4px}.history-item .preview{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.main{overflow-y:auto;padding:24px}header h1{margin:0 0 4px;font-size:20px}header .sub{color:var(--muted);margin-bottom:20px;font-size:13px}.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center}textarea.input{width:100%;min-height:200px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:inherit;font-size:14px;line-height:1.6;resize:vertical}button{background:var(--accent);color:#0f1115;border:none;border-radius:6px;padding:8px 14px;font-weight:600;cursor:pointer}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.score-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px;margin:12px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.score-card .item .label{color:var(--muted);font-size:11px;text-transform:uppercase}.score-card .item .value{font-size:20px;font-weight:600;margin-top:2px}.score-card .item .value.good{color:var(--good)}.score-card .item .value.warn{color:var(--warn)}.score-card .item .value.bad{color:var(--bad)}.variant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:16px}.variant{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px}.variant.best{border-color:var(--good)}.variant .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.variant .head .name{font-weight:600}.variant .head .pct{font-family:ui-monospace,monospace;font-size:13px}.variant .text{font-size:13px;line-height:1.6;white-space:pre-wrap;max-height:260px;overflow-y:auto;background:var(--panel-2);padding:10px;border-radius:6px}.variant .delta{font-size:11px;color:var(--muted);margin-top:6px}.variant .err{color:var(--bad);font-size:12px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{background:none;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px;font-weight:500}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.field{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.field input{width:60px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 6px;font-family:ui-monospace,monospace}.round-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:8px}.round-row .num{font-family:ui-monospace,monospace;color:var(--muted);width:60px}.round-row .bar{flex:1;height:6px;background:var(--panel-2);border-radius:3px;overflow:hidden}.round-row .bar>div{height:100%;background:var(--bad);transition:width .3s}.round-row .pct{font-family:ui-monospace,monospace;width:80px;text-align:right}details.round-detail{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:8px}details.round-detail summary{cursor:pointer;display:flex;gap:12px;align-items:center}details.round-detail .text{margin-top:10px;white-space:pre-wrap;font-size:13px;line-height:1.6;background:var(--panel-2);padding:10px;border-radius:6px}.banner{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:12px;color:var(--muted)}.banner.bad{border-color:var(--bad);color:var(--bad)}.account-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:380px;max-width:calc(100vw - 32px);padding:20px}.modal-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;position:relative}.modal-tabs button{background:none;color:var(--muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px;font-weight:500}.modal-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.modal-tabs .close{position:absolute;right:0;top:0;padding:8px;font-size:18px;color:var(--muted)}.modal label{display:block;margin-bottom:12px}.modal label>span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.modal label>input{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px;font-size:14px;font-family:inherit}.modal-err{background:#f871711a;border:1px solid var(--bad);color:var(--bad);border-radius:6px;padding:8px 10px;margin-bottom:12px;font-size:12px}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px 14px;background:#fff;color:#1a1a1a;border:1px solid rgba(255,255,255,.15);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.oauth-btn:hover:not(:disabled){background:#f3f4f6}.oauth-btn:disabled{opacity:.5;cursor:not-allowed}.oauth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--muted);font-size:12px}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.payment-success-modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;width:380px;max-width:calc(100vw - 32px);padding:32px 28px 24px;text-align:center;animation:ps-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes ps-pop{0%{opacity:0;transform:scale(.7) translateY(20px)}60%{opacity:1;transform:scale(1.04) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.payment-success-check{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;background:#22c55e1f;color:#22c55e;margin-bottom:18px;animation:ps-glow 1.6s ease-out}@keyframes ps-glow{0%{box-shadow:0 0 #22c55e66}60%{box-shadow:0 0 0 22px #22c55e00}to{box-shadow:0 0 #22c55e00}}.payment-success-check .check-circle{stroke-dasharray:160;stroke-dashoffset:160;animation:ps-draw-circle .45s .05s ease-out forwards}.payment-success-check .check-mark{stroke-dasharray:50;stroke-dashoffset:50;animation:ps-draw-mark .3s .45s ease-out forwards}@keyframes ps-draw-circle{to{stroke-dashoffset:0}}@keyframes ps-draw-mark{to{stroke-dashoffset:0}}.payment-success-title{font-size:22px;font-weight:700;margin:0 0 8px}.payment-success-delta{display:inline-block;color:#22c55e;font-size:16px;font-weight:600;background:#22c55e1a;padding:4px 12px;border-radius:999px;margin-bottom:18px;animation:ps-fade-up .4s .6s both ease-out}@keyframes ps-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.payment-success-balance{background:var(--panel-2);border-radius:8px;padding:14px;margin-bottom:20px}.payment-success-balance-label{font-size:12px;color:var(--muted);margin-bottom:2px}.payment-success-balance-value{font-size:28px;font-weight:700}.payment-success-btn{width:100%;padding:10px;font-size:14px;font-weight:600}.modal-hint{background:#6aa9ff1a;border:1px solid var(--accent);color:var(--accent);border-radius:6px;padding:8px 10px;margin-bottom:12px;font-size:12px}
