:root{font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;color:#111827;background:#f6f8fc;font-synthesis:none;--blue:#0866f5;--navy:#05254c;--border:#dce3ed;--muted:#667085;--shadow:0 18px 50px rgba(19,49,89,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}.icon{width:21px;height:21px}.brand-mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--blue);color:#fff}.public-shell{min-height:100vh;background:#fff;display:flex;flex-direction:column}.public-brand{height:72px;border-bottom:1px solid #edf0f5;display:flex;align-items:center;gap:12px;padding:0 max(28px,calc((100vw - 1180px)/2));font-weight:700}.public-brand a{margin-left:auto;color:#475467;text-decoration:none;font-size:14px}.auth-stage{width:min(520px,calc(100% - 32px));margin:64px auto;flex:1}.auth-heading{text-align:center}.auth-heading h1{font-size:34px;letter-spacing:-.04em;margin:0 0 10px}.auth-heading p{color:var(--muted);margin:0}.stepper{display:flex;align-items:center;justify-content:center;margin:34px auto;width:260px}.stepper span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#e8edf5;color:#7c8798;font-size:13px;font-weight:700}.stepper span.active{background:var(--blue);color:#fff}.stepper i{height:2px;flex:1;background:#dfe5ee}.auth-panel{border:1px solid var(--border);border-radius:14px;padding:34px 38px;box-shadow:var(--shadow);position:relative}.auth-panel h2{font-size:20px;margin:0 0 7px}.subtle,.form-section>p{color:var(--muted);font-size:14px;margin:0 0 28px}.verified-line{color:#067647;background:#ecfdf3;border:1px solid #abefc6;padding:10px 12px;border-radius:8px;font-size:14px;margin:16px 0 24px}label{display:grid;gap:8px;font-weight:600;font-size:14px;margin:0 0 22px}input{width:100%;height:46px;border:1px solid #cfd7e5;border-radius:8px;padding:0 13px;outline:none;background:#fff;color:#111827}input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0866f51f}button{height:44px;border:0;border-radius:8px;background:var(--blue);color:#fff;font-weight:650;padding:0 20px}button:disabled{opacity:.6;cursor:wait}.auth-panel form>button:not(.text-button),.login-panel>button{width:100%}.text-button{background:transparent!important;color:#4b5f78!important;margin-top:10px}.error-box{margin-top:16px;padding:11px 13px;background:#fff1f1;border:1px solid #fecaca;color:#b42318;border-radius:8px;font-size:14px}.privacy-note{text-align:center;color:#7f8a9c;font-size:13px;margin-top:24px}.success-state{text-align:center}.success-state>span{display:grid;place-items:center;margin:0 auto 18px;width:56px;height:56px;border-radius:50%;background:#dcfae6;color:#079455;font-size:28px}.success-state p{color:var(--muted);margin:8px 0 25px}.public-shell footer{text-align:center;border-top:1px solid #edf0f5;padding:24px;color:#8993a3;font-size:12px}.login-shell{min-height:100vh;display:grid;place-items:center;background:#f5f7fb}.login-panel{width:min(420px,calc(100% - 32px));background:#fff;border:1px solid var(--border);border-radius:14px;padding:38px;box-shadow:var(--shadow)}.brand-mark.large{width:46px;height:46px}.login-panel h1{font-size:25px;margin:24px 0 6px}.login-panel>p{color:var(--muted);margin:0 0 28px}.login-panel>a{display:block;text-align:center;margin-top:20px;color:#667085;text-decoration:none;font-size:13px}.center{min-height:100vh;display:grid;place-items:center}.admin-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.admin-shell aside{position:fixed;inset:0 auto 0 0;width:248px;background:linear-gradient(180deg,#062e5d,#031c3d);color:#d7e6fa;padding:22px 14px;display:flex;flex-direction:column}.admin-brand{height:55px;display:flex;align-items:center;gap:11px;padding:0 10px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:20px}.admin-shell nav{display:grid;gap:6px}.admin-shell nav button,.logout{display:flex;align-items:center;gap:12px;background:transparent;color:#d4e1f1;text-align:left}.admin-shell nav button.active{background:#0871f9;color:#fff}.logout{margin-top:auto;width:100%}.admin-main{grid-column:2;padding:34px 38px;min-width:0}.admin-main>header{display:flex;justify-content:space-between;margin-bottom:28px}.admin-main h1{font-size:28px;margin:0 0 7px}.admin-main header p{margin:0;color:var(--muted);font-size:14px}.toolbar{display:flex;gap:10px;margin-bottom:18px}.toolbar input{max-width:460px}.toolbar .secondary{margin-left:auto;background:#fff;color:#344054;border:1px solid var(--border)}.table-wrap{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}th{text-align:left;background:#f8fafc;color:#475467;font-weight:650}th,td{height:54px;padding:0 14px;border-bottom:1px solid #edf1f5}tr:last-child td{border-bottom:0}.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.muted{color:#758195}.status{display:inline-flex;padding:5px 9px;border-radius:6px;font-size:12px}.status.success{color:#067647;background:#ecfdf3}.status.pending,.status.retry{color:#b54708;background:#fffaeb}.status.failed{color:#b42318;background:#fef3f2}.link{height:auto;background:transparent;color:var(--blue);padding:4px 7px}.link.danger{color:#d92d20}.empty{text-align:center;color:#8c96a5;padding:60px}.form-section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:30px;max-width:680px}.form-section h2{margin:0 0 8px}.form-section form{max-width:520px;margin-top:28px}.notice{background:#ecfdf3;color:#067647;border:1px solid #abefc6;border-radius:8px;padding:11px 14px;margin-bottom:20px;font-size:14px}@media(max-width:800px){.admin-shell{display:block}.admin-shell aside{position:static;width:100%;height:auto;padding:10px 14px}.admin-brand{margin:0}.admin-shell nav{display:flex;overflow:auto;margin-top:10px}.admin-shell nav button{flex:0 0 auto}.logout{display:none}.admin-main{padding:24px 16px}.toolbar{flex-wrap:wrap}.toolbar input{max-width:none}.toolbar .secondary{margin-left:0}.auth-stage{margin:38px auto}.auth-panel{padding:27px 22px}.public-brand{padding:0 18px}.public-brand a{font-size:12px}.admin-main h1{font-size:24px}}@media(prefers-reduced-motion:no-preference){button{transition:transform .15s,background .15s}button:hover:not(:disabled){transform:translateY(-1px)}}
