:root{--font-heading:"Bricolage Grotesque";--font-body:"Instrument Sans";--bg:#edebe4;--surface:#faf9f6;--card:#fff;--ink:#20241f;--muted:#6e7268;--border:#d8d5cc;--border-soft:#e6e3da;--green:#177e5b;--green-dark:#116349;--green-soft:#e3f0e9;--dark:#1a1d1a;--red:#b3402e;--red-soft:#f7e6e2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body),sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-heading),sans-serif;line-height:1.2;margin:0 0 10px;text-wrap:pretty}h1{font-size:26px}h2{font-size:18px}a{color:var(--green)}a:hover{color:var(--green-dark)}.page{min-height:100vh;display:flex;flex-direction:column}.center-col{max-width:440px;padding:40px 24px}.center-col,.wide-col{width:100%;margin:0 auto}.wide-col{max-width:720px;padding:32px 24px}.topbar{background:var(--dark);color:#f7f6f2;display:flex;align-items:center;gap:10px;padding:12px 20px;font-weight:700;font-size:15px;font-family:var(--font-heading),sans-serif}.topbar .dot{width:10px;height:10px;border-radius:50%;background:#3fbf8f}.topbar .spacer{margin-left:auto}.topbar a{color:#f7f6f2;font-family:var(--font-body),sans-serif;font-weight:500;font-size:13.5px;text-decoration:none}.topbar a:hover{color:#fff;text-decoration:underline}.brand{font-family:var(--font-heading),sans-serif;font-weight:700;color:var(--green);font-size:18px;margin-bottom:24px}.subtitle{color:var(--muted);font-size:15px;margin:0 0 24px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}.input,select.input{width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:10px;font-size:15px;background:var(--card);font-family:inherit;color:var(--ink)}.input:focus{outline:2px solid #177e5b33;border-color:var(--green)}.btn{display:inline-block;width:100%;text-align:center;background:var(--green);color:#fff;border:none;border-radius:10px;padding:14px 20px;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:4px}.btn:hover{background:var(--green-dark)}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{background:var(--card);color:var(--ink);border:1px solid var(--border);font-size:14px;padding:10px 16px;width:auto}.btn-secondary:hover{background:var(--surface);border-color:var(--green);color:var(--green)}.btn-danger-link{background:none;border:none;color:var(--red);font-size:13.5px;cursor:pointer;font-family:inherit;padding:0}.card{background:var(--card);border:1px solid var(--border-soft);border-radius:14px;padding:20px}.error{background:var(--red-soft);color:var(--red)}.error,.notice{border-radius:10px;padding:12px 14px;font-size:14px;margin-bottom:14px}.notice{background:var(--green-soft);color:var(--green-dark)}.fine{font-size:12.5px;color:var(--muted);line-height:1.5}.check-row{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:14px 0}.check-row input{margin-top:3px}.invite-box{background:var(--surface);border:1px dashed #c9c5b8;border-radius:12px;padding:12px 14px;font-size:13px;word-break:break-all;color:var(--ink)}.teen-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--border-soft)}.teen-row:last-child{border-bottom:none}.badge{font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px}.badge-active{background:var(--green-soft);color:var(--green-dark)}.badge-pending{background:#f4efdc;color:#8a7a2e}.bar{height:8px;background:var(--border-soft);overflow:hidden;margin-top:8px}.bar,.bar-fill{border-radius:999px}.bar-fill{height:100%;transition:width .3s}.prose{max-width:720px;margin:0 auto;padding:40px 24px}.prose h1{font-size:28px}.prose h2{margin-top:28px}.prose li{margin:6px 0}.monitor-note{background:#f4efdc;color:#6b5d20;font-size:13px;line-height:1.45;padding:8px 20px;text-align:center}.monitor-note a{color:#6b5d20;font-weight:600}button,input,select{max-width:100%}@media (max-width:520px){.wide-col{padding:20px 12px}.center-col{padding:28px 16px}.card{padding:16px 14px}h1{font-size:22px}.topbar{padding:10px 14px}.teen-row{flex-wrap:wrap}.teen-row>div:first-child{flex:1 1 100%}}