/* ============================================================
   Pharmio — Mobile Web App · Design System
   بر اساس Design System پروژه (Pharmio_Context.md §16)
   سبک: Accessible & Ethical · RTL · Vazirmatn
   ============================================================ */

:root{
  --primary:#1558B0;
  --primary-dark:#0E3F82;
  --secondary:#0891B2;
  --bg:#F0F9FF;
  --card:#FFFFFF;
  --fg:#0F172A;
  --muted:#475569;
  --border:#DDE5EE;
  --border-strong:#CCD7E3;
  --soft:#DDEBFB;          /* چیپ اصلی */
  --soft-fg:#0E3F82;
  --success-bg:#D3F1EE; --success-fg:#0B5E5C;
  --warn-bg:#F7E6CC;     --warn-fg:#6B3A06;
  --danger-bg:#F6DAD5;   --danger-fg:#7E2119;
  --neutral-bg:#E8EEF5;  --neutral-fg:#0F172A;
  --radius-card:18px;
  --radius-btn:14px;
  --focus:#0284C7;
  --shadow:0 1px 2px rgba(15,23,42,.05);
  font-size:16px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Vazirmatn,Tahoma,sans-serif;
  background:#E3EEF9;
  color:var(--fg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-dark)}
button{font-family:inherit;cursor:pointer}
button,a,input,select,textarea{touch-action:manipulation}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
img,svg{vertical-align:middle}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ---------- قاب موبایل ---------- */
#phone{
  width:min(430px,100%);
  height:100dvh;
  max-height:940px;
  margin:0 auto;
  background:var(--bg);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  position:relative;
}
@media (min-width:481px){
  body{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:18px}
  #phone{
    border-radius:34px;
    box-shadow:0 24px 70px rgba(14,63,130,.25),0 0 0 10px #10233F,0 0 0 12px #2A3B55;
  }
}
@media (max-width:480px){
  body{background:var(--bg)}
  #phone{max-height:none}
}

/* ---------- اسکلت صفحه ---------- */
.screen{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
.page{
  flex:1;
  overflow-y:auto;
  min-height:0;
  padding:12px 20px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
  animation:pageIn .22s ease-out;
  overscroll-behavior:contain;
}
/* در ستون فلکس اسکرول‌شونده، فرزندان نباید جمع شوند */
.page > *{flex-shrink:0}
/* اسکرول‌بار ظریف و کم‌رنگ (مخصوص قاب موبایل) */
.page,.chat-wrap{scrollbar-width:thin;scrollbar-color:rgba(21,88,176,.25) transparent}
.page::-webkit-scrollbar,.chat-wrap::-webkit-scrollbar{width:4px}
.page::-webkit-scrollbar-thumb,.chat-wrap::-webkit-scrollbar-thumb{background:rgba(21,88,176,.25);border-radius:2px}
.page::-webkit-scrollbar-track,.chat-wrap::-webkit-scrollbar-track{background:transparent}
@keyframes pageIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.page-head{
  padding:26px 20px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.page-title{font-size:22px;font-weight:800;line-height:1.4}
.page-sub{font-size:14px;color:var(--muted);line-height:1.7}
.head-col{display:flex;flex-direction:column;gap:3px;min-width:0}
.head-row{display:flex;gap:12px;align-items:center}
.icon-btn{
  width:44px;height:44px;min-width:44px;
  border-radius:14px;border:0;background:var(--card);
  display:flex;align-items:center;justify-content:center;
  color:var(--fg);box-shadow:var(--shadow);
}

/* ---------- ناوبری پایین ---------- */
.nav{
  height:76px;min-height:76px;
  /* احترام به نوار خانه آیفون (safe area) در حالت PWA */
  padding:0 6px calc(env(safe-area-inset-bottom, 0px) * 0.6);
  background:var(--card);
  border-top:1px solid var(--border);
  display:flex;justify-content:space-around;align-items:center;
  position:relative;z-index:5;
}
.nav a{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  min-width:60px;font-size:12px;color:var(--muted);
  position:relative;padding:4px 2px;border-radius:10px;
}
.nav a.active{font-weight:700;color:var(--primary)}
.nav .badge{
  position:absolute;top:-2px;right:14px;
  min-width:17px;height:17px;padding:0 4px;
  border-radius:9px;background:#9B2C22;color:#fff;
  font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}

/* ---------- کارت‌ها ---------- */
.card{
  background:var(--card);
  border-radius:var(--radius-card);
  padding:16px;
  display:flex;flex-direction:column;gap:10px;
  box-shadow:var(--shadow);
}
.card-title{font-size:15px;font-weight:700;color:var(--muted)}
.section-row{display:flex;justify-content:space-between;align-items:baseline}
.section-row a{font-size:15px}
.h-row{display:flex;justify-content:space-between;align-items:center;gap:8px}

/* ---------- چیپ‌ها و برچسب‌ها ---------- */
.chip{
  display:inline-flex;align-items:center;gap:4px;
  font-size:12px;font-weight:700;
  padding:3px 10px;border-radius:10px;
  white-space:nowrap;
}
.chip.soft{color:var(--primary);background:var(--soft)}
.chip.soft-dark{color:var(--soft-fg);background:var(--soft)}
.chip.success{color:var(--success-fg);background:var(--success-bg)}
.chip.warn{color:var(--warn-fg);background:var(--warn-bg)}
.chip.danger{color:var(--danger-fg);background:var(--danger-bg)}
.chip.neutral{color:var(--neutral-fg);background:var(--neutral-bg)}
.chip.on-primary{color:#fff;background:#2C6CC0}

/* ---------- دکمه‌ها ---------- */
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  height:48px;padding:0 16px;
  border-radius:var(--radius-btn);
  border:0;font-size:16px;font-weight:700;
  transition:background-color .2s,color .2s,opacity .2s;
}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark)}
.btn-white{background:#fff;color:var(--primary)}
.btn-ghost{
  background:transparent;color:#fff;border:1px solid #7FA8DC;
}
.btn-outline{background:var(--card);color:var(--fg);border:1px solid var(--border-strong)}
.btn-outline:hover{background:var(--bg)}
.btn-dark{background:var(--fg);color:#fff}
.btn-danger{background:var(--danger-bg);color:var(--danger-fg)}
.btn-dashed{
  background:transparent;color:var(--primary);
  border:2px dashed #93B4DC;font-weight:700;
}
.btn-sm{height:38px;padding:0 14px;font-size:15px;border-radius:12px}
.btn:disabled{opacity:.55;cursor:default}

/* ---------- بنرهای پیام ---------- */
.banner{
  border-radius:16px;padding:14px 16px;
  display:flex;gap:12px;align-items:flex-start;
  font-size:15px;line-height:1.8;
}
.banner .b-body{flex:1;display:flex;flex-direction:column;gap:2px}
.banner .b-title{font-weight:700;font-size:16px}
.banner.warn{background:var(--warn-bg);color:var(--warn-fg)}
.banner.danger{background:var(--danger-bg);color:var(--danger-fg)}
.banner.info{background:var(--soft);color:var(--soft-fg)}
.banner.success{background:var(--success-bg);color:var(--success-fg)}
.banner a{font-weight:700;color:inherit;text-decoration:underline}

/* ---------- لیست‌ها ---------- */
.rows{background:var(--card);border-radius:var(--radius-card);padding:6px 16px;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.row-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--neutral-bg)}
.row-item:last-child{border-bottom:0}
.row-time{width:52px;min-width:52px;font-size:16px;color:var(--muted)}
.row-time.now{font-weight:700;color:var(--fg)}
.row-main{flex:1;display:flex;flex-direction:column;min-width:0}
.row-main .t{font-size:16px;font-weight:500}
.row-main .s{font-size:14px;color:var(--muted)}
.row-item.tap{cursor:pointer}
.row-item.tap:hover{background:#F8FBFE}

/* ---------- نوار پیشرفت ---------- */
.progress{height:8px;background:var(--neutral-bg);border-radius:4px;overflow:hidden}
.progress > div{height:100%;border-radius:4px;background:var(--primary)}
.progress.warn > div{background:#B8651A}

/* ---------- فرم ---------- */
.field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.field label{font-size:14px;color:var(--muted)}
.input,select.input,textarea.input{
  height:46px;width:100%;
  border:1px solid var(--border-strong);border-radius:12px;
  padding:0 12px;font-family:inherit;font-size:16px;
  background:var(--card);color:var(--fg);
}
textarea.input{height:auto;min-height:90px;padding:10px 12px;resize:vertical;line-height:1.8}
.input:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
.input::placeholder{color:#94A3B8}
.form-grid{display:flex;gap:8px}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg button{
  flex:1;min-height:42px;padding:0 10px;
  border-radius:12px;border:1px solid var(--border-strong);
  background:var(--card);color:var(--fg);font-size:15px;
}
.seg button.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}

/* ---------- چت ---------- */
.chat-wrap{flex:1;overflow-y:auto;min-height:0;padding:16px 20px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}
.chat-wrap > *{flex-shrink:0}
.msg{max-width:320px;display:flex;flex-direction:column;gap:10px;padding:14px;font-size:16px;line-height:1.8}
.msg.user{
  align-self:flex-start;background:var(--primary);color:#fff;
  border-radius:18px 18px 4px 18px;padding:12px 14px;max-width:280px;
}
.msg.ai{align-self:flex-end;background:var(--card);border-radius:18px 18px 18px 4px;box-shadow:var(--shadow)}
.msg.ai.note{background:transparent;box-shadow:none;border:1px dashed var(--border-strong);color:var(--muted);font-size:14px}
.msg .src{font-size:14px;color:var(--muted);border-top:1px solid var(--neutral-bg);padding-top:8px}
.typing{display:flex;gap:5px;padding:14px 16px}
.typing span{width:7px;height:7px;border-radius:4px;background:#9DB6D8;animation:blink 1s infinite}
.typing span:nth-child(2){animation-delay:.18s}
.typing span:nth-child(3){animation-delay:.36s}
@keyframes blink{0%,100%{opacity:.25}50%{opacity:1}}
.chat-input{
  padding:10px 16px 14px;display:flex;gap:8px;align-items:center;
  background:var(--bg);
}
.chat-input input{
  flex:1;height:48px;border:1px solid var(--border-strong);border-radius:16px;
  padding:0 14px;font-family:inherit;font-size:16px;background:var(--card);color:var(--fg);
}
.chat-input .send{
  width:48px;height:48px;min-width:48px;border:0;border-radius:16px;
  background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;
}
.chat-input .send:hover{background:var(--primary-dark)}
.suggest-row{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 4px}
.suggest-row button{
  border:1px solid var(--border-strong);background:var(--card);color:var(--primary-dark);
  border-radius:16px;padding:8px 12px;font-size:13px;
}

/* ---------- مراحل ارجاع ---------- */
.steps{display:flex;flex-direction:column;gap:12px}
.step{display:flex;gap:10px;align-items:center;font-size:15px}
.step .dot{
  width:22px;height:22px;min-width:22px;border-radius:11px;
  background:var(--primary);color:#fff;font-size:13px;
  display:flex;align-items:center;justify-content:center;
}
.step .dot.hollow{background:transparent;border:2px solid var(--primary);box-sizing:border-box}
.step.done{color:var(--muted)}

/* ---------- آواتار ---------- */
.avatar{
  width:48px;height:48px;min-width:48px;border-radius:24px;
  background:var(--neutral-bg);font-weight:800;font-size:18px;
  display:flex;align-items:center;justify-content:center;color:var(--fg);
}
.avatar.primary{background:var(--primary);color:#fff}
.avatar.sm{width:40px;height:40px;min-width:40px;font-size:15px;border-radius:20px}

/* ---------- شیت و مودال ---------- */
.overlay{
  position:absolute;inset:0;background:rgba(15,23,42,.45);
  display:flex;align-items:flex-end;z-index:50;
  animation:fadeIn .18s ease-out;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.sheet{
  background:var(--card);width:100%;max-height:82%;
  border-radius:22px 22px 0 0;padding:18px 20px 26px;
  display:flex;flex-direction:column;gap:12px;
  overflow-y:auto;animation:sheetUp .22s ease-out;
}
@keyframes sheetUp{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.sheet .grab{width:44px;height:5px;border-radius:3px;background:var(--border);align-self:center}
.sheet h3{margin:0;font-size:18px}
.dialog{
  background:var(--card);border-radius:22px;margin:auto 24px;
  padding:20px;display:flex;flex-direction:column;gap:12px;max-height:82%;overflow-y:auto;
}
.overlay.center{align-items:center}

/* ---------- توست ---------- */
#toast{
  position:absolute;right:16px;left:16px;bottom:calc(92px + env(safe-area-inset-bottom, 0px));z-index:60;
  display:flex;flex-direction:column;gap:8px;pointer-events:none;
}

/* ---------- لینک پرش به محتوا (Accessible & Ethical) ---------- */
.skip-link{
  position:absolute;top:-48px;right:12px;z-index:100;
  background:var(--primary);color:#fff;border-radius:0 0 12px 12px;
  padding:10px 16px;font-size:14px;font-weight:700;
  transition:top .2s;
}
.skip-link:focus-visible{top:0}
.toast-item{
  background:var(--fg);color:#fff;border-radius:14px;
  padding:12px 16px;font-size:15px;line-height:1.7;
  box-shadow:0 8px 24px rgba(15,23,42,.35);
  animation:toastIn .25s ease-out;
  pointer-events:auto;
}
.toast-item.success{background:#0B5E5C}
.toast-item.warn{background:#6B3A06}
.toast-item.danger{background:#7E2119}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- اسکن ---------- */
.scanner{
  height:250px;border-radius:22px;background:#0F1B30;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;
  overflow:hidden;position:relative;
}
.scan-frame{
  width:250px;height:110px;border:3px solid #3FC6D4;border-radius:16px;
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.scan-frame .line{width:210px;height:2px;background:#3FC6D4}
.scanner.scanning .scan-frame .line{animation:scanline 1.1s linear infinite}
@keyframes scanline{0%{transform:translateY(-44px)}50%{transform:translateY(44px)}100%{transform:translateY(-44px)}}
.scanner .hint{font-size:15px;color:#C9D6EA;padding:0 20px;text-align:center;line-height:1.8}
.tabs{display:flex;gap:8px;padding:0 20px}
.tabs button{
  flex:1;height:40px;border-radius:12px;border:1px solid var(--border-strong);
  background:var(--card);color:var(--fg);font-size:15px;
}
.tabs button.on{background:var(--fg);border-color:var(--fg);color:#fff;font-weight:700}

/* ---------- کاشی‌ها ---------- */
.tiles{display:flex;gap:8px}
.tiles.wrap{flex-wrap:wrap}
.tiles.wrap .tile-link{flex:0 0 calc(50% - 4px)}
.tile{
  flex:1;background:var(--card);border-radius:16px;padding:12px 6px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  box-shadow:var(--shadow);font-size:12px;color:var(--muted);text-align:center;
}
.tile b{font-size:22px;font-weight:800;color:var(--fg)}
.tile.warn{background:var(--danger-bg)}
.tile.warn b,.tile.warn{color:var(--danger-fg)}
.tile.mid{background:var(--warn-bg)}
.tile.mid b,.tile.mid{color:var(--warn-fg)}
.tile-link{
  flex:1;background:var(--card);border-radius:16px;padding:14px 8px;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  box-shadow:var(--shadow);font-size:13px;font-weight:500;color:var(--fg);text-align:center;
  border:1px solid transparent;
}
.tile-link:hover{border-color:var(--soft);color:var(--primary-dark)}
.tile-link svg{color:var(--primary)}

/* ---------- نمودار ---------- */
.chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding:6px 4px 0}
.chart .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.chart .bar .fill{width:100%;max-width:26px;border-radius:6px 6px 3px 3px;background:var(--primary);min-height:4px}
.chart .bar .fill.partial{background:var(--secondary)}
.chart .bar .fill.none{background:var(--danger-bg)}
.chart .bar .lbl{font-size:11px;color:var(--muted)}

/* ---------- مرتبط با ورود/اسپلش ---------- */
.hero{
  flex:1;padding:60px 28px 36px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.hero .brand{display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:48px}
.brand-name{font-size:40px;font-weight:800;color:var(--primary);letter-spacing:.5px;direction:ltr}
.brand-tag{font-size:17px;color:#0E7490;font-weight:500;text-align:center;line-height:1.7}
.hero-msg{font-size:22px;font-weight:800;text-align:center;line-height:1.6}
.hero-foot{font-size:12px;color:var(--muted);text-align:center;line-height:1.8}

/* ---------- تنظیمات ---------- */
.list-card{background:var(--card);border-radius:var(--radius-card);padding:4px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.list-card .row-item{padding:14px 0}
.switch{position:relative;width:46px;height:28px;min-width:46px}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.switch .track{position:absolute;inset:0;border-radius:14px;background:var(--border-strong);transition:background-color .2s}
.switch .track::after{
  content:"";position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:11px;
  background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.3);transition:transform .2s;
}
.switch input:checked + .track{background:var(--primary)}
.switch input:checked + .track::after{transform:translateX(-18px)}

/* ---------- استفاده شده در پیام‌های سیستم/برچسب پروفایل ---------- */
.profile-tag{font-size:12px;padding:3px 10px;border-radius:10px;font-weight:700}
.profile-tag.danger{color:var(--danger-fg);background:var(--danger-bg)}
.profile-tag.warn{color:var(--warn-fg);background:var(--warn-bg)}
.profile-tag.soft{color:var(--primary);background:var(--soft)}
.profile-tag.success{color:var(--success-fg);background:var(--success-bg)}

.empty{
  text-align:center;color:var(--muted);font-size:15px;line-height:2;
  padding:28px 16px;
}
.divider{height:1px;background:var(--neutral-bg);border:0;margin:2px 0}
.mini-note{font-size:12px;color:var(--muted);line-height:1.8}
.count-note{font-size:14px;color:var(--muted)}

/* ---------- چاپ (دریافت PDF گزارش) ---------- */
#print-area{display:none}
@media print{
  body{background:#fff;display:block;padding:0}
  #phone{display:none}
  #toast,.overlay{display:none!important}
  #print-area{display:block;direction:rtl;font-family:Vazirmatn,Tahoma,sans-serif;color:#0F172A;padding:24px}
  #print-area h1{font-size:20px}
  #print-area h2{font-size:16px}
  #print-area table{width:100%;border-collapse:collapse;font-size:13px}
  #print-area td,#print-area th{border:1px solid #CCD7E3;padding:6px 8px;text-align:right}
}
