*{box-sizing:border-box}:root{--bg: #fff8fb;--bg-alt: #fef2f6;--card: #ffffff;--fg: #5c2d6a;--muted: #9d7aa8;--accent: #db2777;--accent-soft: #f9a8d4;--purple: #a855f7;--purple-soft: #e9d5ff;--border: #fbcfe8;--shadow: rgba(219, 39, 119, .08);--error: #be185d;--success: #059669;--font-heading: "Quicksand", "Segoe UI", system-ui, sans-serif;--font-body: "Quicksand", "Segoe UI", system-ui, sans-serif;--radius: 12px;--radius-sm: 8px}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--fg);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}#root{min-height:100vh}.req{color:var(--error)}.error{color:var(--error);margin:.5rem 0}.public-layout{min-height:100vh;display:flex;flex-direction:column}.site-header{background:#fff;border-bottom:1px solid var(--border);padding:0;text-align:center}.site-header-inner{max-width:48rem;margin:0 auto;padding:0}.site-banner-logo{display:inline-block;text-decoration:none;color:inherit}.site-banner-logo:hover{text-decoration:none;color:inherit}.site-banner-logo-img{width:200px;max-width:100%;height:auto;display:block;vertical-align:middle}.site-main{flex:1;padding:1.5rem 1rem 2rem}.site-footer{background:var(--bg-alt);border-top:1px solid var(--border);padding:1rem 1.5rem;text-align:center}.site-footer-inner{max-width:48rem;margin:0 auto;font-size:.9rem;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1rem}.site-footer-name{font-weight:600;color:var(--fg)}.site-footer-domain{color:var(--muted)}.site-footer-domain:hover{color:var(--accent)}.page{max-width:42rem;margin:0 auto;padding:0 .5rem}.signup-page .signup-header{text-align:center;margin-bottom:1.75rem}.signup-page h1{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;margin:0 0 .25rem;color:var(--fg)}.signup-page .signup-header p{color:var(--muted);margin:0;font-size:1rem}.next-event{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;box-shadow:0 2px 12px var(--shadow)}.next-event-loading{color:var(--muted);font-size:.95rem;margin:0 0 1.5rem}.next-event-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;margin:0 0 .35rem;color:var(--accent)}.next-event-meta{font-weight:600;margin:0;font-size:1rem;color:var(--fg)}.next-event-overview{margin:.5rem 0 0;font-size:.95rem;color:var(--muted);white-space:pre-wrap}.signup-form{display:flex;flex-direction:column;gap:1rem;background:var(--card);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);box-shadow:0 4px 16px var(--shadow)}.signup-page label{font-weight:600;font-size:.95rem;color:var(--fg)}.signup-page input,.signup-page select{padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);transition:border-color .2s,box-shadow .2s}.signup-page input:focus,.signup-page select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.signup-page button[type=submit]{padding:.85rem 1.25rem;background:linear-gradient(135deg,var(--accent) 0%,var(--purple) 100%);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600;font-size:1rem;margin-top:.5rem;transition:opacity .2s,transform .15s}.signup-page button[type=submit]:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.signup-page button[type=submit]:disabled{opacity:.7;cursor:not-allowed;transform:none}.signup-page .form-hint{font-size:.85rem;color:var(--muted);margin:-.25rem 0 0}.thanks-page{text-align:center;padding:2rem 1rem}.thanks-page h1{font-family:var(--font-heading);font-size:1.75rem;margin:0 0 .5rem;color:var(--fg)}.thanks-page p{color:var(--muted);margin:0}.thanks-page a{display:inline-block;margin-top:1.5rem;padding:.5rem 1rem;background:var(--bg-alt);border-radius:var(--radius-sm);font-weight:600}.thanks-page a:hover{background:var(--accent-soft);text-decoration:none}.admin-login-page{max-width:28rem;margin:2rem auto;padding:1.5rem}.admin-login-page h1{font-family:var(--font-heading);font-size:1.35rem;margin-bottom:1rem;color:var(--fg)}.admin-login-form{display:flex;flex-direction:column;gap:.75rem}.admin-login-form input{padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-login-form button{padding:.75rem;background:linear-gradient(135deg,var(--accent) 0%,var(--purple) 100%);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600}.admin-layout{min-height:100vh;display:flex;flex-direction:column}.admin-nav{display:flex;flex-wrap:wrap;gap:.75rem 1rem;padding:1rem 1.5rem;background:var(--card);border-bottom:1px solid var(--border);align-items:center}.admin-nav a{font-weight:500;color:var(--fg)}.admin-nav a:hover{color:var(--accent)}.admin-nav .nav-home{margin-left:auto}.admin-nav .nav-logout{margin-left:.5rem;padding:.35rem .75rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--muted)}.admin-nav .nav-logout:hover{color:var(--fg);border-color:var(--muted)}.admin-main{flex:1;padding:1.5rem}.admin-dashboard .dashboard-stats{display:flex;gap:1.5rem;flex-wrap:wrap;margin:1rem 0}.admin-dashboard .stat{background:var(--card);padding:1rem 1.5rem;border-radius:var(--radius);border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow)}.admin-dashboard .stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--accent)}.admin-dashboard .stat-label{font-size:.875rem;color:var(--muted)}.admin-dashboard .dashboard-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1rem;margin-top:1.5rem}.admin-dashboard .tile{display:block;padding:1.25rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;font-weight:600;color:var(--fg);transition:border-color .2s,background .2s}.admin-dashboard .tile:hover{border-color:var(--accent);background:var(--bg-alt)}.admin-signups .pending-explainer{font-size:.9rem;color:var(--muted);margin-bottom:1rem;max-width:40rem}.admin-signups .signup-list,.admin-students .student-list{list-style:none;padding:0;margin:0}.admin-signups .signup-item,.admin-students .student-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.admin-signups .signup-actions,.admin-students .student-item button{display:flex;gap:.5rem}.admin-signups button,.admin-students button{padding:.4rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:500}.admin-signups button.secondary,.admin-students .student-item button{background:transparent;color:var(--fg);border-color:var(--border)}.admin-students .student-name-btn{padding:0;border:none;background:transparent;color:var(--fg);font:inherit;text-align:left;cursor:pointer;border-radius:0}.admin-students .student-name-btn:hover{text-decoration:underline;color:var(--accent)}.admin-students .student-item-editing{padding:.75rem 0}.admin-students .student-item-edit{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;width:100%;margin:0}.admin-students .student-item-edit .form-row{width:100%}.admin-students .student-item-edit input,.admin-students .student-item-edit select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-students .student-item-edit button[type=submit]{background:var(--accent);color:#fff;border:none}.admin-students .student-item-edit button[type=button]{background:transparent;color:var(--fg);border:1px solid var(--border)}.create-session-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}.add-student-form{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;margin-bottom:.5rem}.form-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admin-students .form-hint{font-size:.875rem;color:var(--muted);margin-bottom:1rem}.add-student-form input,.create-session-form input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.add-student-form button,.create-session-form button,.admin-session-detail .scratch-form button[type=submit]{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:500}.admin-session-detail .scratch-form button[type=button]{padding:.5rem 1rem;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-sm)}.session-list{list-style:none;padding:0}.session-list li{padding:.5rem 0;border-bottom:1px solid var(--border)}.admin-session-detail .session-title-btn{padding:0;border:none;background:transparent;color:var(--fg);font:inherit;font-size:inherit;font-weight:inherit;text-align:left;cursor:pointer;border-radius:0}.admin-session-detail .session-title-btn:hover{text-decoration:underline;color:var(--accent)}.admin-session-detail .session-title-edit{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.25rem}.admin-session-detail .session-title-edit input{flex:1;min-width:12rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:1.25rem;font-weight:700}.admin-session-detail .session-title-edit button[type=submit]{background:var(--accent);color:#fff;border:none;padding:.4rem .75rem;border-radius:var(--radius-sm)}.admin-session-detail .session-title-edit button[type=button]{background:transparent;color:var(--fg);border:1px solid var(--border);padding:.4rem .75rem;border-radius:var(--radius-sm)}.admin-session-detail .session-tabs{display:flex;gap:.25rem;margin:1rem 0;border-bottom:1px solid var(--border)}.admin-session-detail .session-tabs button{padding:.5rem 1rem;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted)}.admin-session-detail .session-tabs button:hover{color:var(--fg)}.admin-session-detail .session-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.admin-session-detail .tab-panel{margin-top:.5rem}.admin-session-detail .tab-hint{font-size:.9rem;color:var(--muted);margin-bottom:1rem}.admin-session-detail .detail-section{margin-top:1.5rem}.admin-session-detail .detail-section h3,.admin-session-detail .notes-subhead{font-size:1rem;margin:1rem 0 .5rem}.admin-session-detail .attendance-actions,.admin-session-detail .group-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.admin-session-detail .generate-summary{font-size:.9rem;color:var(--muted);margin:.5rem 0 0}.admin-session-detail .attendance-list{list-style:none;padding:0}.admin-session-detail .attendance-list li{padding:.35rem 0;display:flex;justify-content:space-between;align-items:center}.admin-session-detail .remove-btn{font-size:.85rem;padding:.25rem .5rem;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-session-detail .remove-btn:hover{color:var(--error);border-color:var(--error)}.admin-session-detail .roster-random-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.admin-session-detail .roster-random-list li{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-session-detail .roster-random-list li button{padding:.25rem .5rem;font-size:.9rem}.admin-session-detail .roster-more{font-size:.9rem;color:var(--muted);margin-top:.5rem}.admin-session-detail .scratch-form{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;margin-top:.5rem}.admin-session-detail .scratch-form input,.admin-session-detail .scratch-form select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-session-detail .groups-output{margin:.5rem 0}.admin-session-detail .group-block{padding:.5rem 0;border-bottom:1px solid var(--border)}.admin-session-detail .group-notes{display:flex;gap:.5rem;margin-top:.35rem;flex-wrap:wrap}.admin-session-detail .group-notes select,.admin-session-detail .group-notes input{padding:.25rem .5rem;font-size:.9rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-session-detail textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical}.missing-pairs-list{list-style:none;padding:0}.missing-pairs-list li{padding:.35rem 0;border-bottom:1px solid var(--border)}.phone-view{padding:1rem;max-width:36rem;margin:0 auto}.phone-view .phone-header{margin-bottom:1.5rem}.phone-view h1{font-family:var(--font-heading);font-size:1.5rem;margin:0 0 .25rem}.phone-view .phone-date{color:var(--muted);margin:0 0 1rem}.phone-view .copy-pairs-btn{display:block;width:100%;padding:.85rem;font-size:1rem;font-weight:600;background:linear-gradient(135deg,var(--accent) 0%,var(--purple) 100%);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .2s}.phone-view .copy-pairs-btn:hover{opacity:.95}.phone-view .phone-pairs,.phone-view .phone-triads{margin-top:1rem}.phone-view .phone-pair,.phone-view .phone-triad{font-size:1.25rem;line-height:1.5;padding:.75rem 0;border-bottom:1px solid var(--border)}.phone-view .phone-triads h2{font-size:1.1rem;margin:1rem 0 .5rem}.print-view{max-width:42rem;margin:0 auto;padding:1.5rem}.print-no-print{margin-bottom:1rem}.print-no-print .copy-pairs-btn{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600}.print-header{margin-bottom:1.5rem}.print-header h1{font-size:1.5rem;margin:0 0 .25rem}.print-header h2{font-size:1.25rem;margin:0 0 .25rem;color:var(--muted);font-weight:500}.print-date{color:var(--muted);margin:0}.print-pairs h3,.print-triads h3{font-size:1.1rem;margin:1rem 0 .5rem}.print-pair,.print-triad{font-size:1rem;padding:.35rem 0;border-bottom:1px solid var(--border)}@media print{.print-no-print{display:none!important}.admin-nav,.admin-main nav,button{display:none!important}.print-view{padding:0}.print-header h1{font-size:1.75rem}.print-header h2{font-size:1.35rem}.print-pair,.print-triad{font-size:1.1rem;page-break-inside:avoid}.print-pairs,.print-triads{break-inside:avoid}}@media(max-width:640px){.site-main{padding:1rem .75rem 1.5rem}.page{padding:0 .25rem}.signup-form{padding:1.25rem}.signup-page input,.signup-page select{padding:.75rem 1rem;font-size:16px}.signup-page button[type=submit]{padding:1rem 1.25rem}.admin-nav{padding:.75rem 1rem;gap:.5rem}.admin-main{padding:1rem}.admin-dashboard .dashboard-tiles{grid-template-columns:1fr 1fr}.admin-session-detail .session-tabs{flex-wrap:wrap}.admin-session-detail .session-tabs button{padding:.5rem .75rem;font-size:.9rem}.admin-session-detail .roster-random-list{flex-direction:column}.admin-session-detail .roster-random-list li{width:100%}.phone-view .phone-pair,.phone-view .phone-triad{font-size:1.15rem}}@media(min-width:641px)and (max-width:1024px){.site-header-inner,.site-footer-inner,.page{max-width:44rem}.admin-dashboard .dashboard-tiles{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}}
