/* FS Digital client portal — phone first.
   Same brand as the site: orange / cream / ink + ultramarine, Montserrat Bold. */
:root{
  --ink:#0B0B0B; --paper:#F5F3EE; --paper-2:#ECE9E1; --white:#fff;
  --accent:#FF4A1C; --accent-dim:#C8340E; --blue:#2B3BFF; --green:#0F7A4D; --red:#B3261E;
  --t-1:rgba(11,11,11,.76); --t-2:rgba(11,11,11,.6); --line:rgba(11,11,11,.13);
  --display:"Montserrat","Onest",system-ui,sans-serif;
  --text:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:16px; --r-s:12px; --tap:48px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper-2);color:var(--ink);font-family:var(--text);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
h1,h2,p,dl,dd,ol{margin:0}
ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}

/* the app is a phone-width column, centred on larger screens */
.app{max-width:520px;min-height:100vh;min-height:100dvh;margin-inline:auto;background:var(--paper);display:flex;flex-direction:column;position:relative}

/* ── top bar ── */
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;background:var(--ink);color:var(--white)}
.top__back{display:grid;place-items:center;width:var(--tap);height:var(--tap);margin-left:-12px}
.top__t{flex:1;min-width:0}
.top__t h1{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:-.02em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top__t p{font-size:13px;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top__out{min-height:var(--tap);padding:0 4px;font-size:13px;font-weight:600;color:rgba(255,255,255,.75)}

.main{flex:1;padding:16px 16px calc(96px + var(--safe-b));display:flex;flex-direction:column;gap:14px}

/* ── bottom tabs ── */
.tabs{position:fixed;left:50%;bottom:0;z-index:6;width:100%;max-width:520px;transform:translateX(-50%);display:flex;background:var(--white);border-top:1px solid var(--line);padding-bottom:var(--safe-b)}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:60px;font-size:11.5px;font-weight:600;color:var(--t-2)}
.tabs a.is-on{color:var(--accent-dim)}

/* ── buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:999px;font-weight:600;font-size:15px;border:1.5px solid transparent;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn--accent{background:var(--accent);color:var(--ink)}
.btn--dark{background:var(--ink);color:var(--white)}
.btn--line{border-color:rgba(11,11,11,.26);background:var(--white)}
.btn--full{width:100%}
.btn:active{transform:scale(.98)}

/* ── numbers on top ── */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px}
.kpi{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:2px}
.kpi b{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:-.03em;line-height:1}
.kpi span{font-size:12.5px;color:var(--t-2);line-height:1.3}
.kpi--a{background:var(--ink);color:var(--white);border-color:var(--ink)}
.kpi--a span{color:rgba(255,255,255,.72)}

/* ── sections + rows ── */
.sec{display:flex;flex-direction:column;gap:8px}
.sec__t{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.01em;margin-top:6px;display:flex;align-items:center;gap:8px}
.sec__t span{font-family:var(--text);font-size:12px;font-weight:600;color:var(--t-2);background:var(--paper-2);border-radius:99px;padding:1px 8px}
.list{display:flex;flex-direction:column;gap:8px}
.row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;min-height:64px}
.row:active{background:var(--paper)}
.row__m{flex:1;min-width:0;display:flex;flex-direction:column}
.row__m b{font-weight:600;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row__m small{font-size:13px;color:var(--t-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--line)}
.dot--high{background:var(--accent)}
.dot--mid{background:var(--blue)}
.empty{font-size:14px;color:var(--t-2);padding:14px;border:1px dashed var(--line);border-radius:var(--r-s);text-align:center}

/* stage pills: one colour family per meaning */
.pill{flex:none;font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;white-space:nowrap;background:var(--paper-2);color:var(--t-1)}
.pill--new{background:#FFE4DB;color:#8A2408}
.pill--noanswer{background:#FFF1C9;color:#6B4B00}
.pill--talking,.pill--visit{background:#E3E6FF;color:#1B269E}
.pill--offer{background:#EADFFF;color:#4A2A99}
.pill--sold{background:#D9F2E4;color:#0B5B39}
.pill--lost{background:var(--paper-2);color:var(--t-2)}

.chips{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:99px;border:1.5px solid rgba(11,11,11,.22);background:var(--white);font-size:13.5px;font-weight:600;white-space:nowrap}
.chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--white)}

.fab{position:fixed;z-index:6;right:max(16px,calc(50% - 244px));bottom:calc(76px + var(--safe-b));width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--ink);box-shadow:0 8px 22px rgba(11,11,11,.28)}

/* ── lead detail ── */
.call{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px}
.call .btn{padding:0 10px;font-size:14.5px}
.state{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13.5px;color:var(--t-1)}
.acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.act{min-height:52px;padding:8px 10px;border-radius:var(--r-s);border:1.5px solid rgba(11,11,11,.26);background:var(--white);font-weight:600;font-size:14.5px;line-height:1.2}
.act:active{transform:scale(.98)}
.act.is-on{background:var(--ink);border-color:var(--ink);color:var(--white)}
.act--ok{border-color:var(--green);color:var(--green)}
.act--ok.is-on{background:var(--green);border-color:var(--green);color:var(--white)}
.act--no{border-color:rgba(11,11,11,.26);color:var(--t-1)}
.lbl{font-size:12.5px;font-weight:600;color:var(--t-2);margin-top:4px}
.in{width:100%;min-height:var(--tap);padding:12px 14px;border-radius:var(--r-s);border:1.5px solid rgba(11,11,11,.3);background:var(--white);font-size:16px}
.in:focus{outline:none;border-color:var(--ink)}
textarea.in{resize:vertical;min-height:88px}
.facts{background:var(--white);border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.facts div{display:flex;justify-content:space-between;gap:16px;padding:11px 14px;font-size:14.5px}
.facts div + div{border-top:1px solid var(--line)}
.facts dt{color:var(--t-2);flex:none}
.facts dd{text-align:right;font-weight:500;min-width:0;overflow-wrap:anywhere}
.log{display:flex;flex-direction:column;gap:8px}
.log li{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding-left:14px;border-left:2px solid var(--line)}
.log b{font-weight:500}
.log small{color:var(--t-2);white-space:nowrap}

.form{display:flex;flex-direction:column;gap:8px}
.form .btn{margin-top:10px}
.err{font-size:13.5px;font-weight:600;color:var(--red);min-height:0}
.err:empty{display:none}

/* ── numbers screen ── */
.goal{background:var(--blue);color:var(--white);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:8px}
.goal p{font-size:12.5px;color:rgba(255,255,255,.8)}
.goal b{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1.2}
.bar{height:8px;border-radius:99px;background:var(--paper-2);overflow:hidden}
.bar i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.goal .bar{background:rgba(255,255,255,.25)}
.goal .bar i{background:var(--white)}
.funnel{background:var(--white);border:1px solid var(--line);border-radius:var(--r-s);padding:6px 14px}
.funnel__r{display:grid;grid-template-columns:132px 1fr 28px;align-items:center;gap:10px;padding:9px 0;font-size:14px}
.funnel__r + .funnel__r{border-top:1px solid var(--line)}
.funnel__r b{text-align:right;font-weight:600}
.tbl{background:var(--white);border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.tbl__r{display:flex;align-items:center;gap:12px;padding:11px 14px;font-size:14px}
.tbl__r + .tbl__r{border-top:1px solid var(--line)}
.tbl__r b{flex:1;font-weight:600;min-width:0}
.tbl__r span{color:var(--t-2);white-space:nowrap}

/* ── login ── */
.login{flex:1;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:32px 20px calc(32px + var(--safe-b));background:var(--ink);color:var(--white);min-height:100vh;min-height:100dvh}
.login__logo{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.03em}
.login__logo span{color:var(--accent)}
.login h1{font-family:var(--display);font-weight:700;font-size:32px;letter-spacing:-.03em;line-height:1.08;margin-top:8px}
.login__p{color:rgba(255,255,255,.72);font-size:14.5px;margin-bottom:10px}
.login__l{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.6);margin-top:10px}
.login .btn{width:100%;justify-content:flex-start;padding:0 18px}
.login .btn--line{color:var(--ink)}
.login .btn--dark{background:var(--accent);color:var(--ink)}

/* ── bottom sheet ── */
.sheet{width:100%;max-width:520px;margin:auto auto 0;padding:0;border:0;border-radius:20px 20px 0 0;background:var(--white);color:var(--ink)}
.sheet::backdrop{background:rgba(11,11,11,.55)}
.sheet__in{display:flex;flex-direction:column;gap:10px;padding:22px 18px calc(18px + var(--safe-b))}
.sheet h2{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1.2}
.sheet__b{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}

.toast{position:fixed;z-index:20;left:50%;bottom:calc(150px + var(--safe-b));transform:translate(-50%,12px);max-width:min(92vw,480px);padding:11px 16px;border-radius:99px;background:var(--ink);color:var(--white);font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.boot{padding:40vh 20px 0;text-align:center;color:var(--t-2);font-size:14px}
.login__f{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.login__f .in{background:var(--white);color:var(--ink)}
.login__f .btn{margin-top:10px;justify-content:center}
.login .err{color:#FFB4A8}

.note{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:0 var(--r-s) var(--r-s) 0;padding:14px;display:flex;flex-direction:column;gap:8px}
.note b{font-family:var(--display);font-weight:700;font-size:16px}
.note p{font-size:14px;color:var(--t-1)}
.note--ok{flex-direction:row;align-items:center;justify-content:space-between;border-left-color:var(--green)}
.note__x{min-height:40px;padding:0 6px;font-size:13.5px;font-weight:600;color:var(--t-2);text-decoration:underline}
