/* FCL CRM theme: calm, light, built for a phone in a work truck. Loaded after style.css, so everything here wins. */
:root{
 --paper:#f5f6f8;--panel:#fff;--ink:#14181f;--steel:#5d6877;--hair:#e2e5ea;--soft:#eceef2;--brass:#9a6a1c;--brass-bg:#fbf3e3;--ok:#1d6b4f;--ok-bg:#e2f4ea;--bad:#a12b2b;--bad-bg:#fbe7e7;
 --focus:#2f6fe4;--sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,system-ui,sans-serif;--r-panel:18px;--r-ctl:12px;
 font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
body{background:var(--paper)}
h1,h2,h3{letter-spacing:-.02em;line-height:1.15}h1{font-size:34px;font-weight:700;margin:2px 0 0}h2{font-size:20px;font-weight:650;margin:0}h3{font-size:16px;font-weight:650}
a{color:var(--ink);text-decoration-color:#9aa3af;text-underline-offset:3px}
.muted,.eyebrow{color:var(--steel);font-size:13.5px}
.eyebrow{text-transform:none;letter-spacing:0;font-size:14px;margin:0}
.badge{display:none}

/* ---------- sidebar ---------- */
aside{background:#eceef2;color:var(--ink);padding:26px 14px 18px;gap:18px;border-right:1px solid var(--hair);width:244px}
aside{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c3c9d2 transparent;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
aside>*{flex-shrink:0}
aside .brand{font-size:21px;font-weight:700;letter-spacing:-.02em;padding:0 10px;color:var(--ink);line-height:1.15}
aside .brand span{display:block;font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--steel);margin-top:3px;text-transform:none}
aside select{background:#fff;color:var(--ink);border:1px solid var(--hair);border-radius:var(--r-ctl);min-height:42px;margin:0 2px}
main{margin-left:244px;width:calc(100% - 244px);padding:38px 44px 80px;max-width:1240px}
nav{display:block}
nav button{display:flex;align-items:center;gap:11px;width:100%;min-height:42px;padding:9px 12px;border-radius:11px;color:#2b3340;font-weight:550;font-size:15px;background:transparent;border:0;text-align:left}
nav button:hover{background:#e1e4ea;filter:none}
nav button.active{background:#fff;color:var(--ink);box-shadow:0 1px 2px #14181f1a,0 0 0 1px #14181f0d}
nav button svg{flex:none;width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.82}
nav button.active svg{opacity:1;stroke:var(--brass)}
nav .g3{display:none;margin-top:2px}nav.open .g3,nav.act3 .g3{display:block}
nav .m-phone{display:none}nav .m-desk{color:var(--steel);font-weight:500}
nav .m-desk svg{transition:transform .15s}nav.open .m-desk svg{transform:rotate(180deg)}
aside #account{padding:0 12px;color:var(--steel);font-size:13px}
aside #logout{background:#fff;color:var(--ink);border:1px solid var(--hair);margin:0 2px;min-height:40px}
aside small{color:var(--steel);font-size:12px;line-height:1.55;padding:0 12px}
.puck-link{color:var(--steel);font-size:12.5px;padding:0 12px}

/* ---------- headings, cards, panels ---------- */
header{margin-bottom:22px;align-items:flex-end}
.panel,.card{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r-panel);padding:24px;box-shadow:0 1px 2px #14181f08}
.card{padding:20px 22px}.card strong{font-size:30px;font-weight:700;letter-spacing:-.025em;margin-top:8px}
.cards{gap:14px;margin-bottom:18px}.panel{margin-bottom:16px}
.toolbar{margin-bottom:14px}.toolbar h2{margin:0}
.row{border-bottom:1px solid var(--hair);padding:16px 0}.row:last-child{border-bottom:0}
.empty{padding:36px;text-align:center;color:var(--steel)}
#notice:not(:empty){background:var(--ok-bg);color:#14513a;border-radius:var(--r-ctl);padding:13px 16px;font-weight:550}

/* ---------- controls ---------- */
button{background:var(--ink);color:#fff;border-radius:var(--r-ctl);min-height:42px;padding:10px 18px;font-weight:600;font-size:15px;letter-spacing:-.005em;transition:background .12s,transform .06s}
button:hover{filter:none;background:#2a313c}button:active{transform:scale(.985)}
button.secondary{background:var(--soft);color:var(--ink)}button.secondary:hover{background:#e0e3e9}
button.danger{background:var(--bad)}button.big{min-height:52px;font-size:16.5px;padding:13px 24px}
button.link,.link{background:none;color:var(--ink);padding:0;min-height:0;text-decoration:underline;text-decoration-color:#9aa3af;text-underline-offset:3px;font-weight:550}
a.btn{background:var(--ink);border-radius:var(--r-ctl);min-height:42px;padding:10px 18px;font-weight:600;display:inline-flex;align-items:center;color:#fff;text-decoration:none}
a.btn.secondary{background:var(--soft);color:var(--ink)}
input,select,textarea{border:1.5px solid #d3d8e0;border-radius:var(--r-ctl);padding:11px 13px;min-height:44px;font-size:16px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:0;box-shadow:0 0 0 3px #14181f1f}
label{color:var(--steel);font-size:14px;font-weight:500}
.jf-add{background:var(--ink);border-radius:var(--r-ctl)}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,.jf-add:focus-within{outline:3px solid var(--focus);outline-offset:2px}

/* ---------- tables, pills, pipeline ---------- */
th{text-transform:none;letter-spacing:0;font-size:13px;font-weight:600;color:var(--steel);border-bottom:1px solid var(--hair);padding:12px 10px}
td{border-bottom:1px solid #eef0f3;padding:15px 10px;font-size:14.5px}tr:last-child td{border-bottom:0}
.table-wrap{padding:6px 14px;border-radius:var(--r-panel)}
.pill{border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600;background:var(--soft);color:#3a4350}
.pill.pass{background:var(--ok-bg);color:var(--ok)}.pill.fail{background:var(--bad-bg);color:var(--bad)}.pill.unknown{background:var(--brass-bg);color:var(--brass)}
.column{background:#eceef2;border-radius:16px}.deal{border:1px solid var(--hair);border-radius:12px;box-shadow:0 1px 2px #14181f0a}

/* ---------- dialog ---------- */
dialog{border-radius:22px;padding:28px;box-shadow:0 30px 90px #14181f40}dialog::backdrop{background:#14181f66;backdrop-filter:blur(3px)}
dialog h2{margin-bottom:14px}

/* ---------- Today: the "needs you" summary ---------- */
.needs{padding:28px 28px 14px}.needs .date{color:var(--steel);margin:0 0 4px;font-size:15px}
.needs h2{font-size:30px;font-weight:700;letter-spacing:-.03em;margin:0 0 10px}
.need{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 0;border-top:1px solid var(--hair)}
.need strong{font-weight:600}.need p{margin:2px 0 0}
.need .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--brass);margin-right:10px;vertical-align:1px}
.clear{padding:6px 0 18px;color:var(--steel);font-size:16px;margin:0}

/* ---------- auth ---------- */
#auth{background:linear-gradient(160deg,#14181f,#232b38)}.auth-card{border-radius:24px;padding:36px}.auth-card .brand{color:var(--ink);font-size:30px;font-weight:700}.auth-card .brand span{color:var(--steel);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none}

/* ---------- tablet and phone ---------- */
@media(max-width:900px){aside{width:200px}main{margin-left:200px;width:calc(100% - 200px);padding:28px 22px 80px}}
@media(max-width:700px){
 body{display:block}
 aside{position:static;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;padding:14px 16px;gap:10px;border-right:0;border-bottom:1px solid var(--hair)}
 aside .brand{padding:0;font-size:19px;flex:1 1 auto}aside .brand span{display:none}
 aside select{flex:1 1 100%;order:3}aside #account,aside small,.puck-link{display:none}aside #logout{min-height:36px;padding:6px 14px;order:2}
 main{margin:0;width:100%;padding:18px 16px 110px}h1{font-size:30px}
 nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
 nav::before{content:'';position:absolute;inset:0;z-index:-1;background:#ffffffee;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--hair)}
 nav .g1{display:flex;flex:1 1 auto;gap:2px}nav .g1 button,nav .m-phone{flex:1 1 0;flex-direction:column;justify-content:center;gap:3px;min-height:54px;padding:6px 2px;font-size:11.5px;font-weight:600;text-align:center;border-radius:12px;color:#556070;width:auto}
 nav .g1 button.active{background:transparent;box-shadow:none;color:var(--ink)}
 nav .g1 button svg,nav .m-phone svg{width:25px;height:25px}
 nav .m-phone{display:flex;background:transparent;border:0}nav .m-desk{display:none}
 nav .sheet{display:none}nav.open .sheet{display:grid;grid-template-columns:1fr 1fr;gap:6px;position:fixed;left:10px;right:10px;bottom:calc(76px + env(safe-area-inset-bottom));background:#fff;border:1px solid var(--hair);border-radius:20px;padding:10px;box-shadow:0 20px 60px #14181f40;max-height:60vh;overflow:auto}
 nav .sheet .g2,nav .sheet .g3{display:contents}nav .sheet button{background:var(--soft);min-height:50px}nav .sheet button.active{background:#fff;box-shadow:0 0 0 2px var(--ink)}
 .cards{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.needs h2{font-size:26px}.panel{padding:18px}.needs{padding:20px 18px 8px}
 dialog{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:24px 24px 0 0;max-height:92vh;padding:22px 18px calc(22px + env(safe-area-inset-bottom))}
 table{font-size:14px}.toolbar{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
