@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#20383b;--muted:#738080;--green:#214f4b;--lime:#d9e99a;--paper:#f6f7f3;--line:#e4e8e2;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #9aaa4b;outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:Manrope,sans-serif}h1{font-size:32px;letter-spacing:-1.1px;line-height:1.25}h2{font-size:19px;letter-spacing:-.4px}h3{font-size:16px}p{line-height:1.65}.muted{color:var(--muted)}.small{font-size:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#fff;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;font-size:21px;font-weight:800;letter-spacing:-.7px}.brand-mark{width:42px;height:45px;background:var(--green);color:var(--lime);display:grid;place-items:center;clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);font-size:22px}.brand small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:1.6px;color:var(--muted);margin-top:3px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#929b96;margin:40px 14px 14px}.nav-button{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;margin:3px 0;text-align:left;border-radius:7px;color:#687775;font-weight:500}.nav-button svg{width:19px;height:19px}.nav-button.active{background:#eaf0e4;color:#294e41;font-weight:700}.nav-button:hover{background:#f1f4ed}.nav-spacer{flex:1}.sidebar-note{border:1px solid var(--line);padding:16px;border-radius:10px;font-size:12px;line-height:1.6}.sidebar-note strong{display:block;margin-bottom:6px}.profile{border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;margin-top:22px;padding-top:22px}.avatar{border-radius:50%;width:36px;height:36px;display:grid;place-items:center;background:#e8ecdf;color:#486244;font-size:12px;font-weight:700;flex-shrink:0}.profile button{margin-left:auto}.main{margin-left:238px}.topbar{height:83px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:#fff}.crumb{font-size:13px;color:#78847f}.crumb span{color:#233f3d;margin-left:12px}.top-actions{display:flex;gap:15px;align-items:center}.badge{font-size:10px;font-weight:700;letter-spacing:1px;padding:6px 9px;border-radius:4px;background:#eff2e9;color:#66734e}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.content{padding:34px 40px 45px;max-width:1500px;margin:auto}.heading-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#809080;margin-bottom:9px}.subheading{margin-top:9px;color:var(--muted)}.date{font-size:12px;color:#7b8580;white-space:nowrap;display:flex;gap:8px;align-items:center}.hero{background:#193b3e;border-radius:12px;color:#fff;padding:30px 33px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden;margin-bottom:27px;min-height:190px}.hero:after{content:"";position:absolute;width:320px;height:320px;border:1px solid #ffffff12;border-radius:50%;right:100px;top:-100px;box-shadow:0 0 0 38px #ffffff04,0 0 0 76px #ffffff03,0 0 0 114px #ffffff02;pointer-events:none}.hero .eyebrow{color:#bdce99}.hero h2{font-size:27px;letter-spacing:-.9px}.hero p{color:#b5c7c5;max-width:440px;margin:10px 0 0;font-size:13px}.hero-action{position:relative;z-index:1;min-width:175px;text-align:center}.btn{padding:11px 17px;border-radius:6px;background:var(--green);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none}.btn svg{width:16px;height:16px}.btn:hover{filter:brightness(1.1)}.btn.lime{background:var(--lime);color:#253b2e}.btn.outline{background:transparent;border:1px solid var(--line);color:var(--ink)}.hero-action p{font-size:10px;letter-spacing:.2px;margin-top:10px}.grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:25px}.stack{display:flex;flex-direction:column;gap:25px}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:24px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px;gap:12px}.text-link{font-size:11px;font-weight:700;color:#56734f;display:inline-flex;gap:7px;align-items:center;white-space:nowrap}.text-link svg{width:14px;height:14px}.pill{font-size:10px;background:#edf2e6;color:#587048;padding:5px 8px;border-radius:4px;font-weight:600;display:inline-block}.pill.gold{background:#f5efdc;color:#9a8043}.announcement{display:flex;gap:14px;padding:17px 0;border-top:1px solid var(--line)}.announcement:first-of-type{border-top:0;padding-top:0}.announcement .avatar{border-radius:9px;background:#f0f3eb;width:37px;height:37px}.announcement h3{font-size:13px;line-height:1.6;margin-top:7px}.announcement p{font-size:12px;color:#7e8880;margin-top:6px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.event{display:flex;gap:16px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.event:first-of-type{border:0;padding-top:0}.event-date{background:#f2f4eb;border:1px solid #e9ecde;border-radius:7px;width:52px;min-width:52px;text-align:center;padding:7px 0;font-size:9px;color:#819065}.event-date strong{font:700 21px Manrope,sans-serif;display:block;color:#364b37}.event h3{font-size:13px;margin-bottom:5px}.event p{font-size:11px;color:var(--muted)}.event .text-link{margin-left:auto}.club{background:#ebeee2;border-color:#e2e7d6;position:relative}.club h2{font-size:24px;max-width:225px;line-height:1.3;margin:14px 0}.club p{font-size:12px;color:#77826b;margin:0 0 20px;max-width:270px}.club .star{position:absolute;right:22px;top:27px;font-size:34px;color:#abb88b}.club .btn{width:100%}.club-footer{text-align:center;color:#879278;font-size:10px;margin-top:12px}.poll p{font-size:13px;line-height:1.6;margin-bottom:15px}.poll-options{display:flex;flex-direction:column;gap:9px}.poll-option{border:1px solid var(--line);padding:11px 12px;border-radius:6px;text-align:left;display:flex;justify-content:space-between;align-items:center;font-size:12px;position:relative;overflow:hidden;min-height:41px}.poll-option.selected{border-color:#67865b;background:#f2f6e9}.poll-option span{z-index:1}.poll-option .bar{position:absolute;left:0;top:0;bottom:0;background:#edf2e2;z-index:0}.poll-footer{font-size:10px;color:#8b948b;margin-top:16px;display:flex;justify-content:space-between}.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quick-link{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px 14px;text-align:left;display:flex;flex-direction:column;gap:12px}.quick-link svg{color:#6b8055}.quick-link b{font-size:12px}.quick-link span{font-size:10px;color:var(--muted)}.footer{color:#99a195;font-size:10px;letter-spacing:.3px;display:flex;justify-content:space-between;margin-top:29px}.page-intro{margin-bottom:24px}.list-card{margin-bottom:15px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar>div{min-height:90px;padding:9px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:12px}.calendar .day-label{min-height:35px;font-size:10px;color:var(--muted);text-align:center;background:#f4f6ef}.calendar .today{background:#f0f5e5}.cal-event{display:block;margin-top:8px;padding:5px;border-radius:4px;background:#e6ecd9;font-size:9px;width:100%;text-align:left}.channel-layout{display:grid;grid-template-columns:225px 1fr;gap:22px}.channel-list{padding:16px;max-height:630px;overflow:auto}.channel-list h3{font:600 10px 'DM Sans';letter-spacing:1px;color:#8b9586;margin:17px 8px 8px}.channel{display:block;width:100%;text-align:left;padding:9px;border-radius:5px;font-size:12px;color:#64725f}.channel.selected{background:#edf1e4;color:#294a35}.chat{min-height:540px;display:flex;flex-direction:column}.chat-messages{flex:1;max-height:450px;overflow:auto}.message{display:flex;gap:12px;margin:22px 0}.message strong{font-size:12px}.message p{font-size:13px;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}.chat-compose{display:flex;gap:9px;margin-top:20px}.chat-compose input{flex:1;min-width:0}.field{display:block;margin:18px 0 0;font-size:12px;font-weight:600}.field span{display:block;margin-bottom:8px}input,textarea,select{border:1px solid #dbe1d5;background:#fafbf7;border-radius:6px;padding:12px;color:var(--ink);width:100%}textarea{min-height:100px;resize:vertical}.field input[type=checkbox]{width:auto;margin-right:8px}dialog{border:1px solid var(--line);border-radius:14px;width:min(490px,calc(100% - 32px));padding:30px;color:var(--ink);box-shadow:0 25px 100px #152e3240}dialog::backdrop{background:#122c366b;backdrop-filter:blur(3px)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#244540;color:#fff;padding:13px 24px;border-radius:8px;font-size:12px;box-shadow:0 10px 35px #0002;z-index:100;display:none}.notice{background:#f0f3e9;border-radius:6px;padding:13px 16px;font-size:12px;line-height:1.7;margin-bottom:22px;color:#6f7c65}.empty{padding:45px 20px;text-align:center;color:var(--muted)}.mobile-brand{display:none}.toggle-row{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font-size:13px}.toggle-row input{width:20px}.member-badge{display:inline-flex;align-items:center;gap:8px;background:#e1ead4;padding:13px;border-radius:6px;font-size:12px}.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.resource-grid .card p{margin:12px 0;font-size:13px;color:var(--muted)}.pill-count{font-size:10px;margin-left:auto;background:#d9e4cb;padding:2px 6px;border-radius:3px}.check-history{display:flex;gap:8px;margin-top:20px}.check-history span{width:33px;height:38px;border:1px solid var(--line);display:grid;place-items:center;border-radius:6px;font-size:11px}.check-history .done{background:#d9e99a}.menu-toggle{display:none}@media(min-width:1500px){.content{padding-top:44px}.hero{min-height:210px}}@media(max-width:1100px){.sidebar{width:205px;padding:25px 15px}.main{margin-left:205px}.content{padding:28px 25px}.topbar{padding:0 25px}.grid{gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(265px,1fr)}.card{padding:20px}.hero{padding:26px}.hero h2{font-size:24px}.hero p{max-width:330px}.date{display:none}}@media(max-width:850px){.grid{grid-template-columns:1fr}.sidebar{width:190px}.main{margin-left:190px}.hero{gap:25px}.hero-action{min-width:140px}.hero h2{font-size:22px}.hero p{font-size:12px}.channel-layout{grid-template-columns:170px 1fr}.quick-links{gap:10px}}@media(max-width:640px){.sidebar{display:none}.sidebar.open{display:flex;width:240px;box-shadow:0 0 0 100vw #0005}.main{margin-left:0}.content{padding:24px 18px}.topbar{height:65px;padding:0 18px}.menu-toggle{display:block}.crumb{display:none}.mobile-brand{display:flex;font-weight:800;font-size:17px;gap:10px;align-items:center}.top-actions .avatar{display:none}h1{font-size:28px}.heading-row{margin-bottom:22px}.hero{padding:24px;display:block}.hero-action{text-align:left;margin-top:22px}.hero-action p{display:none}.hero h2{font-size:23px}.hero p{max-width:100%}.card{padding:21px}.footer{gap:15px;line-height:1.7}.channel-layout{grid-template-columns:1fr}.channel-list{max-height:190px}.chat{min-height:420px}.resource-grid{grid-template-columns:1fr}.calendar>div{min-height:66px;padding:5px}.cal-event{font-size:8px;padding:3px}.quick-link{padding:15px 11px}.quick-link b{font-size:11px}.top-actions{gap:8px}.event{gap:12px}.event .btn{padding:8px}.card-head h2{font-size:17px}}
nav{overflow:auto;min-height:0}.streak-banner{display:flex;align-items:center;gap:14px;background:#edf1e3;border:1px solid #e0e7d2;border-radius:9px;padding:17px 21px;margin:-7px 0 26px}.streak-spark{font-size:27px;color:#72894d}.streak-banner b{font-size:13px}.streak-banner p{font-size:11px;color:#7b886c;margin-top:3px}.streak-banner .text-link{margin-left:auto}.attendance-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px}.attendance-stats>div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px}.attendance-stats strong{display:block;font:800 31px Manrope,sans-serif}.attendance-stats span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.period-tabs{display:flex;background:#f1f4ed;padding:4px;border-radius:7px;gap:4px}.period-tabs button{flex:1;border-radius:5px;padding:9px 6px;font-size:11px}.period-tabs .selected{background:white;box-shadow:0 1px 5px #203b3512;font-weight:700}.leaderboard-row{display:grid;grid-template-columns:43px minmax(0,1fr) 35px;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:17px 7px}.leaderboard-row:last-child{border:0}.leaderboard-labels{color:#8a9483;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding-top:5px;padding-bottom:11px}.leaderboard-row b{font-size:13px;overflow-wrap:anywhere}.leaderboard-row small{display:block;font-size:8px;letter-spacing:1px;color:#88947d;margin-top:5px}.leaderboard-row strong{text-align:right;font-size:17px}.leaderboard-labels span:last-child{text-align:right}.rank-number{font:700 16px Manrope,sans-serif;color:#8a9776}.leaderboard-row.is-you{background:#eff5e3;border-radius:7px}.leaderboard-row.is-you .rank-number{color:var(--green)}.milestones{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.milestone{background:#f7f8f4;border:1px solid var(--line);border-radius:8px;padding:15px 8px;text-align:center;color:#839075}.milestone>span{font-size:25px;display:block;margin-bottom:8px}.milestone b{display:block;font-size:10px}.milestone small{display:block;font-size:9px;margin-top:5px}.milestone.earned{background:#eef4dc;border-color:#cbdca6;color:#415f35}.attendance-week{display:flex;justify-content:space-between;gap:5px}.attendance-week>div{text-align:center}.attendance-week small{font-size:10px;color:#8b967f}.attendance-week span{display:grid;place-items:center;width:30px;height:34px;font-size:11px;border-radius:6px;background:#f3f5ee;margin-top:8px;color:#8b967f}.attendance-week .done{background:var(--lime);color:var(--green);font-weight:700}@media(max-width:640px){.streak-banner{flex-wrap:wrap;padding:17px}.streak-banner .text-link{margin-left:40px}.attendance-stats{grid-template-columns:1fr 1fr;gap:11px}.attendance-stats>div{padding:17px}.milestones{grid-template-columns:1fr 1fr}.sidebar-note{display:none}.sidebar .nav-label{margin-top:23px}.leaderboard-row{gap:6px;grid-template-columns:33px minmax(0,1fr) 30px}}

.forgot-link{display:block;margin:13px auto 0;color:#d9e99a;font-size:12px;text-decoration:underline;text-underline-offset:4px}.service-options{border:0;padding:0;margin:18px 0}.service-options legend{font-weight:700;font-size:12px;margin-bottom:10px}.service-options label,.visit-confirm{display:flex;gap:11px;align-items:flex-start;font-size:12px;line-height:1.6;padding:8px 0}.service-options input,.visit-confirm input{width:17px;height:17px;margin:2px 0 0;flex-shrink:0;accent-color:var(--green)}.visit-confirm{margin:18px 0 10px}.form-error{color:#a54235;font-size:12px;margin-bottom:12px}.history-labels{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.attendance-entry{align-items:flex-start}.attendance-entry>div:nth-child(2){min-width:0;overflow-wrap:anywhere}dialog{max-height:90dvh;overflow:auto}@media(max-width:640px){.forgot-link{margin-left:0}.modal-actions{flex-wrap:wrap}}
