:root{--bg: #f4f7fc;--bg-grad: radial-gradient(1200px 600px at 0% -10%, #eaf1ff 0%, transparent 60%), radial-gradient(900px 500px at 100% 0%, #fdecef 0%, transparent 55%), linear-gradient(180deg, #f4f7fc 0%, #f7f9fd 100%);--panel: #ffffff;--panel-2: #f1f4f9;--border: #e2e7ee;--text: #1f2328;--muted: #5c6773;--accent: #1f6feb;--accent-2: #0a5ed8;--green: #1a7f37;--red: #cf222e;--yellow: #9a6700;--shadow-sm: 0 1px 2px rgba(15,23,42,.06);--shadow-md: 0 4px 12px rgba(15,23,42,.08), 0 1px 3px rgba(15,23,42,.04);--shadow-lg: 0 12px 28px rgba(15,23,42,.12), 0 2px 6px rgba(15,23,42,.05);--st-leadership-1: #fff4d6;--st-leadership-2: #ffd770;--st-leadership-3: #b07d00;--st-engineering-1: #ffe2da;--st-engineering-2: #ff8b6a;--st-engineering-3: #b8311a;--st-programming-1: #dceaff;--st-programming-2: #4f8ff5;--st-programming-3: #1f4fb0;--st-strategy-1: #d8f3df;--st-strategy-2: #4ec47a;--st-strategy-3: #156c33;--st-business-1: #ecdcff;--st-business-2: #a06dff;--st-business-3: #5b2bbf;--st-awards-1: #ffe1ee;--st-awards-2: #ff7eb1;--st-awards-3: #b03360}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);background-image:var(--bg-grad);background-attachment:fixed;color:var(--text);line-height:1.5}.app{max-width:1040px;margin:0 auto;padding:24px 16px 64px}header.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border:1px solid var(--border);background:var(--panel);border-radius:12px;box-shadow:var(--shadow-md);margin-bottom:24px;gap:12px;flex-wrap:wrap}header.topbar h1{font-size:20px;margin:0;background:linear-gradient(90deg,#1f6feb,#a06dff 60%,#ff7eb1);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;letter-spacing:-.01em}header.topbar .sub{color:var(--muted);font-size:12px;margin-top:4px}header.topbar .right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tabbar{display:flex;gap:4px;margin-bottom:24px;background:var(--panel);border:1px solid var(--border);padding:4px;border-radius:10px;box-shadow:var(--shadow-sm)}.tabbar button{background:transparent;border:none;color:var(--muted);padding:9px 16px;cursor:pointer;font-size:14px;border-radius:7px;transition:all .15s;font-weight:500}.tabbar button:hover{color:var(--text);background:var(--panel-2)}.tabbar button.active{color:#fff;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);box-shadow:var(--shadow-sm)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:18px;position:relative;overflow:hidden}.card h2{margin-top:0;font-size:17px;letter-spacing:-.01em}.card h3{margin-top:0;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}label{display:block;margin-bottom:6px;font-size:13px;color:var(--muted)}input[type=text],input[type=email],input[type=password],select{width:100%;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;margin-bottom:12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1f6feb26}button.primary,button.secondary,button.danger{padding:10px 16px;border-radius:8px;border:1px solid transparent;font-size:14px;cursor:pointer;font-weight:600;transition:all .15s}button.primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff;box-shadow:0 1px 2px #1f6feb4d,0 4px 10px #1f6feb40}button.primary:hover{transform:translateY(-1px);box-shadow:0 2px 4px #1f6feb59,0 6px 14px #1f6feb4d}button.primary:disabled{background:#b6c2d2;cursor:not-allowed;box-shadow:none;transform:none}button.secondary{background:var(--panel);color:var(--text);border-color:var(--border)}button.secondary:hover{background:var(--panel-2);border-color:#c8cfd9}button.danger{background:transparent;color:var(--red);border-color:var(--red)}button.danger:hover{background:#cf222e14}.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.role-card{background:var(--panel);border:2px solid var(--st-2);border-radius:12px;padding:16px;cursor:pointer;position:relative;transition:transform .18s,box-shadow .18s,border-color .18s;box-shadow:var(--shadow-md);overflow:hidden;--st-1: var(--panel-2);--st-2: var(--accent);--st-3: var(--accent-2)}.role-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--st-3)}.role-card.selected{border-color:var(--st-2);background:linear-gradient(135deg,var(--st-1) 0%,#ffffff 80%);box-shadow:0 0 0 3px #1f6feb1f,var(--shadow-md)}.role-card .subteam{display:inline-block;font-size:10.5px;color:var(--st-3);background:var(--st-1);padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:8px}.role-card .name{font-weight:700;margin:0 0 6px;font-size:15px}.role-card .desc{font-size:13px;color:var(--muted)}.role-card .priority-badge{position:absolute;top:12px;right:12px;width:30px;height:30px;background:linear-gradient(135deg,var(--st-2) 0%,var(--st-3) 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;box-shadow:0 2px 6px #00000026}.role-card.ineligible{cursor:not-allowed;opacity:.55;filter:grayscale(.6)}.role-card.ineligible:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--border)}.role-card .ineligible-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-18deg);font-size:18px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--red);background:#ffffffd9;border:2px solid var(--red);padding:4px 14px;border-radius:6px;pointer-events:none;white-space:nowrap;z-index:2;box-shadow:0 2px 8px #cf222e26}.role-card[data-subteam="Team Leadership"]{--st-1: var(--st-leadership-1);--st-2: var(--st-leadership-2);--st-3: var(--st-leadership-3)}.role-card[data-subteam="Engineering & Build"]{--st-1: var(--st-engineering-1);--st-2: var(--st-engineering-2);--st-3: var(--st-engineering-3)}.role-card[data-subteam=Programming]{--st-1: var(--st-programming-1);--st-2: var(--st-programming-2);--st-3: var(--st-programming-3)}.role-card[data-subteam="Strategy & Scouting"]{--st-1: var(--st-strategy-1);--st-2: var(--st-strategy-2);--st-3: var(--st-strategy-3)}.role-card[data-subteam="Business & Outreach"]{--st-1: var(--st-business-1);--st-2: var(--st-business-2);--st-3: var(--st-business-3)}.role-card[data-subteam="Awards & Presentation"]{--st-1: var(--st-awards-1);--st-2: var(--st-awards-2);--st-3: var(--st-awards-3)}.card[data-subteam]{padding:0;overflow:hidden}.card[data-subteam]>h3{margin:0;padding:12px 22px;background:linear-gradient(90deg,var(--st-bar, var(--panel-2)) 0%,var(--st-bar-end, var(--panel)) 100%);border-bottom:1px solid var(--border);color:var(--st-bar-text, var(--text));font-weight:700}.card[data-subteam]>*:not(h3){margin-left:22px;margin-right:22px}.card[data-subteam]>*:nth-child(2){margin-top:16px}.card[data-subteam]>*:last-child{margin-bottom:22px}.card[data-subteam]>.role-grid{padding:16px 22px 22px;margin:0}.card[data-subteam]>table.results{margin:0}.card[data-subteam]>table.results th{background:transparent}.card[data-subteam="Team Leadership"]{--st-bar: var(--st-leadership-1);--st-bar-end: #fffbe8;--st-bar-text: var(--st-leadership-3)}.card[data-subteam="Engineering & Build"]{--st-bar: var(--st-engineering-1);--st-bar-end: #fff2ee;--st-bar-text: var(--st-engineering-3)}.card[data-subteam=Programming]{--st-bar: var(--st-programming-1);--st-bar-end: #eef4ff;--st-bar-text: var(--st-programming-3)}.card[data-subteam="Strategy & Scouting"]{--st-bar: var(--st-strategy-1);--st-bar-end: #ecfaef;--st-bar-text: var(--st-strategy-3)}.card[data-subteam="Business & Outreach"]{--st-bar: var(--st-business-1);--st-bar-end: #f4ecff;--st-bar-text: var(--st-business-3)}.card[data-subteam="Awards & Presentation"]{--st-bar: var(--st-awards-1);--st-bar-end: #fff0f6;--st-bar-text: var(--st-awards-3)}.banner{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:14px;box-shadow:var(--shadow-sm)}.banner.info{background:#ddebff;border:1px solid #b6d4fe;color:#084298}.banner.success{background:#d1f1d8;border:1px solid #a6e0b3;color:#0f5132}.banner.warn{background:#fff3cd;border:1px solid #ffe69c;color:#664d03}.banner.error{background:#fde2e4;border:1px solid #f5c2c7;color:#842029}.phase-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.phase-pill.nomination{background:#fff3cd;color:var(--yellow);border:1px solid #ffe69c}.phase-pill.voting{background:#ddebff;color:var(--accent);border:1px solid #b6d4fe}.phase-pill.closed{background:#e5e9ef;color:var(--muted);border:1px solid var(--border)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.muted{color:var(--muted);font-size:13px}table.results{width:100%;border-collapse:collapse;font-size:14px}table.results th,table.results td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}table.results tr:last-child td{border-bottom:none}table.results th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:var(--panel-2)}table.results .winner{color:var(--green);font-weight:700}table.results tbody tr:hover{background:var(--panel-2)}.role-vote-block{background:var(--panel);border:1px solid var(--border);border-left:6px solid var(--accent);border-radius:12px;padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow-sm);transition:box-shadow .15s}.role-vote-block:hover{box-shadow:var(--shadow-md)}.role-vote-block .header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.role-vote-block .header strong{font-size:15px}.role-vote-block .nominees{font-size:12px;color:var(--muted);margin-bottom:12px;background:var(--panel-2);padding:6px 10px;border-radius:6px}.choice-row{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;margin-bottom:8px}.choice-row label{margin:0;font-weight:600;color:var(--text);font-size:13px}.choice-row select{margin-bottom:0}.role-vote-block[data-subteam="Team Leadership"]{border-left-color:var(--st-leadership-3)}.role-vote-block[data-subteam="Engineering & Build"]{border-left-color:var(--st-engineering-3)}.role-vote-block[data-subteam=Programming]{border-left-color:var(--st-programming-3)}.role-vote-block[data-subteam="Strategy & Scouting"]{border-left-color:var(--st-strategy-3)}.role-vote-block[data-subteam="Business & Outreach"]{border-left-color:var(--st-business-3)}.role-vote-block[data-subteam="Awards & Presentation"]{border-left-color:var(--st-awards-3)}.signin-wrap{max-width:420px;margin:80px auto 0}.card.danger-zone{border-color:#f5c2c7;background:linear-gradient(180deg,#fff5f6,#fff 60%)}.card.danger-zone h2{color:var(--red)}.google-btn{display:inline-flex;align-items:center;gap:12px;padding:11px 18px;background:#fff;color:#1f2328;border:1px solid var(--border);border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;box-shadow:var(--shadow-sm);transition:all .15s}.google-btn:hover{background:var(--panel-2);box-shadow:var(--shadow-md);transform:translateY(-1px)}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);margin-right:4px;font-weight:600}.tag.admin{background:linear-gradient(135deg,#ddebff,#ecdcff);border-color:#b6d4fe;color:var(--accent)}
