:root{--bg:#f5f7fa;--card:#fff;--ink:#1f2937;--muted:#6b7280;--line:#e5e7eb;--brand:#1e3a5f;--accent:#2563eb;--ok:#15803d;--warn:#b45309;--bad:#b91c1c;--radius:10px}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header.top{background:var(--brand);color:#fff;display:flex;align-items:center;gap:1.5rem;padding:.6rem 1.25rem;position:sticky;top:0;z-index:10}
header.top .logo{font-weight:700;letter-spacing:.5px;color:#fff;font-size:1.05rem}
header.top nav{display:flex;gap:.25rem;flex-wrap:wrap}header.top nav a{color:#dbeafe;padding:.35rem .7rem;border-radius:6px}
header.top nav a.on,header.top nav a:hover{background:rgba(255,255,255,.14);color:#fff;text-decoration:none}
header.top .me{margin-left:auto;font-size:.85rem;color:#cbd5e1;display:flex;gap:.75rem;align-items:center}
header.top .me a,header.top .me button{color:#fff;background:none;border:0;cursor:pointer;font:inherit;padding:0}
main{padding:1.25rem;max-width:1500px;margin:0 auto}
.sample-banner{background:#fef3c7;color:#78350f;border-bottom:1px solid #fcd34d;padding:.4rem 1.25rem;font-size:.85rem}
h1{font-size:1.45rem;margin:.2rem 0 1rem}h2{font-size:1.1rem;margin:0 0 .75rem}h3{font-size:.95rem;margin:0 0 .5rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.row{display:flex;gap:1rem;flex-wrap:wrap}.row>*{flex:1 1 320px}.between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}.kpi .n{font-size:1.6rem;font-weight:700}.kpi .l{color:var(--muted);font-size:.8rem}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem .55rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.75rem;text-transform:uppercase;color:var(--muted);letter-spacing:.03em;background:#fafafa}th a{color:inherit}
tr:hover td{background:#f9fbff}
.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;background:#e5e7eb;color:#374151;white-space:nowrap}
.badge.sample{background:#fef3c7;color:#92400e}.badge.core{background:#dbeafe;color:#1e40af}.badge.ok{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.badge.warn{background:#ffedd5;color:#9a3412}
.muted{color:var(--muted)}.small{font-size:.82rem}.overdue{color:var(--bad);font-weight:600}.today{color:var(--warn);font-weight:600}
.btn,button.btn,input[type=submit]{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:7px;padding:.45rem .9rem;font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.08);text-decoration:none}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--bad)}.btn.ok{background:var(--ok)}.btn.small{padding:.25rem .6rem;font-size:.8rem}
form.filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}form.filters label{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted);gap:.15rem}
input,select,textarea{font:inherit;font-size:.9rem;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;max-width:100%}
textarea{width:100%}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem 1rem}
.form-grid .f{display:flex;flex-direction:column;gap:.2rem}.form-grid .f label{font-size:.8rem;font-weight:600}.form-grid .f.wide{grid-column:1/-1}
.form-grid .f input,.form-grid .f select,.form-grid .f textarea{width:100%}.helptext{font-size:.75rem;color:var(--muted)}.errorlist{color:var(--bad);font-size:.8rem;margin:0;padding-left:1rem}
fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem 1rem;margin:0 0 1rem;background:#fff}legend{font-weight:700;padding:0 .4rem}
dl.facts{display:grid;grid-template-columns:150px 1fr;gap:.35rem .8rem;margin:0;font-size:.9rem}dl.facts dt{color:var(--muted)}dl.facts dd{margin:0}
.messages{list-style:none;padding:0;margin:0 0 1rem}.messages li{padding:.6rem .9rem;border-radius:8px;margin-bottom:.4rem;background:#e0f2fe;color:#075985}
.messages li.success{background:#dcfce7;color:#166534}.messages li.error{background:#fee2e2;color:#991b1b}.messages li.warning{background:#ffedd5;color:#9a3412}
.timeline{list-style:none;margin:0;padding:0}.timeline li{border-left:3px solid var(--line);padding:.35rem 0 .7rem .8rem;margin-left:.3rem}
.timeline li.task{border-color:#f59e0b}.timeline li.done{opacity:.6}.timeline .meta{font-size:.78rem;color:var(--muted)}.timeline .body{white-space:pre-wrap;font-size:.9rem;margin-top:.2rem}
.kanban{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:1rem;align-items:flex-start}
.col{background:#eef2f7;border-radius:var(--radius);min-width:205px;width:205px;flex:0 0 205px;padding:.6rem;border-top:4px solid var(--c,#64748b)}
.col h2{font-size:.9rem;display:flex;justify-content:space-between;margin-bottom:.15rem}.col .sum{font-size:.75rem;color:var(--muted);margin-bottom:.5rem}
.col.drop{outline:2px dashed var(--accent);outline-offset:-4px}
.kcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.55rem .65rem;margin-bottom:.5rem;cursor:grab;font-size:.85rem;box-shadow:0 1px 1px rgba(0,0,0,.03)}
.kcard .t{font-weight:600;color:var(--ink)}.kcard .s{color:var(--muted);font-size:.78rem;margin-top:.15rem}.kcard.dragging{opacity:.5}
.pager{display:flex;gap:.5rem;align-items:center;margin-top:.75rem;font-size:.85rem}
.login-wrap{max-width:380px;margin:8vh auto}.login-wrap .card{padding:1.6rem}.login-wrap input{width:100%;margin-bottom:.7rem}
.stagebar{display:flex;flex-wrap:wrap;gap:.3rem}.stagebar button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.25rem .7rem;font-size:.8rem;cursor:pointer}
.stagebar button.cur{background:var(--c,#1e3a5f);color:#fff;border-color:transparent}
.dup{border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;margin-bottom:.5rem;display:flex;gap:.7rem;align-items:center}
@media (max-width:700px){header.top{flex-wrap:wrap}dl.facts{grid-template-columns:1fr}}

/* v2 referral CRM */
.tag{display:inline-block;padding:.05rem .45rem;border-radius:4px;font-size:.72rem;background:#eef2ff;color:#3730a3;margin:0 .15rem .15rem 0;white-space:nowrap}
.stage{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;white-space:nowrap;font-weight:600}
.tier{display:inline-block;min-width:1.4rem;text-align:center;border-radius:4px;font-size:.72rem;font-weight:700;background:#f1f5f9;color:#334155;padding:.05rem .3rem}
.tier.A{background:#fef3c7;color:#92400e}.tier.B{background:#e0f2fe;color:#075985}
.tree{list-style:none;margin:0;padding-left:0}.tree ul{list-style:none;padding-left:1.3rem;border-left:2px dotted #cbd5e1;margin:.2rem 0 .2rem .4rem}
.tree li{margin:.25rem 0;font-size:.9rem}.tree .rel{font-size:.75rem;color:var(--muted)}
.chain{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.88rem;padding:.5rem;background:#f8fafc;border-radius:8px;margin-bottom:.5rem}
.chain .me{font-weight:700;background:#1e3a5f;color:#fff;padding:.15rem .55rem;border-radius:6px}
.chain .arrow{color:var(--muted);font-size:.75rem}
.bar{height:8px;background:#dbeafe;border-radius:4px;overflow:hidden;min-width:80px}.bar>span{display:block;height:100%;background:var(--accent)}
.dates li{display:flex;gap:.6rem;align-items:baseline;padding:.3rem 0;border-bottom:1px solid var(--line)}.dates{list-style:none;margin:0;padding:0}
.dates .when{min-width:4.8rem;font-weight:600}.dates .soon{color:var(--warn)}
.status-invited{background:#e5e7eb}.status-rsvp_yes{background:#dcfce7;color:#166534}.status-rsvp_no{background:#fee2e2;color:#991b1b}
.status-attended{background:#1e3a5f;color:#fff}.status-no_show{background:#ffedd5;color:#9a3412}
.mini-form{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.mini-form select,.mini-form input{font-size:.8rem;padding:.25rem .35rem}
.bulkbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.6rem .8rem;background:#f8fafc;border-bottom:1px solid var(--line);font-size:.85rem}
.sugg{display:inline-flex;gap:.25rem;align-items:center;border:1px solid var(--line);border-radius:6px;padding:.1rem .2rem .1rem .45rem;margin:0 .25rem .25rem 0;font-size:.8rem;background:#fff}
.facts-inline{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.88rem}.facts-inline b{display:block;font-size:1.15rem}
td.num,th.num{text-align:right;white-space:nowrap}
.checkbox-list ul,.checkbox-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.3rem .8rem}
.btn.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;background:#fff;color:#1f2937;border:1px solid #cbd5e1;font-size:1rem;padding:.7rem 1rem;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.btn.google-btn:hover{background:#f8fafc}
.local-login{margin-top:1.2rem;border-top:1px solid #e2e8f0;padding-top:.8rem}.local-login summary{cursor:pointer;color:#475569;margin-bottom:.6rem}
.site-footer{text-align:center;padding:1.2rem 0 1.6rem}
.badge.readonly{background:#dbeafe;color:#1e3a8a;font-size:.9rem;padding:.3rem .7rem;border:1px solid #93c5fd}
