:root{--stage:#e9e8e1;--paper:#fffffd;--chat:#ece9e1;--bg:#f4f4ef;--ink:#1f2a24;--muted:#5e665f;--line:#e2e3dc;
  --accent:#2f4b3a;--ok:#2f6b3a;--okbg:#e6f1e6;--warnbg:#fbefc4;--warnink:#6b5200;--infobg:#eef0ea;--radius:14px;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans Arabic",sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--stage);color:var(--ink);font:16px/1.4 var(--sans)}
[hidden]{display:none!important}
a{color:var(--accent)}
.vh{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}

.stage{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;gap:56px;padding:24px}
.side{max-width:360px}
.logo{font-weight:800;font-size:26px;letter-spacing:-.04em;color:var(--accent)}
.logo .dot{color:#7a9a6a}
.side h1{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.08;margin:18px 0 14px}
.side p{color:var(--muted)}
.side-note{font-size:14px}
.phone{position:relative;width:390px;height:820px;max-height:calc(100dvh - 48px);background:var(--chat);border-radius:34px;
  overflow:hidden;box-shadow:0 0 0 10px #1f2a24,0 24px 60px rgba(0,0,0,.18)}
@media (max-width:820px){
  .side{display:none}
  .stage{display:block;padding:0}
  .phone{width:100%;height:100vh;height:100dvh;max-height:none;border-radius:0;box-shadow:none}
}

.view{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--paper)}
.view.chat{background:var(--chat)}
.icon-btn{position:relative;width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center;
  border:0;background:none;color:var(--accent);border-radius:50%;cursor:pointer}
.icon-btn.light{color:#fff}

.list-head{display:flex;justify-content:space-between;align-items:center;padding:18px 16px 8px;padding-top:calc(18px + env(safe-area-inset-top))}
.list-title{font-size:30px;font-weight:700;letter-spacing:-.02em}
.pill{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:3px 9px;color:var(--muted)}
.search{margin:4px 16px 8px;padding:9px 12px;background:#f0efe9;border-radius:10px;color:#9a9f97;font-size:15px}
.rows{flex:1;overflow-y:auto}
.row{display:flex;gap:12px;align-items:center;width:100%;padding:8px 16px 0;background:none;border:0;text-align:left;
  font:inherit;color:inherit;cursor:pointer}
.row:active{background:#f3f2ec}
.avatar{width:50px;height:50px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:19px;color:#fff;background:#9aa49b}
.avatar.bot{background:var(--accent);font-size:24px}
.row-main{flex:1;min-width:0;padding:4px 0 12px;border-bottom:1px solid var(--line)}
.row-top,.row-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}
.row-bottom{margin-top:2px}
.row-name{font-weight:600}
.row-time{font-size:12px;color:var(--muted);flex:none}
.row-time.unread{color:var(--accent);font-weight:600}
.row-preview{color:var(--muted);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge-unread{min-width:21px;height:21px;padding:0 6px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;
  font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.badge-unread.muted{background:#b5b9b0}
.pin{font-size:12px;flex:none}
.coach{margin:8px 16px 4px 78px;align-self:flex-start;display:inline-block;background:var(--accent);color:#fff;font-size:13px;
  font-weight:600;padding:6px 10px;border-radius:10px;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.sim-note{font-size:12px;color:var(--muted);text-align:center;margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom))}

.chat-head{display:flex;align-items:center;gap:8px;padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top));
  background:var(--paper);border-bottom:1px solid var(--line)}
.chat-head .avatar{width:38px;height:38px;font-size:18px}
.who{flex:1;min-width:0}
.who-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who-status{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who-status.active{color:var(--accent);font-weight:600}
.messages{flex:1;overflow-y:auto;padding:12px 10px 16px;display:flex;flex-direction:column;gap:6px}
.day{align-self:center;background:var(--paper);color:var(--muted);font-size:12px;padding:4px 10px;border-radius:8px;margin:4px 0 6px}
.msg{display:flex;flex-direction:column;max-width:84%}
.msg.in{align-self:flex-start}
.msg.out{align-self:flex-end;align-items:flex-end}
.bubble{position:relative;padding:7px 10px 20px;border-radius:12px;font-size:15px;line-height:1.35;min-width:84px;
  box-shadow:0 1px 0 rgba(0,0,0,.06);overflow-wrap:anywhere}
.bubble p{margin:0 0 4px}
.bubble.in{background:var(--paper);border-top-left-radius:4px}
.bubble.out{background:var(--accent);color:#fff;border-top-right-radius:4px}
.meta{position:absolute;right:8px;bottom:4px;font-size:11px;opacity:.8;display:flex;gap:3px;align-items:center;white-space:nowrap}
.ticks.read{color:#a8dcb1;opacity:1;font-weight:700}
.ticks.failed{color:#ffb4a8;font-weight:700}
.bubble.media{padding:3px}
.bubble.media .photo{display:block;width:230px;max-width:100%;border-radius:9px;cursor:zoom-in;background:#ffffff22;min-height:120px}
.bubble.media .meta{right:9px;bottom:9px;background:rgba(0,0,0,.4);color:#fff;padding:1px 6px;border-radius:8px;opacity:1}
.bubble.file{padding-bottom:22px}
.file-chip{display:flex;gap:8px;align-items:center;padding:6px 4px}
.strong{font-weight:600}
.muted{color:var(--muted)}
.small{font-size:12px}
.att{display:flex;gap:10px;align-items:center;width:100%;padding:10px;margin:0 0 8px;background:#f1f3ee;border:0;border-radius:10px;
  text-align:left;font:inherit;color:inherit;cursor:pointer}
.att-icon{width:42px;height:42px;border-radius:9px;background:var(--accent);color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:20px;flex:none}
.att-text{display:flex;flex-direction:column;min-width:0}
.att-title{font-weight:600}
.att-sub{font-size:13px;color:var(--muted)}
.msg-buttons{display:flex;flex-direction:column;gap:4px;margin-top:4px;width:100%}
.msg-btn{width:100%;min-height:42px;padding:8px 12px;background:var(--paper);border:0;border-radius:10px;color:var(--accent);
  font:inherit;font-weight:600;font-size:15px;cursor:pointer;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.msg-btn:disabled{color:#9a9f97;cursor:default}
.typing{display:flex;gap:4px;padding:13px 14px;min-width:0}
.typing span{width:7px;height:7px;border-radius:50%;background:#a3aaa2;animation:blink 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.3}40%{opacity:1}}
.composer{display:flex;align-items:center;gap:2px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}
.text-form{flex:1;min-width:0}
.text-form input{width:100%;height:40px;border:1px solid var(--line);border-radius:20px;padding:0 14px;font:inherit;font-size:16px;background:#fff}

.viewer{background:var(--bg);z-index:20;animation:up .22s ease-out}
@keyframes up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.viewer-head{display:flex;align-items:center;gap:6px;padding:8px;padding-top:calc(8px + env(safe-area-inset-top));background:#1f2a24;color:#fff}
.viewer-head .who-status{color:#c9d2ca}
.viewer-body{flex:1;overflow-y:auto;padding:4px 14px 16px}
.viewer-foot{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}
.btn{flex:1;min-height:46px;padding:0 14px;border-radius:12px;border:1px solid transparent;font:inherit;font-weight:600;font-size:16px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none}
.btn:disabled{opacity:.6}
.primary{background:var(--accent);color:#fff}
.secondary{background:transparent;color:var(--accent);border-color:var(--accent)}
.link{background:none;border:0;color:var(--accent);font:inherit;padding:6px 0;cursor:pointer;text-decoration:underline}
.link.small{font-size:14px}

.notice{background:var(--infobg);border-radius:12px;padding:12px 14px;margin:12px 0 0;font-size:15px;color:var(--muted)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:12px 0}
.sum-head{display:flex;gap:12px;align-items:flex-start}
.thumb{width:72px;flex:none;border-radius:8px;border:1px solid var(--line);cursor:zoom-in}
.sum-text{min-width:0}
.supplier{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.15;margin:0 -4px;padding:2px 4px;border-radius:6px}
.doc-meta{color:var(--muted);margin:6px 0 2px;font-size:14px}
.why{display:block;font-family:var(--sans);font-size:12px;font-weight:400;color:var(--warnink);margin-top:2px}
.flag{background:var(--warnbg)!important;border-radius:6px}
.totals{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tot{display:flex;flex-direction:column;padding:8px 10px;border-radius:8px;background:var(--infobg);min-width:104px}
.k{font-size:12px;color:var(--muted)}
.v{font-weight:600;font-variant-numeric:tabular-nums}
.missing{font-size:14px;color:var(--muted);margin:4px 0 8px}
.badges{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.badge{padding:9px 12px;border-radius:10px;font-size:14px}
.badge.ok{background:var(--okbg);color:var(--ok)}
.badge.warn{background:var(--warnbg);color:var(--warnink)}
.badge.info{background:var(--infobg);color:var(--muted)}
.table-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin:12px 0}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;color:var(--muted);font-weight:600;background:#f8f8f3;white-space:nowrap}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.row-tax td,.row-discount td{color:var(--muted)}
.tag-kind{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:6px;background:var(--infobg);font-size:11px;color:var(--muted)}
.payments h3{font-size:15px;margin:0 0 8px}
.pay-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.pay-row:last-child{border-bottom:0}
.viewer-note{margin:8px 0 0}

.sheet{position:absolute;inset:0;z-index:30}
.sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.sheet-panel{position:absolute;left:0;right:0;bottom:0;background:var(--paper);border-radius:16px 16px 0 0;
  padding:18px 16px calc(18px + env(safe-area-inset-bottom));animation:up .2s ease-out}
.sheet-panel h3{margin:0 0 4px}
.sheet-panel input[type=tel],.sheet-panel input[type=text]{width:100%;min-height:46px;padding:0 12px;margin:8px 0 0;
  border:1px solid var(--line);border-radius:10px;font:inherit;font-size:16px;background:#fff}
.consent{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin:12px 0}
.sheet-actions{display:flex;gap:8px}
.zoom{position:absolute;inset:0;z-index:40;background:rgba(0,0,0,.92);overflow:auto;display:flex;align-items:center;justify-content:center}
.zoom img{max-width:100%;max-height:100%}
.zoom.big{display:block}
.zoom.big img{max-width:none;max-height:none;width:200%}
.toast{position:absolute;left:50%;bottom:86px;transform:translateX(-50%);background:#1f2a24;color:#fff;padding:9px 14px;
  border-radius:10px;font-size:14px;z-index:50;max-width:86%;text-align:center}
