:root{--ink:#122033;--muted:#5b6678;--line:#e3e7ee;--bg:#f4f6f9;--card:#fff;--brand:#0f2a4a;--accent:#0e9f6e;--accent2:#34d399;--warn:#b45309;--warnbg:#fff7e6;--bad:#b42318;--badbg:#fdecea;--okbg:#e8f7f0;--info:#1d4ed8;--infobg:#eaf1ff;--r:14px;--safe:env(safe-area-inset-bottom)}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}
a{color:var(--info);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid #60a5fa;outline-offset:2px;border-radius:6px}
.top{position:sticky;top:0;z-index:20;background:var(--brand);color:#fff;padding:10px 14px;display:flex;align-items:center;gap:10px;padding-top:max(10px,env(safe-area-inset-top))}
.top .logo{font-weight:800;letter-spacing:.2px;display:flex;align-items:center;gap:8px;color:#fff;white-space:nowrap}
.top .logo i{width:26px;height:26px;border-radius:7px;background:#123a66;display:inline-grid;place-items:center;font-style:normal;color:var(--accent2);font-weight:900}
.top select{flex:1;min-width:0;background:#123a66;color:#fff;border:1px solid #2a5280;border-radius:10px;padding:8px 10px;font-weight:600}
.top .iconbtn{background:#123a66;border:1px solid #2a5280;color:#fff;border-radius:10px;padding:8px 11px;cursor:pointer}
main{max-width:860px;margin:0 auto;padding:14px 14px calc(96px + var(--safe))}
.boot{padding:60px 0;text-align:center;color:var(--muted)}
h1{font-size:22px;margin:4px 0 12px}h2{font-size:17px;margin:20px 0 10px}h3{font-size:15px;margin:14px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.right{text-align:right}.mono{font-variant-numeric:tabular-nums}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (min-width:700px){.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}}@media (max-width:699px){.grid4{display:grid;grid-template-columns:1fr 1fr;gap:10px}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px}.kpi b{display:block;font-size:18px;margin-top:2px;font-variant-numeric:tabular-nums}.kpi span{font-size:12px;color:var(--muted)}
.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.act{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;font-size:13px;font-weight:600;text-align:center;color:var(--ink)}
.act .ic{font-size:22px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 14px;font-weight:600;cursor:pointer;min-height:42px;color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.dark{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{color:var(--bad);border-color:#f3c1bb}.btn.block{width:100%}.btn.sm{min-height:34px;padding:6px 10px;font-size:13px}
.btn:disabled{opacity:.55;cursor:default}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}
label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin:10px 0 4px}
input,select,textarea{width:100%;border:1px solid #cfd6e1;background:#fff;border-radius:10px;padding:10px 11px;min-height:42px}
textarea{min-height:80px;resize:vertical}
.chip{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;background:#eef1f5;color:var(--muted);white-space:nowrap}
.chip.posted{background:var(--okbg);color:#05603a}.chip.pending{background:var(--warnbg);color:var(--warn)}.chip.draft{background:var(--infobg);color:var(--info)}.chip.rejected{background:var(--badbg);color:var(--bad)}.chip.admin{background:#f3e8ff;color:#6b21a8}
.list{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:12px}
.item{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);align-items:flex-start;cursor:pointer;color:var(--ink)}.item:last-child{border-bottom:0}
.item .t{font-weight:600}.item .s{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.item .amt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.note{border-radius:12px;padding:10px 12px;font-size:14px;margin:8px 0}.note.warn{background:var(--warnbg);color:#7a3e00}.note.bad{background:var(--badbg);color:#7a1a12}.note.ok{background:var(--okbg);color:#05603a}.note.info{background:var(--infobg);color:#1e3a8a}
table.t{width:100%;border-collapse:collapse;font-size:13.5px}table.t th{text-align:left;font-size:12px;color:var(--muted);font-weight:700;border-bottom:1px solid var(--line);padding:7px 6px}table.t td{padding:7px 6px;border-bottom:1px solid #eef1f5;vertical-align:top}table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.t tr.tot td{font-weight:800;border-top:2px solid var(--ink)}table.t tr.sec td{font-weight:700;background:#f7f9fb}table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:#f5f8ff}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 4px calc(6px + var(--safe))}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--muted);gap:2px;padding:4px 0;position:relative;font-weight:600}
.tabs a .ic{font-size:20px;line-height:1}.tabs a.on{color:var(--brand)}
.tabs a.plus .ic{background:var(--accent);color:#fff;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin-top:-20px;box-shadow:0 4px 12px rgba(14,159,110,.4);font-size:26px}
.badge{position:absolute;top:0;right:calc(50% - 22px);background:var(--bad);color:#fff;font-size:10px;border-radius:999px;padding:1px 5px;font-weight:800}
.seg{display:flex;background:#e9edf3;border-radius:12px;padding:3px;gap:3px;margin:0 0 12px;overflow-x:auto}.seg button{flex:1;border:0;background:transparent;padding:8px 10px;border-radius:9px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
#toast{position:fixed;left:50%;bottom:calc(84px + var(--safe));transform:translateX(-50%);background:#111827;color:#fff;padding:10px 14px;border-radius:12px;font-size:14px;max-width:92vw;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50}#toast.on{opacity:1}
.sheet{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet .panel{background:#fff;width:100%;max-width:640px;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + var(--safe));max-height:88vh;overflow:auto}
.docprev{width:100%;border-radius:12px;border:1px solid var(--line);background:#fafafa;display:block}
.bubble{max-width:88%;padding:10px 12px;border-radius:16px;margin:6px 0;font-size:14.5px;white-space:pre-wrap;word-wrap:break-word}.bubble.ai{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}.bubble.user{background:var(--brand);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.opts button{border:1px solid #bcd0f5;background:var(--infobg);color:#1e3a8a;border-radius:999px;padding:7px 12px;font-weight:600;cursor:pointer;font-size:13.5px}
.chatbar{position:fixed;left:0;right:0;bottom:calc(65px + var(--safe));background:#fff;border-top:1px solid var(--line);padding:8px 10px;display:flex;gap:8px;z-index:15}.chatbar input{flex:1}
.bars{margin-top:8px}.bars .b{display:flex;align-items:center;gap:6px;font-size:12px;margin:3px 0}.bars .b span{width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bars .b i{display:block;height:10px;background:var(--accent2);border-radius:4px}
.drop{border:2px dashed #b8c3d4;border-radius:var(--r);padding:20px;text-align:center;background:#fff}
.samples{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.samples button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px;cursor:pointer;text-align:left;font-size:12.5px}.samples img{width:100%;height:110px;object-fit:cover;object-position:top;border-radius:8px;border:1px solid var(--line);display:block;margin-bottom:6px}
.prog{height:6px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin:8px 0}.prog i{display:block;height:100%;background:var(--accent);width:0;transition:width .3s}
.login{max-width:420px;margin:0 auto;padding-top:20px}.hero{background:linear-gradient(135deg,#0f2a4a,#174a7c);color:#fff;border-radius:18px;padding:20px;margin-bottom:14px}.hero h1{margin:0 0 6px;font-size:24px}.hero p{margin:0;opacity:.9}
.demo button{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 12px;margin:6px 0;cursor:pointer}.demo b{display:block;font-size:14px}.demo span{font-size:12px;color:var(--muted)}
.lines input{min-height:36px;padding:6px 8px}.hr{height:1px;background:var(--line);margin:12px 0}
.check{display:flex;gap:8px;align-items:center;font-weight:600;color:var(--ink);font-size:14px}.check input{width:auto;min-height:0}
@media (min-width:900px){main{padding-top:20px}}

[hidden]{display:none!important}

/* Plans & subscriptions */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.subgrid{display:grid;grid-template-columns:1fr;gap:0 12px}
.grid2d{display:grid;grid-template-columns:1fr;gap:0 10px}@media (min-width:600px){.grid2d{grid-template-columns:1fr 1fr}}
.meter.full .bar i{background:#f59e0b}.meter.full b{color:var(--warn)}
.meters{margin-top:10px;display:grid;gap:8px}
.meter .bar{height:8px;background:#eef1f5;border-radius:6px;overflow:hidden;margin-top:4px}
.meter .bar i{display:block;height:100%;background:var(--accent2);border-radius:6px}
.meter.near .bar i{background:#f59e0b}.meter.at_limit .bar i,.meter.over .bar i{background:var(--bad)}
.meter.at_limit b,.meter.over b{color:var(--bad)}
.subcard{margin-top:10px}
.note a{color:inherit;text-decoration:underline;font-weight:700}
/* Desktop: use the width, side navigation, centred dialogs */
@media (min-width:900px){
  main{max-width:1180px;padding-left:24px;padding-right:24px}
  .subgrid{grid-template-columns:1fr 1fr}
  .actions{grid-template-columns:repeat(6,1fr)}
  .top{padding-left:24px;padding-right:24px}
  .top select{flex:0 1 440px}
  .top #menuBtn{margin-left:auto}
  .sheet{align-items:center}
  .panel{border-radius:18px;max-width:560px;padding-bottom:16px}
  table.t{font-size:14px}
  a.item:hover,.act:hover,a.kpi:hover{background:#f7f9fc}
  .btn:hover:not(:disabled){filter:brightness(.97)}
}
@media (min-width:1100px){
  .tabs{top:0;bottom:0;right:auto;width:212px;flex-direction:column;justify-content:flex-start;gap:4px;border-top:0;border-right:1px solid var(--line);padding:76px 10px 16px;z-index:19}
  .tabs a{flex:0 0 auto;flex-direction:row;gap:10px;font-size:14.5px;padding:10px 12px;border-radius:10px}
  .tabs a:hover{background:#f2f5f9;color:var(--ink)}
  .tabs a.on{background:#e9f0f8}
  .tabs a .ic{font-size:18px;width:22px;text-align:center}
  .tabs a.plus{order:-1;margin-bottom:8px;background:var(--accent);color:#fff}
  .tabs a.plus .ic{width:auto;height:auto;margin:0;box-shadow:none;background:none;font-size:20px;display:inline}
  .tabs a.plus:hover{background:#0c8a5f;color:#fff}
  .tabs .badge{position:static;margin-left:auto}
  body:has(#tabs:not([hidden])) main{margin-left:max(212px, calc((100vw - 1180px) / 2));padding-bottom:40px}
}

.rgrid{display:grid;gap:4px 18px}.rgrid h3{margin:14px 0 6px}@media(min-width:900px){.rgrid{grid-template-columns:1fr 1fr}}
.seg{overflow-x:auto;scrollbar-width:none}.seg button{white-space:nowrap;flex:1 0 auto}

/* Phase 1.3 documents */
.actions.docs{grid-template-columns:repeat(3,1fr)}@media (min-width:700px){.actions.docs{grid-template-columns:repeat(5,1fr)}}
.actions.docs .act{font-size:12.5px;padding:12px 4px}
.sendbtn{display:flex;gap:12px;align-items:center;background:var(--accent);color:#fff;border-radius:var(--r);padding:14px 16px;margin:12px 0;box-shadow:0 4px 12px rgba(14,159,110,.25)}.sendbtn span{font-size:28px}.sendbtn .small{opacity:.9}
.iline{border:1px solid var(--line);border-radius:12px;padding:8px;margin-bottom:8px;background:#fbfcfd}.iline .row{margin-bottom:6px}.iline .row:last-child{margin-bottom:0}.iline input,.iline select{min-height:38px;padding:7px 9px}
.iamt{font-weight:700;padding-top:8px}
.tots{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.tots .row{margin:2px 0}.tots .tot b,.ptot .tot b{font-size:17px}
.hr{height:1px;background:var(--line);margin:10px 0}
.printdoc{background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;max-width:800px;margin:0 auto}
.printdoc .pco{font-size:18px;font-weight:800}.printdoc .ptitle{font-size:20px;font-weight:800;color:var(--brand);letter-spacing:.5px;margin-bottom:4px}
.pparty{margin:18px 0 10px;padding:10px 12px;background:#f7f9fb;border-radius:8px;max-width:360px}
.ptable{margin-top:10px}.ptable th{background:var(--brand);color:#fff !important}
.ptot{margin:12px 0 0 auto;max-width:320px}.ptot .tot{border-top:2px solid var(--ink);padding-top:4px;margin-top:4px}
.pbank{margin-top:18px;font-size:13px}.psign{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:56px;font-size:12px;color:var(--muted)}.psign div{border-top:1px solid #9aa4b2;padding-top:6px}
@media print{.top,.tabs,.noprint,#toast{display:none !important}main,body:has(#tabs:not([hidden])) main{padding:0;max-width:none;margin:0 !important}.printdoc{border:0;padding:0}body{background:#fff}}
details summary{cursor:pointer}

.fdate{flex:1 1 140px;max-width:200px}.pblock{flex:2 1 260px}
@media (max-width:699px){.pblock{flex-basis:100%}.fdate{max-width:none}}

table.t.wide td,table.t.wide th{white-space:nowrap}table.t.wide td:first-child,table.t.wide th:first-child{position:sticky;left:0;background:#fff;z-index:1;max-width:190px;overflow:hidden;text-overflow:ellipsis;box-shadow:1px 0 0 var(--line)}table.t.wide tr.sec td:first-child{background:#f7f9fb}

/* Phase 1.4: modules, dashboard, inventory */
.desk-only{display:none !important}
@media (min-width:900px){.desk-only{display:flex !important}.mob-only{display:none !important}.modnav{flex-direction:column;gap:2px;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.modnav .mh{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 10px 4px}.modnav a{font-size:13.5px}}
.crumb{font-size:12.5px;color:var(--muted);margin-bottom:4px}.crumb a{color:var(--muted)}
.modgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(min-width:700px){.modgrid{grid-template-columns:repeat(4,1fr)}}
.modtile{display:flex;flex-direction:column;gap:3px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;color:var(--ink);text-decoration:none}.modtile:hover{background:#f7f9fc}.modtile .mi{font-size:24px}
.dash .grid4{margin-bottom:10px}.kpi.neg b{color:var(--bad)}.kpi span b{display:inline;font-size:12px}
.dgrid,.dgrid2{display:grid;gap:10px;margin-bottom:10px}@media(min-width:900px){.dgrid{grid-template-columns:2fr 1fr}.dgrid2{grid-template-columns:1fr 1fr}}
.dash .card{margin:0}.dash h4{margin:12px 0 6px;font-size:13px;color:var(--muted)}
.chart{width:100%;height:auto;display:block;margin-top:8px}.chart .gl{stroke:var(--line);stroke-width:1}.chart .ax{font-size:11px;fill:var(--muted)}@media(max-width:699px){.chart .ax{font-size:20px}}
.b-rev{fill:var(--accent);background:var(--accent)}.b-exp{fill:#f59e0b;background:#f59e0b}.l-pro{fill:none;stroke:var(--brand);stroke-width:2}.d-pro{fill:var(--brand);background:var(--brand)}
.chart a:hover rect{opacity:.8}
.legend,.aglegend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);margin-top:6px}.legend i,.aglegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.agbar{display:flex;height:16px;border-radius:8px;overflow:hidden;background:#eef1f5;margin-top:10px}.agbar span{display:block;height:100%}
.ag0{background:#34d399}.ag1{background:#fbbf24}.ag2{background:#f97316}.ag3{background:#ef4444}.ag4{background:#991b1b}
.iline .iitem{min-height:36px;padding:6px 8px}
@media print{.modnav{display:none !important}}

.pricing{max-width:1100px;margin:0 auto}.pgrid{display:grid;gap:12px}@media(min-width:800px){.pgrid{grid-template-columns:repeat(3,1fr)}}
.pcard{display:flex;flex-direction:column}.pcard.hl{border:2px solid var(--accent)}.pprice{font-size:26px;font-weight:800;margin:6px 0}.pcard ul{padding-left:18px;margin:8px 0;flex:1}.calc{display:flex;align-items:center;gap:8px;margin-top:6px}.calc input{width:70px;min-height:34px;padding:4px 8px}

.tpl-grid{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:14px;align-items:start}@media (max-width:900px){.tpl-grid{grid-template-columns:1fr}}
@media print{.tdoc{padding:0!important}}

/* R6: public customer page */
.pubwrap{max-width:760px;margin:0 auto}.center{text-align:center}.pubwrap .ptot .tot{font-size:16px;border-top:1px solid var(--line);padding-top:6px;margin-top:4px}
@media print{.pubwrap .btn{display:none}}
code{overflow-wrap:anywhere;word-break:break-all}

/* P1-02 e-invoicing */
.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tablewrap table { width: 100%; border-collapse: collapse; }
.tablewrap td, .tablewrap th { padding: 4px 6px; border-bottom: 1px solid #eee; text-align: left; vertical-align: top; }

/* R11 */
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;background:#eef1f6;color:#344;vertical-align:middle;margin-left:4px}
table.tbl{border-collapse:collapse}table.tbl th,table.tbl td{padding:4px 6px;border-bottom:1px solid var(--line,#e5e7eb);text-align:left}table.tbl input{padding:6px;margin:0}

.pill.warn{background:#fef3c7;color:#92400e;border-color:#fcd34d}.pill.ok{background:#dcfce7;color:#166534;border-color:#86efac}

/* R31 point of sale */
.pos-tabs{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}
.pos-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.pos-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;align-items:start}
.pos-search{font-size:17px;padding:12px}
.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;margin-top:8px}
.pos-tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:84px;padding:10px;border:1px solid var(--line,#dde3ea);border-radius:12px;background:var(--card,#fff);text-align:left;cursor:pointer;font:inherit;color:inherit;touch-action:manipulation}
.pos-tile:active{transform:scale(.97)}
.pos-tile.off{opacity:.5}
.pos-tile .pn{font-weight:600;font-size:14px;line-height:1.2}
.pos-tile .pp{font-size:16px;font-weight:700;margin-top:4px}
.pos-tile .pa{font-size:11px;opacity:.7}
.pos-cart{position:sticky;top:8px;border:1px solid var(--line,#dde3ea);border-radius:12px;background:var(--card,#fff);padding:8px;max-height:calc(100vh - 120px);display:flex;flex-direction:column}
.pos-lines{overflow-y:auto;flex:1}
.pos-line{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--line,#eef1f4)}
.pos-line .t{font-weight:600;font-size:14px}
.pos-line .amt{min-width:64px;text-align:right;font-weight:600}
.pos-qty{display:flex;align-items:center;gap:4px}
.pos-qty button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line,#dde3ea);background:transparent;font-size:18px;line-height:1;cursor:pointer;color:inherit}
.pos-qty span{min-width:28px;text-align:center}
.pos-sum{padding-top:8px;display:flex;flex-direction:column;gap:6px}
.pos-pay,.btn.big{font-size:18px;padding:14px;width:100%}
.pos-bar{display:none}
.pos-big{font-size:22px;padding:10px}
.pos-change{margin:8px 0;font-size:16px}
.pos-change.big{font-size:20px;text-align:center;padding:8px;border-radius:10px;background:rgba(16,185,129,.12)}
.pos-rcpt{font-family:Helvetica,Arial,sans-serif;background:#fff;color:#111;border:1px dashed #bbb;border-radius:6px;padding:10px;max-width:340px;margin:8px auto}
.pos-rcpt .rl{display:flex;justify-content:space-between;gap:8px;line-height:1.4}
.pos-rcpt .rl.c{justify-content:center;text-align:center}
.pos-rcpt .rl.b{font-weight:700}
.pos-rcpt hr{border:0;border-top:1px dashed #999;margin:4px 0}
@media (max-width:759px){
  .pos-wrap{grid-template-columns:1fr}
  .pos-cart{display:none}
  .pos-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:90px}
  .pos-bar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:calc(65px + var(--safe));padding:8px 12px;background:#fff;border-top:1px solid var(--line,#dde3ea);z-index:15;align-items:center;box-shadow:0 -4px 12px rgba(15,23,42,.06)}
  .pos-bar .btn{padding:12px}
}

/* R38: Arabic UI — right-to-left layout (html[dir=rtl] is set by i18n.js when a person picks Arabic). */
html[dir=rtl] body{font-family:"Noto Sans Arabic","Segoe UI","Geeza Pro","SF Arabic",Tahoma,-apple-system,Roboto,Arial,sans-serif}
html[dir=rtl] table.t th,html[dir=rtl] table.tbl th,html[dir=rtl] table.tbl td,html[dir=rtl] .samples button,html[dir=rtl] .demo button{text-align:right}
html[dir=rtl] table.t td.n,html[dir=rtl] table.t th.n,html[dir=rtl] .amt,html[dir=rtl] [style*="text-align:right"]{text-align:left !important}
html[dir=rtl] [style*="text-align:left"]{text-align:right !important}
html[dir=rtl] table.t td.n,html[dir=rtl] .amt,html[dir=rtl] .pprice{direction:ltr;unicode-bidi:isolate}
html[dir=rtl] input[type=email],html[dir=rtl] input[type=tel],html[dir=rtl] input[type=url],html[dir=rtl] input[type=number],html[dir=rtl] input[inputmode=decimal],html[dir=rtl] input[inputmode=numeric],html[dir=rtl] input[inputmode=email]{direction:ltr;text-align:right}
html[dir=rtl] .badge{right:auto;left:calc(50% - 22px)}
html[dir=rtl] .bubble.ai{border-bottom-left-radius:16px;border-bottom-right-radius:4px}
html[dir=rtl] .bubble.user{border-bottom-right-radius:16px;border-bottom-left-radius:4px}
html[dir=rtl] table.t.wide td:first-child,html[dir=rtl] table.t.wide th:first-child{left:auto;right:0;box-shadow:-1px 0 0 var(--line)}
html[dir=rtl] .legend i,html[dir=rtl] .aglegend i{margin-right:0;margin-left:4px}
html[dir=rtl] .pcard ul{padding-left:0;padding-right:18px}
html[dir=rtl] .pill{margin-left:0;margin-right:4px}
html[dir=rtl] [style*="margin-left:auto"]{margin-left:0 !important;margin-right:auto !important}
.langbtn{font-weight:800;font-size:15px}
html[dir=rtl] .pos-rcpt{direction:ltr}
@media (min-width:900px){
  html[dir=rtl] .top #menuBtn{margin-left:0;margin-right:auto}
}
@media (min-width:1100px){
  html[dir=rtl] .tabs{left:auto;right:0;border-right:0;border-left:1px solid var(--line)}
  html[dir=rtl] .tabs .badge{margin-left:0;margin-right:auto}
  html[dir=rtl] body:has(#tabs:not([hidden])) main{margin-left:auto;margin-right:max(212px, calc((100vw - 1180px) / 2))}
}
@media print{html[dir=rtl] body:has(#tabs:not([hidden])) main{margin:0 !important}}

/* R68: favorites stars, Favorites section, My Reports */
.favstar{cursor:pointer;color:var(--muted);font-size:16px;line-height:1;padding:2px 6px;border-radius:6px;user-select:none;flex:none;display:inline-block}
.favstar.on{color:#d49b00}
.favstar:hover,.favstar:focus-visible{background:rgba(0,0,0,.07);outline:none}
h1 .favstar{font-size:20px;vertical-align:middle}
.modnav a .grow{flex:1;min-width:0}
.modnav a .favstar{margin-inline-start:auto;font-size:13px;padding:0 4px;opacity:.5}
.modnav a:hover .favstar,.modnav a .favstar.on,.modnav a .favstar:focus-visible{opacity:1}
.favnav .favlist{display:flex;flex-direction:column;gap:2px}
.favnav .favlist a{display:flex;align-items:center}
.favnav .favhint{padding:4px 10px;font-size:12px}
.modtile{position:relative}
.modtile .favstar{position:absolute;top:6px;inset-inline-end:6px}
.favcard .list .item{display:flex;align-items:center}

/* R72 (Tahir's screenshot): on desktop the left (Arabic: right) menu is a fixed 212px sidebar, so fixed bottom bars (the Assistant
   composer) start where the main content starts instead of at the window edge, and sit at the bottom (no mobile tab bar there). */
@media (min-width:1100px){
  body:has(#tabs:not([hidden])) .chatbar{--ml:max(212px, calc((100vw - 1180px) / 2));left:var(--ml);right:max(0px, calc(100vw - var(--ml) - 1180px));bottom:0;padding:10px 24px calc(10px + var(--safe));box-shadow:0 -4px 12px rgba(15,23,42,.06)}
  html[dir=rtl] body:has(#tabs:not([hidden])) .chatbar{left:max(0px, calc(100vw - var(--ml) - 1180px));right:var(--ml)}
}

/* R72: between 900px and 1099px the menu is still the bottom tab bar (the sidebar starts at 1100px), so it keeps its phone
   contents; the desktop-only Assistant link and module lists made the bar taller than the window, covering the page and the
   Assistant composer. The composer and the POS bar sit on top of the 65px bar (they were 58px up and overlapped it by 7px). */
@media (min-width:900px) and (max-width:1099.98px){
  .tabs .desk-only{display:none !important}
  .tabs .mob-only{display:flex !important}
}

/* R81 (Tahir CR-1): in-app Back in the header (the arrow turns round in Arabic). */
.top .backbtn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 10px;font-weight:700}
.top .backbtn .bk{display:inline-block;font-size:16px;line-height:1}
html[dir=rtl] .top .backbtn .bk{transform:scaleX(-1)}
@media (max-width:599px){.top .backbtn .bkl{display:none}.top{gap:8px;padding-left:10px;padding-right:10px}}
/* R81 (Tahir CR-3): drop zones */
.dropzone{transition:background .15s,border-color .15s,box-shadow .15s}
.dropzone.dragover{border-color:var(--accent) !important;background:#ecfdf5 !important;box-shadow:0 0 0 3px rgba(14,159,110,.2)}
.card.dropzone{border:2px dashed transparent}
.card.dropzone.dragover{border-style:dashed}
.drophint{font-size:12px;color:var(--muted);margin-top:8px}
label.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tabs a.plus .plbl{text-align:center;line-height:1.15}
@media (max-width:899px){.tabs a.plus .plbl{font-size:10px;max-width:84px}}
/* R81: the longer "Add/Upload Document" label wraps to two lines on the phone tab bar; it may use the bar's own bottom padding so the bar stays 65px and the Assistant composer / POS bar above it are not overlapped. */
@media (max-width:1099.98px){.tabs{min-height:calc(65px + var(--safe))}.tabs a.plus{padding-bottom:0;margin-bottom:-4px}}
/* R81 (Tahir CR-2): Assistant search */
mark.hl{background:#fde68a;color:inherit;padding:0 1px;border-radius:3px}
.bubble.flash{box-shadow:0 0 0 3px #fbbf24;transition:box-shadow .3s}
.chres{cursor:pointer}
/* R81 (Tahir CR-5): VAT capture card on the review screen */
.vatcap table.t{margin-top:4px;background:transparent}
.vatcap table.t td{padding:4px 6px;border-color:rgba(0,0,0,.08)}

/* R84 (Tahir T-JE1): type-to-search account picker */
.acw{position:relative;min-width:0;flex:1 1 150px}
.acw .acin{width:100%;margin:0}
select.acsel-h{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-width:0!important;padding:0!important;border:0!important;margin:0!important;inset-inline-start:0;bottom:0;overflow:hidden}
.acl{position:absolute;z-index:60;top:100%;inset-inline:0;max-height:min(300px,50vh);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);margin-top:2px;-webkit-overflow-scrolling:touch}
.aco{padding:10px;cursor:pointer;text-align:start;border-bottom:1px solid var(--line);font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.aco:last-child{border-bottom:0}
.aco.hi{background:var(--okbg)}
.aco.on{font-weight:700}
.aco.acnew{color:var(--accent)}
.acg{padding:6px 10px 2px;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);background:var(--bg)}
.acnone{padding:10px}
/* R84 (Tahir T-JE2): remove a manual journal line */
.ln .lndel{flex:0 0 auto}
.ln.row{display:grid;grid-template-columns:minmax(0,1fr) 96px 96px auto;gap:6px;align-items:center}
.ln.row>.dr,.ln.row>.cr{width:100%!important;min-width:0;box-sizing:border-box;margin:0}
@media (max-width:560px){.ln.row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.ln.row>.acw{grid-column:1/-1}}
