:root{font-family:"Segoe UI",Tahoma,sans-serif;color:#15343a;background:#eef4f3;--teal:#086872;--green:#16a064;--line:#cbdcda}*{box-sizing:border-box}body{margin:0}.page-header{height:92px;padding:14px 3%;display:flex;align-items:center;gap:18px;background:#fff;border-bottom:1px solid #dbe6e5;position:sticky;top:0;z-index:5}.page-header img{width:290px;max-height:62px;object-fit:contain}.page-header div{display:flex;flex-direction:column;border-left:1px solid #dce5e4;padding-left:18px}.page-header strong{font-size:19px}.page-header small{color:#71868a}.back{margin-left:auto;text-decoration:none;color:#075b64;font-weight:700;padding:12px 16px;border:1px solid #d2e0df;border-radius:14px}main{width:min(1400px,94%);margin:30px auto 70px}.hero{display:flex;justify-content:space-between;align-items:center;padding:32px 38px;color:#fff;border-radius:24px;background:linear-gradient(120deg,#075d67,#0b7475 65%,#149d68);box-shadow:0 12px 35px #154b5030}.eyebrow,.section-title small{font-size:12px;letter-spacing:2px;font-weight:800}.hero h1{font-size:38px;margin:8px 0}.hero p{margin:0;color:#d8f2ef}.term{min-width:260px;padding:18px 22px;border-radius:17px;background:#ffffff19;border:1px solid #ffffff48;display:flex;flex-direction:column}.term strong{font-size:24px;margin:5px 0}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.tabs button{padding:17px;border:1px solid #cddcda;border-radius:15px;background:white;color:#31545a;font-weight:800;font-size:16px;cursor:pointer}.tabs button.active{color:white;background:var(--teal);border-color:var(--teal)}.panel{display:none;background:#fff;border-radius:24px;padding:30px;box-shadow:0 8px 30px #244c5013}.panel.active{display:block}.section-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e3eceb;padding-bottom:20px}.section-title small{color:#0c8c75}.section-title h2{margin:5px 0 0;font-size:28px}.status{padding:8px 14px;border-radius:999px;background:#e3f2ef;color:#087866;font-weight:700}.status.open{background:#dcf7e6;color:#08743a}.status.pending{background:#fff1d5;color:#9a6500}.org-chart{text-align:center;padding:30px 15px 10px}.person{width:250px;min-height:155px;padding:16px;margin:auto;border:1px solid #c7dcd8;border-radius:17px;background:linear-gradient(#fff,#f7fbfa);box-shadow:0 5px 15px #234c5014;position:relative}.person h3{font-size:16px;margin:10px 0 5px}.person p{font-size:13px;color:#6d8185;margin:0}.avatar{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;margin:auto;background:linear-gradient(135deg,#0c6973,#14a374);color:white;font-weight:900;font-size:20px;border:4px solid #e2f4f0}.avatar.small{width:56px;height:56px}.president{border:2px solid #0a7774}.connector{height:38px;width:2px;background:#9db7b4;margin:auto}.connector.wide{position:relative}.vice-row,.committee-row{display:flex;justify-content:center;gap:clamp(18px,5vw,120px);position:relative}.vice-row:before,.committee-row:before{content:"";position:absolute;height:2px;background:#9db7b4;top:-1px;left:25%;right:25%}.vice-row .person:before,.committee-row .person:before{content:"";position:absolute;left:50%;top:-38px;width:2px;height:38px;background:#9db7b4}.committee-row{gap:18px}.committee-row .person{width:220px}.hint{text-align:center;color:#718689;margin-top:25px}.form-card{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}.form-card label{font-weight:700}.form-card input,.form-card select,.form-card textarea{width:100%;margin-top:8px;padding:14px;border:1px solid #cadbd9;border-radius:12px;font:inherit;background:#f9fbfb}.full{grid-column:1/-1}.consent{display:flex;align-items:center;gap:8px;font-weight:400!important}.consent input{width:auto;margin:0}.primary{border:0;border-radius:13px;background:#08727a;color:#fff;padding:16px;font-size:17px;font-weight:800;cursor:pointer}.notice{margin:24px 0;padding:20px;border-radius:15px;background:#edf7f5;border-left:5px solid #0b8275}.notice p{margin:6px 0 0;color:#5d7478}.candidate-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.candidate{text-align:center;padding:28px;border:1px solid #d3e1df;border-radius:18px}.candidate button{width:100%;padding:13px;border:0;border-radius:11px}.candidate.muted{opacity:.65}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(30px);padding:13px 22px;background:#123d42;color:white;border-radius:12px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.photo-field{display:flex;align-items:center;gap:22px;padding:20px;border:1px dashed #9fc5c0;border-radius:17px;background:#f4faf8}.photo-preview{width:130px;height:150px;flex:0 0 130px;border-radius:15px;overflow:hidden;display:grid;place-items:center;background:#dcebe8;color:#6c8280;font-weight:800;border:3px solid #fff;box-shadow:0 4px 14px #173f4320}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-copy p{margin:7px 0 13px;color:#687f82}.photo-copy input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-button{display:inline-block;padding:11px 17px;border-radius:11px;background:#08727a;color:#fff;cursor:pointer}.photo-copy small{display:block;margin-top:10px;color:#6a8083}
.ballot-form{display:grid;gap:22px}.ballot-position{margin:0;padding:22px;border:1px solid #cadbd9;border-radius:18px;background:#fbfdfd}.ballot-position legend{padding:0 12px;font-size:20px;font-weight:900;color:#123e44}.ballot-position legend span{display:inline-block;margin-right:8px;padding:6px 10px;border-radius:8px;background:#08727a;color:white;font-size:12px}.ballot-position legend small{font-size:13px;font-weight:500;color:#708488;margin-left:8px}.number-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:12px}.number-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:18px 10px;border:2px solid #d7e3e1;border-radius:16px;background:#fff;cursor:pointer;text-align:center;transition:.15s}.number-choice:hover{border-color:#82b9b2}.number-choice input{position:absolute;opacity:0}.number-choice:has(input:checked){border-color:#078071;background:#e8f8f4;box-shadow:0 0 0 3px #bde9dd}.candidate-number{width:66px;height:66px;display:grid;place-items:center;border-radius:50%;background:#e4efed;color:#075f68;font-size:29px;font-weight:900}.number-choice:has(input:checked) .candidate-number{background:#078071;color:#fff}.number-choice small{color:#738689}.number-choice.no-vote{background:#f6f7f7}.ballot-summary{padding:18px 20px;border-radius:15px;background:#edf7f5;border:1px solid #cae4df}.ballot-summary p{margin:7px 0 0;color:#536e72}.ballot-summary.ready{border-color:#19a36c;background:#e7f8ee}.ballot-form>.primary{width:100%}
@media(max-width:800px){.page-header{height:auto;flex-wrap:wrap}.page-header img{width:210px}.page-header div{display:none}.back{font-size:13px}.hero{align-items:flex-start;flex-direction:column;gap:20px;padding:25px}.hero h1{font-size:29px}.term{width:100%}.tabs{grid-template-columns:1fr}.panel{padding:20px}.section-title{align-items:flex-start;gap:12px}.section-title h2{font-size:23px}.vice-row,.committee-row{display:grid;grid-template-columns:1fr}.vice-row:before,.committee-row:before,.vice-row .person:before,.committee-row .person:before,.connector{display:none}.person,.committee-row .person{width:100%;margin:8px 0}.form-card,.candidate-grid{grid-template-columns:1fr}.full{grid-column:auto}.photo-field{flex-direction:column;text-align:center}.photo-preview{width:120px;height:140px;flex-basis:140px}.number-grid{grid-template-columns:repeat(2,1fr)}.ballot-position legend small{display:block;margin:8px 0 0}.candidate-number{width:56px;height:56px}}
