:root{--paper: #f3efe4;--paper-2: #fffaf1;--ink: #1b2218;--muted: #5d6756;--line: #d7ccb8;--navy: #1c2c4a;--navy-2: #24385d;--ledger: #1f6b4a;--ledger-2: #2a8a60;--danger: #8f2d2d;--warn: #8a5a12;--qbo: #2ca01c;--xero: #13b5ea;--zoho: #c43c2c;--shadow: 0 18px 40px rgba(28, 44, 74, .08);--radius: 18px;font-family:"Source Sans 3",Segoe UI,sans-serif;color:var(--ink);background:var(--paper);line-height:1.45;font-weight:450}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1200px 500px at 10% -10%,rgba(31,107,74,.08),transparent 50%),radial-gradient(900px 400px at 100% 0%,rgba(28,44,74,.08),transparent 46%),var(--paper)}h1,h2,h3,.serif{font-family:Fraunces,Georgia,serif;font-weight:650;letter-spacing:-.02em}button,input,select,textarea{font:inherit}a{color:inherit}.page{max-width:1120px;margin:0 auto;padding:28px 20px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.brand{display:flex;flex-direction:column;gap:2px}.brand small{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:11px}.brand strong{font-family:Fraunces,serif;font-size:22px}.nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.nav a,.nav button.linkish{text-decoration:none;padding:8px 12px;border-radius:999px;color:var(--muted)}.nav a.active,.nav a:hover{background:#efe7d6;color:var(--ink)}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.grid{display:grid;gap:16px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-card{cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--paper-2);border-radius:var(--radius);padding:22px;min-height:170px;box-shadow:var(--shadow)}.platform-card:hover{transform:translateY(-2px);border-color:#c9bba0}.platform-card .count{font-size:34px;font-family:Fraunces,serif;margin:8px 0 0}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.badge.qbo{background:#e9f8e6;color:#1d6b16}.badge.xero{background:#e5f7fd;color:#0b6f90}.badge.zoho{background:#fdecea;color:#92281d}.badge.stub{background:#efe7d6;color:#6a5a3a}.badge.seed{background:#fff3d6;color:var(--warn)}.banner{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#f7f1e4;border-radius:22px;padding:18px 22px;display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.banner .client-name{font-size:28px;margin:0}.banner .meta{color:#d5deee;font-size:14px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);padding:36px 32px}.login-card h1{margin:8px 0 6px;font-size:34px}.field{display:flex;flex-direction:column;gap:6px;margin:14px 0}.field span{font-size:13px;color:var(--muted);font-weight:600}input,select,textarea{border:1px solid #cfc3ab;background:#fff;border-radius:12px;padding:10px 12px}.btn{border:0;border-radius:999px;padding:10px 16px;background:var(--ledger);color:#fff;font-weight:600;cursor:pointer}.btn.secondary{background:#efe7d6;color:var(--ink)}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--danger);font-size:14px}.muted{color:var(--muted)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:#f7f1e4}.switcher{min-width:220px}.workspace-shell{display:grid;gap:18px}.placeholder{border:1px dashed #cbbd9f;border-radius:16px;padding:28px;color:var(--muted);background:#fffaf199}dl{margin:12px 0 0}dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-top:12px}dd{margin:0;font-size:20px;font-family:Fraunces,serif}@media(max-width:860px){.grid.three,.grid.two{grid-template-columns:1fr}.banner,.topbar{flex-direction:column;align-items:flex-start}}
