:root{--bg:#f8fafc;--surface:#fff;--text:#0f172a;--text-2:#475569;--muted:#64748b;--border:#e2e8f0;--border-strong:#cbd5e1;--fill:#f1f5f9;--primary:#4f46e5;--primary-hover:#4338ca;--primary-soft:#4f46e514;--primary-ring:#4f46e529;--success:#15803d;--success-bg:#f0fdf4;--danger:#b91c1c;--danger-bg:#fef2f2;--danger-border:#fecaca;--ink:#0f172a;--ink-2:#1e293b;--radius-sm:.375rem;--radius:.5rem;--radius-lg:.75rem;--shadow-card:0 1px 2px #0f172a0f;--shadow-pop:0 8px 24px -8px #0f172a2e;--transition:.15s ease;color:var(--text);background-color:var(--bg);font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.6}*{box-sizing:border-box}html{background:var(--bg)}body{-webkit-font-smoothing:antialiased;margin:0}::selection{color:#fff;background:var(--primary)}a{color:var(--primary);border-radius:var(--radius-sm);transition:color var(--transition);text-decoration:none}a:hover{color:var(--primary-hover);text-underline-offset:.15em;text-decoration:underline}main{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:28rem;box-shadow:var(--shadow-card);margin:3.5rem auto;padding:2.25rem}.shell main{max-width:64rem;box-shadow:none;background:0 0;border:none;margin:0 auto;padding:2rem 1.5rem 4rem}main.home{max-width:62rem;box-shadow:none;background:0 0;border:none;border-radius:0;margin:0 auto;padding:0 1.5rem 4rem}h1{letter-spacing:-.02em;margin-top:0;margin-bottom:.375rem;font-size:1.5rem;font-weight:700;line-height:1.3}main>p{color:var(--text-2)}.topbar{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;min-height:3.5rem;padding:0 1.5rem;display:flex;position:sticky;top:0}.topbar__brand{letter-spacing:-.01em;color:var(--text);font-size:.95rem;font-weight:650}.topbar__brand:hover{color:var(--text);text-decoration:none}.topbar__nav{flex-wrap:wrap;flex:1;gap:.125rem;display:flex}.topbar__nav a{color:var(--text-2);border-radius:var(--radius-sm);transition:color var(--transition), background-color var(--transition);padding:.4rem .7rem;font-size:.9rem}.topbar__nav a:hover{color:var(--text);background:var(--fill);text-decoration:none}.topbar__nav a.active{color:var(--primary);background:var(--primary-soft);font-weight:600}.topbar__account{flex-wrap:wrap;align-items:center;gap:.125rem .875rem;font-size:.875rem;display:flex}.topbar__account a{color:var(--muted)}.topbar__account a:hover{color:var(--primary);text-decoration:none}.topbar__account a.active{color:var(--primary);font-weight:600}.topbar__account button{color:var(--muted);border-radius:var(--radius-sm);box-shadow:none;cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem}.topbar__account button:hover:not(:disabled){color:var(--danger);text-underline-offset:.15em;background:0 0;text-decoration:underline;transform:none}main.auth{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);max-width:54rem;margin:5rem auto;padding:0;display:grid;overflow:hidden}.auth-brand{color:#cbd5e1;background:var(--ink);flex-direction:column;justify-content:center;gap:.875rem;padding:3rem 2.5rem;display:flex}.auth-brand .brand-badge{letter-spacing:.08em;color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:999px;align-self:flex-start;margin:0;padding:.3rem .8rem;font-size:.78rem;font-weight:600}.auth-brand .brand-title{letter-spacing:-.02em;color:#fff;margin:0;font-size:1.75rem;font-weight:700;line-height:1.25}.auth-brand .brand-tagline{color:#cbd5e1;margin:0;font-size:.95rem}.auth-brand ul.brand-points{color:#94a3b8;flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;font-size:.88rem;list-style:none;display:flex}.auth-brand ul.brand-points li:before{content:"—";color:var(--primary);margin-right:.5rem}.auth-panel{background:var(--surface);padding:2.75rem 2.5rem}section.hero{border-top:none;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:3rem;margin-top:0;padding:4.5rem 0 3.5rem;display:grid}.hero .eyebrow{letter-spacing:.05em;color:var(--primary);background:var(--primary-soft);border:1px solid var(--primary-ring);border-radius:999px;align-items:center;gap:.4rem;margin:0 0 1.125rem;padding:.32rem .85rem;font-size:.8rem;font-weight:600;display:inline-flex}.hero h1{letter-spacing:-.03em;color:var(--text);margin-bottom:.875rem;font-size:2.75rem;line-height:1.15}.hero p{max-width:30rem;color:var(--text-2);font-size:1.02rem}.hero p:last-of-type{margin-bottom:0}.hero-visual{align-items:center;min-height:12rem;display:grid}.hero-steps{counter-reset:step;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.hero-steps li{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);counter-increment:step;align-items:center;gap:.5rem;padding:.55rem .9rem;font-size:.9rem;font-weight:600;display:flex}.hero-steps li:before{content:counter(step);width:1.25rem;height:1.25rem;color:var(--primary);background:var(--primary-soft);border-radius:50%;place-items:center;font-size:.75rem;font-weight:600;display:inline-grid}.hero-steps li:not(:last-child):after{content:"→";color:var(--muted);margin-left:.5rem}section.features{border-top:none;margin-top:1rem;padding-top:0}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.125rem;margin-top:1.25rem;display:grid}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition), box-shadow var(--transition);padding:1.5rem 1.375rem}.feature-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-pop)}.feature-card .feature-icon{width:2.5rem;height:2.5rem;color:var(--primary);background:var(--primary-soft);border-radius:var(--radius);justify-content:center;align-items:center;margin-bottom:.875rem;display:inline-flex}.feature-card .feature-icon svg{width:1.35rem;height:1.35rem}.feature-card h3{letter-spacing:-.01em;margin:0 0 .375rem;font-size:1.02rem;font-weight:650}.feature-card p{color:var(--text-2);margin:0;font-size:.88rem}.cta-row{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}a.btn-primary,a.btn-secondary{text-align:center;border-radius:var(--radius);transition:color var(--transition), background-color var(--transition), border-color var(--transition);padding:.65rem 1.4rem;font-size:.95rem;font-weight:600;display:inline-block}a.btn-primary{color:#fff;background:var(--primary);border:1px solid #0000}a.btn-primary:hover{color:#fff;background:var(--primary-hover);text-decoration:none}a.btn-secondary{color:var(--text);background:var(--surface);border:1px solid var(--border-strong)}a.btn-secondary:hover{color:var(--text);background:var(--fill);text-decoration:none}.nav-grid{flex-direction:column;gap:1.25rem;display:flex}.nav-section-title{letter-spacing:.06em;color:var(--muted);margin:0 0 .625rem;font-size:.75rem;font-weight:600}.nav-pills{flex-wrap:wrap;gap:.5rem;display:flex}.nav-pills a,.nav-pills button[type=button]{color:var(--text-2);background:var(--surface);border:1px solid var(--border);transition:color var(--transition), background-color var(--transition), border-color var(--transition);border-radius:999px;padding:.45rem .85rem;font-size:.875rem;font-weight:500;text-decoration:none}.nav-pills a:hover,.nav-pills button[type=button]:hover{color:var(--primary);background:var(--primary-soft);border-color:var(--primary-ring);text-decoration:none}form{flex-direction:column;gap:1.125rem;margin-top:1.5rem;display:flex}.shell main>form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:34rem;box-shadow:var(--shadow-card);padding:1.5rem}label{color:var(--text-2);flex-direction:column;gap:.375rem;font-size:.875rem;font-weight:500;display:flex}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color var(--transition), box-shadow var(--transition);padding:.65rem .8rem;font-family:inherit}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted)}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--muted)}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}input:disabled,textarea:disabled,select:disabled{color:var(--muted);background:var(--fill);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:1rem;height:1rem;accent-color:var(--primary);padding:0}fieldset{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.625rem;margin:0;padding:1rem 1.125rem;display:flex}fieldset:disabled{opacity:.6}legend{color:var(--text-2);padding:0 .375rem;font-size:.85rem;font-weight:600}button{font:inherit;color:#fff;background:var(--primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);border:1px solid #0000;padding:.6rem 1.125rem;font-weight:500}button:hover:not(:disabled){background:var(--primary-hover)}button:active:not(:disabled){filter:brightness(.96)}button[type=button]{color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong)}button[type=button]:hover:not(:disabled){color:var(--text);background:var(--fill);border-color:var(--muted)}.button-row button,td button{padding:.35rem .7rem;font-size:.85rem}button:disabled{cursor:not-allowed;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.oauth button[type=button]{text-align:center;width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);margin-top:.5rem;padding:.6rem 1rem;font-weight:500;display:block}.oauth button[type=button]:hover:not(:disabled){color:var(--text);background:var(--fill);border-color:var(--muted)}.auth form{gap:1.375rem}.auth form label{gap:.5rem}.auth form button[type=submit]{width:100%;margin-top:.25rem;padding:.7rem 1rem;font-weight:600}.auth form .btn-primary{padding:.8rem 1rem;font-weight:600}.auth nav{justify-content:center;font-size:.8rem}.auth nav a{color:var(--muted);font-weight:400}.auth nav a:hover{color:var(--primary)}nav{flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.5rem;font-size:.875rem;display:flex}.error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius);margin:0;padding:.625rem .75rem;font-size:.875rem}.hint{color:var(--muted);margin:.375rem 0;font-size:.875rem}.hint[role=status]{color:var(--success);background:var(--success-bg);border-radius:var(--radius);border:1px solid #bbf7d0;padding:.625rem .75rem}.status{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.3rem .85rem;font-size:.85rem;font-weight:500;display:inline-flex}.status:before{content:"";background:var(--muted);border-radius:50%;flex:none;width:.5rem;height:.5rem}.status--online{color:var(--success);background:var(--success-bg);border-color:#bbf7d0}.status--online:before{background:#22c55e}.status--offline{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.status--offline:before{background:#ef4444}.signed-in{margin-top:1.5rem;font-size:.95rem}.muted{color:var(--muted);font-size:.85rem}section{border-top:1px solid var(--border);margin-top:2rem;padding-top:1.5rem}.shell section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.5rem}section h2{letter-spacing:-.01em;margin-top:0;margin-bottom:.5rem;font-size:1.05rem;font-weight:600}section.oauth>p:first-child{color:var(--muted);text-align:center;font-size:.85rem}.shell main>article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition), box-shadow var(--transition);margin-top:.75rem;padding:1.125rem 1.25rem}.shell main>article:hover{border-color:var(--border-strong);box-shadow:var(--shadow-pop)}.shell main>article h2{margin:0 0 .375rem;font-size:1rem;font-weight:600;line-height:1.45}.shell main>article h2 a{color:var(--text)}.shell main>article h2 a:hover{color:var(--primary);text-decoration:none}.shell main>article p{margin:.25rem 0 0}table{background:var(--surface);border:1px solid var(--border);border-collapse:separate;border-spacing:0;border-radius:var(--radius);width:100%;margin-top:.75rem;overflow:hidden}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--border);padding:.625rem .75rem;font-size:.875rem}tr:last-child td{border-bottom:none}thead th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--fill);font-size:.75rem;font-weight:600}tbody tr{transition:background-color var(--transition)}tbody tr:hover,tr.edit-row td{background:var(--primary-soft)}pre.payload,pre.report-body{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem;margin:.5rem 0;padding:.75rem .875rem;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.55;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.button-row{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}ul.pipeline{margin:.5rem 0;padding-left:1.25rem;font-size:.85rem}form.edit-follow{background:var(--fill);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}@media (width<=52rem){main.auth{grid-template-columns:1fr;margin:3rem auto}.auth-brand{padding:2rem 2.5rem}.auth-brand ul.brand-points{display:none}section.hero{grid-template-columns:1fr;gap:1.5rem;padding:3.25rem 0 2.5rem}.hero-visual{min-height:0}}@media (width<=36rem){main,main.auth{border-left:none;border-right:none;border-radius:0;margin:0 auto}.shell main{border:none;padding:1.25rem 1rem 3rem}main.home{padding:0 1.25rem 3rem}.hero h1{font-size:2.1rem}.topbar{padding:.5rem 1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
