:root{--nw-paper:#e9e6dd;--nw-frame:#f4f2ed;--nw-white:#fff;--nw-cream:#f0ebdd;--nw-ink:#14150f;--nw-ink2:#2e2e27;--nw-t1:#55544b;--nw-t2:#6b6a60;--nw-muted:#8a887c;--nw-faint:#9a9890;--nw-indigo:#26356f;--nw-indigo-weak:#e7e9f1;--nw-vermillon:#c8452c;--nw-vermillon-weak:#f5e3de;--nw-celadon:#6f9384;--nw-celadon-weak:#e6ede9;--nw-kin:#c9922f;--nw-kin-weak:#f3e8d2;--nw-b1:#d8d4c8;--nw-b2:#e3e0d7;--nw-b3:#edeae2;--nw-b4:#f0ede5;--nw-side:#14150f;--nw-side-2:#2a2b24;--nw-side-text:#b5b3a8;--nw-side-muted:#8f8d80;--nw-logo:#f0ebdd;--nw-sans:"Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--nw-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg:var(--nw-frame);--card:var(--nw-white);--border:var(--nw-b1);--text:var(--nw-ink);--muted:var(--nw-muted);--accent:var(--nw-indigo);--accent-weak:var(--nw-indigo-weak);--danger:var(--nw-vermillon);--ok:var(--nw-celadon);--radius:3px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--nw-frame);color:var(--nw-ink);font-family:var(--nw-sans);font-size:15px;line-height:1.55}a{color:var(--nw-indigo);text-decoration:none}a:hover{color:var(--nw-vermillon)}h1,h2,h3{letter-spacing:-.01em;font-weight:500}.container{max-width:960px;margin:0 auto;padding:28px 22px 56px}.topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.brand{letter-spacing:.01em;align-items:center;gap:10px;font-size:18px;font-weight:500;display:flex}.brand small{color:var(--nw-muted);margin-left:4px;font-size:12px;font-weight:400}.card{background:var(--nw-white);border:1px solid var(--nw-b1);border-radius:3px;margin-bottom:16px;padding:20px 22px}.card h2{margin:0 0 12px;font-size:15px;font-weight:500}.muted{color:var(--nw-muted)}.small{font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}label{color:var(--nw-t1);font-size:13px}input,select,textarea{font:inherit;border:1px solid var(--nw-b1);background:var(--nw-white);color:var(--nw-ink);border-radius:3px;width:100%;padding:10px 12px}input::placeholder,textarea::placeholder{color:var(--nw-faint)}input:focus,select:focus,textarea:focus{border-color:var(--nw-indigo);box-shadow:inset 0 0 0 1px var(--nw-indigo);outline:none}.btn{font:inherit;border:1px solid var(--nw-ink);background:var(--nw-ink);color:var(--nw-cream);cursor:pointer;border-radius:3px;padding:10px 16px;font-weight:500;transition:background .12s,color .12s,border-color .12s}.btn:hover{background:var(--nw-ink2);border-color:var(--nw-ink2);color:#fff}.btn.secondary{background:var(--nw-white);color:var(--nw-ink);border-color:var(--nw-b1)}.btn.secondary:hover{border-color:var(--nw-ink);color:var(--nw-ink)}.btn.ghost{border-color:var(--nw-b1);color:var(--nw-t1);background:0 0}.btn.ghost:hover{color:var(--nw-ink);border-color:var(--nw-t2)}.btn.danger{background:var(--nw-white);border-color:var(--nw-b1);color:var(--nw-vermillon)}.btn.danger:hover{border-color:var(--nw-vermillon);color:var(--nw-vermillon)}.btn.small{padding:6px 11px;font-size:13px}.btn:disabled{opacity:.45;cursor:default}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--nw-b2);padding:10px 8px}th{color:var(--nw-muted);font-size:11px;font-weight:500;font-family:var(--nw-mono);text-transform:uppercase;letter-spacing:.1em}code,.mono{font-family:var(--nw-mono);font-size:12.5px}.badge{font-size:11px;font-weight:500;font-family:var(--nw-mono);letter-spacing:.02em;border-radius:999px;padding:2px 9px;display:inline-block}.badge.viewer{background:var(--nw-b3);color:var(--nw-t1)}.badge.contributor{background:var(--nw-celadon-weak);color:#3f5a4e}.badge.publisher{background:var(--nw-indigo-weak);color:var(--nw-indigo)}.badge.admin{background:var(--nw-vermillon-weak);color:var(--nw-vermillon)}.badge.proposed{background:var(--nw-kin-weak);color:#8a5f10}.badge.validated{background:var(--nw-celadon-weak);color:#3f5a4e}.badge.rejected{background:var(--nw-b3);color:var(--nw-muted)}.token-box{background:var(--nw-ink);color:#d7d3c4;word-break:break-all;font-family:var(--nw-mono);border-radius:3px;padding:12px 14px;font-size:12.5px}.notice{background:var(--nw-indigo-weak);color:var(--nw-t1);border:1px solid #d3d8e8;border-radius:3px;padding:10px 13px;font-size:13px}.center-screen{justify-content:center;align-items:center;min-height:78vh;padding:24px;display:flex}.login-card{width:100%;max-width:400px}.nw-anchor{border:1px solid var(--nw-b1);background:var(--nw-frame);border-radius:4px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:9px 12px;display:flex}.nw-anchor-label{font-family:var(--nw-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--nw-muted);font-size:10px}.nw-anchor-code{font-family:var(--nw-mono);color:var(--nw-ink);letter-spacing:.02em;font-size:15px}.nw-anchor-btn{font-family:var(--nw-mono);color:var(--nw-ink);background:var(--nw-white);border:1px solid var(--nw-b1);cursor:pointer;border-radius:3px;padding:5px 10px;font-size:12px}.nw-anchor-btn:hover{background:var(--nw-b3);border-color:var(--nw-b1)}.nw-anchor-help{color:var(--nw-muted);flex-basis:100%;font-size:12px;line-height:1.5}.nw-anchor-inline{flex:none;align-items:center;gap:6px;display:inline-flex}.nw-anchor-inline .nw-anchor-inline-code{font-family:var(--nw-mono);color:var(--nw-t1);letter-spacing:.02em;font-size:12px}.nw-anchor-inline button{font-family:var(--nw-mono);color:var(--nw-muted);border:1px solid var(--nw-b2);cursor:pointer;background:0 0;border-radius:3px;padding:2px 7px;font-size:11px;line-height:1.45}.nw-anchor-inline button:hover{color:var(--nw-ink);border-color:var(--nw-b1);background:var(--nw-frame)}.auth-split{min-height:100vh;display:flex;overflow:hidden}.auth-brand{background:var(--nw-side);width:44%;color:var(--nw-logo);flex-direction:column;flex:none;justify-content:space-between;padding:44px 48px;display:flex;position:relative;overflow:hidden}.auth-brand-mark{z-index:1;align-items:center;gap:12px;display:flex;position:relative}.auth-brand-mark span{letter-spacing:.02em;font-size:19px;font-weight:500}.auth-brand-watermark{color:#1e1f17;pointer-events:none;position:absolute;top:120px;right:-170px}.auth-brand-hook{z-index:1;max-width:400px;position:relative}.auth-brand-hook h1{color:var(--nw-logo);margin:0 0 16px;font-size:34px;font-weight:500;line-height:1.25}.auth-brand-hook p{color:var(--nw-side-muted);margin:0;font-size:15px;line-height:1.7}.auth-brand-foot{z-index:1;font-family:var(--nw-mono);color:var(--nw-celadon);font-size:12px;position:relative}.auth-form{background:var(--nw-frame);flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth-block{width:100%;max-width:430px}.auth-kicker{font-family:var(--nw-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nw-muted);margin-bottom:14px;font-size:11px}.auth-title{letter-spacing:-.01em;margin:0 0 10px;font-size:30px;font-weight:500}.auth-title.sm{font-size:26px}.auth-lead{color:var(--nw-t1);margin:0 0 28px;font-size:15px;line-height:1.65}.auth-field-label{font-family:var(--nw-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--nw-muted);margin-bottom:8px;font-size:11px;display:block}.auth-input{border-color:var(--nw-ink);padding:13px 15px;font-size:16px}.auth-input:focus{border-color:var(--nw-ink);box-shadow:inset 0 0 0 1px var(--nw-ink)}.auth-fine{color:var(--nw-muted);font-size:13px;line-height:1.6}.auth-actions{font-family:var(--nw-mono);flex-wrap:wrap;align-items:center;gap:20px;font-size:13px;display:flex}.auth-link{font-family:var(--nw-mono);color:var(--nw-indigo);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.auth-link:hover{color:var(--nw-vermillon)}.auth-link.mute{color:var(--nw-muted)}.auth-link.mute:hover{color:var(--nw-ink)}.auth-error{color:var(--nw-vermillon);margin:0 0 12px;font-size:13px}.otp{width:fit-content;max-width:100%;margin:0 0 22px;position:relative}.otp-thread{background:#c9c4b4;height:1px;position:absolute;top:50%;left:0;right:0}.otp-boxes{gap:14px;display:flex;position:relative}.otp-box{text-align:center;background:var(--nw-white);border:1px solid var(--nw-b1);width:56px;height:66px;font-family:var(--nw-mono);color:var(--nw-ink);caret-color:var(--nw-vermillon);border-radius:3px;padding:0;font-size:28px}.otp-box.filled{border-color:var(--nw-ink)}.otp-box:focus{border:2px solid var(--nw-vermillon);box-shadow:none;outline:none}@media (max-width:860px){.auth-brand{display:none}}@media (max-width:480px){.otp-boxes{gap:8px}.otp-box{width:44px;height:58px;font-size:24px}}
