:root{--ink: #172033;--muted: #6c7280;--paper: #f5f1ea;--card: #fffdfa;--line: #ded9d1;--green: #273653;--green-dark: #18243c;--sand: #dcc4aa;--accent: #c78957;--danger: #a54a42;--shadow: 0 18px 50px rgba(31, 44, 39, .08)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #e3a93e;outline-offset:2px}.app-shell{min-height:100dvh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:fixed;width:238px;height:100vh;padding:26px 20px 22px;background:#17233b;color:#fff;display:flex;flex-direction:column;z-index:4}.brand{display:flex;align-items:center;gap:12px;margin:0 7px 14px}.brand strong{display:block;font-size:18px;letter-spacing:-.02em}.brand small{display:block;margin-top:3px;color:#b8c1d2;font-size:11px}.brand-mark{width:42px;height:42px;display:block;border-radius:12px;object-fit:cover;box-shadow:inset 0 0 0 1px #ffffff73,0 8px 20px #00000024}.loading-brand{width:64px;height:64px;border-radius:18px;animation:brand-pulse 1.8s ease-in-out infinite}@keyframes brand-pulse{50%{transform:scale(1.04);opacity:.82}}.signed-in-as{margin:0 7px 28px;color:#97a3ba;font-size:12px}.sidebar nav{display:grid;gap:7px}.sidebar nav button,.mobile-nav button{border:0;background:transparent;text-align:left;color:#d2d8e3;padding:13px 10px;border-radius:9px;cursor:pointer;font-size:15px;display:flex;align-items:center;gap:13px}.sidebar nav button span{font-size:9px;letter-spacing:.1em;color:#c78957}.sidebar nav button.active{color:#fff;background:#ffffff1c}.nav-icon{width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.promo{margin-top:20px;text-decoration:none;color:#17233b;background:#eadfce;border-radius:14px;padding:14px;display:grid;gap:4px}.sidebar-footer-nav{margin-top:auto;padding-top:18px;display:grid;gap:0}.promo-carousel{position:relative;width:100%;aspect-ratio:16 / 11;overflow:hidden;border-radius:10px;margin-bottom:6px;background:#dfe7e9}.promo-track{display:flex;width:100%;height:100%;transition:transform .6s cubic-bezier(.65,0,.35,1)}.promo-slide{flex:0 0 100%;width:100%;height:100%;object-fit:cover;display:block}.promo small{text-transform:uppercase;letter-spacing:.12em;font-size:8px}.promo strong{font-size:18px}.promo span{font-size:11px;color:#60706a}.signout{color:var(--danger);text-decoration:none;font-size:16px;font-weight:750;margin:18px 0 0}.main{grid-column:2;padding:34px clamp(28px,5vw,72px) 70px;max-width:1500px;width:100%}.topbar{display:flex;align-items:end;justify-content:space-between;gap:26px;margin-bottom:30px}.welcome-line{display:block;margin-bottom:10px;color:var(--green);font-size:clamp(18px,2.2vw,27px);font-weight:800;letter-spacing:-.025em}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:9px;font-weight:800;color:var(--green);margin-bottom:9px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(27px,3.6vw,43px);line-height:1.05;letter-spacing:-.045em}h2{margin-bottom:10px;font-size:27px;line-height:1.1;letter-spacing:-.035em}h3{margin-bottom:0;font-size:20px;letter-spacing:-.025em}.group-picker{min-width:230px}.group-picker label,.session-picker{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}select,input{width:100%;border:1px solid var(--line);background:#fffefb;color:var(--ink);border-radius:9px;padding:11px 12px;margin-top:7px}.group-picker select{font-weight:700}.back-button,.secondary{border:1px solid var(--line);background:var(--card);color:var(--green);border-radius:9px;padding:11px 15px;cursor:pointer;font-weight:700}.message{margin-bottom:18px;border-left:3px solid var(--danger);background:#fff5f1;padding:12px 15px;display:flex;justify-content:space-between;font-size:13px}.message button{background:none;border:0;text-decoration:underline;cursor:pointer}.busy{position:fixed;right:24px;bottom:24px;z-index:10;background:var(--ink);color:#fff;padding:11px 16px;border-radius:9px;font-size:12px;box-shadow:var(--shadow)}.hero-card{min-height:230px;padding:42px;border-radius:22px;color:#fff;background:linear-gradient(120deg,color-mix(in srgb,var(--group-color),#07101f 62%),var(--group-color));display:flex;justify-content:space-between;align-items:end;gap:30px;box-shadow:var(--shadow)}.hero-card .eyebrow{color:#d9e9e2}.hero-card h2{font-size:clamp(35px,5vw,57px);margin-bottom:8px}.hero-card p{color:#dce9e4;margin-bottom:0}.primary{border:0;border-radius:9px;background:var(--green);color:#fff;font-weight:750;padding:12px 17px;cursor:pointer}.primary:hover{background:var(--green-dark)}.primary.light{flex-shrink:0;background:#faf7ee;color:var(--green-dark)}.primary:disabled{opacity:.48;cursor:not-allowed}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:18px 0}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:19px 20px}.stat-card span{color:var(--muted);display:block;font-size:11px;margin-bottom:13px}.stat-card strong{font-size:29px;letter-spacing:-.04em}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:25px;box-shadow:0 8px 28px #2c373209}.card-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.next-session-participation{margin:-8px 0 22px;padding-bottom:20px;border-bottom:1px solid var(--line)}.next-session-date b{display:block;margin-top:4px;font-size:15px}.participation-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.participation-tile{border-radius:10px;padding:11px 8px;text-align:center;border:1px solid var(--line);background:var(--paper)}.participation-tile strong{display:block;font-size:22px;letter-spacing:-.03em}.participation-tile span{display:block;margin-top:3px;font-size:10px;color:var(--muted)}.participation-tile.present{border-color:color-mix(in srgb,#39725c,transparent 55%);background:color-mix(in srgb,#39725c,var(--paper) 88%)}.participation-tile.present strong{color:#39725c}.participation-tile.excused{border-color:color-mix(in srgb,#b28a3d,transparent 55%);background:color-mix(in srgb,#b28a3d,var(--paper) 88%)}.participation-tile.excused strong{color:#b28a3d}.participation-tile.open{border-color:color-mix(in srgb,#68736f,transparent 55%);background:color-mix(in srgb,#68736f,var(--paper) 88%)}.participation-tile.open strong{color:#68736f}.app-shell[data-theme=dark] .participation-tile{background:#111a2b}.app-shell[data-theme=dark] .participation-tile.present strong{color:#68c99f}.app-shell[data-theme=dark] .participation-tile.excused strong{color:#f0bd5e}.app-shell[data-theme=dark] .participation-tile.open strong{color:#9caac0}.quick-actions{display:grid;gap:8px;margin-top:20px}.quick-actions button{border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;padding:13px 15px;cursor:pointer}.quick-actions b,.quick-actions span{display:block}.quick-actions span{color:var(--muted);font-size:11px;margin-top:3px}.session-list{display:grid;gap:7px}.session-list button{display:grid;grid-template-columns:95px 1fr auto;gap:12px;align-items:center;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.session-list time{color:var(--muted);font-size:11px}.session-list span{color:var(--green);font-size:11px;font-weight:700}.managed-session-list{display:grid}.managed-session-row{display:grid;grid-template-columns:105px minmax(160px,1fr) auto auto;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.managed-session-row time{color:var(--muted);font-size:11px}.managed-session-row b,.managed-session-row span{display:block}.managed-session-row>div>span{margin-top:4px;color:var(--muted);font-size:10px}.session-state{border-radius:999px;padding:6px 10px;color:#fff;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.session-state.regular{background:#39725c}.session-state.called_off{background:#b28a3d}.session-state.canceled{background:#a54a42}.session-actions{display:flex;gap:6px}.edit-button.delete{color:var(--danger)}.trash-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.content-grid{display:grid;grid-template-columns:minmax(250px,.34fr) minmax(0,1fr);gap:18px;align-items:start}.form-card{position:sticky;top:24px}form{display:grid;gap:14px}form label{font-size:11px;font-weight:700;color:var(--muted)}.privacy-note{margin:16px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.member-card{display:grid;grid-template-columns:49px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);background:#fff;padding:11px;border-radius:11px}.member-card.archived{opacity:.55}.member-card b,.member-card span{display:block}.member-card span{color:var(--muted);font-size:10px;margin-top:3px}.avatar,.mini-avatar{border-radius:50%;overflow:hidden;background:#e5e8ef;color:var(--green-dark);display:grid;place-items:center;font-weight:800}.avatar{width:48px;height:48px;cursor:pointer}.avatar input{display:none}.avatar.static{cursor:default}.avatar img,.mini-avatar img{width:100%;height:100%;object-fit:cover}.mini-avatar{width:37px;height:37px;font-size:11px;flex-shrink:0}.text-button{border:0;background:none;color:var(--green);font-size:10px;text-decoration:underline;cursor:pointer}.member-actions{display:grid;justify-items:end;gap:5px}.member-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}.member-search{color:var(--muted);font-size:10px;font-weight:700}.member-search input{margin-top:5px}.sort-button{min-width:76px}.member-filters{display:flex;gap:9px;margin-bottom:18px}.member-filters button{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:8px;border:1px solid var(--line);border-radius:999px;padding:9px 10px;background:var(--card);color:var(--green);cursor:pointer;font-size:11px;font-weight:800;min-height:39px}.member-filters button span{display:grid;min-width:21px;height:21px;place-items:center;border-radius:50%;margin:0;background:var(--paper);color:var(--muted);font-size:9px}.member-filters button.active{border-color:var(--green);background:var(--green);color:#fff}.member-filters button.active span{background:#ffffff2e;color:#fff}.edit-button{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green);cursor:pointer;font-size:16px}.form-hint{color:var(--muted);font-size:10px;margin-top:-8px}.field-hint{display:block;margin-top:7px;color:var(--muted);font-size:9px;line-height:1.4;font-weight:500}.time-grid,.name-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.member-import{display:grid;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.member-import>span{color:var(--ink);font-size:12px;font-weight:800}.member-import small{color:var(--muted);font-size:10px}.import-button{display:flex;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:11px;background:var(--card);color:var(--green);font-size:11px;font-weight:800;cursor:pointer}.import-button input{display:none}.import-dialog{width:min(920px,100%)}.import-table-wrap{max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:12px;margin-bottom:20px}.import-table-wrap table{width:100%;border-collapse:collapse;font-size:11px}.import-table-wrap th{position:sticky;top:0;z-index:1;padding:11px;color:#fff;background:var(--green-dark);text-align:left}.import-table-wrap td{padding:10px 11px;border-top:1px solid var(--line)}.import-table-wrap tr:nth-child(2n){background:color-mix(in srgb,var(--card),var(--paper) 45%)}.recurring-panel{margin-top:18px;border-top:1px solid var(--line);padding-top:15px}.recurring-panel summary{cursor:pointer;color:var(--green);font-weight:750;font-size:12px;margin-bottom:14px}.weekday-row{display:grid;grid-template-columns:90px 1fr 1fr;gap:7px;align-items:center}.weekday-row input{margin-top:0}.day-toggle{display:flex;align-items:center;gap:7px}.day-toggle input{width:auto;margin:0}.paused-hero{background:#e7d8c8}.paused-archive-view{display:grid;gap:18px}.pause-rule-edit{align-self:center}.archived-hero{background:#dce4ef}.archive-section{margin-bottom:8px}.toggle{font-size:10px;color:var(--muted);display:flex;gap:6px;align-items:center}.toggle input{width:auto;margin:0}.session-picker{margin-top:28px}.appointment-list{display:grid;gap:7px}.appointment-list>span{margin-bottom:3px}.appointment-list button{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:8px;width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px;text-align:left;cursor:pointer}.appointment-list button.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 72%)}.appointment-list button:disabled{cursor:not-allowed;opacity:.55}.appointment-list time,.appointment-list small{font-size:10px;color:var(--muted)}.attendance-list{display:grid}.attendance-row{display:grid;grid-template-columns:38px minmax(110px,1fr) auto;align-items:center;gap:11px;border-bottom:1px solid var(--line);padding:11px 0}.status-buttons{display:flex;gap:5px;flex-wrap:wrap;justify-content:end}.status-buttons button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 9px;color:var(--muted);font-size:10px;cursor:pointer}.status-buttons button.active{color:#fff;border-color:transparent}.status-buttons .present{background:#39725c}.status-buttons .excused{background:#b28a3d}.status-buttons .absent{background:#a54a42}.status-buttons .open{background:#68736f}.report-hero{background:#ded4bd;border-radius:16px;padding:32px;margin-bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:24px}.report-actions{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}.report-actions button{min-width:200px;text-align:center;justify-content:center;padding:13px 17px;font-size:14px}.export-button{border:1px solid rgba(23,35,59,.32);border-radius:9px;background:transparent;color:var(--green-dark);font-weight:750;cursor:pointer}.export-button:hover{background:#17233b0f}.export-button:disabled{opacity:.48;cursor:not-allowed}.app-shell[data-theme=dark] .export-button{border-color:#ffffff47;color:var(--ink)}.app-shell[data-theme=dark] .export-button:hover{background:#ffffff0f}.report-hero p{color:#5d6863;margin-bottom:0;max-width:600px}.threshold{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.threshold input{width:55px;margin:0;padding:7px}.absence-list{display:grid;gap:5px}.absence-list>div{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.absence-list strong{color:var(--danger);font-size:11px}.empty{color:var(--muted);font-size:12px;padding:15px 0;margin:0}.new-group{margin-top:18px;display:grid;grid-template-columns:220px 1fr;gap:30px;align-items:end}.group-form{display:grid;grid-template-columns:1.2fr 1fr 150px auto;gap:10px;align-items:end}.color-swatch-picker{display:flex;gap:8px;padding-top:7px}.color-swatch{position:relative;width:30px;height:30px;border-radius:50%;background:var(--swatch);cursor:pointer;box-shadow:inset 0 0 0 1px #0000001f}.color-swatch input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}.color-swatch:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid transparent;transition:border-color .15s ease}.color-swatch:has(input:checked):after{border-color:var(--swatch);box-shadow:0 0 0 2px var(--card)}.color-swatch:has(input:focus-visible):after{border-color:#e3a93e}.empty-start{min-height:65vh;display:grid;place-items:center}.empty-start>div{max-width:850px;width:100%;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:clamp(30px,6vw,70px);box-shadow:var(--shadow)}.empty-start p{color:var(--muted)}.groups-home{display:grid;gap:24px}.groups-intro{display:grid;gap:9px}.groups-intro p{color:var(--muted);max-width:650px}.club-title-row{display:flex;align-items:center;gap:12px}.club-name{display:block;font-size:clamp(30px,4vw,48px);line-height:1;color:var(--green);letter-spacing:-.045em}.personal-greeting{margin:0;color:var(--ink)!important;font-size:clamp(20px,2.6vw,29px);font-weight:750;letter-spacing:-.03em}.round-icon-button,.round-add-button{flex:0 0 auto;display:grid;place-items:center;border-radius:50%;cursor:pointer}.round-icon-button{width:38px;height:38px;border:1px solid var(--line);color:var(--green);background:var(--card);font-size:19px;box-shadow:0 7px 18px #141d3012}.groups-section-head{display:flex;align-items:center;justify-content:flex-start;gap:13px;padding-top:5px}.groups-section-head h2{margin:0;font-size:clamp(25px,3vw,35px)}.round-add-button{width:43px;height:43px;border:0;color:#fff;background:var(--green);font-size:30px;font-weight:300;line-height:1;box-shadow:var(--shadow)}.round-add-button:hover,.round-icon-button:hover{transform:translateY(-1px)}.panel-toggle{display:none}.group-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.group-tile{position:relative;min-height:210px;padding:25px;border:0;border-radius:18px;color:#fff;background:linear-gradient(140deg,color-mix(in srgb,var(--tile-color),#07101f 68%),var(--tile-color));box-shadow:var(--shadow);text-align:left;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;transition:transform .18s ease,box-shadow .18s ease}.group-tile:hover{transform:translateY(-3px);box-shadow:0 22px 55px #141d302e}.group-tile span{opacity:.72;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.group-tile strong{margin-top:12px;font-size:25px}.group-tile small{margin-top:7px;opacity:.78}.group-tile b{margin-top:auto;color:#f2c49d;font-size:12px}.group-tile-actions{position:absolute;top:15px;right:15px;display:flex;gap:7px}.group-tile-actions button{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;color:#fff;background:#07101f57;backdrop-filter:blur(8px);cursor:pointer;font-size:16px}.group-tile-actions button:hover{background:#07101fa6}.group-tile-actions .danger-icon:hover{background:#a54a42}.wide-promo{position:relative;min-height:210px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) clamp(140px,17vw,190px);align-items:center;gap:clamp(22px,3.5vw,46px);border:1px solid rgba(133,194,255,.28);border-radius:18px;padding:22px clamp(28px,4.5vw,52px);color:#fff;text-decoration:none;background:radial-gradient(circle at 92% 18%,rgba(103,177,244,.28),transparent 34%),linear-gradient(125deg,#101d35,#182b4d 58%,#214b78);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.wide-promo:hover{transform:translateY(-2px);box-shadow:0 22px 55px #101d353d}.wide-promo:focus-visible{outline:3px solid #8bc7ff;outline-offset:3px}.wide-promo:before{content:"";position:absolute;width:220px;height:220px;right:10%;bottom:-175px;border:34px solid rgba(114,181,243,.12);border-radius:50%}.wide-promo .promo-copy{position:relative;z-index:2;display:grid;justify-items:start;max-width:590px}.promo-brand{display:flex;align-items:center;gap:12px;margin-bottom:13px}.promo-icon{width:45px;height:45px;border:1px solid rgba(151,205,255,.45);border-radius:12px;box-shadow:0 9px 22px #020c1d4d}.wide-promo small{color:#a9d7ff;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:800}.wide-promo strong{font-size:clamp(30px,3.5vw,43px);line-height:1;letter-spacing:-.04em}.wide-promo .promo-copy>span{max-width:540px;margin-top:9px;color:#e0ebf7;font-size:clamp(14px,1.5vw,17px);line-height:1.45}.wide-promo b{display:inline-flex;align-items:center;gap:8px;margin-top:19px;border-radius:999px;padding:10px 16px;color:#11223d;background:#a9d7ff;font-size:13px;box-shadow:0 8px 20px #020c1d33}.wide-promo b span{color:inherit;font-size:17px;line-height:1;transition:transform .18s ease}.wide-promo:hover b span{transform:translate(3px)}.promo-visual{position:relative;z-index:1;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid rgba(169,215,255,.34);border-radius:22px;background:#dfe7e9;box-shadow:0 18px 40px #020c1d59}.promo-visual img{display:block;width:100%;height:100%;object-fit:contain}.group-add-button{min-height:210px;border:1px dashed #aaa49c;border-radius:18px;background:#ffffff80;color:var(--green);cursor:pointer;display:grid;place-content:center;justify-items:center;gap:7px}.group-add-button span{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:36px;font-weight:300}.group-add-button strong{font-size:17px}.group-add-button small{color:var(--muted)}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#0c121f94;display:grid;place-items:center;padding:20px}.modal-card{width:min(600px,100%);max-height:90vh;overflow:auto;background:var(--card);border-radius:18px;padding:25px;box-shadow:0 28px 90px #00000047}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head button{border:0;background:transparent;color:var(--muted);font-size:28px;cursor:pointer}.modal-card .group-form{grid-template-columns:1fr}.danger-dialog p{color:var(--muted);line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.danger-button{border:0;border-radius:9px;background:var(--danger);color:#fff;font-weight:750;padding:12px 17px;cursor:pointer}.loading-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted)}.setup-screen,.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#151f35,#3a4966 68%,#a66f48)}.setup-card,.auth-card{width:min(760px,100%);background:var(--card);border-radius:20px;padding:clamp(28px,6vw,60px);box-shadow:0 30px 80px #081a1547}.setup-card .brand-mark,.auth-card .brand-mark{margin-bottom:28px}.setup-card p,.auth-card p{color:var(--muted);line-height:1.55}.setup-card code{display:block;background:#edf0eb;padding:12px;border-radius:8px;font-size:12px}.auth-card{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,75px);align-items:center}.auth-error{color:var(--danger)!important;font-size:11px;margin:0}.password-field{position:relative;display:block}.password-field input{padding-right:48px}.password-toggle{position:absolute;top:7px;right:0;width:46px;height:calc(100% - 7px);display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer}.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--green)}.auth-check-error{display:grid;gap:10px;padding:13px;border:1px solid color-mix(in srgb,var(--danger),transparent 55%);border-radius:10px;background:color-mix(in srgb,var(--danger),transparent 92%)}.auth-check-error p{margin:0;color:var(--danger)!important;font-size:11px;line-height:1.45}.auth-check-error .secondary{justify-self:start;padding:8px 11px;font-size:10px}.signout{border:0;background:transparent;text-align:left;cursor:pointer;padding:6px 0}.legal-links{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-bottom{display:grid;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);animation:settings-reveal .18s ease-out}@keyframes settings-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.legal-links a{font-size:11px;color:#97a3ba;text-decoration:none;opacity:.8}.legal-links a:hover{opacity:1;text-decoration:underline}.danger-text{color:#e08a80!important}.manual-join-form{display:grid;gap:10px;margin-top:6px}.manual-join-form input{text-transform:uppercase;letter-spacing:.08em}.language-switch{display:flex;gap:6px}.language-switch button{border:1px solid currentColor;background:transparent;border-radius:8px;padding:7px 12px;color:inherit;opacity:.55;font-size:12px;font-weight:700;cursor:pointer}.language-switch button.active{opacity:1;background:#ffffff1f}.theme-switch{display:flex;gap:7px}.theme-switch button{width:44px;height:40px;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:transparent;color:#fff;opacity:.55;cursor:pointer;font-size:20px}.theme-switch button.active{opacity:1;color:#17233b;background:#f5d89b;border-color:#f5d89b}.app-shell[data-theme=dark]{--ink: #edf1f7;--muted: #aab2c1;--paper: #0e1524;--card: #172033;--line: #303b50;--green: #d69a68;--green-dark: #bd7d4d;--sand: #69513f;--shadow: 0 18px 50px rgba(0,0,0,.28);background:var(--paper);color:var(--ink)}.app-shell[data-theme=dark] .main{background:var(--paper)}.app-shell[data-theme=dark] input,.app-shell[data-theme=dark] select,.app-shell[data-theme=dark] .member-card,.app-shell[data-theme=dark] .quick-actions button,.app-shell[data-theme=dark] .appointment-list button,.app-shell[data-theme=dark] .status-buttons button,.app-shell[data-theme=dark] .edit-button,.app-shell[data-theme=dark] .round-icon-button{background:#111a2b;color:var(--ink)}.app-shell[data-theme=dark] .report-hero,.app-shell[data-theme=dark] .paused-hero{background:#252e40}.app-shell[data-theme=dark] .report-hero p{color:var(--muted)}.app-shell[data-theme=dark] .promo{background:#c9b090}.app-shell[data-theme=dark] .status-buttons button{background:#111a2b;color:#d8dfeb;border-color:#46546c}.app-shell[data-theme=dark] .status-buttons button.active.present{background:#2f8f68;color:#fff;border-color:#68c99f;box-shadow:0 0 0 2px #68c99f47}.app-shell[data-theme=dark] .status-buttons button.active.excused{background:#b47a18;color:#fff;border-color:#f0bd5e;box-shadow:0 0 0 2px #f0bd5e40}.app-shell[data-theme=dark] .status-buttons button.active.absent{background:#b74646;color:#fff;border-color:#f28686;box-shadow:0 0 0 2px #f2868640}.app-shell[data-theme=dark] .status-buttons button.active.open{background:#53647d;color:#fff;border-color:#9caac0;box-shadow:0 0 0 2px #9caac03d}.compact-add{width:38px;height:38px;font-size:26px}.current-session-summary{color:var(--muted);font-size:12px;line-height:1.5}.collapse-button{background:var(--accent)}.appointment-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.appointment-type-switch button{min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--line);border-radius:10px;padding:12px 6px;background:var(--paper);color:var(--muted);cursor:pointer;font-size:13px;font-weight:800}.appointment-type-switch button.active{border-color:var(--green);background:var(--green);color:#fff}.series-form h3{margin:7px 0 2px;font-size:15px}.mobile-settings-backdrop{display:none}.setup-card>.language-switch,.auth-card .language-switch{justify-content:end;color:var(--green);margin-bottom:16px}.mobile-nav{display:none}.add-member-menu{position:relative}.add-member-options{position:absolute;top:calc(100% + 8px);right:0;z-index:6;display:grid;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px}.add-member-options button{border:0;background:none;text-align:left;padding:11px 12px;border-radius:8px;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}.add-member-options button:hover{background:var(--paper)}.invite-code-display{margin:14px 0;padding:18px;border-radius:12px;background:var(--paper);border:1px dashed var(--sand);text-align:center}.invite-code-display strong{font-size:30px;letter-spacing:.18em;color:var(--green-dark)}.join-card{grid-template-columns:1fr;max-width:480px}.member-shell{min-height:100dvh;background:var(--paper);color:var(--ink)}.member-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 16px;background:#17233b;color:#fff;position:relative}.member-brand{display:flex;align-items:center;gap:12px}.member-brand strong{display:block;font-size:17px;letter-spacing:-.02em}.member-brand small{display:block;margin-top:2px;color:#b8c1d2;font-size:11px}.member-header .round-icon-button{background:#ffffff1f;border-color:#ffffff40;color:#fff}.member-menu{position:absolute;top:66px;right:16px;z-index:8;display:grid;gap:10px;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:14px}.member-main{max-width:640px;margin:0 auto;padding:22px 18px calc(env(safe-area-inset-bottom) + 40px)}.member-greeting{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 18px}.member-session-list{display:grid;gap:12px}.member-session-card{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 8px 28px #2c373209}.member-session-info{display:grid;gap:2px}.member-session-info time{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}.member-session-info b{font-size:15px}.member-session-info span{color:var(--muted);font-size:12px}.member-status-buttons{display:flex;gap:8px}.member-status-buttons button{border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:10px 16px;color:var(--muted);font-size:13px;font-weight:750;cursor:pointer}.member-status-buttons button.active.present{background:#39725c;border-color:#39725c;color:#fff}.member-status-buttons button.active.excused{background:#b28a3d;border-color:#b28a3d;color:#fff}.member-footnote{text-align:center}.member-shell[data-theme=dark]{--ink: #edf1f7;--muted: #aab2c1;--paper: #0e1524;--card: #172033;--line: #303b50;--green: #d69a68;--green-dark: #bd7d4d;--shadow: 0 18px 50px rgba(0,0,0,.28);background:var(--paper);color:var(--ink)}.member-shell[data-theme=dark] .member-status-buttons button{background:#111a2b;color:#d8dfeb;border-color:#46546c}@media(max-width:1040px){.member-grid{grid-template-columns:1fr}.content-grid{grid-template-columns:280px minmax(0,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.new-group{grid-template-columns:1fr}.group-form{grid-template-columns:1fr 1fr}.group-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){input,select,textarea{font-size:16px}.app-shell{display:block}.sidebar{display:none}.main{padding:calc(env(safe-area-inset-top) + 54px) 14px calc(env(safe-area-inset-bottom) + 94px)}.topbar{align-items:start;flex-direction:column;gap:18px}.group-picker{width:100%}.hero-card{min-height:260px;padding:27px;flex-direction:column;align-items:start}.stats-grid{gap:9px}.stat-card{padding:15px}.two-columns,.content-grid{grid-template-columns:1fr}.panel-toggle{display:grid}.toggle-form-card:not(.open){display:none}.form-card{position:static}.attendance-row{grid-template-columns:38px 1fr}.status-buttons{grid-column:1 / -1;justify-content:start;padding-bottom:5px}.report-hero{flex-direction:column;align-items:start}.new-group,.group-form{grid-template-columns:1fr}.mobile-nav{position:fixed;z-index:18;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;background:#17233b;padding:8px 5px max(8px,env(safe-area-inset-bottom));box-shadow:0 -8px 30px #0003}.mobile-nav button{min-height:51px;color:#c3ccda;padding:6px 2px;display:grid;justify-items:center;align-content:center;gap:4px;font-size:10px;text-align:center;transition:opacity .45s cubic-bezier(.22,.61,.36,1),transform .45s cubic-bezier(.22,.61,.36,1)}.mobile-nav button span{font-size:17px;line-height:1;color:#d79a67}.mobile-nav button.active{color:#fff;background:#ffffff21}.mobile-nav button.contextual{opacity:0;transform:translateY(18px);pointer-events:none}.mobile-nav.group-open button.contextual{opacity:1;transform:translateY(0);pointer-events:auto}.mobile-settings-backdrop{position:fixed;inset:0;z-index:19;display:flex;align-items:flex-end;background:#070c1694}.mobile-settings-sheet{width:100%;max-height:82dvh;overflow:auto;padding:22px 20px calc(env(safe-area-inset-bottom) + 24px);border-radius:22px 22px 0 0;background:var(--card);color:var(--ink)}.mobile-secondary-links{display:grid;gap:8px;margin-bottom:22px}.mobile-secondary-links button{border:1px solid var(--line);border-radius:10px;padding:13px;background:var(--paper);color:var(--ink);text-align:left}.mobile-preferences{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin-bottom:22px}.mobile-preferences>span{font-size:12px;font-weight:750}.mobile-preferences .theme-switch button{color:var(--ink);border-color:var(--line)}.mobile-preferences .language-switch{color:var(--ink)}.mobile-signout{width:100%;border:0;border-radius:10px;padding:16px 13px;background:var(--paper);color:var(--danger);font-weight:750;font-size:15px;text-align:left}.mobile-legal-links{margin-bottom:18px}.mobile-legal-links a{color:var(--muted)}.mobile-settings-sheet .danger-text{display:block;text-align:left;padding:10px 0 0;font-size:13px}.group-tile,.group-add-button{min-height:145px;padding:19px}.group-tile strong{font-size:21px}.card{padding:20px}.auth-screen,.setup-screen,.loading-screen{min-height:100dvh;padding-top:calc(env(safe-area-inset-top) + 54px);padding-bottom:calc(env(safe-area-inset-bottom) + 20px)}.member-header{padding-top:calc(env(safe-area-inset-top) + 20px)}.member-session-card{flex-direction:column;align-items:stretch}.member-status-buttons{justify-content:stretch}.member-status-buttons button{flex:1 1 0}.auth-card{grid-template-columns:1fr}.weekday-row{grid-template-columns:78px 1fr 1fr}.group-tile-grid{grid-template-columns:1fr}.wide-promo{min-height:0;grid-template-columns:minmax(0,1fr) 132px;gap:18px;padding:24px}.promo-visual{border-radius:17px}.name-grid,.member-toolbar{grid-template-columns:1fr}.sort-button{justify-self:start}.appointment-list button{grid-template-columns:76px 1fr}.appointment-list small{grid-column:2}.managed-session-row{grid-template-columns:1fr auto;gap:10px}.managed-session-row time{grid-column:1 / -1}.session-actions{justify-self:end}}@media(max-width:520px){.wide-promo{grid-template-columns:1fr;padding:24px}.wide-promo .promo-copy{max-width:none}.promo-visual{width:min(210px,72%);justify-self:center}}
