:root{--ink:#241538;--muted:#7c718d;--line:#e9e3ef;--purple:#9900ed;--violet:#7130ce;--lavender:#f6f1fb;--gradient:linear-gradient(112deg,#b900ef 0%,#9a06ee 40%,#752cdb 78%,#6034ca 100%);--font:'Exo 2','Inter',system-ui,sans-serif}*{box-sizing:border-box}html{font-size:14px;scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse 850px 310px at 80% -80px,#e8d3fe 0%,transparent 72%),#f9f7fc;color:var(--ink);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,tr:focus-visible{outline:3px solid #bd91ff;outline-offset:2px}button,select{-webkit-tap-highlight-color:transparent}svg{vertical-align:middle}
.site-header{background:#fff;box-shadow:0 1px 0 #e9e2f0;position:relative;z-index:6}.header-inner{max-width:1770px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:17px 40px;min-height:83px}.identity{display:flex;gap:13px;align-items:center}.brand-mark{width:46px;height:46px;display:flex;justify-content:center;align-items:center;color:#fff;background:var(--gradient);font:900 17px var(--font);border-radius:14px;box-shadow:0 7px 20px #8900e72c}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font:800 16px var(--font);letter-spacing:.055em}.brand-copy small{color:#9986ac;font-size:10px;font-weight:800;letter-spacing:.15em}.header-actions{display:flex;align-items:center;gap:14px}.header-caption{font-size:12px;font-weight:600;color:#857495}.mode-dot{height:7px;width:7px;background:#16b883;border-radius:50%;box-shadow:0 0 0 3px #dff9ef}.settings-holder{position:relative}.settings-trigger{height:42px;width:42px;background:#fff;color:#6f4f91;border:1px solid #e6deef;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:.18s}.settings-trigger:hover,.settings-trigger[aria-expanded="true"]{background:#f5ecfe;color:#911fe0;border-color:#cfafe7;transform:rotate(20deg)}.settings-menu{position:absolute;right:0;top:52px;width:290px;background:#fff;border:1px solid #ebe2f4;box-shadow:0 18px 48px #42245b29;padding:17px;border-radius:16px;z-index:15}.settings-menu[hidden]{display:none}.settings-guest{font:800 15px var(--font)}.settings-description{color:#81758f;font-size:12px;line-height:1.6;margin:8px 0 16px}.settings-menu .btn{width:100%}.settings-account{display:flex;align-items:center;gap:10px;margin-bottom:11px}.settings-account strong,.settings-account small{display:block}.settings-account strong{font-size:13px}.settings-account small{font-size:11px;color:#93869c;margin-top:4px}.mini-avatar{display:grid;place-items:center;background:#f0e0ff;color:#8f0adb;width:37px;height:37px;border-radius:12px;font-weight:800}.settings-link{width:100%;border:1px solid #eadff3;background:#fff;border-radius:9px;padding:11px;color:#665577;text-align:left;font-size:12px;font-weight:700}.settings-link:hover{background:#f7f0fb}
.page-content{max-width:1770px;margin:0 auto;padding:40px 40px 25px}.roster-frame{background:white;border:1px solid #e8ddf0;border-radius:22px;box-shadow:0 18px 65px rgba(60,32,91,.075);overflow:hidden}.sheet-banner{min-height:166px;padding:30px 42px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;color:#fff;background:var(--gradient)}.sheet-banner:after{content:'';position:absolute;width:400px;height:400px;border:1px solid #fff2;border-radius:50%;right:170px;top:-250px;box-shadow:0 0 0 55px #ffffff09,0 0 0 115px #ffffff09;pointer-events:none}.banner-glow{position:absolute;width:300px;height:260px;right:-100px;bottom:-155px;border-radius:50%;background:#ff8aea45;filter:blur(50px);pointer-events:none}.banner-content,.banner-count{position:relative;z-index:1}.banner-eyebrow{color:#edceff;font-size:10px;font-weight:800;letter-spacing:.19em;text-transform:uppercase;margin-bottom:13px}.sheet-banner h1{font:800 clamp(24px,3vw,35px)/1.2 var(--font);margin:0 0 8px;letter-spacing:-.02em}.sheet-banner h1 span{font-weight:500}.title-pipe{font-style:normal;opacity:.65;font-weight:400;margin:0 2px}.sheet-banner p{color:#f1dafe;margin:0;font-size:12px;letter-spacing:.01em}.banner-count{text-align:right;border:1px solid #ffffff45;background:#ffffff15;border-radius:16px;padding:16px 20px;min-width:135px;backdrop-filter:blur(8px)}.banner-count span{display:block;font:800 31px/1 var(--font)}.banner-count small{display:block;font-size:9px;letter-spacing:.12em;margin-top:7px;color:#f4dfff;font-weight:800}.sheet-controls{min-height:77px;padding:16px 25px;display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid #f0ebf4}.find-control{display:flex;align-items:center;gap:10px;width:min(380px,100%);padding:0 13px;height:40px;border:1px solid #e7ddec;border-radius:11px;color:#9b7bb5;background:#fcfafd}.find-control:focus-within{border-color:#aa77e4;box-shadow:0 0 0 3px #f3e8fc}.find-control input{width:100%;outline:none;border:0;background:transparent;font-size:12px;color:#342446}.find-control input::placeholder{color:#a69aac}.filter-control{height:40px;max-width:178px;background:#fff;border:1px solid #e8dfef;border-radius:10px;padding:0 14px;font-size:12px;font-weight:600;color:#6f5d82}.controls-spacer{flex:1}.controls-caption{font:700 12px var(--font);color:#735987}.readonly-indicator,.editor-indicator{font-size:11px;font-weight:800;display:inline-flex;align-items:center;gap:7px;color:#8c769d}.editor-indicator{color:#27896b}.view-status{display:flex;align-items:center;gap:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e6daf0;background:#fff;color:#543e6a;border-radius:9px;padding:10px 13px;font-weight:800;font-size:11px;min-height:37px;white-space:nowrap}.btn.outline:hover{background:#f7ebff;border-color:#caa5ec;color:#8715d1}.btn.purple,.btn.primary{background:var(--gradient);color:#fff;border:0;box-shadow:0 5px 16px #840ed338}.btn.purple:hover,.btn.primary:hover{filter:brightness(1.09)}.btn.small{padding:7px 9px;min-height:30px}.btn.danger{color:#cb2e55;border-color:#f1d2db}
.sheet-surface{min-width:0}.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#cbb8df #f7f2fa;scrollbar-width:thin}.table-scroll::-webkit-scrollbar{height:10px}.table-scroll::-webkit-scrollbar-track{background:#f5effa}.table-scroll::-webkit-scrollbar-thumb{background:#cbb6df;border:2px solid #f5effa;border-radius:30px}.sheet-table{table-layout:fixed;border-spacing:0;border-collapse:separate;width:max-content;min-width:100%;font-family:var(--font)}.sheet-table th{height:59px;background:linear-gradient(135deg,#a407f1,#8b1ee2);text-align:center;padding:8px 10px;border-right:1px solid #ffffff48;border-bottom:1px solid #ffffff33;color:#fff;font-size:11px;font-weight:800;line-height:1.22;white-space:normal}.sheet-table th:first-child{position:sticky;left:0;z-index:5;box-shadow:4px 0 7px #370c6b12;background:linear-gradient(135deg,#bb05f7,#950bdc)}.sheet-table th:last-child{border-right:0}.sheet-table td{height:43px;padding:9px 8px;text-align:center;background:#e7e5eb;color:#61596d;border-bottom:1.5px solid #fff;border-right:1.5px solid #fff;vertical-align:middle;font-size:11px;white-space:nowrap;max-width:0;overflow:hidden;text-overflow:ellipsis}.sheet-table tr:nth-child(even) td:not(.callsign-column){background:#dfdde6}.sheet-table tbody .staff-row:hover td:not(.callsign-column){background:#f0e9f8}.sheet-table .callsign-column{font-weight:800;color:white;background:linear-gradient(120deg,#b208f0,#8922de)!important;position:sticky;left:0;z-index:2;box-shadow:4px 0 7px #370c6b0d}.callsign-text{font-weight:700;font-size:11px}.sign-divider{opacity:.7;margin:0 2px}.staff-name{font-weight:700;color:#2f2541}.dash{color:#aba5b6;font-weight:400}.status{display:inline-block;color:#776985;border-radius:6px;padding:5px 10px;background:#f1edf5;font-size:10px;font-weight:700}.status-active{background:#d6f5e9;color:#137857}.status-loa{background:#fff4cf;color:#956e00}.status-suspended{background:#ffe0e5;color:#b23e57}.status-resigned,.status-inactive{background:#ededf0;color:#777}.tick{display:inline-flex;align-items:center;justify-content:center;height:16px;width:16px;border:1px solid #bcb7c6;border-radius:4px;background:#fbfafc;color:transparent;font-size:13px}.tick.yes{background:#9625da;border-color:#9625da;color:white}.notes-preview{display:block;overflow:hidden;text-overflow:ellipsis}.sheet-gap td{height:12px!important;padding:0!important;border:0!important;background:#fff!important}.manager-separator td{height:40px!important;background:#fbf8fd!important;padding:5px 15px!important;max-width:none!important;text-align:left!important;border:0!important}.manager-line{display:flex;gap:10px;align-items:center;color:#6c5283}.manager-line strong{font-size:11px}.manager-line>span{font-size:10px;color:#a18eaf}.rank-tools{display:flex;gap:5px;margin-left:auto}.rank-tools button{border:1px solid #e7daf1;border-radius:6px;background:white;font-weight:700;color:#775393;font:700 10px var(--font);padding:5px 8px}.rank-tools button:hover{background:#f4e3ff;border-color:#b98adf}.rank-tools .delete-rank{color:#b93d66}.staff-row.can-edit{cursor:pointer}.staff-row.can-edit:hover .callsign-column{filter:brightness(1.13)}.staff-row.can-edit td:nth-child(2) strong:after{content:' ✎';font-size:11px;color:#9222c6;opacity:0}.staff-row.can-edit:hover td:nth-child(2) strong:after{opacity:1}.no-rows td{padding:45px!important;background:#fff!important;color:#8a799c!important;max-width:none!important}.table-foot{padding:12px 20px;border-top:1px solid #eee6f3;background:#fcfafd;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:10px;color:#9685a6}.table-foot b{color:#74488b}.sheet-tabs{display:flex;gap:5px;align-items:center;padding:10px 16px;background:#faf7fd;border-top:1px solid #ece2f4;min-height:58px}.sheet-tab{padding:10px 16px;font:700 12px var(--font);color:#8a7a99;border:1px solid transparent;border-radius:10px;background:transparent}.sheet-tab:hover{background:#f2eafa;color:#7633a8}.sheet-tab.active{background:white;color:#8310d4;border-color:#e8d8f4;box-shadow:0 3px 11px #643e8d0b}.tab-grid{font-size:15px;margin-right:5px}.tabs-spacer{flex:1}.sheet-footnote{font-size:10px;color:#a18faf;font-weight:700;margin-right:5px}.page-footer{text-align:center;padding:23px 0 8px;font-size:10px;color:#a295ad}.page-footer span{color:#c3b9cd;padding:0 6px}.blacklist-table{min-width:100%;width:100%}.blacklist-table .blacklist-name{color:white;background:linear-gradient(120deg,#b208f0,#8922de)!important;font-weight:700;position:sticky;left:0;z-index:2}.blacklist-table td.reason{white-space:normal;line-height:1.5;text-align:left}.audit-table{width:100%}.audit-table td{white-space:normal}.connect-error{max-width:470px;margin:120px auto;background:#fff;padding:32px;border-radius:18px;box-shadow:0 15px 55px #5d36841c}.connect-error h2{font:800 23px var(--font)}.connect-error p{color:#837394;line-height:1.6}.boot{display:flex;align-items:center;justify-content:center;gap:12px;height:100vh;color:#805ca1;font:700 14px var(--font)}.spinner{display:inline-block;height:17px;width:17px;border:2px solid #dbcaeb;border-top-color:#9b18e2;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* Editor login and record forms */
#modal-root:empty{display:none}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#211333ab;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px}.modal{background:#fff;border-radius:19px;max-height:90vh;overflow-y:auto;width:min(100%,620px);box-shadow:0 30px 75px #120e2670}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:23px 26px;border-bottom:1px solid #eee7f3}.modal-head h2{font:800 22px var(--font);margin:0;color:#2d1c42}.modal-head p{font-size:12px;line-height:1.55;color:#887993;margin:7px 0 0}.modal-close{border:0;background:#f5eff9;color:#6b5480;width:32px;height:32px;font-size:21px;border-radius:9px;flex:none}.modal-body{padding:25px 26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{min-width:0}.field.wide{grid-column:1/-1}.field label{display:block;margin-bottom:7px;font-weight:800;font-size:11px;color:#685778}.control{display:block;background:#fcfbfe;border:1px solid #ded1eb;border-radius:10px;width:100%;min-width:0;padding:11px 12px;color:#33233f;outline:0;font-size:12px;min-height:41px}.control:focus{border-color:#ac70df;box-shadow:0 0 0 3px #f3e4ff}.control[type="date"]{appearance:auto}textarea.control{min-height:100px;resize:vertical}.check-field{display:flex;align-items:center;gap:8px;font-size:12px;color:#665471;padding:5px 0}.check-field input{accent-color:#8f18dc;width:16px;height:16px}.field-help{color:#8b7e97;font-size:11px;line-height:1.6}.soft-tag{display:inline-flex;align-items:center;background:#f1e3fc;color:#8421c6;border-radius:8px;font:700 11px var(--font);padding:8px 11px}.modal-foot{border-top:1px solid #eee7f3;padding:17px 26px;background:#fcfaff;display:flex;gap:10px;justify-content:flex-end}.slot-tools{padding-top:12px;border-top:1px solid #eee6f4}.slot-tools>span{display:block;margin-bottom:10px;font-size:11px;color:#8e7a9d;font-weight:800}.slot-tool-row{display:flex;flex-wrap:wrap;gap:7px}.slot-tool-row button{padding:8px 9px;background:white;border:1px solid #ded2ea;color:#74598b;border-radius:8px;font-size:11px;font-weight:800}.slot-tool-row button.destructive{color:#bc3b61;border-color:#f1ccd7}.slot-tool-row button:hover{background:#f7edff}.login-view,.login-card{display:none}#toast{position:fixed;bottom:24px;right:24px;z-index:100;max-width:380px;padding:0;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;font-size:12px;font-weight:700;color:#fff;border-radius:11px}#toast.show{padding:14px 19px;background:#2d1a43;opacity:1;transform:translateY(0);box-shadow:0 14px 42px #2f154433}#toast.error{background:#be305e}
@media(max-width:900px){.page-content{padding:25px 16px}.header-inner{padding:13px 18px}.sheet-banner{padding:26px}.sheet-banner h1{font-size:27px}.sheet-table{min-width:1770px}.header-caption{display:none}.sheet-controls{padding:14px}.sheet-footnote{display:none}}
@media(max-width:620px){.brand-mark{width:40px;height:40px}.brand-copy strong{font-size:12px}.brand-copy small{font-size:8px;letter-spacing:.07em}.header-inner{min-height:68px}.sheet-banner{min-height:150px;padding:23px 19px}.sheet-banner h1{font-size:24px}.banner-count{display:none}.sheet-controls{flex-wrap:wrap}.find-control{width:100%}.filter-control{flex:1;max-width:none}.view-status{flex:none}.readonly-indicator,.editor-indicator{font-size:10px}.sheet-tab{font-size:10px;padding:9px 9px}.sheet-tabs{padding:8px}.sheet-footer,.table-foot{font-size:9px}.modal-head,.modal-body,.modal-foot{padding:18px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.settings-menu{width:272px;right:-3px}}
