*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:#f4f6f9;color:#172033}a{text-decoration:none;color:inherit}.auth-bg{min-height:100vh;display:grid;place-items:center}.auth-card{width:min(430px,92%);background:#fff;padding:34px;border-radius:16px;box-shadow:0 18px 50px #0002}.brand{font-size:28px;font-weight:800}.brand small{font-size:12px}.inv{color:#fff;padding:24px}.muted{color:#6b7280}.auth-card form,.field{display:grid;gap:8px}.auth-card form{gap:12px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #ccd3dd;border-radius:8px;font:inherit;background:#fff}button,.btn{display:inline-block;border:0;border-radius:8px;padding:11px 15px;background:#172033;color:#fff;font-weight:700;cursor:pointer}.shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{background:#172033;min-height:100vh}nav{display:grid;padding:0 12px 22px;gap:3px}nav a{color:#cbd5e1;padding:9px 14px;border-radius:8px;font-size:14px}nav a:hover,nav a.active{background:#ffffff17;color:#fff}.main{min-width:0}.main>header{height:68px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:16px;padding:0 26px}.global-search{flex:1}.global-search input{max-width:600px}.ghost{background:#fff;color:#172033;border:1px solid #d6dbe3}.ghost2{background:#fff;color:#172033;border:1px solid #d6dbe3}.content{padding:28px}.content h1{margin:0 0 6px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:24px 0}.card,.panel{background:#fff;border:1px solid #e4e8ef;border-radius:13px;padding:20px}.card{display:grid;gap:8px}.card b{font-size:30px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.filter{display:flex;gap:8px;max-width:600px;margin-bottom:16px}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:11px 12px;border-bottom:1px solid #e7eaf0;text-align:left;white-space:nowrap}th{background:#f8fafc}.actions{display:flex;gap:10px;align-items:center}.actions form{margin:0}.link{background:none;padding:0;color:#172033}.danger{color:#b42318}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wide{grid-column:1/-1}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.alert{padding:12px 14px;border-radius:9px;margin-bottom:15px}.alert.success{background:#eaf8ee}.alert.error{background:#fff0f0}.quick{display:flex;gap:10px;flex-wrap:wrap}.quick a{border:1px solid #d9dee7;padding:10px 12px;border-radius:8px}.search-results{display:grid}.search-results a{display:grid;grid-template-columns:140px 1fr;padding:12px;border-bottom:1px solid #eee}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{min-height:auto}nav{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.content{padding:16px}.form-grid,.stats{grid-template-columns:1fr}.main>header{padding:10px;height:auto;flex-wrap:wrap}.wide{grid-column:auto}}

.secret-box{padding:16px;border:1px solid #d8dee8;border-radius:12px;margin:16px 0;display:grid;gap:6px}.secret-box code{font-size:1.05rem;word-break:break-all}.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.recovery-grid code{padding:10px;border:1px solid #d8dee8;border-radius:8px;text-align:center}@media(max-width:520px){.recovery-grid{grid-template-columns:1fr}}


/* THBBD 2.1.1 - responsive/mobile hardening */
.mobile-menu-toggle{display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 12px}
.recovery-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.recovery-confirm{display:flex;align-items:flex-start;gap:9px;margin:16px 0;line-height:1.35}
.recovery-confirm input{width:auto;margin-top:3px}
.recovery-note{font-size:.92rem;color:#6b7280}
@media(max-width:900px){
  .app-shell,.shell{display:block;min-height:100vh}
  .sidebar,.shell>aside{position:fixed;inset:0 auto 0 0;width:min(82vw,300px);z-index:1000;transform:translateX(-105%);transition:transform .2s ease;box-shadow:10px 0 30px #0003;overflow-y:auto;min-height:100vh}
  body.nav-open .sidebar,body.nav-open .shell>aside{transform:translateX(0)}
  body.nav-open:after{content:"";position:fixed;inset:0;background:#0006;z-index:999}
  .sidebar nav,.shell>aside nav{display:grid;grid-template-columns:1fr}
  .mobile-menu-toggle{display:inline-flex}
  .main>header,.topbar{position:sticky;top:0;z-index:900;min-height:64px;height:auto;padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .global-search{order:3;flex-basis:100%}
  .global-search input{max-width:none}
  .content{padding:18px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-head{gap:10px;align-items:flex-start;flex-wrap:wrap}
}
@media(max-width:600px){
  .auth-card{width:min(100% - 24px,430px);padding:22px}
  .content{padding:14px}
  .stats{grid-template-columns:1fr;gap:10px;margin:16px 0}
  .card,.panel{padding:15px}
  .quick{display:grid;grid-template-columns:1fr 1fr}
  .quick a{text-align:center;min-height:44px;display:grid;place-items:center}
  .filter{flex-direction:column;max-width:none}
  .filter>*{width:100%}
  .actions{flex-wrap:wrap}
  button,.btn{min-height:44px}
  .table-wrap{margin-inline:-14px;border-left:0;border-right:0;border-radius:0}
  .recovery-actions{display:grid;grid-template-columns:1fr}
  .recovery-actions button{width:100%}
}

/* THBBD 2.1.2 beta — visual refinement. No external fonts or UI libraries. */
:root{--ink:#172033;--ink-2:#25324a;--accent:#2d6cdf;--accent-soft:#eaf1ff;--line:#e4e9f1;--surface:#fff;--canvas:#f3f6fb;--muted:#667085;--shadow:0 14px 36px rgba(23,32,51,.08)}
body{background:radial-gradient(circle at 80% 0,#eaf1ff 0,transparent 30%),linear-gradient(180deg,#f8faff 0,#f3f6fb 45%,#f6f8fb 100%);color:var(--ink);letter-spacing:.005em}
.shell{grid-template-columns:264px 1fr}
aside,.sidebar{background:linear-gradient(180deg,#111827 0%,#17233a 58%,#111827 100%);border-right:1px solid rgba(255,255,255,.06);box-shadow:12px 0 36px rgba(17,24,39,.08)}
.brand.inv,.brand.inverse{padding:24px 20px 20px;display:flex;align-items:center;gap:12px;color:#fff;font-size:20px}
.brand.inv>span:last-child,.brand.inverse>span:last-child{display:grid;gap:2px}.brand small{display:block;color:#9eacc4;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#c9d9ff);color:#17233a;font-weight:900;box-shadow:0 8px 24px rgba(0,0,0,.22)}
nav{gap:4px;padding:4px 12px 20px}nav a{display:flex;align-items:center;gap:11px;color:#b9c4d6;padding:10px 12px;border-radius:10px;transition:background .15s ease,color .15s ease,transform .15s ease}nav a:hover{transform:translateX(2px)}nav a.active{background:linear-gradient(90deg,rgba(78,128,231,.30),rgba(255,255,255,.07));color:#fff;box-shadow:inset 3px 0 #8eb3ff}.nav-icon{width:22px;text-align:center;color:#9fb9ec;font-size:16px}.sidebar-foot{margin:auto 16px 18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);font-size:10px;color:#74829b;letter-spacing:.05em;text-transform:uppercase}
.main>header,.topbar{height:74px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid rgba(215,222,233,.85);padding:0 30px;position:sticky;top:0;z-index:50}.global-search input{height:42px;max-width:660px;background:#f7f9fc;border-color:#e1e7ef;border-radius:12px;padding-left:15px;box-shadow:inset 0 1px 2px rgba(16,24,40,.02)}.global-search input:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:#8fb1ee;box-shadow:0 0 0 4px rgba(45,108,223,.10)}
.user-chip{display:flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;white-space:nowrap}.user-dot{width:8px;height:8px;border-radius:50%;background:#25a56a;box-shadow:0 0 0 3px #dff5ea}
.content{padding:34px;max-width:1600px;width:100%;margin:0 auto}.content h1{font-size:30px;letter-spacing:-.025em}.content h2{letter-spacing:-.015em}.muted{color:var(--muted)}
.card,.panel{border:1px solid rgba(222,228,237,.92);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.card{position:relative;overflow:hidden;padding:22px}.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#2d6cdf,#7aa7ff)}.card span{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.card b{font-size:34px;letter-spacing:-.04em;color:#17233a}.panel{padding:22px}
.btn,button{border-radius:10px;background:linear-gradient(180deg,#24324a,#172033);box-shadow:0 4px 12px rgba(23,32,51,.12);transition:transform .12s ease,box-shadow .12s ease}.btn:hover,button:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(23,32,51,.16)}.ghost,.ghost2{background:#fff;color:var(--ink);box-shadow:none;border-color:#dce2eb}.quick{gap:12px}.quick a{background:linear-gradient(180deg,#fff,#f8faff);border-color:#dfe6f0;border-radius:12px;padding:13px 15px;font-weight:700;color:#31405b;box-shadow:0 4px 12px rgba(23,32,51,.04)}
.table-wrap{overflow:auto}.table-wrap table{background:#fff}.table-wrap th{background:#f6f8fc;color:#526078;font-size:11px;text-transform:uppercase;letter-spacing:.045em}.table-wrap tr:hover td{background:#f8faff}.table-wrap td{color:#26344d}.page-head{margin-bottom:22px}.filter input{background:#fff}
.alert{border:1px solid transparent}.alert.success{border-color:#cdebd7;color:#17633b}.alert.error{border-color:#ffd4d4;color:#8d2525}
.auth-bg{background:radial-gradient(circle at 50% -10%,#dce8ff,transparent 36%),linear-gradient(145deg,#111827,#243654)}.auth-card{border:1px solid rgba(255,255,255,.55);box-shadow:0 28px 70px rgba(0,0,0,.24);border-radius:20px}
@media(max-width:900px){.shell{grid-template-columns:1fr}.content{padding:20px}.main>header,.topbar{padding:10px 16px}.sidebar-foot{display:none}}
