:root{color:#17211b;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit}button,input,select,textarea{font:inherit}.public-shell{background:linear-gradient(135deg,#144a2cd1,#17211b94),repeating-linear-gradient(90deg,#2f8f52 0 68px,#348f57 68px 136px);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.public-panel,.form-panel{background:#fffdf7;border-radius:8px;width:min(100%,680px);padding:32px;box-shadow:0 22px 80px #08130c3d}.compact-panel{width:min(100%,520px)}.success-panel{text-align:center}.eyebrow{color:#1f6840;letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.8rem;font-weight:800}h1{letter-spacing:0;margin:0;font-size:clamp(2rem,8vw,4.4rem);line-height:1}h2{letter-spacing:0;margin:0;font-size:1.25rem}.lead{color:#46544c;margin:16px 0 0;font-size:1.1rem;line-height:1.5}.upcoming-sessions{text-align:left;background:#f8faf6;border:1px solid #d9e1d7;border-radius:8px;margin-top:28px;padding:16px}.upcoming-sessions-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.upcoming-session-item{border-top:1px solid #e4e9e1;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.upcoming-sessions-list .upcoming-session-item:first-child{border-top:0;padding-top:0}.upcoming-session-date,.upcoming-session-group{align-items:center;gap:8px;margin:0;display:flex}.upcoming-session-date{color:#173d2a;font-weight:800}.upcoming-session-group{color:#4d5b51;margin-top:4px;font-size:.96rem;font-weight:700}.upcoming-session-meta{color:#607068;gap:6px;font-size:.94rem;display:grid}.upcoming-session-meta span{align-items:center;gap:6px;display:inline-flex}.qr-section .section-header{align-items:center}.qr-layout{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;display:grid}.qr-panel{background:#fff;border:1px solid #dce3dc;border-radius:8px;place-items:center;min-width:220px;padding:12px;display:grid}.qr-image{width:220px;height:220px;image-rendering:pixelated}.qr-actions{gap:12px;display:grid}.qr-actions .muted{word-break:break-word;margin:0}.action-stack,.form-stack{gap:16px;margin-top:28px;display:grid}.choice-link,.button{cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:14px 18px;font-weight:800;text-decoration:none;display:inline-flex}.choice-link{color:#fff;background:#173d2a;justify-content:flex-start;font-size:1.05rem}.choice-link svg{width:24px;height:24px}.button-primary{color:#fff;background:#176b3b}.button-secondary{color:#173d2a;background:#e7eee7}.button-danger{color:#8b1d16;background:#ffe1df}.button-compact{min-height:36px;padding:8px 12px;font-size:.9rem}.button-row{flex-wrap:wrap;gap:8px;display:flex}.button:disabled{opacity:.6;cursor:not-allowed}.back-link{color:#176b3b;margin-bottom:18px;font-weight:800;text-decoration:none;display:inline-block}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field{color:#253128;gap:7px;font-size:.94rem;font-weight:750;display:grid}.field input,.field select,.field textarea{color:#17211b;background:#fff;border:1px solid #c9d3ca;border-radius:8px;width:100%;padding:13px 14px}.field textarea{resize:vertical}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.checkbox{background:#fbfaf5;border:1px solid #dce3dc;border-radius:8px;align-items:flex-start;gap:10px;padding:12px;line-height:1.35;display:flex}.checkbox input{accent-color:#176b3b;width:18px;height:18px;margin-top:1px}.error-message{color:#a22c22;margin:0;font-weight:750}.success-message{color:#176b3b;margin:0;font-weight:750}.muted{color:#607068}.selection-list{gap:10px;display:grid}.result-icon{width:64px;height:64px;margin-bottom:18px}.result-icon-success{color:#176b3b}.result-icon-warning{color:#a75b10}.result-icon-info{color:#315b77}.admin-login-shell{background:#f4f7f2;place-items:center;min-height:100vh;padding:24px;display:grid}.admin-login-panel{background:#fff;border-radius:8px;width:min(100%,420px);padding:28px;box-shadow:0 18px 48px #121f161f}.admin-login-panel h1{font-size:2rem}.admin-shell{background:#f5f6f2;min-height:100vh}.admin-shell main{width:min(100% - 32px,1280px);margin:0 auto;padding:26px 0 48px}.admin-nav{color:#fff;background:#17211b;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.admin-brand{font-weight:850;text-decoration:none}.admin-nav nav{align-items:center;gap:12px;display:flex}.admin-nav a,.admin-nav button{color:#fff;cursor:pointer;background:0 0;border:0;font-weight:750;text-decoration:none}.admin-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.admin-heading h1{font-size:2.25rem}.admin-heading p{color:#617065;margin:0}.admin-heading>div{gap:6px;display:grid}.session-meta{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.metric{background:#fff;border:1px solid #dce3dc;border-radius:8px;padding:16px}.metric span{color:#607068;font-size:.86rem;font-weight:750;display:block}.metric strong{margin-top:6px;font-size:1.8rem;display:block}.admin-section{background:#fff;border:1px solid #dce3dc;border-radius:8px;margin-top:20px;padding:16px}.section-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.section-header p{color:#607068;margin:0}.section-header h2{font-size:1rem}.table-wrap{margin-top:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #edf0ed;padding:10px}th{color:#4d5b51;text-transform:uppercase;font-size:.78rem}.status-pill{color:#4d5b51;text-transform:capitalize;background:#f3f6f3;border:1px solid #dce3dc;border-radius:999px;padding:4px 8px;font-size:.82rem;font-weight:750;display:inline-block}.asset-preview-button{cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.asset-thumbnail{object-fit:cover;background:#f3f6f3;border:1px solid #dce3dc;border-radius:6px;width:72px;height:72px;display:block}.asset-placeholder{color:#8d9a90;background:#f3f6f3;border:1px solid #dce3dc;border-radius:6px;justify-content:center;align-items:center;width:72px;height:72px;display:inline-flex}.asset-placeholder svg{width:20px;height:20px}.asset-modal{z-index:40;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.asset-modal-backdrop{background:#0d120fb8;position:absolute;inset:0}.asset-modal-panel{z-index:1;background:#fffdf7;border-radius:8px;gap:16px;width:min(100%,820px);max-height:calc(100vh - 48px);padding:18px;display:grid;position:relative;overflow:auto;box-shadow:0 24px 70px #040b0752}.asset-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.asset-modal-header h2{font-size:1.2rem}.asset-modal-eyebrow{color:#607068;letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}.asset-modal-header p{color:#617065;margin:4px 0 0}.asset-modal-image{object-fit:contain;background:#f3f6f3;border-radius:6px;width:100%;max-height:calc(100vh - 240px)}.asset-modal-description{color:#46544c;margin:0;line-height:1.45}.row-actions{flex-wrap:wrap;gap:6px;min-width:230px;display:flex}.row-actions .button,.inline-form .button{min-height:34px;padding:7px 10px;font-size:.78rem}.inline-form{grid-template-columns:minmax(180px,360px) auto;align-items:end;gap:12px;margin:16px 0;display:grid}.session-form{grid-template-columns:minmax(150px,.95fr) minmax(120px,.65fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(180px,1fr) auto;align-items:end;gap:10px;margin-top:16px;display:grid}.session-form .button{min-height:47px}@media (width<=720px){.public-shell{align-items:stretch;padding:14px}.public-panel,.form-panel{padding:22px}.form-grid,.check-grid,.inline-form,.session-form{grid-template-columns:1fr}.admin-nav,.admin-heading{flex-direction:column;align-items:flex-start}.admin-nav nav{flex-wrap:wrap}.session-meta{justify-content:flex-start}}
