
@font-face{font-family:"Plus Jakarta Sans";src:url("assets/jakarta-400.woff2") format("woff2");font-weight:400}
@font-face{font-family:"Plus Jakarta Sans";src:url("assets/jakarta-500.woff2") format("woff2");font-weight:500}
@font-face{font-family:"Plus Jakarta Sans";src:url("assets/jakarta-600.woff2") format("woff2");font-weight:600}
@font-face{font-family:"Plus Jakarta Sans";src:url("assets/jakarta-700.woff2") format("woff2");font-weight:700}
.b.grey{background:var(--grey-bg);color:var(--grey)}.b.pur{background:var(--pur-bg);color:var(--pur)}
.pcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pc{border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.pc h3{font-size:16px}.pc .dom{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--ink3)}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:13.5px}.kv span{color:var(--ink3)}
.prodtags{display:flex;gap:4px;flex-wrap:wrap}
@media (max-width:1000px){.pcards{grid-template-columns:1fr}}

:root{--teal:#009EA2;--pri:#007A7E;--pri-h:#1A878B;--mist:#E3F4F4;--sel:#E6F2F2;--navy:#1A2B3D;--ink:#33475B;--ink3:#5B6B7B;--page:#F5F7FA;--line:#CFD9E1;--line2:#DFE6EB;--row:#E5ECF1;--hov:#F2F6F8;
  --red:#B4232A;--red-bg:#F8E6E3;--warn:#8C5A0B;--warn-bg:#FBF0DC;--pos:#1E7A46;--pos-bg:#E3F1E8;--blue:#1447E6;--blue-bg:#DBEAFE;--pur:#8200DB;--pur-bg:#F3E8FF;--grey:#364153;--grey-bg:#F3F4F6;--del:#E7000B}
*{box-sizing:border-box}
body{margin:0;background:var(--page);font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums}
h1,h2,h3{color:var(--navy);margin:0}
a{color:var(--pri);font-weight:600}
button,input,select,textarea{font:inherit}
.hide{display:none!important}
header.top{background:var(--navy);color:#fff}
.top-in{max-width:1360px;margin:0 auto;padding:0 28px;height:62px;display:flex;align-items:center;gap:14px}
.top-in img{height:26px;filter:brightness(0) invert(1)}
.top-in .div{width:1px;height:26px;background:#3A4C5E}
.top-in b{font-size:17px}.top-in .faint{color:#9FB0BF;font-size:13px}
.top-in .grow{flex-grow:1}.top-in .me{font-size:13px;color:#C5D2DD}
.top-in button{background:none;border:1px solid #3A4C5E;color:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;white-space:nowrap;flex:none}
.top-in .me{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.top-in{padding:0 14px;gap:10px}.top-in .faint,.top-in .div{display:none}.top-in b{font-size:15px;white-space:nowrap}}
@media (max-width:480px){.top-in .me{display:none}}
.tblw{overflow-x:auto;max-width:100%}.tblw>table{min-width:max-content}
nav.tabs{background:#fff;border-bottom:1px solid var(--line)}
nav.tabs .in{max-width:1360px;margin:0 auto;padding:0 28px;display:flex;gap:26px;overflow-x:auto}
@media (max-width:900px){nav.tabs .in{flex-wrap:wrap;gap:4px 18px;padding:0 16px;overflow-x:visible}}
nav.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:12px 2px;color:#5A6C79;font-weight:600;cursor:pointer;white-space:nowrap}
nav.tabs button.on{color:var(--pri);border-bottom-color:var(--pri);font-weight:700}
main{max-width:1360px;margin:0 auto;padding:24px 28px 60px;display:flex;flex-direction:column;gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px}
.card h2{font-size:18px}.card .note{margin:4px 0 0;color:var(--ink3);font-size:13px}
.ch{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}.stat .l{font-size:13px;font-weight:600;color:var(--ink3)}.stat .v{font-size:28px;font-weight:700;color:var(--navy);margin-top:6px}.stat .n{font-size:12.5px;color:var(--ink3);margin-top:2px}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:9px 10px;font-size:12.5px;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--row);vertical-align:middle}
tr.rw:hover td{background:var(--hov)}
td.r,th.r{text-align:right}td.c,th.c{text-align:center}
.b{display:inline-block;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}
.b.pos{background:var(--pos-bg);color:var(--pos)}.b.red{background:var(--red-bg);color:var(--red)}.b.warn{background:var(--warn-bg);color:var(--warn)}.b.teal{background:var(--mist);color:#00676A}.b.blue{background:var(--blue-bg);color:var(--blue)}.b.pur{background:var(--pur-bg);color:var(--pur)}.b.grey{background:var(--grey-bg);color:var(--grey)}
.btn{height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;justify-content:center;white-space:nowrap}
.btn:hover{background:var(--hov)}.btn.pri{background:var(--pri);border-color:var(--pri);color:#fff}.btn.pri:hover{background:var(--pri-h)}
.btn.out{border-color:var(--pri);color:var(--pri)}.btn.del{border-color:var(--del);color:var(--del)}.btn.sm{height:32px;padding:0 10px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
.lnk{background:none;border:0;color:var(--pri);font-weight:600;cursor:pointer;padding:0}
.f{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:var(--navy);min-width:0}
.f small{font-weight:500;color:var(--ink3)}
input[type=text],input[type=number],input[type=email],input[type=date],input[type=password],select,textarea{height:38px;border:1px solid var(--line2);border-radius:9px;padding:0 11px;font-size:14px;color:var(--navy);background:#fff;width:100%;min-width:0}
textarea{height:auto;padding:10px 11px;line-height:1.55;resize:vertical}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #80BCBE;outline-offset:0;border-color:var(--pri)}
td input[type=text],td input[type=number]{height:34px}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--pri)}
input[type=checkbox]:disabled{cursor:default}
input[type=checkbox].na{opacity:.3;cursor:not-allowed}
.g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.end{justify-content:flex-end}.sp{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:14px}
.faint{color:var(--ink3);font-size:13px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px;align-items:start}
.sticky{position:sticky;top:16px}
.split3{display:grid;grid-template-columns:280px minmax(0,1fr) minmax(0,.95fr);gap:16px;align-items:start}
.tl{display:flex;flex-direction:column;gap:2px}
.tl .h{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ink3);padding:10px 8px 4px}
.tl button{display:flex;gap:8px;align-items:center;width:100%;text-align:left;padding:8px;border:0;border-radius:9px;background:none;cursor:pointer}
.tl button:hover{background:var(--hov)}.tl button.on{background:var(--sel)}
.tl b{font-size:13.5px;color:var(--navy);display:block}.tl small{font-size:12px;color:var(--ink3)}
.tl .tx{flex-grow:1;min-width:0}
.dot{width:9px;height:9px;border-radius:50%;background:var(--line);flex:none}.dot.on{background:var(--pos)}
.chip{padding:4px 9px;border-radius:8px;border:1px solid var(--line);background:#fff;font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--pri);cursor:pointer}
fieldset.ro.stack,.stack>fieldset.ro{display:flex;flex-direction:column;gap:14px}
fieldset.ro input[type=checkbox]:not(.na),fieldset.ro input[type=radio]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1.5px solid #9FB0BF;border-radius:4px;background:#fff;margin:0;vertical-align:middle}
fieldset.ro input[type=radio]{border-radius:50%}
fieldset.ro input[type=checkbox]:not(.na):checked{background:#007A7E url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat;border-color:#007A7E}
fieldset.ro input[type=radio]:checked{border:5px solid #007A7E}
dialog{border:0;border-radius:16px;padding:0;width:min(720px,94vw);box-shadow:0 20px 60px rgba(26,43,61,.3)}
dialog::backdrop{background:rgba(26,43,61,.45)}
.dh{padding:18px 22px;border-bottom:1px solid var(--row)}.db{padding:18px 22px;display:flex;flex-direction:column;gap:14px;max-height:70vh;overflow:auto}.df{padding:14px 22px;border-top:1px solid var(--row);display:flex;gap:10px;justify-content:flex-end}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:99}
#toast.show{opacity:1}
#gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.gcard{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:14px}
.gcard img{height:34px;align-self:center}.gcard h1{text-align:center;font-size:22px}.gcard p{text-align:center;margin:0;color:var(--ink3)}
.err{color:var(--red);font-size:13px;min-height:18px;margin:0}
.gcard p.err{color:var(--red)}
/* a long button label wraps inside the button instead of running out of the card */
.gcard .btn,.gcard button{white-space:normal;overflow-wrap:anywhere;text-align:center;max-width:100%}
.gcard .btn.prov{font-weight:600;gap:10px}.gcard .btn.prov img.ic{width:18px;height:18px;align-self:auto;flex:none}
.orline{display:flex;align-items:center;gap:10px;color:#8b9a94;font-size:12px}.orline::before,.orline::after{content:"";flex:1;height:1px;background:var(--line)}
.gcard.mfa{max-width:520px}.gcard .sub{display:block;margin:0;padding:0;background:none;border-radius:0;text-align:center;color:var(--ink3)}.gcard .fld{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:var(--navy);text-align:left}
.gcard .btn.wide{width:100%}.gcard .btn.primary{background:var(--pri);border-color:var(--pri);color:#fff}.gcard .gatefoot{display:flex;justify-content:center}.gcard .mfa-qr svg{height:164px}
@media (max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.split3,.g2,.g3{grid-template-columns:minmax(0,1fr)}}
#gate:empty{display:none}
fieldset{border:0;padding:0;margin:0;min-width:0}
.ch .row .faint{font-size:12.5px}
fieldset.ro input,fieldset.ro select,fieldset.ro textarea{background:#F5F7FA;color:#33475B;cursor:default}
label.opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:13px;line-height:1.45;cursor:pointer;color:var(--ink)}label.opt input{margin-top:1px;flex:none}
input[type=text],input[type=email],select{font-weight:500}
.cobox{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--page,#F5F7FA);line-height:1.6;color:var(--ink,#33475B)}.cobox b{color:var(--navy)}
/* admins and access (owner's rules 27 Oct 2026) — the same look as FlowTal CashPulse Admin */
.box{padding:14px 16px;border-radius:12px;font-size:13px;line-height:1.5}.box.info{background:var(--blue-bg);color:var(--navy)}.box.warn{background:var(--warn-bg);color:var(--warn)}.box.soft{background:var(--page)}
.sub{display:flex;gap:6px;flex-wrap:wrap;padding:4px;background:#E5ECF1;border-radius:12px;align-self:flex-start;margin-bottom:14px}
.sub button{border:0;background:none;padding:9px 16px;border-radius:9px;font-weight:600;color:#5A6C79;cursor:pointer;font:inherit;font-weight:600}
.sub button.on{background:#fff;color:var(--pri);box-shadow:0 1px 3px rgba(26,43,61,.12)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;vertical-align:middle}
.segb{position:relative;padding:5px 12px;font-size:12.5px;font-weight:700;color:#5A6C79;border-right:1px solid var(--line);background:#fff;cursor:pointer;white-space:nowrap}
.segb:last-child{border-right:0}.segb input{position:absolute;opacity:0;pointer-events:none}
.segb.on.none{background:var(--grey-bg);color:var(--grey)}.segb.on.view{background:var(--blue-bg);color:var(--blue)}.segb.on.edit{background:var(--mist);color:#00676A}
.stack{display:flex;flex-direction:column;gap:14px}
.db>*{flex-shrink:0}dialog:has(#accf){width:min(900px,94vw)}
