:root{--bg:#f4f7fb;--panel:#fff;--text:#172033;--muted:#68758a;--nav:#0b1f3a;--accent:#1e5eff;--border:#dfe5ee;--danger:#c62828;--warn:#b26a00;--ok:#16794a}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:white;padding:24px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin-bottom:30px}.brand-mark{width:46px;height:46px;border-radius:14px;background:white;color:var(--nav);display:grid;place-items:center;font-weight:800}.brand span{display:block;color:#b9c6d9;font-size:12px;margin-top:2px}nav{display:grid;gap:8px}.nav-btn{border:0;background:transparent;color:#d9e3f1;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer}.nav-btn:hover,.nav-btn.active{background:#17365f;color:white}.side-note{margin-top:auto;font-size:12px;color:#9fb0c8}.main{padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;color:var(--muted)}.primary,.secondary{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}.primary{background:var(--accent);color:white}.secondary{background:#eef2f7;color:var(--text)}.view{display:none}.active-view{display:block}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:18px}.card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}.card{padding:16px}.card .label{color:var(--muted);font-size:13px}.card .value{font-size:28px;font-weight:750;margin-top:8px}.grid-2{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.panel{padding:18px;margin-bottom:18px}.panel-head{margin-bottom:14px}.panel-head h2{margin:0 0 4px;font-size:18px}.panel-head p{margin:0;color:var(--muted);font-size:13px}.actions-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.stack{display:grid;gap:10px}.item{border:1px solid var(--border);border-radius:10px;padding:12px}.item strong{display:block}.meta{font-size:12px;color:var(--muted);margin-top:4px}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.urgent{background:#fdeaea;color:var(--danger)}.high{background:#fff3df;color:var(--warn)}.normal{background:#edf4ff;color:#2457a7}.completed{background:#e9f7ef;color:var(--ok)}.search,.filter-row select,input,textarea,select{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px;background:white}.search{margin-bottom:12px}.filter-row{display:flex;gap:10px;margin-bottom:12px}.filter-row select{max-width:220px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border);font-size:13px}th{color:var(--muted);font-weight:650;background:#fafbfd}.link-btn{border:0;background:none;color:var(--accent);cursor:pointer;padding:0}.hidden{display:none!important}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.instructions{background:#f8fbff;border:1px solid #dbe8ff;border-radius:12px;padding:14px}.instructions pre{white-space:pre-wrap;font-family:inherit;margin:8px 0 0}dialog{width:min(720px,92vw);border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(15,23,42,.45)}#modalForm{padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0}.icon-btn{border:0;background:none;font-size:26px;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px}.field label{font-size:12px;color:var(--muted);font-weight:650}.full{grid-column:1/-1}.task-actions{display:flex;gap:8px;flex-wrap:wrap}.mini{padding:6px 9px;border-radius:8px;border:1px solid var(--border);background:white;cursor:pointer}.timer{font-variant-numeric:tabular-nums;font-weight:750}
@media(max-width:1000px){.cards{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.app-shell{grid-template-columns:78px 1fr}.brand div:not(.brand-mark),.nav-btn{font-size:0}.nav-btn:before{font-size:18px}.nav-btn[data-view="dashboard"]:before{content:'⌂'}.nav-btn[data-view="clients"]:before{content:'👥'}.nav-btn[data-view="calls"]:before{content:'☎'}.nav-btn[data-view="tasks"]:before{content:'✓'}.nav-btn[data-view="reports"]:before{content:'▤'}.side-note{display:none}}@media(max-width:700px){.main{padding:16px}.cards{grid-template-columns:repeat(2,1fr)}.detail-grid,.form-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.topbar .primary{font-size:12px}}
.activity-grid{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px}.activity-stat{border:1px solid var(--border);border-radius:10px;padding:12px}.activity-stat strong{font-size:20px;display:block}.activity-stat span{font-size:12px;color:var(--muted)}.check-field{align-content:end}.check-field label{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:500}.check-field input{width:auto}
@media(max-width:1100px){.activity-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.nav-btn[data-view="appointments"]:before{content:'◷'}.nav-btn[data-view="followups"]:before{content:'↻'}.nav-btn[data-view="mail"]:before{content:'✉'}.nav-btn[data-view="requests"]:before{content:'📥'}}
@media(max-width:700px){.activity-grid{grid-template-columns:repeat(2,1fr)}}

/* V3 authentication / cloud status */
.auth-gate{position:fixed;inset:0;z-index:1000;background:rgba(13,25,44,.94);display:grid;place-items:center;padding:24px}
.auth-gate.hidden{display:none}
.auth-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.auth-card h1{margin:26px 0 6px;font-size:28px}.auth-card p{margin:0 0 22px;color:#667085}
.auth-brand{color:#14213d}.auth-card form{display:grid;gap:9px}.auth-card label{font-weight:700;font-size:13px;margin-top:6px}.auth-card input{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:10px;padding:12px 13px;font:inherit}.auth-submit{margin-top:12px;width:100%}.auth-message{min-height:20px;margin-top:14px;font-size:13px;color:#b42318}
.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.user-badge{font-size:12px;color:#475467;text-align:right;line-height:1.25}.user-badge strong{display:block;color:#101828}.sync-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#eef4ff;color:#3538cd;font-size:11px;font-weight:700}.sync-pill.local{background:#fff7ed;color:#9a3412}.sync-pill.error{background:#fef3f2;color:#b42318}
@media(max-width:760px){.top-actions{justify-content:flex-start}.user-badge{text-align:left}.auth-card{padding:22px}}
/* V4 Client Portal */
.client-portal{min-height:100vh;background:#f6f8fb}.client-topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:16px 28px;background:#fff;border-bottom:1px solid #e5e7eb}.client-main{max-width:1180px;margin:auto;padding:28px}.client-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;background:linear-gradient(135deg,#fff,#f0f5ff)}.client-hero h1{margin:5px 0 4px}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:800;color:#52606d}.large{padding:13px 18px}.client-portal .item{background:#fff}.instruction-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.status-line{display:flex;justify-content:space-between;gap:12px;align-items:center}.request-note{margin-top:8px;padding:8px 10px;background:#f8fafc;border-radius:8px}.hidden-important{display:none!important}@media(max-width:720px){.client-topbar,.client-hero{align-items:flex-start;flex-direction:column}.client-main{padding:16px}.client-topbar{padding:14px 16px}.client-hero .large{width:100%}}

/* V4.1 mobile usability fix — keep account controls reachable on phones */
@media(max-width:700px){
  .app-shell{grid-template-columns:56px minmax(0,1fr)}
  .sidebar{padding:16px 8px;overflow:hidden}
  .brand{justify-content:center;margin-bottom:20px}
  .brand-mark{width:40px;height:40px;border-radius:12px;font-size:16px;flex:0 0 40px}
  .brand>div:not(.brand-mark){display:none}
  .nav-btn{padding:11px 8px;text-align:center;width:40px;min-width:40px;margin:0 auto}
  .main{padding:14px 12px;min-width:0;overflow-x:hidden}
  .topbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;margin-bottom:16px}
  .topbar h1{font-size:25px;line-height:1.05}
  .topbar p{font-size:12px}
  .top-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;width:100%;align-items:center;justify-content:stretch}
  .user-badge{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:10px}
  .user-badge strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #logoutBtn{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;padding:9px 10px;font-size:12px}
  #logoutBtn.hidden{display:none!important}
  #quickTaskBtn{white-space:nowrap;padding:9px 10px;font-size:12px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card,.panel{min-width:0}
}
@media(max-width:420px){
  .top-actions{grid-template-columns:1fr 1fr}
  .user-badge{grid-column:1/-1;white-space:normal}
  #logoutBtn,#quickTaskBtn{width:100%}
}

/* V4.6 mobile report cards */
.report-mobile{display:none}
.util-card{border:1px solid var(--border);border-radius:14px;padding:14px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.util-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid var(--border)}
.util-head>div:first-child{min-width:0}
.util-head strong{display:block;font-size:17px;line-height:1.15}
.util-head span{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.util-time{text-align:right;flex:0 0 auto}.util-time span{margin:0}.util-time strong{font-size:20px;margin-top:2px}
.util-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.util-grid>div{border:1px solid var(--border);border-radius:10px;padding:10px;min-width:0}
.util-grid span{display:block;color:var(--muted);font-size:11px;line-height:1.2}
.util-grid strong{display:block;font-size:20px;margin-top:4px}
@media(max-width:700px){
  #reportTable.table-wrap{overflow:visible}
  .report-desktop{display:none}
  .report-mobile{display:grid;gap:12px}
}

/* V4.7 Quick Client Finder + persistent Client Workspace */
.workspace-results{display:grid;gap:8px}.workspace-result{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:11px;background:#fff}.workspace-result .meta{overflow-wrap:anywhere}.workspace-banner{position:sticky;top:0;z-index:10;border:1px solid #cfe0ff;background:#f4f8ff;border-radius:14px;padding:14px 16px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.workspace-banner h2{margin:0;font-size:20px}.workspace-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin-bottom:12px}.workspace-tab{white-space:nowrap;border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 11px;cursor:pointer}.workspace-tab.active{background:var(--nav);color:#fff;border-color:var(--nav)}.workspace-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.workspace-summary .card .value{font-size:21px}.workspace-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.workspace-section{display:none}.workspace-section.active{display:block}.workspace-list{display:grid;gap:9px}.workspace-empty{color:var(--muted);padding:12px 0}.workspace-contact{display:grid;grid-template-columns:1fr 1fr;gap:12px}.workspace-id{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:1000px){.nav-btn[data-view="workspace"]:before{content:'⌕'}}
@media(max-width:700px){.workspace-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-banner{align-items:flex-start;flex-direction:column}.workspace-contact{grid-template-columns:1fr}.workspace-result{align-items:flex-start;flex-direction:column}.workspace-result button{width:100%}.workspace-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:8px}.workspace-tab{white-space:normal;min-height:44px;width:100%;padding:8px 6px;line-height:1.15}.workspace-banner .secondary{width:100%}}
