:root{color-scheme:dark;--bg:#0b1020;--panel:#121a2f;--panel2:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--line:#24324f;--primary:#7c3aed;--primary2:#a78bfa;--good:#16a34a;--bad:#ef4444;--warn:#f59e0b}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at top left,#1e1b4b,#0b1020 35%,#050816);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:#c4b5fd;text-decoration:none}
a:hover{text-decoration:underline}
code,pre{background:#090d18;border:1px solid var(--line);border-radius:8px;color:#dbeafe}
code{padding:.12rem .35rem;word-break:break-all}
pre{padding:1rem;overflow:auto}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1rem 5vw;background:rgba(5,8,22,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.65rem;font-weight:800;color:#fff}
.brand img{width:32px;height:32px;border-radius:8px}
.topbar nav{display:flex;align-items:center;gap:1rem}
.container{width:min(1180px,90vw);margin:2rem auto}
.footer{display:flex;justify-content:space-between;gap:1rem;width:min(1180px,90vw);margin:4rem auto 2rem;color:var(--muted);font-size:.9rem}
.card{background:linear-gradient(180deg,rgba(18,26,47,.94),rgba(15,23,42,.94));border:1px solid var(--line);border-radius:20px;padding:1.5rem;box-shadow:0 24px 80px rgba(0,0,0,.25)}
.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:2rem;align-items:center}
.hero h1,.card h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;margin:.2rem 0 1rem}
.card h2{margin-top:0}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:700;color:var(--primary2)}
.muted,.hint{color:var(--muted)}
.hint{font-size:.9rem}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem}
.button,button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;padding:.72rem 1rem;background:#1e293b;color:#fff;font-weight:700;cursor:pointer}
.button.primary,button.primary{background:linear-gradient(135deg,var(--primary),#2563eb);border-color:transparent}
.button.small{padding:.4rem .65rem;border-radius:9px;font-size:.86rem}
.button:hover,button:hover{text-decoration:none;filter:brightness(1.08)}
button.link,.link{background:transparent;border:0;color:#c4b5fd;padding:0;font-weight:700}
.danger{color:#fca5a5!important}
.inline{display:inline}
.grid{display:grid;gap:1.3rem;margin-top:1.3rem}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.uneven{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}
.wide{grid-column:1/-1}
.narrow{max-width:620px;margin-inline:auto}
.auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}
.meta-panel{display:grid;gap:.7rem}
.meta-panel div,.kv dd{background:#0b1222;border:1px solid var(--line);border-radius:12px;padding:.75rem}
.meta-panel span,.kv dt{display:block;color:var(--muted);font-size:.82rem;margin-bottom:.3rem}
.form{display:grid;gap:1rem}
.form label{display:grid;gap:.4rem;color:#dbeafe;font-weight:650}
.form input,.form select,.form textarea,table input,table select,.card textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:#0b1222;color:#fff;padding:.72rem}
.form textarea{resize:vertical}
.checkbox{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.55rem!important}
.checkbox input{width:auto}
.flash-wrap{display:grid;gap:.7rem;margin-bottom:1rem}
.flash{border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem;background:#0b1222}
.flash.success{border-color:rgba(22,163,74,.6);background:rgba(22,163,74,.14)}
.flash.error{border-color:rgba(239,68,68,.6);background:rgba(239,68,68,.14)}
.tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.2rem}
.tabs a{padding:.62rem .9rem;border:1px solid var(--line);border-radius:999px;background:#0b1222;color:#dbeafe}
.tabs a.active{background:linear-gradient(135deg,var(--primary),#2563eb);border-color:transparent;color:#fff}
.stat span{display:block;color:var(--muted)}
.stat strong{font-size:2.4rem}
.list{display:grid;gap:.8rem;padding-left:1.1rem}
.steps{display:grid;gap:.55rem}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;border-bottom:1px solid var(--line);padding:.85rem;vertical-align:top}
th{color:#bfdbfe;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}
.badge{display:inline-flex;border-radius:999px;padding:.18rem .55rem;font-weight:800;font-size:.78rem}
.badge.good{background:rgba(22,163,74,.16);color:#86efac}
.badge.bad{background:rgba(239,68,68,.16);color:#fca5a5}
.block{display:block;margin:.15rem 0}
.compact{max-width:220px}
.actions-cell{white-space:nowrap}
.kv{display:grid;gap:.8rem}
.mt{margin-top:1rem}
.consent-box{border:1px solid var(--line);border-radius:14px;padding:1rem;background:#0b1222}
@media (max-width:900px){
  .hero,.grid.two,.grid.three,.grid.four,.grid.uneven,.auth-grid{grid-template-columns:1fr}
  .topbar,.footer{align-items:flex-start;flex-direction:column}
  .topbar nav{flex-wrap:wrap}
  .container{width:min(94vw,1180px)}
}

/* OIDC team login/register screens */
body.sso-page{min-height:100vh;color:#151515;background:#f5f2e9;background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px);background-size:28px 28px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.sso-shell{width:min(430px,92vw);margin:2.2rem auto;text-align:center}
.sso-wide{width:min(640px,92vw);margin-top:4rem}
.team-avatar,.account-avatar{display:inline-grid;place-items:center;border-radius:999px;background:radial-gradient(circle at 35% 30%,#0b6b4a,#083927 72%);color:#fff;font-weight:900;box-shadow:0 0 0 8px rgba(18,124,87,.12),0 10px 28px rgba(0,0,0,.18)}
.team-avatar{width:54px;height:54px;margin-bottom:1rem}
.sso-shell h1{margin:.2rem 0 .55rem;font-size:2.05rem;line-height:1.1;font-weight:900;letter-spacing:-.04em}
.team-name{margin:0 0 .25rem;color:#5d5d57;font-weight:800}
.sso-subtitle{margin:0 auto 1.6rem;color:#6d6b63;line-height:1.55}
.sso-card{padding:1.35rem;border:1px solid rgba(4,120,87,.35);border-radius:10px;background:rgba(255,255,255,.72);box-shadow:0 12px 45px rgba(44,62,52,.12);text-align:left}
.sso-form{display:grid;gap:.95rem}
.sso-form label{display:grid;gap:.45rem;color:#111;font-weight:800;font-size:.92rem}
.sso-form input,.sso-form select{width:100%;height:45px;border:1px solid #c9c7bd;border-radius:7px;background:#fff;color:#111;padding:0 .9rem;font-size:1rem}
.sso-form input:focus,.sso-form select:focus{outline:2px solid rgba(5,120,87,.22);border-color:#0f7a57}
.sso-inline{display:grid;grid-template-columns:1fr 96px;gap:.6rem}
.sso-primary{width:100%;height:46px;border:0;border-radius:7px;background:linear-gradient(105deg,#073f31,#0e6f51 52%,#7b4d05);color:#fff;font-weight:900}
.sso-secondary{height:45px;border:1px solid #d0cec4;border-radius:7px;background:#fff;color:#111;font-weight:800}
.sso-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.5rem!important;font-weight:650!important;color:#555!important}
.sso-check input{width:auto;height:auto}
.sso-bottom{margin:1rem 0 .2rem;color:#6d6b63}
.sso-bottom a,.sso-link{color:#111;text-decoration:underline;font-weight:900;background:transparent;border:0;padding:0}
.sso-bottom.small{font-size:.92rem;margin-top:.45rem}
.sso-flash{margin-top:1rem;display:grid;gap:.5rem;text-align:left}
.sso-flash div{padding:.75rem .9rem;border-radius:8px;background:#fff;border:1px solid #ddd}
.sso-flash .error{border-color:#ef4444;color:#991b1b;background:#fff1f2}
.account-choice{width:100%;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:1rem;padding:1rem;border:1px solid rgba(4,120,87,.28);border-radius:8px;background:rgba(255,255,255,.82);color:#111;text-align:left;box-shadow:0 10px 35px rgba(44,62,52,.10)}
.account-choice:hover{filter:none;border-color:rgba(4,120,87,.55)}
.account-avatar{width:46px;height:46px}
.account-main{display:grid;gap:.12rem}
.account-main strong{font-size:1rem}
.account-main small,.continue-text{color:#6d6b63;font-weight:650}
.sso-add{margin-top:1rem;text-align:center}
@media (max-width:560px){.sso-shell{margin-top:1.2rem}.sso-shell h1{font-size:1.7rem}.sso-inline{grid-template-columns:1fr}.account-choice{grid-template-columns:42px 1fr}.continue-text{display:none}}

/* Partner/admin backend theme, inspired by the reference partner console. */
body.admin-page{min-height:100vh;background:#f5f2e9;background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px);background-size:28px 28px;color:#171717}
body.admin-page a{color:#13372e}
body.admin-page .topbar{position:static;width:min(1140px,90vw);margin:2rem auto 0;padding:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
body.admin-page .brand{display:grid;gap:.15rem;color:#111;font-size:.95rem}
body.admin-page .brand span{font-size:2.15rem;line-height:1;font-weight:950;letter-spacing:-.06em}
body.admin-page .brand::before{content:"子商后台";font-size:.82rem;color:#333;font-weight:800;letter-spacing:0}
body.admin-page .topbar nav{align-items:flex-start}
body.admin-page .topbar nav>a{display:none}
body.admin-page .topbar nav form button{background:rgba(255,255,255,.78);border:1px solid #ddd8c9;color:#111;border-radius:7px;padding:.6rem .95rem;box-shadow:0 4px 18px rgba(0,0,0,.04)}
body.admin-page .container{width:min(1140px,90vw);margin:1.4rem auto 3rem}
body.admin-page .footer{display:none}
body.admin-page .tabs{gap:.45rem;margin:0 0 1.2rem}
body.admin-page .tabs a{background:rgba(255,255,255,.58);border:1px solid #ded9cb;color:#1d1b17;border-radius:999px;padding:.72rem 1rem;font-weight:800;box-shadow:0 5px 20px rgba(0,0,0,.03)}
body.admin-page .tabs a.active{background:linear-gradient(120deg,#063d30,#0f6c4e);border-color:transparent;color:#fff;box-shadow:0 10px 28px rgba(5,95,68,.22)}
body.admin-page .card{background:rgba(255,255,255,.82);border:1px solid #e4dfd1;border-radius:8px;color:#171717;box-shadow:0 14px 45px rgba(58,64,52,.10)}
body.admin-page .card h1,body.admin-page .card h2{color:#111;letter-spacing:-.04em}
body.admin-page .card h1{font-size:1.8rem}
body.admin-page .muted,body.admin-page .hint{color:#68665d}
body.admin-page .grid{gap:1rem}
body.admin-page .stat.card{padding:1.25rem 1.4rem}
body.admin-page .stat span{color:#68665d;font-weight:800}
body.admin-page .stat strong{color:#111;font-size:2.25rem}
body.admin-page .button,body.admin-page button{border:1px solid #d9d5c8;background:#fff;color:#111;border-radius:7px}
body.admin-page .button.primary,body.admin-page button.primary{border:0;background:linear-gradient(105deg,#073f31,#0e6f51 52%,#7b4d05);color:#fff}
body.admin-page button.link,body.admin-page .link{background:transparent;border:0;color:#111;text-decoration:underline}
body.admin-page .danger{color:#9f1239!important}
body.admin-page .form input,body.admin-page .form select,body.admin-page .form textarea,body.admin-page table input,body.admin-page table select,body.admin-page .card textarea{background:#fff;border:1px solid #d3cfc2;color:#111;border-radius:7px}
body.admin-page .form label{color:#151515}
body.admin-page code,body.admin-page pre{background:#faf8f1;border:1px solid #e2ddcf;color:#111}
body.admin-page .table-wrap{background:rgba(255,255,255,.62);border-radius:8px}
body.admin-page table{color:#171717}
body.admin-page th{color:#5f5c54;border-bottom:1px solid #e7e2d6}
body.admin-page td{border-bottom:1px solid #ebe7dc}
body.admin-page .badge.good{background:#edfdf5;color:#047857;border:1px solid #b7ead5}
body.admin-page .badge.bad{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
body.admin-page .flash{background:#fff;border-color:#e0dacb;color:#111}
body.admin-page .flash.success{background:#effdf6;border-color:#86efac;color:#065f46}
body.admin-page .flash.error{background:#fff1f2;border-color:#fda4af;color:#9f1239}
body.admin-page .kv dd,.admin-page .meta-panel div{background:#fff;border-color:#ded9cb;color:#111}
body.admin-page .list li{color:#171717}
body.admin-page .actions-cell{display:flex;gap:.55rem;align-items:center}
body.admin-page .actions-cell form{display:inline-flex}
body.admin-page .grid.two.uneven{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr)}
body.admin-page .grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
body.admin-page .admin-mini-grid{margin-top:0}
body.admin-page .invite-stats{margin-bottom:1rem}
body.admin-page .section-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}
body.admin-page .section-head h2{margin:.1rem 0 0}
body.admin-page .bulk-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.55rem}
body.admin-page .invite-search-form{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:.8rem;margin:0 0 1rem}
body.admin-page .invite-search-actions{margin-top:0;white-space:nowrap}
body.admin-page .mini-check{display:flex;align-items:center;gap:.4rem;color:#171717;font-weight:800}
body.admin-page .mini-check input,body.admin-page table input[type=checkbox]{width:auto}
body.admin-page .danger-soft{color:#9f1239;border-color:#fecdd3;background:#fff1f2}
body.admin-page .generated-card textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.6}
body.admin-page .empty-code-box{display:grid;place-items:center;gap:.45rem;min-height:180px;border:1px dashed #d7d1c1;border-radius:8px;background:rgba(250,248,241,.72);color:#68665d}
body.admin-page .empty-code-box code{font-size:1.05rem}
body.admin-page .admin-step{position:relative;overflow:hidden}
body.admin-page .step-index{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:999px;background:linear-gradient(120deg,#063d30,#0f6c4e);color:#fff;font-weight:950;box-shadow:0 8px 20px rgba(5,95,68,.2)}
body.admin-page .domain-preview-card{align-self:start}
@media (max-width:900px){body.admin-page .topbar{align-items:flex-start;flex-direction:row}body.admin-page .grid.two.uneven{grid-template-columns:1fr}}
@media (max-width:900px){body.admin-page .grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}body.admin-page .section-head{display:grid}body.admin-page .bulk-toolbar{justify-content:flex-start}}
@media (max-width:560px){body.admin-page .grid.four{grid-template-columns:1fr}body.admin-page .invite-search-form{grid-template-columns:1fr}}
