:root{--v17-bg:#080e16;--v17-card:#111c2c;--v17-border:#26384d;--v17-text:#eff5fc;--v17-muted:#91a5bf;--v17-cyan:#59d9e1;--v17-green:#32d89c;--v17-red:#ff7a87;--v17-gold:#ffbb72}
html,body{background:var(--v17-bg)!important;color:var(--v17-text)!important}
body{background:radial-gradient(ellipse 750px 420px at 46% -160px,#0b3a3e 0,transparent 80%),var(--v17-bg)!important}
.app-shell{background:transparent}
.topbar{background:#080e16!important;border-bottom:1px solid #1a303b!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.bottom-nav{background:rgba(8,14,22,.97)!important;border-color:#23374b!important;backdrop-filter:none!important}
.bottom-nav button.active{color:var(--v17-cyan)!important}
#main{color:var(--v17-text)}
/* Applies the uploaded Spy Hunt v10 dark/navy visual language to the shared app. */
.panel,.card,.v14-card,.v15-record,.v16-panel,.addon-panel,.v15-hours,.member-info,.v15-profile-card{background:linear-gradient(158deg,#142235,#0f1b29)!important;border-color:#293f53!important;color:#edf5fc!important}
.tile .tile-badge,.tile .symbol{border:1px solid #2f5262!important;background:linear-gradient(145deg,#183746,#132738)!important;color:#7eebee!important}
.tile .name{color:#e8f2fa!important;font-weight:680!important}
.tile:nth-child(4n+2) .tile-badge{background:linear-gradient(145deg,#272d43,#16243e)!important;color:#9fb3ff!important}
.tile:nth-child(4n+3) .tile-badge{background:linear-gradient(145deg,#183d37,#142b32)!important;color:#81f0bd!important}
.tile:nth-child(4n+4) .tile-badge{background:linear-gradient(145deg,#392832,#25212e)!important;color:#ffb3a3!important}
.v17-tile-icon{width:68px!important;height:68px!important;border-radius:19px!important;box-shadow:inset 0 0 16px #ffffff06,0 8px 24px #0004}
.v17-tile-icon svg{width:33px;height:33px;filter:drop-shadow(0 3px 7px #0005)}
.icon-grid{row-gap:21px!important}
.hero{background:linear-gradient(130deg,#13253a,#0a1824)!important;border-color:#2d4b5e!important}
.hero h1{font-size:27px!important;color:white}
#staffProfileBtn,#searchBtn{background:#142235!important;border:1px solid #335269!important;color:#87e9ed!important}
#staffProfileBtn svg{height:23px;width:23px}
#main .section-head,#main .addon-title>p,#main .v16-note,#main .info-strip,#main .tip{display:none!important}
#main>.page{padding-top:5px}
/* Login is intentionally two elements only: title and PIN. */
.v14-login{background:radial-gradient(ellipse at 50% 5%,#093742,#080e16 65%)!important}
.v14-login-box{background:#101d2d!important;border:1px solid #31566b!important;box-shadow:0 20px 80px #000a!important;padding:29px 25px!important;gap:20px!important}
.v14-login-box>img{width:min(88%,310px)!important;height:auto!important;max-height:170px!important;object-fit:contain!important;mix-blend-mode:screen}
.v14-login-box h1{text-align:center!important;font-size:23px!important;letter-spacing:-.03em;color:#f6fbff!important;margin:0 0 12px!important}
.v14-login-box .v14-label{color:#c7dae8!important;font-size:13px!important;font-weight:750!important}
.v14-login-box .v14-input{font-size:20px!important;text-align:center!important;letter-spacing:.2em;background:#0b1725!important;border-color:#3f667b!important;min-height:54px!important}
.v14-login-box .v14-btn.primary{background:linear-gradient(135deg,#0d929c,#1674a6)!important;border-color:#30bcc2!important;color:white!important;min-height:48px}
.v14-login-box>p,.v14-login-box select{display:none!important}
/* Exactly centered curvy plus icons. */
.v14-plus,.v15-plus,.v17-plus{width:48px!important;height:48px!important;min-width:48px!important;border:1px solid #3d6b73!important;border-radius:50%!important;background:linear-gradient(135deg,#136578,#0b415b)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:0!important;font-size:0!important;box-shadow:inset 0 2px 6px #ffffff0b!important;vertical-align:middle}
.v14-plus::before,.v15-plus::before{content:''!important;position:absolute;left:50%;top:50%;height:22px;width:3px;transform:translate(-50%,-50%);border-radius:5px;background:#eaffff}
.v14-plus::after,.v15-plus::after{content:''!important;position:absolute;left:50%;top:50%;height:3px;width:22px;transform:translate(-50%,-50%);border-radius:5px;background:#eaffff}
.v14-plus,.v15-plus{position:relative!important;color:transparent!important}
.v17-plus svg{width:26px;height:26px;color:#fff}
.v14-btn.primary,.v15-main,.v16-button.main,.v17-action{background:linear-gradient(120deg,#0f8996,#167da4)!important;color:#f4ffff!important;border:1px solid #34bdc7!important;border-radius:12px;font-weight:800}
.v15-filter.selected,.v14-tabs .active,.v17-rule-tabs .active{background:#175569!important;color:#ddfdff!important;border-color:#39adbb!important}
.v17-page{padding:10px 16px 36px;color:#edf5fc}
.v17-head{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:3px 0 18px}
.v17-head h1{font-size:25px;letter-spacing:-.035em;margin:0;font-weight:800}
.v17-head .v17-homeback{margin-right:auto}
.v17-homeback{width:39px;height:39px;min-width:39px;border-radius:13px;display:inline-grid;place-items:center;background:#152334;border:1px solid #31516a;color:#d8f0ff;vertical-align:middle;flex:none}
.v17-homeback svg{width:22px;height:22px}
.v17-head .v17-homeback+h1{margin-right:auto}
.v14-head,.v15-head,.v16-pagehead,.addon-title{display:flex;align-items:center;gap:10px!important;text-align:left!important}
.v14-head h1,.v15-head h1,.v16-pagehead h1{margin-right:auto}
.v14-head>.v17-homeback,.v15-head>.v17-homeback{margin-right:0}
/* New 7-day trackers, Monday -> Sunday, not an Excel clone. */
.v17-week-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 7px;margin-bottom:12px;background:#122033;border:1px solid #263e52;border-radius:15px}
.v17-week-controls strong{font-size:13px;font-weight:760}
.v17-week-controls button{width:40px;height:40px;border:1px solid #35516b;border-radius:11px;background:#182e43;color:#ebf8ff;font-size:27px;display:grid;place-items:center}
.v17-week-controls button:disabled{opacity:.23}
.v17-track-scroll{overflow-x:auto;overflow-y:visible;border:1px solid #263d54;border-radius:14px;box-shadow:0 10px 30px #0003;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.v17-track-scroll::-webkit-scrollbar{display:none}
.v17-track-table{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;width:max-content;font-variant-numeric:tabular-nums}
.v17-track-table th,.v17-track-table td{min-width:83px;width:83px;text-align:center;border-right:1px solid #243c4e;border-bottom:1px solid #22384b;height:70px;padding:0;vertical-align:middle;background:#111c2c}
.v17-track-table thead th{height:58px;position:sticky;top:0;z-index:3;background:#213950}
.v17-track-table tbody tr.shade td{background:#162536}
.v17-track-table tbody tr.shade th.v17-col-name{background:#1d3746}
.v17-track-table tbody tr.shade td.v17-col-total{background:#163b42}
.v17-track-table th.v17-col-name{min-width:135px;width:135px;left:0;position:sticky;z-index:5;background:#19313d}
.v17-track-table th.v17-col-name button{font-size:12px;text-align:left}
.v17-track-table th.v17-col-name button b{font-size:12px;line-height:1.25;display:block;word-break:break-word}
.v17-track-table th.v17-col-name button small{display:block;color:#86a7b7;font-size:10px;margin-top:4px}
.v17-track-table td.v17-col-total,.v17-track-table th.v17-col-total{min-width:72px;width:72px;left:135px;position:sticky;z-index:4;background:#14404a}
.v17-track-table thead th.v17-col-total{z-index:6;background:#205465}
.v17-track-table td.v17-col-total strong{font-size:15px;color:#a9f9ef}
.v17-track-table .v17-col-date{background:#253b54}
.v17-track-table .v17-col-date b{display:block;color:#e0f3ff;font-size:11px}
.v17-track-table .v17-col-date small{display:block;color:#90b6cf;font-size:10px;margin-top:5px}
.v17-track-table button{border:0;background:none;color:inherit;width:100%;height:100%;padding:7px 5px;text-align:inherit}
.v17-day-cell button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.v17-day-cell strong{font-size:15px;color:#eaf7ff}
.v17-day-cell small{font-size:11px;font-weight:800;border-radius:5px;padding:3px 7px}
.v17-day-cell .v17-positive{background:#1a5346;color:#91f5c8}
.v17-day-cell .v17-zero{background:#48333e;color:#ffc0cb}
.v17-blank{font-size:12px;color:#6c8b9a}
.v17-track-table thead button{font-size:11px;display:flex;align-items:center;gap:6px;justify-content:center;font-weight:780}
.v17-track-table thead button span{color:#65dce3;font-size:14px}
/* Spy Hunt v10-style cards and teal data controls. */
.v17-spy-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 20px}
.v17-spy-stats article{background:linear-gradient(155deg,#142235,#0e1a29);border:1px solid #2a3b50;border-radius:13px;padding:12px 10px;min-width:0}
.v17-spy-stats article small{font-size:10px;color:#a0bad0;display:block;line-height:1.4}
.v17-spy-stats article strong{font-size:26px;display:block;margin-top:7px;color:#eafcff}
.v17-spy-stats article:nth-child(4) strong{color:#70e7bb}
.v17-spy-stats article:nth-child(5) strong{color:#78bedc}
.v17-spy-directory h2{font-size:19px;margin:10px 0 15px}
.v17-spy-search{height:48px;display:flex;align-items:center;gap:11px;padding:0 13px;border:1px solid #31516a;border-radius:13px;background:#112234}
.v17-spy-search svg{width:18px;height:18px;color:#88bbd1}
.v17-spy-search input{width:100%;border:0;background:none;outline:0;color:#effaff;min-width:0}
.v17-spy-suspicious{border:1px solid #6f4a3f;color:#eabb9e;background:#32251f;padding:10px 13px;border-radius:12px;font-size:12px;margin:12px 0}
.v17-spy-suspicious.chosen{background:#783e37;color:#fff}
.v17-spy-suspicious b{margin-left:6px}
.v17-spy-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:12px}
.v17-spy-group{background:linear-gradient(180deg,#132033,#0d1927);border:1px solid #2a3c51;border-radius:14px;overflow:hidden}
.v17-spy-grouphead{border:0;background:transparent;width:100%;padding:13px;display:flex;align-items:center;gap:10px;color:#f0f8fe;text-align:left}
.v17-spy-avatar{display:grid;place-items:center;width:38px;height:38px;border:1px solid #356b71;background:#173c46;color:#a0f2ed;border-radius:11px;font-weight:850}
.v17-spy-grouphead strong{font-size:16px;flex:1}
.v17-spy-count{background:#173141;border:1px solid #315a67;color:#a1e8df;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:790;white-space:nowrap}
.v17-spy-arrow{color:#93b7ca;font-size:19px}
.v17-spy-memberlist{padding:0 12px}
.v17-spy-member{border-top:1px solid #293b50;display:flex;align-items:center;gap:6px;padding:9px 0}
.v17-spy-identity{flex:1;text-align:left;border:0;background:none;color:#e7f4ff;min-width:0;padding:4px}
.v17-spy-identity strong{display:block;font-size:12px}
.v17-spy-identity small{display:block;font-size:10px;color:#94afc3;margin-top:4px}
.v17-spy-mini{min-width:33px;height:34px;background:#1b3044;border:1px solid #30475e;border-radius:9px;color:#b5d6eb;display:grid;place-items:center;font-size:16px}
.v17-spy-mini svg{width:17px;height:17px}
.v17-spy-mini.ok{color:#8cf3c7;background:#124337;border-color:#287d63}
.v17-spy-alert{color:#ef9f8b}
/* Leadership portraits */
.v17-lead-feature{position:relative;width:100%;max-width:420px;margin:0 auto 20px;overflow:hidden;border-radius:24px;background:#122538;border:1px solid #2e5067;box-shadow:0 15px 40px #0005}
.v17-lead-feature img{display:block;width:100%;height:340px;object-fit:cover;object-position:center 26%}
.v17-lead-gradient{position:absolute;inset:auto 0 0;padding:42px 20px 20px;background:linear-gradient(transparent,#08111cf2);display:grid;gap:5px;text-align:center}
.v17-lead-gradient strong{font-size:27px}.v17-lead-gradient span{font-size:13px;color:#87dbe0;font-weight:720}
.v17-council-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.v17-lead-card{padding:0;background:linear-gradient(150deg,#182638,#0b1623);border:1px solid #2d465c;border-radius:17px;overflow:hidden;text-align:left;color:#edf5fc}
.v17-lead-card img{width:100%;aspect-ratio:4/4.5;object-fit:cover;object-position:center 20%;display:block}
.v17-lead-card>div{display:grid;gap:3px;padding:11px}
.v17-lead-card strong{font-size:15px}.v17-lead-card span{color:#8acbd6;font-size:11px}
/* Matching user-supplied white/red/black printed rule artwork */
.v17-rule-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 15px;margin-bottom:7px;scrollbar-width:none}
.v17-rule-tabs::-webkit-scrollbar{display:none}
.v17-rule-tabs button{flex:none;border:1px solid #304b60;border-radius:99px;background:#16263a;color:#c7d9e8;padding:10px 14px;font-size:12px;font-weight:710}
.v17-rule-poster{width:100%;background:white url('/assets/rules-bg.webp') center top/100% 100% no-repeat;color:#111;border-radius:14px;border:1px solid #d8caca;padding:90px clamp(11px,4vw,35px) 100px;box-shadow:0 6px 30px #0005;min-height:780px}
.v17-rule-poster header{text-align:center;margin:-38px 0 45px}
.v17-rule-poster header img{width:150px;height:79px;object-fit:contain;mix-blend-mode:multiply}
.v17-rule-poster header h2{font-size:clamp(17px,4.3vw,30px);font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;font-weight:950;line-height:1.1;font-style:italic;letter-spacing:-.04em;text-transform:uppercase;margin:6px 0}
.v17-rule-poster header h2 span{color:#c00000}
.v17-rule-line{display:grid;grid-template-columns:45px 1fr;gap:12px;padding:20px 0;border-bottom:1px solid #d74343}
.v17-rule-num{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#a30000,#e00000);color:white;display:grid;place-items:center;font-weight:900;font-size:23px;box-shadow:inset 0 0 9px #0003}
.v17-rule-line h3{font-size:clamp(16px,3.5vw,23px);color:#b40000;font-family:'Arial Narrow',Impact,Arial,sans-serif;font-style:italic;text-transform:uppercase;margin:2px 0 5px;line-height:1.1}
.v17-rule-line p{font-size:clamp(12px,2.7vw,17px);line-height:1.45;margin:0;color:#111}
.v17-rule-actions{display:flex;justify-content:center;margin-top:14px}
.v17-rule-actions .v17-action svg{width:19px;height:19px}
.v17-rule-empty{min-height:220px}
/* Boycott case listing: large portraits, without displaying unrelated real people as example targets. */
.v17-boycott-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.v17-boycott-card,.v17-boycott-placeholder{overflow:hidden;border:1px solid #35445a;background:#122236;border-radius:18px;text-align:left;color:#fff;min-width:0}
.v17-boycott-image{height:205px;background:#162537;display:grid;place-items:center;color:#b9c9d8}
.v17-boycott-image img{height:100%;width:100%;object-fit:cover}
.v17-boycott-image svg,.v17-boycott-portrait svg{width:63px;height:63px}
.v17-boycott-details{padding:12px;display:grid;gap:7px}.v17-boycott-details strong{font-size:16px}
.v17-status{border:1px solid #875656;color:#ffc4c4;background:#35242d;padding:5px 9px;border-radius:99px;width:max-content;font-size:11px}
.v17-boycott-placeholder{grid-column:1/-1;display:grid;place-items:center;text-align:center;padding:35px 15px;gap:10px;color:#9cb3c8}
.v17-boycott-portrait{width:106px;height:116px;border-radius:21px;background:#243344;display:grid;place-items:center}
.v17-boycott-placeholder strong{color:white;font-size:18px}.v17-boycott-placeholder span{font-size:12px;color:#a5d3d8}
.v17-boycott-detail>img{width:100%;max-height:320px;object-fit:contain;border-radius:12px}
.v17-history{border-top:1px solid #314358;padding:11px 0;color:#d8e6f4}.v17-history small{color:#91a5bf}.v17-history p{margin:5px 0}
/* Universal search and compact account. */
.v17-search{display:flex;gap:12px;align-items:center;border:1px solid #30516d;background:#122336;border-radius:14px;padding:13px;margin-bottom:18px}
.v17-search input{background:transparent;border:0;outline:0;flex:1;color:#edf7ff;min-width:0}
.v17-search-list{display:grid;gap:8px}.v17-search-list h3{color:#8bb5ce;font-size:12px;text-transform:uppercase;letter-spacing:.09em;margin:16px 0 2px}
.v17-search-row{display:flex;align-items:center;gap:12px;padding:11px;background:#111f30;border:1px solid #274159;border-radius:12px;color:#eaf6ff;text-align:left}
.v17-search-row>span{color:#77dce3}.v17-search-row svg{width:21px;height:21px}.v17-search-row strong{flex:1;font-size:13px}.v17-search-row small{color:#9eb5c6}
.v17-account-hero{display:flex;align-items:center;gap:16px;padding:15px;background:#142335;border:1px solid #294b61;border-radius:17px;margin-bottom:14px}
.v17-account-hero img{height:80px;width:80px;object-fit:cover;border-radius:17px}.v17-account-hero strong{display:block;font-size:20px}.v17-account-hero span{font-size:12px;color:#73d4dd}
.v17-bio{display:flex;align-items:center;justify-content:space-between;padding:17px;margin-bottom:14px;gap:10px}
.v17-bio strong{font-size:14px}.v17-bio p{font-size:12px;color:#a3bdce;line-height:1.5;margin:5px 0 0}
.v17-bio button{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:12px;background:#1e3949;border:1px solid #37677a;color:#c2f9f5}
.v17-bio button svg{width:20px;height:20px}.v17-profile-actions{display:grid;gap:10px}.v17-action{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:12px 18px;min-height:44px;font-size:13px}
.v17-action svg{width:20px;height:20px}
.v17-action.subtle{background:#14283c!important;border:1px solid #385267!important}
/* Modals */
.v17-modal{position:fixed;z-index:9999;inset:0;background:#000b;display:flex;justify-content:center;align-items:flex-end}
.v17-modal-pane{max-height:87dvh;overflow:auto;width:min(100%,620px);background:#102134;border:1px solid #31536c;border-radius:22px 22px 0 0;padding:18px 17px calc(25px + env(safe-area-inset-bottom));scrollbar-width:none}
.v17-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:18px}
.v17-modal-head button{width:36px;height:36px;border-radius:50%;border:1px solid #3b566e;background:#1b3445;color:white;font-size:22px}
.v17-form{display:grid;gap:14px}.v17-form label{display:grid;gap:6px;color:#a7c4d7;font-size:12px}
.v17-form input,.v17-form textarea,.v17-form select{background:#0b1725;color:#edf5ff;border:1px solid #30536e;border-radius:12px;padding:13px;width:100%;font-size:14px}
/* Generic old UI's paragraphs containing development notes never belong inside app. */
#main .v14-warning,#main .v16-note,#main .v15-page>p.v15-muted,#main .v14-page>p.v14-subtle,#main .addon-title>p,#main .addon-overline{display:none!important}
@media(max-width:390px){.v17-page{padding-left:11px;padding-right:11px}.v17-track-table th.v17-col-name{min-width:115px;width:115px}.v17-track-table td.v17-col-total,.v17-track-table th.v17-col-total{left:115px;min-width:65px;width:65px}.v17-spy-stats strong{font-size:23px}.v17-rule-poster{padding-left:10px;padding-right:10px}.v17-rule-line{grid-template-columns:38px 1fr;gap:9px}.v17-rule-num{width:36px;height:36px;font-size:20px}}

.v17-head:has(.v17-homeback){justify-content:flex-start}
.v17-head:has(.v17-homeback) h1{margin-left:0;margin-right:auto;text-align:left}
.v17-rule-actions{gap:10px}

/* Explicit opaque native iOS status-bar safe area, no translucent overlap. */
.app-shell{padding-top:env(safe-area-inset-top,0px)!important;background:#080e16!important}
body::before{background:#080e16!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#main{background:transparent!important}
#searchBtn[hidden]{display:none!important}

.v17-spy-add{width:calc(100% - 14px);margin:6px 7px 12px;border:1px dashed #496a86;border-radius:10px;background:#192f43;color:#b4e8ed;font-size:12px;font-weight:750;padding:10px}
