/* TGPS v24.3 Shell Polish + Non-Sticky Popup Fix */
:root{--tgps-shell-version:"v24.3"}
.brand span,.brand small{letter-spacing:.08em;text-transform:uppercase}
.sidebar{
  position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#020402 0%,#020904 58%,#000 100%)!important;
  border-right:1px solid rgba(145,255,28,.32)!important;
  box-shadow:inset -18px 0 38px rgba(0,0,0,.35);
}
.brand{flex:0 0 auto;margin-bottom:18px!important}.brand-mark{box-shadow:0 0 32px rgba(145,255,28,.22)!important}
.nav{display:flex;flex-direction:column;gap:.34rem;flex:0 0 auto;overflow:visible!important;padding-right:0!important}
.nav a{
  display:flex!important;align-items:center;gap:.65rem;white-space:nowrap;
  min-height:42px;padding:9px 13px!important;border-radius:17px!important;
  color:#bfd1bc!important;background:transparent!important;border:1px solid transparent!important;
  font-weight:900!important;
}
.nav a span:first-child{width:1.18rem;text-align:center;opacity:.9;flex:0 0 1.18rem;color:#b9cdb6!important}.nav a span:last-child{overflow:hidden;text-overflow:ellipsis}
.nav a:hover{background:rgba(145,255,28,.055)!important;border-color:rgba(145,255,28,.22)!important;color:#f3fff2!important}
.nav a.active{
  background:linear-gradient(90deg,rgba(145,255,28,.08),rgba(145,255,28,.025))!important;
  border-color:rgba(145,255,28,.42)!important;color:#fff!important;
  box-shadow:inset 4px 0 0 #91ff1c,0 0 0 1px rgba(145,255,28,.06);
}
.side-footer{margin-top:22px!important;flex:0 0 auto;padding:0 0 14px!important;color:#bfd1bc!important}
.side-footer .notice{
  margin:0!important;padding:12px 14px!important;min-height:84px;max-height:96px;overflow:hidden;
  border-left:4px solid #91ff1c!important;border-radius:15px!important;
  background:linear-gradient(180deg,rgba(145,255,28,.10),rgba(145,255,28,.045))!important;
  color:#c8d8c5!important;font-size:12px!important;line-height:1.22!important;
}
.side-footer .notice b{display:block;color:#f3fff2!important;margin-bottom:3px}.side-footer .actions{margin-top:12px!important}
.topbar{position:sticky;top:0;z-index:20;backdrop-filter:blur(18px)}
@media(max-height:850px){.brand{margin-bottom:13px!important}.brand-mark{width:48px!important;height:48px!important}.brand strong{font-size:14px!important}.brand span{font-size:10px!important}.nav{gap:.18rem}.nav a{min-height:38px;padding:7px 12px!important}.side-footer{margin-top:14px!important}.side-footer .notice{font-size:11px!important;min-height:70px;max-height:78px;padding:10px 12px!important}.side-footer .actions{display:none!important}}
@media(max-width:900px){.app{display:block}.sidebar{position:relative;height:auto;max-height:none;overflow:visible}.nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.side-footer{margin-top:14px!important}.topbar{top:0}.hero{grid-template-columns:1fr!important}.span-6,.span-8,.span-4{grid-column:span 12!important}}

/* v24.3 cockpit polish */
.tgps-breadcrumb{display:flex;align-items:center;gap:9px;margin:0 0 14px;color:#b7c9b3;font-weight:800;font-size:13px;letter-spacing:.02em}.tgps-breadcrumb a{color:#91ff1c;text-decoration:none}.tgps-breadcrumb strong{color:#efffed}.tgps-breadcrumb span{opacity:.55}.topbar{gap:12px}.tgps-notify-btn{display:flex;align-items:center;gap:8px;border:1px solid rgba(145,255,28,.28);background:rgba(145,255,28,.07);color:#eaffdf;border-radius:999px;padding:10px 13px;font-weight:900;cursor:pointer}.tgps-notify-btn b{min-width:22px;height:22px;display:inline-grid;place-items:center;border-radius:999px;background:#91ff1c;color:#102008;font-size:12px}.tgps-search-panel{position:absolute;top:76px;left:calc(300px + 28px);width:min(720px,calc(100vw - 360px));max-height:72vh;overflow:hidden;z-index:80;border:1px solid rgba(145,255,28,.26);border-radius:22px;background:linear-gradient(180deg,rgba(13,26,12,.98),rgba(2,6,3,.98));box-shadow:0 24px 80px rgba(0,0,0,.55)}.tgps-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(145,255,28,.14);color:#f3fff2}.tgps-panel-head button{border:1px solid rgba(145,255,28,.22);background:rgba(255,255,255,.04);color:#fff;border-radius:12px;width:32px;height:32px;cursor:pointer}.tgps-search-results{padding:12px;max-height:58vh;overflow:auto}.tgps-search-hit{display:block;text-decoration:none;color:#e9f7e5;padding:12px 13px;border:1px solid rgba(145,255,28,.12);border-radius:16px;background:rgba(255,255,255,.025);margin-bottom:9px}.tgps-search-hit:hover{border-color:rgba(145,255,28,.45);background:rgba(145,255,28,.08)}.tgps-search-hit small{display:block;color:#91ff1c;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:1000}.tgps-search-hit b{display:block;font-size:15px;margin:3px 0}.tgps-search-hit span{display:block;color:#b9cbb6;font-size:12px}.tgps-notify-drawer{position:absolute;right:18px;top:78px;width:min(390px,calc(100vw - 36px));max-height:calc(100vh - 100px);overflow:hidden;z-index:90;border:1px solid rgba(145,255,28,.28);border-radius:24px;background:linear-gradient(180deg,rgba(14,32,12,.98),rgba(2,6,3,.98));box-shadow:0 24px 80px rgba(0,0,0,.6)}.tgps-notify-drawer [data-tgps-notify-list]{padding:12px;max-height:calc(100vh - 170px);overflow:auto}.tgps-alert{display:block;text-decoration:none;color:#e9f7e5;padding:12px 13px;border-radius:16px;border:1px solid rgba(145,255,28,.14);background:rgba(255,255,255,.025);margin-bottom:9px}.tgps-alert b{display:block}.tgps-alert span{display:block;color:#bfd1bc;font-size:12px;margin-top:3px}.tgps-alert.hot{border-color:rgba(255,93,93,.5);background:linear-gradient(90deg,rgba(255,93,93,.14),rgba(255,255,255,.02))}.tgps-alert.today{border-color:rgba(255,203,77,.55);background:linear-gradient(90deg,rgba(255,203,77,.12),rgba(255,255,255,.02))}.tgps-alert.soon{border-color:rgba(145,255,28,.3)}
@media(max-width:900px){.tgps-search-panel{left:14px;right:14px;top:122px;width:auto}.topbar{flex-wrap:wrap}.tgps-notify-btn span{display:none}}


/* v24.3: dropdown panels should travel with the document, not stick to the viewport */
.tgps-search-panel,.tgps-notify-drawer{position:absolute!important;}
@media(max-width:900px){.tgps-search-panel{top:122px!important;}}


/* v24.5 User Management + Responsive Cleanup & Registration Stabilization */
:root{--tgps-shell-version:"v24.5"}
.span-5{grid-column:span 5!important}
.span-7{grid-column:span 7!important}
.muted{color:var(--muted)}
.card,.hero-card,.login-card,.status{min-width:0}
.card *,.hero-card *,.login-card *{max-width:100%}
.input,select,textarea,button,.btn{max-width:100%}
.module-item{min-width:0;align-items:flex-start}
.module-item b,.module-item span{min-width:0;overflow-wrap:anywhere;word-break:normal}
.identity-help a{overflow-wrap:anywhere}
@media(max-width:1100px){
  .span-5,.span-7{grid-column:span 12!important}
  .grid{grid-template-columns:repeat(12,minmax(0,1fr))!important}
  .register-page .grid,.identity-page .grid{display:grid!important;grid-template-columns:1fr!important}
  .register-page .card,.identity-page .card{grid-column:1/-1!important;width:100%!important}
}
@media(max-width:980px){
  .app{display:block!important;max-width:none!important;width:100%!important}
  .sidebar{width:100%!important;min-width:0!important;padding:18px!important}
  .main{width:100%!important;min-width:0!important;padding:18px!important}
  .topbar{position:relative!important;display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important}
  .search,.user-chip{width:100%!important;max-width:none!important}
  .hero{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
  .hero-card,.card{border-radius:22px!important}
  .grid{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}
  .span-3,.span-4,.span-5,.span-6,.span-7,.span-8,.span-12{grid-column:1/-1!important}
  .identity-inline-form{display:grid!important;grid-template-columns:1fr!important}
  .identity-user-head{display:grid!important;grid-template-columns:1fr!important}
  .tgps-search-panel,.tgps-notify-drawer{left:12px!important;right:12px!important;top:auto!important;width:auto!important;max-width:none!important}
}
@media(max-width:620px){
  html,body{overflow-x:hidden!important}
  .brand{align-items:center!important}
  .brand-mark{width:52px!important;height:52px!important;flex:0 0 52px!important}
  .brand strong{font-size:15px!important;letter-spacing:.10em!important}
  .brand span{font-size:10px!important}
  .nav{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}
  .nav a{width:100%!important}
  .side-footer .notice{max-height:none!important;min-height:0!important}
  .hero-card{padding:22px!important}
  .hero h1,.login-card h1{font-size:clamp(34px,12vw,54px)!important;line-height:.96!important}
  .card,.login-card{padding:20px!important;width:100%!important}
  .login-wrap{display:block!important;min-height:100vh!important;padding:18px!important}
  .login-card{margin:0 auto!important}
  .status-row,.module-item{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}
  .btn,.actions a{white-space:normal!important;text-align:center!important}
}
@media(max-width:380px){
  .main{padding:12px!important}
  .sidebar{padding:14px!important}
  .card,.login-card,.hero-card{padding:16px!important;border-radius:18px!important}
  .input{padding:11px!important}
}

/* v24.5 User Management */
.identity-invite-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;margin-top:14px}.identity-invite-form .btn{min-height:48px}.identity-message{margin:10px 0 0;color:#c8d8c5;font-weight:800}.identity-message.success{color:#91ff1c}.identity-message.error{color:#ff8a8a}.identity-user-grid{display:grid;gap:16px}.identity-user-card{padding:18px;border-radius:22px;border:1px solid rgba(145,255,28,.18);background:linear-gradient(135deg,rgba(145,255,28,.06),rgba(255,255,255,.025));min-width:0}.identity-user-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.identity-user-head h3{margin:0 0 4px;color:#f3fff2}.identity-user-head p{margin:0;color:#b6c7b4;overflow-wrap:anywhere}.identity-role,.identity-status{display:inline-flex;margin-left:6px;margin-bottom:6px;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:1000;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(145,255,28,.24);background:rgba(145,255,28,.08);color:#eaffdf}.status-active{border-color:rgba(145,255,28,.55);color:#91ff1c}.status-pending_review,.status-pending_invite{border-color:rgba(255,209,102,.55);color:#ffd166}.status-disabled{border-color:rgba(255,83,112,.55);color:#ff8a8a}.identity-inline-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:12px;align-items:end}.identity-inline-form label{display:grid;gap:6px;color:#c8d8c5;font-size:12px;font-weight:900}.identity-module-checks{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px;border-radius:16px;border:1px solid rgba(145,255,28,.14);background:rgba(0,0,0,.18)}.identity-module-checks b{grid-column:1/-1;color:#91ff1c;text-transform:uppercase;letter-spacing:.10em;font-size:11px}.identity-module-checks label{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06);padding:8px 9px;border-radius:12px;min-width:0;overflow-wrap:anywhere}.identity-access-box{margin-top:14px;padding:14px;border-radius:18px;border:1px solid rgba(145,255,28,.14);background:rgba(0,0,0,.16)}.identity-access-box h4{margin:0 0 10px;color:#91ff1c;text-transform:uppercase;letter-spacing:.10em;font-size:12px}.identity-access-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:10px;align-items:center;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);margin-bottom:8px}.identity-access-row span{color:#b6c7b4;overflow-wrap:anywhere}.identity-access-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:10px;margin-top:10px}.identity-modules{margin-top:12px;color:#b6c7b4}.identity-modules b{display:block;color:#91ff1c;text-transform:uppercase;letter-spacing:.08em;font-size:11px;margin-bottom:4px}.btn.ghost{background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.14)!important}.btn.tiny{padding:7px 9px!important;font-size:11px!important;border-radius:11px!important}.module-list.compact .module-item{min-height:auto}.empty.compact{font-size:12px;margin:0;color:#9eaf9a}
@media(max-width:1180px){.identity-invite-form{grid-template-columns:repeat(2,minmax(0,1fr))}.identity-inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}.identity-module-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.identity-access-form,.identity-access-row{grid-template-columns:1fr}}
@media(max-width:620px){.identity-invite-form,.identity-inline-form,.identity-module-checks,.identity-access-form,.identity-access-row{grid-template-columns:1fr!important}.identity-user-head{display:grid;grid-template-columns:1fr}.identity-role,.identity-status{margin-left:0;margin-right:6px}}
/* v24.5h user recovery tools */
.identity-reset-box{margin-top:14px;padding:14px;border:1px solid rgba(125,255,45,.18);border-radius:18px;background:rgba(0,0,0,.18)}
.identity-password-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center;margin-top:10px}
.identity-recovery-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.identity-help{opacity:.72;font-size:13px;line-height:1.35;margin:10px 0 0}
.btn.danger,.btn.ghost.danger{border-color:rgba(255,97,97,.38)}
@media(max-width:760px){.identity-password-form{grid-template-columns:1fr}.identity-recovery-actions .btn{width:100%}}

/* v24.5h identity hardening */
.identity-audit-list{display:grid;gap:10px}.identity-audit-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 12px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.035)}.identity-audit-row span{color:var(--muted,#aab);font-size:.88rem;text-align:right}.identity-reset-box .danger{border-color:rgba(255,80,80,.35)}
@media(max-width:760px){.identity-audit-row{align-items:flex-start;flex-direction:column}.identity-audit-row span{text-align:left}}

/* v24.6 IP protection deterrence. Browser-side only; API auth is the real protection. */
.tgps-ip-guard body,.tgps-ip-guard .card,.tgps-ip-guard .hero,.tgps-ip-guard .registry-entity-card,.tgps-ip-guard .production-card,.tgps-ip-guard .identity-user-card{user-select:none;-webkit-user-select:none;}
.tgps-ip-guard input,.tgps-ip-guard textarea,.tgps-ip-guard select,.tgps-ip-guard [contenteditable="true"],.tgps-ip-guard .allow-copy{user-select:text;-webkit-user-select:text;}
.tgps-security-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(74,222,128,.35);background:rgba(22,101,52,.18);color:#bbf7d0;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;letter-spacing:.02em;}
