:root { --brand:#1dbf73; --dark:#222; --muted:#6b7280; --bg:#f7f7f7; --danger:#dc2626; --ok:#15803d; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--dark); background:#fff; }
a { color: var(--brand); text-decoration:none; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:16px 24px; border-bottom:1px solid #e5e7eb; }
.topbar nav a { margin-left:16px; color:var(--dark); }
.logo { font-weight:700; font-size:22px; color:var(--dark) !important; }
.container { max-width:1100px; margin:32px auto; padding:0 20px; min-height:60vh; }
.footer { text-align:center; color:var(--muted); padding:24px; border-top:1px solid #e5e7eb; }
.btn { display:inline-block; padding:12px 20px; background:var(--brand); color:#fff; border:0; border-radius:6px; cursor:pointer; font-size:15px; }
.btn:hover { opacity:.9; }
.btn-google { background:#fff; color:#333; border:1px solid #ccc; }
.auth-box { max-width:420px; margin:60px auto; padding:32px; border:1px solid #e5e7eb; border-radius:10px; text-align:center; }
.auth-box form { text-align:left; }
.auth-box label { display:block; margin:12px 0; font-size:14px; }
.auth-box input { width:100%; padding:10px; margin-top:4px; border:1px solid #ccc; border-radius:6px; }
.flash { padding:12px 16px; margin:12px auto; max-width:1100px; border-radius:6px; }
.flash.error { background:#fee2e2; color:var(--danger); }
.flash.success { background:#dcfce7; color:var(--ok); }
.card { border:1px solid #e5e7eb; border-radius:10px; padding:20px; background:#fff; margin-bottom:16px; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }
.hero { text-align:center; padding:60px 0; }
