:root{--paper:#f4eee2;--soft:#fbf7ef;--ink:#282822;--muted:#666457;--terra:#a94e36;--terra-dark:#7f3528;--sage:#657267;--rule:#d5c9b5;--white:#fffdf8;--good:#3f6d4d;--warn:#985a18;--bad:#a33a32;font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--paper)}a{color:var(--terra-dark)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d88c72;outline-offset:2px}.top{background:var(--ink);color:var(--white)}.top-inner{width:min(1180px,calc(100% - 32px));min-height:72px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{color:var(--white);text-decoration:none;display:flex;align-items:center;gap:12px}.brand strong,.brand small{display:block}.brand strong{font:20px Georgia,serif}.brand small{margin-top:2px;color:#bbb7ae;font-size:9px;letter-spacing:.15em;text-transform:uppercase}.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav a{min-height:44px;padding:12px;color:#ddd8cf;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.06em}.nav a:hover,.nav a[aria-current=page]{color:var(--white);box-shadow:inset 0 -3px var(--terra)}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:40px 0 70px}.page-head{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:30px}.eyebrow{margin:0 0 8px;color:var(--terra);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.1}h1{margin:0;font-size:clamp(36px,6vw,64px);letter-spacing:-.035em}h2{margin:0 0 18px;font-size:clamp(26px,3vw,38px)}h3{margin:0 0 12px;font-size:22px}.muted{color:var(--muted)}.notice{padding:14px 16px;margin:0 0 24px;border-left:4px solid var(--good);background:var(--white)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:30px}.stat,.card{background:var(--soft);border:1px solid var(--rule)}.stat{padding:20px}.stat-link{display:block;color:inherit;text-decoration:none}.stat-link:hover{border-color:var(--terra)}.stat strong{display:block;font:36px Georgia,serif}.stat span{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card{padding:24px}.card.wide{grid-column:1/-1}.card-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.button,button{min-height:44px;border:0;padding:10px 17px;background:var(--terra);color:var(--white);font:700 12px/1.2 inherit;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.button:hover,button:hover{background:var(--terra-dark)}.button.secondary,button.secondary{background:transparent;border:1px solid var(--terra);color:var(--terra-dark)}.button.good,button.good{background:var(--good)}.button.small,button.small{min-height:38px;padding:8px 12px;font-size:10px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label,.field>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;min-height:46px;border:1px solid #bdb29f;border-radius:0;background:var(--white);color:var(--ink);padding:10px 12px;font:16px inherit}.field textarea{min-height:96px;resize:vertical}.check{display:flex;align-items:center;gap:10px;min-height:46px}.check input{width:22px;height:22px}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}.table-wrap{overflow-x:auto;border:1px solid var(--rule);background:var(--soft)}table{width:100%;border-collapse:collapse;min-width:690px}th,td{padding:13px 14px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}th{font-size:10px;letter-spacing:.1em;text-transform:uppercase}td{font-size:14px}tbody tr:last-child td{border-bottom:0}.status{display:inline-flex;padding:4px 8px;border-radius:99px;background:#e5e1d6;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.status.good{background:#dcebdd;color:var(--good)}.status.warn{background:#f4e6ca;color:var(--warn)}.status.bad{background:#f2d9d4;color:var(--bad)}.progress{height:9px;margin-top:10px;background:#ddd5c7;overflow:hidden}.progress span{display:block;height:100%;background:var(--terra)}.attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attendance-item{min-height:58px;padding:10px 12px;display:flex;align-items:center;gap:10px;border:1px solid var(--rule);background:var(--white)}.attendance-item input{width:23px;height:23px;flex:0 0 auto}.attendance-item span{font-weight:700}.empty{padding:28px;color:var(--muted);text-align:center}.member-hero{padding:30px;background:var(--sage);color:var(--white);display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;margin-bottom:20px}.member-hero .eyebrow{color:#f0c1ae}.member-hero h1{font-size:clamp(34px,5vw,58px)}.grade-number{font:clamp(50px,8vw,90px)/.9 Georgia,serif}.member-progress{background:rgba(255,255,255,.16)}.member-progress span{background:#f0c1ae}.signout{color:#ddd8cf;font-size:11px}.footer{padding:30px 16px;border-top:1px solid var(--rule);color:var(--muted);text-align:center;font-size:12px}.inline-form{display:inline}.setup{max-width:650px;margin:12vh auto;padding:32px;background:var(--soft);border:1px solid var(--rule)}
.card{min-width:0}.belt-graphic{width:min(100%,360px)}.belt-graphic small{display:block;margin-top:8px;color:inherit;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.belt{position:relative;height:58px;display:flex;align-items:center;justify-content:flex-end;padding:0 18px;border:1px solid rgba(0,0,0,.3);box-shadow:inset 0 5px rgba(255,255,255,.12),inset 0 -5px rgba(0,0,0,.12);font-size:15px;font-weight:800;text-transform:uppercase}.belt span{position:relative;z-index:1}.belt i{position:absolute;left:48%;top:50%;width:62px;height:68px;transform:translate(-50%,-50%) rotate(4deg);background:inherit;border:inherit;box-shadow:inherit;clip-path:polygon(15% 0,85% 0,100% 50%,84% 100%,16% 100%,0 50%)}.belt.white{background:#fffdf8;color:#282822}.belt.brown{background:#70462f;color:#fffdf8}.belt.black{background:#181916;color:#fffdf8}
.brand-logo{width:52px;height:52px;object-fit:contain;flex:0 0 auto}.join-shell{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.85fr) minmax(420px,1.15fr)}.join-intro{background:var(--sage);color:var(--white);padding:clamp(42px,7vw,100px);display:flex;flex-direction:column;justify-content:center}.join-intro .eyebrow{color:var(--white)}.join-intro h1{font-size:clamp(48px,6vw,88px)}.join-intro h1 em{display:block;color:#f0c1ae;font-weight:400}.join-intro p{max-width:580px;color:var(--white);font-size:18px}.join-logo{width:min(220px,48vw);height:auto;margin-bottom:34px}.join-panel{background:var(--soft);padding:clamp(32px,7vw,90px);display:flex;align-items:center}.join-card{width:min(720px,100%);margin:auto}.join-card h2{font-size:clamp(34px,4vw,54px)}.signin-box{border-top:1px solid var(--rule);margin-top:28px;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.captcha{background:var(--paper);border:1px solid var(--rule);padding:16px}.bot-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.privacy{font-size:12px;color:var(--muted)}
.streak-card{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(360px,1.2fr);gap:24px;align-items:center;margin-bottom:20px;overflow:hidden}.streak-copy h2{font-size:clamp(38px,5vw,62px);margin-bottom:12px}.streak-status{border-left:4px solid var(--terra);padding:10px 12px;background:var(--white);font-weight:700}.streak-visual{background:#e8dfca;border:1px solid var(--rule);overflow:hidden}.streak-visual svg{display:block;width:100%;height:auto}.streak-steps{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.streak-steps span{padding:10px 12px;border-top:3px solid var(--rule);color:var(--muted);opacity:.58}.streak-steps span.reached{border-color:var(--sage);color:var(--ink);opacity:1}.streak-steps span.current{border-color:var(--terra);background:var(--white)}.streak-steps strong,.streak-steps small{display:block}.streak-steps small{font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.attendance-tools,.list-tools{display:grid;grid-template-columns:minmax(220px,2fr) minmax(160px,1fr);gap:12px;margin-bottom:16px}.attendance-count,.list-count{margin:0 0 12px}.attendance-item[hidden]{display:none}
.syllabus-card{margin-bottom:20px}.syllabus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.syllabus-grid details{border:1px solid var(--rule);background:var(--white);padding:0 14px}.syllabus-grid summary{cursor:pointer;font-weight:700;padding:14px 0}.syllabus-grid ul,.syllabus-focus ul,.syllabus-requirements ul{margin:0 0 14px;padding-left:20px}.syllabus-focus,.syllabus-requirements{margin:16px 0;padding:14px 16px;border-left:4px solid var(--terra);background:var(--white)}.syllabus-source{margin:18px 0 0}
@media(max-width:850px){.stats{grid-template-columns:repeat(2,1fr)}.attendance-grid{grid-template-columns:repeat(2,1fr)}.member-hero,.streak-card{grid-template-columns:1fr}.streak-steps{grid-template-columns:repeat(2,1fr)}.top-inner{align-items:flex-start;flex-direction:column;padding:14px 0}.nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.nav a{white-space:nowrap}.page-head{align-items:flex-start;flex-direction:column}.join-shell{grid-template-columns:1fr}.join-intro{min-height:420px}.join-panel{padding-top:52px;padding-bottom:70px}}
@media(max-width:600px){.shell{width:min(100% - 24px,1180px);padding-top:28px}.grid,.form-grid,.attendance-tools,.list-tools{grid-template-columns:1fr}.card.wide,.field.full,.form-actions{grid-column:auto}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:29px}.card{padding:18px}.attendance-grid{grid-template-columns:1fr}.attendance-save{position:sticky;top:0;z-index:2;padding:10px 0;background:var(--soft)}.page-head{margin-bottom:22px}.form-actions{justify-content:stretch;flex-direction:column}.form-actions button,.form-actions .button{width:100%}.member-hero{padding:22px}.top-inner{width:min(100% - 24px,1180px)}.join-intro,.join-panel{padding-left:24px;padding-right:24px}.join-intro{min-height:0;padding-top:36px;padding-bottom:36px}.join-intro h1{font-size:46px}.join-logo{width:140px;margin-bottom:22px}.signin-box{align-items:stretch;flex-direction:column}.signin-box .button{width:100%}}
