:root{--bg:#EEF3F8;--card:rgba(255,255,255,.76);--line:rgba(51,112,255,.14);--blue:#3370FF;--text:#1F2329;--muted:#6B7280;--green:#00B96B;--red:#F54A45;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(1000px 520px at 88% -10%,rgba(51,112,255,.09),transparent 60%),radial-gradient(760px 450px at 0 100%,rgba(0,185,107,.045),transparent 60%),var(--bg)}button,input{font:inherit}.login-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;padding:24px}.login-brand,.login-panel{min-height:calc(100vh - 48px)}.login-brand{position:relative;overflow:hidden;padding:48px 60px;border:.5px solid var(--line);border-radius:14px 0 0 14px;background:rgba(255,255,255,.44);box-shadow:0 1px 2px rgba(0,40,120,.04),0 4px 24px rgba(0,40,120,.04)}.brand-logo,.header-logo{width:148px;height:auto}.brand-lines{position:absolute;right:-110px;bottom:21%;width:390px;height:1px;background:rgba(51,112,255,.25);box-shadow:0 -52px rgba(51,112,255,.11),0 52px rgba(0,185,107,.08);transform:rotate(-38deg)}.login-panel{display:grid;place-items:center;border:.5px solid var(--line);border-left:0;border-radius:0 14px 14px 0;background:rgba(255,255,255,.28)}.login-card{width:min(390px,calc(100% - 48px));padding:32px 28px;border:.5px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 1px 2px rgba(0,40,120,.04),0 4px 24px rgba(0,40,120,.04);backdrop-filter:blur(20px)}.eyebrow{margin:0 0 12px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.16em}.login-card h1{margin:0 0 32px;font-size:30px;letter-spacing:-.045em}.login-card label{display:block;margin:16px 0 0;font-size:12.5px;font-weight:500}.login-card input{width:100%;height:44px;margin-top:7px;padding:0 12px;border:.5px solid rgba(51,112,255,.22);border-radius:8px;color:var(--text);background:rgba(255,255,255,.8);outline:0}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(51,112,255,.12)}button{min-height:44px;border:1px solid var(--blue);border-radius:8px;padding:0 20px;color:#fff;background:var(--blue);font-weight:500;cursor:pointer}button:hover:not(:disabled){background:#2860E6}button:disabled{cursor:default;border-color:#8AAEFF;background:#8AAEFF}.form-error{margin:16px 0 0;padding:9px 12px;border-left:2px solid var(--red);color:#D83A35;background:rgba(245,74,69,.08);font-size:13px}.login-card button{width:100%;margin-top:22px}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 max(24px,calc((100vw - 1120px)/2));border-bottom:.5px solid var(--line);background:rgba(255,255,255,.62);backdrop-filter:blur(20px)}.header-logo{width:128px}.text-button{min-height:auto;border:0;padding:8px 12px;color:var(--muted);background:transparent;font-size:13px;font-weight:400}.text-button:hover:not(:disabled){color:var(--blue);background:rgba(51,112,255,.08)}.content{width:min(760px,calc(100% - 40px));margin:0 auto;padding:72px 0}.page-title h1{margin:0;font-size:32px;letter-spacing:-.045em}.job-card{margin-top:32px;padding:28px;border:.5px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 1px 2px rgba(0,40,120,.04),0 4px 24px rgba(0,40,120,.04);backdrop-filter:blur(20px)}.card-head{display:flex;justify-content:space-between;gap:16px}.card-title{margin:0;font-size:16px;font-weight:600}.muted{margin:8px 0 0;color:var(--muted);font-size:13px}.tag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;color:var(--muted);background:rgba(107,114,128,.10);font-size:12px;white-space:nowrap}.tag.querying,.tag.preparing,.tag.writing{color:var(--blue);background:rgba(51,112,255,.10)}.tag.done{color:#008955;background:rgba(0,185,107,.10)}.tag.failed{color:#D83A35;background:rgba(245,74,69,.10)}.progress-wrap{height:7px;margin-top:30px;overflow:hidden;border-radius:999px;background:rgba(51,112,255,.10)}.progress-bar{width:0;height:100%;border-radius:inherit;background:var(--blue);transition:width .25s ease}.progress-text{margin:10px 0 24px;color:var(--muted);font-size:13px}.job-card button{width:100%}@media(max-width:760px){.login-shell{display:block;padding:0}.login-brand{display:none}.login-panel{min-height:100vh;border:0;border-radius:0}.content{padding-top:48px}.job-card{padding:22px}.topbar{padding:0 20px}}
