/* CAA & LLC Business Manager — UI */
:root{
  --ink:#16252f; --ink-2:#40525f; --muted:#6f808c; --line:#dfe5ea; --bg:#f3f5f7; --card:#fff;
  --nav:#0f2a3a; --nav-2:#163a4e; --nav-ink:#c4d3dc; --accent:#0b7a75; --accent-2:#e6f3f2;
  --bs-primary:#0b7a75; --bs-primary-rgb:11,122,117; --bs-link-color:#0b6b6f; --bs-link-color-rgb:11,107,111;
  --bs-body-font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --bs-body-color:#16252f; --bs-body-bg:#f3f5f7; --bs-border-color:#dfe5ea;
}
body{font-size:.94rem;background:var(--bg)}
.btn-primary{--bs-btn-bg:#0b7a75;--bs-btn-border-color:#0b7a75;--bs-btn-hover-bg:#08625e;--bs-btn-hover-border-color:#08625e;--bs-btn-active-bg:#075450;--bs-btn-disabled-bg:#0b7a75;--bs-btn-disabled-border-color:#0b7a75}
.btn-outline-primary{--bs-btn-color:#0b7a75;--bs-btn-border-color:#0b7a75;--bs-btn-hover-bg:#0b7a75;--bs-btn-hover-border-color:#0b7a75;--bs-btn-active-bg:#08625e}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:#55aea9;box-shadow:0 0 0 .2rem rgba(11,122,117,.18)}
.form-check-input:checked{background-color:#0b7a75;border-color:#0b7a75}
a{color:#0b6b6f}
.skip-link{position:absolute;left:8px;top:8px;z-index:2000;background:#fff;padding:6px 10px;border-radius:6px}

/* Shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:252px;flex:0 0 252px;background:var(--nav);color:var(--nav-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:18px 16px 14px;border-bottom:1px solid rgba(255,255,255,.07)}
.brand-mark{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,#14a39b,#0b6b6f);color:#fff;font-weight:700;display:grid;place-items:center;font-size:.85rem;letter-spacing:.04em;flex:none}
.brand-mark.lg{width:46px;height:46px;font-size:1rem}
.brand-logo{max-width:40px;max-height:40px;border-radius:6px;background:#fff;padding:2px}
.brand-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.brand-text strong{color:#fff;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-text small{color:#86a0ae;font-size:.72rem}
.sidebar nav{padding:8px 10px 16px;flex:1}
.nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#6f8b9a;margin:14px 8px 4px}
.sidebar .nav-link{display:flex;align-items:center;gap:10px;color:var(--nav-ink);padding:7px 10px;border-radius:7px;font-size:.9rem;text-decoration:none}
.sidebar .nav-link i{font-size:1rem;width:18px;text-align:center;opacity:.85}
.sidebar .nav-link:hover{background:var(--nav-2);color:#fff}
.sidebar .nav-link.active{background:#1d4c63;color:#fff;box-shadow:inset 3px 0 0 #2fc1b6}
.sidebar .soon{margin-left:auto;font-size:.62rem;background:rgba(255,255,255,.08);color:#8fa8b5;padding:1px 6px;border-radius:10px}
.sidebar-foot{font-size:.72rem;color:#6f8b9a;padding:10px 18px;border-top:1px solid rgba(255,255,255,.07)}
.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid var(--line);padding:10px 22px;position:sticky;top:0;z-index:20}
.global-search{position:relative;flex:1;max-width:520px}
.global-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}
.global-search input{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:7px 12px 7px 34px;font-size:.9rem}
.global-search input:focus{outline:2px solid rgba(11,122,117,.3);background:#fff}
.btn-user{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--ink)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-2);color:var(--accent);display:grid;place-items:center;font-weight:700}
.btn-icon{border:1px solid var(--line);background:#fff;padding:4px 9px;font-size:1.2rem}
.content{padding:22px 26px 40px;max-width:1440px;width:100%}
.content:focus{outline:none}
.breadcrumb{font-size:.8rem;margin-bottom:10px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{font-size:1.45rem;font-weight:650;margin:0 0 2px;letter-spacing:-.01em}

/* Cards */
.card{border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px rgba(16,40,55,.04)}
.card-header{background:#fff;border-bottom:1px solid var(--line);padding:12px 16px}
.card-footer{background:#fafbfc;border-top:1px solid var(--line)}
.card-title{font-size:.95rem;font-weight:650;margin:0;display:flex;align-items:center;gap:8px}
.card-title i{color:var(--accent)}
.stat-card .stat-title{font-weight:650;font-size:.9rem;display:flex;gap:8px;align-items:center;margin-bottom:10px}
.stat-card .stat-title i{color:var(--accent);background:var(--accent-2);border-radius:7px;width:28px;height:28px;display:grid;place-items:center}
.stat-row{display:flex;justify-content:space-between;font-size:.85rem;padding:4px 0;border-bottom:1px dashed #edf0f2;color:var(--ink-2)}
.stat-note{font-size:.72rem;color:var(--muted);margin-top:10px}
.parts-list{list-style:none;padding:8px 16px 14px;margin:0}
.parts-list li{display:flex;gap:12px;padding:7px 0;align-items:flex-start;border-bottom:1px solid #f0f2f4}
.parts-list li:last-child{border-bottom:0}
.part-num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:700;background:#eef1f3;color:var(--muted);flex:none}
.part-current .part-num,.part-done .part-num{background:var(--accent);color:#fff}
.badge-state{font-size:.68rem;padding:1px 7px;border-radius:10px;background:#eef1f3;color:var(--muted);margin-left:4px}
.part-current .badge-state,.part-done .badge-state{background:var(--accent-2);color:var(--accent)}
.quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.quick-actions .btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px}
.quick-actions .btn i{font-size:1.1rem}
.quick-actions small{font-size:.68rem;opacity:.8}

/* Status pills: colour + icon + text */
.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid;white-space:nowrap}
.status-primary{color:#0b5f82;background:#e8f4fa;border-color:#bfe0ef}
.status-warning{color:#8a5a00;background:#fff6e0;border-color:#f3dc9f}
.status-info{color:#2b4fa0;background:#ecf1fd;border-color:#c8d6f6}
.status-danger{color:#a12626;background:#fdeeee;border-color:#f3c3c3}
.status-success{color:#17703f;background:#e9f7ef;border-color:#bfe5cd}
.status-secondary{color:#56636d;background:#f0f2f4;border-color:#d7dde2}

.table>:not(caption)>*>*{padding:.55rem .75rem}
.table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;background:#fafbfc}
.audit-details{background:#f6f8f9;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:.78rem;white-space:pre-wrap}
.action-code{font-size:.78rem;color:var(--ink-2)}
.settings-tabs .nav-link{color:var(--ink-2)}
.settings-tabs .nav-link.active{color:var(--accent);font-weight:600}
.logo-preview{max-height:48px;border:1px solid var(--line);border-radius:6px;padding:3px;background:#fff}
.empty-module{max-width:720px}
.recovery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.recovery-grid code{font-size:1rem;background:#f6f8f9;border:1px solid var(--line);padding:6px 8px;border-radius:6px;text-align:center;color:var(--ink)}
.qr{width:200px;height:200px;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff}
.secret-key{font-size:.9rem;word-break:break-all}
.code-input{letter-spacing:.3em;font-variant-numeric:tabular-nums}

/* Sign-in */
.auth-body{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;
  background:radial-gradient(1200px 500px at 50% -10%,#d7ecea 0,transparent 60%),var(--bg)}
.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 28px 24px;box-shadow:0 10px 30px rgba(15,42,58,.08)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.auth-brand div{display:flex;flex-direction:column;line-height:1.25}
.auth-brand small{color:var(--muted);font-size:.78rem}
.auth-logo{max-height:46px;max-width:120px}
.auth-foot{font-size:.75rem;color:var(--muted);margin-top:14px}

/* Mobile */
.sidebar-backdrop{display:none}
@media (max-width:991.98px){
  .sidebar{position:fixed;left:0;top:0;z-index:1040;transform:translateX(-100%);transition:transform .2s ease}
  body.sidebar-open .sidebar{transform:none}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(10,25,35,.45);z-index:1030}
  .content{padding:16px}
  .topbar{padding:8px 14px}
}
@media print{.sidebar,.topbar,.btn,.breadcrumb,.alert{display:none!important}.content{padding:0}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Part 2 — clients and search */
.req{color:#a12626}
.sort-link{color:inherit;text-decoration:none}
.sort-link.active{color:var(--accent)}
.svc-chip{display:inline-block;font-size:.72rem;font-weight:600;background:var(--accent-2);color:var(--accent);border-radius:6px;padding:1px 6px;margin-right:3px}
.empty-state{text-align:center;padding:36px 16px!important;color:var(--muted)}
.empty-state i{font-size:2rem;display:block;margin-bottom:6px;color:#b5c1ca}
.empty-state p{margin-bottom:10px}
.client-avatar{width:52px;height:52px;border-radius:14px;background:var(--accent-2);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:1.4rem;flex:none}
.client-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.client-tabs .nav-link{white-space:nowrap;color:var(--ink-2);font-size:.88rem;padding:.5rem .8rem}
.client-tabs .nav-link.active{color:var(--accent);font-weight:600}
.tab-count{display:inline-block;min-width:20px;font-size:.7rem;background:#eef1f3;color:var(--ink-2);border-radius:10px;padding:0 6px;text-align:center;font-weight:600}
.detail-list dt{color:var(--muted);font-weight:500}
.detail-list dd{margin-bottom:.45rem}
.masked{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em}
.reveal-value{font:600 1.6rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;background:#fff8e6;border:1px dashed #e8c36a;border-radius:8px;padding:12px 16px;display:inline-block}
.prewrap{white-space:pre-wrap;word-break:break-word}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.service-tile{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:8px 10px;text-decoration:none;color:var(--ink)}
.service-tile:hover{border-color:#9fcfcb;background:#f7fbfb}
.service-tile i{color:var(--accent)}
.service-tile strong{font-size:1.2rem;line-height:1.2}
.service-tile span{font-size:.72rem;color:var(--muted)}
.dupe-row{padding:4px 0;border-bottom:1px dashed #f0e2bd}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #eef1f3}
.timeline li:last-child{border-bottom:0}
.timeline.compact li{padding:7px 0}
.tl-icon{width:30px;height:30px;border-radius:50%;background:var(--accent-2);color:var(--accent);display:grid;place-items:center;flex:none}
.tl-body{flex:1;min-width:0}
.change-list{margin:2px 0 2px;padding-left:18px;color:var(--ink-2)}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(15,42,58,.12);max-height:420px;overflow-y:auto;z-index:50;padding:4px}
.suggest-group{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 10px 2px}
.suggest-item{display:flex;gap:10px;align-items:center;padding:6px 10px;border-radius:7px;text-decoration:none;color:var(--ink)}
.suggest-item:hover,.suggest-item.active{background:var(--accent-2)}
.suggest-item i{color:var(--muted)}
.suggest-item span{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.suggest-item small{color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suggest-empty{padding:10px;font-size:.85rem;color:var(--muted)}
@media (max-width:575.98px){.service-grid{grid-template-columns:repeat(2,1fr)}.client-head h1{font-size:1.2rem}}
