:root{--bg:#e8e6ef;--surface:#fff;--surface-subtle:#f8fafc;--ink:#1f2933;--ink-soft:#475569;--muted:#6b7785;--line:#e3e8ef;--accent:#2a2a2a;--accent-hover:#101010;--danger:#b42318;--danger-soft:#f3c0bb;--success:#0f6b3f;--text-xs:12px;--text-sm:14px;--text-base:15px;--text-lg:17px;--text-xl:21px;--text-2xl:26px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:8px;--radius:12px;--radius-lg:20px;--shadow-card:0 1px 2px #1018280a, 0 8px 24px #1018280f;--shadow-float:0 20px 50px #0000001f}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--text-base);-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0;line-height:1.65}a,button{-webkit-tap-highlight-color:transparent}.centered-state{justify-content:center;align-items:center;gap:var(--space-4);min-height:100vh;padding:var(--space-6);text-align:center;color:var(--muted);flex-direction:column;display:flex}.signin-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:var(--space-10) var(--space-8);align-items:center;gap:var(--space-4);width:100%;max-width:420px;color:var(--ink);flex-direction:column;display:flex}.brand-logo{width:auto;height:44px}.signin-card h1{font-size:var(--text-xl);margin:0;font-weight:600}.signin-card p{color:var(--muted);font-size:var(--text-sm);margin:0}.signin-card button{width:100%;margin-top:var(--space-2)}.shell{max-width:900px;padding:var(--space-8) var(--space-5) var(--space-10);margin:0 auto}.shell-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid #1f293314;display:flex}.shell-brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.shell-brand img{width:auto;height:32px}.shell-brand span{font-size:var(--text-lg);color:var(--ink);white-space:nowrap;font-weight:600}.shell-body{gap:var(--space-8);margin-top:var(--space-6);grid-template-columns:176px 1fr;display:grid}.shell-nav{gap:var(--space-1);top:var(--space-6);flex-direction:column;align-self:start;display:flex;position:sticky}.shell-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-sm);text-decoration:none;transition:background .15s,color .15s}.shell-nav a:hover{color:var(--ink);background:#1f29330d}.shell-nav a.active{background:var(--accent);color:#fff;font-weight:500}.shell-main{gap:var(--space-5);flex-direction:column;min-width:0;display:flex}.page-head{gap:var(--space-1);flex-direction:column;display:flex}.page-head h2{font-size:var(--text-2xl);letter-spacing:-.01em;margin:0;font-weight:600}.page-head p{margin:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6);box-shadow:var(--shadow-card)}.card h2{margin:0 0 var(--space-3);font-size:var(--text-xl);letter-spacing:-.01em;font-weight:600}.card h3{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:600}.muted{color:var(--muted);font-size:var(--text-sm)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);letter-spacing:.02em}.kv{gap:var(--space-2) var(--space-4);margin:0 0 var(--space-3);grid-template-columns:96px 1fr;display:grid}.kv dt{color:var(--muted);font-size:var(--text-sm)}.kv dd{color:var(--ink-soft);word-break:break-all;margin:0}.stack{gap:var(--space-4);flex-direction:column;display:flex}label{gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);flex-direction:column;display:flex}input{padding:10px var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--ink);background:#fff;font-family:inherit;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2a2a2a1f}input[readonly]{background:var(--surface-subtle);color:var(--ink-soft)}button{padding:10px var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;border:1px solid #0000;font-family:inherit;transition:background .15s,border-color .15s,opacity .15s}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:#fff}.primary:hover:not(:disabled){background:var(--accent-hover)}.secondary{border-color:var(--line);color:var(--ink);background:#fff}.secondary:hover:not(:disabled){border-color:var(--muted)}.ghost{border-color:var(--line);color:var(--muted);font-size:var(--text-sm);padding:var(--space-2) var(--space-4);background:0 0}.ghost:hover:not(:disabled){color:var(--ink);border-color:var(--muted)}.danger{border-color:var(--danger-soft);color:var(--danger);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background:#fff}.danger:hover:not(:disabled){background:#fff5f4}.tabs{gap:var(--space-1);margin:var(--space-4) 0;padding:var(--space-1);background:var(--surface-subtle);border-radius:var(--radius-sm);display:inline-flex}.tab{color:var(--muted);font-size:var(--text-sm);padding:var(--space-2) var(--space-4);background:0 0;border-color:#0000}.tab.active{color:var(--ink);border-color:var(--line);background:#fff;font-weight:500}.link-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.link-list li{flex-direction:column;gap:2px;display:flex}.link-list a{color:var(--ink);font-weight:500;text-decoration:none}.link-list a:hover{text-decoration:underline}.action-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.action-list a{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#fff;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.action-list a:hover{background:var(--surface-subtle);border-color:var(--muted)}.action-main{flex-direction:column;gap:2px;min-width:0;display:flex}.action-main strong{font-weight:500}.action-chevron{color:var(--muted);font-size:var(--text-xl);line-height:1}.factor-list{margin:var(--space-4) 0 0;gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.factor-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-subtle);display:flex}.factor-list li div{flex-direction:column;display:flex}.qr{border:1px solid var(--line);border-radius:var(--radius-sm);width:176px;height:176px;padding:var(--space-2);background:#fff;align-self:center}.hint-inline{margin:var(--space-3) 0 0;padding-top:var(--space-3);border-top:1px solid var(--line)}.code-grid{padding:var(--space-4);gap:var(--space-2) var(--space-4);background:var(--surface-subtle);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:repeat(2,1fr);margin:0;list-style:none;display:grid}.code-grid li{letter-spacing:.08em;font-size:var(--text-base)}.code-grid li.used{color:var(--muted);text-decoration:line-through}.button-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.checkbox-row{align-items:center;gap:var(--space-2);color:var(--ink);font-size:var(--text-sm);flex-direction:row}.checkbox-row input{width:18px;height:18px;min-height:0;accent-color:var(--accent);padding:0}.qr-hint{text-align:center;margin:0}.error-text{color:var(--danger);font-size:var(--text-sm);margin:0}.notice{color:var(--success);font-size:var(--text-sm);margin:0}@media (width<=680px){.shell{padding:var(--space-5) var(--space-4) var(--space-8)}input{padding:12px var(--space-3);font-size:16px}button{min-height:44px;padding:12px var(--space-5)}.ghost,.danger,.tab{min-height:40px}.card{padding:var(--space-5)}.card h2{font-size:var(--text-lg)}.kv{grid-template-columns:80px 1fr}.kv dd{font-size:var(--text-sm)}.action-list a{padding:var(--space-4)}.factor-list li{align-items:flex-start;gap:var(--space-3);flex-direction:column}.factor-list li button{width:100%}.code-grid{grid-template-columns:1fr}.button-row button{flex:auto}.qr{aspect-ratio:1;width:100%;max-width:240px;height:auto}.signin-card{padding:var(--space-8) var(--space-5)}.shell-body{gap:var(--space-5);grid-template-columns:1fr}.shell-nav{padding-bottom:var(--space-1);flex-direction:row;position:static;overflow-x:auto}.shell-brand span{display:none}}
