/* Market Pulse – shared look. Loaded after each page's own styles so it wins. */
:root{
  --c:#1d72aa;--c2:#16a085;--bg:#f4f6fb;--ink:#172033;--mut:#5b6678;--line:#e4e9f2;--card:#fff;
  --ok:#17803d;--bad:#c2342a;--warn:#8a5a00;--okbg:#e3f6ea;--badbg:#fde8e5;--warnbg:#fff1cf;
  --r:16px;--sh:0 1px 2px rgba(23,32,51,.05),0 6px 20px rgba(23,32,51,.06);
  --font:ui-rounded,"SF Pro Rounded","Nunito","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root{--bg:#0e1420;--ink:#eef2f9;--mut:#9aa6ba;--line:#26304a;--card:#171f31;--okbg:#13361f;--badbg:#411a17;--warnbg:#3d2f0a;--ok:#5fd68a;--bad:#ff8a80;--warn:#f1c155;--sh:0 1px 2px #0006}}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font)!important;background:var(--bg)!important;color:var(--ink)!important;line-height:1.5;
  background-image:radial-gradient(900px 300px at 100% -80px,color-mix(in srgb,var(--c) 14%,transparent),transparent),radial-gradient(700px 260px at -10% 0,color-mix(in srgb,var(--c2) 10%,transparent),transparent)!important;background-repeat:no-repeat!important}
::selection{background:color-mix(in srgb,var(--c) 30%,transparent)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--c) 55%,#fff);outline-offset:2px;border-radius:10px}

/* header: the brand colour, with a heartbeat line that is the app's signature */
header{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 70%,#000))!important;color:#fff;position:relative;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.14)}
header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;opacity:.28;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='22' viewBox='0 0 240 22'%3E%3Cpath d='M0 12h70l8-9 10 18 9-14 7 5h136' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") repeat-x;background-size:240px 22px;animation:beat 6s linear infinite}
@keyframes beat{to{background-position:240px 0}}
header a{color:#fff;text-decoration:none;opacity:.92;padding:6px 10px;border-radius:99px;background:#ffffff1f}
header a:hover{background:#ffffff38}
header b{letter-spacing:.2px}
header>*{position:relative;z-index:1}

/* cards, inputs, buttons */
.card,main,.login,dialog{background:var(--card)!important;border:1px solid var(--line)!important;border-radius:var(--r)!important;box-shadow:var(--sh)}
.card{padding:16px!important;margin:0 0 14px!important;animation:rise .35s ease both}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
input,select,textarea{background:var(--card)!important;color:var(--ink)!important;border:1.5px solid var(--line)!important;border-radius:12px!important;min-height:44px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--c)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 18%,transparent);outline:0}
button{border-radius:12px!important;min-height:44px;font-weight:700!important;cursor:pointer;transition:transform .12s,box-shadow .15s,filter .15s}
button:not(.g):not(.chip):not([class=""]) {box-shadow:0 2px 0 rgba(0,0,0,.12)}
button:active{transform:scale(.97)}
button:hover:not(:disabled){filter:brightness(1.06)}
button.b,.bar button:not(.g),#go,#cg,#done,#snap,#resume{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 78%,var(--c2)))!important;color:#fff!important;border:0!important}
button.g{background:var(--card)!important;color:var(--c)!important;border:1.5px solid color-mix(in srgb,var(--c) 55%,transparent)!important}
.mut{color:var(--mut)!important}
.pill{font-weight:700;padding:3px 10px!important}
.pill.ok{background:var(--okbg)!important;color:var(--ok)!important}.pill.bad{background:var(--badbg)!important;color:var(--bad)!important}.pill.w{background:var(--warnbg)!important;color:var(--warn)!important}

/* bottom bar & toast (field app) */
#bar.bar{background:color-mix(in srgb,var(--card) 88%,transparent)!important;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--line)!important}
#toast{background:var(--ink)!important;color:var(--bg)!important;border-radius:16px!important;padding:11px 18px!important;box-shadow:0 8px 28px rgba(0,0,0,.28);animation:pop .25s ease both}
@keyframes pop{from{opacity:0;transform:translate(-50%,-8px) scale(.96)}to{opacity:1;transform:translate(-50%,0)}}

/* chips, rows, photos */
.chips button{border-radius:99px!important;min-height:38px;background:var(--card)!important;color:var(--ink)!important;border:1.5px solid var(--line)!important;box-shadow:none!important}
.chips button.on{background:var(--c)!important;color:#fff!important;border-color:var(--c)!important}
.pr{border-bottom:1px solid var(--line)!important;padding:10px 0!important}
.pr img{border-radius:10px!important}
.photos img{border-radius:12px!important}
.photos span{border-radius:99px!important;padding:2px 9px!important;backdrop-filter:blur(6px)}
.yn button{min-width:44px;background:var(--card)!important;color:var(--ink)!important;border:1.5px solid var(--line)!important;box-shadow:none!important}
.yn .y.on{background:var(--ok)!important;color:#fff!important;border-color:var(--ok)!important}.yn .x.on{background:var(--bad)!important;color:#fff!important;border-color:var(--bad)!important}
.prw.in{background:var(--okbg)!important}.prw.out{background:var(--badbg)!important}
.avatar{width:42px;height:42px;border-radius:14px;flex:none;display:grid;place-items:center;font-weight:800;color:#fff;font-size:17px;background:linear-gradient(135deg,var(--c),var(--c2))}
.hello{padding:6px 2px 14px}.hello h2{margin:0;font-size:24px;letter-spacing:-.3px}.hello p{margin:2px 0 0;color:var(--mut)}
.ring{--p:0;width:56px;height:56px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;
  background:conic-gradient(var(--c2) calc(var(--p)*1%),var(--line) 0)}
.ring i{font-style:normal;width:44px;height:44px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-size:15px}
.stat{display:flex;gap:12px;align-items:center}
.empty{text-align:center;padding:18px 8px;color:var(--mut)}.empty svg{display:block;margin:0 auto 6px}
.tag{display:inline-flex;gap:6px;align-items:center}

/* admin tables & tabs */
nav button{border-radius:99px!important;min-height:40px;box-shadow:none!important}
nav button.on{background:var(--card)!important;color:var(--c)!important;box-shadow:var(--sh)!important}
main{margin-top:6px}
th{text-transform:uppercase;letter-spacing:.5px;font-size:11.5px!important}
tr.c:hover{background:color-mix(in srgb,var(--c) 7%,transparent)!important}
td,th{border-bottom:1px solid var(--line)!important}
dialog::backdrop{background:#0a1020aa;backdrop-filter:blur(3px)}
.err{color:var(--bad)!important}

/* product grid on master page */
.p{border-radius:14px!important;border:1px solid var(--line)!important;background:var(--card)!important;transition:transform .15s,box-shadow .15s}
.p:hover{transform:translateY(-3px);box-shadow:var(--sh)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.login{box-shadow:var(--sh);animation:rise .4s ease both}

/* report tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:14px;margin:6px 0 18px}
.rt{border-collapse:separate;border-spacing:0;min-width:480px}.rt th{background:color-mix(in srgb,var(--c) 6%,var(--card));font-size:11.5px;padding:10px 12px;white-space:nowrap}
.rt td{padding:11px 12px;vertical-align:middle}.rt tr:last-child td{border-bottom:0!important}.rt th.n,.rt td.n{text-align:right}
.rt tr:nth-child(even) td{background:color-mix(in srgb,var(--ink) 2.5%,transparent)}
.who{display:flex;align-items:center;gap:10px}.av{width:30px;height:30px;border-radius:10px;flex:none;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;background:linear-gradient(135deg,var(--c),var(--c2))}
.nm b{font-weight:700}.nm small{display:block;color:var(--mut);font-size:11.5px}
.meter{display:inline-block;vertical-align:middle;width:70px;height:7px;border-radius:9px;background:var(--line);margin-right:8px;overflow:hidden}.meter i{display:block;height:100%;border-radius:9px}
.emp{padding:18px;text-align:center;color:var(--mut);background:color-mix(in srgb,var(--c) 5%,transparent);border-radius:14px;margin:6px 0 18px}
h4{margin:22px 0 4px;font-size:15px}

.info{margin:12px 0;padding:12px 14px;background:color-mix(in srgb,var(--c) 7%,var(--card));border-radius:14px;display:grid;gap:4px}
.note{margin:10px 0;padding:10px 14px;border-radius:14px;background:var(--warnbg);color:var(--ink)}
.ph{gap:10px!important}.shot{position:relative;display:block;border-radius:14px;overflow:hidden;text-decoration:none}
.shot img{display:block;border-radius:0!important;transition:transform .25s}.shot:hover img{transform:scale(1.04)}
.shot span{position:absolute;left:8px;bottom:8px;background:#000a;color:#fff;font-size:11.5px;padding:2px 10px;border-radius:99px;text-transform:capitalize;backdrop-filter:blur(6px)}
dialog{padding:22px!important}dialog h3{font-size:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
dialog .bar{display:flex!important;gap:10px;margin-top:12px}
