/* PASS292 — UNKWN Member QR + Training Partners */
.tp-overlay{position:fixed;inset:0;z-index:12050;background:rgba(0,0,0,.92);display:flex;align-items:flex-end;justify-content:center;padding:12px 12px calc(12px + env(safe-area-inset-bottom));backdrop-filter:blur(10px)}
.tp-shell{width:100%;max-width:480px;max-height:92dvh;overflow:auto;background:linear-gradient(180deg,#15130f 0,#0b0b0b 34%,#080808 100%);border:1px solid rgba(212,160,23,.38);border-radius:24px;box-shadow:0 -24px 80px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,221,139,.08)}
.tp-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;padding:15px 15px 10px;position:sticky;top:0;background:linear-gradient(180deg,rgba(15,14,11,.98),rgba(15,14,11,.94));z-index:5}
.tp-head span,.tp-member-label,.tp-section-label{font-size:10px;letter-spacing:1.7px;color:var(--gold);font-weight:850}.tp-head h2{margin:2px 0 0;font-size:20px}.tp-back{width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:#121212;color:#fff;font-size:20px}.tp-head-mark{display:grid;place-items:center;color:var(--gold);font-size:19px}
.tp-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 15px 12px}.tp-tabs button{min-height:46px;border-radius:12px;border:1px solid #2a2a2a;background:#101010;color:#aaa;font-weight:850;letter-spacing:.8px}.tp-tabs button.active{color:#090909;background:linear-gradient(135deg,#f0bc31,#c78e08);border-color:#f0bc31;box-shadow:0 0 22px rgba(212,160,23,.18)}
#tp-main{padding:0 15px 14px}.tp-code-wrap{text-align:center}.tp-code-card{border:1px solid rgba(212,160,23,.45);background:radial-gradient(circle at 50% 0,rgba(212,160,23,.14),transparent 45%),linear-gradient(145deg,#17130b,#090909 58%);border-radius:22px;padding:18px 16px;box-shadow:inset 0 1px 0 rgba(255,235,181,.08),0 16px 48px rgba(0,0,0,.5)}
.tp-qr-frame{width:min(78vw,292px);aspect-ratio:1;margin:10px auto 14px;padding:16px;background:#fff;border-radius:22px;position:relative;box-shadow:0 0 0 2px #0b0b0b,0 0 0 4px rgba(212,160,23,.75),0 14px 38px rgba(0,0,0,.5)}#tp-qr{width:100%;height:100%;display:grid;place-items:center}#tp-qr img,#tp-qr canvas{max-width:100%;height:auto!important;display:block}.tp-qr-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:15px;background:#070707;border:4px solid #fff;box-shadow:0 0 0 2px #d4a017,0 4px 14px rgba(0,0,0,.35);display:grid;place-items:center}.tp-qr-center img{width:43px;height:43px;object-fit:contain;border-radius:10px}.tp-identity strong{display:block;font-size:22px}.tp-identity span{display:block;color:var(--gold);font:800 13px/1.2 var(--font-athletic,Arial);letter-spacing:1.2px;margin-top:3px}.tp-code-card p{font-size:12px;color:#aaa;margin:10px auto 0;max-width:280px;line-height:1.45}.tp-code-wrap>.btn{margin-top:10px}.tp-status{font-size:12px;color:#aaa;line-height:1.4;margin:10px 0}.tp-status.error{color:#f2a3a3}
.fullscreen-code{position:fixed!important;inset:0!important;z-index:470!important;border-radius:0!important;display:flex!important;flex-direction:column;justify-content:center;background:#050505!important}.fullscreen-code .tp-qr-frame{width:min(82vw,360px)}
.tp-camera{aspect-ratio:4/5;max-height:54dvh;border-radius:22px;overflow:hidden;background:#050505;position:relative;border:1px solid rgba(212,160,23,.35)}.tp-camera video{width:100%;height:100%;object-fit:cover}.tp-scan-frame{position:absolute;inset:16%;border:1px solid rgba(255,255,255,.2);border-radius:24px;box-shadow:0 0 0 999px rgba(0,0,0,.42)}.tp-scan-frame i{position:absolute;width:42px;height:42px;border-color:#f0bc31}.tp-scan-frame i:nth-child(1){left:-2px;top:-2px;border-left:4px solid #f0bc31;border-top:4px solid #f0bc31;border-radius:12px 0 0}.tp-scan-frame i:nth-child(2){right:-2px;top:-2px;border-right:4px solid #f0bc31;border-top:4px solid #f0bc31;border-radius:0 12px 0 0}.tp-scan-frame i:nth-child(3){left:-2px;bottom:-2px;border-left:4px solid #f0bc31;border-bottom:4px solid #f0bc31;border-radius:0 0 0 12px}.tp-scan-frame i:nth-child(4){right:-2px;bottom:-2px;border-right:4px solid #f0bc31;border-bottom:4px solid #f0bc31;border-radius:0 0 12px}.tp-scan-helmet{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:7px 10px;background:rgba(0,0,0,.66);border:1px solid rgba(212,160,23,.65);border-radius:10px;color:#e9b72d;font-size:10px;font-weight:900;letter-spacing:1.8px}.tp-scan-help{color:#aaa;text-align:center;font-size:12px;line-height:1.45;margin:8px 15px 12px}
.tp-preview{text-align:center;padding:14px 0 4px}.tp-preview-crest{width:78px;height:78px;border-radius:22px;display:grid;place-items:center;margin:0 auto 12px;background:linear-gradient(145deg,#2a210e,#0a0a0a);border:1px solid rgba(212,160,23,.55);color:#f0bc31;font-size:32px;font-weight:900;box-shadow:0 0 30px rgba(212,160,23,.1)}.tp-preview h3{font-size:26px;margin:5px 0 2px}.tp-preview-handle{color:var(--gold);font-weight:800;letter-spacing:1px}.tp-privacy{margin:16px 0;text-align:left;border:1px solid #262626;background:#0d0d0d;border-radius:14px;padding:12px}.tp-privacy b{display:block;color:#ddd;font-size:11px;letter-spacing:1px;margin-bottom:5px}.tp-privacy span{color:#aaa;font-size:12px;line-height:1.45}.tp-preview .btn+.btn{margin-top:8px}
.tp-saved{padding:0 15px 20px}.tp-section-label{margin:4px 0 8px}.tp-partner-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #202020}.tp-avatar{width:42px;height:42px;border-radius:13px;background:#17130b;border:1px solid rgba(212,160,23,.32);display:grid;place-items:center;color:var(--gold);font-weight:900}.tp-partner-copy strong{display:block;font-size:14px}.tp-partner-copy span{display:block;color:#888;font-size:10px;letter-spacing:.8px;margin-top:2px}.tp-remove{min-height:36px;padding:0 8px;border:1px solid #382323;border-radius:9px;background:#130c0c;color:#cf8b8b;font-size:9px;font-weight:800}.tp-empty{border:1px dashed #2a2a2a;border-radius:14px;padding:13px}.tp-empty b{display:block;font-size:11px;color:#ccc}.tp-empty span{display:block;font-size:11px;color:#777;margin-top:4px;line-height:1.4}
@media(min-width:700px){.tp-overlay{align-items:center}.tp-shell{max-height:88vh}}
@media(prefers-reduced-motion:reduce){.tp-shell,.tp-code-card,.tp-qr-frame{scroll-behavior:auto!important;transition:none!important}}
@media(forced-colors:active){.tp-shell,.tp-code-card,.tp-camera,.tp-privacy{border:1px solid CanvasText}.tp-tabs button.active{outline:3px solid Highlight}.tp-qr-center{forced-color-adjust:none}}

/* PASS293 — discoverability: obvious entry points without changing the QR foundation */
.tp-home-entry{margin-top:10px!important;min-height:52px!important;display:grid!important;grid-template-columns:34px 1fr 20px!important;align-items:center!important;gap:8px!important;text-align:left!important;border-color:rgba(212,160,23,.34)!important;background:linear-gradient(145deg,rgba(212,160,23,.07),#101010 58%)!important}
.tp-home-entry .tp-entry-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--gold);border:1px solid rgba(212,160,23,.38);background:#12100b;font-size:18px}.tp-home-entry strong{display:block;font-size:12px;letter-spacing:1px;color:#f1f1f1}.tp-home-entry small{display:block;margin-top:2px;font-size:9px;letter-spacing:.8px;color:#9b9b9b}.tp-home-entry>span:last-child{color:var(--gold);font-weight:900;text-align:right}
.uwf-utility-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.uwf-utility-row .uwf-map-toggle{margin:0!important;width:100%!important}.uwf-together{min-height:42px;border-radius:11px;border:1px solid rgba(212,160,23,.46);background:linear-gradient(145deg,rgba(212,160,23,.10),#101010);color:#e9b72d;font:850 10px/1 var(--font-athletic,Arial);letter-spacing:1px;padding:0 10px;white-space:nowrap}
.uwf-together:focus-visible,.tp-home-entry:focus-visible{outline:3px solid #f0bc31!important;outline-offset:2px!important}
@media(max-width:360px){.tp-home-entry strong{font-size:11px}.tp-home-entry small{font-size:8px}.uwf-together{font-size:9px;letter-spacing:.7px}}

/* PASS295 — helmet-shaped UNKWN member code */
.tp-helmet-frame{width:min(82vw,330px);aspect-ratio:1;margin:10px auto 14px;padding:10px;background:#fff;border-radius:22px;overflow:hidden;position:relative;box-shadow:0 0 0 2px #0b0b0b,0 0 0 4px rgba(216,159,18,.85),0 14px 38px rgba(0,0,0,.5)}
.tp-helmet-frame #tp-qr{width:100%;height:100%;display:grid;place-items:center}.tp-helmet-frame #tp-qr canvas{width:100%!important;height:auto!important;max-width:100%;display:block}
.fullscreen-code .tp-helmet-frame{width:min(90vw,430px)}
/* PASS297: branding outside the intact square QR. */
.tp-head-logo{width:40px;height:44px;object-fit:contain}.tp-crest297{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 14px;color:#e5ba52;font-size:10px;font-weight:800;letter-spacing:2px}.tp-crest297 img{height:76px;width:70px;object-fit:contain}.tp-preview-logo{width:72px;height:84px;object-fit:contain}.tp-code-card{padding:18px 14px}.tp-qr-frame{box-sizing:border-box;width:min(100%,320px);padding:0;border-radius:4px;overflow:visible}.tp-qr-frame canvas{width:100%;height:auto;forced-color-adjust:none;image-rendering:pixelated}.tp-actions{display:grid;gap:8px;margin-top:18px}.tp-shell{max-height:94dvh}.tp-shell button{min-height:44px;touch-action:manipulation}.tp-shell button:focus-visible,.tp-shell input:focus-visible,.tp-shell select:focus-visible{outline:3px solid #f0bc31;outline-offset:3px}.tp-shell input,.tp-shell select{display:block;box-sizing:border-box;width:100%;margin:10px 0 16px;padding:14px;background:#141414;border:1px solid #71602d;border-radius:12px;color:#fff;font-size:16px;user-select:text!important;-webkit-user-select:text!important}.tp-shell label{display:block;color:#ddd;font-size:13px;margin-top:15px}.tp-preview p{color:#b7b7b7;font-size:13px;line-height:1.5}.tp-preview-handle,.tp-identity span{overflow-wrap:anywhere}.tp-share-row{width:100%;text-align:left;padding:16px;margin:6px 0;border:1px solid #665322;border-radius:14px;background:#12100c;color:#eee}.tp-share-row b,.tp-share-row span,.tp-program-day strong,.tp-program-day span{display:block}.tp-share-row span,.tp-program-day span{color:#bbb;font-size:12px;margin-top:5px}.tp-program-summary{text-align:left;margin:14px 0}.tp-program-day{padding:12px 0;border-bottom:1px solid #333}.tp-saved>.btn{margin-top:10px}.fullscreen-code{overflow:auto}.fullscreen-code .tp-qr-frame{width:min(78vw,360px)}.tp-camera video{object-fit:contain}.tp-scan-frame{border-radius:4px;aspect-ratio:1;inset:20% 12% auto}.tp-identity strong{font-size:22px;overflow-wrap:anywhere}@media(max-width:360px){.tp-overlay{padding:6px}.tp-head{grid-template-columns:44px 1fr 28px;gap:6px}.tp-head h2{font-size:17px}.tp-head-logo{width:28px}.tp-identity span{font-size:11px}.tp-qr-frame{width:100%}}@media(max-height:650px){.fullscreen-code{justify-content:flex-start;padding-top:16px}.fullscreen-code .tp-crest297{display:none}.fullscreen-code .tp-qr-frame{width:min(64vh,320px)}}


/* PASS304: reference-locked white Spartan panel; no second graphic in the panel. */
.tp-forgecode304{width:min(100%,360px)!important;aspect-ratio:1;padding:0!important;background:#fff!important;border-radius:24px!important;overflow:hidden!important;box-shadow:0 0 0 2px #080808,0 0 0 4px rgba(215,164,26,.9),0 18px 42px rgba(0,0,0,.48)!important}
.tp-forgecode304 #tp-qr,.tp-forgecode304 canvas,.tp-forgecode304 img{width:100%!important;display:block!important;background:#fff!important;forced-color-adjust:none}
.tp-forgecode304 canvas,.tp-forgecode304 img{height:auto!important;image-rendering:auto}
.tp-code-wrap>.tp-member-label{margin:3px 0 12px}.tp-code-card{padding-top:18px}.tp-partner-copy small{display:block;font-size:9px;letter-spacing:.8px;color:#d9b555;margin-top:5px}
.tp-code-fallback{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:250px;padding:22px;color:#171717}.tp-code-fallback p{color:#444}.tp-code-fallback span{font-size:12px;overflow-wrap:anywhere;color:#715512}
.tp-shell button:disabled{opacity:.55;cursor:default}.tp-status{overflow-wrap:anywhere}.fullscreen-code .tp-forgecode304{width:min(88vw,440px)!important;flex-shrink:0}

/* PASS306 directory registration state */
.tp-directory-state{margin:10px auto 4px;text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#d2b56f}.tp-directory-state.ready{color:#d7b85a}.tp-directory-state.error{color:#ef9a9a}

/* PASS309 — Training Partners 9.5 polish. Functional behavior unchanged. */
.tp-shell{scrollbar-width:none}.tp-shell::-webkit-scrollbar{display:none}.tp-head{padding-top:calc(14px + env(safe-area-inset-top,0px));border-bottom:1px solid rgba(255,255,255,.035)}
.tp-stage{padding:8px 0 6px}.tp-stage-kicker{margin:2px 0 12px;text-align:center;color:#d9b14b;font-size:10px;font-weight:900;letter-spacing:1.8px}.tp-stage-copy{max-width:330px;margin:10px auto 16px!important;color:#a9a9a9!important;font-size:13px!important;line-height:1.55!important}.tp-action-stack{display:grid;gap:9px;margin-top:14px}.tp-action-stack .btn{margin-top:0!important}.tp-secondary-actions{margin-top:12px}.tp-secondary-actions .btn{min-height:46px!important}
.tp-success-mark{width:58px;height:58px;margin:0 auto 12px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#2a210d,#12100a);border:1px solid rgba(221,174,45,.55);box-shadow:inset 0 1px rgba(255,255,255,.08),0 10px 32px rgba(212,160,23,.12);color:#efbd35;font-size:28px;font-weight:900}.tp-preview h3{font-size:25px;line-height:1.08;margin:5px 0 5px}.tp-preview-handle{font-size:11px;letter-spacing:1.25px}
.tp-camera{border-radius:20px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 18px 42px rgba(0,0,0,.28)}.tp-camera-badge{position:absolute;left:50%;top:18px;transform:translateX(-50%);padding:7px 10px;border-radius:999px;background:rgba(8,8,8,.72);border:1px solid rgba(220,173,42,.45);backdrop-filter:blur(9px);color:#e7bd52;font-size:9px;font-weight:900;letter-spacing:1.3px}.tp-scan-frame{transition:border-color .2s ease,box-shadow .2s ease}.tp-scan-pulse{position:absolute;left:12%;right:12%;top:50%;height:1px;background:linear-gradient(90deg,transparent,#f0bc31,transparent);box-shadow:0 0 10px rgba(240,188,49,.55);animation:tpScanSweep 2.4s ease-in-out infinite}.tp-scan-help{max-width:320px;margin:12px auto 4px;font-size:12.5px;line-height:1.55}@keyframes tpScanSweep{0%,100%{transform:translateY(-100px);opacity:.35}50%{transform:translateY(100px);opacity:1}}
.tp-share-choice{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.tp-share-choice .btn{min-height:74px!important;padding:12px!important;line-height:1.2}.tp-share-choice .btn:first-child{box-shadow:0 8px 28px rgba(212,160,23,.12)}
.tp-share-row{position:relative;padding:15px 16px 15px 18px!important;margin:8px 0!important;border-color:rgba(212,160,23,.28)!important;background:linear-gradient(145deg,#15130e,#0d0d0d)!important;box-shadow:inset 0 1px rgba(255,255,255,.025)}.tp-share-row:after{content:'›';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#d2aa45;font-size:22px}.tp-share-row b{padding-right:22px;font-size:14px}.tp-share-row span{padding-right:24px;color:#929292!important;font-size:10.5px!important;line-height:1.45}.tp-inbox-list{margin-top:14px}
.tp-program-summary{margin:14px 0 16px!important;border:1px solid rgba(255,255,255,.07);border-radius:16px;overflow:hidden;background:#0d0d0d}.tp-program-day{display:grid!important;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:13px 14px!important;border-bottom:1px solid rgba(255,255,255,.055)!important}.tp-program-day:last-child{border-bottom:0!important}.tp-ex-index{display:grid!important;place-items:center;width:27px;height:27px;border-radius:9px;background:#18150d;border:1px solid rgba(212,160,23,.28);color:#d8ae44!important;font-size:9px!important;font-weight:900!important;margin:0!important}.tp-program-day strong{font-size:13px;line-height:1.25}.tp-program-day span{margin-top:4px!important;color:#b7b7b7!important;font-size:11px!important}.tp-program-day small{display:block;margin-top:3px;color:#777;font-size:9.5px;line-height:1.35}.tp-adaptation-card{margin:12px 0 16px;text-align:left;border:1px solid rgba(212,160,23,.28);border-radius:15px;padding:13px 14px;background:linear-gradient(145deg,rgba(212,160,23,.07),#0d0d0d 70%)}.tp-adaptation-card b{display:block;color:#e5bd58;font-size:10px;letter-spacing:1.1px}.tp-adaptation-card>span{display:block;margin-top:4px;color:#aaa;font-size:11px;line-height:1.45}.tp-adaptation-list{margin-top:9px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.tp-adaptation-list p{margin:5px 0!important;color:#bcbcbc!important;font-size:10.5px!important;line-height:1.4!important}
.tp-status{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.045);text-align:center}.tp-status:empty{display:none}.tp-status.error{background:rgba(126,36,36,.12);border-color:rgba(239,154,154,.18);color:#e9a0a0}.tp-partner-row{padding:12px 0}.tp-avatar{border-radius:50%}.tp-partner-copy strong{font-size:13px}.tp-partner-copy span{font-size:9px}.tp-saved>.btn{min-height:46px!important}
@media(max-width:390px){.tp-share-choice{grid-template-columns:1fr}.tp-share-choice .btn{min-height:56px!important}.tp-preview h3{font-size:23px}.tp-camera-badge{top:12px}.tp-stage-copy{padding:0 6px}}@media(prefers-reduced-motion:reduce){.tp-scan-pulse{animation:none!important;display:none}}

/* PASS310 — championship Training Partners flow + nearby scan-to-start polish */
.tp-overlay{padding:0;background:rgba(0,0,0,.82);backdrop-filter:blur(18px)}
.tp-shell{max-width:500px;max-height:100dvh;border-radius:28px 28px 0 0;border-color:rgba(218,170,37,.42);background:radial-gradient(circle at 50% -8%,rgba(210,157,18,.12),transparent 28%),linear-gradient(180deg,#12110e 0,#090909 30%,#070707 100%);box-shadow:0 -28px 90px rgba(0,0,0,.82),inset 0 1px 0 rgba(255,233,174,.08)}
.tp-head{position:sticky;top:0;padding:calc(16px + env(safe-area-inset-top,0px)) 16px 12px;background:linear-gradient(180deg,rgba(13,12,10,.995),rgba(13,12,10,.96));backdrop-filter:blur(18px);z-index:20}
.tp-head h2{font-size:23px;letter-spacing:.2px}.tp-head>div span{color:#d6ad4b}.tp-head-logo{filter:drop-shadow(0 0 12px rgba(218,168,31,.18))}
.tp-tabs{position:sticky;top:calc(78px + env(safe-area-inset-top,0px));z-index:19;padding:9px 16px 13px;background:rgba(10,10,9,.96);backdrop-filter:blur(14px)}
.tp-tabs button{min-height:50px;border-radius:16px;background:#0e0e0e;border-color:rgba(255,255,255,.075);font-size:11px;letter-spacing:1.15px}.tp-tabs button.active{background:linear-gradient(135deg,#f5c43b,#d39a0d);box-shadow:0 10px 26px rgba(211,154,13,.17)}
#tp-main{padding:8px 16px 14px}.tp-saved{padding:3px 16px calc(26px + env(safe-area-inset-bottom,0px))}.tp-section-label{margin:14px 0 9px}
.tp-stage-kicker{margin:2px 0 13px;color:#ddb54f;font-size:9px;letter-spacing:2.2px}
.tp-code-card{padding:14px 14px 16px;border-radius:24px}.tp-code-wrap .tp-forgecode304{margin-top:2px!important;max-width:346px}.tp-code-wrap>.tp-member-label{display:none}.tp-identity{margin-top:18px}.tp-identity strong{font-size:25px}.tp-code-card p{max-width:310px;font-size:12.5px;line-height:1.55;color:#9d9d9d}
.tp-directory-state{display:inline-flex;align-items:center;gap:7px;margin:13px auto 4px;padding:8px 11px;border-radius:999px;border:1px solid rgba(211,164,40,.2);background:rgba(211,164,40,.055);font-size:9px;letter-spacing:1.2px}.tp-directory-state i{width:7px;height:7px;border-radius:50%;background:#b89233;box-shadow:0 0 0 4px rgba(184,146,51,.08)}.tp-directory-state.ready{color:#f0c65d;border-color:rgba(240,198,93,.33);background:rgba(210,159,21,.09)}.tp-directory-state.ready i{background:#efc34d;box-shadow:0 0 12px rgba(239,195,77,.65)}
.tp-live-workout{margin:13px auto 0;padding:12px 13px;border-radius:14px;text-align:left;border:1px solid rgba(212,160,23,.25);background:linear-gradient(145deg,rgba(212,160,23,.08),rgba(255,255,255,.018));max-width:320px}.tp-live-workout b,.tp-live-workout span,.tp-live-workout small{display:block}.tp-live-workout b{font-size:9px;letter-spacing:1.5px;color:#e4b94e}.tp-live-workout span{margin-top:3px;color:#f3f3f3;font-weight:800;font-size:13px}.tp-live-workout small{margin-top:4px;color:#8f8f8f;font-size:10px;line-height:1.4}
.tp-code-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.tp-code-tools .btn{min-height:46px!important;margin:0!important;font-size:10px}
.tp-camera{aspect-ratio:1/1.13;max-height:none;border-radius:24px;border-color:rgba(216,168,32,.42);background:radial-gradient(circle at 50% 50%,#0b0b0b,#030303 70%);box-shadow:0 18px 46px rgba(0,0,0,.4)}.tp-scan-frame{inset:14%;border-color:rgba(255,255,255,.12);border-radius:28px}.tp-scan-target{position:absolute;inset:29%;display:grid;place-items:center;opacity:.15}.tp-scan-target img{width:100%;height:100%;object-fit:contain;filter:grayscale(1) brightness(1.8)}.tp-camera-badge{top:15px;background:rgba(4,4,4,.74);font-size:8px;letter-spacing:1.5px}.tp-scan-copy{padding:14px 8px 2px;text-align:center}.tp-scan-copy strong,.tp-scan-copy span{display:block}.tp-scan-copy strong{font-size:16px}.tp-scan-copy span{max-width:300px;margin:5px auto 0;color:#8f8f8f;font-size:11px;line-height:1.45}.tp-scan-tools{display:flex;justify-content:center;gap:8px;margin-top:10px}.tp-scan-tools .btn{width:auto;min-width:132px;min-height:42px!important;padding:0 14px!important;font-size:9px;background:#0e0e0e!important;border-color:rgba(255,255,255,.08)!important;color:#aaa!important}.tp-scan-tools .btn:first-child{color:#d9b14b!important;border-color:rgba(217,177,75,.28)!important}
.tp-success-mark{border-radius:50%;width:64px;height:64px;font-size:25px;background:radial-gradient(circle,#2f260f,#0c0c0b 68%);box-shadow:0 0 0 7px rgba(212,160,23,.035),0 14px 34px rgba(212,160,23,.14)}
.tp-compact-actions{display:grid;gap:8px;margin:16px auto 0;max-width:340px}.tp-compact-actions .btn{margin:0!important;min-height:52px!important}.tp-text-action{display:block;width:auto;margin:11px auto 0;padding:8px 12px;border:0;background:transparent;color:#9d9d9d;font:800 10px/1.2 var(--font-athletic,Arial);letter-spacing:.8px;text-transform:uppercase}.tp-text-action.danger,.tp-partner-links .danger{color:#c58484}
.tp-partner-card{width:100%;border:0;background:transparent;color:inherit;text-align:left;grid-template-columns:46px 1fr 24px;padding:13px 2px!important}.tp-partner-card:active{transform:scale(.992)}.tp-avatar{width:46px;height:46px;background:linear-gradient(145deg,#20190a,#0e0e0d);border-color:rgba(219,171,41,.44);border-radius:50%;box-shadow:inset 0 1px rgba(255,255,255,.05)}.tp-row-chevron{color:#d6ad4b;font-size:24px;text-align:right}.tp-partner-copy strong{font-size:14px}.tp-partner-copy span{font-size:9px}.tp-partner-copy small{margin-top:6px!important;font-size:8px!important;letter-spacing:1.2px!important}.tp-empty-premium{text-align:center;padding:20px 16px;background:rgba(255,255,255,.015)}
.tp-partner-hub{padding-top:8px}.tp-partner-hero{display:flex;align-items:center;justify-content:center;gap:13px;margin:12px auto 22px;text-align:left}.tp-avatar.xl{width:60px;height:60px;font-size:20px}.tp-partner-hero h3{margin:0;font-size:24px}.tp-partner-actions{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}.tp-action-card{min-height:128px;border-radius:20px;border:1px solid rgba(255,255,255,.075);background:linear-gradient(145deg,#131313,#0b0b0b);color:#fff;text-align:left;padding:16px;box-shadow:inset 0 1px rgba(255,255,255,.025)}.tp-action-card.primary{border-color:rgba(219,171,41,.44);background:radial-gradient(circle at 15% 5%,rgba(235,185,51,.17),transparent 45%),linear-gradient(145deg,#19150b,#0b0b0b)}.tp-action-card span,.tp-action-card b,.tp-action-card small{display:block}.tp-action-icon{font-size:22px;color:#e6bb4d}.tp-action-card b{margin-top:18px;font-size:12px;line-height:1.25;letter-spacing:.5px}.tp-action-card small{margin-top:5px;color:#8f8f8f;font-size:10px;line-height:1.35}.tp-partner-links{display:flex;justify-content:center;gap:16px;margin-top:16px}.tp-partner-links button{border:0;background:transparent;color:#aaa;font-size:10px;font-weight:800}.tp-privacy-line{max-width:320px!important;margin:18px auto 0!important;font-size:10.5px!important;color:#747474!important}
.tp-workout-preview{padding-bottom:4px}.tp-workout-preview>h3{font-size:27px;margin-top:7px}.tp-quick-stats{display:flex;justify-content:center;gap:8px;margin:13px 0 17px}.tp-quick-stats span{min-width:82px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:#0d0d0d;color:#858585;font-size:8px;font-weight:900;letter-spacing:1px}.tp-quick-stats b{display:block;margin-bottom:3px;color:#f0bf3e;font-size:17px;letter-spacing:0}.tp-day-label{font-size:9px!important;letter-spacing:1.2px;color:#b89644!important}.tp-workout-day-title{display:flex;align-items:end;justify-content:space-between;margin:15px 3px 8px;text-align:left}.tp-workout-day-title b{font-size:14px}.tp-workout-day-title span{color:#7e7e7e;font-size:10px}.tp-program-summary{margin-top:0!important;border-radius:18px}.tp-program-day{padding:14px!important}.tp-program-day strong{font-size:13.5px}.tp-program-day span{font-size:11px!important}.tp-program-day small{font-size:9px;color:#717171}.tp-adaptation-card{padding:0;overflow:hidden}.tp-adaptation-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;cursor:pointer}.tp-adaptation-card summary::-webkit-details-marker{display:none}.tp-adaptation-card summary b,.tp-adaptation-card summary span{display:block}.tp-adaptation-card summary>div>span{margin-top:3px;color:#8b8b8b;font-size:9.5px}.tp-details-plus{color:#ddb349;font-size:20px}.tp-adaptation-card[open] .tp-details-plus{transform:rotate(45deg)}.tp-adaptation-list{margin:0;padding:0 14px 12px}.tp-adaptation-list p{padding:7px 0;margin:0!important;border-top:1px solid rgba(255,255,255,.05)}.tp-sticky-actions{position:sticky;bottom:-14px;margin:14px -16px -14px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(8,8,8,.15),rgba(8,8,8,.98) 28%);backdrop-filter:blur(14px);z-index:10}.tp-sticky-actions .btn{margin:0!important;min-height:54px!important}.tp-sticky-actions .tp-text-action{display:inline-block;margin:8px 10px 0}
.tp-block-card{margin:16px 0;padding:15px;border:1px solid rgba(218,146,45,.3);border-radius:16px;background:rgba(188,106,20,.06)}.tp-block-card b,.tp-block-card span{display:block}.tp-block-card b{color:#e4b050;font-size:10px;letter-spacing:1px}.tp-block-card span{margin-top:5px;color:#9a9a9a;font-size:11px;line-height:1.45}
.tp-launch-state{min-height:55dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 20px}.tp-launch-ring{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(230,184,54,.52);background:radial-gradient(circle,rgba(230,184,54,.14),rgba(9,9,9,.96) 68%);box-shadow:0 0 0 12px rgba(230,184,54,.035),0 0 45px rgba(230,184,54,.14)}.tp-launch-ring span{color:#efc34f;font-size:34px}.tp-launch-state h3{margin:13px 0 3px;font-size:27px}.tp-launch-state p{color:#949494;font-size:11px}.tp-launch-progress{width:min(220px,70vw);height:3px;margin:22px auto 10px;overflow:hidden;border-radius:999px;background:#1a1a1a}.tp-launch-progress i{display:block;width:100%;height:100%;transform-origin:left;background:linear-gradient(90deg,#b77d00,#f4c84e);animation:tpLaunch .65s linear forwards}.tp-launch-state>strong{font-size:9px;letter-spacing:1.5px;color:#bfa55f}@keyframes tpLaunch{from{transform:scaleX(.05)}to{transform:scaleX(1)}}
.tp-status{margin:10px 0 0;padding:9px 11px;font-size:10.5px}.tp-saved>.btn{border-radius:14px;background:#0e0e0e!important;border-color:rgba(255,255,255,.065)!important;color:#b7b7b7!important;font-size:10px!important}.tp-saved>.btn#tp-inbox{color:#ececec!important;border-color:rgba(212,160,23,.18)!important}
@media(max-width:390px){.tp-shell{border-radius:0}.tp-head h2{font-size:20px}.tp-tabs{top:calc(74px + env(safe-area-inset-top,0px))}.tp-partner-actions{grid-template-columns:1fr 1fr}.tp-action-card{min-height:112px;padding:13px}.tp-action-card b{margin-top:14px;font-size:11px}.tp-code-tools{grid-template-columns:1fr}.tp-scan-tools{display:grid;grid-template-columns:1fr 1fr}.tp-scan-tools .btn{min-width:0}.tp-workout-preview>h3{font-size:24px}}
@media(max-width:340px){.tp-partner-actions{grid-template-columns:1fr}.tp-action-card{min-height:88px}.tp-action-card b{margin-top:8px}.tp-quick-stats span{min-width:70px}.tp-tabs button{font-size:9.5px}}
@media(min-width:700px){.tp-shell{border-radius:28px;max-height:92dvh}.tp-overlay{padding:18px}}
@media(prefers-reduced-motion:reduce){.tp-launch-progress i{animation:none}.tp-partner-card:active{transform:none}}

/* PASS311 — ForgeTag identity language. The secure member hash remains internal. */
.tp-forge-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  font-family:var(--font-display, 'Cinzel', serif);
  font-weight:800;
  letter-spacing:.105em;
  text-transform:uppercase;
  color:var(--gold, #d7ad43);
  font-size:clamp(.76rem,2.55vw,.94rem);
  line-height:1.3;
  overflow-wrap:anywhere;
}
.tp-forge-tag-label{
  display:block;
  margin-top:.3rem;
  color:rgba(255,255,255,.48);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.tp-partner-copy .tp-forge-tag{
  justify-content:flex-start;
  font-size:.68rem;
  letter-spacing:.075em;
}
.tp-preview-handle.tp-forge-tag{
  margin-top:.25rem;
}
.tp-directory-retry{
  margin-left:.35rem;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:900;
  letter-spacing:.08em;
  text-decoration:underline;
  text-underline-offset:.18em;
}

/* PASS312 — Forge Status / Armory-grade presence module */
.tp-forge-status{position:relative;max-width:360px;margin:18px auto 4px;padding:14px 15px 13px;border-radius:18px;border:1px solid rgba(213,166,38,.28);background:radial-gradient(circle at 12% 0%,rgba(225,177,49,.09),transparent 38%),linear-gradient(180deg,rgba(20,18,13,.98),rgba(10,10,10,.98));box-shadow:inset 0 1px rgba(255,255,255,.04),0 12px 30px rgba(0,0,0,.28);overflow:hidden;text-align:left}
.tp-forge-status:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,transparent 18%,rgba(255,215,92,.055) 46%,transparent 72%);transform:translateX(-120%);animation:tpForgeSweep 2.8s ease-in-out infinite}
.tp-forge-status-top,.tp-forge-status-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tp-forge-status-label{font:900 8.5px/1 var(--font-athletic,Arial);letter-spacing:1.8px;color:#9d8138}
.tp-forge-status-mark{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid rgba(226,178,49,.34);color:#e7b93e;font-size:10px;background:#151108;box-shadow:0 0 18px rgba(226,178,49,.12)}
.tp-forge-status-title{margin-top:9px;font:900 14px/1.1 var(--font-athletic,Arial);letter-spacing:1.15px;color:#f4efe4;text-transform:uppercase}
.tp-forge-status-sub{margin-top:6px;color:#989898;font-size:10.5px;line-height:1.45}
.tp-forge-meter{height:4px;margin-top:12px;border-radius:999px;background:#211f1a;box-shadow:inset 0 1px 2px rgba(0,0,0,.6);overflow:hidden}
.tp-forge-meter span{display:block;width:var(--forge-p,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#8d5e00,#dca91f 55%,#f7cf5b);box-shadow:0 0 14px rgba(233,184,55,.38);transition:width .45s cubic-bezier(.2,.8,.2,1)}
.tp-forge-status-foot{margin-top:7px;color:#6f674f;font:800 7.5px/1 var(--font-athletic,Arial);letter-spacing:1.15px}
.tp-forge-status.ready{border-color:rgba(220,173,47,.42)}
.tp-forge-status.ready .tp-forge-status-title{color:#efc653}
.tp-forge-status.train{border-color:rgba(237,190,61,.66);box-shadow:inset 0 1px rgba(255,255,255,.05),0 0 0 1px rgba(196,143,10,.08),0 16px 38px rgba(0,0,0,.34),0 0 26px rgba(226,177,42,.08)}
.tp-forge-status.train .tp-forge-status-title{color:#ffd35b}
.tp-forge-status.train .tp-forge-status-mark{box-shadow:0 0 20px rgba(237,190,61,.22)}
.tp-forge-status.sync .tp-forge-meter span{width:100%!important;transform-origin:left;animation:tpForgeLoad .8s cubic-bezier(.2,.8,.2,1) forwards,tpForgePulse 1.1s ease-in-out .8s infinite}
.tp-forge-status.error{border-color:rgba(188,90,90,.36);background:linear-gradient(180deg,rgba(37,16,16,.94),rgba(12,10,10,.98))}
.tp-forge-status.error .tp-forge-status-title{color:#e7a0a0}.tp-forge-status.error .tp-forge-status-mark{color:#d48f8f;border-color:rgba(212,143,143,.28)}
.tp-code-purpose{margin-bottom:0!important}.tp-code-tools{margin-top:15px!important}
@keyframes tpForgeSweep{0%,58%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}
@keyframes tpForgeLoad{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes tpForgePulse{0%,100%{filter:brightness(.85)}50%{filter:brightness(1.3)}}
@media(prefers-reduced-motion:reduce){.tp-forge-status:before,.tp-forge-status.sync .tp-forge-meter span{animation:none}.tp-forge-status.sync .tp-forge-meter span{transform:scaleX(1)}.tp-forge-meter span{transition:none}}

/* PASS314 — contextual camera permission / native pre-scan state */
.tp-camera-ready{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:radial-gradient(circle at 50% 38%,rgba(218,169,35,.10),rgba(4,4,4,.92) 58%,#030303 100%);pointer-events:none}.tp-camera-ready[hidden]{display:none}.tp-camera-ready img{width:58px;height:66px;object-fit:contain;filter:drop-shadow(0 0 16px rgba(218,169,35,.22));margin-bottom:15px}.tp-camera-ready b{color:#e4b94c;font-size:11px;letter-spacing:1.8px}.tp-camera-ready span{max-width:240px;margin-top:7px;color:#888;font-size:11px;line-height:1.45}.tp-camera-idle .tp-scan-pulse{display:none}.tp-camera-idle .tp-scan-target{opacity:.07}.tp-camera-idle .tp-scan-frame{opacity:.55}.tp-scan-tools .btn-primary{background:linear-gradient(135deg,#e0aa18,#f2c84b)!important;color:#0b0b0b!important;border-color:#f0bc31!important;box-shadow:0 8px 24px rgba(224,170,24,.16)}


/* PASS315 — instant scan visibility + stronger primary scanner action */
.tp-scan-tools .btn-primary{
  min-height:58px!important;
  background:linear-gradient(135deg,#f1b918 0%,#ffd85f 52%,#e6aa0a 100%)!important;
  color:#050505!important;
  border:1px solid #ffe17b!important;
  font-size:13px!important;
  font-weight:1000!important;
  letter-spacing:1.45px!important;
  text-shadow:none!important;
  box-shadow:0 10px 30px rgba(224,170,24,.30),inset 0 1px 0 rgba(255,255,255,.48)!important;
}
.tp-scan-tools .btn-primary:disabled{opacity:.72!important;color:#111!important}
.tp-camera-badge{font-size:9px!important;font-weight:1000!important;color:#ffd45d!important}
.tp-scan-copy strong{font-weight:950!important;color:#f1ede2!important}

/* PASS316 — live scanner state stays legible while intentionally non-clickable. */
.tp-scan-tools .btn-primary[data-scanner-state="scanning"],.tp-scan-tools .btn-primary[data-scanner-state="camera"]{opacity:1!important;color:#080808!important;filter:none!important;}
/* PASS320 — Forge Link handoff: one decisive transition, no inbox/save detour. */
.tp-forge-link{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 22px;background:radial-gradient(circle at 50% 34%,rgba(221,174,58,.12),transparent 42%)}
.tp-forge-link .tp-launch-ring{box-shadow:0 0 0 1px rgba(221,174,58,.35),0 0 42px rgba(221,174,58,.16)}
.tp-forge-link small{display:block;margin-top:12px;color:#777;font-size:11px;letter-spacing:.3px}

/* PASS373 — ForgeCode is a protected app surface, not a downloadable/selectable webpage image. */
#tp-qr,.tp-qr-frame,.tp-forgecode304,#tp-qr canvas,#tp-qr img{
  -webkit-user-select:none!important;user-select:none!important;
  -webkit-touch-callout:none!important;
  -webkit-user-drag:none!important;
  touch-action:manipulation;
}
#tp-qr canvas,#tp-qr img{pointer-events:none!important;}
.tp-scan-target{pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;}
