:root{
  --ink:#18322f;--muted:#687d79;--teal:#164e49;--teal-2:#2e726a;--mint:#dcebe7;
  --cream:#f7f4ee;--paper:#fff;--line:#dde7e4;--red:#bf544b;--red-bg:#fae8e5;
  --amber:#a87424;--amber-bg:#f7ecd7;--green:#30795e;--green-bg:#e1f0e9;--blue:#496b91;
  --shadow:0 14px 38px rgba(24,50,47,.09);--radius:18px;
}
*{box-sizing:border-box}html{background:#eef3f1;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{height:100vh;position:sticky;top:0;background:var(--teal);color:#fff;padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;margin-bottom:24px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#b9d7d1);color:var(--teal);font-weight:900;font-size:20px}.brand strong{display:block}.brand span{display:block;font-size:11px;color:#c5ddd8;margin-top:2px}.nav-list{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:#d7e7e3;border-radius:12px;padding:11px 12px;text-align:left;display:flex;align-items:center;gap:9px}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.14);color:#fff}.sidebar-foot{margin-top:auto;display:grid;gap:8px}.sidebar-foot small{color:#b8d2cd}.status-pill{width:max-content;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.status-pill.online{background:#d9efe5;color:#22654e}.status-pill.offline{background:rgba(255,255,255,.13);color:#e8f3f1}
.main{min-width:0;padding:28px 30px 80px;max-width:1500px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.topbar h1{font-size:28px;margin:0 0 5px}.topbar p{margin:0;color:var(--muted)}.top-actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:0;border-radius:12px;padding:10px 14px;font-weight:750}.btn.primary{background:var(--teal);color:#fff}.btn.secondary{background:var(--mint);color:var(--teal)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--red-bg);color:var(--red)}.icon-btn{border:0;background:transparent;font-size:26px;color:var(--muted)}
.content{display:grid;gap:18px}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(6,minmax(120px,1fr))}.grid.two{grid-template-columns:1.15fr .85fr}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.kpi-label{font-size:12px;color:var(--muted)}.kpi-value{font-size:29px;font-weight:850;margin-top:7px}.kpi-value.red{color:var(--red)}.kpi-value.amber{color:var(--amber)}.kpi-value.green{color:var(--green)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h2,.section-head h3{margin:0}.section-head h2{font-size:20px}.section-head h3{font-size:17px}.section-actions{display:flex;gap:8px;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:12px}.empty{padding:36px 28px;border:1px dashed #b8d2cd;border-radius:14px;color:#2c4a45;text-align:center;background:#f1f7f4;font-size:14px;line-height:1.7;margin:8px 0}
.empty::before{content:"📭";display:block;font-size:32px;margin-bottom:10px}.list{display:grid;gap:10px}.list-item{padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.item-title{font-weight:800}.item-meta{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.item-notes{font-size:13px;line-height:1.55;margin-top:9px}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.badge{font-size:11px;border-radius:999px;padding:4px 8px;background:var(--mint);color:var(--teal);font-weight:700}.badge.red{background:var(--red-bg);color:var(--red)}.badge.amber{background:var(--amber-bg);color:var(--amber)}.badge.green{background:var(--green-bg);color:var(--green)}.badge.gray{background:#eef2f1;color:#60736f}.badge.blue{background:#e9eff6;color:var(--blue)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;min-width:860px;background:#fff}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid #edf2f0;text-align:left;font-size:13px;vertical-align:top}.data-table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#6e807d;background:#f7faf9;position:sticky;top:0}.data-table tr:last-child td{border-bottom:0}.clickable{cursor:pointer}.clickable:hover{background:#f8fbfa}.filters{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px}.chip.active{background:var(--teal);border-color:var(--teal);color:#fff}.progress{height:8px;background:#ecf1ef;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--teal-2),#75a79f)}.metric-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:10px 0}.quote-box{background:linear-gradient(145deg,var(--teal),#2e726a);color:#fff;border-radius:18px;padding:20px}.quote-box h3{margin:0 0 10px}.quote-box p{line-height:1.65;margin:0}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-action{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px 12px;text-align:left}.quick-action b{display:block;margin-bottom:5px}.quick-action span{font-size:12px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:750;color:#536a66}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px 11px;outline:none}.field textarea{min-height:82px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal-2);box-shadow:0 0 0 3px rgba(46,114,106,.12)}.inline-fields{display:flex;gap:8px;align-items:end}.inline-fields>*{flex:1}.helper{font-size:11px;color:var(--muted);line-height:1.5}
.modal{border:0;padding:0;background:transparent;width:min(760px,calc(100vw - 24px));max-height:92vh}.modal::backdrop{background:rgba(15,36,33,.48);backdrop-filter:blur(3px)}.modal-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 28px 90px rgba(0,0,0,.25)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.modal-head h2{margin:0}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.modal-body{padding:18px 20px;max-height:65vh;overflow:auto}.modal-actions{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;right:24px;bottom:24px;background:#17332f;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 18px 45px rgba(0,0,0,.22);opacity:0;transform:translateY(12px);pointer-events:none;transition:.22s;z-index:99}.toast.show{opacity:1;transform:none}.mobile-nav{display:none}
@media(max-width:1120px){.grid.kpis{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr}.grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:760px){body{padding-bottom:72px}.app-shell{display:block}.sidebar{display:none}.main{padding:18px 14px 30px}.topbar{align-items:center}.topbar h1{font-size:22px}.topbar p{font-size:12px}.top-actions .btn:not(.primary){display:none}.grid.kpis{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.mobile-nav{display:flex;position:fixed;z-index:50;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:7px 4px calc(7px + env(safe-area-inset-bottom));overflow-x:auto}.mobile-nav .nav-btn{min-width:72px;display:grid;gap:2px;justify-items:center;color:#667a76;padding:6px 8px;font-size:10px}.mobile-nav .nav-btn.active{background:var(--mint);color:var(--teal)}.mobile-nav .nav-icon{font-size:18px}.modal{width:calc(100vw - 14px)}.modal-body{max-height:68vh}.toast{left:14px;right:14px;bottom:88px}.data-table{min-width:760px}}

/* V2.1 additions */
.crm-table{min-width:1450px}.very-wide{min-width:2200px}.compact-table{min-width:480px}.danger-text{color:var(--red)!important}.positive{color:var(--green);font-weight:700}.negative{color:var(--red);font-weight:700}
button:disabled{opacity:.45;cursor:not-allowed}.goal-card{min-height:210px}.life-photo{display:block;width:min(260px,100%);max-height:190px;object-fit:cover;border-radius:12px;margin-top:10px;border:1px solid var(--line)}.photo-preview{max-width:220px;max-height:170px;object-fit:cover;border-radius:12px;margin-top:8px;border:1px solid var(--line)}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.review-grid>div{border:1px solid var(--line);background:#f9fbfa;border-radius:12px;padding:10px}.review-grid b{font-size:12px;color:var(--teal)}.review-grid p{font-size:13px;line-height:1.55;margin:5px 0 0}
.assistant-modal{border:0;background:transparent;padding:0;width:min(760px,calc(100vw - 18px));max-height:92vh}.assistant-modal::backdrop{background:rgba(15,36,33,.52);backdrop-filter:blur(3px)}.assistant-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 28px 90px rgba(0,0,0,.25)}.assistant-messages{height:min(52vh,520px);overflow:auto;padding:18px;background:#f5f8f7;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:82%;padding:11px 13px;border-radius:14px;line-height:1.55;font-size:14px}.chat-msg.assistant{align-self:flex-start;background:#fff;border:1px solid var(--line)}.chat-msg.user{align-self:flex-end;background:var(--teal);color:#fff}.assistant-compose{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px 18px;border-top:1px solid var(--line)}.assistant-compose textarea{min-height:72px;border:1px solid var(--line);border-radius:12px;padding:10px;resize:vertical}.assistant-note{padding:0 18px 14px}
@media(max-width:760px){.review-grid{grid-template-columns:1fr}.assistant-compose{grid-template-columns:1fr}.assistant-compose .btn{width:100%}.assistant-messages{height:55vh}}

/* sync & login overlay */
.login-overlay{position:fixed;inset:0;background:rgba(15,36,33,.6);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:9999}
.login-overlay[hidden]{display:none}
.login-box{background:#fff;padding:32px 28px;border-radius:16px;width:min(360px,92vw);box-shadow:0 18px 60px rgba(0,0,0,.25);text-align:center}
.login-box h2{margin:0 0 4px;font-size:20px}
.login-box p.login-sub{margin:0 0 20px;color:var(--muted);font-size:13px}
.login-box input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;font-size:15px;box-sizing:border-box}
.login-box input:focus{outline:none;border-color:var(--teal-2);box-shadow:0 0 0 3px rgba(46,114,106,.12)}
.login-error{color:var(--red);font-size:12px;margin-top:8px;min-height:16px}
.sync-badge{position:fixed;right:14px;bottom:14px;z-index:50;padding:6px 10px;border-radius:14px;background:var(--paper);border:1px solid var(--line);font-size:12px;color:var(--muted);box-shadow:var(--shadow)}
.sync-badge.syncing{color:var(--amber)}
.sync-badge.synced{color:var(--green)}
.sync-badge.error{color:var(--red)}
.sync-badge.hidden{display:none}
