/* Responsive navigation and RTL layout overrides. */
.menu-toggle{display:none}.mobile-nav{display:none}
.contact-cards{display:none}.appointment-button{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit}.appointment-button:hover{background:#f7fafb}
/* Desktop RTL: flip sidebar to right, mirror active-nav indicator */
.rtl .app-shell{direction:rtl}
.rtl .nav-item{border-left:none;border-right:2px solid transparent}
.rtl .nav-item.active{border-left-color:transparent;border-right-color:var(--accent-active)}
/* main follows the page direction (rtl). User-typed text (names, notes, English model names)
   takes its own direction per paragraph so punctuation and numbers land correctly. */
.rtl main :is(p,small,li,dd,td,.sub,textarea,input[type=text],input[type=search],input[type=email],input:not([type])){unicode-bidi:plaintext}
.rtl .pipeline-stats .mini-stat:nth-child(n){border-left:0;border-right:3px solid var(--amber)}
.rtl .pipeline-stats .mini-stat:nth-child(2){border-right-color:var(--red)}
.rtl .pipeline-stats .mini-stat:nth-child(3){border-right-color:var(--purple)}
.rtl .visit-list{border-left:0;border-right:3px solid var(--cyan);padding:0 15px 0 0}
.rtl .modal-actions{justify-content:flex-start}
/* Direction arrows in back/next links point the reading direction. */
.rtl .flip-rtl{display:inline-block;transform:scaleX(-1)}
.rtl .fab-action{text-align:right}
@media(max-width:960px){
  .side:after{display:none}
  .menu-toggle{display:block;position:fixed;z-index:21;top:13px;left:13px;border:0;background:var(--navy);padding:9px 11px;border-radius:8px;color:#fff;font-size:17px;line-height:1;cursor:pointer}
  .side{z-index:20;box-shadow:var(--shadow);transition:left .25s ease}
  .rtl .side{left:auto;right:-270px;transition:right .25s ease}
  .rtl .side.open{left:auto;right:0}
  .rtl .menu-toggle{left:auto;right:13px}
  .menu-toggle{transition:transform .2s ease,opacity .2s ease}
  body.menu-scrolled-away .menu-toggle[aria-expanded="false"]{transform:translateY(-72px);opacity:0;pointer-events:none}
  header{padding-left:46px}
  .rtl header{padding-left:0;padding-right:46px}
  .board{grid-template-columns:1fr;overflow:visible;padding-bottom:0}
  .stage{min-height:0;padding:12px}.stage:empty{display:none}
  .deal{padding:15px;margin:10px 0}.deal .deal-footer{gap:10px}.deal .next{min-height:42px;padding:10px 12px}
  .mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:2px;left:0;right:0;bottom:0;z-index:18;background:rgba(255,255,255,0.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(231,229,228,0.7);box-shadow:0 -4px 18px rgba(20,48,63,.07);padding:5px max(6px,env(safe-area-inset-left)) calc(5px + env(safe-area-inset-bottom))}
  .mobile-nav .nav-item{color:#526168;display:grid;justify-items:center;gap:2px;text-align:center;padding:5px 2px;font-size:12px;line-height:1.05;border-radius:8px;min-height:48px}.mobile-nav .nav-item.active{background:#e8f6f7;color:var(--blue);border-top:2px solid var(--blue);margin-top:-2px}.mobile-nav .nav-icon{font-size:17px;line-height:18px}
  .contacts-table .table{display:none}.contact-cards{display:grid;gap:8px}.contact-card{width:100%;min-height:74px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--ink);font:inherit}.contact-card span{display:grid;gap:4px}.contact-card small{color:var(--muted);font-size:12px}.contact-card> b{font-size:25px;color:var(--blue);font-weight:400}
  .rtl .appointment-button,.rtl .contact-card{text-align:right}
}
@media(max-width:520px){
  html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
  .rtl .bar-row{grid-template-columns:35px 1fr 100px}
  .modal{padding:18px;border-radius:14px}
  .modal-actions{flex-wrap:wrap}
  .modal-actions button{flex:1;min-width:120px}
  main{padding:18px 14px 88px}.card{border-radius:12px}.row{align-items:flex-start}.primary,.secondary,.danger{min-height:44px}.field input,.field select,.field textarea{min-height:44px;font-size:16px}.table{min-width:620px}.table{display:block;overflow-x:auto}.quick{min-height:76px}
  .filter{min-height:44px;padding:10px 14px}
  .back-button{min-height:44px;display:inline-flex;align-items:center}
  .action-done-btn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
  .workflow-path{grid-template-columns:repeat(4,minmax(70px,1fr));overflow-x:auto;margin-inline:-2px;padding:2px}.workflow-step{min-width:70px;min-height:54px;padding:6px;flex-direction:column;gap:3px;font-size:12px;text-align:center}.rtl .workflow-step{flex-direction:column}.previsit-brief{grid-template-columns:1fr}.previsit-brief strong{grid-column:auto}.profile-actions{display:grid;grid-template-columns:1fr}.profile-actions .primary,.profile-actions .secondary{width:100%}#global-fab-root{right:12px}.rtl #global-fab-root{right:auto;left:12px}.fab-sheet{max-width:calc(100vw - 28px)}
}

@media(max-width:360px){main{padding-left:10px;padding-right:10px}.header-actions{max-width:150px;flex-wrap:wrap;justify-content:flex-end}.workflow-path{grid-template-columns:repeat(4,68px)}.modal{width:100%;max-width:calc(100vw - 16px)}.quick-actions,.metric-grid{grid-template-columns:1fr}.row{min-width:0}.row>*{min-width:0}.planner-local-actions{display:grid;width:100%;gap:8px}.planner-local-actions button{width:100%}}

/* Keep offline queue rows readable on narrow phones and in RTL. */
@media(max-width:960px){.queue-row{min-width:0;grid-template-columns:minmax(0,1fr) auto auto}.queue-row>div{min-width:0}.queue-row b,.queue-row small{overflow-wrap:anywhere;word-break:break-word}.rtl .queue-row{text-align:right}}
@media(max-width:520px){.queue-row{grid-template-columns:minmax(0,1fr) auto}.queue-row .tag{justify-self:end}.queue-row button{grid-column:1/-1;width:100%}}
/* Arabic: lines that inherit plain "start" alignment line up on the right (the parent's start), even when the
   line itself is English (unicode-bidi:plaintext above keeps its word order). Zero specificity: any explicit
   text-align on the element (center, etc.) still wins. */
:where(.rtl main) :where(p,small,li,dd,td,.sub,[dir=auto]){text-align:-webkit-match-parent;text-align:match-parent}
/* Drawer backdrop: while the drawer is open, everything outside it (incl. the bottom nav) is covered; a tap closes the drawer. */
.nav-backdrop{display:none}
@media(max-width:960px){
  /* The backdrop stays (and keeps catching taps) until the drawer has fully slid out (.25s), then hides. */
  .nav-backdrop{position:fixed;inset:0;z-index:19;background:rgba(0,0,0,.45);display:block;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s linear .25s;border:0;padding:0;margin:0;border-radius:0;width:100%;height:100%;cursor:default}
  .nav-backdrop.open{visibility:visible;opacity:1;transition:opacity .25s ease,visibility 0s}
  /* Keep Sign out well above the bottom edge (and any bottom bar). */
  .side{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
  .user-card .auth-trigger{margin-top:6px}
}
