:root{--bg: #0b0c12;--surface: #14161f;--surface-2: #1b1e29;--line: #232733;--ink: #f2f3f7;--ink-2: #b4b9c6;--ink-3: #838a9b;--brand: #8b7bff;--ok: #34d399;--warn: #fbbf24;--bad: #fb7185;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button{cursor:pointer;font:inherit}.boot,.empty{padding:60px 24px;text-align:center;color:var(--ink-3)}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login form{width:min(380px,100%);display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:18px}.login h1{margin:0 0 6px;font-size:20px;letter-spacing:-.02em}.login input{padding:13px 15px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);outline:none}.login input:focus{border-color:var(--brand)}.login button{padding:13px;border:0;border-radius:999px;background:var(--brand);color:#0b0c12;font-weight:700}.login button:disabled{opacity:.5;cursor:not-allowed}.login .hint{margin:0;font-size:13px;color:var(--ink-3);line-height:1.7}.login .hint code{display:block;margin-top:6px;font-family:var(--mono);font-size:11.5px;color:var(--ink-2)}.login .error{margin:0;color:var(--bad);font-size:13px}.bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:12px 20px;background:#0b0c12e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.logo{font-weight:700;letter-spacing:-.02em}.bar nav{display:flex;gap:2px;flex:1;overflow-x:auto}.bar nav button{position:relative;isolation:isolate;border:0;background:transparent;color:var(--ink-3);padding:8px 14px;border-radius:999px;font-weight:600;white-space:nowrap}.bar nav button:hover{color:var(--ink)}.bar nav button.on{color:#0b0c12}.tab-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:999px;background:var(--brand)}.ghost{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);padding:8px 14px;border-radius:999px}.ghost:hover{color:var(--ink);border-color:var(--ink-3)}.ghost.small{padding:5px 11px;font-size:12.5px}main{padding:20px;max-width:1400px;margin:0 auto}main h2{margin:28px 0 12px;font-size:15px;color:var(--ink-2);font-weight:600}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.stat{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:3px}.stat small{color:var(--ink-3);font-size:12px}.stat strong{font-size:24px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:400;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink-2);white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}td.mono{font-family:var(--mono);font-size:11.5px;color:var(--ink-3)}td.num{font-variant-numeric:tabular-nums;color:var(--ink)}.pill{padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid currentColor}.pill.paid,.pill.published,.pill.active{color:var(--ok)}.pill.pending{color:var(--warn)}.pill.failed,.pill.hidden,.pill.paused{color:var(--bad)}.bar nav button{position:relative}.bar nav .badge{position:relative;margin-left:6px;min-width:18px;padding:0 5px;border-radius:9px;background:#e5484d;color:#fff;font-size:11px;line-height:18px;font-style:normal}.review-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-head h2{margin:0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{background:none;border:0;color:var(--ink-2);padding:7px 14px;cursor:pointer;font:inherit}.seg button.on{background:var(--ink);color:var(--bg)}.review .hint{color:var(--ink-3);font-size:13px;margin:10px 0 18px;line-height:1.6}.review .err{color:#ff6b6b}.review .muted{color:var(--ink-3)}.review-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.review-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#ffffff05}.review-card header{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.review-card header strong{font-size:16px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-card header time{color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums}.review-card .kind{font-size:11px;padding:2px 7px;border-radius:5px}.review-card .kind.member{background:#1d3a5f;color:#9ecbff}.review-card .kind.merchant{background:#4a2d14;color:#ffc58a}.review-card dl{display:grid;grid-template-columns:44px 1fr;gap:6px 10px;margin:0;font-size:13px}.review-card dt{color:var(--ink-3)}.review-card dd{margin:0;min-width:0;overflow-wrap:anywhere}.review-card .mono{font-family:ui-monospace,monospace}.review-card em{font-style:normal;font-size:12px;padding:1px 6px;border-radius:4px;margin-left:4px}.review-card em.ok{background:#16372a;color:#6fdca4}.review-card em.warn{background:#3d3212;color:#f5cf64}.review-card em.bad{background:#43191b;color:#ff8a8a}.review-card em.muted{color:var(--ink-3)}.review-card .ua{display:block;color:var(--ink-3);font-size:11px;margin-top:3px}.review-card footer{display:flex;gap:8px;margin-top:14px}.review-card footer input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:7px;color:var(--ink);padding:8px 10px;font:inherit;font-size:13px}.review-card footer button{border:0;border-radius:7px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer}.review-card footer button:disabled{opacity:.5;cursor:wait}.review-card .approve{background:#2f9e67;color:#fff}.review-card .reject{background:transparent;color:#ff8a8a;border:1px solid #5a2427!important}.review-card header .score{font-style:normal;font-size:12px;font-weight:700;padding:1px 7px;border-radius:4px;font-variant-numeric:tabular-nums}.review-card header .score.ok{background:#16372a;color:#6fdca4}.review-card header .score.warn{background:#3d3212;color:#f5cf64}.review-card header .score.bad{background:#43191b;color:#ff8a8a}.review-card header .by{font-style:normal;font-size:11px;color:var(--ink-3);border:1px solid var(--line);padding:0 6px;border-radius:4px}.review-card .reasons{margin:-4px 0 12px;padding:8px 10px 8px 26px;background:var(--surface-2);border-radius:7px;font-size:12px;color:var(--ink-2);line-height:1.6}.review-card.dim{opacity:.55}
