:root{--bg:#f6f5f2;--surface:#ffffff;--surface-2:#faf9f6;--border:#e4e2dc;--ink:#1a1d21;--text:#2f3338;--muted:#6b7075;--teal:#1e5f5b;--teal-ink:#ffffff;--teal-tint:#eef4f3;--green:#2c6e49;--gold:#9a6b14;--gold-tint:#faf4e8;--brick:#a3431f;--radius:12px;--maxw:920px;--font:Helvetica,"Helvetica Neue",Arial,"Liberation Sans",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:inherit;text-decoration:none}.shell{max-width:var(--maxw);margin:0 auto;padding:40px 24px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);background:var(--surface)}.wordmark{display:flex;align-items:baseline;gap:8px;font-weight:700;letter-spacing:1.5px;color:var(--ink);font-size:15px}.wordmark .x{color:var(--teal);font-weight:400}.wordmark .sub{font-weight:400;letter-spacing:.5px;color:var(--muted)}.topbar .signout{color:var(--muted);font-size:13px;letter-spacing:.3px;border:1px solid var(--border);padding:7px 14px;border-radius:8px;background:transparent;cursor:pointer}.topbar .signout:hover{color:var(--ink);border-color:var(--teal)}h1{font-size:30px;margin:0 0 8px;font-weight:700;color:var(--ink);letter-spacing:-.2px}.lede{margin:0 0 36px;font-size:16px}.crumb,.lede{color:var(--muted)}.crumb{font-size:13px;letter-spacing:.3px;margin-bottom:20px}.crumb a{color:var(--teal)}.crumb a:hover{text-decoration:underline}.grid{display:grid;grid-gap:14px;gap:14px}.card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;transition:border-color .15s ease,box-shadow .15s ease,transform .05s ease}.card:hover{border-color:var(--teal);box-shadow:0 2px 14px rgba(30,95,91,.08)}.card:active{transform:translateY(1px)}.card .title{font-size:18px;font-weight:600;margin:0 0 5px;color:var(--ink)}.card .meta{color:var(--muted);font-size:13px;display:flex;gap:12px;align-items:center}.card .summary{color:var(--text);font-size:14px;margin:10px 0 0}.badge{font-size:10px;text-transform:uppercase;letter-spacing:.8px;padding:3px 9px;border-radius:999px;border:1px solid var(--teal);color:var(--teal);background:var(--teal-tint);font-weight:600}.empty{color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);padding:48px;text-align:center;background:var(--surface)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px;box-shadow:0 6px 30px rgba(26,29,33,.06)}.login-card .wordmark{margin-bottom:22px}.login-card h1{font-size:22px;margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 24px;font-size:14px}.login-card label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px}.login-card input{width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:9px;padding:12px 14px;font-size:15px;font-family:var(--font);margin-bottom:18px}.login-card input:focus{outline:none;border-color:var(--teal)}.btn{width:100%;background:var(--teal);color:var(--teal-ink);border:none;border-radius:9px;padding:13px 14px;font-size:15px;font-weight:600;letter-spacing:.3px;cursor:pointer}.btn:hover{filter:brightness(1.08)}.err{color:var(--brick);font-size:13px;margin:-8px 0 16px}.notice{color:var(--green);font-size:14px;margin:4px 0 0}.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid var(--border);background:var(--surface)}.viewer-bar a{color:var(--teal);font-size:14px}.viewer-bar a:hover{text-decoration:underline}.viewer-bar .vtitle{color:var(--muted);font-size:14px}.viewer-frame{border:none;width:100%;height:calc(100dvh - 50px);background:#fff}