@font-face{font-family:Vazirmatn;src:url(fonts/Vazirmatn-wght.woff2) format("woff2");font-weight:100 900;font-display:swap}

/* مسیر یک کار چندمرحله‌ای (مثلاً نوبت ← رادیوگرافی ← نوبت): مستقل از تاریخچهٔ مرورگر */
.flow-resume{position:fixed;z-index:80;inset-inline-start:14px;top:76px;display:flex;align-items:stretch;max-width:min(360px,calc(100vw - 28px));background:var(--surface);border:1px solid var(--accent);box-shadow:0 8px 22px rgba(21,35,43,.18);border-radius:12px;overflow:hidden;direction:rtl}
.flow-resume-main{min-width:0;text-align:right;border:0;background:transparent;color:var(--ink);padding:8px 11px;cursor:pointer;font:inherit;display:grid;gap:1px}.flow-resume-main strong,.flow-resume-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-resume-main small{color:var(--muted);font-size:12px}.flow-resume-main:hover{background:var(--accent-soft,#E4EEF9)}
.flow-resume-x{border:0;border-inline-start:1px solid var(--line);background:transparent;color:var(--muted);padding:0 10px;cursor:pointer;font-size:18px}.flow-resume-x:hover{background:var(--warn-bg);color:var(--warn)}
.flow-panel{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:0 0 12px;border:1px solid var(--accent);border-radius:10px;background:var(--accent-soft,#E4EEF9)}.flow-panel p{margin:3px 0 0;color:var(--muted)}.flow-panel.is-ready{border-color:var(--ok);background:var(--ok-bg)}
@media(max-width:600px){.flow-resume{top:auto;bottom:74px}.flow-resume-main{max-width:calc(100vw - 96px)}}

:root{
  --bg:#F3F6F7; --surface:#FFFFFF; --ink:#15232B; --muted:#5A6A73; --line:#D9E1E5;
  --accent:#1D5FA6; --accent-ink:#FFFFFF; --warn:#B3261E; --warn-bg:#FCECEA;
  --doc:#3A3A94; --doc-bg:#ECECFA; --ast:#0B7366; --ast-bg:#E3F4F1; --rec:#9A5B00; --rec-bg:#FBF0DE;
  --ok:#1E7A3C; --tc-todo:#F4B860; --tc-prog:#5B9BF3; --tc-done:#6FC28B; --tc-fill:#FFFFFF;
  --wait:#8A5A00; --wait-bg:#FBF0DE; --busy:#1D5FA6; --busy-bg:#E4EEF9; --ok-bg:#E3F4EA; --off:#5A6A73; --off-bg:#E9EEF0;   /* رنگ‌های چیپ وضعیت (ui.js) */
  --hr-past:#CFE6D6; --hr-future:#CFE0F6; --hr-today:#8FBDF2; --hr-leave:#F9D9B5; --hr-off:transparent;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0E1619; --surface:#162126; --ink:#E4ECEF; --muted:#94A5AD; --line:#27363C;
    --accent:#6DA6E6; --accent-ink:#0E1619; --warn:#F2A39B; --warn-bg:#3A1E1B;
    --doc:#A9A9F2; --doc-bg:#25254A; --ast:#5CC9B8; --ast-bg:#15332F; --rec:#E6AC55; --rec-bg:#3A2A12; --ok:#6FCF8E; --tc-todo:#B9812C; --tc-prog:#3B74C4; --tc-done:#3F8F5B; --tc-fill:#1D2B31;
    --wait:#E6AC55; --wait-bg:#3A2A12; --busy:#6DA6E6; --busy-bg:#15283A; --ok-bg:#163A26; --off:#94A5AD; --off-bg:#22303A;
  }
}
:root[data-theme="light"] :is(select,input,textarea){color-scheme:light}
:root[data-theme="dark"] :is(select,input,textarea){color-scheme:dark}
:root[data-theme="dark"]{
  --bg:#0E1619; --surface:#162126; --ink:#E4ECEF; --muted:#94A5AD; --line:#27363C;
  --accent:#6DA6E6; --accent-ink:#0E1619; --warn:#F2A39B; --warn-bg:#3A1E1B;
  --doc:#A9A9F2; --doc-bg:#25254A; --ast:#5CC9B8; --ast-bg:#15332F; --rec:#E6AC55; --rec-bg:#3A2A12; --ok:#6FCF8E; --tc-todo:#B9812C; --tc-prog:#3B74C4; --tc-done:#3F8F5B; --tc-fill:#1D2B31;
    --wait:#E6AC55; --wait-bg:#3A2A12; --busy:#6DA6E6; --busy-bg:#15283A; --ok-bg:#163A26; --off:#94A5AD; --off-bg:#22303A;
}
*,*::before,*::after{box-sizing:inherit}
html{touch-action:manipulation;scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.7}
button,input,textarea,select{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:980px;margin:0 auto;padding:16px 16px 48px}
header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0 16px;border-bottom:2px solid var(--ink);margin-bottom:20px}
.brand{font-weight:800;font-size:1.35rem;letter-spacing:-.01em}
.brand small{display:block;font-weight:400;font-size:.8rem;color:var(--muted)}
.who{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--muted)}
.who[hidden]{display:none}   /* دستگاه قفل‌شده به یک نقش: لیست «من:» اصلاً دیده نشود */
select,input[type=text],input[type=number],input[type=tel],input[type=password],input[type=email],input[type=search],input[type=date],input[type=time],textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-width:100%;color-scheme:dark light}
textarea{width:100%;min-height:110px;resize:vertical;line-height:1.8}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.btn{border:1px solid var(--ink);background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 16px;cursor:pointer;font-weight:500;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.quiet{border-color:var(--line)}
.btn:disabled{opacity:.5;cursor:default}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:20px;border-bottom:1px solid var(--line)}
.tabs button{border:0;background:none;padding:10px 14px;cursor:pointer;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}
.tabs.subtabs{margin-top:-8px;font-size:.9rem}   /* ردیف دوم تب‌های مدیر (UI.tabs با sub) */
h2{font-size:1.2rem;margin:0 0 4px}
.lead{color:var(--muted);margin:0 0 16px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.note{font-size:.9rem;color:var(--muted)}
.warn{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:10px 12px;font-size:.92rem}
.okline{color:var(--ok);font-weight:500}
ul.clean{list-style:none;margin:0;padding:0}
ul.issues li{padding:6px 0;border-bottom:1px dashed var(--line);font-size:.92rem}
ul.issues li:last-child{border-bottom:0}

/* availability grid */
.grid{display:grid;grid-template-columns:auto repeat(2,1fr);gap:4px;max-width:360px}
.grid .h{font-size:.8rem;color:var(--muted);text-align:center}
.grid .d{font-size:.92rem;padding-inline-end:8px;align-self:center}
.cell{border:1px solid var(--line);border-radius:6px;padding:6px 0;text-align:center;cursor:pointer;background:var(--bg);font-size:.85rem}
.cell[aria-pressed=true]{background:var(--ast);border-color:var(--ast);color:var(--surface);font-weight:700}

/* board */
.board{display:grid;gap:12px}
.day{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.day h3{margin:0;padding:8px 14px;font-size:1rem;background:var(--ink);color:var(--surface)}
.shifts{display:grid;grid-template-columns:1fr 1fr}
.shift{padding:10px 12px}
.shift + .shift{border-inline-start:1px solid var(--line)}
.shift h4{margin:0 0 6px;font-size:.82rem;color:var(--muted);font-weight:500}
.pair{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:6px}
.chip{display:inline-block;border-radius:999px;padding:1px 10px;font-size:.84rem;line-height:1.8;white-space:nowrap}
.chip.doctor{background:var(--doc-bg);color:var(--doc);font-weight:700}
.chip.assistant{background:var(--ast-bg);color:var(--ast)}
.chip.reception{background:var(--rec-bg);color:var(--rec)}
.chip.missing{background:var(--warn-bg);color:var(--warn)}
/* معنای رنگ وضعیت، یک‌جا (UI.chip؛ روی هر عنصر دیگری هم می‌نشیند) */
.tone-wait{background:var(--wait-bg);color:var(--wait)}
.tone-busy{background:var(--busy-bg);color:var(--busy)}
.tone-ok{background:var(--ok-bg);color:var(--ok)}
.tone-bad{background:var(--warn-bg);color:var(--warn)}
.tone-off{background:var(--off-bg);color:var(--off)}
.chip.tone-wait,.chip.tone-busy,.chip.tone-ok,.chip.tone-bad,.chip.tone-off{font-weight:600;white-space:nowrap}
.spec{font-weight:400;font-size:.75rem;opacity:.8;margin-inline-start:4px}
.units{float:left;font-size:.78rem;font-weight:700}
.units.full{color:var(--ok)}.units.gap{color:var(--warn)}
.unitno{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;border:1.5px solid var(--ink);font-size:.8rem;font-weight:800;flex:none}
.link{width:14px;height:2px;background:var(--line)}
.sub{font-size:.8rem;color:var(--muted);margin-top:6px}
@media (max-width:560px){.shifts{grid-template-columns:1fr}.shift + .shift{border-inline-start:0;border-top:1px solid var(--line)}}

/* tables */
.scroll{overflow-x:auto}
table.av{border-collapse:collapse;font-size:.85rem;min-width:640px;width:100%}
table.av th,table.av td{border-bottom:1px solid var(--line);padding:6px 4px;text-align:center}
table.av th:first-child,table.av td:first-child{text-align:start;white-space:nowrap}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--line)}
.dot.on{background:var(--ast)}
.rolehead td{background:var(--bg);font-weight:800;color:var(--ink);border-inline-start:4px solid var(--accent)}
.cathead{font-weight:800;font-size:1.05rem;margin:18px 0 8px;padding:6px 10px;background:var(--bg);border-inline-start:4px solid var(--accent);border-radius:4px}
.vh{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden;clip:rect(0 0 0 0)}
.whomenu{position:relative}
.whobtn{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:150px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 10px;cursor:pointer;text-align:right}
.wholist{position:absolute;inset-inline-start:0;top:calc(100% + 4px);z-index:50;min-width:220px;max-width:calc(100vw - 32px);max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.2);padding:4px;direction:rtl;text-align:right}
.wholist .grp{font-weight:800;color:var(--ink);padding:10px 10px 4px;margin-top:4px;border-top:1px solid var(--line);font-size:.95rem}
.wholist .grp:first-child{border-top:0;margin-top:0}
.wholist .opt{display:block;width:100%;text-align:right;background:none;border:0;border-radius:6px;padding:8px 16px;cursor:pointer}
.wholist .opt:hover,.wholist .opt[aria-selected=true]{background:var(--bg)}
.wholist .opt[aria-selected=true]{font-weight:700;color:var(--accent)}

.rule{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.rule:last-child{border-bottom:0}
.x{border:0;background:none;color:var(--warn);cursor:pointer;padding:4px 8px}
.pending{border:2px solid var(--accent)}
.staffrow{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;margin-bottom:8px}
.staffrow input{flex:1 1 0;min-width:0}
.staffrow select{flex:0 0 96px;min-width:0}
.staffrow .tag{display:none}
.staffrow .x{flex:0 0 auto;white-space:nowrap;font-size:.8rem;padding:4px 6px}
.tag{font-size:.75rem;color:var(--muted);min-width:56px}
.hidden{display:none!important}
.alert{border-inline-start:4px solid var(--warn);padding:6px 10px;margin:6px 0;background:var(--warn-bg);border-radius:6px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.newbox{border-inline-start:4px solid var(--accent)}
.confirmbox{border:2px solid var(--warn)}
.warntext{color:var(--warn);font-weight:700;margin:0 0 8px}
.btn.danger{border-color:var(--warn);color:var(--warn)}
.w{color:var(--rec)}

#printArea{display:none}
@media print{
  body{background:#fff;color:#000}
  .wrap{display:none}
  #printArea{display:block;font-family:Vazirmatn,Tahoma,sans-serif}
  @page{size:A4 landscape;margin:10mm}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- app shell (demo) ---- */
.wrap{padding-bottom:110px}
header.top .tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:.9rem}
.myspace-trigger{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700}
.myspace-trigger svg{width:20px;height:20px}
.myspace-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.myspace-avatar{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:1.1rem;font-weight:800}
.myspace-head small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
@media(max-width:520px){.myspace-trigger span{display:none}.myspace-trigger{padding:8px 10px}.myspace-trigger svg{width:22px;height:22px}}
#banners:empty{display:none}
.banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:.92rem}
.banner.install{background:var(--ast-bg);color:var(--ink);border:1px solid var(--ast)}
.banner.update{background:var(--doc-bg);color:var(--ink);border:1px solid var(--doc)}
.fab{position:fixed;inset-inline-end:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:12px 18px;background:var(--ink);color:var(--surface);font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.18);cursor:pointer}
.fab svg{width:18px;height:18px}
.fab[data-pending="1"]::after{content:"";position:absolute;top:6px;inset-inline-end:8px;width:9px;height:9px;border-radius:50%;background:var(--rec)}
#sheet[hidden]{display:none}
/* لایهٔ موقت html2pdf (عکس صفحه، PDF پرونده) تمام‌صفحه و z-index ۱۰۰۰ دارد؛ نباید هیچ لمسی را بگیرد، حتی اگر بعد از خطا جا بماند */
.html2pdf__overlay{pointer-events:none!important}
body .html2pdf__overlay{opacity:1!important;background:transparent!important}
.sheet-back{position:fixed;inset:0;background:rgba(10,20,25,.45);z-index:40}
.sheet-card:focus{outline:none}
.sheet-card{position:fixed;z-index:41;inset-inline:0;bottom:0;max-height:88vh;overflow:auto;background:var(--surface);color:var(--ink);border-radius:16px 16px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px rgba(0,0,0,.2)}
@media (min-width:700px){.sheet-card{inset-inline:auto;left:50%;transform:translateX(-50%);bottom:auto;top:8vh;width:min(620px,92vw);border-radius:16px}}
.sheet-card h2{margin:0 0 8px;font-size:1.15rem}
.sheet-x{position:absolute;top:10px;inset-inline-end:10px;border:0;background:none;font-size:1.1rem;cursor:pointer;color:var(--muted);padding:6px 10px}
.steps{padding-inline-start:1.5em;margin:8px 0;list-style:persian}
.steps li{margin-bottom:6px}
.chipbtn[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}
@media (display-mode:standalone){header.top{padding-top:4px}}
@media print{.fab,#sheet,#banners,.submodal{display:none!important}}

/* ---------- پیوندِ متنی و تصویرهای OPG پرونده (پیش از ۴.۳۴ مال صفحهٔ ایمپلنت) ---------- */
.imp-opgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.imp-opgs figure{margin:0;width:150px}
.imp-opgs figure>button{border:0;padding:0;background:#000;border-radius:8px;overflow:hidden;cursor:zoom-in;width:100%}
.imp-opgs img{width:100%;display:block}
.imp-opgs figcaption{font-size:.75rem;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.linkbtn{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:none}

/* ---------- insurance tab ---------- */
.ins-table { border-collapse:collapse; width:100%; font-size:.88rem; }
.ins-table th, .ins-table td { border-bottom:1px solid var(--line); padding:6px; text-align:right; }
.ins-table tr:hover { background:var(--bg); }

/* پورتال افراد: صفحهٔ اصلی با دکمه‌ها، و هر دکمه یک برگهٔ تمام‌صفحه باز می‌کند */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:14px 0}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:14px 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;font-weight:700;cursor:pointer;text-align:center}
.tile:hover{background:var(--bg)}
.tile small{font-weight:400;color:var(--muted);font-size:.78rem}
.tile.attn{border-color:var(--warn)}
.tile.attn small{color:var(--warn);font-weight:700}
.tile .bd{position:absolute;top:8px;inset-inline-end:8px;min-width:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.75rem;line-height:20px;font-weight:700}
.sheet-card.page{inset:0;max-height:none;height:100%;width:100%;max-width:none;border-radius:0;transform:none;padding-top:0}
@media (min-width:700px){.sheet-card.page{inset:0;left:0;top:0;transform:none;width:100%;max-width:none;border-radius:0}}
.sheet-card.page>*{max-width:780px;margin-inline:auto}
.photo-evidence-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,20,25,.48);backdrop-filter:blur(2px);box-sizing:border-box}
.sheet-card.page>.photo-evidence-overlay{max-width:none;margin:0}
.photo-evidence-dialog{position:relative;width:min(620px,100%);max-height:min(82vh,760px);overflow:auto;box-sizing:border-box;padding:28px 30px 22px;border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 18px 52px rgba(0,0,0,.3)}
.photo-evidence-dialog .sheet-x{inset-inline-end:12px;top:10px}
@media(max-width:700px){.photo-evidence-overlay{align-items:flex-end;padding:0}.photo-evidence-dialog{width:100%;max-height:88vh;border-radius:18px 18px 0 0;padding:26px 18px calc(20px + env(safe-area-inset-bottom,0px))}}
.pagehead{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;background:var(--surface);padding:12px 0;margin-bottom:8px;border-bottom:1px solid var(--line)}
.pagehead strong{font-size:1.1rem}
/* پروندهٔ بیمار تمام‌صفحه (۵.۳): سربرگ و تب‌ها با هم چسبان؛ کمی پهن‌تر از برگه‌های دیگر (جدول‌ها) */
.patstick{position:sticky;top:0;z-index:6;background:var(--surface);margin-bottom:12px}
.patstick>.pagehead{position:static;margin-bottom:0;border-bottom:0;padding-bottom:6px}
.patstick>.pattabs{border-bottom:1px solid var(--line)}
.pathead-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.pathead-id strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet-card.page[data-kind="patient"]>*{max-width:1000px}
html.fullw .sheet-card.page[data-kind="patient"]>*{max-width:none}

.alertbox{border:2px solid var(--warn);background:var(--warn-bg,rgba(200,40,40,.08));border-radius:14px;padding:8px 10px;margin:10px 0}
.alertbox .alerthead{color:var(--warn);font-weight:800;margin-bottom:4px}
.alertbox .panel{border-color:var(--warn);margin:8px 0}
.shiftlist{margin:6px 0 0;padding:0;list-style:none}
.shiftlist li{padding:5px 0;border-top:1px solid var(--line)}
.shiftlist li.today{background:var(--bg);font-weight:700;padding-inline:6px;border-radius:8px}
.calweek td,.calweek th{vertical-align:top;font-size:.85rem}
.calweek tr.today{background:var(--bg);outline:2px solid var(--accent)}
.tile.urgent{background:var(--warn-bg);border:2px solid var(--warn);color:var(--warn)}
.tile.urgent small{color:var(--warn)}
.calgrid{display:grid;gap:8px;margin:10px 0}
.calgrid.week{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.calcell{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;text-align:start;cursor:pointer;font:inherit}
.calcell.today{outline:2px solid var(--accent)}
.calcell.empty{border:0;background:none;cursor:default}
.calcell.off{background:var(--bg);color:var(--muted);cursor:default}
.cc{font-size:.8rem;color:var(--muted)}
.cc.pt{color:var(--accent);font-weight:700}
.calgrid.month{grid-template-columns:repeat(7,1fr);gap:4px}
.calgrid.month .calcell{padding:6px 4px;min-height:62px;align-items:center;text-align:center}
.calgrid.month .mini{font-size:.62rem}
.calhd{display:contents}.calhd span{text-align:center;font-size:.72rem;color:var(--muted)}
.linkname{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--accent);text-decoration:none;cursor:pointer;text-align:start}
.psec{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:10px 0;overflow:hidden}
.psec>summary{cursor:pointer;font-weight:700;padding:12px 14px;list-style:none;display:flex;justify-content:space-between;align-items:center}
.psec>summary::after{content:"‹";transition:transform .15s;color:var(--muted)}
.psec[open]>summary::after{transform:rotate(-90deg)}
.psec>summary::-webkit-details-marker{display:none}
.psec[open]>summary{border-bottom:1px solid var(--line)}
.psec .psecbody{padding:10px 14px}
.psec.fixed{border:2px solid var(--accent)}
.psec.fixed .psectitle{font-weight:800;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--accent)}
.pfsec.psec{padding-bottom:10px}.pfsec.psec>:not(summary){margin-inline:14px}
.crs-course{--crs-tone:var(--accent);border-color:color-mix(in srgb,var(--crs-tone) 32%,var(--line));border-inline-start:4px solid var(--crs-tone)}
.crs-course.crs-st-completed{--crs-tone:var(--ok)}
.crs-course.crs-st-on_hold{--crs-tone:var(--wait)}
.crs-course.crs-st-cancelled{--crs-tone:var(--off)}
.crs-course>.crs-course-summary{background:color-mix(in srgb,var(--crs-tone) 11%,var(--surface));transition:background .15s}
.crs-course[open]>.crs-course-summary{background:color-mix(in srgb,var(--crs-tone) 15%,var(--surface));border-bottom-color:color-mix(in srgb,var(--crs-tone) 26%,var(--line))}
.crs-course>.crs-course-summary:hover{background:color-mix(in srgb,var(--crs-tone) 18%,var(--surface))}
.crs-course-summary .chip{background:var(--surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,transparent)}
.crs-course-summary,.crs-appt-summary{gap:8px;flex-wrap:wrap}
.crs-summary-main{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.crs-summary-meta{font-weight:400;line-height:1.7}
.crs-course-actions{justify-content:flex-end;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.crs-appt{margin:8px 0;background:var(--bg)}
.crs-appt>summary{padding:10px 12px}
.crs-appt[open]>summary>.crs-appt-preview{display:none}
.pa-appt-works{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;flex:1 1 100%}
.pa-appt-empty{display:block;margin-top:4px;font-size:.8rem}
.pa-work-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:.82rem;font-weight:500;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));color:var(--ink)}
.pa-work-pill.is-done{background:color-mix(in srgb,var(--ok) 11%,var(--surface));border-color:color-mix(in srgb,var(--ok) 30%,var(--line));color:var(--ok)}
.pa-work-pill.is-prog{background:color-mix(in srgb,var(--busy) 11%,var(--surface));border-color:color-mix(in srgb,var(--busy) 30%,var(--line))}
.pa-work-pill.is-off{background:var(--bg);border-color:var(--line);color:var(--muted)}
.crs-appt-context{margin-bottom:7px}
.crs-appt-actions{gap:6px;flex-wrap:wrap;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--line)}
.crs-appt-footer{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.crs-appt-footer .crs-appt-actions{padding-bottom:0;border-bottom:0}
.treatment-note{margin-top:7px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.treatment-note>summary{display:flex;align-items:baseline;gap:6px;cursor:pointer;list-style:none}
.treatment-note>summary::-webkit-details-marker{display:none}
.treatment-note>summary::before{content:"‹";color:var(--muted);transition:transform .15s}
.treatment-note[open]>summary::before{transform:rotate(-90deg)}
.treatment-note label{display:block;margin-top:8px}
.treatment-note input{width:100%;box-sizing:border-box;margin-top:4px}
.treatment-note .note:last-child{margin-top:5px}
.crs-session-notes{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}
.crs-session-notes>p{margin:4px 0 7px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.crs-work-or{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem;margin:7px 0}
.crs-work-or:before,.crs-work-or:after{content:"";height:1px;background:var(--line);flex:1}
.crs-work-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-top:10px;align-items:start;font-family:Vazirmatn,Tahoma,"Segoe UI",sans-serif}
.crs-work-field{display:grid;gap:4px;min-width:0;font-size:.82rem;font-weight:700}
.crs-work-field--wide,.crs-work-form>.warn,.crs-free-work,.crs-work-actions{grid-column:1/-1}
.crs-work-form :is(select,input,textarea){display:block;width:100%;min-width:0;box-sizing:border-box;margin:0;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.7}
.crs-work-form textarea{min-height:88px}
.crs-free-work{margin:0;padding-top:10px;border-top:1px dashed var(--line)}
.crs-free-work>summary{cursor:pointer;font-size:.88rem;font-weight:700}
.crs-free-work .note{margin:5px 0}
.crs-work-form>.warn{margin:0}.crs-work-actions{display:flex;justify-content:flex-end}
@media(max-width:600px){
  .crs-summary-meta{flex:1 1 100%}
  .crs-course-actions{justify-content:flex-start}
  .crs-appt-actions .btn{min-height:44px}
  .crs-work-form{grid-template-columns:1fr}
}
.staffbtn{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;margin:6px 0;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;font:inherit;cursor:pointer;text-align:start}.staffbtn:hover{background:var(--bg)}
.alitem{border-top:1px solid var(--warn);margin:0}
.alitem:first-of-type{border-top:0}
.alitem>summary{cursor:pointer;padding:9px 2px;display:flex;justify-content:space-between;align-items:center;gap:8px;list-style:none}
.alitem>summary::-webkit-details-marker{display:none}
.alitem>summary::after{content:"‹";color:var(--warn);flex:none}
.alitem[open]>summary::after{transform:rotate(-90deg)}
.alitem .albody{padding:2px 2px 10px}
.ro{padding:8px 10px;border-radius:8px;background:var(--bg);color:var(--muted);min-height:1.2em}
.bars{display:flex;gap:6px;align-items:flex-end;margin-top:10px}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;min-width:0}
.bar i{display:block;width:100%;background:var(--accent);opacity:.75;border-radius:6px 6px 0 0}
.bar.hl i{opacity:1}
.bar .bv{font-size:.72rem;color:var(--ink)}
.bar .bl{font-size:.68rem;color:var(--muted);text-align:center;line-height:1.2}
.alertbox.good{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
.alertbox.good .alerthead{color:var(--ok)}
.alitem.ok{border-top-color:var(--ok)}
.alitem.ok>summary{color:var(--ok);font-weight:700}
.alitem.ok>summary::after{color:var(--ok)}
.mgrfab{display:flex;position:fixed;inset-inline-start:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:19;align-items:center;gap:6px;border:0;border-radius:999px;padding:12px 18px;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.2);cursor:pointer}
.mgrfab[hidden]{display:none}
@media print{.mgrfab{display:none!important}}
.oclink{font-size:.78rem;font-weight:600;margin-inline-start:6px}
.kvgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 14px;margin-top:8px}.kv{display:flex;flex-direction:column;gap:1px;min-width:0;overflow-wrap:anywhere}
.gapitem{padding:6px 0}
.gapitem+.gapitem{border-top:1px solid var(--line)}
.gaphd{font-weight:700;color:var(--warn);font-size:.9rem}
.gapslink{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;margin:10px 0;padding:12px 14px;border:2px solid var(--warn);background:var(--warn-bg);color:var(--ink);border-radius:12px;font:inherit;cursor:pointer;text-align:start}
.gaplink{display:flex;justify-content:space-between;align-items:center;gap:6px;width:100%;margin-top:8px;padding:6px 10px;border:1px solid var(--warn);background:var(--warn-bg);color:var(--warn);border-radius:10px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;text-align:start}
.gaplink.info{border-color:var(--line);background:var(--bg);color:var(--muted);font-weight:600}

.brand{display:flex;align-items:center;flex-wrap:wrap;gap:0 10px}.brand small{flex-basis:100%}.brandlogo{width:34px;height:34px;border-radius:8px;object-fit:contain}

/* تاریخچهٔ خرید انبار: هر خرید یک خط */
.invlines{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.invline{display:flex;gap:10px;align-items:center;width:100%;text-align:start;border:0;background:none;padding:7px 8px;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink);white-space:nowrap;overflow:hidden;border-bottom:1px dashed var(--line)}
.invline:hover,.invline:focus-visible{background:var(--surface)}
.invline span{overflow:hidden;text-overflow:ellipsis}
.invline .d{flex:0 0 auto;color:var(--muted);min-width:64px}.invline .s{flex:0 0 auto}.invline .q{flex:0 0 auto}.invline .t{flex:1 1 auto;font-weight:700}.invline .v{flex:0 1 110px;color:var(--muted)}
.linkbtn{border:0;background:none;color:var(--accent);cursor:pointer;font:inherit;padding:0;text-decoration:none}
table.kv th{text-align:start;color:var(--muted);font-weight:400;padding:4px 12px 4px 0;white-space:nowrap}table.kv td{padding:4px 0}

/* تقویم نوبت‌ها */
.apcal-week{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:6px;overflow-x:auto;margin-bottom:16px}
.apcol,.apcell{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px;min-width:0}
.apcol{min-height:140px}.apcol.today,.apcell.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.apcol.fri{opacity:.8}
.aphead{margin-bottom:4px}
.apchip{display:block;width:100%;text-align:start;border:0;border-inline-start:4px solid var(--c,#475569);background:var(--bg);color:var(--ink);padding:4px 6px;margin-top:4px;border-radius:6px;font:inherit;font-size:.85rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apchip:hover,.apchip:focus-visible{background:var(--line)}
.apcount{display:inline-block;min-width:20px;text-align:center;background:var(--accent);color:var(--accent-ink);border-radius:10px;font-size:.75rem;padding:0 6px}
.apdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:4px}
.apcal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:16px}
.apcal-head{display:contents}.apcal-head div{text-align:center;color:var(--muted);font-size:.85rem;padding:4px 0}
.apcell{min-height:92px;cursor:pointer}.apcell.empty{background:none;border:0;cursor:default}.apnum{font-weight:700;margin-bottom:2px}
@media(max-width:700px){
  .apcal-week{grid-template-columns:1fr}.apcol{min-height:0}.apcol.fri:has(.note:only-child){display:none}
  .apcell{min-height:56px;padding:4px}.apcell .apchip,.apcell>.note{display:none}
}

/* ساعت حضور و تقویم کارکنان */
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--hr-past:#27483A;--hr-future:#233F63;--hr-today:#2F5E9E;--hr-leave:#6B4A22}}
:root[data-theme="dark"]{--hr-past:#27483A;--hr-future:#233F63;--hr-today:#2F5E9E;--hr-leave:#6B4A22}
.hrk-past{background:var(--hr-past)}.hrk-future{background:var(--hr-future)}.hrk-today{background:var(--hr-today)}.hrk-leave{background:var(--hr-leave)}.hrk-off,.hrk-todayoff{background:var(--hr-off)}
.hrk-todayoff{outline:2px solid var(--accent)}
.hrlegend{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0}.hrsw{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--line);margin-inline-end:4px}
.hrweek{display:flex;flex-direction:column;gap:4px}.hrwrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;width:100%;text-align:start;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;color:var(--ink);cursor:pointer}
.hrday{min-width:64px;font-weight:700}.hrr{flex:1 1 auto}
.hrmonth{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.hrmonth.sum8{grid-template-columns:repeat(7,minmax(0,1fr)) minmax(0,.9fr)}   /* ستون جمع هفته */
.hrcell.wsum{background:var(--bg);border-style:dashed}
.hrcell.hol{opacity:.6;background:repeating-linear-gradient(45deg,transparent 0 6px,color-mix(in srgb,var(--line) 60%,transparent) 6px 8px)}
.hrocc{font-size:.68rem;color:var(--muted)}
.ubblock.dim{opacity:.35}
.hrgrp{margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.hrfilters summary{list-style:none;margin-top:8px}.hrfilters summary::-webkit-details-marker{display:none}.hrfilters summary::before{content:"▾ "}.hrfilters[open] summary::before{content:"▴ "}
.hrcell{position:relative;min-height:54px;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;color:var(--ink);cursor:pointer;padding:2px}.hrcell.empty{border:0;cursor:default;background:none}
.hrn{font-weight:700}.hrh{font-size:.78rem}.hrp{position:absolute;top:2px;inset-inline-end:6px;color:var(--warn)}
.hryear{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.hrmini{border:1px solid var(--line);border-radius:10px;padding:8px}
.hrmgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:6px}.hrmgrid i{display:block;aspect-ratio:1;border-radius:3px;border:1px solid var(--line)}
.hred{display:flex;flex-direction:column;gap:6px}.hrrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hrpair{display:inline-flex;gap:4px;align-items:center}.hred.ro .hrrow{border-bottom:1px dashed var(--line);padding:4px 0}
.hritem{border-top:1px solid var(--line);padding:8px 0}.hritem:first-of-type{border-top:0}
@media(max-width:700px){.hrcell{min-height:46px}.hrh{display:none}}

/* برنامهٔ روز */
.daygrid-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:16px;max-height:75vh}
.daygrid{display:grid;position:relative;min-width:max-content}
.dghead{position:sticky;top:0;z-index:3;background:var(--surface);border-bottom:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700}
.dgtime{grid-column:1;font-size:.72rem;color:var(--muted);text-align:center;border-top:1px dashed var(--line)}.dgtime.hr{border-top:1px solid var(--line)}
.dgcell{border-top:1px dashed var(--line);border-inline-start:1px solid var(--line)}.dgcell.hr{border-top:1px solid var(--line)}
.dgblock{z-index:2;margin:1px 3px;text-align:start;border:0;border-inline-start:4px solid var(--c,#475569);background:color-mix(in srgb,var(--c,#475569) 16%,var(--surface));color:var(--ink);border-radius:6px;font:inherit;font-size:.82rem;padding:2px 6px;overflow:hidden;cursor:pointer;line-height:1.25}
.dgblock.bad{outline:2px solid var(--warn)}

/* نمودار با نام عمودی داخل ستون (نام ماه‌ها) */
.vbars{align-items:flex-end;gap:4px}
.vbars .bar{justify-content:flex-start}
.vtrack{position:relative;width:100%;height:150px;border-radius:6px;overflow:hidden;display:flex;align-items:flex-end;background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid var(--line)}
.vtrack i{display:block;width:100%;background:var(--accent);opacity:.55;border-radius:0}
.bar.hl .vtrack i{opacity:.85}
.vtrack .vl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.8rem;font-weight:700;color:var(--ink);text-shadow:0 0 3px var(--surface),0 0 3px var(--surface),0 0 6px var(--surface)}

/* جدول یونیت‌ها (تقویم مدیر): کل روز در یک صفحه، فقط رنگ؛ یونیتِ بازشده اسم‌ها را نشان می‌دهد */
.ub{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px;margin-bottom:12px;position:relative}
.ub>.fwbtn{position:absolute;top:10px;inset-inline-start:10px;z-index:3}   /* دکمهٔ تمام‌عرض: فقط نماد، گوشهٔ بالای تخته */
.fwbtn{font-size:1.1rem;padding-inline:12px}.fwbtn[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.ubgrid{display:grid;height:calc(100vh - 330px);min-height:340px;max-height:640px}
.ubhead{position:sticky;top:0;z-index:4;background:var(--surface);border:0;border-bottom:2px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px 2px 4px;line-height:1.25;font-size:.8rem;min-width:0}
.ubhead .note{font-size:.7rem;white-space:normal;text-align:center}
.ubhead.on{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-bottom-color:var(--accent)}
.ubtime{grid-column:1;font-size:.65rem;color:var(--muted);text-align:center;line-height:1;margin-top:-4px}
.ubcell{border-top:1px dashed var(--line);border-inline-start:1px solid var(--line)}.ubcell.hr{border-top:1px solid var(--line)}
.ubcell.off-shift{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--muted) 16%,transparent) 6px 12px);opacity:.75}
.ubblock{min-height:0;z-index:2;margin:1px 2px;border:0;border-radius:6px;background:var(--c,var(--accent));opacity:.92;box-shadow:0 1px 2px rgba(0,0,0,.12);cursor:pointer;min-width:0;padding:0;overflow:hidden}
.ubblock.bad{outline:2px solid var(--warn);outline-offset:-1px;opacity:1}
.ubblock.full{background:color-mix(in srgb,var(--c,var(--accent)) 22%,var(--surface));opacity:1;border-inline-start:4px solid var(--c,var(--accent));color:var(--ink);font:inherit;font-size:.74rem;text-align:start;padding:0 6px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center}
.ubblock.full.bad{border-inline-start-color:var(--warn);outline:2px solid var(--warn)}
.ubblock.full.st-done{background:color-mix(in srgb,var(--ok) 18%,var(--surface))}
.ubblock.full.st-noshow{background:color-mix(in srgb,var(--warn) 14%,var(--surface))}
.ubblock.full.st-cancelled,.ubblock.st-cancelled{opacity:.55;text-decoration:line-through}
.ubblock.hit{outline:2px solid var(--ink);outline-offset:-2px}
.ubblock.sel{outline:3px solid var(--accent);outline-offset:-2px;opacity:1}
.ubblock.bad.sel{outline:3px solid var(--warn);outline-offset:-2px}
@media print{.ub{display:none}}

/* نمای سال: ۱۲ خانه (۳ ستون، روی صفحهٔ پهن ۴ ستون)، رنگ بر اساس شلوغی ماه */
.hryear12{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media(min-width:760px){.hryear12{grid-template-columns:repeat(4,minmax(0,1fr))}}
.yrcell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:84px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(color-mix(in srgb,var(--accent) var(--heat,0%),transparent),color-mix(in srgb,var(--accent) var(--heat,0%),transparent)),var(--surface);color:var(--ink);font:inherit;cursor:pointer;padding:8px}
.yrcell .hrn{font-weight:700}.yrcell .yrn{font-size:1.5rem;font-weight:800;line-height:1.1}
.yrcell.now{outline:2px solid var(--accent);outline-offset:-2px}

/* نمای هفته: ۷ جعبه (گوشی ۴ ستون، صفحهٔ پهن ۷ ستون) */
.hrweek7{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media(min-width:900px){.hrweek7{grid-template-columns:repeat(7,minmax(0,1fr))}}
.hrweek7 .yrcell{min-height:96px;padding:6px 4px}

/* تقویم دکتر داخل فرم نوبت: روز شمسی، روز میلادی و ساعت خالی؛ امروز سبز */
.apbday{min-height:58px}.apbg{font-size:.68rem;color:var(--muted)}.apbh{font-size:.7rem;color:var(--muted);line-height:1.1}
.hrcell.apb-on{background:color-mix(in srgb,#22c55e 24%,transparent);border-color:color-mix(in srgb,#22c55e 70%,transparent)}
.hrcell.apb-today{background:color-mix(in srgb,#f97316 30%,transparent);border-color:#f97316}
.hrcell.apb-off{opacity:.5;background:color-mix(in srgb,var(--muted) 10%,transparent)}
.hrcell.apb-on .apbh,.hrcell.apb-today .apbh{color:var(--ink);font-weight:600}
.hrcell.apbday.now{outline:2px solid var(--accent);outline-offset:-2px}
.ap-slot-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:2px solid var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:0 1px 0 color-mix(in srgb,var(--accent) 15%,transparent)}
.ap-slot-summary strong{font-size:1.05rem}.ap-slot-summary.is-pending{border-style:dashed;background:var(--soft)}
.ap-slot-board{border:2px solid color-mix(in srgb,var(--accent) 45%,var(--line))}.ap-slot-board-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:8px}.ap-slot-board-head strong{font-size:1.12rem}.ap-slot-board-head .note{margin:3px 0 0}.ap-free-times .btn{min-height:42px;font-weight:750}
@media(max-width:700px){.apbday{min-height:52px}.apbh{display:block}}

/* برنامهٔ یک روزِ دکتر در فرم نوبت: ردیف‌های ۱۵ دقیقه‌ای، بدون یونیت */
.apday{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 6px;margin:6px 0}
.apt{font-size:.72rem;color:var(--muted);text-align:end;align-self:start;line-height:22px}
.apc{min-height:22px;border-radius:6px;border:1px solid var(--line);font:inherit;font-size:.74rem;padding:0 8px;display:flex;align-items:center;color:var(--ink);background:none;text-align:start}
.apc.busy{background:color-mix(in srgb,var(--c) 40%,transparent);border-color:var(--c)}
.apc.off{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--muted) 18%,transparent) 6px 12px);color:var(--muted)}
.apc.gap{opacity:.45}
button.apc.ok{cursor:pointer;background:color-mix(in srgb,#22c55e 14%,transparent);border-color:color-mix(in srgb,#22c55e 55%,var(--line))}
.apc.sel{outline:2px solid var(--accent);outline-offset:-2px}

/* جابه‌جایی نوبت روی تختهٔ یونیت‌ها */
button.ubcell{background:transparent;border:none;border-top:1px dashed var(--line);border-inline-start:1px solid var(--line);padding:0;cursor:pointer}
button.ubcell:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
button.ubcell.free{background:color-mix(in srgb,var(--ok) 8%,transparent)}
button.ubcell.free:hover,button.ubcell.free:focus-visible{background:color-mix(in srgb,var(--ok) 24%,transparent)}
button.ubcell.mv,button.dkcell.mv{border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 7%,transparent);cursor:pointer;padding:0}
button.ubcell.mv:hover,button.ubcell.mv:focus-visible,button.dkcell.mv:hover,button.dkcell.mv:focus-visible{background:color-mix(in srgb,var(--accent) 24%,transparent)}
.ubblock[draggable=true]{cursor:grab}

/* ---------- میز نوبت‌دهی منشی (desk.js) ---------- */
.sheet-card.page>#pageBody:has(>.desk),.sheet-card.page>.pagehead:has(+#pageBody>.desk){max-width:1180px}
.dkbar{position:sticky;top:70px;z-index:4;background:var(--surface);border-bottom:1px solid var(--line);padding:6px 0 8px;margin-bottom:10px;display:flex;flex-direction:column;gap:7px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow-x:auto;max-width:100%;white-space:nowrap}   /* دکمهٔ چندتکه (UI.seg) */
.row>.seg{min-width:0}.row>.row{min-width:0;max-width:100%}   /* سوئیچ نما داخل ردیف: روی گوشی داخل خودش اسکرول می‌شود و صفحه را پهن نمی‌کند */
.seg button{border:0;background:none;font:inherit;padding:8px 16px;cursor:pointer;color:var(--ink)}
.seg button+button{border-inline-start:1px solid var(--line)}
.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:700}
.dksearch{position:relative}.dksearch input{width:100%;box-sizing:border-box}
.dksugg{position:absolute;inset-inline:0;top:calc(100% + 2px);z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.16);overflow:hidden}
.dksugg button{display:block;width:100%;text-align:start;border:0;border-top:1px solid var(--line);background:none;font:inherit;color:var(--ink);padding:11px 12px;cursor:pointer}
.dksugg button:first-child{border-top:0}.dksugg button:hover,.dksugg button:focus-visible{background:var(--bg)}
.dkpchip{display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid var(--accent);border-radius:999px;padding-block:3px;padding-inline:12px 2px}
.dkdocs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.dkdoc{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}
.dkdoc i,.dkdot{width:10px;height:10px;border-radius:3px;background:var(--c,var(--muted));display:inline-block;margin-inline-end:4px}
.dkdoc[aria-pressed=true]{border-color:var(--c,var(--accent));background:color-mix(in srgb,var(--c,var(--accent)) 16%,var(--surface));font-weight:700}
.dknav{gap:6px;flex-wrap:nowrap}.dknav strong{white-space:nowrap}
.dkday-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface);position:relative;scrollbar-width:thin}
.dkday-wrap .dkday{width:100%;min-width:min-content;max-width:none;border:0;border-radius:0;margin:0;box-sizing:border-box}
.dkcorner{grid-row:1;grid-column:1;position:sticky;inset-inline-start:0;background:var(--surface);z-index:4;border-inline-end:1px solid var(--line);border-bottom:3px solid var(--line)}
.dkday{width:fit-content;max-width:100%;margin-inline:auto;display:grid;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden;padding-bottom:4px;--dkcolmin:0px}
.dkhead{border-bottom:3px solid var(--c);padding:5px 3px;text-align:center;font-size:.8rem;line-height:1.3;min-width:0;display:flex;flex-direction:column;gap:1px;grid-row:1}
.dkday-wrap .dkhead{position:sticky;top:0;background:var(--surface);z-index:2}
.dkhead .note{font-size:.68rem}
.dktime{grid-column:1;font-size:.68rem;color:var(--muted);text-align:center;line-height:1;display:flex;align-items:flex-start;justify-content:center;padding-top:1px;box-sizing:border-box}
.dktime.hr{border-top:1px solid var(--line)}
.dkday-wrap .dktime{position:sticky;inset-inline-start:0;background:var(--surface);z-index:3;border-inline-end:1px solid var(--line)}
.dkcell{border:0;border-top:1px dashed var(--line);border-inline-start:1px solid var(--line);min-width:0;padding:0;background:none;font:inherit}
.dkcell.hr{border-top:1px solid var(--line)}
.dkcell.free{background:color-mix(in srgb,var(--ok) 8%,transparent);cursor:pointer}
.dkcell.free:hover,.dkcell.free:focus-visible{background:color-mix(in srgb,var(--ok) 24%,transparent)}
.dkcell.off{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--muted) 16%,transparent) 6px 12px)}
.dkblk{z-index:2;margin:1px 2px;border:0;border-inline-start:4px solid var(--c);border-radius:6px;background:color-mix(in srgb,var(--c) 22%,var(--surface));color:var(--ink);font:inherit;font-size:.74rem;line-height:1.25;text-align:start;padding:1px 5px;overflow:hidden;cursor:pointer;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.dkblk b,.dkblk .note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dkblk .note{font-size:.68rem}
.dkblk.st-done{background:color-mix(in srgb,var(--ok) 18%,var(--surface))}
.dkblk.st-noshow{background:color-mix(in srgb,var(--warn) 14%,var(--surface))}
.dkblk.st-cancelled,.dkchip.st-cancelled{opacity:.55;text-decoration:line-through}
.desk .dim{opacity:.28}
.dkblk.hit,.dkchip.hit{outline:2px solid var(--ink);outline-offset:-2px}
.dkblk.sel,.dkchip.sel{outline:3px solid var(--accent);outline-offset:-2px;opacity:1}
.dkblk.bad{outline:2px solid var(--warn);outline-offset:-1px;border-inline-start-color:var(--warn) !important;opacity:1}
.dkblk.bad.sel{outline:3px solid var(--warn);outline-offset:-2px}
.dkchip.bad{outline:2px solid var(--warn);outline-offset:-1px;border-color:var(--warn) !important}
.dkchip.bad.sel{outline:3px solid var(--warn);outline-offset:-2px}
.dkchip{font-size:.8rem}
.dklist tr.sel td{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.dklist tbody tr{cursor:pointer;transition:background .15s}
.dklist tbody tr:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.dkpanel{border:2px solid var(--c,var(--accent))}
.dkpat{border-inline-start:5px solid var(--accent)}
.dkacts .btn{padding:7px 12px}
@media(max-width:700px){
  .dkbar{top:50px}.seg button{padding:8px 12px}
  .dkacts{gap:6px}.dkacts .btn{flex:1 1 auto}
}
.dkfind{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.dkgrp{margin-top:10px}.dkgrp>.note{display:block;margin-bottom:4px;font-weight:700}
.dkpick{border-inline-start:4px solid var(--c,var(--accent));padding:7px 10px;font-size:.88rem}
.dkpick:hover{background:color-mix(in srgb,var(--c,var(--accent)) 14%,var(--surface))}
.dkundo{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:color-mix(in srgb,var(--ok) 14%,var(--surface));border:1px solid var(--ok);border-radius:10px;padding:8px 12px;margin:0 0 10px}
.dkhist li{padding:4px 0;border-top:1px solid var(--line);font-size:.88rem}.dkhist li:first-child{border-top:0}
.dkfreed{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}
.dkfreeditem{border:2px solid var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface));border-radius:12px;padding:10px 12px}
.dkwl-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.dkwl{padding:12px 14px;overflow:hidden;border-inline-start:4px solid color-mix(in srgb,var(--accent) 35%,var(--line));box-shadow:0 2px 8px color-mix(in srgb,#000 7%,transparent)}
.dkwl.urgent{border-inline-start-color:var(--warn)}
.dkwl-list{display:grid;gap:12px;max-width:1040px;margin-inline:auto}
.dkwl-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px 15px 10px}
.dkwl-next{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:10px 15px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-block:1px solid color-mix(in srgb,var(--accent) 16%,var(--line))}
.dkwl-next>span{font-size:.82rem;color:var(--muted);font-weight:700}.dkwl-next.due{background:color-mix(in srgb,var(--warn) 13%,var(--surface))}.dkwl-next.due strong{color:var(--warn)}
.dkwl-body{padding:11px 15px}.dkwl-meta{margin:0;color:var(--muted);line-height:1.8}.dkwl-note{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));line-height:1.6}
.dkwl-actions{display:flex;gap:7px;flex-wrap:wrap;padding:11px 15px;border-top:1px solid var(--line)}
.dkwl-formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}.dkwl-formgrid label,.sheet-card label:has(#dkWRange),.sheet-card label:has(#dkWFollowMode){display:grid;gap:4px;font-weight:700}.dkwl-formgrid select,.dkwl-formgrid input,#dkWRange,#dkWFollowMode,#dkWPref,#dkWPrio,#dkWNote{width:100%;box-sizing:border-box;font:inherit}.dkwl-autodate{display:grid;gap:5px;margin:12px 0;padding:11px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.dkwl-card{padding:0;overflow:hidden;border-inline-start:5px solid var(--accent);box-shadow:0 3px 12px color-mix(in srgb,#000 9%,transparent)}.dkwl-card.urgent{border-inline-start-color:var(--warn)}
.dkwl-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 18px 11px}.dkwl-card-head .linkname{font-size:1.12rem}.dkwl-card-head p{margin:5px 0 0}
.dkwl-card-next{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;padding:11px 18px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));border-block:1px solid color-mix(in srgb,var(--accent) 18%,var(--line))}.dkwl-card-next span{font-size:.82rem;color:var(--muted);font-weight:700}.dkwl-card-next.due{background:color-mix(in srgb,var(--warn) 13%,var(--surface))}.dkwl-card-next.due strong{color:var(--warn)}
.dkwl-card-body{padding:14px 18px}.dkwl-fields{display:flex;gap:24px;flex-wrap:wrap;margin:0}.dkwl-fields div{display:grid;gap:2px}.dkwl-fields dt{font-size:.8rem;color:var(--muted)}.dkwl-fields dd{margin:0;font-weight:650}.dkwl-history{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.dkwl-history summary{cursor:pointer;font-weight:700}.dkwl-history ol{margin:9px 0 0;padding-inline-start:20px}.dkwl-history li{padding:5px 0;color:var(--muted);line-height:1.55}.dkwl-nohistory{margin:11px 0 0}.dkwl-card-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,#000)}
/* پروندهٔ بیمار: نمایش فقط-خواندنیِ کارتابل انتظار؛ هیچ یادداشتی به پروندهٔ بالینی کپی نمی‌شود. */
.patwait-list{display:grid;gap:12px}.patwait-intro{padding:14px 16px}.patwait-card{padding:0;overflow:hidden;border-inline-start:4px solid var(--accent)}.patwait-card>header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:13px 16px}.patwait-action{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:10px 16px;border-block:1px solid var(--line);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.patwait-action>span{font-size:.82rem;font-weight:700;color:var(--muted)}.patwait-body{padding:13px 16px}.patwait-fields{display:flex;gap:18px 28px;flex-wrap:wrap;margin:0}.patwait-fields div{display:grid;gap:2px}.patwait-fields dt{font-size:.8rem;color:var(--muted)}.patwait-fields dd{margin:0;font-weight:650}.patwait-note{margin:10px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));line-height:1.6}.patwait-history{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.patwait-history summary{cursor:pointer;font-weight:700}.patwait-history ol{margin:8px 0 0;padding-inline-start:22px}.patwait-history li{padding:6px 0;line-height:1.55;color:var(--muted)}
.dkbadge{display:inline-block;background:var(--warn);color:#fff;border-radius:999px;font-size:.72rem;padding:1px 8px;font-weight:700}
.dknow{border-top:2px solid var(--warn);z-index:3;pointer-events:none;align-self:start;position:relative}
.dknow::before{content:"";position:absolute;inset-inline-start:-5px;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--warn)}
.dkcopied{margin-top:8px}.dkcopied textarea{width:100%;box-sizing:border-box;font:inherit;font-size:.9rem;min-height:0}
.dkpanel,#dkWlForm{scroll-margin-top:240px}
.dkmsg .btn{margin-inline-start:6px;padding:4px 10px}
@media(max-width:700px){
  .dkday{--dkrow:10px;--dkcolmin:155px}
  .dkbar .dkdocs{flex-wrap:wrap;overflow-x:visible}.dkbar .dkdoc{padding:4px 10px}   /* اسم همهٔ دکترها دیده شود، نه فقط با کشیدن افقی */
  .dkbar{gap:5px;padding-top:4px;position:static}   /* روی گوشی نوار بالا یک‌سوم صفحه را می‌گرفت؛ چسبان نیست */
  .dkcopied textarea{font-size:16px}   /* آیفون روی کادر با فونت کوچک‌تر از ۱۶ زوم می‌کند */
  .dkbar .dknav .btn{padding:6px 10px}
  .dkbar .row:last-child{flex-wrap:wrap}.dkbar .row:last-child>.dknav{flex:1 1 100%}.dkbar #dkSt{flex:1 1 100%;max-width:none;min-width:0}   /* فیلتر وضعیت زیر تاریخ و تمام‌عرض؛ قبلاً فشرده و بریده می‌شد */
  .dknav strong{font-size:.92rem}
  .dklist th:nth-child(5),.dklist td:nth-child(5){display:none}
  .dkpanel,#dkWlForm{scroll-margin-top:200px}
  .dkwl-head,.dkwl-card-head{align-items:flex-start;flex-direction:column}.dkwl-actions .btn,.dkwl-card-actions .btn{flex:1 1 100%}.dkwl-formgrid{grid-template-columns:1fr}
}
.sheet-card.page>.pagehead{z-index:6}   /* بلوک‌های جدول میز (z-index) روی سربرگ چسبان نیفتند */
.dkblk{z-index:1}.dknow{z-index:2}.ubgrid .dknow{z-index:3}
/* نمای هفتهٔ تقویمی */
.dkwkwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.dkwk{display:grid;grid-template-columns:38px repeat(7,minmax(var(--dkwmin,0px),1fr));padding-bottom:4px;min-width:min-content}
.dkwcorner{grid-row:1;grid-column:1;position:sticky;inset-inline-start:0;background:var(--surface);z-index:2}
.dkwhead{grid-row:1;display:flex;flex-direction:column;align-items:center;gap:1px;border:0;border-bottom:2px solid var(--line);background:none;font:inherit;font-size:.82rem;color:var(--ink);cursor:pointer;padding:5px 2px;min-width:0}
.dkwhead:hover{background:var(--bg)}.dkwhead .note{font-size:.7rem}
.dkwhead.now{border-bottom-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.dkwhead.closed{color:var(--muted)}
.dkwk .dktime{position:sticky;inset-inline-start:0;background:var(--surface);z-index:2}
.dkblk.wk{font-size:.7rem;padding:0 4px;margin:1px}.dkblk.wk .note{font-size:.64rem}
.dkwk.dragging .dkcell[data-dk-drop],.dkday.dragging .dkcell[data-dk-drop],.ubgrid.dragging .ubcell[data-ub-drop]{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.dkcell.over,.ubcell.over{background:color-mix(in srgb,var(--accent) 30%,transparent)!important;outline:1px solid var(--accent)}
.dkblk[draggable=true]{cursor:grab}
@media(max-width:700px){.dkwk{--dkwmin:130px;--dkwrow:7px}}
/* تختهٔ یونیت‌ها روی لپ‌تاپ: اسم بیمار (پیوند پرونده) + برچسب دکتر + ساعت و نوع خدمت */
.ubblock.full.withpat{flex-wrap:wrap;align-items:baseline;align-content:flex-start;column-gap:6px;padding:1px 6px;cursor:pointer;overflow:hidden}
.ubpat{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}
.ubpat:hover{color:var(--accent)}
.ubdoc{font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.ubmeta{flex:0 0 100%;width:100%;font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
/* کامپیوتر: «تمام‌عرض» اختیاری برای تختهٔ یونیت‌ها (تقویم مدیر و «تقویم من») و میز نوبت‌ها؛ فرم‌ها و متن‌ها همیشه همان عرض خوانا */
/* پیش‌فرض همان عرض قبلی؛ فقط وقتی کاربر دکمهٔ «تمام‌عرض» را زده باشد (html.fullw، روی همان دستگاه) */
@media (min-width:1000px){
  html.fullw .ub,html.fullw .desk{box-sizing:border-box;width:min(calc(100vw - 48px),2000px);margin-inline:calc((100% - min(calc(100vw - 48px),2000px)) / 2)}
  html.fullw .sheet-card.page>#pageBody:has(>.desk),html.fullw .sheet-card.page>.pagehead:has(+#pageBody>.desk){max-width:none}
}
.fwbtn{display:none}
@media (min-width:1000px){.fwbtn{display:inline-flex;align-items:center;gap:4px}}
.appicklist{max-height:420px;overflow-y:auto}
.dksugg{max-height:360px;overflow-y:auto}
/* نمودار دندان‌ها (teeth.js) */
.tc-scroll{overflow:hidden}
.tc-svg{display:block;width:100%;max-width:760px;height:auto;margin:0 auto;direction:ltr;touch-action:manipulation}
.tc-tooth{cursor:pointer;outline:none}
.tc-tooth .crown{fill:var(--tc-fill);stroke:var(--muted);stroke-width:1.4;vector-effect:non-scaling-stroke;transition:filter .12s}
.tc-todo .crown{fill:var(--tc-todo)} .tc-prog .crown{fill:var(--tc-prog)} .tc-done .crown{fill:var(--tc-done)} .tc-mixed .crown{fill:url(#tcMix)}
.tc-tooth:hover .crown{filter:brightness(.93)}
.tc-tooth:focus-visible .crown,.tc-tooth.sel .crown{stroke:var(--accent);stroke-width:3}
.tc-tooth .hit{fill:transparent}
.tc-tooth .tn{fill:var(--muted);font-size:15px;font-weight:600;font-family:inherit}
.tc-tooth.sel .tn{fill:var(--accent);font-weight:700}
.tc-tooth .tb{fill:var(--surface);stroke:var(--ink);stroke-width:1}
.tc-tooth .tbn{fill:var(--ink);font-size:13px;font-weight:700;font-family:inherit}
.tc-mid{stroke:var(--line);stroke-dasharray:3 4}
.tc-side{fill:var(--muted);font-size:11px;font-family:inherit}
.tc-legend{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:.78rem;color:var(--muted);margin:4px 0}
.tc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px}
.tc-head .btn{padding:3px 10px;font-size:.85rem}
.tc-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px;border:1px solid var(--muted)}
.tc-legend .l-todo{background:var(--tc-todo)} .tc-legend .l-prog{background:var(--tc-prog)} .tc-legend .l-done{background:var(--tc-done)} .tc-legend .l-none{background:var(--tc-fill)} .tc-legend .l-mixed{background:linear-gradient(90deg,var(--tc-todo) 50%,var(--tc-done) 50%)}
/* نقشهٔ زیرشاخهٔ هر دندان (تعرفه): ۸ رنگ از همان پالت تقویم (APC_COLORS)؛ عدد زیرشاخه هم روی دندان هست */
.tv-c0 .crown,.tv-sw.c0{fill:#6366F1;background:#6366F1} .tv-c1 .crown,.tv-sw.c1{fill:#10B981;background:#10B981}
.tv-c2 .crown,.tv-sw.c2{fill:#F59E0B;background:#F59E0B} .tv-c3 .crown,.tv-sw.c3{fill:#F43F5E;background:#F43F5E}
.tv-c4 .crown,.tv-sw.c4{fill:#0EA5E9;background:#0EA5E9} .tv-c5 .crown,.tv-sw.c5{fill:#8B5CF6;background:#8B5CF6}
.tv-c6 .crown,.tv-sw.c6{fill:#14B8A6;background:#14B8A6} .tv-c7 .crown,.tv-sw.c7{fill:#EC4899;background:#EC4899}
.tv-none .crown,.tv-sw.none{fill:var(--line);background:var(--line)} .tv-dim{opacity:.25}
.tc-tooth.sel .crown{stroke:var(--ink);stroke-width:3.5}
.tv-sw{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-inline-end:6px;border:1px solid var(--muted)}
.tv-leg{display:flex;gap:6px;font-size:.85rem;align-items:flex-start;width:100%;text-align:start;background:none;border:0;border-top:1px solid var(--line);padding:6px 2px;color:inherit;font:inherit;cursor:pointer}
.tv-leg.on{background:var(--surface);font-weight:600} .tv-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.tv-chips .btn{padding:3px 10px;font-size:.85rem}
/* هر زیرشاخه یک خط: نام (تا دو خط، ریز) | زمان | تعرفه | حذف؛ کادرها هم‌اندازهٔ متن فهرست */
.tv-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 104px 40px;gap:6px;align-items:center;border-top:1px solid var(--line);padding:5px 0;font-size:.85rem}
.tv-row input{font-size:.85rem;padding:4px 6px;min-width:0;width:100%}
.tv-row .x{font-size:.75rem;padding:2px 4px}
.tv-name{font-size:.8rem;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.tv-hd{border-top:0;padding:2px 0;color:var(--muted);font-size:.72rem}
@media (prefers-reduced-motion:reduce){.tc-tooth .crown{transition:none}}
/* گزارش مصرف انبار: هر نفر یک ردیف جمع‌شده که باز می‌شود (invuseui.js) */
.iug{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:var(--surface);overflow:hidden}
.iug>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:10px 12px}
.iug>summary::-webkit-details-marker{display:none}
.iug>summary::before{content:"‹";color:var(--muted);transition:transform .15s}
.iug[open]>summary::before{transform:rotate(-90deg)}
.iug .iug-i{flex:1 1 100%;font-size:.88rem;color:var(--muted)}
.iug .scroll{padding:0 8px 8px}
.iut th{white-space:nowrap}
.iut td{vertical-align:top}
@media (prefers-reduced-motion:reduce){.iug>summary::before{transition:none}}
.iutable tbody.iud{border-top:2px solid var(--line)}
.iutable td{vertical-align:top}


/* گزارش دکترها (invchart.js) */
.iuc-wrap{overflow-x:auto;margin:4px 0}
.iuc-svg{display:block;direction:ltr;min-width:560px;width:100%;max-width:980px;margin-inline:auto;height:auto}   /* direction:ltr تا text-anchor در صفحهٔ راست‌به‌چپ وارونه نشود */
.iuc-ax{fill:var(--muted);font-size:11px}
.iuc-grid{stroke:var(--line);stroke-width:1}
.iuc-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface,var(--bg));color:inherit;font:inherit;padding:3px 12px;border-radius:999px;cursor:pointer}
.iuc-chip[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:700}
.iuc-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:6px;vertical-align:middle}
.iuc-chip .iuc-dot{margin:0}
.iuc-sum td{font-weight:700;border-top:2px solid var(--line)}

/* صفحه‌بندی مشترک: آمار راست، کنترل چپ؛ در گوشی دو ردیف */
.uipager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:8px 0;direction:rtl}
.uipager p{margin:0}
.uipager-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}
.uipager .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:6px 12px;font-size:.9rem}
.uipager-position{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:.9rem}
.uipager-position select{width:auto;min-width:58px;min-height:44px;margin:0;font:inherit}
@media(max-width:600px){
  .uipager{flex-direction:column;align-items:stretch;gap:8px}
  .uipager-summary{text-align:right}
  .uipager-controls{justify-content:space-between;gap:6px}
  .uipager .btn{padding:6px 10px}
}
.uidate{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
/* پیکان‌های UI.prev / UI.next (۴.۳۹): کمی درشت‌تر و هم‌تراز با متن دکمه */
.arw{display:inline-block;vertical-align:-0.1em;flex:none}
/* بیمه (insclaimsui.js): ردیف‌های دوخطی لیست، پنجرهٔ کسورات، کارت بیمهٔ بیمار؛ ستون‌های کم‌اهمیت جدول روی گوشی پنهان می‌شوند */
.insrow{border-bottom:1px solid var(--line);padding:8px 4px}.insrow:last-child{border-bottom:0}.insrow.cur{background:var(--bg)}
.insrow .l1{display:flex;gap:4px 12px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.insrow .l2{display:flex;gap:4px 14px;flex-wrap:wrap;align-items:center;margin-top:4px}
.insdlg{position:sticky;top:56px;z-index:3;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.insrt .tabs{margin-bottom:10px}
.inscards{display:grid;gap:8px;grid-template-columns:1fr;margin:0 0 8px}.inscards .panel{margin:0;padding:12px}
@media (min-width:700px){.inscards{grid-template-columns:1fr 1fr}}
.inqpanel>div{border-top:0!important;margin-top:0!important;padding-top:0!important}
@media (max-width:640px){.hide-sm{display:none}}

/* ---------- رادیوگرافی: برچسب تصویر، تصویر کوچک در ردیف لیست بیمه، نمایش بزرگ (۴.۴۱) ---------- */
.xrf{display:flex;flex-direction:column;gap:2px}
.xrf select,.xrf input{font-size:.85rem}
.xredit{margin-top:8px}
.xrth{border:0;padding:0;background:none;cursor:zoom-in;vertical-align:middle;display:inline-block}
.xrth img{height:28px;border-radius:4px;display:block;background:#000}
.xrbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.88);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:12px;cursor:zoom-out}
.xrbox img{max-width:100%;max-height:80vh;border-radius:8px}
.imp-opgs figcaption{flex-wrap:wrap;gap:2px 6px}
a.chip{text-decoration:none}

/* ---------- برگهٔ چاپ لیست بیمه (۴.۴۳؛ insclaimsui.js:inscPrintHtml). فقط داخل #printArea است؛
   در چاپ: A4 افقی، سرستون هر صفحه، ردیف و امضا نمی‌شکند ---------- */
.inslist{font-family:Vazirmatn,Tahoma,sans-serif;color:#000;background:#fff;font-size:10.5px;line-height:1.5}
.inslist .head{text-align:center;border-bottom:1.5px solid #000;padding-bottom:4px;margin-bottom:6px}
.inslist .t1{font-size:16px;font-weight:800}.inslist .t2{font-size:12px;margin-top:2px}
.inslist .meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px;font-size:10px}
.inslist table{border-collapse:collapse;width:100%}
.inslist th,.inslist td{border:1px solid #555;padding:3px 5px;text-align:right;vertical-align:middle}
.inslist th{background:#eee;font-weight:700}
.inslist td.c{text-align:center}.inslist td.n{text-align:left;direction:ltr}
.inslist .sum{font-weight:700;background:#f6f6f6}
.inslist thead{display:table-header-group}.inslist tfoot{display:table-footer-group}
.inslist tr{break-inside:avoid;page-break-inside:avoid}
.inslist .sig{display:flex;justify-content:space-around;margin-top:14mm;padding-top:2mm;break-inside:avoid;page-break-inside:avoid}
.inslist .sig div{min-width:60mm;border-top:1px dotted #777;padding-top:3px;text-align:center}
.inslist .xratt{break-before:page;page-break-before:always;margin-top:4mm}
.inslist .xrh{font-size:13px;font-weight:800;border-bottom:1.5px solid #000;padding-bottom:3px;margin-bottom:6px}
.inslist .xrblk{break-inside:avoid;page-break-inside:avoid;border:1px solid #888;padding:5px;margin-bottom:6px}
.inslist .xrimg{max-width:45%;max-height:110mm;margin:3px;border:1px solid #888}
@media print{@page :has(.inslist){size:A4 landscape;margin:9mm}}
/* چاپ گزارش بیمه (insreportui.js:insReportPrintHtml): همان قالب لیست، عمودی؛ پنل‌های گزارش بدون قاب، جدول خلاصه بالا */
.insrep .panel{border:0;padding:0;margin:0 0 8px;box-shadow:none;background:#fff}
.insrep .kvgrid{display:flex;flex-wrap:wrap;gap:6px}.insrep .kvgrid .kv{border:1px solid #888 !important;padding:4px 8px !important;color:#000}
.insrep table.kvp{width:auto;margin-bottom:8px}.insrep table.kvp th{background:#eee}.insrep .chip{border:1px solid #777;padding:0 4px;border-radius:6px}
.insrep .scroll{overflow:visible}.insrep .note{color:#444}.insrep strong{display:block;font-size:12px;margin:6px 0 2px}
@media print{@page :has(.insrep){size:A4 portrait;margin:10mm}}
/* فیش حقوق (payslip.js): هر فیش یک برگهٔ A4 عمودی؛ حاشیه داخل خود برگه است */
@media print{@page :has(.psl){size:A4 portrait;margin:0} .psl section{min-height:296mm;box-sizing:border-box}}
.insrep tfoot td{font-weight:700;border-top:2px solid #000}

/* ماژول یونیت‌ها: دایرهٔ هر یونیت (رنگ = tone وضعیت، داخلش شلوغی روز) و خانهٔ خارج از سرویس در تقویم ماهانهٔ یونیت */
.ucircles{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:8px 0}
.ucircles.sm{gap:8px;margin:0 0 8px}
.ucircle{width:96px;height:96px;border-radius:50%;border:3px solid currentColor;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;padding:0;text-align:center}
.ucircle b{font-size:.9rem;line-height:1.2;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ucircle span{font-size:1.05rem;font-weight:800}
.ucircle.sm{width:54px;height:54px;border-width:2px}
.ucircle.sm b{font-size:.78rem}.ucircle.sm span{font-size:.78rem}
button.ucircle{cursor:pointer}button.ucircle:hover{filter:brightness(.95)}
.hrcell.unoff{opacity:.7;background:repeating-linear-gradient(45deg,transparent 0 6px,color-mix(in srgb,var(--off) 35%,transparent) 6px 8px)}
.udot{display:inline-block;width:9px;height:9px;border-radius:50%;background:currentColor;margin-inline-end:4px;vertical-align:middle}
.hrcell.umcell{justify-content:flex-start;cursor:default;min-height:64px}
.umdots{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}
.umini{width:30px;height:30px;border-radius:50%;border:2px solid currentColor;padding:0;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;background:none}
.umini b{font-size:.68rem}.umini small{font-size:.5rem}
.umcell .hrh{display:block!important;font-size:.7rem}
@media(max-width:700px){.umini{width:26px;height:26px;border-width:1.5px}.umini b{font-size:.6rem}.umini small{font-size:.45rem}}

/* مقایسهٔ یونیت‌ها و تقویم هفتگی (unitsui.js) */
td.unbest{background:color-mix(in srgb,var(--ok) 18%,transparent)}
td.unworst{background:color-mix(in srgb,var(--warn) 16%,transparent)}
.unbars{margin-top:6px}.unbar{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:.85rem}
.unbar span{flex:0 0 90px}.unbar i{display:block;height:12px;border-radius:6px;background:var(--accent);min-width:2px}.unbar b{white-space:nowrap}
.unmarks{display:flex;gap:2px;justify-content:center;font-size:.7rem;min-height:.9rem}
.unwrow{border-top:1px solid var(--line);padding:6px 4px;display:grid;gap:4px}.unwrow.now{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.umbadge{font-size:.5rem;font-style:normal;line-height:1}
.untrack{flex:1 1 auto;display:block;height:12px;border-radius:6px;background:var(--line);overflow:hidden}.untrack i{height:100%}
.unmb{display:inline-block;width:46px;height:8px;border-radius:4px;background:var(--line);overflow:hidden;vertical-align:middle;margin-inline-end:6px}
.unmb i{display:block;height:100%;background:var(--accent)}.unmb.bad i{background:var(--warn)}
tr.untot td{font-weight:700;border-top:2px solid var(--line)}
td:has(>.unmb){white-space:nowrap}

.umini.inactive{opacity:.3}

/* فرم حساب مرخصی: برچسب و ورودی در موبایل روی خط جدا. */
.lvform>label,.lvform>.row:not(.lvchecks)>label{display:flex;flex-direction:column;gap:6px;margin:12px 0;min-width:0}
.lvform>.row:not(.lvchecks)>label{flex:1 1 180px}
.lvform>label>input,.lvform>label>select,.lvform>.row:not(.lvchecks) input{width:100%;box-sizing:border-box}
.lvform .lvchecks{margin:12px 0;gap:12px}
table.av.lvledger{min-width:0}table.lvledger td:nth-child(2){overflow-wrap:anywhere}
/* نوبت‌های یک پرونده: فیلترها در عرض کم زیر هم قرار می‌گیرند. */
.pa-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0}
.pa-filters label{display:flex;flex-direction:column;gap:6px}
.pa-filters select{max-width:100%}
.pa-book-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px}
.pa-book-fields>label{display:flex;flex-direction:column;gap:6px;min-width:0}
.pa-book-fields :is(input,select,textarea){width:100%;box-sizing:border-box}
.pa-book-wide{grid-column:1/-1}
#paNote{width:100%;box-sizing:border-box;min-height:110px;margin-top:8px}
