:root{--bg:#f7f9fc;--card:#fff;--ink:#111827;--muted:#64748b;--line:#e2e8f0;--blue:#2563eb;--green:#16a34a;--amber:#f59e0b;--red:#ef4444;--purple:#7c3aed;--chrome:#2f3742;--chrome2:#27303a;--chrome-line:rgba(255,255,255,.10);--shadow:0 18px 45px rgba(15,23,42,.07);--radius:18px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);overflow:hidden}button,input,select,textarea{font:inherit}.login{height:100%;display:grid;grid-template-columns:470px 1fr;background:linear-gradient(135deg,var(--chrome) 0%,var(--chrome2) 42%,var(--bg) 42%)}.login-card{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:34px;margin:auto;width:min(410px,calc(100% - 40px))}.logo{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#4f8cff,#32d3a6);display:grid;place-items:center;color:#fff;font-size:25px;font-weight:950}.login h1{font-size:31px;margin:22px 0 8px;letter-spacing:-.04em}.login p{color:var(--muted);line-height:1.6}.field{display:grid;gap:7px;margin:14px 0}.field label{font-size:13px;font-weight:800;color:#334155}.input,.select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;padding:12px 14px;outline:0}.input:focus,.select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px #bfdbfe66}.btn{border:0;border-radius:12px;background:#e2e8f0;color:#0f172a;font-weight:850;cursor:pointer;display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:10px 13px}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(15,23,42,.08)}.btn-primary{background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff}.btn-green{background:#16a34a;color:#fff}.btn-danger{background:#ef4444;color:#fff}.btn-light{background:#fff;border:1px solid var(--line)}.btn-small{padding:7px 10px;font-size:12px}.notice{padding:13px;border-radius:13px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;margin-top:14px}.login-visual{display:flex;align-items:center;justify-content:center;color:#fff;padding:50px}.login-panel{max-width:620px;background:rgba(15,23,42,.42);border:1px solid rgba(255,255,255,.14);border-radius:30px;padding:36px;backdrop-filter:blur(14px)}.login-panel h2{font-size:52px;line-height:1;margin:0 0 18px}.shell{height:100%;display:grid;grid-template-columns:286px 1fr;overflow:hidden}.sidebar{background:linear-gradient(180deg,var(--chrome),var(--chrome2));color:#dbe3ee;border-right:1px solid var(--chrome-line);display:flex;flex-direction:column;min-height:0;box-shadow:12px 0 34px rgba(15,23,42,.12)}.side-head{height:86px;display:flex;gap:13px;align-items:center;padding:0 20px;border-bottom:1px solid var(--chrome-line)}.side-head strong{display:block;color:#fff;font-size:18px}.side-head span{font-size:13px;color:#b9c2cf}.side-nav{padding:18px 10px;display:grid;gap:6px;overflow:auto}.nav-btn{border:0;border-radius:12px;background:transparent;color:#d8dee7;display:flex;align-items:center;gap:12px;padding:12px 14px;font-weight:800;text-align:left;cursor:pointer}.nav-btn:hover{background:rgba(255,255,255,.075);color:#fff}.nav-btn.active{background:#eef5ff;color:#1d4ed8;box-shadow:inset 4px 0 0 #3b82f6,0 10px 24px rgba(0,0,0,.12)}.nav-ico{width:24px;height:24px;border-radius:8px;background:rgba(255,255,255,.08);display:grid;place-items:center}.nav-btn.active .nav-ico{background:#dbeafe;color:#1d4ed8}.health{margin:18px 16px 0;padding:15px;border:1px solid var(--chrome-line);background:rgba(255,255,255,.07);border-radius:16px;color:#fff;font-size:13px}.health-row{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.09);padding-top:9px;margin-top:9px;color:#b9c2cf}.health-row b{color:#fff}.side-foot{margin-top:auto;padding:18px 20px;color:#aab4c2;font-size:12px;line-height:1.5}.workspace{height:100%;min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:78px;flex:0 0 78px;background:rgba(47,55,66,.97);border-bottom:1px solid var(--chrome-line);display:flex;align-items:center;gap:16px;padding:0 28px;color:#fff;box-shadow:0 10px 28px rgba(15,23,42,.12);z-index:10}.menu{width:42px;height:42px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);color:#fff;border-radius:12px;cursor:pointer}.search{flex:1;max-width:540px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);border-radius:13px;padding:0 12px;display:flex;align-items:center;gap:9px}.search input{border:0;background:transparent;outline:0;color:#fff;width:100%;padding:12px 2px}.search input::placeholder{color:#cbd5e1}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.icon-btn{width:42px;height:42px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);color:#fff;border-radius:13px;display:grid;place-items:center;cursor:pointer}.user-chip{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);border-radius:999px;padding:5px 10px;color:#fff}.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#60a5fa,#34d399);display:grid;place-items:center;font-weight:950}.user-chip small{display:block;color:#cbd5e1}.content{flex:1;min-height:0;overflow:auto;padding:28px;background:linear-gradient(180deg,#fff,#f7f9fc 270px)}.title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:22px}.title h1{font-size:29px;margin:0;letter-spacing:-.045em}.title p{margin:7px 0 0;color:var(--muted)}.grid{display:grid;gap:18px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.section{padding:20px}.metric{padding:20px;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;left:22px;right:22px;bottom:16px;height:32px;border-radius:999px;background:linear-gradient(90deg,transparent,#dbeafe,transparent);filter:blur(4px);opacity:.7}.metric-top{display:flex;gap:14px;align-items:center;position:relative;z-index:1}.metric-ico{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:22px}.blue{background:#dbeafe;color:#2563eb}.green{background:#dcfce7;color:#16a34a}.amber{background:#fef3c7;color:#d97706}.purple{background:#ede9fe;color:#7c3aed}.metric strong{display:block;font-size:27px;letter-spacing:-.04em}.metric span{font-size:13px;color:var(--muted)}.head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:15px}.head h2{font-size:18px;margin:0}.head p{font-size:14px;color:var(--muted);margin:5px 0 0}.module-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.module-card{border:1px solid var(--line);border-radius:16px;padding:17px;background:#fff;min-height:145px}.module-card.active{border-color:#22c55e;background:linear-gradient(135deg,#f0fdf4,#fff)}.module-card.installed{border-color:#93c5fd;background:#eff6ff}.module-top{display:flex;gap:12px}.module-logo{width:44px;height:44px;border-radius:12px;background:#e2e8f0;display:grid;place-items:center}.module-card h3{font-size:16px;margin:0 0 8px}.pill{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:850}.pill.green{background:#dcfce7;color:#15803d}.pill.blue{background:#dbeafe;color:#1d4ed8}.pill.amber{background:#fef3c7;color:#b45309}.pill.red{background:#fee2e2;color:#b91c1c}.pill.gray{background:#e2e8f0;color:#475569}.two{grid-template-columns:1.1fr .9fr}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;padding:12px;color:#64748b;font-size:12px;border-bottom:1px solid var(--line)}.table td{padding:13px 12px;border-bottom:1px solid #eef2f7;vertical-align:middle}.table tr:hover td{background:#f8fafc}.tenant-layout{grid-template-columns:1fr 360px}.detail{padding:20px;position:sticky;top:0;height:max-content}.empty{padding:28px;text-align:center;color:#64748b;background:#fbfdff;border:1px dashed #cbd5e1;border-radius:16px;line-height:1.6}.empty strong{font-size:17px;color:#172033}.upload{border:2px dashed #bfdbfe;background:#eff6ff;border-radius:18px;padding:22px;text-align:center}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#2f3742;color:#e2e8f0;border-radius:14px;padding:14px;white-space:pre-wrap;max-height:300px;overflow:auto}.drawer{position:fixed;top:0;right:0;width:min(460px,100%);height:100%;background:#fff;border-left:1px solid var(--line);box-shadow:-30px 0 80px rgba(15,23,42,.12);transform:translateX(110%);transition:.2s;z-index:40;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{padding:20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.drawer-body{padding:20px;overflow:auto}.backdrop{position:fixed;inset:0;background:rgba(15,23,42,.25);display:none;z-index:35}.backdrop.open{display:block}.toast{position:fixed;right:22px;bottom:22px;z-index:80;max-width:460px;padding:14px;border-radius:14px;box-shadow:var(--shadow)}.toast.ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.toast.err{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}@media(max-width:1120px){.metrics{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}.two,.three,.tenant-layout{grid-template-columns:1fr}.shell{grid-template-columns:84px 1fr}.side-head strong,.side-head span,.nav-btn label,.health,.side-foot{display:none}.side-head{justify-content:center;padding:0}.side-nav{padding:14px}.nav-btn{justify-content:center}.nav-ico{font-size:18px}}@media(max-width:740px){body{overflow:auto}.shell{display:block;height:auto}.sidebar{position:fixed;left:0;top:0;bottom:0;width:286px;z-index:50;transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.workspace{height:auto;min-height:100vh}.topbar{padding:0 14px}.search{display:none}.content{overflow:visible;padding:18px}.metrics,.module-grid{grid-template-columns:1fr}.user-chip div:not(.avatar){display:none}}

/* Phase 28K — reduced-glare workspace background */
:root{
  --bg:#e7edf4;
  --card:#fbfcfe;
  --line:#ccd7e5;
  --shadow:0 14px 34px rgba(15,23,42,.075);
}
body{background:#e7edf4!important;}
.login{background:linear-gradient(135deg,var(--chrome) 0%,var(--chrome2) 42%,#e7edf4 42%)!important;}
.content{
  background:linear-gradient(180deg,#edf2f7 0%,#e4ebf3 340px,#e2e9f1 100%)!important;
}
.card,.login-card,.drawer,.module-card,.metric,.section{
  background:#fbfcfe!important;
  border-color:#ccd7e5!important;
}
.metric,.section,.module-card,.drawer,.login-card{box-shadow:0 14px 34px rgba(15,23,42,.075)!important;}
.empty{background:#eef3f8!important;border-color:#b9c6d6!important;color:#536276!important;}
.table th{background:#eef3f8!important;color:#526176!important;}
.table td{border-bottom-color:#dce4ee!important;}
.table tr:hover td{background:#edf4fb!important;}
.input,.select,textarea{background:#f9fbfe!important;border-color:#cbd6e4!important;}
.btn-light{background:#f8fafc!important;border-color:#cbd6e4!important;}
.notice{background:#e7f0ff!important;border-color:#b8c9e8!important;}
.module-card.active{background:linear-gradient(135deg,#edf9f1,#fbfcfe)!important;}
.module-card.installed{background:#e9f2ff!important;}
.upload{background:#e9f2ff!important;border-color:#adc8ef!important;}
@media(max-width:740px){.content{background:#e2e9f1!important;}}

/* Phase 29A — Core Connect platform completion foundation */
.login-card-wide{width:min(560px,calc(100% - 40px));max-height:calc(100vh - 48px);overflow:auto}.auth-tabs{display:flex;gap:8px;margin:18px 0 16px;background:#edf2f7;border-radius:14px;padding:5px}.auth-tab{flex:1;border:0;border-radius:11px;padding:10px 12px;background:transparent;color:#475569;font-weight:850;cursor:pointer}.auth-tab.active{background:#fff;color:#1d4ed8;box-shadow:0 8px 18px rgba(15,23,42,.06)}.auth-panel{display:none}.auth-panel.active{display:block}.phase29-login .login-panel h2{max-width:620px}.ownership-list{display:grid;gap:10px}.ownership-list div{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:13px;background:#f3f6fb;border:1px solid #dde6f2}.ownership-list span{font-weight:950;color:#1d4ed8}.rule-list{line-height:1.9;color:#475569;margin:0;padding-left:20px}.clickable{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.clickable:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(15,23,42,.12)}.code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.45}.metric.purple .metric-icon,.metric-icon.purple{background:#ede9fe;color:#7c3aed}.metric.amber .metric-icon,.metric-icon.amber{background:#fef3c7;color:#b45309}.metric.green .metric-icon,.metric-icon.green{background:#dcfce7;color:#15803d}.metric.blue .metric-icon,.metric-icon.blue{background:#dbeafe;color:#1d4ed8}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(max-width:760px){.login-card-wide{width:calc(100% - 28px);max-height:none}.form-grid{grid-template-columns:1fr}.auth-tabs{flex-direction:column}.phase29-login{overflow:auto}}
.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:22px}.page-head h1{font-size:29px;margin:0;letter-spacing:-.045em}.page-head p{margin:7px 0 0;color:var(--muted)}.metric-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:22px;flex:0 0 auto}.metric{display:flex;gap:14px;align-items:center}.metric>div:last-child{position:relative;z-index:1}.metric-icon.blue{background:#dbeafe;color:#2563eb}.metric-icon.green{background:#dcfce7;color:#16a34a}.metric-icon.amber{background:#fef3c7;color:#d97706}.metric-icon.purple{background:#ede9fe;color:#7c3aed}


/* Phase 29B — users, roles, permissions, and signup completion */
.role-list{display:grid;gap:10px}.role-row{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.role-row:hover{border-color:#9bb7e8;background:#f8fbff}.role-row strong{color:#172033}.role-row span{font-size:12px;color:#65748b}.permission-list{display:grid;gap:8px;margin:10px 0 16px}.permission-list div{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:10px}.permission-list b{display:block;font-size:13px}.permission-list span{display:block;color:#64748b;font-size:11px;margin-top:3px}.permission-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.permission-check{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;cursor:pointer}.permission-check:hover{border-color:#bfdbfe;background:#f8fbff}.permission-check input{margin-top:4px}.permission-check b{display:block}.permission-check small{display:block;color:#64748b;margin-top:3px}.signup-status-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px}.user-actions{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:900px){.permission-check-grid{grid-template-columns:1fr}}

/* Phase 29C — Tenant/company management completion */
.tenant-console{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;align-items:start}.tenant-list-card{min-width:0}.tenant-filters{display:flex;gap:10px;flex-wrap:wrap}.tenant-filters .input{min-width:260px}.tenant-table tbody tr{cursor:pointer}.tenant-table tbody tr:hover td{background:#eef5ff}.tenant-detail-shell{position:sticky;top:96px;max-height:calc(100vh - 124px);overflow:auto}.tenant-detail-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}.tenant-avatar{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#34d399);display:grid;place-items:center;color:#fff;font-weight:950;font-size:24px;box-shadow:0 14px 26px rgba(37,99,235,.18)}.tenant-detail-head h2{margin:0;font-size:20px;line-height:1.1}.tenant-detail-head p{margin:6px 0;color:#64748b}.tenant-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tenant-tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid #dbe3ef;margin:10px -4px 16px;padding:0 4px}.tenant-tabs .tab{border:0;background:transparent;padding:10px 12px;font-weight:850;color:#64748b;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}.tenant-tabs .tab.active{color:#2563eb;border-color:#2563eb}.tenant-overview-grid{display:grid;grid-template-columns:1fr;gap:14px}.tenant-overview-grid h3{margin:0 0 8px;font-size:14px;color:#172033}.tenant-overview-grid>div{border:1px solid #dbe3ef;border-radius:16px;background:#f8fbff;padding:14px}.detail-line{display:grid;grid-template-columns:120px 1fr;gap:10px;border-top:1px solid #e6edf6;padding:8px 0;font-size:13px}.detail-line:first-of-type{border-top:0}.detail-line span{color:#64748b}.detail-line b{color:#172033;font-weight:850}.status-control-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid #dbe3ef;border-radius:16px;background:#fff;padding:12px;margin-top:14px}.status-control-strip strong{margin-right:4px}.note-card{border:1px solid #dbe3ef;border-radius:14px;background:#f8fbff;padding:12px;margin-bottom:10px}.note-card p{white-space:pre-wrap;color:#334155}.timeline-list{display:grid;gap:10px}.timeline-item{border-left:4px solid #2563eb;background:#f8fbff;border-radius:12px;padding:12px}.timeline-item span{display:inline-flex;border-radius:999px;padding:3px 8px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:900}.timeline-item strong{display:block;margin-top:8px}.timeline-item p{margin:6px 0;color:#475569}.timeline-item small,.note-card small{color:#64748b}.tenant-table small{color:#64748b}.tenant-table td,.tenant-table th{vertical-align:middle}@media(max-width:1180px){.tenant-console{grid-template-columns:1fr}.tenant-detail-shell{position:relative;top:auto;max-height:none}}@media(max-width:760px){.tenant-filters{display:grid;grid-template-columns:1fr}.tenant-filters .input{min-width:0}.detail-line{grid-template-columns:1fr}.tenant-tabs{margin-left:-10px;margin-right:-10px}.tenant-detail-actions .btn{width:100%;justify-content:center}}

/* Phase 29C2 company profile open fix */
.tenant-row{cursor:pointer}.tenant-row:hover td{background:#f3f7fb!important}.tenant-row:focus{outline:2px solid #3b82f6;outline-offset:-2px}.error-empty{background:#fff1f2!important;border-color:#fecdd3!important;color:#991b1b!important}.tenant-detail-shell{min-height:420px}.tenant-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tenant-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #e5e7eb;margin:14px 0}.tenant-tabs .tab{border:0;background:transparent;padding:10px 12px;font-weight:800;color:#64748b;border-bottom:3px solid transparent;cursor:pointer}.tenant-tabs .tab.active{color:#2563eb;border-color:#2563eb}.tenant-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-line{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:7px 0;border-bottom:1px solid #eef2f7}.detail-line span{color:#64748b}.detail-line b{font-weight:800;color:#172033}@media(max-width:980px){.tenant-overview-grid{grid-template-columns:1fr}}

/* Phase 29C3 — company profile page, real tabs, medium-grey platform background */
:root{
  --bg:#d6dee8;
  --surface:#f4f7fb;
  --surface-2:#eef3f8;
  --card:#fbfdff;
  --line:#c5d0de;
  --line-strong:#aebccc;
  --shadow:0 14px 34px rgba(15,23,42,.09);
}
body{background:#d6dee8!important;}
.workspace{background:#d6dee8!important;}
.content{
  background:linear-gradient(180deg,#dce5ee 0%,#d6dee8 360px,#d1dbe6 100%)!important;
}
.card,.section,.drawer,.login-card,.module-card,.metric{
  background:#fbfdff!important;
  border-color:#c5d0de!important;
}
.empty{background:#e8eef5!important;border-color:#b8c5d4!important;}
.table th{background:#e8eef5!important;color:#4d5d70!important;}
.table td{border-bottom-color:#d7e0ea!important;}
.table tr:hover td{background:#eaf1f8!important;}
.input,.select,textarea{background:#f7fafd!important;border-color:#bac7d6!important;}
.btn-light{background:#f1f5f9!important;border-color:#bac7d6!important;}
.tenant-console{display:block!important;}
.tenant-detail-shell{display:none!important;}
.full-tenant-list{width:100%!important;}
.tenant-table tbody tr{cursor:pointer;}
.tenant-table tbody tr:hover td{background:#eaf1ff!important;}
.tenant-table tbody tr:focus{outline:2px solid #3b82f6;outline-offset:-2px;}
.tenant-table th:last-child,.tenant-table td:last-child{text-align:left;}
.company-profile-page{display:grid;gap:18px;}
.company-profile-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px!important;
}
.company-profile-hero .tenant-detail-head{margin:0;}
.company-profile-tabs-card{padding:0!important;overflow:hidden;}
.company-profile-tabs{
  display:flex;
  gap:0;
  background:#e5ecf5;
  border-bottom:1px solid #c5d0de;
  padding:0 14px;
  overflow:auto;
}
.profile-tab{
  position:relative;
  border:0;
  background:transparent;
  color:#526176;
  font-weight:900;
  padding:16px 18px;
  cursor:pointer;
  border-radius:14px 14px 0 0;
  white-space:nowrap;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.profile-tab:hover{background:rgba(255,255,255,.5);color:#1d4ed8;}
.profile-tab.active{
  background:#fbfdff;
  color:#1d4ed8;
  box-shadow:0 -1px 0 #fbfdff inset,0 -6px 16px rgba(15,23,42,.04);
}
.profile-tab.active:after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  bottom:0;
  height:3px;
  border-radius:999px 999px 0 0;
  background:#2563eb;
}
.company-profile-tab-panel{padding:22px;}
.company-profile-tab-panel h3{margin:0 0 10px;}
.tenant-overview-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
}
.tenant-overview-grid>div{
  border:1px solid #cfd9e6!important;
  border-radius:16px!important;
  background:#f3f7fb!important;
  padding:16px!important;
}
.detail-line{border-bottom:1px solid #dbe3ee!important;}
.status-control-strip{
  background:#f3f7fb!important;
  border-color:#cfd9e6!important;
}
.note-card,.timeline-item{background:#f3f7fb!important;border-color:#cfd9e6!important;}
.error-empty{background:#fff1f2!important;border-color:#fecdd3!important;color:#991b1b!important;}
@media(max-width:1180px){.tenant-overview-grid{grid-template-columns:1fr!important}.company-profile-hero{display:block}.tenant-detail-actions{margin-top:16px}}
@media(max-width:760px){.company-profile-tabs{padding:0 8px}.profile-tab{padding:14px 12px}.company-profile-tab-panel{padding:16px}.tenant-table{min-width:850px}}

/* Phase 29C4 — Roles page layout cleanup */
.roles-page-layout{display:grid;gap:18px}.roles-top-grid{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(360px,1.28fr);gap:18px;align-items:start}.collapsible-section{padding:0;overflow:hidden}.collapsible-section>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line);background:#f8fafc;font-weight:900;color:#172033}.collapsible-section>summary::-webkit-details-marker{display:none}.collapsible-section>summary:after{content:"⌄";width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#eef2f7;color:#475569;font-size:16px;transition:transform .16s ease}.collapsible-section:not([open])>summary{border-bottom:0}.collapsible-section:not([open])>summary:after{transform:rotate(-90deg)}.collapsible-section>summary span{display:flex;flex-direction:column;gap:4px}.collapsible-section>summary b{font-size:17px}.collapsible-section>summary small{font-size:12px;color:#64748b;font-weight:750}.collapsible-section>.role-list,.collapsible-section>#roleViewer,.permission-catalog-grid{padding:18px 20px}.role-row.active{border-color:#93c5fd;background:#eff6ff;box-shadow:inset 4px 0 0 #2563eb}.role-viewer-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.role-viewer-head h2{margin:0;color:#172033;font-size:22px;letter-spacing:-.025em}.role-viewer-head p{margin:6px 0 0;color:#64748b;line-height:1.5}.role-viewer-permissions{max-height:560px;overflow:auto;padding-right:4px}.permission-catalog-section{margin-top:0}.permission-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.permission-group{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.permission-group>summary{list-style:none;cursor:pointer;padding:13px 14px;background:#f8fafc;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.permission-group>summary::-webkit-details-marker{display:none}.permission-group>summary strong{color:#172033}.permission-group>summary span{font-size:12px;color:#64748b;font-weight:800}.permission-group:not([open])>summary{border-bottom:0}.permission-group .permission-list{padding:12px;margin:0}@media(max-width:1100px){.roles-top-grid{grid-template-columns:1fr}.permission-catalog-grid{grid-template-columns:1fr}.role-viewer-permissions{max-height:none}}

/* Phase 29E — Central Data Ownership Layer Completion */
.data-layer-grid{display:grid;grid-template-columns:1fr;gap:18px}.data-section-body{padding:18px 20px}.data-filter-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.inline-json{max-width:340px;max-height:80px;overflow:auto;white-space:pre-wrap;margin:0;background:#eef3f8;border:1px solid #c5d0de;border-radius:10px;padding:8px;font-size:11px;color:#334155}.code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45}.rule-list{margin:0;padding-left:20px;color:#475569;line-height:1.8}.rule-list li{margin:4px 0}.table-wrap{overflow:auto}.collapsible-section .data-section-body .empty{margin:0}.data-section-body .table{min-width:780px}.data-section-body .pill{white-space:nowrap}@media(max-width:900px){.data-filter-row{grid-template-columns:1fr}.inline-json{max-width:220px}}

/* Phase 29F — Module Registry Framework Cleanup */
.module-registry-layout{display:grid;gap:18px}.module-section-body{padding:18px 20px}.package-standard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.standard-card{border:1px solid var(--line);border-radius:16px;background:#f3f7fb;padding:16px;min-height:150px}.standard-card h3{margin:0 0 10px;font-size:15px;color:#172033}.standard-card ul{margin:0;padding-left:18px;color:#475569;line-height:1.8}.standard-card p{color:#475569;line-height:1.55}.standard-card.good{border-color:#9bd9b2;background:#ecfdf3}.standard-card.warning{border-color:#f4c774;background:#fff7df}.module-registry-table .action-wrap{display:flex;gap:7px;flex-wrap:wrap}.check-count{display:inline-flex;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:900;margin:2px}.check-count.pass{background:#dcfce7;color:#15803d}.check-count.warn{background:#fef3c7;color:#b45309}.check-count.fail{background:#fee2e2;color:#b91c1c}.registry-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.registry-check{border:1px solid var(--line);border-radius:16px;padding:14px;background:#f8fbff;display:grid;grid-template-columns:1fr auto;gap:10px}.registry-check strong{display:block;color:#172033}.registry-check small{display:block;color:#64748b;margin-top:4px}.registry-check p{grid-column:1/-1;margin:0;color:#475569;line-height:1.5}.registry-check.pass{border-left:5px solid #22c55e}.registry-check.warning{border-left:5px solid #f59e0b}.registry-check.fail{border-left:5px solid #ef4444}.module-section-body .table{min-width:850px}@media(max-width:1120px){.package-standard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.registry-check-list{grid-template-columns:1fr}}@media(max-width:720px){.package-standard-grid{grid-template-columns:1fr}.module-registry-table .action-wrap .btn{width:100%}}

/* Phase 29G — Audit, Security & System Tools */
.security-layout{display:grid;grid-template-columns:minmax(360px,1fr) minmax(320px,.85fr);gap:18px;align-items:start}.audit-filter-row{grid-template-columns:repeat(4,minmax(0,1fr))}.audit-table{min-width:1080px}.audit-table tbody tr{cursor:pointer}.audit-table tbody tr:hover td{background:#eaf1ff!important}.check-line{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f6f9fd;color:#334155;font-weight:800}.check-line input{width:18px;height:18px}.system-action-grid{display:grid;grid-template-columns:1fr;gap:10px}.system-action-grid .btn{justify-content:center}.system-rule{color:#334155;line-height:1.75;font-weight:750;margin:0 0 12px}.pill.danger{background:#fee2e2!important;color:#b91c1c!important}.registry-check.fail{border-left-color:#ef4444!important}.registry-check.warning{border-left-color:#f59e0b!important}.registry-check.pass{border-left-color:#22c55e!important}.side-nav .nav-btn label{pointer-events:none}@media(max-width:1080px){.security-layout{grid-template-columns:1fr}.audit-filter-row{grid-template-columns:1fr 1fr}}@media(max-width:720px){.audit-filter-row{grid-template-columns:1fr}.security-layout .table{min-width:760px}}

/* Phase 29H — Dashboard Accuracy & Platform Reports */
.dashboard-accurate-metrics{grid-template-columns:repeat(4,minmax(0,1fr));}
.report-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.report-table{min-width:860px;}
.report-bars{display:grid;gap:10px;}
.report-bar-row{display:grid;grid-template-columns:88px 1fr 132px;gap:12px;align-items:center;font-size:13px;color:#475569;}
.report-bar-label{font-weight:900;color:#334155;}
.report-bar-track{height:11px;border-radius:999px;background:#dce6f1;overflow:hidden;border:1px solid #c5d0de;}
.report-bar-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#38bdf8);min-width:4px;}
.report-bar-row strong{text-align:right;color:#172033;font-size:12px;}
.status-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.status-report-card{border:1px solid var(--line);background:#f3f7fb;border-radius:14px;padding:13px;display:grid;gap:7px;}
.status-report-card div{display:flex;align-items:center;gap:8px;justify-content:space-between;}
.status-report-card strong{font-size:24px;letter-spacing:-.04em;color:#172033;}
.status-report-card span{color:#475569;font-weight:800;}
.accuracy-list{display:grid;gap:10px;}
.accuracy-list div{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:#f3f7fb;border-radius:14px;padding:13px 14px;}
.accuracy-list span{color:#475569;font-weight:800;}
.accuracy-list strong{font-size:22px;color:#172033;}
.report-accuracy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.report-accuracy-grid>div{border:1px solid var(--line);background:#f3f7fb;border-radius:14px;padding:14px;}
.report-accuracy-grid strong{color:#172033;display:block;margin-bottom:6px;}
.report-accuracy-grid p{margin:0;color:#475569;line-height:1.6;}
.export-actions{display:grid;grid-template-columns:1fr 160px auto;gap:12px;align-items:end;}
.side-nav .nav-btn[data-route="reports"] .nav-ico{font-weight:950;}
@media(max-width:1120px){.dashboard-accurate-metrics,.report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.report-accuracy-grid{grid-template-columns:1fr;}.status-report-grid{grid-template-columns:1fr;}.export-actions{grid-template-columns:1fr;}.report-bar-row{grid-template-columns:70px 1fr 110px;}}
@media(max-width:720px){.dashboard-accurate-metrics,.report-kpi-grid{grid-template-columns:1fr;}.report-bar-row{grid-template-columns:1fr;gap:5px}.report-bar-row strong{text-align:left}.report-table{min-width:720px;}}


/* Phase 29I — Mobile Responsiveness & UI Polish */
:root{
  --bg:#d8dde4;
  --surface:#eef2f6;
  --surface-2:#e3e9f0;
  --card:#fbfdff;
  --line:#c7d1dd;
  --line-strong:#aebccc;
  --shadow:0 14px 32px rgba(15,23,42,.10);
  --shadow-soft:0 8px 20px rgba(15,23,42,.075);
}
html{scroll-behavior:smooth;}
body{background:var(--bg)!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
button,.btn,.nav-btn,.icon-btn,.profile-tab,.tenant-row{touch-action:manipulation;}
button:focus-visible,.btn:focus-visible,.nav-btn:focus-visible,.icon-btn:focus-visible,.input:focus-visible,.select:focus-visible,textarea:focus-visible,.tenant-row:focus-visible{outline:3px solid rgba(37,99,235,.36);outline-offset:2px;}
.content{background:var(--bg)!important;padding:26px;scroll-padding:24px;}
.page-head,.title{background:rgba(251,253,255,.78);border:1px solid rgba(199,209,221,.92);border-radius:22px;padding:20px 22px;box-shadow:var(--shadow-soft);backdrop-filter:blur(10px);}
.page-head h1,.title h1{font-size:clamp(24px,3vw,32px);line-height:1.08;}
.page-head p,.title p{max-width:900px;line-height:1.55;}
.card{background:var(--card)!important;border-color:var(--line)!important;box-shadow:var(--shadow-soft)!important;}
.section{padding:20px!important;}
.card.section+.card.section{margin-top:18px;}
.metric{min-height:116px;display:flex;align-items:center;gap:15px;border-color:#c6d1de!important;}
.metric .metric-icon,.metric-ico{flex:0 0 auto;}
.metric strong{word-break:break-word;}
.grid{min-width:0;}
.grid>*{min-width:0;}
.table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:14px;}
.table-wrap .table{min-width:760px;}
.table th{position:sticky;top:0;z-index:1;background:#e8eef5!important;white-space:nowrap;}
.table td{line-height:1.45;}
.table td,.table th{overflow-wrap:anywhere;}
.drawer{max-width:100vw;}
.drawer-head{align-items:center;}
.drawer-body{padding-bottom:calc(24px + env(safe-area-inset-bottom));}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.action-wrap,.top-actions,.export-actions,.tenant-detail-actions,.billing-actions{display:flex;flex-wrap:wrap;gap:10px;}
.action-wrap .btn,.export-actions .btn{white-space:nowrap;}
.tenant-filters,.report-filters,.data-filter-row,.audit-filter-row{gap:10px;}
.side-nav::-webkit-scrollbar,.content::-webkit-scrollbar,.drawer-body::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{width:10px;height:10px;}
.side-nav::-webkit-scrollbar-thumb,.content::-webkit-scrollbar-thumb,.drawer-body::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:#aebccc;border-radius:999px;border:2px solid transparent;background-clip:content-box;}
.side-nav::-webkit-scrollbar-track,.content::-webkit-scrollbar-track,.drawer-body::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track{background:transparent;}
.mobile-brand{display:none;align-items:center;gap:10px;min-width:0;}
.mobile-brand strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mobile-brand small{display:block;color:#cbd5e1;line-height:1;white-space:nowrap;}
.sidebar-close{display:none;margin-left:auto;width:40px;height:40px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;cursor:pointer;}
.sidebar.open{will-change:transform;}
body.nav-open{overflow:hidden;}
.content-guard{display:none;}
.compact-only{display:none!important;}

@media(max-width:1280px){
  .shell{grid-template-columns:248px 1fr;}
  .sidebar .health{margin:14px 12px 0;padding:12px;}
  .nav-btn{padding:11px 12px;}
  .metrics,.dashboard-accurate-metrics,.report-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .module-grid,.package-standard-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:1120px){
  .shell{grid-template-columns:82px 1fr;}
  .side-head{padding:0 14px;justify-content:center;}
  .side-head strong,.side-head span,.nav-btn label,.health,.side-foot{display:none!important;}
  .side-nav{padding:14px 9px;}
  .nav-btn{justify-content:center;padding:12px 9px;}
  .nav-ico{width:34px;height:34px;}
  .topbar{padding:0 18px;}
  .search{max-width:380px;}
  .metrics,.dashboard-accurate-metrics,.report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .module-grid,.package-standard-grid,.tenant-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .two,.three,.security-layout,.roles-top-grid,.tenant-layout{grid-template-columns:1fr!important;}
}
@media(max-width:860px){
  body{overflow:hidden;}
  .shell{display:block;height:100%;}
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:min(86vw,320px);z-index:50;transform:translateX(-105%);transition:transform .22s ease;box-shadow:28px 0 80px rgba(15,23,42,.32);}
  .sidebar.open{transform:translateX(0);}
  .side-head{justify-content:flex-start;height:74px;padding:0 16px;}
  .side-head strong,.side-head span,.nav-btn label,.health,.side-foot{display:block!important;}
  .side-head .logo{width:42px;height:42px;font-size:22px;}
  .sidebar-close{display:grid;place-items:center;}
  .side-nav{padding:14px 10px 22px;gap:6px;}
  .nav-btn{justify-content:flex-start;padding:13px 14px;min-height:48px;}
  .nav-ico{width:30px;height:30px;}
  .workspace{height:100%;}
  .topbar{height:auto;min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:10px 12px;align-items:center;}
  .menu{width:44px;height:44px;}
  .mobile-brand{display:flex;}
  .search{grid-column:1/-1;order:3;max-width:none;width:100%;display:none;}
  .search.open{display:flex;}
  .top-actions{justify-content:flex-end;gap:8px;margin-left:0;min-width:0;}
  .top-actions .btn-light#refresh{display:none;}
  .top-actions .icon-btn{display:none;}
  .user-chip{max-width:152px;padding:4px 8px;}
  .user-chip .avatar{width:34px;height:34px;}
  .user-chip strong{display:block;max-width:84px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;}
  .user-chip small{display:none;}
  #logout{padding:8px 10px;}
  .content{padding:16px;height:calc(100vh - 66px);overflow:auto;-webkit-overflow-scrolling:touch;}
  .page-head,.title{display:block;padding:16px;border-radius:18px;margin-bottom:16px;}
  .page-head>div:last-child,.title>div:last-child{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;}
  .page-head .btn,.title .btn{width:auto;}
  .metrics,.dashboard-accurate-metrics,.report-kpi-grid,.module-grid,.package-standard-grid,.tenant-overview-grid,.permission-catalog-grid,.registry-check-list{grid-template-columns:1fr!important;}
  .grid{gap:14px;}
  .section{padding:16px!important;border-radius:16px!important;}
  .metric{min-height:96px;padding:16px!important;}
  .metric:after{display:none;}
  .metric strong{font-size:23px;}
  .head{display:block;}
  .head>div:last-child,.head>.btn{margin-top:10px;}
  .btn{min-height:42px;}
  .btn-small{min-height:36px;}
  .action-wrap .btn,.billing-actions .btn,.module-registry-table .action-wrap .btn,.tenant-detail-actions .btn{flex:1 1 140px;}
  .drawer{width:100%;border-left:0;border-radius:20px 20px 0 0;height:min(92vh,760px);top:auto;bottom:0;transform:translateY(110%);}
  .drawer.open{transform:translateY(0);}
  .drawer-head{padding:16px;}
  .drawer-body{padding:16px;}
  .login{min-height:100%;height:auto;grid-template-columns:1fr;background:linear-gradient(180deg,var(--chrome) 0 260px,var(--bg) 260px);overflow:auto;padding:20px 0;}
  .login-card,.login-card-wide{width:min(100% - 28px,560px)!important;margin:20px auto!important;padding:24px!important;border-radius:22px!important;}
  .login-visual{display:none!important;}
  .auth-tabs{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .form-grid{grid-template-columns:1fr!important;gap:0;}
  .toast{left:14px;right:14px;bottom:14px;max-width:none;}
  .company-profile-hero{padding:16px!important;}
  .company-profile-tabs{padding:0 8px;gap:2px;}
  .profile-tab{padding:13px 12px;font-size:13px;}
  .company-profile-tab-panel{padding:16px!important;}
  .report-bar-row{grid-template-columns:72px 1fr;gap:8px;}
  .report-bar-row strong{grid-column:2;justify-self:start;}
  .status-report-grid{grid-template-columns:1fr!important;}
  .export-actions{display:grid!important;grid-template-columns:1fr!important;}
  .table-wrap{margin-left:-2px;margin-right:-2px;border:1px solid #d1dbe7;background:#eef3f8;}
  .table-wrap:before{content:"Swipe table left/right";display:block;padding:8px 10px;font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em;}
  .table{font-size:13px;}
}
@media(max-width:520px){
  .topbar{grid-template-columns:auto minmax(0,1fr);}
  .top-actions{grid-column:1/-1;justify-content:space-between;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:8px;}
  .user-chip{max-width:none;flex:1;}
  .user-chip strong{max-width:180px;}
  .content{padding:12px;height:calc(100vh - 124px);}
  .page-head,.title{padding:14px;border-radius:16px;}
  .page-head h1,.title h1{font-size:22px;}
  .page-head p,.title p{font-size:13px;}
  .section{padding:14px!important;}
  .input,.select,textarea{padding:11px 12px;border-radius:12px;}
  .card{border-radius:16px!important;}
  .metric{gap:12px;}
  .metric-icon,.metric-ico{width:44px!important;height:44px!important;}
  .drawer{height:94vh;border-radius:18px 18px 0 0;}
  .company-profile-tabs{overflow-x:auto;scroll-snap-type:x mandatory;}
  .profile-tab{scroll-snap-align:start;}
}
@media(max-width:380px){
  .content{padding:10px;}
  .btn{width:100%;}
  .top-actions .btn{width:auto;}
  .profile-tab{padding:12px 10px;}
  .table{font-size:12px;}
}
@media(hover:none){.btn:hover{transform:none;box-shadow:none}.nav-btn:hover{background:transparent}.tenant-table tbody tr:hover td{background:inherit!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.btn:hover{transform:none!important}}
@media print{.sidebar,.topbar,.drawer,.backdrop,.toast{display:none!important}.shell{display:block!important}.content{overflow:visible!important;height:auto!important;background:#fff!important}.card{box-shadow:none!important}.table-wrap{overflow:visible!important}.table-wrap:before{display:none!important}}


/* Phase 29I2 — Mobile scroll and topbar positioning fix */
@media(max-width:860px){
  html,body,#app{height:auto!important;min-height:100%!important;overflow-x:hidden!important;}
  body{overflow-y:auto!important;}
  body.nav-open{overflow:hidden!important;}
  .shell{display:block!important;height:auto!important;min-height:100svh!important;overflow:visible!important;}
  .workspace{height:auto!important;min-height:100svh!important;overflow:visible!important;display:block!important;}
  .topbar{position:sticky!important;top:0!important;z-index:30!important;min-height:66px!important;height:auto!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;}
  .content{height:auto!important;min-height:calc(100svh - 66px)!important;overflow:visible!important;padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;}
  .sidebar{height:100svh!important;max-height:100svh!important;overflow:hidden!important;}
  .side-nav{max-height:calc(100svh - 86px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;}
  .login{height:auto!important;min-height:100svh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding:18px 0 calc(28px + env(safe-area-inset-bottom))!important;}
  .phase29-login{height:auto!important;min-height:100svh!important;overflow-y:auto!important;}
  .login-card,.login-card-wide{max-height:none!important;overflow:visible!important;}
  .auth-panel{min-height:0!important;}
  .drawer-body{max-height:calc(92svh - 72px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;}
}
@media(max-width:520px){
  .topbar{grid-template-columns:auto minmax(0,1fr) auto!important;gap:8px!important;padding:9px 10px!important;}
  .mobile-brand{min-width:0!important;}
  .mobile-brand strong{max-width:132px!important;}
  .top-actions{grid-column:auto!important;justify-content:flex-end!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;gap:6px!important;min-width:0!important;}
  .top-actions .icon-btn{display:none!important;}
  .top-actions #refresh{display:none!important;}
  .user-chip{flex:0 0 auto!important;max-width:none!important;width:42px!important;height:42px!important;padding:2px!important;justify-content:center!important;}
  .user-chip .avatar{width:34px!important;height:34px!important;}
  .user-chip>div:not(.avatar){display:none!important;}
  #logout{width:auto!important;min-height:40px!important;padding:8px 10px!important;white-space:nowrap!important;}
  .content{min-height:calc(100svh - 62px)!important;padding-bottom:calc(30px + env(safe-area-inset-bottom))!important;}
}
@media(max-width:380px){
  .topbar{gap:6px!important;padding:8px!important;}
  .mobile-brand strong{max-width:98px!important;font-size:13px!important;}
  .mobile-brand small{font-size:10px!important;}
  #logout{font-size:12px!important;padding:8px!important;}
}

/* Phase 29I3 — Application branding settings control */
:root{--brand-accent:#2563eb;--workspace-background:#d6dee8;}
body,.workspace{background:var(--workspace-background)!important;}
.content{background:linear-gradient(180deg,color-mix(in srgb,var(--workspace-background) 82%,#ffffff 18%) 0%,var(--workspace-background) 360px,color-mix(in srgb,var(--workspace-background) 88%,#000000 12%) 100%)!important;}
.logo,.avatar,.tenant-avatar,.module-logo{background:linear-gradient(135deg,var(--brand-accent),#38bdf8)!important;}
.btn-primary{background:linear-gradient(135deg,var(--brand-accent),#38bdf8)!important;color:#fff!important;}
.nav-btn.active{color:var(--brand-accent)!important;box-shadow:inset 4px 0 0 var(--brand-accent),0 10px 24px rgba(0,0,0,.12)!important;}
.nav-btn.active .nav-ico{color:var(--brand-accent)!important;}
.auth-tab.active,.tenant-tabs .tab.active,.profile-tab.active{color:var(--brand-accent)!important;border-color:var(--brand-accent)!important;}
.metric-icon.blue{color:var(--brand-accent)!important;}
.brand-logo.logo-img{background:#fff!important;padding:4px;overflow:hidden;border:1px solid rgba(255,255,255,.28);}
.brand-logo.logo-img img{width:100%;height:100%;object-fit:contain;border-radius:10px;display:block;}
.brand-logo.logo-img span{display:none;}
.auth-brand-line{display:flex;gap:12px;align-items:center;margin-bottom:16px;}
.auth-brand-line strong{display:block;color:#172033;font-size:16px;}
.auth-brand-line small{display:block;color:#64748b;font-weight:750;margin-top:2px;}
.settings-brand-form{display:grid;gap:18px;}
.settings-preview-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start;}
.brand-preview-card{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:18px;background:#f7fafd;padding:18px;min-height:148px;}
.brand-preview-card .preview-logo{width:64px;height:64px;font-size:28px;border-radius:18px;flex:0 0 auto;}
.brand-preview-card strong{display:block;font-size:21px;letter-spacing:-.035em;color:#172033;}
.brand-preview-card span{display:block;font-weight:900;color:#334155;margin-top:4px;}
.brand-preview-card small{display:block;color:#64748b;line-height:1.45;margin-top:8px;}
.settings-form-grid .full{grid-column:1/-1;}
.field-help{display:block;color:#64748b;font-size:12px;line-height:1.45;margin-top:6px;}
.color-input{height:48px;padding:5px!important;cursor:pointer;}
.switch-line{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#f7fafd;margin-top:12px;font-weight:800;color:#334155;}
.settings-save-bar{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;justify-content:flex-end;background:linear-gradient(180deg,rgba(214,222,232,0),var(--workspace-background) 28%);padding:18px 0 4px;}
@supports not (color: color-mix(in srgb,#000,#fff)){.content{background:var(--workspace-background)!important;}}
@media(max-width:900px){.settings-preview-grid{grid-template-columns:1fr}.settings-save-bar{display:grid;grid-template-columns:1fr}.settings-save-bar .btn{width:100%;}}

/* Phase 29I4 — Tenant Admin Scope Cleanup */
.tenant-health strong{display:block;line-height:1.25;word-break:break-word}
.company-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.company-module-grid .module-card{display:flex;flex-direction:column;gap:14px;justify-content:space-between;min-height:180px}
.tenant-scoped-profile .tenant-detail-actions:empty{display:none}
@media(max-width:760px){.company-module-grid{grid-template-columns:1fr}.tenant-scoped-profile .company-profile-tabs{overflow-x:auto;white-space:nowrap}}

/* Phase 29J — Production Readiness / Hostinger Deployment Prep */
.deployment-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;align-items:start}
.deployment-metrics .metric strong{font-size:clamp(21px,2.5vw,27px)}
.deployment-switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 10px}
.danger-switch{border-color:#fecaca!important;background:#fff1f2!important;color:#991b1b!important}
.deployment-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.deployment-counts div{border:1px solid var(--line);background:#f3f7fb;border-radius:14px;padding:13px}
.deployment-counts span{display:block;color:#64748b;font-weight:850;font-size:12px}
.deployment-counts b{display:block;color:#172033;font-size:23px;letter-spacing:-.04em;margin-top:4px}
.deployment-checklist{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.deployment-checklist div{border:1px solid var(--line);border-radius:16px;background:#f3f7fb;padding:14px;min-height:145px}
.deployment-checklist b{display:block;color:#172033;margin-bottom:8px}
.deployment-checklist span{display:block;color:#475569;line-height:1.55;font-size:13px}
.deployment-checklist code,.notice code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#dce6f1;border:1px solid #c5d0de;color:#172033;border-radius:8px;padding:2px 6px}
.deployment-groups{display:grid;gap:14px}
.deployment-group .module-section-body{padding:0}
.deployment-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 20px}
.deployment-check{border:1px solid var(--line);border-left-width:5px;border-radius:16px;background:#f8fbff;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:flex-start}
.deployment-check.pass{border-left-color:#22c55e}
.deployment-check.warning{border-left-color:#f59e0b}
.deployment-check.fail{border-left-color:#ef4444}
.deployment-check strong{display:block;color:#172033}
.deployment-check small{display:block;color:#64748b;line-height:1.5;margin-top:5px}
.deployment-check p{grid-column:1/-1;margin:0;color:#475569;line-height:1.55;border-top:1px solid #d8e1ec;padding-top:9px}
.side-nav .nav-btn[data-route="deployment"] .nav-ico{font-weight:950}
@media(max-width:1180px){.deployment-layout{grid-template-columns:1fr}.deployment-checklist{grid-template-columns:repeat(2,minmax(0,1fr))}.deployment-check-list{grid-template-columns:1fr}.deployment-switch-grid{grid-template-columns:1fr}}
@media(max-width:720px){.deployment-checklist{grid-template-columns:1fr}.deployment-counts{grid-template-columns:1fr}.deployment-check-list{padding:14px}.deployment-check{grid-template-columns:1fr}.deployment-check .pill{justify-self:start}.deployment-settings-form .btn{width:100%}}

/* Phase 29J2 — desktop menu icon cleanup and grouped sidebar navigation */
.topbar .menu{display:none!important;}
.grouped-side-nav{gap:12px;padding-top:14px;}
.nav-group{display:grid;gap:5px;padding:0 0 10px;border-bottom:1px solid rgba(255,255,255,.07);}
.nav-group:last-child{border-bottom:0;}
.nav-group-title{padding:8px 14px 3px;color:#94a3b8;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.09em;line-height:1.2;}
.grouped-side-nav .nav-btn{width:100%;}
@media(max-width:1120px) and (min-width:861px){
  .nav-group-title{display:none!important;}
  .nav-group{border-bottom:0;padding-bottom:2px;}
  .grouped-side-nav{gap:2px;padding-top:12px;}
  .grouped-side-nav .nav-btn{justify-content:center;}
}
@media(max-width:860px){
  .topbar .menu{display:grid!important;place-items:center;}
  .nav-group-title{display:block!important;padding:10px 14px 5px;}
  .nav-group{border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:10px;}
  .grouped-side-nav{gap:8px;}
}

/* Phase 29J3 — Mobile table scrolling containment audit */
.shell,.workspace,.content,.grid,.grid>*,.card,.section,details,.collapsible-section,.module-section-body,.data-section-body,.tenant-list-card,.company-profile-page,.company-profile-body,.profile-tab-panel,.report-section,.deployment-layout,.security-layout,.billing-grid,.roles-top-grid{min-width:0!important;max-width:100%;}
.content{overflow-x:hidden!important;}
.table-wrap{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;touch-action:pan-x pan-y!important;scrollbar-gutter:stable both-edges;border-radius:14px;}
.table-wrap:focus{outline:3px solid rgba(37,99,235,.22);outline-offset:2px;}
.table-wrap .table{width:100%!important;min-width:760px;border-collapse:collapse;}
.table-wrap .table td,.table-wrap .table th{white-space:normal;}
.table-wrap .table th{white-space:nowrap;}
.table-wrap .table td:last-child,.table-wrap .table th:last-child{padding-right:18px;}
.card.section.table-wrap{padding:20px;}
.card.section.table-wrap>.table{min-width:760px;}
@media(max-width:860px){
  html,body,#app{max-width:100%!important;overflow-x:hidden!important;}
  .content{width:100%!important;max-width:100vw!important;overflow-x:hidden!important;padding-left:14px!important;padding-right:14px!important;}
  .title,.head,.section-head,.tenant-filters,.settings-save-bar{min-width:0!important;max-width:100%;}
  .table-wrap{position:relative;margin-left:0!important;margin-right:0!important;border:1px solid #d1dbe7;background:#eef3f8;padding-bottom:2px;}
  .table-wrap:before{display:none!important;}
  .table-wrap.direct-table-wrap:before{content:"Swipe table left/right";display:block!important;position:sticky;left:0;top:0;padding:8px 10px;font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em;background:#eef3f8;border-bottom:1px solid #d1dbe7;z-index:3;}
  .table-wrap .table{min-width:720px!important;background:#fff;}
  .table-wrap .table th{position:sticky;top:0;z-index:2;background:#e8eef5!important;}
  .table-wrap .btn,.table-wrap .pill{white-space:nowrap;}
  .tenant-table-wrap .table,.audit-table,.report-table{min-width:860px!important;}
  .data-section-body .table,.module-section-body .table{min-width:820px!important;}
  .table-wrap .inline-json{max-width:260px;}
}
@media(max-width:520px){
  .content{padding-left:12px!important;padding-right:12px!important;}
  .table-wrap .table{min-width:680px!important;font-size:12px;}
  .tenant-table-wrap .table,.audit-table,.report-table{min-width:820px!important;}
  .table-wrap td,.table-wrap th{padding-left:10px!important;padding-right:10px!important;}
}

/* Phase 30B — Email notifications, password reset and invitations */
.auth-link-btn{width:100%;margin-top:8px;background:transparent;border:none;color:var(--brand-accent,#2563eb);box-shadow:none}
.auth-link-btn:hover{text-decoration:underline;background:transparent}
.email-layout30b .table small{white-space:normal;line-height:1.4}
.users-invite-grid{align-items:start}
.phase30b-login .auth-panel:not(.active){display:none}
@media (max-width: 900px){.users-invite-grid{grid-template-columns:1fr}.phase30b-login .login-card{max-height:none;overflow:visible}}

/* Phase 30C2 — backup action layout and route-aware navigation polish */
.backup-actions30c{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
a.btn{text-decoration:none}
.nav-btn[aria-current="page"]{position:relative}
.side-nav{scroll-behavior:smooth;overscroll-behavior:contain}

/* Phase 30D — Hostinger staging deployment test */
.phase30d-tests .deployment-check.pass{border-left-color:#16a34a}
.phase30d-tests .deployment-check.warning{border-left-color:#d97706}
.phase30d-tests .deployment-check.fail{border-left-color:#dc2626}
.phase30d-plan code{background:#2f3742;color:#fff;border-radius:8px;padding:2px 6px;font-size:.88em}
.phase30d-group summary small{color:#64748b}
