:root{--bg: #0b0714;--bg-2: #160b2b;--glass: rgba(255, 255, 255, .06);--glass-strong: rgba(255, 255, 255, .1);--stroke: rgba(255, 255, 255, .12);--stroke-strong: rgba(255, 255, 255, .22);--text: #f4f1fb;--muted: #a99fc4;--faint: #6f668a;--accent: #8b5cf6;--accent-2: #c084fc;--accent-grad: linear-gradient(135deg, #7c3aed 0%, #a855f7 60%, #d8b4fe 100%);--ok: #34d399;--warn: #fbbf24;--bad: #f87171;--radius: 22px;--radius-sm: 14px;--shadow: 0 20px 60px rgba(0, 0, 0, .45);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}::selection{background:#a855f766}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:radial-gradient(1200px 800px at 15% 10%,#2a1350 0%,transparent 60%),radial-gradient(900px 700px at 85% 90%,#3b0f6e 0%,transparent 55%),radial-gradient(600px 500px at 70% 20%,#1f0e3f 0%,transparent 60%),var(--bg)}.ambient:before,.ambient:after{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.55}.ambient:before{width:520px;height:520px;left:-140px;top:20%;background:#6d28d9;animation:float 18s ease-in-out infinite}.ambient:after{width:420px;height:420px;right:-120px;bottom:8%;background:#9d174d;animation:float 22s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-40px)}}.layout{min-height:100%}.shell{max-width:480px;margin:0 auto;min-height:100%;padding:18px 18px 110px;position:relative}.sidenav{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar .who{display:flex;gap:12px;align-items:center}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--accent-grad);box-shadow:0 6px 20px #8b5cf673}.eyebrow{font-size:12px;color:var(--muted)}.title{font-size:18px;font-weight:700;letter-spacing:-.01em}h1.page{font-size:22px;font-weight:800;margin:6px 0 16px;letter-spacing:-.02em}.glass{background:var(--glass);border:1px solid var(--stroke);border-radius:var(--radius);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px #ffffff14,0 10px 30px #00000040}.glass.pad{padding:16px}.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--glass);border:1px solid var(--stroke);color:var(--text)}.icon-btn:hover{background:var(--glass-strong)}.icon-sq{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#ffffff17;border:1px solid var(--stroke)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{padding:16px;display:flex;flex-direction:column;gap:10px;min-height:140px;position:relative;overflow:hidden}.stat .label{color:var(--muted);font-size:13px}.stat .value{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1}.stat .more{position:absolute;right:0;bottom:0;font-size:11px;padding:6px 12px;border-top-left-radius:14px;background:#8b5cf659;border-top:1px solid var(--stroke);border-left:1px solid var(--stroke);color:#e9d5ff}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:22px 0 12px}.section-head h2{font-size:16px;font-weight:700;margin:0}.section-head a,.link{color:var(--muted);font-size:13px;cursor:pointer}.hscroll{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}.hscroll::-webkit-scrollbar{display:none}.quick{min-width:150px;padding:14px;display:flex;gap:10px;align-items:center;cursor:pointer}.quick:hover{background:var(--glass-strong)}.quick .t{font-size:13px;font-weight:600}.row{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:10px}.row .body{flex:1;min-width:0}.row .name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .sub{color:var(--muted);font-size:12px;margin-top:2px}.status{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--stroke)}.status.READY{color:var(--ok);border-color:#34d39966;background:#34d39914}.status.PROCESSING,.status.PENDING{color:var(--warn);border-color:#fbbf2466;background:#fbbf2414}.status.FAILED{color:var(--bad);border-color:#f8717166;background:#f8717114}.pills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.pill{padding:8px 14px;border-radius:999px;border:1px solid var(--stroke);background:var(--glass);font-size:13px;cursor:pointer;white-space:nowrap}.pill.active{background:#ffffff29;border-color:var(--stroke-strong);font-weight:600}.input{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--stroke);background:#00000040;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf640}textarea.input{min-height:90px;resize:vertical}.btn{padding:12px 18px;border-radius:14px;border:1px solid var(--stroke);background:var(--glass);cursor:pointer;font-weight:600}.btn.primary{background:var(--accent-grad);border:none;color:#fff;box-shadow:0 8px 24px #8b5cf666}.btn.primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.danger{color:var(--bad)}.btn.small{padding:8px 12px;font-size:13px;border-radius:10px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.help{font-size:12px;color:var(--faint);margin-top:6px}.error{color:var(--bad);font-size:13px;margin:8px 0}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.bar{height:8px;border-radius:999px;background:#ffffff14;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent-grad);border-radius:999px;transition:width .4s ease}.usage-head{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:6px}.bottomnav{position:fixed;left:50%;transform:translate(-50%);bottom:18px;width:min(440px,calc(100% - 36px));display:flex;padding:8px;gap:6px;z-index:10;border-radius:999px;background:#140c28bf;border:1px solid var(--stroke);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow)}.bottomnav a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 8px;border-radius:999px;color:var(--muted);font-size:13px;font-weight:600;transition:all .2s}.bottomnav a.active{background:var(--accent-grad);color:#fff;box-shadow:0 8px 22px #8b5cf673;flex:1.6}.bottomnav a span{display:none}.bottomnav a.active span{display:inline}.chat{display:flex;flex-direction:column;gap:12px;min-height:60vh}.msg{max-width:92%;padding:12px 14px;border-radius:18px;line-height:1.45;font-size:14px}.msg.user{align-self:flex-end;background:var(--accent-grad);color:#fff;border-bottom-right-radius:6px}.msg.assistant{align-self:flex-start;border-bottom-left-radius:6px}.msg .md p{margin:0 0 8px}.msg .md p:last-child{margin:0}.msg .md table{border-collapse:collapse;margin:8px 0;font-size:12px}.msg .md th,.msg .md td{border:1px solid var(--stroke);padding:4px 8px;text-align:left}.msg .md code{background:#00000059;padding:1px 5px;border-radius:5px;font-size:12px}.msg .md pre{background:#0006;padding:10px;border-radius:10px;overflow-x:auto;font-size:12px}.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.chip{font-size:11px;padding:3px 8px;border-radius:999px;background:#0000004d;border:1px solid var(--stroke);color:var(--muted)}.chip.ok{color:var(--ok)}.chip.fix{color:var(--warn)}details.sql summary{cursor:pointer;font-size:12px;color:var(--muted);margin-top:8px}details.sql pre{font-size:11px;white-space:pre-wrap}.resultwrap{overflow-x:auto;margin-top:8px;border-radius:10px;border:1px solid var(--stroke)}.resultwrap table{border-collapse:collapse;font-size:12px;min-width:100%}.resultwrap th{background:#ffffff0f;font-weight:600;text-align:left}.resultwrap th,.resultwrap td{padding:6px 10px;border-bottom:1px solid var(--stroke);white-space:nowrap}.composer{position:fixed;left:50%;transform:translate(-50%);bottom:90px;width:min(460px,calc(100% - 36px));display:flex;gap:8px;z-index:9}.composer input{flex:1}.typing{display:inline-flex;gap:4px;padding:6px 2px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--accent-2);animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.suggest{display:flex;gap:8px;flex-wrap:wrap}.srcgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.src{padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:8px}.src:hover,.src.active{background:var(--glass-strong);border-color:var(--accent)}.src .t{font-weight:600;font-size:14px}.src .h{font-size:12px;color:var(--muted)}.dropzone{border:1px dashed var(--stroke-strong);border-radius:16px;padding:24px;text-align:center;color:var(--muted);cursor:pointer}.dropzone.active{border-color:var(--accent);background:#8b5cf61a}.plan{padding:16px;margin-bottom:12px}.plan.current{border-color:var(--accent);box-shadow:0 0 0 2px #8b5cf640}.plan .price{font-size:26px;font-weight:800}.plan ul{margin:8px 0 12px;padding-left:18px;color:var(--muted);font-size:13px}.center{text-align:center;padding:40px 12px;color:var(--muted)}.fade{animation:fade .35s ease both}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.fade,.ambient:before,.ambient:after{animation:none}}.signin{min-height:100vh;display:grid;place-items:center;padding:24px}.signin .card{width:min(420px,100%);padding:28px;justify-self:center}.signin .hero{display:none}.signin .hero h1{font-size:44px;line-height:1.05;letter-spacing:-.03em;margin:18px 0 14px}.signin .hero p{color:var(--muted);font-size:16px;line-height:1.55;max-width:460px}.signin .hero ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px}.signin .hero li{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:14px}.signin .hero li .icon-sq{width:32px;height:32px;border-radius:10px}.logo{font-weight:800;font-size:26px;letter-spacing:-.03em;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}@media (min-width: 960px){.layout{display:flex;align-items:stretch}.sidenav{display:flex;flex-direction:column;gap:18px;width:260px;flex:none;position:sticky;top:0;height:100vh;padding:28px 18px 22px;border-right:1px solid var(--stroke);background:#0c07188c;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.sidenav .brand{cursor:pointer;padding:0 10px;display:flex;flex-direction:column;gap:2px}.sidenav .brand .tag{font-size:12px;color:var(--muted)}.sidenav nav{display:flex;flex-direction:column;gap:4px;margin-top:6px}.sidenav nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--muted);font-size:14px;font-weight:600;transition:background .15s,color .15s}.sidenav nav a:hover{background:var(--glass);color:var(--text)}.sidenav nav a.active{background:#8b5cf638;color:var(--text);box-shadow:inset 0 0 0 1px #a855f773}.sidenav>.btn{display:flex;align-items:center;justify-content:center;gap:8px}.sidenav .me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:var(--glass);border:1px solid var(--stroke)}.sidenav .me .body{flex:1;min-width:0}.sidenav .me .name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav .me .sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav .me .icon-btn{width:34px;height:34px;transform:scaleX(-1)}.shell{flex:1;max-width:1120px;margin:0;padding:32px 44px 60px}.bottomnav{display:none}.topbar{margin-bottom:26px}.topbar .title{font-size:22px}h1.page{font-size:26px}.grid2{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{min-height:150px}.stat .value{font-size:34px}.hscroll{flex-wrap:wrap;overflow:visible}.quick{flex:1 1 180px;min-width:0}.srcgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.composer{position:sticky;left:auto;transform:none;bottom:24px;width:100%;margin-top:18px}.chat{min-height:calc(100vh - 220px)}.msg{max-width:78%;font-size:15px}.signin{grid-template-columns:1.1fr 1fr;gap:48px;max-width:1040px;margin:0 auto}.signin .hero{display:block}}@media (min-width: 1280px){.shell{padding:40px 64px 60px}}
