.dialog{max-height:calc(100vh - 2rem);overflow:auto}.document-preview{width:min(1000px,100%)}.document-preview iframe{background:#fff;border:0;border-radius:.5rem;width:100%;height:min(70vh,680px)}:root{--brand-primary:#192c45;--brand-mint:#6bf7e1;--surface:#f4f8f7;--text:#192c45;--calendar-process-selection:#174a6e;--calendar-academic:#526776;--calendar-module-1:#2563eb;--calendar-module-2:#0f766e;--calendar-module-3:#6d4bc3;--calendar-open-class:#2c7a8a;--calendar-events:#b9852c;--calendar-fundraising:#9a6a22;--calendar-extension:#287d76;--calendar-research:#6652a3;--calendar-practices:#36708a;--calendar-closing:#536471;--calendar-blocks:#8b4452;color:var(--text);background:var(--surface);font-family:Montserrat,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{background:var(--brand-primary);color:#fff;cursor:pointer;border:0;border-radius:9px;padding:.65rem .85rem}button:hover{filter:brightness(1.15)}button.danger{background:#943d4d}a{color:inherit}.shell{grid-template-columns:276px minmax(0,1fr);min-height:100vh;display:grid}aside{background:var(--brand-primary);color:#fff;flex-direction:column;gap:1.5rem;padding:1.6rem 1.2rem;display:flex}.brand-lockup{border-bottom:1px solid #ffffff29;grid-template-columns:72px 1fr;align-items:center;gap:.8rem;padding-bottom:1.3rem;display:grid}.brand-lockup img{object-fit:contain;width:72px;height:72px}.brand{letter-spacing:.09em;font-size:1.22rem}.brand span{color:var(--brand-mint);letter-spacing:.23em;font-size:.9rem;display:block}.brand-lockup p{color:#dce7eb;grid-column:1/-1;margin:0;font-size:.78rem;line-height:1.45}aside nav{gap:.22rem;display:grid}aside nav a{border-radius:8px;padding:.66rem .75rem;text-decoration:none}aside nav a.active,aside nav a:hover{color:var(--brand-mint);background:#ffffff1c}main{width:100%;min-width:0;max-width:1640px;margin:auto;padding:2.4rem 3rem}header{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.7rem;display:flex}h1{margin:0;font-size:clamp(1.8rem,3vw,2.55rem)}h2{margin:0 0 .7rem;font-size:1.05rem}header p{color:#526370;margin:.25rem 0}.grid{gap:1rem;display:grid}.summary{grid-template-columns:repeat(3,minmax(0,1fr))}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.card,.empty,.day,.dialog{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffc9;border:1px solid #d5e2e0;border-radius:16px;box-shadow:0 10px 30px #192c4510}.card{padding:1.15rem}.card p{color:#53636c}.links{gap:.5rem;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.toolbar strong{text-align:center;min-width:200px;font-size:1.05rem}.toolbar input{margin-left:auto}.toolbar input,input,select{color:var(--text);background:#fff;border:1px solid #a6bbc0;border-radius:8px;padding:.6rem}.calendar{background:#ffffff96;border:1px solid #d5e2e0;border-radius:18px;overflow:hidden}.weekdays,.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekdays{background:#e8f0f2}.weekdays b{text-align:center;padding:.65rem;font-size:.78rem}.day{min-height:118px;box-shadow:none;border-top:1px solid #e0e9eb;border-bottom:0;border-left:0;border-right:1px solid #e0e9eb;border-radius:0;flex-direction:column;gap:.28rem;padding:.42rem;display:flex}.day-empty{background:#f7faf9}.day time{color:#526370;font-size:.75rem}.event{--event-color:var(--calendar-academic);background:color-mix(in srgb,var(--event-color) 13%,white);color:#173043;text-align:left;text-overflow:ellipsis;white-space:nowrap;border-left:4px solid var(--event-color);border-radius:6px;padding:.3rem .42rem;font-size:.73rem;overflow:hidden}.event.blocked{color:#6b2633;background:#f9e8ea}.calendar-legend{flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0;display:flex}.calendar-legend span{align-items:center;gap:.35rem;font-size:.76rem;display:flex}.calendar-legend span:before{content:"";background:var(--legend-color);border-radius:99px;width:.7rem;height:.7rem}.agenda{display:none}.overlay{z-index:3;background:#192c4577;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{gap:.8rem;width:min(560px,100%);padding:1.25rem;display:grid}.dialog label{gap:.25rem;font-weight:600;display:grid}.actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.error{color:#943d4d}.empty{text-align:center;color:#53636c;padding:2rem}.notice{border-radius:10px;margin-bottom:1rem;padding:.8rem 1rem}.warning{color:#714b13;background:#fff1db}.settings{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.file{color:var(--text);margin-top:.7rem;font-weight:600;display:block}.file input{width:100%;margin-top:.3rem;display:block}.mobile-nav{display:none}@media (width<=760px){.shell{padding-bottom:4.7rem;display:block}aside{display:none}main{padding:1rem}header{display:block}header button{margin-top:.7rem}.summary{grid-template-columns:1fr}.calendar{display:none}.agenda{gap:.4rem;display:grid}.agenda .event{padding:.6rem;font-size:.9rem}.calendar-legend{display:none}.mobile-nav{background:var(--brand-primary);z-index:2;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:auto}.mobile-nav a{color:#fff;white-space:nowrap;padding:.75rem .55rem;font-size:.7rem;text-decoration:none}.mobile-nav a.active{color:var(--brand-mint)}.toolbar input{width:100%;margin-left:0}.dialog{max-height:95vh;overflow:auto}}.access-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.access-card{text-align:center;background:#ffffffd9;border:1px solid #d5e2e0;border-radius:18px;width:min(440px,100%);padding:2rem;box-shadow:0 12px 34px #192c4520}.access-card img{object-fit:contain;width:88px;height:88px}.access-card form{text-align:left;gap:.8rem;display:grid}.access-card label{gap:.3rem;font-weight:600;display:grid}.access-card button{width:100%}.link-button{color:var(--brand-primary);background:0 0;margin-top:.7rem;text-decoration:underline}.user-identity{color:#dce7eb;margin:0;font-size:.82rem}.logout{margin-top:auto}.attendance-list{gap:.65rem;display:grid}.attendance-row{border-bottom:1px solid #d5e2e0;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:1rem;padding:.75rem;display:grid}.ranking-table{gap:.4rem;display:grid}.ranking-table>div{border-bottom:1px solid #d5e2e0;grid-template-columns:90px minmax(0,1fr) 90px;gap:.75rem;padding:.7rem;display:grid}.ranking-table>div:first-child{background:#e8f0f2;font-size:.85rem}@media (width<=760px){.attendance-row{grid-template-columns:1fr}.ranking-table>div{grid-template-columns:70px minmax(0,1fr) 70px}}
