@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--ink:#152b25;--forest:#174e3e;--moss:#739262;--cream:#f5f1e8;--paper:#fffdf8;--gold:#d9a441;--line:#d9ded5;--red:#a33b32}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}header{height:82px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d7d8cf;background:rgba(245,241,232,.94);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;font-weight:700;line-height:1}.brand small{display:block;font-size:9px;letter-spacing:2.2px;margin-top:7px;color:#688078}.mark{display:grid;place-items:center;width:42px;height:42px;color:var(--gold);font-size:28px;border:1px solid #bcc8bd;border-radius:50%}nav{display:flex;gap:6px;align-items:center}nav button{border:0;background:transparent;padding:10px 14px;color:#66756e;font-weight:600}nav button.active{color:var(--forest);border-bottom:2px solid var(--gold)}nav .quiet{margin-left:12px;border-left:1px solid #cfd3cd}.login{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1fr 1fr}.login-art{background:var(--forest);color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;overflow:hidden}.rings{position:absolute;width:520px;height:520px;border:1px solid #ffffff20;border-radius:50%;box-shadow:0 0 0 90px #ffffff08,0 0 0 180px #ffffff05}.tent{font-size:150px;color:var(--gold);transform:scaleX(1.4);text-shadow:0 18px 0 #103d31}.login-art p{position:absolute;bottom:55px;letter-spacing:2px;text-transform:uppercase;font-size:11px}.login-card{width:min(440px,80%);align-self:center;justify-self:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.2px;color:var(--moss)}h1{font-family:'Libre Caslon Display',serif;font-weight:400;font-size:clamp(44px,5vw,76px);line-height:1.02;margin:18px 0}.login-card h1{font-size:54px}.login-card>p{color:#6d7873;line-height:1.6}.login-card label,.name-label,.admin label{font-size:12px;font-weight:700;letter-spacing:.6px;display:block;margin-top:30px}.login-card input,.name-label input,.admin input,.admin select{width:100%;padding:16px;margin-top:8px;background:var(--paper);border:1px solid #bfc8bf;border-radius:4px;outline:none}.login-card input:focus,.name-label input:focus{border-color:var(--forest);box-shadow:0 0 0 3px #174e3e18}.primary{border:0;border-radius:3px;background:var(--forest);color:white;padding:16px 20px;font-weight:700;display:flex;justify-content:space-between;gap:40px}.login-card .primary{margin-top:18px;width:100%}.error{color:var(--red)!important;font-size:13px;min-height:20px}.page{max-width:1280px;margin:auto}.hero{padding:90px 5vw 70px;position:relative}.hero h1 em{color:var(--moss);font-style:italic}.hero>p{max-width:550px;line-height:1.7;color:#617069;font-size:17px}.stats{position:absolute;right:5vw;bottom:70px;display:flex;gap:35px}.stats span{border-left:1px solid #bac4ba;padding-left:18px;color:#6c7871;font-size:12px}.stats b{display:block;color:var(--forest);font-family:'Libre Caslon Display';font-size:30px}.sheet{background:var(--paper);padding:60px max(5vw,50px);border-top:1px solid var(--line)}.step{display:flex;gap:20px;align-items:start;margin:0 0 24px}.step>span{color:var(--gold);font-size:12px;font-weight:bold;padding-top:7px}.step h2{margin:0;font-family:'Libre Caslon Display';font-size:30px}.step p{margin:7px 0;color:#77817c}.name-label{max-width:540px;margin:0 0 70px 40px}.tools{display:flex;justify-content:space-between;margin:0 0 25px 40px}.search,.directory-search{border-bottom:1px solid #aebbb1;padding:9px 4px;color:#7f8b85}.search input,.directory-search input{border:0;background:transparent;outline:none;width:250px}.text-btn{border:0;background:none;color:var(--forest);font-weight:700}.eagle-box{border:1px solid var(--gold);padding:30px;margin:0 0 45px 40px}.eagle-box legend{padding:0 14px;color:#8a641d;font-size:12px;font-weight:700;letter-spacing:1.5px}.eagle-box legend span{margin-right:7px}.hint{font-size:12px;color:#7b817d;margin:0 0 20px}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 22px}.badge{display:flex;align-items:center;gap:10px;min-height:42px;padding:7px 8px;border-radius:4px;font-size:13px;cursor:pointer}.badge:hover{background:#edf1e9}.badge input{position:absolute;opacity:0}.check{width:19px;height:19px;display:grid;place-items:center;border:1px solid #aab5ac;border-radius:3px;color:transparent;flex:none}.badge:has(input:checked){background:#e8efe7;color:var(--forest);font-weight:600}.badge input:checked+.check{background:var(--forest);border-color:var(--forest);color:white}.remaining{margin-left:40px}.remaining h3{font-family:'Libre Caslon Display';font-size:23px}.submitbar{border-top:1px solid var(--line);margin:60px 0 0 40px;padding-top:25px;display:flex;align-items:center;justify-content:space-between}.submitbar>span{color:#758079}.submitbar b{color:var(--forest);font-size:22px}.summary{padding:70px 5vw}.summary-head{display:flex;justify-content:space-between;align-items:end}.summary-head h1{margin:12px 0}.summary-head p{color:#69766f}.summary-stat{border-left:1px solid #c5cec5;padding-left:25px}.summary-stat b{font:54px 'Libre Caslon Display';display:block;color:var(--forest)}.summary-stat span{font-size:11px;text-transform:uppercase;letter-spacing:1.4px}.directory-search{display:block;margin:45px 0 30px}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.badge-card{background:var(--paper);border:1px solid var(--line);padding:24px;display:grid;grid-template-columns:45px 1fr;gap:12px}.card-number{font:14px 'Libre Caslon Display';color:var(--gold)}.badge-card h2{font:22px 'Libre Caslon Display';margin:0 0 18px}.teachers{display:flex;gap:8px;flex-wrap:wrap}.teachers span{display:flex;align-items:center;gap:7px;background:#eef1eb;padding:5px 10px 5px 5px;border-radius:20px;font-size:12px}.teachers i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:white;font-style:normal;font-size:9px}.empty{text-align:center;padding:80px}.empty>span{font-size:50px;color:var(--gold)}.admin{margin-top:60px;border-top:1px solid #c8cec7;padding-top:25px}.admin details{background:#ece8de;border-radius:4px}.admin summary{padding:20px 25px;cursor:pointer;display:flex;justify-content:space-between;font-weight:700}.admin summary small{font-weight:400;color:#718078}.admin-body{padding:10px 25px 28px;display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:20px;align-items:end}.admin-body h2{font:24px 'Libre Caslon Display';margin:0}.admin-body p{font-size:12px;color:#6d7772}.admin label{margin:0}.danger{border:0;background:var(--red);color:white;padding:15px 18px;border-radius:3px;font-weight:700}.admin .error{grid-column:2/-1;margin:0}dialog{border:0;border-radius:6px;padding:35px;width:min(420px,90%);text-align:center;box-shadow:0 25px 80px #0005}dialog::backdrop{background:#10241fcc;backdrop-filter:blur(3px)}dialog .warning{margin:auto;width:46px;height:46px;display:grid;place-items:center;background:#f5e5e2;color:var(--red);border-radius:50%;font-weight:bold;font-size:22px}dialog h2{font:30px 'Libre Caslon Display'}dialog p{color:#66726c}dialog>div:last-child{display:flex;justify-content:center;gap:10px;margin-top:25px}.quiet{border:0;background:transparent;padding:12px 18px}#toast{position:fixed;right:25px;bottom:25px;background:var(--ink);color:white;padding:15px 22px;transform:translateY(100px);opacity:0;transition:.25s;z-index:30}#toast.show{transform:none;opacity:1}[hidden]{display:none!important}@media(max-width:800px){header{height:68px}.brand small{display:none}nav button{padding:8px}.login{grid-template-columns:1fr}.login-art{display:none}.login-card{min-height:calc(100vh - 68px);padding:50px 0}.hero{padding-top:55px}.stats{position:static;margin-top:35px}.sheet{padding:40px 20px}.name-label,.tools,.eagle-box,.remaining,.submitbar{margin-left:0}.badge-grid{grid-template-columns:1fr}.eagle-box{padding:20px 12px}.summary{padding:45px 20px}.summary-head{align-items:start}.summary-grid{grid-template-columns:1fr}.admin-body{grid-template-columns:1fr}.admin .error{grid-column:1}.submitbar{gap:15px}.submitbar .primary{gap:10px}}
