:root{--ink: #24303d;--ink-2: #475263;--ink-soft: #475263;--paper: #ffffff;--page: #f2f4f9;--line: #e5e7eb;--line-strong: #d1d5db;--line-weak: #eef1f5;--sunken: #f2f4f7;--muted: #6f7a8c;--muted-ink: #5d6a7e;--disabled: #9aa4b2;--accent: #1668c4;--accent-hover: #0f55a6;--accent-active: #0b4fa8;--accent-mid: #1e78d2;--accent-weak: #e8f1fb;--blue-50: #eaf2fb;--blue-100: #d3e5f7;--blue-200: #b0d0f0;--blue-300: #7fb3e8;--gold: #f0940a;--success: #059669;--success-weak: #d1fae5;--warning: #d97706;--warning-weak: #fef3c7;--danger: #dc2626;--danger-weak: #fee2e2;--purple: #6d28d9;--purple-weak: #ede9fe;--sidebar: #0e1a2e;--sidebar-text: #93a3c4;--sidebar-strong: #c3d0ea;--sidebar-muted: #64779e;--sidebar-line: rgba(255, 255, 255, .1);--sidebar-rail: #24345a;--radius: 6px;--radius-card: 12px;--radius-modal: 14px;--shadow-soft: 0 1px 3px rgba(15, 23, 42, .08);--shadow-panel: 0 4px 12px rgba(15, 23, 42, .1);--shadow-pop: 0 12px 32px rgba(15, 23, 42, .14);--sans: "PingFang SC", "Noto Sans SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "IBM Plex Mono", Menlo, Consolas, monospace;color:var(--ink);background:var(--page);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:1.55}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--page)}.mono,.readout{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em}button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:13px;font-weight:400;min-height:34px;padding:0 14px;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s}button:hover:not(:disabled){border-color:#bfc8d5;background:#f8f9fb}button:active:not(:disabled){transform:translateY(1px)}button:disabled{background:#eef2f7;border-color:var(--line);color:var(--disabled);cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.primary:active:not(:disabled){background:var(--accent-active)}button.primary:disabled{background:#8ab2dd;border-color:#8ab2dd;color:#fff}button.secondary{background:#f5f8ff;border-color:#b8c9ff;color:var(--accent-mid);font-weight:600}button.secondary:hover:not(:disabled){background:var(--blue-50);border-color:var(--accent-mid);color:var(--accent)}button.danger-btn,.modal-actions button.danger-btn{background:#fff7f7;border-color:#fecaca;color:#b91c1c}button.danger-btn:hover:not(:disabled){background:var(--danger-weak);border-color:#fca5a5;color:#991b1b}label{color:var(--muted-ink);display:grid;font-size:13px;font-weight:400;gap:6px}input,select,textarea{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);font:inherit;font-size:13px;min-height:34px;min-width:0;padding:0 11px;transition:border-color .14s,box-shadow .14s}input::placeholder{color:var(--disabled)}input:hover:not(:disabled),select:hover,textarea:hover{border-color:#bfc8d5}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1668c41f}input:disabled{color:var(--disabled);background:var(--sunken)}h1,h2,p{margin:0}.login-stage{padding:0 22px 26px;flex:1}@media(max-width:640px){.login-stage{padding:0 12px 12px}}.login-stage{--lg-blue: #1668c4;--lg-blue-deep: #0b4fa8;--lg-blue-hover: #0f55a6;--lg-blue-soft: rgba(22, 104, 196, .1);--lg-orange: #f0940a;--lg-ink: #24303d;--lg-muted: #5e6b7a;--lg-faint: #93a1b0;--lg-line: #d9e1ea;--lg-card-line: #e6ecf3;background:#f3f6fa;color:var(--lg-ink);display:flex;flex-direction:column;min-height:100vh;min-width:0}.login-wrap{align-items:center;display:flex;flex:1;justify-content:center;padding:44px 48px 20px}.login-grid{align-items:stretch;display:grid;gap:24px;grid-template-columns:minmax(0,1fr) 464px;max-width:1280px;width:100%}.login-left{display:flex;flex-direction:column;gap:24px;min-width:0}.login-hero{background:linear-gradient(150deg,#0a4396,#1160bc 55%,#1e78d2);border-radius:20px;color:#fff;display:flex;flex:1;flex-direction:column;overflow:hidden;padding:32px 42px 36px;position:relative}.login-hero:before{background:radial-gradient(520px 340px at 88% 10%,rgba(245,168,28,.16),transparent 65%),radial-gradient(640px 460px at 4% 98%,rgba(7,38,88,.38),transparent 72%);content:"";inset:0;pointer-events:none;position:absolute}.login-hero>*{position:relative}.login-hero-brand{display:grid;gap:3px;justify-items:start}.login-hero-brand b{font-size:15px;font-weight:600;letter-spacing:.22em}.login-hero-brand small{color:#ffffff8c;font-family:var(--mono);font-size:9.5px;letter-spacing:.28em}.login-hero-main{align-items:center;display:grid;flex:1;gap:28px;grid-template-columns:minmax(0,1fr) 340px;min-height:0}.login-hero-copy{display:grid;gap:16px;justify-items:start}.login-hero-copy h1{color:#fff;font-size:32px;font-weight:600;letter-spacing:.06em;line-height:1.5;margin:0}.login-hero-copy h1 em{color:#ffc35c;font-style:normal}.login-hero-copy p{color:#ffffffbf;font-size:14px;line-height:1.95;margin:0}.login-hero-art{align-self:center;height:auto;max-height:300px;width:100%}.login-feats{display:grid;gap:20px;grid-template-columns:repeat(2,1fr);list-style:none;margin:0;padding:0}.login-feat{align-items:flex-start;background:#fff;border:1px solid var(--lg-card-line);border-radius:16px;box-shadow:0 8px 28px #102d540d;display:flex;gap:14px;padding:18px 20px;transition:box-shadow .18s,transform .18s}.login-feat:hover{box-shadow:0 14px 36px #102d5417;transform:translateY(-2px)}.login-feat-ico{align-items:center;background:var(--lg-blue-soft);border-radius:12px;color:var(--lg-blue);display:flex;flex-shrink:0;height:44px;justify-content:center;position:relative;width:44px}.login-feat-ico:after{background:var(--lg-orange);border-radius:50%;content:"";height:5px;position:absolute;right:8px;top:8px;width:5px}.login-feat-txt{display:grid;gap:4px;padding-top:1px}.login-feat-txt b{color:var(--lg-ink);font-size:14.5px;font-weight:600;letter-spacing:.04em}.login-feat-txt span{color:var(--lg-muted);font-size:12px;line-height:1.65}.login-card{background:#fff;border:1px solid var(--lg-card-line);border-radius:20px;box-shadow:0 18px 60px #102d541a;display:flex;flex-direction:column;padding:38px 40px 26px;position:relative}.login-card:before{background:linear-gradient(90deg,var(--lg-blue-deep),var(--lg-blue) 55%,var(--lg-orange));border-radius:20px 20px 0 0;content:"";height:4px;left:-1px;position:absolute;right:-1px;top:-1px}.login-card-main{align-content:center;display:grid;flex:1;gap:16px}.login-brand-block{display:grid;gap:2px;justify-items:center;margin-bottom:10px}.login-brand-block img{display:block;width:172px}.login-brand-block h2{color:var(--lg-ink);font-size:18px;font-weight:600;letter-spacing:.12em;margin:6px 0 0;text-indent:.12em}.login-brand-block p{color:var(--lg-muted);font-size:13px;margin:8px 0 0}.login-field{color:var(--lg-muted);display:grid;font-size:12.5px;gap:6px}.login-field input{background:#fff;border:1px solid var(--lg-line);border-radius:10px;color:var(--lg-ink);font-size:14.5px;min-height:45px;padding:0 14px;transition:border-color .15s,box-shadow .15s;width:100%}.login-field input:hover{background:#fff;border-color:var(--lg-muted)}.login-field input:focus{background:#fff;border-color:var(--lg-blue);box-shadow:0 0 0 3px var(--lg-blue-soft)}.login-password{display:flex;position:relative}.login-password input{padding-right:44px}.login-password button{background:none;border:0;border-radius:8px;color:var(--lg-faint);height:34px;min-height:34px;padding:0;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px}.login-password button:hover:not(:disabled){background:none;border:0;color:var(--lg-muted)}.login-error{color:#d6453d;font-size:12.5px;margin:-4px 0 0}.login-submit{background:var(--lg-blue);border:0;border-radius:10px;color:#fff;font-size:15px;font-weight:600;letter-spacing:.18em;margin-top:4px;min-height:47px;text-indent:.18em}.login-submit:hover:not(:disabled){background:var(--lg-blue-hover);border:0}.login-submit:active:not(:disabled){background:var(--lg-blue-deep)}.login-submit:disabled{background:var(--lg-blue);border:0;color:#fff;letter-spacing:.04em;opacity:.75;text-indent:.04em}.login-card-foot{border-top:1px solid var(--lg-line);color:var(--lg-faint);display:flex;font-size:12px;justify-content:center;margin-top:auto;padding-top:16px}.login-basebar{color:var(--lg-faint);font-size:12px;padding:14px 24px 22px;text-align:center}.login-basebar span+span:before{color:var(--lg-line);content:"·";margin:0 10px}@media(max-height:820px){.login-wrap{padding:26px 40px 10px}.login-grid,.login-left{gap:18px}.login-feats{gap:16px}.login-hero{padding:24px 36px 28px}.login-hero-art{max-height:210px}.login-feat{padding:14px 16px}.login-card{padding:28px 36px 20px}.login-brand-block img{width:150px}}@media(max-width:1100px){.login-grid{grid-template-columns:minmax(0,1fr) 400px;gap:20px}.login-hero-main{grid-template-columns:minmax(0,1fr)}.login-hero-art{display:none}.login-feats{grid-template-columns:minmax(0,1fr);gap:12px}.login-feat{padding:12px 16px}}@media(max-width:760px){.login-wrap{padding:24px 16px 12px}.login-grid{display:flex;flex-direction:column;max-width:480px;gap:20px}.login-card{order:-1;padding:24px}.login-brand-block img{width:128px}.login-brand-block h2{font-size:17px;letter-spacing:.02em;text-indent:0}.login-hero{display:none}.login-feats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.login-feat{padding:12px;gap:8px}.login-feat-ico{width:32px;height:32px;border-radius:8px}.login-feat-txt b{font-size:13px}.login-basebar{padding:12px 16px 20px}}@media(max-width:380px){.login-card{padding:20px}.login-feats{grid-template-columns:minmax(0,1fr)}}.workspace-entry-status{min-height:100vh;display:grid;place-content:center;gap:16px;text-align:center}@media(prefers-reduced-motion:reduce){.login-stage *,.login-stage *:before,.login-stage *:after{transition:none!important;animation:none!important}}
