:root{--accent:#007aff;--accent-soft:#007aff1a;--bg:#f2f2f7;--card:#fff;--text:#1c1c1e;--text-secondary:#8e8e93;--hairline:#3c3c431f;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1,h2,h3{margin:0;font-weight:700}button{font:inherit;cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:8px 16px;font-weight:600}button:disabled{opacity:.5;cursor:default}button.secondary{background:var(--accent-soft);color:var(--accent)}button.plain{color:var(--accent);background:0 0;padding:4px 8px}input,textarea,select{font:inherit;border:1px solid var(--hairline);background:var(--card);color:var(--text);border-radius:10px;width:100%;padding:9px 12px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.shell{min-height:100vh;display:flex}.sidebar{background:var(--card);border-right:1px solid var(--hairline);flex-direction:column;flex-shrink:0;gap:4px;width:230px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.sidebar .brand{align-items:center;gap:10px;padding:4px 10px 18px;font-size:18px;font-weight:800;display:flex}.sidebar .brand .shield{font-size:24px}.sidebar a{color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-weight:500;text-decoration:none;display:flex}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar .spacer{flex:1}.sidebar .whoami{color:var(--text-secondary);border-top:1px solid var(--hairline);padding:10px;font-size:13px}.content{flex:1;max-width:980px;padding:28px 36px 60px}.page-title{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:28px;display:flex}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--hairline);margin-bottom:14px;padding:16px 18px}.card h3{margin-bottom:10px;font-size:16px}.row{border-bottom:1px solid var(--hairline);align-items:center;gap:12px;padding:10px 0;display:flex}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.muted{color:var(--text-secondary);font-size:13px}.pill{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.pill.active{background:var(--accent-soft);color:var(--accent)}.pill.awaiting_signoff{color:var(--orange);background:#ff950024}.pill.completed{color:var(--green);background:#34c75924}.pill.locked{color:var(--text-secondary);background:#8e8e9329}.pill.coach{background:var(--accent-soft);color:var(--accent)}.pill.admin{color:var(--red);background:#ff3b301f}.pill.client{color:var(--text-secondary);background:#8e8e9329}.progress{background:#78788029;border-radius:3px;height:5px;overflow:hidden}.progress>div{background:var(--accent);border-radius:3px;height:100%;transition:width .25s}.segmented{background:#7676801f;border-radius:9px;flex-wrap:wrap;margin-bottom:18px;padding:2px;display:inline-flex}.segmented button{color:var(--text);background:0 0;border-radius:7px;padding:6px 14px;font-size:14px;font-weight:500}.segmented button.selected{background:var(--card);font-weight:600;box-shadow:0 1px 3px #0000001f}.login-wrap{place-items:center;min-height:100vh;display:grid}.login-card{background:var(--card);border:1px solid var(--hairline);text-align:center;border-radius:16px;flex-direction:column;gap:12px;width:380px;padding:32px;display:flex}.login-card .shield{font-size:44px}.error{color:var(--red);font-size:14px}.form-grid{text-align:left;flex-direction:column;gap:10px;display:flex}.tree-node{align-items:flex-start;gap:10px;padding:8px 0;display:flex}.node-dot{border:2px solid var(--accent);width:30px;height:30px;color:var(--accent);background:var(--accent-soft);border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;display:grid}.node-dot.completed{background:var(--accent);color:#fff}.node-dot.locked{border-color:var(--hairline);color:var(--text-secondary);background:#8e8e931f}.stars{color:var(--orange);letter-spacing:2px}code.invite{letter-spacing:3px;background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:8px 16px;font-size:22px;font-weight:700;display:inline-block}
