:root{--navy: #1a237e;--navy-dark: #0d1259;--navy-light: #3949ab;--navy-pale: #e8eaf6;--gold: #ffc107;--gold-dark: #f59e0b;--gold-light: #fff8e1;--bg: #f5f7ff;--surface: #ffffff;--surface-raised: #ffffff;--surface-alt: #f6f8fa;--border: #e0e4f0;--text: #1a1a2e;--text-muted: #6b7280;--success: #16a34a;--danger: #dc2626;--danger-bg: #fee2e2;--accent: #1a73e8;--accent-soft: #e8f0fe;--rubric-penalty-bg: #fdf2f0;--rubric-penalty-border: #f5b7b1;--rubric-level-min-bg: #fef7ec;--rubric-level-min-border: #f5d59b;--rubric-level-adq-bg: #eef5ff;--rubric-level-adq-border: #b4cdf2;--rubric-level-exp-bg: #eefaf0;--rubric-level-exp-border: #9fd8b0;--rubric-level-input-bg: #ffffff;--rubric-danger-soft: #fde8e8;--rubric-danger-text: #c0392b;--team-open-bg: #eff6ff;--team-open-bg-hover: #dbeafe;--team-open-border: #bfdbfe;--team-open-border-hover: #93c5fd;--lock-badge-bg: #fffbeb;--lock-badge-border: #fde68a;--lock-badge-text: #92400e;--radius: 12px;--radius-sm: 8px;--shadow: 0 2px 8px rgba(26, 35, 126, .08);--shadow-md: 0 4px 20px rgba(26, 35, 126, .13);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, sans-serif}html[data-theme=dark]{color-scheme:dark}html[data-theme=dark]{--navy: #8ea2ff;--navy-dark: #d7deff;--navy-light: #6f86ff;--navy-pale: #21294f;--gold: #f6c34a;--gold-dark: #e6a81d;--gold-light: #4b3a11;--bg: #0b1020;--surface: #121a31;--surface-raised: #18223d;--surface-alt: #1a2440;--border: #283252;--text: #e6ebff;--text-muted: #9ca8ca;--success: #4ade80;--danger: #f87171;--danger-bg: #4a1d24;--accent: #7ea1ff;--accent-soft: #26345f;--rubric-penalty-bg: #2d1c24;--rubric-penalty-border: #6b3140;--rubric-level-min-bg: #3c2d16;--rubric-level-min-border: #866226;--rubric-level-adq-bg: #172a47;--rubric-level-adq-border: #365e94;--rubric-level-exp-bg: #173123;--rubric-level-exp-border: #2d6d4a;--rubric-level-input-bg: #121a31;--rubric-danger-soft: #3a1f29;--rubric-danger-text: #f29aa8;--team-open-bg: #162742;--team-open-bg-hover: #1d3456;--team-open-border: #2e5b93;--team-open-border-hover: #4374b1;--lock-badge-bg: #3e3114;--lock-badge-border: #80631c;--lock-badge-text: #f1d27b;--shadow: 0 10px 24px rgba(0, 0, 0, .28);--shadow-md: 0 16px 40px rgba(0, 0, 0, .36)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}img{max-width:100%}a{color:inherit;text-decoration:none}button{font-family:var(--font);cursor:pointer}input,textarea,select{font-family:var(--font);background:var(--surface);color:var(--text);border-color:var(--border)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.layout{display:flex;flex-direction:column;min-height:100vh}.pwa-update-button{position:fixed;right:1rem;bottom:1rem;z-index:300;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%);color:#fff;font-size:.9rem;font-weight:800;box-shadow:0 14px 32px #1a237e3d;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.pwa-update-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 36px #1a237e4d}.pwa-update-button:disabled{cursor:wait;opacity:.9}.navbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.25rem;height:40px;background:var(--navy);color:#fff;box-shadow:0 2px 8px #0003}.nav-brand{display:flex;align-items:center;gap:.5rem;color:#fff}.nav-brand-wordmark{display:inline-flex;align-items:baseline;gap:.08em;font-size:.98rem;line-height:1;letter-spacing:.08em}.nav-brand-wordmark-light{font-weight:300}.nav-brand-wordmark-bold{font-weight:800}.nav-brand-icon{width:22px;height:22px;flex-shrink:0;object-fit:contain;display:block}.nav-right{display:flex;align-items:center;gap:.75rem}.bell-wrap{position:relative}.bell-btn{position:relative;background:#ffffff1f;border:none;border-radius:8px;color:#fff;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.bell-btn:hover{background:#ffffff38}.bell-btn-active{background:#ffffff2e}.bell-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:.6rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;padding:0 3px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--navy);line-height:1}.bell-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:320px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px #00000026;z-index:300;overflow:hidden}.bell-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem .6rem;font-size:.82rem;font-weight:700;color:var(--navy-dark);border-bottom:1px solid var(--border)}.bell-mark-all{background:none;border:none;font-size:.75rem;color:var(--navy-light);cursor:pointer;font-weight:600;padding:0}.bell-mark-all:hover{text-decoration:underline}.bell-empty{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.5rem 1rem;color:var(--text-muted);font-size:.85rem}.bell-list{max-height:360px;overflow-y:auto}.bell-item{display:flex;align-items:flex-start;gap:.65rem;width:100%;padding:.75rem 1rem;background:none;border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;transition:background .12s}.bell-item:last-child{border-bottom:none}.bell-item:hover{background:var(--navy-pale)}.bell-item-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.bell-item-body{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.bell-item-title{font-size:.82rem;font-weight:700;color:var(--navy-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bell-item-sub{font-weight:400;color:var(--text-muted)}.bell-item-preview{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bell-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.bell-item-count{background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;min-width:18px;height:18px;border-radius:9px;padding:0 4px;display:flex;align-items:center;justify-content:center}.bell-item-time{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.unread-badge{display:inline-flex;align-items:center;gap:.2rem;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;font-size:.7rem;font-weight:700;padding:.1rem .45rem;border-radius:12px}.user-chip{display:flex;align-items:center;gap:.4rem}.user-chip-button{background:#ffffff1f;border:none;border-radius:999px;padding:.2rem .35rem .2rem .2rem;color:inherit;transition:background .15s ease,transform .1s ease}.user-chip-button:hover,.user-chip-button-open{background:#fff3}.user-chip-button:active{transform:scale(.98)}.user-name{font-size:.875rem;font-weight:500;color:#ffffffd9}.user-menu-wrap{position:relative}.user-menu-caret{font-size:.62rem;color:#ffffffb8;margin-left:.1rem}.user-menu-dropdown{position:absolute;top:calc(100% + 10px);right:0;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);padding:.45rem;z-index:320}.user-menu-header{padding:.55rem .65rem .7rem;border-bottom:1px solid var(--border);margin-bottom:.35rem}.user-menu-name{font-size:.84rem;font-weight:700;color:var(--text)}.user-menu-email{font-size:.74rem;color:var(--text-muted);margin-top:.1rem;word-break:break-word}.user-menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:transparent;border:none;border-radius:10px;color:var(--text);text-align:left;padding:.65rem .7rem;font-size:.84rem;font-weight:600;transition:background .15s ease,color .15s ease}.user-menu-item:hover{background:var(--bg)}.user-menu-item-sub{font-size:.72rem;font-weight:500;color:var(--text-muted)}.user-menu-item-danger{color:var(--danger)}.user-menu-item-danger:hover{background:var(--danger-bg)}.avatar{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.4);object-fit:cover}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:#ffffff2e;color:#fff;font-size:.72rem;font-weight:800}.avatar-lg{width:40px;height:40px}.main-content{flex:1;padding:.6rem 1.25rem 1.25rem;max-width:960px;margin:0 auto;width:100%}.page-title{font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:1.25rem;letter-spacing:-.02em}.btn-primary{display:inline-flex;align-items:center;gap:.4rem;background:var(--navy);color:#fff;border:none;padding:.55rem 1.2rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;transition:background .15s,transform .1s}.btn-primary:hover:not(:disabled){background:var(--navy-dark)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface);color:var(--navy);border:2px solid var(--navy);padding:.5rem 1.1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;transition:all .15s}.btn-secondary:hover{background:var(--navy);color:#fff}.btn-ghost{background:transparent;color:var(--text-muted);border:1.5px solid var(--border);padding:.4rem .85rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-ghost-red{background:transparent;color:var(--danger);border:1.5px solid var(--danger);padding:.3rem .8rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;transition:all .15s}.btn-ghost-red:hover{background:var(--danger);color:#fff}.btn-small{display:inline-flex;align-items:center;background:var(--navy);color:#fff;border:none;padding:.3rem .75rem;border-radius:6px;font-size:.78rem;font-weight:600;transition:background .15s}.btn-small:hover{background:var(--navy-dark)}.btn-small.btn-secondary{background:var(--surface);color:var(--navy);border:1.5px solid var(--navy)}.btn-small.btn-secondary:hover{background:var(--navy);color:#fff}.btn-icon{background:transparent;border:none;padding:.25rem .4rem;border-radius:6px;font-size:.85rem;line-height:1;transition:background .15s;color:var(--text-muted)}.btn-icon:hover{background:var(--border)}.btn-icon-danger{color:var(--danger)}.btn-icon-danger:hover{background:var(--danger-bg)}.btn-icon-danger.small{font-size:.75rem;padding:.15rem .35rem}.btn-back{background:transparent;border:none;color:var(--navy);font-size:.9rem;font-weight:600;padding:.35rem .5rem;border-radius:6px;transition:background .15s;white-space:nowrap}.btn-back:hover{background:var(--navy-pale)}.btn-link{background:none;border:none;color:var(--navy-light);font-size:.85rem;font-weight:600;padding:.25rem 0;text-decoration:underline;margin-top:.75rem}.btn-link:hover{color:var(--navy)}.btn-guide{display:inline-flex;align-items:center;gap:.4rem;background:var(--gold);color:var(--navy-dark);border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;transition:background .15s;white-space:nowrap;text-decoration:none}.btn-guide:hover{background:var(--gold-dark)}.btn-guide-disabled{opacity:.45;cursor:not-allowed}.btn-guide-disabled:hover{background:var(--gold)}.btn-guide-dimmed{opacity:.5;filter:grayscale(.4)}.btn-guide-dimmed:hover{opacity:.75;filter:none}.btn-copied{background:#065f46!important;color:#fff!important;border-color:#065f46!important}.topbar-right{display:flex;align-items:center;gap:.5rem}.theme-btn-wrap{position:relative}.theme-popover{position:absolute;top:calc(100% + .4rem);right:0;width:300px;background:var(--surface-raised);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.85rem 1rem;z-index:200;display:flex;flex-direction:column;gap:.6rem}.theme-popover-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0}.theme-popover-text{font-size:.95rem;font-weight:600;color:var(--text);line-height:1.5;margin:0;word-break:break-word}.theme-popover-input{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:.9rem;font-family:inherit;resize:vertical;box-sizing:border-box}.theme-popover-input:focus{border-color:var(--navy-light);outline:none}.theme-popover-actions{display:flex;gap:.4rem;align-items:center}.theme-popover-hint{font-size:.8rem;color:var(--text-muted);margin:0}.theme-no-theme-toggle{display:flex;align-items:center;gap:.4rem;font-size:.83rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.theme-no-theme-toggle input{cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:500}.modal-card{width:min(520px,92vw);max-height:90vh;overflow-y:auto;padding:1.5rem}.settings-modal{max-width:560px}.settings-section{display:flex;flex-direction:column;gap:1rem}.chapter-code-modal{max-width:580px}.chapter-code-body{display:flex;flex-direction:column;gap:1rem}.chapter-code-value{display:flex;align-items:center;justify-content:center;min-height:156px;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);color:var(--navy);font-size:clamp(2.5rem,8vw,4.5rem);font-weight:900;letter-spacing:.24em;text-indent:.24em;text-transform:uppercase;line-height:1;text-align:center}.chapter-code-actions{display:flex;justify-content:center}.chapter-code-regenerate{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.35rem .75rem;font-size:.76rem;font-weight:700;transition:background .15s ease,color .15s ease,border-color .15s ease}.chapter-code-regenerate:hover:not(:disabled){background:var(--bg);color:var(--text);border-color:var(--navy-light)}.chapter-code-regenerate:disabled{opacity:.6;cursor:not-allowed}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.settings-label{font-size:.9rem;font-weight:700;color:var(--text)}.settings-row-stack{align-items:flex-start;flex-wrap:wrap}.settings-copy{display:flex;flex-direction:column;gap:.25rem;flex:1 1 240px}.settings-hint{font-size:.8rem;color:var(--text-muted);line-height:1.45}.settings-inline-controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.settings-number-input{width:88px;border:1px solid var(--border);border-radius:10px;padding:.5rem .65rem;font-size:.95rem;font-weight:700;text-align:center}.settings-number-input:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px #1a73e81f}.theme-toggle{display:inline-flex;align-items:center;gap:.7rem;border:1px solid var(--border);border-radius:999px;padding:.4rem .55rem;background:var(--surface);color:var(--text)}.theme-toggle-track{width:44px;height:24px;border-radius:999px;background:var(--navy-pale);padding:3px;display:inline-flex;align-items:center}.theme-toggle-thumb{width:18px;height:18px;border-radius:50%;background:var(--navy);transform:translate(0);transition:transform .18s ease,background .18s ease}.theme-toggle-dark .theme-toggle-thumb{transform:translate(20px)}.theme-toggle-label{font-size:.8rem;font-weight:700;white-space:nowrap}.print-config-section{margin-bottom:1.25rem}.print-config-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.5rem}.print-config-row{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}.print-toggle{display:flex;align-items:center;gap:.35rem;font-size:.875rem;cursor:pointer;-webkit-user-select:none;user-select:none}.print-toggle input{cursor:pointer}.btn-today{background:var(--navy-pale);color:var(--navy);border:none;padding:.2rem .65rem;border-radius:20px;font-size:.75rem;font-weight:600;transition:background .15s}.btn-today:hover{background:var(--navy);color:#fff}.btn-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.btn-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;margin-left:.45rem;padding:0 .4rem;border-radius:999px;background:#ffffffe6;color:var(--navy);font-size:.72rem;font-weight:800}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.role-badge{font-size:.68rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.role-badge-advisor{background:var(--gold);color:var(--navy-dark)}.role-badge-student{background:var(--navy-pale);color:var(--navy)}.role-badge-inactive{background:#e5e7eb;color:#4b5563}.navbar .role-badge{background:var(--gold);color:var(--navy-dark)}.type-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.15rem .55rem;border-radius:20px;text-transform:capitalize;white-space:nowrap}.type-badge-contest{background:#fee2e2;color:#b91c1c}.type-badge-checkpoint{background:#dbeafe;color:#1d4ed8}.type-badge-deadline{background:#fef3c7;color:#b45309}.tab-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:var(--navy-dark);font-size:.68rem;font-weight:700;border-radius:10px;min-width:18px;height:18px;padding:0 5px;margin-left:.3rem}.tab-count{background:var(--navy-pale);color:var(--navy);font-size:.7rem;font-weight:700;border-radius:10px;padding:.1rem .45rem;margin-left:.3rem}.count-chip{font-size:.75rem;font-weight:600;color:var(--text-muted);margin-left:.4rem}.member-tip{position:relative;cursor:default;text-decoration:underline dotted;text-underline-offset:2px}.member-tip:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);background:#1e293b;color:#f1f5f9;font-size:.78rem;font-weight:500;line-height:1.6;padding:.4rem .7rem;border-radius:7px;white-space:pre;pointer-events:none;opacity:0;transition:opacity .15s;z-index:200;box-shadow:0 4px 12px #00000040;min-width:100px}.member-tip:hover:after{opacity:1}.meta-tag{display:inline-block;background:var(--navy-pale);color:var(--navy-light);font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:20px}.meta-tag-rubric{background:#dcfce7;color:#15803d}.meta-tag-eventtype{background:#f0fdf4;color:#166534;border:1px solid #86efac}.meta-tag-presubmit{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.meta-tag-open{background:#dbeafe;color:#1d4ed8;border:1px solid #93c5fd}.category-chip{display:inline-block;background:#ede9fe;color:#5b21b6;font-size:.72rem;font-weight:600;padding:.2rem .65rem;border-radius:20px;letter-spacing:.01em}.category-filter-bar{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1.1rem;align-items:center}.filter-group{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.filter-group:not(:first-child):before{content:"|";opacity:.2;margin:0 .4rem}.category-chip-btn{background:var(--navy-pale);color:var(--navy-light);border:1.5px solid transparent;font-size:.78rem;font-weight:600;padding:.25rem .75rem;border-radius:20px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.category-chip-btn:hover{background:#ede9fe;color:#5b21b6}.event-flag-chip-presubmit{background:#fff8e1;color:#92400e;border-color:#fcd34d}.event-flag-chip-open{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.event-flag-chip.category-chip-active.event-flag-chip-presubmit{background:#f59e0b;color:#fff;border-color:#d97706}.event-flag-chip.category-chip-active.event-flag-chip-open{background:#2563eb;color:#fff;border-color:#1d4ed8}.category-chip-active{background:#5b21b6;color:#fff;border-color:#5b21b6}.event-type-chip{background:#f0fdf4;color:#166534}.event-type-chip:hover{background:#e7f5e0;color:#15803d}.event-type-chip.category-chip-active{background:#166534;color:#fff}.event-library-notice{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem .9rem;border:1px solid #fde68a;border-radius:var(--radius-sm);background:#fffbeb;color:#78350f;font-size:.86rem}.event-library-notice span{color:#92400e}.event-import-modal{width:min(760px,94vw);display:flex;flex-direction:column;gap:1rem}.event-import-header h3{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:.25rem}.event-import-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.event-import-toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap}.event-import-list{display:flex;flex-direction:column;gap:.55rem;max-height:420px;overflow-y:auto;padding-right:.2rem}.event-import-row{display:flex;align-items:flex-start;gap:.75rem;padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease}.event-import-row:hover{border-color:var(--navy-light);background:var(--bg)}.event-import-row input[type=checkbox]{margin-top:.15rem;flex-shrink:0}.event-import-row-disabled{opacity:.78;cursor:default}.event-import-row-disabled:hover{border-color:var(--border);background:var(--surface)}.event-import-row-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:.45rem}.event-import-row-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.event-import-name{font-size:.92rem;font-weight:700;color:var(--text)}.event-import-status{font-size:.76rem;font-weight:700;color:var(--text-muted);background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;white-space:nowrap}.event-import-status-added{color:#166534;background:#ecfdf3;border-color:#86efac}.event-import-meta{display:flex;gap:.35rem;flex-wrap:wrap}.bug-reports-page{display:flex;flex-direction:column;gap:1rem}.bug-report-submit-page{display:flex;justify-content:center}.bug-report-submit-card{width:min(760px,100%)}.bug-report-submit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.bug-report-submit-meta{display:flex;flex-wrap:wrap;gap:.6rem 1rem;font-size:.82rem;color:var(--text-muted)}.success-banner{background:#ecfdf3;color:#166534;border:1px solid #86efac;border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.875rem}.bug-reports-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.bug-summary-card{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.95rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);box-shadow:var(--shadow);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.bug-summary-card:hover{border-color:var(--navy-light);transform:translateY(-1px)}.bug-summary-card-active{border-color:var(--navy);background:var(--navy-pale);box-shadow:var(--shadow-md)}.bug-summary-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.bug-summary-value{font-size:1.5rem;color:var(--navy)}.bug-reports-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:1rem;align-items:start}.bug-report-list-card,.bug-report-detail-card{display:flex;flex-direction:column;gap:1rem}.bug-report-list-header,.bug-report-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.bug-report-list-header h2,.bug-report-detail-header h2{font-size:1rem;color:var(--navy)}.bug-report-list{display:flex;flex-direction:column;gap:.65rem;max-height:70vh;overflow-y:auto}.bug-report-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;width:100%;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-align:left;transition:border-color .15s ease,background .15s ease}.bug-report-list-item:hover{border-color:var(--navy-light);background:var(--bg)}.bug-report-list-item-active{border-color:var(--navy);background:var(--navy-pale)}.bug-report-list-top,.bug-report-list-meta,.bug-report-detail-meta{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.bug-report-list-date{font-size:.76rem;color:var(--text-muted)}.bug-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:700;text-transform:capitalize;border:1px solid transparent}.bug-pill-open{background:#fef3c7;color:#92400e;border-color:#fcd34d}.bug-pill-in_progress{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.bug-pill-resolved{background:#dcfce7;color:#166534;border-color:#86efac}.bug-pill-severity{text-transform:none}.bug-pill-severity-minor{background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}.bug-pill-severity-annoying{background:#ede9fe;color:#6d28d9;border-color:#c4b5fd}.bug-pill-severity-blocking{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.bug-status-select{display:flex;flex-direction:column;gap:.35rem;min-width:180px;font-size:.78rem;font-weight:700;color:var(--text-muted)}.bug-status-select select{width:100%}.bug-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.bug-detail-block,.bug-detail-section{display:flex;flex-direction:column;gap:.35rem}.bug-detail-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.bug-detail-section{padding-top:.25rem;border-top:1px solid var(--border)}.bug-user-agent{word-break:break-word}.team-name-pill{display:inline-block;background:var(--gold-light);color:var(--navy-dark);font-size:.78rem;font-weight:700;padding:.2rem .65rem;border-radius:20px;border:1px solid var(--gold)}.team-name-pill-top{display:block;margin-bottom:.5rem}.team-name-section{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.team-rename-form{flex:1;display:flex}.team-rename-input{flex:1;background:var(--surface);border:2px solid var(--navy-light);border-radius:var(--radius-sm);padding:.35rem .6rem;font-size:.85rem;font-weight:700;color:var(--text)}.team-rename-input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-pale)}.team-rename-btn{opacity:.5;transition:opacity .15s;padding:.2rem .4rem}.team-rename-btn:hover{opacity:1}.panel-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:.85rem}.panel-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.45rem .5rem;font-size:.82rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;display:flex;align-items:center;justify-content:center;gap:.35rem}.panel-tab:hover{color:var(--navy)}.panel-tab-active{color:var(--navy);border-bottom-color:var(--navy)}.chat-panel{display:flex;flex-direction:column;height:360px;max-height:360px;min-height:0;overflow:hidden}.chat-messages{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.25rem .1rem .5rem;scrollbar-width:thin}.chat-empty{text-align:center;color:var(--text-muted);font-size:.85rem;margin-top:2rem}.chat-msg{display:flex;flex-direction:column;max-width:80%}.chat-msg-me{align-self:flex-end;align-items:flex-end}.chat-msg-them{align-self:flex-start;align-items:flex-start}.chat-sender{font-size:.7rem;font-weight:600;color:var(--text-muted);margin-bottom:.15rem;padding-left:.35rem}.chat-bubble{padding:.45rem .75rem;border-radius:16px;font-size:.875rem;line-height:1.45;word-break:break-word}.chat-msg-me .chat-bubble{background:var(--navy);color:#fff;border-bottom-right-radius:4px}.chat-msg-them .chat-bubble{background:var(--navy-pale);color:var(--navy-dark);border-bottom-left-radius:4px}.chat-time{font-size:.65rem;color:var(--text-muted);margin-top:.15rem;padding:0 .35rem}.chat-input-row{display:flex;gap:.5rem;padding-top:.6rem;border-top:1px solid var(--border);margin-top:.25rem}.chat-input{flex:1;border:1.5px solid var(--border);border-radius:20px;padding:.4rem .9rem;font-size:.875rem;outline:none;transition:border-color .15s}.chat-input:focus{border-color:var(--navy-light)}.chat-send-btn{border-radius:20px;padding:.4rem 1rem;font-size:.875rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--text)}.label-hint{font-weight:400;color:var(--text-muted)}input[type=text],input[type=url],input[type=number],input[type=date],textarea,select{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.9rem;color:var(--text);background:var(--surface);transition:border-color .15s,box-shadow .15s;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px #3949ab26}textarea{resize:vertical}.form-card{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.form-card h3{font-size:1rem;font-weight:700;color:var(--navy)}.event-flag-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center}.event-flag-toggle{min-width:140px}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.category-selector-wrapper{position:relative;margin-top:.4rem}.category-selector-display{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:36px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.category-selector-display:focus-within{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px var(--navy-pale)}.category-selector-placeholder{color:var(--text-muted);font-size:.83rem}.category-selector-chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--navy-pale);color:var(--navy-light);padding:.25rem .5rem;border-radius:14px;font-size:.8rem;font-weight:500}.category-selector-chip-remove{background:none;border:none;color:var(--navy-light);font-size:.85rem;padding:0;margin:0;cursor:pointer;opacity:.6;transition:opacity .15s}.category-selector-chip-remove:hover{opacity:1}.category-selector-toggle{background:none;border:none;color:var(--navy-light);font-size:.7rem;padding:.25rem .4rem;margin-left:auto;cursor:pointer;opacity:.6;transition:opacity .15s}.category-selector-toggle:hover{opacity:1}.category-selector-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:0 4px 12px #0000001a;max-height:250px;overflow-y:auto;z-index:10}.category-selector-option{display:block;width:100%;padding:.65rem .8rem;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);font-size:.85rem;color:var(--text);cursor:pointer;transition:background .15s}.category-selector-option:last-child{border-bottom:none}.category-selector-option:hover{background:var(--navy-pale);color:var(--navy-light)}.category-selector-empty{padding:.8rem;text-align:center;font-size:.8rem;color:var(--text-muted);margin:0}.tab-bar-shell{position:relative;margin-bottom:1.5rem}.tab-bar-shell:before,.tab-bar-shell:after{content:"";position:absolute;top:0;bottom:0;width:2.5rem;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:1}.tab-bar-shell:before{left:0;background:linear-gradient(90deg,var(--bg) 0%,rgba(255,255,255,0) 100%)}.tab-bar-shell:after{right:0;background:linear-gradient(270deg,var(--bg) 0%,rgba(255,255,255,0) 100%)}.tab-bar-shell-left:before,.tab-bar-shell-right:after{opacity:1}.tab-bar-scroll-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:1.9rem;height:1.9rem;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--navy);box-shadow:var(--shadow);font-size:1.05rem;font-weight:800;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.tab-bar-scroll-btn:hover{background:var(--surface);box-shadow:var(--shadow-md)}.tab-bar-scroll-btn-left{left:.3rem}.tab-bar-scroll-btn-right{right:.3rem}.tab-bar{display:flex;gap:0;flex-wrap:nowrap;border-bottom:2px solid var(--border);margin-bottom:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}@supports not (background: color-mix(in srgb,white 50%,black)){.tab-bar-scroll-btn{background:var(--surface)}}.tab{background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;padding:.65rem 1.1rem;font-size:.875rem;font-weight:500;color:var(--text-muted);white-space:nowrap;flex:0 0 auto;transition:all .15s;border-radius:6px 6px 0 0}.tab:hover{color:var(--navy);background:var(--navy-pale)}.tab-active{color:var(--navy)!important;border-bottom-color:var(--navy)!important;font-weight:700}.tab-contest-today{color:#9a3412;background:linear-gradient(180deg,#fbbf2438,#fbbf2414);border-bottom-color:#f59e0b;font-weight:700}.tab-contest-today:hover{color:#7c2d12;background:linear-gradient(180deg,#fbbf244d,#fbbf241f)}.tab-contest-today.tab-active{color:#7c2d12!important;border-bottom-color:#d97706!important;background:linear-gradient(180deg,#fbbf2457,#fbbf2424)}html[data-theme=dark] .tab-contest-today{color:#fcd34d;background:linear-gradient(180deg,#f59e0b47,#f59e0b1f);border-bottom-color:#f59e0b}html[data-theme=dark] .tab-contest-today:hover{color:#fde68a;background:linear-gradient(180deg,#f59e0b5c,#f59e0b29)}html[data-theme=dark] .tab-contest-today.tab-active{color:#fde68a!important;border-bottom-color:#fbbf24!important;background:linear-gradient(180deg,#f59e0b6b,#f59e0b2e)}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-muted);font-size:.9rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-icon{font-size:3rem;margin-bottom:.75rem}.empty-state p{margin-bottom:1rem}.empty-state-inline{color:var(--text-muted);font-size:.875rem;padding:1.5rem 0;text-align:center}.muted{color:var(--text-muted);font-size:.875rem}.error-banner{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.875rem;margin-bottom:1rem}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.section-header h2{font-size:1.2rem;font-weight:700;color:var(--navy)}.section-subheading{font-size:.82rem;color:var(--text-muted);flex-basis:100%;margin:-.75rem 0 0;order:2}.login-page{position:relative;overflow:hidden;min-height:100vh;background:radial-gradient(circle at 14% 12%,#ffd75c57,#ffd75c00 22%),radial-gradient(circle at 82% 18%,#789eff57,#789eff00 24%),linear-gradient(135deg,#17357b,#244caa,#3d6de0 68%,#7da4ff);display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(130deg,#ffffff14,#fff0 42%),radial-gradient(circle at bottom left,#fff1bf33,#fff1bf00 30%);pointer-events:none}.login-card{position:relative;background:#fffffff5;border-radius:20px;padding:2.5rem 2rem;width:100%;max-width:380px;text-align:center;border:1px solid rgba(196,213,255,.42);box-shadow:0 28px 80px #0a1e5447;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-logo{width:112px;height:112px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.login-logo-image{width:98px;height:98px;object-fit:contain}.login-title{font-size:1.75rem;font-weight:800;color:#2949a3;letter-spacing:-.03em;margin-bottom:1.6rem}.login-title-wordmark{display:inline-flex;align-items:baseline;justify-content:center;gap:.08em;font-size:1.7rem;line-height:1;letter-spacing:.1em;text-shadow:0 1px 0 rgba(255,255,255,.55)}.login-title-wordmark .nav-brand-wordmark-light{color:#5c78d9}.login-title-wordmark .nav-brand-wordmark-bold{color:#28469a}.google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;background:#fff;color:#243255;border:2px solid #31447b;border-radius:var(--radius-sm);padding:.75rem 1.25rem;font-size:.9rem;font-weight:700;transition:all .15s;margin-bottom:1rem;box-shadow:0 12px 28px #1e3a5f29}.google-btn:hover:not(:disabled){background:#f7faff;border-color:#233b84;box-shadow:0 18px 34px #1e3a5f33}.google-btn:disabled{opacity:.72;cursor:not-allowed}.login-note{font-size:.78rem;color:#5f6f96}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:1rem}.events-grid>*,.users-grid>*{min-width:0}.event-card{min-width:0}.event-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;min-width:0}.event-card-header h3{font-size:1rem;font-weight:700;color:var(--navy);line-height:1.3;min-width:0;overflow-wrap:anywhere}.event-card-actions{display:flex;gap:.2rem;flex-shrink:0}.event-doc-links{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.event-doc-link{display:inline-flex;align-items:center;gap:.3rem;background:var(--navy-pale);border:1px solid var(--border);border-radius:20px;padding:.25rem .7rem;font-size:.75rem;font-weight:600;color:var(--navy);text-decoration:none;transition:background .15s}.event-doc-link:hover{background:var(--gold-light);border-color:var(--gold-dark)}.event-description{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem;line-height:1.5}.event-meta{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}.event-categories{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.event-category-chip{display:inline-block;background:var(--navy-pale);color:var(--navy-light);font-size:.75rem;font-weight:600;padding:.3rem .6rem;border-radius:4px}.teams-section{border-top:1px solid var(--border);padding-top:.85rem;margin-top:.25rem}.teams-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.teams-label{font-size:.8rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.no-teams-hint{font-size:.8rem;color:var(--text-muted);font-style:italic}.team-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.55rem .75rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s;border:1px solid transparent;margin-bottom:.35rem}.team-row:hover{background:var(--navy-pale);border-color:var(--navy-pale)}.team-row-info{flex:1 1 170px;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;min-width:0}.team-row-name{font-size:.875rem;font-weight:600;min-width:0;overflow-wrap:anywhere}.team-row-count{font-size:.75rem;background:var(--border);padding:.1rem .45rem;border-radius:10px;color:var(--text-muted)}.team-row-members{flex:1;font-size:.78rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teams-management-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1rem;align-items:start}.all-teams-list{display:flex;flex-direction:column;gap:.4rem;min-width:0}.all-teams-row{display:flex;align-items:center;gap:.75rem;padding:.65rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,border-color .12s;flex-wrap:wrap}.all-teams-row:hover{background:var(--navy-pale);border-color:var(--navy-light)}.all-teams-row-selected{border-color:var(--navy-light);box-shadow:inset 0 0 0 1px var(--navy-light)}.all-teams-row.team-row-open{background:var(--team-open-bg);border-color:var(--team-open-border)}.all-teams-row.team-row-open:hover{background:var(--team-open-bg-hover);border-color:var(--team-open-border-hover)}.all-teams-select{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.all-teams-select input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--navy)}.all-teams-main{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;flex-wrap:wrap}.all-teams-name{font-size:.9rem;font-weight:700;color:var(--text);white-space:nowrap}.all-teams-event{font-size:.75rem;font-weight:600;color:var(--navy);background:var(--navy-pale);border-radius:99px;padding:1px 8px;white-space:nowrap}.all-teams-meta{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.all-teams-count,.all-teams-captain{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.all-teams-badges{width:100%;display:flex;flex-wrap:wrap;gap:.35rem}.bulk-badge-panel{position:sticky;top:1rem;margin:0 -.35rem 0 0;padding:1rem}.bulk-badge-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;margin-bottom:.75rem}.bulk-badge-header h3{margin:0;font-size:.9rem;line-height:1.2}.bulk-badge-controls{display:flex;flex-direction:column;gap:.75rem;align-items:stretch}.bulk-badge-controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600}.bulk-badge-controls select{width:100%}.bulk-badge-actions{display:grid;grid-template-columns:1fr;gap:.45rem}.bulk-badge-actions .btn-small{justify-content:center;width:100%}.team-row-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.lock-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-weight:700;color:var(--lock-badge-text);background:var(--lock-badge-bg);border:1px solid var(--lock-badge-border);border-radius:99px;padding:1px 7px;white-space:nowrap}.team-card-advisor-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:.65rem;margin-top:.5rem;flex-shrink:0}.add-member-panel{width:100%;display:flex;flex-direction:column;gap:.4rem}.add-member-search{font-size:.83rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;box-sizing:border-box}.add-member-search:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px var(--navy-pale)}.add-member-list{max-height:180px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.add-member-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-bottom:1px solid var(--border)}.add-member-row:last-child{border-bottom:none}.add-member-row-pending{background:#fffbeb}.add-member-avatar-placeholder{width:24px;height:24px;border-radius:50%;background:var(--border);flex-shrink:0}.add-member-name{font-size:.83rem;font-weight:500}.add-member-pending-info{flex:1;display:flex;flex-direction:column;gap:.05rem;min-width:0}.add-member-pending-email{font-size:.72rem;color:var(--text-muted)}.member-remove-btn{opacity:.35;transition:opacity .15s}.member-remove-btn:hover{opacity:1}.invite-email-form{width:100%;display:flex;flex-direction:column;gap:.4rem}.invite-email-input{font-size:.83rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;box-sizing:border-box}.invite-email-input:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px var(--navy-pale)}.invited-members-list{width:100%;margin-top:.5rem;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.invited-members-label{font-size:.75rem;font-weight:600;color:var(--navy-light);margin:0 0 .4rem;text-transform:uppercase}.invited-member-row{display:flex;align-items:center;justify-content:space-between;padding:.3rem .4rem;border-radius:var(--radius-sm);background:var(--navy-pale);font-size:.82rem;margin-bottom:.3rem}.invited-member-row:last-child{margin-bottom:0}.invited-email{flex:1;word-break:break-all}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.user-card{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.user-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.user-card-info{flex:1;display:flex;flex-direction:column;gap:.2rem;overflow:hidden}.user-card-info strong{font-size:.9rem}.user-card-info span{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-actions-row{display:flex;gap:.5rem;flex-wrap:wrap;width:100%}.roster-section-header{flex-wrap:nowrap}.roster-section-header h2{min-width:0;flex:1 1 auto}.roster-section-header .count-chip{flex-shrink:0;margin-left:auto}.pending-students-section{margin-bottom:1.5rem}.matrix-view{margin-top:1rem}.matrix-view-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.matrix-view-header h3{margin:0;font-size:1rem;font-weight:700;color:var(--navy)}.matrix-view-hint{font-size:.78rem;flex:1;min-width:0}.matrix-scroll-container{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.matrix-table{border-collapse:collapse;width:100%;font-size:.84rem}.matrix-th{background:var(--navy-pale);color:var(--navy);font-weight:700;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .6rem;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border);position:sticky;top:0;z-index:1}.matrix-th-status{width:6rem}.matrix-th-save{width:4rem}.matrix-row{border-bottom:1px solid var(--border)}.matrix-row:last-child{border-bottom:none}.matrix-row-inactive{opacity:.55}.matrix-row:hover{background:var(--navy-pale)}.matrix-td{padding:.2rem .35rem;vertical-align:middle}.matrix-td-status{padding:.35rem .6rem;white-space:nowrap}.matrix-td-readonly{padding:.35rem .6rem;color:var(--text-muted)}.matrix-cell-readonly{font-size:.82rem}.matrix-input,.matrix-select{width:100%;min-width:7rem;border:1px solid transparent;border-radius:4px;padding:.3rem .4rem;font-size:.84rem;font-family:inherit;background:transparent;color:var(--text);outline:none;transition:border-color .15s,background .15s}.matrix-input:hover,.matrix-select:hover{border-color:var(--border);background:var(--surface)}.matrix-input:focus,.matrix-select:focus{border-color:var(--navy-light);background:var(--surface);box-shadow:0 0 0 2px #1e3a8a1f}.matrix-td-save-indicator{width:3.5rem;text-align:center;font-size:.78rem;white-space:nowrap}.matrix-saving{color:var(--text-muted)}.matrix-saved{color:#16a34a;font-weight:700}.matrix-error{color:#dc2626;font-weight:700;cursor:help}.role-badge-pending{background:#fef3c7;color:#92400e}.user-teams{width:100%;display:flex;flex-direction:column;gap:.3rem;border-top:1px solid var(--border);padding-top:.6rem;margin-top:.1rem}.user-team-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.78rem}.user-team-event{font-weight:600;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.user-team-name{color:var(--text-muted);white-space:nowrap}.user-team-name:before{content:"·";margin-right:.4rem;color:var(--border)}.user-team-tag{font-size:.7rem;font-weight:600;background:var(--navy-pale);color:var(--navy);border-radius:99px;padding:1px 7px;white-space:nowrap}.user-team-captain{background:#fffbeb;color:#92400e}.my-teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.team-limit-banner{display:flex;align-items:center;justify-content:space-between;gap:.85rem;flex-wrap:wrap;padding:.9rem 1rem;margin-bottom:1rem;border:1px solid var(--team-open-border);border-radius:var(--radius);background:linear-gradient(135deg,var(--team-open-bg) 0%,var(--surface) 100%)}.team-limit-banner-main{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap}.team-limit-banner-label{font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}.team-limit-banner-count{font-size:1.15rem;font-weight:800;color:var(--navy-dark)}.team-limit-banner-text{font-size:.84rem;color:var(--text-muted)}.team-card{cursor:pointer;transition:box-shadow .15s,transform .1s;display:flex;flex-direction:column}.team-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.team-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.team-card-header h3{font-size:1rem;font-weight:700;color:var(--navy);line-height:1.3}.team-card-desc{font-size:.85rem;color:var(--text-muted);flex:1;margin-bottom:.85rem;line-height:1.5}.team-card-footer{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--border);padding-top:.75rem;margin-top:auto}.view-arrow{color:var(--navy);font-weight:600}.browse-section{display:flex;flex-direction:column;gap:1rem}.browse-event-name{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:.4rem}.browse-event-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:.85rem;line-height:1.5}.browse-teams{display:flex;flex-direction:column;gap:.4rem}.browse-team-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border);transition:border-color .12s}.browse-team-row-mine{border-color:var(--navy-light);background:var(--navy-pale)}.browse-team-info{display:flex;align-items:center;gap:.6rem}.browse-team-name{font-size:.875rem;font-weight:600}.browse-team-count{font-size:.75rem;color:var(--text-muted);background:var(--border);padding:.1rem .45rem;border-radius:10px}.count-full{color:var(--danger);background:var(--danger-bg)}.browse-team-actions{display:flex;gap:.4rem}.member-count-label{font-size:.8rem;color:var(--text-muted)}.team-dash-wrap{display:flex;flex-direction:column;gap:.5rem;height:calc(100vh - 40px - 1.85rem);overflow:hidden}.team-dash-topbar{display:flex;align-items:center;justify-content:space-between}.theme-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1.5px solid #f59e0b;border-radius:var(--radius-sm);box-shadow:0 1px 4px #f59e0b26;flex-wrap:wrap}.theme-banner-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#92400e;white-space:nowrap;flex-shrink:0}.theme-banner-text{flex:1;font-size:.95rem;font-weight:600;color:#78350f;line-height:1.4}.theme-copy-btn{flex-shrink:0;padding:.3rem .8rem;border-radius:999px;border:1.5px solid #f59e0b;background:#fff;color:#92400e;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.theme-copy-btn:hover{background:#fef3c7}.theme-copy-btn.theme-copy-btn-copied{background:#065f46;border-color:#065f46;color:#fff}.theme-edit-input{flex:1;border:1.5px solid #f59e0b;border-radius:6px;padding:.3rem .6rem;font-size:.95rem;font-weight:500;background:#fff;color:#78350f;outline:none;min-width:0}.theme-banner-advisor{padding:.75rem 1rem;margin-bottom:1rem;border-left:3px solid #f59e0b}.theme-banner-advisor .theme-banner-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#92400e;margin-bottom:.4rem;display:block}.theme-display-row{display:flex;align-items:center;gap:.75rem}.theme-display-text{flex:1;font-size:.9rem;font-weight:500;color:var(--text)}.theme-editor-row{display:flex;flex-direction:column;gap:.4rem}.theme-editor-input{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:.9rem;resize:vertical;font-family:inherit}.theme-editor-input:focus{border-color:#f59e0b;outline:none}.theme-editor-actions{display:flex;gap:.5rem;justify-content:flex-end}.team-dashboard{display:grid;grid-template-columns:1fr 1fr 230px;grid-template-rows:auto minmax(0,57fr) minmax(0,43fr);grid-template-areas:"event   event   sidebar" "team    todo    sidebar" "docsres docsres sidebar";gap:1rem;flex:1;min-height:0}.dash-event-info{grid-area:event}.dash-sidebar{grid-area:sidebar;align-self:stretch;display:flex;flex-direction:column;gap:.75rem;overflow:hidden;min-height:0}.dash-team-info{grid-area:team;height:100%;min-height:0;overflow:hidden}.dash-todo{grid-area:todo;height:100%;min-height:0;overflow:hidden}.dash-docs-resources{grid-area:docsres;height:100%;min-height:0;overflow:hidden}.dash-docs-resources-body{flex:1;overflow-y:auto;min-height:0}.dash-docs-resources .panel-tabs{margin-bottom:.55rem}.dash-custom-bring{border-left:3px solid #f5b7b1}.dash-card-subtitle{font-size:.78rem;color:var(--text-muted);margin:0 0 .75rem;font-style:italic}.dash-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0}.dash-card-title{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .75rem;display:flex;align-items:center;gap:.4rem}.dash-card-body{overflow-y:auto;flex:1}.dash-event-header{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-bottom:.4rem}.dash-event-name{font-size:1.3rem;font-weight:800;color:var(--navy);margin:0}.dash-event-desc{font-size:.85rem;color:var(--text-muted);margin:0;line-height:1.55}.team-badges-row{margin-top:.45rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.team-badge-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .75rem;border-radius:999px;font-size:.82rem;font-weight:700;letter-spacing:.02em;border:1.5px solid transparent;background:#f8fafc;color:#475569;border-color:#cbd5e1}.team-badge-chip-legendary{background:linear-gradient(135deg,#fef9c3,#fde68a);color:#78350f;border-color:#f59e0b;box-shadow:0 0 8px #f59e0b66}.team-badge-chip-epic{background:linear-gradient(135deg,#ede9fe,#c4b5fd);color:#4c1d95;border-color:#8b5cf6;box-shadow:0 0 8px #8b5cf659}.team-badge-chip-rare{background:linear-gradient(135deg,#dbeafe,#93c5fd);color:#1e3a8a;border-color:#3b82f6;box-shadow:0 0 6px #3b82f640}.team-badge-chip-uncommon{background:linear-gradient(135deg,#dcfce7,#86efac);color:#14532d;border-color:#22c55e}.team-badge-chip-common{background:#f8fafc;color:#475569;border-color:#cbd5e1}.team-badges-editor{margin-top:.5rem;display:flex;flex-direction:column;gap:.45rem}.team-badges-picker{display:flex;flex-wrap:wrap;gap:.45rem}.team-badge-chip-toggle{cursor:pointer;opacity:.55;transition:opacity .15s,box-shadow .15s}.team-badge-chip-toggle:hover{opacity:.85}.team-badge-chip-toggle.team-badge-chip-selected{opacity:1;outline:2px solid currentColor;outline-offset:1px}.dash-sidebar-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.dash-sidebar-empty{font-size:.82rem;color:var(--text-muted);margin:0}.dash-sidebar-events{display:flex;flex-direction:column;flex:1;overflow-y:auto;min-height:0}.dash-sidebar-section-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin:.2rem 0 .25rem}.dash-sidebar-section-label:first-child{margin-top:0}.dash-upcoming-item{display:flex;flex-direction:column;gap:.15rem;padding:.55rem 0 .55rem .5rem;border-left:2px solid transparent;border-bottom:1px solid var(--border)}.dash-upcoming-item:last-child{border-bottom:none}.dash-upcoming-chapter{border-left-color:#7c3aed}.dash-upcoming-date{font-size:.68rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dash-upcoming-info{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.dash-upcoming-title{font-size:.82rem;font-weight:500;color:var(--text);line-height:1.3}.dash-sidebar-add{border-top:1px solid var(--border);padding-top:.5rem;margin-top:0;display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.dash-sidebar-add-dates{border-top:1px solid var(--border);padding-top:.5rem;margin-top:.25rem;display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.dash-cal-form{display:flex;flex-direction:column;gap:.4rem}.dash-cal-form input,.dash-cal-form select,.dash-cal-form textarea{font-size:.8rem;padding:.35rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;box-sizing:border-box}@media (max-width: 900px){.teams-management-layout{grid-template-columns:1fr}.bulk-badge-panel{position:static;margin:0 0 .75rem;order:-1}.bulk-badge-controls{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,2fr);align-items:end}.bulk-badge-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.team-dash-wrap{height:auto;overflow:visible}.team-dashboard{grid-template-columns:1fr 1fr;grid-template-rows:auto;grid-template-areas:"event   event" "sidebar sidebar" "team    todo" "docsres docsres";flex:none}.dash-sidebar{align-self:auto;max-height:none}.dash-card-body{max-height:280px}}@media (max-width: 640px){.bulk-badge-controls{display:flex}.bulk-badge-actions{grid-template-columns:1fr 1fr}.rubric-levels-grid,.ckpt-level-cards{grid-template-columns:1fr}.ckpt-meta-row{flex-direction:column}}@media (max-width: 580px){.team-dash-wrap{height:auto;overflow:visible}.team-dashboard{grid-template-columns:1fr;grid-template-areas:"event" "sidebar" "team" "todo" "docsres"}.dash-card-body{flex:1}}.bring-list{list-style:none;display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.bring-item{display:flex;align-items:baseline;gap:.4rem;font-size:.85rem;padding:.2rem 0}.bring-item-dot{color:var(--navy);font-weight:700;flex-shrink:0;line-height:1}.bring-item-text{flex:1;color:var(--text)}.bring-item-by{font-size:.72rem;color:var(--text-muted);flex-shrink:0}.bring-del-btn{flex-shrink:0;opacity:0;transition:opacity .15s;margin-left:.1rem}.bring-item:hover .bring-del-btn{opacity:1}.bring-add-form{display:flex;gap:.5rem;margin:0 0 .55rem}.bring-add-input{flex:1;padding:.35rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;outline:none;background:var(--bg)}.bring-add-input:focus{border-color:var(--navy-light);background:var(--surface)}.bring-event-group{margin-bottom:1.5rem}.bring-event-name{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);padding-bottom:.35rem;border-bottom:1.5px solid var(--navy-pale);margin-bottom:.5rem}.sse-bring-section{margin-top:1rem;background:var(--gold-light);border:1px solid #ffe082;border-radius:var(--radius-sm);overflow:hidden}.sse-bring-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:transparent;border:none;color:var(--text)}.sse-bring-toggle:hover{background:#ffffff59}.sse-bring-toggle-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.sse-bring-toggle-title{font-size:.82rem;font-weight:700;color:var(--navy)}.sse-bring-toggle-meta,.sse-bring-toggle-state{font-size:.74rem;font-weight:700;color:var(--text-muted)}.sse-bring-toggle-state{display:inline-flex;align-items:center;gap:.45rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.sse-bring-toggle-caret{font-size:.82rem;color:var(--navy)}.sse-bring-body{padding:0 1rem .85rem;border-top:1px solid rgba(255,224,130,.95)}.sse-bring-event-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.2rem;margin-top:.5rem}.rubric-editor{margin-top:.6rem;display:flex;flex-direction:column;gap:.3rem}.rubric-section-group{margin-bottom:.75rem}.rubric-section-header{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:#fff;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:.3rem .65rem;margin-bottom:0}.rubric-section-name{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.rubric-section-pts{font-size:.72rem;opacity:.85}.rubric-item-row{display:flex;flex-direction:column;gap:.2rem;padding:.4rem .55rem;background:var(--bg);border:1px solid var(--border);border-top:none;font-size:.82rem}.rubric-item-row:last-child{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.rubric-item-penalty{background:#fff7ed;border-color:#fed7aa}.rubric-item-main{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.rubric-item-label{flex:1;color:var(--text);font-weight:500}.rubric-item-max{font-size:.72rem;font-weight:700;color:var(--navy-light);background:var(--navy-pale);border-radius:10px;padding:.1rem .45rem;flex-shrink:0}.rubric-item-note{font-size:.73rem;color:var(--text-muted);font-style:italic}.rubric-item-actions{display:flex;gap:.25rem;margin-left:auto}.rubric-multiplier-badge{font-size:.68rem;font-weight:800;color:#7c3aed;background:#f3e8ff;border-radius:10px;padding:1px 6px}.rubric-penalty-badge{font-size:.68rem;font-weight:700;color:#c2410c;background:#ffedd5;border-radius:10px;padding:1px 6px}.rubric-item-levels{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.15rem}.rubric-level-pill{font-size:.68rem;border-radius:4px;padding:2px 6px;line-height:1.4;max-width:200px;display:inline-block}.rubric-level-min{background:#fef3c7;color:#92400e}.rubric-level-adq{background:#dbeafe;color:#1e40af}.rubric-level-exp{background:#dcfce7;color:#15803d}.rubric-action-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.3rem}.rubric-full-form{display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;margin-top:.25rem}.rubric-form-row{display:flex;align-items:flex-end;gap:.4rem;flex-wrap:wrap}.rubric-small-label{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--text-muted);font-weight:600}.rubric-check-label{display:flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--text);padding-bottom:4px;white-space:nowrap}.rubric-add-input{padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;outline:none;min-width:80px}.rubric-add-input:focus{border-color:var(--navy-light)}.rubric-pts-input{padding:.3rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;text-align:center;outline:none}.rubric-pts-label{font-size:.78rem;color:var(--text-muted)}.rubric-levels-toggle{background:none;border:none;font-size:.76rem;font-weight:600;color:var(--navy-light);cursor:pointer;text-align:left;padding:0;text-decoration:underline}.rubric-levels-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}.rubric-level-col{display:flex;flex-direction:column;gap:.3rem}.rubric-level-header{display:flex;align-items:center;gap:.35rem}.rubric-level-name{font-size:.72rem;font-weight:700;color:var(--text-muted)}.rubric-range-input{width:54px;padding:.15rem .3rem;border:1px solid var(--border);border-radius:4px;font-size:.72rem;text-align:center;outline:none}.rubric-level-desc{font-size:.78rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .4rem;resize:vertical;font-family:var(--font);outline:none;line-height:1.45}.rubric-level-desc:focus{border-color:var(--navy-light)}.rubric-paste-panel{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem}.rubric-paste-hint{font-size:.76rem;color:var(--text-muted);line-height:1.5}.rubric-paste-textarea{width:100%;padding:.4rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;font-family:monospace;resize:vertical;outline:none}.rubric-paste-textarea:focus{border-color:var(--navy-light)}.rubric-parsed-lines{display:flex;flex-direction:column;gap:.3rem;max-height:200px;overflow-y:auto}.rubric-line-check{display:flex;align-items:flex-start;gap:.4rem;font-size:.8rem;cursor:pointer;padding:.15rem 0}.rubric-line-check input{flex-shrink:0;margin-top:2px}.dash-ckpt-score{border-top:1px solid var(--border);padding-top:.3rem;flex-shrink:0}.dash-latest-scores-heading{border-top:1px solid var(--border);padding-top:.5rem;margin-top:.25rem;flex-shrink:0;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.dash-latest-scores-heading+.dash-ckpt-score{border-top:none;padding-top:.3rem}.dash-ckpt-score-self,.dash-ckpt-score-official{margin-top:.15rem}.dash-ckpt-score-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}.dash-ckpt-score-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.dash-ckpt-score-date{font-size:.68rem;color:var(--text-muted)}.dash-ckpt-score-row{display:flex;align-items:baseline;gap:.2rem;margin-bottom:.2rem}.dash-ckpt-num{font-size:1.5rem;font-weight:800;color:var(--navy);line-height:1}.dash-ckpt-score-official .dash-ckpt-num{color:#b45309}.dash-ckpt-score-self .dash-ckpt-num{color:#0f766e}.dash-ckpt-sep{font-size:.9rem;color:var(--text-muted)}.dash-ckpt-max{font-size:1rem;font-weight:600;color:var(--text-muted)}.dash-ckpt-pct{margin-left:.35rem;font-size:.78rem;font-weight:600;color:var(--navy-light);background:var(--navy-pale);border-radius:10px;padding:.1rem .4rem}.dash-ckpt-bar{height:6px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:.15rem}.dash-ckpt-fill{height:100%;background:linear-gradient(90deg,var(--navy-light),var(--navy));border-radius:4px;transition:width .4s ease}.dash-ckpt-fill-self{background:linear-gradient(90deg,#0f766e,#14b8a6)}.dash-ckpt-fill-official{background:linear-gradient(90deg,#b45309,#f59e0b)}.dash-ckpt-pct-self{color:#0f766e;background:#ccfbf1}.dash-ckpt-pct-official{color:#92400e;background:#fef3c7}.dash-ckpt-title{font-size:.73rem;color:var(--text-muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-rubric-links{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.dash-rubric-link{background:none;border:none;padding:.3rem 0;font-size:.8rem;color:var(--accent, #1a73e8);text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.dash-rubric-link:hover{opacity:.75}.rubric-view-card{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}.modal-sheet{background:var(--surface, #fff);border-radius:14px;width:min(680px,96vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 8px 40px #0000002e;overflow:hidden}.modal-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .75rem;border-bottom:1px solid var(--border, #d0d7de)}.modal-sheet-title{margin:0 0 .15rem;font-size:1.1rem}.modal-sheet-sub{margin:0;font-size:.8rem;color:var(--text-muted)}.modal-sheet-body{overflow-y:auto;padding:.75rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.6rem}.scoresheet-entry{border:1px solid var(--border, #d0d7de);border-radius:8px;overflow:hidden}.scoresheet-summary{display:flex;align-items:center;justify-content:space-between;padding:.65rem .85rem;cursor:pointer;gap:.75rem;background:var(--surface-alt, #f6f8fa)}.scoresheet-summary:hover{background:var(--bg)}.scoresheet-summary-left{display:flex;flex-direction:column;gap:.1rem;min-width:0}.scoresheet-title{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scoresheet-date{font-size:.75rem;color:var(--text-muted)}.scoresheet-summary-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.scoresheet-score{font-weight:700;font-size:1rem}.scoresheet-sep{font-weight:400;color:var(--text-muted);margin:0 1px}.scoresheet-pct{font-size:.8rem;color:var(--text-muted);min-width:36px;text-align:right}.scoresheet-chevron{font-size:.65rem;color:var(--text-muted)}.scoresheet-bar{height:3px;background:var(--border, #d0d7de)}.scoresheet-bar-fill{height:100%;background:var(--accent, #1a73e8);transition:width .3s ease}.scoresheet-detail{padding:.75rem .85rem;display:flex;flex-direction:column;gap:.65rem;background:var(--surface)}.scoresheet-notes{margin:0;font-size:.83rem;color:var(--text-muted);font-style:italic}.scoresheet-section{display:flex;flex-direction:column;gap:.25rem}.scoresheet-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}.scoresheet-section-name{font-weight:600;font-size:.82rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.scoresheet-section-total{font-size:.8rem;font-weight:600;color:var(--accent, #1a73e8)}.scoresheet-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.85rem;padding:.22rem 0;border-bottom:1px solid var(--border, #d0d7de)}.scoresheet-row:last-child{border-bottom:none}.scoresheet-row-label{flex:1;min-width:0}.scoresheet-row-pts{font-weight:600;white-space:nowrap}.scoresheet-row-penalty .scoresheet-row-pts{color:var(--rubric-danger-text)}.checkpoint-screen{max-width:760px;margin:0 auto;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem}.ckpt-topbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-bottom:.75rem;border-bottom:2px solid var(--navy-pale)}.ckpt-header-info{flex:1;display:flex;flex-direction:column;gap:.1rem}.ckpt-event-label{font-size:1rem;font-weight:800;color:var(--navy)}.ckpt-team-label{font-size:.8rem;color:var(--text-muted)}.ckpt-running-score{display:flex;align-items:baseline;gap:.2rem;background:var(--navy-pale);border-radius:var(--radius);padding:.4rem .9rem}.ckpt-running-score .ckpt-score-num{font-size:1.5rem;font-weight:800;color:var(--navy)}.ckpt-running-score .ckpt-score-sep,.ckpt-running-score .ckpt-score-max{font-size:1rem;color:var(--text-muted)}.ckpt-running-score .ckpt-score-pct{font-size:.8rem;font-weight:600;color:var(--navy-light);margin-left:.3rem}.ckpt-meta-row{display:flex;gap:1rem;flex-wrap:wrap}.ckpt-rubric-list{display:flex;flex-direction:column;gap:.75rem}.ckpt-section-group{display:flex;flex-direction:column}.ckpt-section-header{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:#fff;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:.4rem .8rem}.ckpt-section-name{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ckpt-section-score{font-size:.8rem;font-weight:700}.ckpt-rubric-row{display:flex;align-items:flex-start;gap:1rem;background:var(--surface);border:1px solid var(--border);border-top:none;padding:.65rem .8rem;flex-wrap:wrap}.ckpt-section-group .ckpt-rubric-row:last-child{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.ckpt-row-penalty{background:var(--rubric-penalty-bg);border-color:var(--rubric-penalty-border)}.ckpt-rubric-meta{flex:1;display:flex;flex-direction:column;gap:.3rem;min-width:200px}.ckpt-rubric-label-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.ckpt-rubric-label{font-size:.9rem;font-weight:600;color:var(--text)}.ckpt-mult-badge{font-size:.68rem;font-weight:800;color:#7c3aed;background:#f3e8ff;border-radius:10px;padding:1px 6px}.ckpt-penalty-badge{font-size:.68rem;font-weight:700;color:var(--rubric-danger-text);background:var(--rubric-danger-soft);border-radius:10px;padding:1px 6px}.ckpt-penalty-note{font-size:.75rem;color:var(--rubric-danger-text);font-style:italic}.ckpt-level-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.25rem}.ckpt-level-card{border-radius:var(--radius-sm);padding:.35rem .5rem;display:flex;flex-direction:column;gap:.15rem}.ckpt-level-min{background:var(--rubric-level-min-bg);border:1px solid var(--rubric-level-min-border)}.ckpt-level-adq{background:var(--rubric-level-adq-bg);border:1px solid var(--rubric-level-adq-border)}.ckpt-level-exp{background:var(--rubric-level-exp-bg);border:1px solid var(--rubric-level-exp-border)}.ckpt-level-range{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.ckpt-level-text{font-size:.72rem;line-height:1.45;color:var(--text)}.ckpt-rubric-score-area{display:flex;align-items:center;gap:.4rem;flex-shrink:0;padding-top:.15rem}.ckpt-score-calc{display:flex;flex-direction:column;gap:.1rem}.ckpt-score-earned{font-size:.72rem;font-weight:700;color:var(--navy-light)}.ckpt-score-input{width:58px;padding:.3rem .4rem;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;font-weight:700;text-align:center;color:var(--navy);outline:none;transition:border-color .15s}.ckpt-score-input:focus{border-color:var(--navy-light)}.ckpt-score-of{font-size:.82rem;color:var(--text-muted);min-width:2rem}.ckpt-mini-bar{width:80px;height:6px;background:var(--border);border-radius:4px;overflow:hidden}.ckpt-mini-fill{height:100%;border-radius:4px;transition:width .2s ease,background .2s ease}.ckpt-notes-label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--text-muted)}.ckpt-notes-label textarea{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem;font-size:.85rem;resize:vertical;outline:none}.ckpt-notes-label textarea:focus{border-color:var(--navy-light)}.team-detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.team-detail-title{flex:1;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.team-detail-title h1{font-size:1.4rem;font-weight:800;color:var(--navy);letter-spacing:-.02em}.overview-tab{display:flex;flex-direction:column;gap:1rem}.overview-card h3{font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:.6rem}.overview-card p{font-size:.9rem;line-height:1.6}.member-list{list-style:none;display:flex;flex-direction:column;gap:.25rem}.member-item{display:flex;flex-direction:column;gap:0;font-size:.9rem;border-radius:var(--radius-sm);transition:background .1s}.member-item-captain{background:#fffbeb}.member-item-main{display:flex;align-items:center;gap:.55rem;padding:.35rem .4rem}.member-dot{width:8px;height:8px;border-radius:50%;background:var(--navy-light);flex-shrink:0}.member-dot-pending{background:var(--gold-dark)}.member-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.member-avatar-placeholder{width:24px;height:24px;border-radius:50%;background:#e5e7eb;border:1px solid #d1d5db;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.member-avatar-placeholder-dot{width:8px;height:8px;border-radius:50%;background:#64748b}.member-avatar-placeholder-pending .member-avatar-placeholder-dot{background:#d97706}.member-avatar-badge-wrap{position:relative;display:inline-flex;width:24px;height:24px}.captain-crown-badge{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:.8rem;line-height:1}.member-info{flex:1;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.member-name{font-weight:500}.member-role-pill{font-size:.7rem;font-weight:600;color:var(--navy);background:var(--navy-pale);border-radius:99px;padding:1px 8px;white-space:nowrap}.member-edit-btn{opacity:.45;transition:opacity .15s;padding:2px 4px}.member-edit-btn:hover{opacity:1}.member-edit-row{display:flex;flex-direction:column;gap:.5rem;padding:.5rem .4rem .6rem 1.85rem;border-top:1px solid var(--border);margin-top:.1rem}.member-role-input{font-size:.85rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;box-sizing:border-box}.member-role-input:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px var(--navy-pale)}.member-edit-actions{display:flex;gap:.4rem;flex-wrap:wrap}.upcoming-row{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.upcoming-row:last-of-type{border-bottom:none}.upcoming-title{font-size:.875rem;font-weight:500;flex:1}.upcoming-date{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.calendar-tab-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}.todo-list{display:flex;flex-direction:column;gap:1rem}.todo-input-row{display:flex;gap:.5rem;align-items:flex-start}.todo-input-stack{flex:1;display:flex;flex-direction:column;gap:.45rem}.todo-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .85rem;font-size:.9rem;background:var(--surface);transition:border-color .15s;width:100%}.todo-input:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px #3949ab1f}.todo-assignee-select{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.48rem .75rem;font-size:.82rem;background:var(--surface);color:var(--text)}.todo-assignee-select:focus{outline:none;border-color:var(--navy-light);box-shadow:0 0 0 3px #3949ab1f}.todo-items{display:flex;flex-direction:column;gap:.3rem}.todo-item{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:background .12s}.todo-item:hover{background:var(--bg)}.todo-item.completed{opacity:.6}.todo-checkbox{width:16px;height:16px;accent-color:var(--navy);cursor:pointer;flex-shrink:0}.todo-text{font-size:.875rem;line-height:1.4}.todo-item.completed .todo-text{text-decoration:line-through;color:var(--text-muted)}.todo-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.todo-main-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.todo-assignee{display:inline-flex;align-items:center;padding:.16rem .5rem;border-radius:999px;background:var(--navy-pale);color:var(--navy);font-size:.72rem;font-weight:600;white-space:nowrap}.todo-author{font-size:.75rem;color:var(--text-muted);line-height:1.2}.todo-divider{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);padding:.6rem 0 .3rem;border-top:1px solid var(--border);margin-top:.25rem}.calendar-view{display:flex;flex-direction:column;gap:1.5rem}.cal-nav{display:flex;align-items:center;justify-content:space-between;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;box-shadow:var(--shadow)}.cal-nav-center{display:flex;flex-direction:column;align-items:center;gap:.25rem}.cal-month-title{font-size:1rem;font-weight:700;color:var(--navy)}.cal-nav-btn{font-size:1.4rem;color:var(--navy)!important;padding:.3rem .6rem;border-radius:var(--radius-sm)}.cal-nav-btn:hover{background:var(--navy-pale)!important;color:var(--navy)!important}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal-day-header{background:var(--navy);color:#ffffffd9;text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.5rem 0}.cal-cell{background:var(--surface-raised);min-height:72px;padding:.3rem;display:flex;flex-direction:column;gap:2px;position:relative}.cal-cell-empty{background:var(--bg)}.cal-cell-today{background:var(--gold-light)}.cal-day-num{font-size:.75rem;font-weight:600;color:var(--text-muted);align-self:flex-end;line-height:1;margin-bottom:2px}.cal-cell-today .cal-day-num{background:var(--navy);color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cal-event{font-size:.65rem;font-weight:600;padding:.15rem .35rem;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;line-height:1.3}.cal-event-contest{background:#fee2e2;color:#b91c1c}.cal-event-checkpoint{background:#dbeafe;color:#1d4ed8}.cal-event-deadline{background:#fef3c7;color:#b45309}.cal-event-chapter{outline:2px solid #7c3aed;outline-offset:-1px}.cal-chapter-dot,.cal-team-dot{font-size:.65rem;margin-right:2px}.cal-list{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.cal-list-heading{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.75rem}.cal-list-heading-today{color:var(--navy)}.cal-list-heading-upcoming,.cal-list-heading-past{margin-top:1.25rem}.cal-list-item{display:flex;flex-direction:column;gap:.25rem;padding:.65rem 0;border-bottom:1px solid var(--border);position:relative}.cal-list-item:last-child{border-bottom:none}.cal-list-item-past{opacity:.55}.cal-list-item-chapter{border-left:3px solid #7c3aed;padding-left:.6rem}.chapter-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-weight:700;color:#7c3aed;background:#f3e8ff;border-radius:4px;padding:1px 5px;white-space:nowrap}.team-cal-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-weight:700;color:#0369a1;background:#e0f2fe;border-radius:4px;padding:1px 5px;white-space:nowrap}.cal-list-from-team{font-size:.72rem;color:var(--text-muted);font-style:italic;margin:.1rem 0 0;padding-left:.25rem}.cal-list-item-main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.cal-list-title{font-size:.875rem;font-weight:600;flex:1}.cal-list-date{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.cal-list-desc{font-size:.8rem;color:var(--text-muted);padding-left:.25rem}.cal-list-actions{display:flex;align-items:center;gap:.35rem;margin-top:.1rem}.cal-contest-link-btn{font-size:.72rem!important;padding:.2rem .55rem!important}.cal-event-clickable{cursor:pointer;transition:opacity .12s,filter .12s}.cal-event-clickable:hover{opacity:.8;filter:brightness(.95)}.doclist-tab{display:flex;flex-direction:column;gap:1rem}.doclist-tab-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.doclist-tab-title{font-size:1rem;font-weight:700;color:var(--navy);margin:0 0 .15rem}.doclist-tab-sub{font-size:.8rem;color:var(--text-muted);margin:0}.doc-progress{display:flex;align-items:center;gap:.75rem;margin-bottom:0;flex:1}.doc-progress-bar{flex:1;height:6px;background:var(--border);border-radius:99px;overflow:hidden}.doc-progress-fill{height:100%;background:var(--success);border-radius:99px;transition:width .3s ease}.doc-progress-label{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.doc-list{display:flex;flex-direction:column;gap:.3rem}.doc-list-head{display:flex;align-items:center;gap:.65rem;margin-bottom:-.05rem}.doc-list-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.doc-list-head-spacer{width:0;flex-shrink:0}.doc-empty{color:var(--text-muted);font-size:.875rem;padding:.5rem 0}.doc-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;display:flex;flex-direction:column;gap:.2rem;transition:border-color .15s}.doc-item-linked{border-left:3px solid #16a34a}.doc-item-unlinked{border-left:3px solid #d1d5db}.doc-item-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.doc-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.doc-dot-on{background:#16a34a}.doc-dot-off{background:#d1d5db}.doc-item-title-meta{flex:1;display:flex;align-items:baseline;gap:.4rem;min-width:0;flex-wrap:wrap}.doc-item-title{font-size:.875rem;font-weight:600;color:var(--text);word-break:break-word}.doc-google-badge{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;background:#e0ecff;color:#1d4ed8;font-size:.68rem;font-weight:700;white-space:nowrap}.doc-item-meta{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.doc-item-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.doc-link-form{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0 .15rem 1.4rem}.doc-link-form input{font-size:.82rem;padding:.4rem .6rem}.doc-link-form-actions{display:flex;gap:.4rem;flex-wrap:wrap}.doc-preview-frame{width:100%;min-height:420px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.doc-preview-modal-backdrop{background:#0910207a;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.doc-preview-modal{width:min(1120px,94vw);max-width:1120px;max-height:92vh;padding:1rem 1rem 1.1rem}.doc-preview-modal-actions{display:flex;align-items:center;gap:.5rem}.doc-preview-modal-body{display:flex;flex-direction:column;min-height:0}.doc-preview-frame-modal{min-height:76vh;border-radius:var(--radius)}.doc-add-form{display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:.65rem .85rem}.doc-add-form input{font-size:.875rem}.doc-add-form-actions{display:flex;gap:.4rem}.doc-google-help{font-size:.78rem;line-height:1.45;color:var(--text-muted)}.doc-add-btn{align-self:flex-start;margin-top:0;flex-shrink:0}.announcements-list{display:flex;flex-direction:column;gap:1rem}.announcements-feed{padding-top:.25rem}.announcement-card{display:flex;flex-direction:column;gap:.5rem}.announcement-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.announcement-title{font-size:1rem;font-weight:700;color:var(--navy);margin:0}.announcement-body{font-size:.9rem;color:var(--text);line-height:1.55;white-space:pre-wrap;margin:0}.announcement-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted);padding-top:.25rem;border-top:1px solid var(--border)}.announcement-banner{display:flex;align-items:center;gap:.75rem;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1.25rem;cursor:pointer;transition:background .15s}.announcement-banner:hover{background:#fef3c7}.announcement-banner-icon{font-size:1.1rem;flex-shrink:0}.announcement-banner-text{flex:1;font-size:.85rem;color:var(--text)}.announcement-banner-sub{color:var(--text-muted)}.announcement-banner-arrow{font-size:1.2rem;color:var(--text-muted);flex-shrink:0}html[data-theme=dark] .announcement-banner{background:#2f2814;border-color:#c79b2c}html[data-theme=dark] .announcement-banner:hover{background:#3a3119}html[data-theme=dark] .announcement-banner-text{color:#f7e7b1}html[data-theme=dark] .announcement-banner-sub,html[data-theme=dark] .announcement-banner-arrow{color:#e0c46d}.chapter-links-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.chapter-link-url-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.chapter-link-url-row input{flex:1;min-width:0}.chapter-link-picker-btn{flex-shrink:0}.chapter-link-groups{display:flex;flex-direction:column;gap:1.5rem}.chapter-link-group{display:flex;flex-direction:column;gap:.85rem}.chapter-link-group-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.chapter-link-group-header h3{margin:0;color:var(--navy);font-size:1rem}.chapter-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem}.chapter-link-card{position:relative;overflow:hidden;padding:0;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.chapter-link-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#1a237e2e}.chapter-link-anchor{display:flex;flex-direction:column;min-height:100%}.chapter-link-delete{position:absolute;top:.7rem;right:.7rem;z-index:2;background:#ffffffeb;border-radius:999px;box-shadow:0 6px 18px #0f172a2e}.chapter-link-preview{min-height:120px;padding:1rem;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:1rem}.chapter-link-preview-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.chapter-link-preview-badge{display:inline-flex;align-items:center;min-height:24px;padding:.2rem .55rem;border-radius:999px;background:#ffffff29;border:1px solid rgba(255,255,255,.24);font-size:.72rem;font-weight:700;letter-spacing:.02em}.chapter-link-preview-main{display:flex;align-items:center;gap:.75rem}.chapter-link-preview-copy{display:flex;flex-direction:column;gap:.18rem;min-width:0}.chapter-link-favicon{width:2.5rem;height:2.5rem;border-radius:.75rem;background:#ffffffe6;padding:.35rem;flex-shrink:0}.chapter-link-preview-path{font-size:.86rem;text-transform:uppercase;letter-spacing:.04em;opacity:.84;line-height:1.2;word-break:break-word}.chapter-link-preview-title{font-size:1.6rem;font-weight:700;line-height:1.3;word-break:break-word}.chapter-link-card-body{display:flex;flex-direction:column;gap:.35rem;padding:1rem}.chapter-link-meta{display:flex;flex-wrap:wrap;gap:.65rem 1rem;padding-top:.35rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:.76rem}html[data-theme=dark] .chapter-link-card:hover{border-color:#7ea1ff47}html[data-theme=dark] .chapter-link-delete{background:#121a31f2}.user-name-link{cursor:pointer;color:var(--navy);text-decoration:underline;text-underline-offset:2px;transition:color .15s}.user-name-link:hover{color:var(--navy-light)}.org-id-badge{margin-left:.45rem;font-size:.72rem;font-weight:600;color:var(--navy-light);opacity:.75}.profile-tag{display:inline-block;font-size:.72rem;background:var(--navy-pale);color:var(--navy);padding:.15rem .5rem;border-radius:999px;margin-right:.3rem;margin-top:.15rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-card{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:0}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.modal-header-info{display:flex;align-items:center;gap:.75rem}.modal-title{font-size:1.1rem;font-weight:700;color:var(--text);margin:0}.modal-form{display:flex;flex-direction:column;gap:.85rem}.modal-form-row{display:flex;gap:1rem}.student-limit-override-card{display:flex;flex-direction:column;gap:.55rem;padding:.85rem .95rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt)}.student-limit-override-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:700;color:var(--text)}.student-limit-override-toggle input{margin:0}.student-limit-override-hint{margin:0;font-size:.8rem;color:var(--text-muted);line-height:1.45}.contest-selector-group{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.contest-selector-label{font-size:1rem!important;margin:0}.contest-selector{padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;background:var(--surface);color:var(--text);cursor:pointer;max-width:320px}.contest-location{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.96rem;font-weight:700;color:var(--navy);margin-top:.25rem}.contest-location-place,.contest-location-date{display:inline-flex;align-items:center;gap:.25rem}.contest-info-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.contest-info-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.contest-edit-form{padding:.85rem 1rem;margin:.5rem 0}.contest-edit-modal{width:min(760px,94vw);gap:1rem}.contest-edit-modal-subtitle{margin-top:.2rem}.contest-edit-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.contest-edit-row{display:flex;gap:.75rem;flex-wrap:wrap}.contest-edit-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:600}.contest-edit-row input{font-size:.85rem;padding:.35rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.contest-print-button{min-width:44px;justify-content:center;padding-inline:.9rem;font-size:1rem}.print-schedule-modal{width:min(720px,94vw)}.print-schedule-subtitle{margin-top:.2rem}.print-schedule-options{display:flex;flex-direction:column;gap:.9rem}.print-schedule-option{display:flex;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);cursor:pointer}.print-schedule-option input{margin-top:.15rem;flex-shrink:0}.print-schedule-option span{display:flex;flex-direction:column;gap:.2rem}.print-schedule-option-hint{font-size:.8rem;color:var(--text-muted);font-weight:500}.print-schedule-option-group{display:flex;flex-direction:column;gap:.6rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.8rem .9rem;background:var(--surface)}.print-schedule-option-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.print-schedule-option-group-head .print-schedule-option{flex:1;padding:0;border:none;background:transparent}.print-schedule-option-body{display:flex;flex-direction:column;gap:.65rem}.print-schedule-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem .85rem}.print-schedule-check{display:flex;align-items:flex-start;gap:.55rem;font-size:.85rem;color:var(--text)}.print-schedule-check input{margin-top:.15rem}.enter-teams-panel{padding:1rem;margin:.75rem 0;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.enter-teams-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.enter-teams-select-all{display:flex;gap:.4rem}.enter-teams-multiselect{position:relative}.enter-teams-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.9rem;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s}.enter-teams-trigger:hover,.enter-teams-trigger-open{border-color:var(--navy-light);box-shadow:0 0 0 3px #3949ab14}.enter-teams-trigger:disabled{opacity:.65;cursor:not-allowed}.enter-teams-trigger-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enter-teams-trigger-arrow{flex-shrink:0;font-size:.72rem;color:var(--text-muted)}.enter-teams-menu{margin-top:.6rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.enter-teams-search{width:100%;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:.75rem .85rem;font-size:.85rem;background:var(--surface);color:var(--text)}.enter-teams-search:focus{outline:none;border-bottom-color:var(--navy-light)}.enter-teams-options{display:flex;flex-direction:column;gap:.3rem;max-height:280px;overflow-y:auto;padding:.4rem .6rem}.enter-teams-empty{padding:.45rem .25rem;font-size:.84rem}.enter-team-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.55rem .5rem;border-radius:6px;border:none;background:transparent;color:var(--text);font-size:.88rem;text-align:left}.enter-team-option:hover{background:var(--navy-pale)}.enter-team-option-selected{background:#3949ab14}.enter-team-option-main{min-width:0;display:flex;flex-direction:column;gap:.12rem}.enter-team-option-check{width:20px;height:20px;border-radius:999px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:transparent;background:var(--surface);font-size:.76rem;font-weight:700}.enter-team-option-check-selected{color:#fff;background:var(--navy);border-color:var(--navy)}.enter-team-name{font-weight:600;flex:1}.enter-team-event{font-size:.78rem;color:var(--text-muted)}html[data-theme=dark] .enter-teams-panel{background:var(--surface)}.contest-entry-notices{display:flex;flex-direction:column;gap:.4rem;margin-top:.75rem}.contest-entry-notice{display:flex;align-items:flex-start;gap:.5rem;background:linear-gradient(135deg,#fff8e1,#fef3c7);border:1px solid #fcd34d;border-left:4px solid var(--gold-dark);border-radius:var(--radius-sm);padding:.55rem .8rem;font-size:.85rem;line-height:1.4}.contest-entry-icon{font-size:1rem;flex-shrink:0;margin-top:.05rem}html[data-theme=dark] .contest-entry-notice{background:linear-gradient(135deg,#f6c34a29,#e6a81d1f);border-color:#f6c34a59}html[data-theme=dark] .member-item-captain{background:#f6c34a1f}.contest-results-groups{display:flex;flex-direction:column;gap:.9rem}.contest-results-group{padding:1rem 1.1rem}.contest-results-group-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.contest-results-event{font-size:1rem;font-weight:700;color:var(--navy);margin:0}.contest-results-sub{margin:.2rem 0 0;font-size:.8rem;color:var(--text-muted)}.contest-results-list{display:flex;flex-direction:column;gap:.75rem}.contest-result-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt)}.contest-result-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:.35rem}.contest-result-team-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.contest-result-team-name{font-size:.96rem;font-weight:700;color:var(--text)}.contest-result-meta{margin:0;font-size:.78rem;color:var(--text-muted)}.contest-result-place-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;border:1px solid transparent}.contest-result-place-icon{font-size:.92rem;line-height:1}.contest-result-place-gold{background:#fff7d6;color:#8a5a00;border-color:#f6d365}.contest-result-place-silver{background:#f3f4f6;color:#4b5563;border-color:#d1d5db}.contest-result-place-bronze{background:#fce7dc;color:#9a3412;border-color:#fdba74}.contest-result-place-top10{background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}.contest-result-place-ribbon{background:var(--surface-alt);color:#5b6b86;border-color:var(--border)}.contest-result-place-dq{background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}.contest-result-place-np{background:#eef6ff;color:#245489;border-color:#c7ddf5}.contest-result-place-default{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.contest-result-score-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.contest-result-score-pill{display:inline-flex;align-items:center;padding:.28rem .55rem;border-radius:999px;background:var(--navy-pale);color:var(--navy);font-size:.76rem;font-weight:800}.contest-result-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}.contest-result-status-actions{display:inline-flex;align-items:center;gap:.4rem;min-height:40px}.contest-result-place-field{display:flex;flex-direction:column;gap:.25rem;font-size:.76rem;font-weight:700;color:var(--navy)}.contest-result-place-field input{width:84px;padding:.45rem .55rem;border:1px solid var(--border);border-radius:10px;font-size:.88rem;font-weight:700}@media (max-width: 760px){.contest-result-row{flex-direction:column;align-items:stretch}.contest-result-actions{justify-content:flex-start}.contest-result-place-field input{width:100%}}.contest-schedule-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.schedule-past-section{margin-top:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt);box-shadow:var(--shadow);overflow:hidden}.schedule-past-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;background:transparent;border:none;color:var(--text)}.schedule-past-toggle:hover{background:var(--navy-pale)}.schedule-past-toggle-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.schedule-past-toggle-title{font-size:.9rem;font-weight:800;color:var(--navy)}.schedule-past-toggle-meta,.schedule-past-toggle-state{font-size:.76rem;font-weight:700;color:var(--text-muted)}.schedule-past-toggle-state{display:inline-flex;align-items:center;gap:.45rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.schedule-past-toggle-caret{font-size:.82rem;color:var(--navy)}.schedule-past-body{padding:0 .75rem .75rem;border-top:1px solid var(--border)}.schedule-empty-note{margin-top:.75rem;padding:1rem;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-muted);font-size:.85rem}.schedule-now-line{display:flex;align-items:center;gap:.75rem;margin:.55rem 0 .7rem;scroll-margin-top:5rem}.schedule-now-line:before,.schedule-now-line:after{content:"";flex:1;min-width:1.25rem;height:4px;border-radius:999px;background:linear-gradient(90deg,#1d4ed8,#3b82f6 55%,#93c5fd);box-shadow:0 0 18px #2563eb4d}.schedule-now-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.32rem .82rem;border-radius:999px;background:linear-gradient(135deg,#1d4ed8,#2563eb 55%,#60a5fa);color:#fff;font-size:.74rem;font-weight:800;letter-spacing:.08em;box-shadow:0 10px 22px #2563eb47;white-space:nowrap}.schedule-now-pill:before{content:"";width:.55rem;height:.55rem;border-radius:999px;background:#fff;opacity:.96;transform:scale(1);will-change:transform,opacity;animation:schedule-now-dot-pulse 2.4s ease-in-out infinite}@keyframes schedule-now-dot-pulse{0%,to{opacity:.96;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}.schedule-now-row-tag{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;background:linear-gradient(135deg,#1d4ed8,#2563eb 55%,#60a5fa);color:#fff;font-size:.66rem;font-weight:900;letter-spacing:.1em;box-shadow:0 8px 18px #2563eb42;white-space:nowrap}.cse-row{display:flex;align-items:flex-start;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem}.cse-row-active-now,.sse-row-active-now{border-color:#3b82f6;background:linear-gradient(180deg,#fff,#eff6ff 56%,#dbeafe);box-shadow:0 0 0 3px #3b82f638,0 16px 34px #2563eb29}.cse-row-active-now .cse-start-time,.sse-row-active-now .sse-start-time{color:#1d4ed8}.cse-row-active-now .cse-entry-name,.sse-row-active-now .sse-entry-name{color:#0f2f7a}.cse-time-col{display:flex;flex-direction:column;align-items:flex-end;min-width:80px;flex-shrink:0;gap:.1rem}.cse-time-label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:.2rem}.cse-time-label:first-child{margin-top:0}.cse-start-time{font-size:1rem;font-weight:700;color:var(--navy)}.cse-end-time{font-size:.85rem;font-weight:500;color:var(--text-muted)}.cse-info-col{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.cse-event-name{font-weight:600;font-size:.95rem;color:var(--text)}.cse-room{font-size:.8rem;color:var(--text-muted)}.cse-notes{font-size:.78rem;color:var(--text-muted);font-style:italic}.cse-entry-footer{display:flex;justify-content:flex-start;margin-top:.35rem}.cse-edit-form{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;background:var(--navy-pale);border-left-width:4px}.cse-edit-row{display:flex;gap:.75rem;align-items:flex-start}.cse-edit-input{font-family:var(--font);font-size:.82rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%}.cse-edit-input:focus{outline:none;border-color:var(--navy-light)}.cse-edit-actions{display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}.cse-row-actions{display:flex;align-items:flex-start;flex-shrink:0}.cse-entry-edit{margin-left:-.25rem}.cse-day-header{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);background:var(--navy-pale);border-radius:var(--radius-sm);padding:.3rem .75rem;margin:.75rem 0 .35rem}.cse-day-header:first-child{margin-top:0}.cse-entry-header,.sse-entry-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.cse-entry-name,.sse-entry-name{font-weight:600;font-size:.95rem;color:var(--text)}.cse-event-sub,.sse-event-sub{font-size:.75rem;color:var(--text-muted)}.cse-type-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.68rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.cse-type-contest,.sse-type-contest{border-left:4px solid #3949ab}.cse-type-turnin,.sse-type-turnin{border-left:4px solid #d97706}.cse-type-pickup,.sse-type-pickup{border-left:4px solid #16a34a}.cse-type-timewindow,.sse-type-timewindow{border-left:4px solid #7c3aed}.cse-type-semifinal,.sse-type-semifinal{border-left:4px solid #ca8a04}.cse-type-session,.sse-type-session{border-left:4px solid #0891b2}.cse-type-test,.sse-type-test{border-left:4px solid #75B8C8}.cse-type-report,.sse-type-report{border-left:4px solid #0f766e}.cse-type-advisor,.sse-type-advisor{border-left:4px solid #111827}.cse-type-misc,.sse-type-misc{border-left:4px solid #64748b}.cse-type-badge-contest{background:#e8eaf6;color:#3949ab}.cse-type-badge-turnin{background:#fef3c7;color:#92400e}.cse-type-badge-pickup{background:#dcfce7;color:#15803d}.cse-type-badge-timewindow{background:#ede9fe;color:#6d28d9}.cse-type-badge-semifinal{background:#fefce8;color:#a16207}.cse-type-badge-session{background:#cffafe;color:#0e7490}.cse-type-badge-test{background:#e4f5f8;color:#2d6f7f}.cse-type-badge-report{background:#ccfbf1;color:#0f766e}.cse-type-badge-advisor{background:#e5e7eb;color:#111827}.cse-type-badge-misc{background:#f1f5f9;color:#475569}.checklist-grid-wrap{overflow-x:auto;margin-top:.75rem;border-radius:var(--radius-sm);border:1px solid var(--border)}.checklist-table{border-collapse:collapse;width:100%;min-width:500px;background:var(--surface);font-size:.85rem}.checklist-table thead{background:var(--navy-pale)}.checklist-table th{padding:.55rem .75rem;text-align:center;font-weight:600;font-size:.78rem;color:var(--navy);border-bottom:2px solid var(--border);white-space:nowrap}.checklist-name-col{text-align:left!important;min-width:140px}.checklist-field-col{min-width:100px}.checklist-summary-col{min-width:60px}.checklist-field-header{display:flex;align-items:center;justify-content:center;gap:.3rem}.checklist-del-field{font-size:.65rem;color:var(--text-muted);opacity:.5;padding:0;background:none;border:none;line-height:1;cursor:pointer}.checklist-del-field:hover{opacity:1;color:var(--danger)}.checklist-table td{border-bottom:1px solid var(--border);padding:0}.checklist-student-cell{display:flex!important;align-items:center;gap:.45rem;padding:.5rem .75rem!important;font-weight:500;font-size:.85rem}.checklist-cell{text-align:center;cursor:pointer;font-size:1rem;height:44px;transition:background .12s;-webkit-user-select:none;user-select:none}.checklist-checked{background:#dcfce7;color:#16a34a;font-weight:700}.checklist-unchecked{background:var(--surface);color:transparent}.checklist-unchecked:hover{background:var(--surface-alt)}.checklist-row-complete{background:#f0fdf4}.checklist-row-complete .checklist-student-cell{color:var(--success)}.checklist-summary-cell{text-align:center;font-size:.78rem;font-weight:600;color:var(--text-muted);padding:0 .5rem}.summary-done{color:var(--success)!important}.checklist-mobile-list{margin-top:.75rem}.checklist-mobile-toolbar{display:flex;flex-direction:column;gap:.75rem}.checklist-mobile-picker{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--navy)}.checklist-mobile-picker select{width:100%}.checklist-mobile-remove{align-self:flex-start}.checklist-mobile-cards{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.checklist-mobile-card{display:flex;flex-direction:column;gap:.75rem}.checklist-mobile-card-complete{background:#f0fdf4}.checklist-mobile-student-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.checklist-mobile-student{display:flex;align-items:center;gap:.45rem;min-width:0;flex-wrap:wrap;font-weight:500}.checklist-mobile-summary{flex-shrink:0;font-size:.78rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.checklist-mobile-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.checklist-mobile-toggle span{min-width:0;text-align:left;overflow-wrap:anywhere}.checklist-mobile-toggle strong{white-space:nowrap;flex-shrink:0}.checklist-mobile-toggle-checked{background:#dcfce7;border-color:#86efac;color:#166534}.checklist-mobile-toggle-unchecked:hover,html[data-theme=dark] .checklist-table thead{background:var(--surface-alt)}html[data-theme=dark] .checklist-table th{color:var(--navy-dark)}html[data-theme=dark] .checklist-checked{background:#22c55e2e;color:#86efac}html[data-theme=dark] .checklist-row-complete,html[data-theme=dark] .checklist-mobile-card-complete{background:#22c55e1a}html[data-theme=dark] .checklist-mobile-toggle-checked{background:#22c55e29;border-color:#4ade8073;color:#bbf7d0}.contest-day-student{display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.contest-day-card{padding:1.25rem}.contest-day-header{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.contest-day-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.contest-day-name{font-size:1.1rem;font-weight:700;color:var(--navy);margin:0}.contest-day-print-btn{flex-shrink:0;font-size:1rem;padding:.35rem .5rem}.contest-day-print-btn:disabled{opacity:.45;cursor:not-allowed}.contest-day-date,.contest-day-location{font-size:.82rem;color:var(--text-muted)}.student-schedule-list{display:flex;flex-direction:column;gap:.5rem}.sse-row{display:flex;align-items:flex-start;gap:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem}.sse-time-col{display:flex;flex-direction:column;align-items:flex-end;min-width:80px;flex-shrink:0;gap:.1rem}.sse-start-time{font-size:1rem;font-weight:700;color:var(--navy)}.sse-end-time{font-size:.85rem;font-weight:500;color:var(--text-muted)}.sse-info-col{display:flex;flex-direction:column;gap:.2rem;flex:1}.sse-event-name{font-weight:600;font-size:.95rem;color:var(--text)}.sse-room{font-size:.8rem;color:var(--text-muted)}.sse-notes{font-size:.78rem;color:var(--text-muted);font-style:italic}.rubric-builder{display:flex;flex-direction:column;gap:1rem;padding:1rem 0}.rubric-builder-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.rubric-builder-title{display:flex;flex-direction:column;line-height:1.2}.rubric-builder-title h1{margin:0;font-size:1.35rem}.rubric-builder-event{font-size:.85rem;color:var(--text-muted)}.rubric-builder-header-right{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.rubric-builder-totals{display:flex;gap:.4rem;flex-wrap:wrap}.rubric-total-pill{background:var(--accent-soft, #e8f0fe);color:var(--accent, #1a73e8);border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:600}.rubric-total-penalty{background:var(--rubric-danger-soft);color:var(--rubric-danger-text)}.rubric-builder-body{display:flex;flex-direction:column;gap:1rem}.rubric-builder-footer{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.rubric-paste-card{padding:1rem;display:flex;flex-direction:column;gap:.6rem}.rubric-paste-toggle{display:inline-flex;align-items:center;gap:.45rem;font-size:.84rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.rubric-csv-card{padding:1rem;display:flex;flex-direction:column;gap:.75rem}.rubric-csv-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.rubric-csv-subtitle{margin-top:.2rem;font-size:.85rem}.rubric-csv-template-link{margin-top:0}.rubric-csv-field{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--navy)}.rubric-csv-field input[type=file]{width:100%;padding:.55rem .6rem;border:1px solid var(--border, #d0d7de);border-radius:8px;font-size:.85rem;background:var(--surface);color:var(--text)}.rubric-csv-columns{display:flex;flex-direction:column;gap:.3rem}.rubric-csv-columns code{display:block;padding:.6rem .7rem;border:1px solid var(--border, #d0d7de);border-radius:8px;background:var(--bg);color:var(--text);font-size:.78rem;overflow-wrap:anywhere}.rubric-csv-replace-toggle{display:inline-flex;align-items:center;gap:.45rem;font-size:.84rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.rubric-csv-preview{padding:.7rem .85rem;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent-soft) 82%,var(--surface));color:var(--accent);font-size:.85rem}.rubric-csv-errors{padding:.75rem .85rem;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--danger-bg) 85%,var(--surface));color:var(--danger);font-size:.84rem}.rubric-csv-errors ul{margin:.5rem 0 0 1rem}.rubric-csv-message{font-size:.84rem;color:var(--success)}.rubric-paste-textarea{width:100%;font-family:inherit;font-size:.85rem;padding:.5rem;border-radius:6px;border:1px solid var(--border, #d0d7de);resize:vertical}.rubric-section-card{background:var(--surface, #fff);border:1px solid var(--border, #d0d7de);border-radius:10px;overflow:hidden}.rubric-section-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .8rem;background:var(--surface-alt, #f6f8fa);border-bottom:1px solid var(--border, #d0d7de)}.rubric-section-name-wrap{display:flex;align-items:center;gap:.5rem;flex:1 1 260px;min-width:200px}.rubric-section-name-input{flex:1;font-weight:600;font-size:1rem;background:transparent;border:1px solid transparent;border-radius:4px;padding:.25rem .45rem}.rubric-section-name-input:focus{background:var(--surface);border-color:var(--accent, #1a73e8);outline:none}.rubric-section-calc{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.rubric-section-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.rubric-section-meta-field{display:flex;flex-direction:column;font-size:.7rem;color:var(--text-muted);gap:.15rem}.rubric-section-meta-field input{width:70px;padding:.22rem .4rem;border:1px solid var(--border, #d0d7de);border-radius:4px;font-size:.8rem}.rubric-section-criteria{display:flex;flex-direction:column;gap:.6rem;padding:.75rem}.rubric-add-criterion-btn{align-self:flex-start}.rubric-crit-card{border:1px solid var(--border, #d0d7de);border-radius:8px;padding:.7rem;display:flex;flex-direction:column;gap:.55rem;background:var(--surface)}.rubric-crit-penalty{border-color:var(--rubric-penalty-border);background:var(--rubric-penalty-bg)}.rubric-crit-top{display:flex;gap:.5rem;align-items:center}.rubric-crit-reorder{display:flex;flex-direction:column;gap:1px;flex-shrink:0}.rubric-reorder-btn{font-size:.6rem;line-height:1;padding:2px 5px;color:var(--text-muted);opacity:.6;transition:opacity .15s}.rubric-reorder-btn:hover:not(:disabled){opacity:1;color:var(--accent, #1a73e8)}.rubric-reorder-btn:disabled{opacity:.2;cursor:default}.rubric-crit-label-input{flex:1;font-weight:600;font-size:.95rem;padding:.35rem .5rem;border:1px solid transparent;border-radius:4px;background:transparent}.rubric-crit-label-input:focus{border-color:var(--accent, #1a73e8);background:var(--surface);outline:none}.rubric-crit-delete{flex-shrink:0}.rubric-crit-meta{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.rubric-crit-meta-field{display:flex;flex-direction:column;font-size:.7rem;color:var(--text-muted);gap:.15rem}.rubric-crit-meta-field input{width:70px;padding:.22rem .4rem;border:1px solid var(--border, #d0d7de);border-radius:4px;font-size:.8rem}.rubric-crit-calc{font-size:.78rem;color:var(--text-muted);margin-left:auto}.rubric-crit-penalty-toggle{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;cursor:pointer}.rubric-crit-penalty-note{width:100%;padding:.4rem .5rem;border:1px solid var(--border, #d0d7de);border-radius:4px;font-size:.85rem}.rubric-crit-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.rubric-crit-level-col{display:flex;flex-direction:column;gap:.3rem;background:var(--surface-alt, #f6f8fa);border:1px solid var(--border, #d0d7de);border-radius:6px;padding:.5rem}.rubric-crit-level-col.rubric-level-min{background:var(--rubric-level-min-bg);border-color:var(--rubric-level-min-border)}.rubric-crit-level-col.rubric-level-adq{background:var(--rubric-level-adq-bg);border-color:var(--rubric-level-adq-border)}.rubric-crit-level-col.rubric-level-exp{background:var(--rubric-level-exp-bg);border-color:var(--rubric-level-exp-border)}.rubric-crit-level-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.rubric-crit-level-name{font-weight:600;font-size:.8rem}.rubric-crit-level-range{width:60px;padding:.15rem .35rem;border:1px solid var(--border, #d0d7de);border-radius:4px;font-size:.72rem;text-align:center}.rubric-crit-level-desc{width:100%;min-height:70px;padding:.4rem .5rem;border:1px solid var(--border, #d0d7de);border-radius:4px;font-size:.82rem;font-family:inherit;resize:vertical;background:var(--rubric-level-input-bg)}.judge-penalties-card{border:2px solid var(--rubric-penalty-border);background:color-mix(in srgb,var(--rubric-penalty-bg) 82%,var(--surface));padding:1rem;display:flex;flex-direction:column;gap:.75rem}.judge-penalties-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.judge-penalties-title{margin:0 0 .2rem;font-size:1rem}.judge-penalties-subtitle{margin:0;font-size:.8rem;color:var(--text-muted)}.judge-penalties-total{white-space:nowrap;flex-shrink:0}.judge-penalties-list{display:flex;flex-direction:column;gap:.35rem}.judge-penalty-row{display:flex;align-items:center;gap:.6rem;background:var(--rubric-danger-soft);border:1px solid var(--rubric-penalty-border);border-radius:6px;padding:.4rem .6rem}.judge-penalty-amount{font-weight:700;color:var(--rubric-danger-text);white-space:nowrap;min-width:54px}.judge-penalty-reason{flex:1;font-size:.88rem}.judge-penalties-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.judge-penalty-amount-input{width:72px;padding:.4rem .5rem;border:1px solid var(--border, #d0d7de);border-radius:6px;font-size:.9rem;text-align:center}.judge-penalty-reason-input{flex:1;min-width:180px;padding:.4rem .6rem;border:1px solid var(--border, #d0d7de);border-radius:6px;font-size:.9rem}@media (max-width: 600px){.main-content{padding:1rem .85rem}.page-title{font-size:1.25rem}.pwa-update-button{right:.85rem;bottom:.85rem;left:.85rem;width:auto}.bug-reports-layout{grid-template-columns:1fr}.bug-report-list{max-height:none}.bug-report-detail-header,.bug-report-list-header{flex-direction:column;align-items:flex-start}.bug-status-select{width:100%;min-width:0}.events-grid,.my-teams-grid,.users-grid{grid-template-columns:1fr}.team-detail-header{gap:.5rem}.team-detail-title h1{font-size:1.15rem}.section-header{flex-direction:column;align-items:flex-start}.roster-section-header{flex-direction:row;align-items:center}.cal-cell{min-height:52px}.cal-day-header{font-size:.6rem}.modal-form-row{flex-direction:column;gap:.5rem}.cse-time-col,.sse-time-col{min-width:68px}.rubric-crit-levels{grid-template-columns:1fr}.rubric-section-bar{flex-direction:column;align-items:stretch}.team-row{align-items:flex-start}.team-row-members{flex:1 1 100%;min-width:0;white-space:normal;overflow:visible;text-overflow:clip}.team-row-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.user-card-actions-row{flex-wrap:nowrap}.user-card-actions-row>.btn-small{flex:1 1 0;min-width:0;justify-content:center;padding:.32rem .35rem;font-size:.69rem}.checklist-add-form{flex-direction:column!important;align-items:stretch!important}.checklist-mobile-student-row{flex-direction:column}.checklist-mobile-summary{align-self:flex-start}.checklist-mobile-toggle{padding:.75rem .8rem}}.season-rollover-modal{max-width:42rem}.season-rollover-body{display:flex;flex-direction:column;gap:.9rem}.season-rollover-summary{display:grid;gap:.5rem;padding:.85rem 1rem;border:1px solid var(--border-color, #d9e2ec);border-radius:.9rem;background:var(--surface-2, rgba(15, 23, 42, .03))}.season-rollover-summary-row{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem}.season-rollover-options{display:grid;gap:.65rem}.season-rollover-option{display:flex;align-items:center;gap:.65rem;font-size:.92rem}.season-rollover-option-disabled,.season-rollover-option-locked{opacity:.62}.season-rollover-warning{display:flex;flex-direction:column;gap:.55rem;padding:.9rem 1rem;border-radius:.9rem;border:1px solid rgba(180,83,9,.28);background:linear-gradient(135deg,#fff7edf2,#ffedd5eb)}.season-rollover-warning strong{color:#9a3412}.season-rollover-warning p{margin:0;color:#7c2d12;font-size:.9rem;line-height:1.45}.role-badge-alumni{background:#f1ede3;color:#7a5312}.archives-page{display:flex;flex-direction:column;gap:1rem}.archives-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:end}.archives-toolbar-copy h2{margin:0}.archives-season-picker{display:flex;flex-direction:column;gap:.35rem;min-width:13rem}.archives-season-header{display:flex;justify-content:space-between;gap:1rem;align-items:center}.archives-season-header h3{margin:0 0 .2rem}.archives-overview,.archives-contest-list{display:flex;flex-direction:column;gap:1rem}.archives-stat-grid,.archives-overview-grid,.archives-team-grid{display:grid;gap:1rem}.archives-stat-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.archives-overview-grid,.archives-team-grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}.archives-stat-card,.archives-overview-card,.archives-team-card,.archives-contest-card{padding:1rem}.archives-stat-label{display:block;font-size:.82rem;color:var(--text-muted, #64748b);margin-bottom:.35rem}.archives-stat-value{font-size:1.8rem;line-height:1}.archives-mini-list{display:flex;flex-direction:column;gap:.75rem}.archives-mini-row{display:flex;flex-direction:column;gap:.18rem}.archives-team-card,.archives-contest-card{display:flex;flex-direction:column;gap:.75rem}.archives-team-card-top,.archives-contest-header{display:flex;justify-content:space-between;gap:1rem;align-items:start}.archives-team-card-top h3,.archives-contest-header h3{margin:0 0 .15rem}.archives-team-meta,.archives-team-contests span,.archives-contest-stats,.archives-result-score,.archives-result-event{color:var(--text-muted, #64748b);font-size:.9rem}.archives-badge-row{display:flex;flex-wrap:wrap;gap:.45rem}.archives-badge-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .55rem;border-radius:999px;background:#0f172a0f;font-size:.82rem}.archives-team-contests{display:flex;flex-direction:column;gap:.2rem}.archives-contest-stats{display:flex;flex-direction:column;gap:.2rem;text-align:right}.archives-results-table{display:flex;flex-direction:column;gap:.5rem}.archives-result-row{display:grid;grid-template-columns:4rem minmax(0,1.2fr) minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.7rem .8rem;border-radius:.8rem;background:#0f172a0a}.archives-result-place{font-weight:700}.archives-result-team{font-weight:600}@media (max-width: 760px){.archives-toolbar,.archives-season-header,.archives-team-card-top,.archives-contest-header{flex-direction:column;align-items:stretch}.archives-season-picker{min-width:0}.archives-contest-stats{text-align:left}.archives-result-row{grid-template-columns:1fr;gap:.25rem}}.student-permissions-card{display:flex;flex-direction:column;gap:.55rem;padding:.85rem .95rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt)}.student-permissions-title{margin:0;font-size:.86rem;font-weight:700;color:var(--navy)}.student-permissions-hint{margin:0;font-size:.76rem;color:var(--text-muted);line-height:1.45}.student-permission-row{display:flex;align-items:flex-start;gap:.55rem;padding:.4rem 0;border-top:1px solid var(--border);cursor:pointer}.student-permission-row input[type=checkbox]{margin-top:.2rem;flex-shrink:0}.student-permission-text{display:flex;flex-direction:column;gap:.15rem}.student-permission-label{font-size:.84rem;font-weight:600;color:var(--text)}.student-permission-desc{font-size:.75rem;color:var(--text-muted);line-height:1.45}.btn-compact{padding:.3rem .7rem;font-size:.78rem}.officers-tab{display:flex;flex-direction:column;gap:1.25rem}.officers-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:0}.officers-hint{font-size:.83rem;color:var(--text-muted);margin-bottom:.5rem}.officers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.officer-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:1.1rem 1rem}.officer-card-vacant{border-style:dashed;box-shadow:none}.officer-role-icon{width:1.05em;height:1.05em;flex:none;vertical-align:-.15em}.officer-card-icon{width:34px;height:34px;padding:7px;box-sizing:border-box;border-radius:50%;background:var(--navy-pale);color:var(--navy)}.officer-card-vacant .officer-card-icon{background:transparent;color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border)}.officer-role-name{display:flex;align-items:center;gap:.4rem}.officer-role-name .officer-role-icon{color:var(--navy)}.officer-card-role{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}.officer-card-name{font-size:1.02rem;font-weight:700;line-height:1.25}.officer-card-name-vacant{color:var(--text-muted);font-weight:600}.officer-card-votes{font-size:.75rem;color:var(--text-muted)}.officer-card-desc{font-size:.78rem;color:var(--text-muted);line-height:1.45}.officer-card-admin{width:100%;display:flex;flex-direction:column;gap:.5rem;margin-top:.35rem;padding-top:.75rem;border-top:1px solid var(--border)}.officer-card-admin-row{justify-content:center}.officer-photo-btn{display:inline-flex;align-items:center;cursor:pointer}.officer-avatar{border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--navy-pale)}.officer-avatar-sm{width:28px;height:28px}.officer-avatar-md{width:44px;height:44px}.officer-avatar-lg{width:78px;height:78px}.officer-avatar-initials{display:inline-flex;align-items:center;justify-content:center;color:var(--navy);font-weight:800;border:2px solid var(--border)}.officer-avatar-sm.officer-avatar-initials{font-size:.68rem}.officer-avatar-lg.officer-avatar-initials{font-size:1.5rem}.officer-avatar-empty{background:var(--surface-alt);color:var(--text-muted)}.officer-method-badge{font-size:.65rem;font-weight:700;padding:.15rem .55rem;border-radius:20px;text-transform:uppercase;letter-spacing:.06em}.officer-method-elected{background:var(--gold);color:var(--navy-dark)}.officer-method-appointed{background:var(--navy-pale);color:var(--navy)}.officers-panel{display:flex;flex-direction:column;gap:.9rem}.officers-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.officers-panel-title{font-size:1.05rem;font-weight:700;color:var(--navy)}.officers-panel-sub{font-size:.8rem;color:var(--text-muted);line-height:1.5}.officers-panel-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.officer-status-pill{font-size:.7rem;font-weight:700;padding:.25rem .7rem;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.officer-status-draft{background:var(--surface-alt);color:var(--text-muted)}.officer-status-open{background:var(--gold);color:var(--navy-dark)}.officer-status-closed{background:var(--navy-pale);color:var(--navy)}.officer-status-published{background:var(--accent-soft);color:var(--accent)}.officer-role-list{display:flex;flex-direction:column;gap:.4rem}.officer-role-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);flex-wrap:wrap}.officer-role-reorder{display:flex;flex-direction:column;gap:2px}.officer-reorder-btn{width:22px;height:18px;line-height:1;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text-muted);font-size:.7rem}.officer-reorder-btn:hover:not(:disabled){background:var(--navy-pale);color:var(--navy)}.officer-reorder-btn:disabled{opacity:.35;cursor:not-allowed}.officer-role-text{flex:1;min-width:180px;display:flex;flex-direction:column;gap:.15rem}.officer-role-name{font-weight:700;font-size:.92rem}.officer-role-desc{font-size:.76rem;color:var(--text-muted);line-height:1.45}.officer-role-edit{flex:1;display:flex;flex-direction:column;gap:.5rem}.officer-role-add{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;padding-top:.75rem;border-top:1px solid var(--border)}.officer-role-add .officer-input{flex:1;min-width:160px}.officer-input{padding:.45rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;width:100%}.officer-textarea{resize:vertical;line-height:1.45}.officer-select{flex:1;min-width:140px;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem}.officer-candidate-manager{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem}.officer-candidate-block{display:flex;flex-direction:column;gap:.55rem;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt)}.officer-candidate-role{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-weight:700;font-size:.88rem;color:var(--navy)}.officer-candidate-count{font-size:.7rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.officer-candidate-empty{font-size:.78rem;color:var(--text-muted);font-style:italic}.officer-candidate-list{list-style:none;display:flex;flex-direction:column;gap:.3rem}.officer-candidate-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.officer-candidate-won{border-color:var(--gold);background:var(--gold-light)}.officer-candidate-name{flex:1;font-size:.85rem;font-weight:600;min-width:0;overflow-wrap:anywhere}.officer-candidate-tally{font-size:.76rem;font-weight:700;color:var(--text-muted);white-space:nowrap}.officer-appoint-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.officer-winner-row{display:flex;flex-direction:column;gap:.3rem;padding-top:.5rem;border-top:1px dashed var(--border)}.officer-winner-label{display:flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.officer-tie-flag{text-transform:none;letter-spacing:0;font-size:.7rem;font-weight:700;color:var(--danger);background:var(--danger-bg);padding:.1rem .45rem;border-radius:20px}.officer-turnout{display:flex;flex-direction:column;gap:.4rem;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt)}.officer-turnout-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.85rem;flex-wrap:wrap}.officer-turnout-bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.officer-turnout-fill{height:100%;background:var(--gold);transition:width .25s ease}.officer-turnout-missing,.officer-turnout-note{font-size:.75rem;color:var(--text-muted);line-height:1.45}.officer-ballot{display:flex;flex-direction:column;gap:.85rem}.officer-ballot-role{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem;display:flex;flex-direction:column;gap:.4rem;background:var(--surface-alt)}.officer-ballot-legend{font-weight:700;font-size:.9rem;color:var(--navy);padding:0 .3rem}.officer-ballot-desc{font-size:.76rem;color:var(--text-muted);line-height:1.45}.officer-ballot-option{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.officer-ballot-option:hover{border-color:var(--navy-light)}.officer-ballot-option-picked{border-color:var(--navy);background:var(--navy-pale)}.officer-ballot-option input{cursor:pointer}.officer-ballot-clear{align-self:flex-start}.officer-ballot-saved{font-size:.83rem;font-weight:700;color:var(--success)}@media (max-width: 600px){.officers-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.officer-candidate-manager{grid-template-columns:1fr}}
