/* Zahy app shell, on top of ui.css: the sidebar (sections, the section's history, the account menu), the
   page frame and its header. Shared by every app page: the workspace (app.html) writes the sidebar in its markup,
   the other pages get it from assets/shell.js. */

/* ---------- layout ----------
   Physical, left to right: page · sidebar. The page is RTL, so the grid runs LTR and each pane switches back. */
.app{--sbw:var(--side-w,260px);--side-t:.32s cubic-bezier(.4,0,.2,1);height:100%;display:grid;grid-template-columns:minmax(0,1fr) var(--sbw);direction:ltr;
  transition:grid-template-columns var(--side-t);background:var(--surface)}
.app.collapsed{--sbw:64px}
.app>.main,.side{direction:rtl;min-width:0;min-height:0}
.app>.main{grid-column:1;grid-row:1}
.app>.side{grid-column:2;grid-row:1}
.app>.main{position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--surface)}
body{overflow:hidden}

/* ---------- sidebar ---------- */
.side{position:relative;z-index:20;display:flex;flex-direction:column;background:var(--side-bg);border-left:1px solid var(--line)}
.side-top{display:flex;align-items:center;gap:6px;height:var(--head-h);padding:0 12px 0 10px;flex:none}
.side .logo{display:flex;align-items:center;gap:10px;min-width:0;flex:1;height:38px;padding:0 6px;border-radius:var(--r-md);text-decoration:none;color:var(--ink);
  font-family:var(--font-brand);font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}
.side .logo img{width:26px;height:26px;flex:none;filter:drop-shadow(0 2px 6px rgba(114,50,242,.25))}
@media (prefers-reduced-motion:no-preference){.side .logo img.spin{animation:logoSpin var(--side-t)}}
@keyframes logoSpin{to{transform:rotate(360deg)}}

.side-nav{display:grid;gap:2px;padding:4px 10px 12px;flex:none}
.side .row{position:relative;display:flex;align-items:center;gap:11px;height:36px;padding:0 10px;border-radius:var(--r-md);border:0;background:transparent;color:var(--ink-2);
  font-size:14px;font-weight:500;text-decoration:none;text-align:start;white-space:nowrap;width:100%;transition:background-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}
.side .row svg{width:18px;height:18px;flex:none;color:var(--stone);transition:color var(--t-fast)}
.side .row:hover{background:var(--hover);color:var(--ink)}
.side .row:hover svg{color:var(--ink-2)}
.side .row.on,.side .row[aria-current="page"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--line),var(--sh-xs)}
.side .row.on svg,.side .row[aria-current="page"] svg{color:var(--primary)}
/* the section's "new" action reads as a button, a step above the links */
.side .row.primary{margin-bottom:2px;background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--sand),var(--sh-xs)}
.side .row.primary svg{color:var(--primary)}
.side .row.primary:hover{background:var(--surface);box-shadow:0 0 0 1px var(--line-strong),var(--sh-sm)}
.side .row.primary:hover svg{color:var(--primary)}
#searchBtn.on{background:var(--hover);color:var(--ink)}
.side .row .kbd-k{margin-inline-start:auto;display:inline-flex;gap:3px;direction:ltr;font:500 11px/1 var(--font-mono);color:var(--faint);letter-spacing:.02em}
.side .row .badge{margin-inline-start:auto;font-size:11px;font-weight:600;color:var(--primary-ink);background:var(--primary-soft);border-radius:var(--r-full);padding:1px 8px}
.nav-sep{height:1px;background:var(--line);margin:6px 10px}
/* collapsed: a row with unread items shows a dot instead of the count */
.app.collapsed .side .row.dot::after{content:"";position:absolute;top:7px;left:9px;width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px var(--side-bg)}

.side .tip{position:absolute;right:calc(100% + 10px);top:50%;transform:translate(4px,-50%);white-space:nowrap;background:#18181C;color:#fff;font-size:12.5px;font-weight:500;
  padding:5px 10px;border-radius:var(--r-sm);opacity:0;pointer-events:none;transition:opacity var(--t-fast),transform var(--t-fast);z-index:30;display:none;box-shadow:var(--sh-md)}

/* the section's history */
.side-sec{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:6px 10px 6px}
.side-sec .sec-h,.side .sec-h{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--faint);padding:8px 10px 6px;letter-spacing:.01em}
.hist{overflow-y:auto;display:grid;gap:1px;align-content:start;margin:0 -4px;padding:0 4px 8px}
.h-item{position:relative;display:flex;align-items:center;gap:8px;min-height:34px;padding:4px 10px;border-radius:var(--r-sm);color:var(--ink-2);font-size:13.5px;
  text-decoration:none;border:0;background:none;text-align:start;width:100%;transition:background-color var(--t-fast)}
.h-item:hover{background:var(--hover);color:var(--ink)}
.h-item.on{background:var(--surface);color:var(--ink);font-weight:500;box-shadow:0 0 0 1px var(--line),var(--sh-xs)}
.h-item .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h-item .ct{font-size:11.5px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.h-item .dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--ghost)}
.h-item .dot.running,.h-item .dot.active,.h-item .dot.creating,.h-item .dot.in_review{background:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.h-item .dot.done,.h-item .dot.published{background:var(--ok)}
.h-item .dot.failed{background:var(--bad)}
.h-group{font-size:11.5px;font-weight:600;color:var(--faint);padding:12px 10px 4px}
.hsearch{height:34px;margin:0 2px 8px;border-radius:var(--r-md);border:1px solid var(--sand);background:var(--surface);padding:0 10px;font-size:13px;outline:0}
.hsearch:focus{border-color:var(--primary);box-shadow:var(--ring)}
.h-empty{font-size:13px;color:var(--faint);padding:6px 10px;line-height:1.6}

/* account */
.acct{position:relative;padding:10px;border-top:1px solid var(--line);margin-top:auto;flex:none}
.acct-bar{display:flex;align-items:center;gap:4px;direction:rtl}
.acct-btn{display:flex;align-items:center;gap:10px;flex:1;width:100%;min-width:0;height:48px;padding:0 8px;border-radius:var(--r-md);border:0;background:transparent;text-align:start;transition:background-color var(--t-fast)}
.acct-btn:hover,.acct.open .acct-btn{background:var(--hover)}
.av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--grad);color:#fff;font-family:var(--font-ui);font-weight:700;font-size:13.5px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.av.sm{width:34px;height:34px}
.acct-btn .who{display:grid;min-width:0;line-height:1.3;flex:1;gap:1px}
.acct-btn .who b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.acct-btn .who small{font-size:12px;color:var(--stone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acct-btn .chev{width:16px;height:16px;color:var(--faint);flex:none;transition:transform var(--t)}
.acct.open .acct-btn .chev{transform:rotate(180deg)}
.acct-btn.on{background:var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh-xs)}

/* menus: the account menu, a conversation's menu, submenus */
.acct-menu{position:absolute;bottom:calc(100% + 6px);right:10px;left:10px;min-width:240px;background:var(--surface);border-radius:var(--r-xl);padding:6px;direction:rtl;
  box-shadow:var(--sh-pop);opacity:0;visibility:hidden;transform:translateY(6px) scale(.985);transform-origin:bottom right;
  transition:opacity var(--t-fast),transform var(--t) var(--ease),visibility 0s var(--t);z-index:30}
.acct.open .acct-menu{opacity:1;visibility:visible;transform:none;transition:opacity var(--t-fast),transform var(--t) var(--ease)}
.am-head{display:flex;align-items:center;gap:11px;padding:10px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.am-head>span:last-child{min-width:0}
.am-head b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-head small{display:block;font-size:12px;color:var(--stone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi{position:relative;display:flex;align-items:center;gap:11px;width:100%;height:36px;padding:0 10px;border-radius:var(--r-sm);border:0;background:transparent;color:var(--ink-2);
  font-size:14px;text-decoration:none;text-align:start;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast)}
.mi>svg:first-child{width:17px;height:17px;flex:none;color:var(--stone)}
.mi:hover,.mi:focus-visible,.mi.has-sub:focus-within{background:var(--soft);color:var(--ink);outline:0}
.mi:hover>svg:first-child{color:var(--ink-2)}
.mi>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi small{font-size:12px;color:var(--faint);white-space:nowrap}
.mi kbd{margin-inline-start:auto}
.mi .go{width:14px;height:14px;color:var(--faint);flex:none}
.mi[aria-disabled="true"]{opacity:.5;cursor:default}
.mi[aria-disabled="true"]:hover{background:transparent}
.mi.danger,.mi.danger>svg:first-child{color:var(--bad)}
.mi.danger:hover{background:var(--bad-soft)}
.acct-menu hr,.h-menu hr{border:0;border-top:1px solid var(--line);margin:5px 4px}
.acct-menu .sub{position:absolute;right:calc(100% + 6px);bottom:-6px;min-width:210px;background:var(--surface);border-radius:var(--r-lg);padding:6px;box-shadow:var(--sh-pop);
  opacity:0;visibility:hidden;transition:opacity var(--t-fast),visibility 0s var(--t-fast)}
.acct-menu .sub::before{content:"";position:absolute;inset:0 -10px 0 100%}
.acct-menu .has-sub:hover>.sub,.acct-menu .has-sub:focus-within>.sub{opacity:1;visibility:visible;transition:opacity var(--t-fast)}
.acct-menu .sub .ck{width:15px;height:15px;color:var(--primary);flex:none}

/* collapsed: icons only, labels become tooltips */
.app.collapsed .side .lbl,.app.collapsed .side-sec,.app.collapsed .side .row .badge,.app.collapsed .side .row .kbd-k,.app.collapsed .acct-btn .who,.app.collapsed .acct-btn .chev,
.app.collapsed .acct-gear,.app.collapsed .nav-sep{display:none}
.app.collapsed .side-top{flex-direction:column;justify-content:center;padding:0}
.app.collapsed .side .logo{flex:none;padding:0 6px}
.app.collapsed .side-nav{padding:4px 12px}
.app.collapsed .side .row{justify-content:center;padding:0;width:40px;margin:0 auto}
.app.collapsed .side .row.primary{margin-bottom:6px}
.app.collapsed .side .tip{display:block}
.app.collapsed .side .row:hover .tip{opacity:1;transform:translate(0,-50%)}
.app.collapsed .side{overflow:visible}
.app.collapsed .acct{padding:10px 0}
.app.collapsed .acct-bar{justify-content:center}
.app.collapsed .acct-btn{flex:none;justify-content:center;padding:0;width:44px;height:44px}
.app.collapsed .acct-menu{left:auto;right:10px;width:260px}
@media (min-width:901px){
  .app.collapsed #sideToggle{display:none}
  .app.collapsed .side .logo{cursor:pointer;height:40px;padding:0 7px}
  .app.collapsed .side .logo:hover{background:var(--hover)}
}
.side-open{display:none}

/* ---------- page header and body ---------- */
.page-head{min-height:var(--head-h);display:flex;align-items:center;gap:12px;padding:10px 24px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.88);
  backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);flex-wrap:wrap;flex:none;position:relative;z-index:5}
.page-head h1{font-size:17px;font-weight:700;letter-spacing:-.005em}
.page-head .end{margin-inline-start:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.page-body{flex:1;overflow-y:auto;min-height:0;background:var(--app)}

/* ---------- phones: the sidebar slides over the page ---------- */
@media (max-width:900px){
  .app,.app.collapsed{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;inset:0 0 0 auto;width:min(300px,86vw);z-index:45;transform:translateX(101%);visibility:hidden;transition:transform .28s var(--ease),visibility 0s .28s;background:var(--side-bg)}
  .app>.side{grid-column:auto;grid-row:auto}
  .app.side-open .side{transform:none;visibility:visible;transition:transform .28s var(--ease);box-shadow:-24px 0 60px -20px rgba(18,18,28,.35)}
  .app.side-open::after{content:"";position:fixed;inset:0;background:rgba(18,18,28,.32);backdrop-filter:blur(2px);z-index:44;animation:veilIn .2s ease both}
  .app.collapsed .side .lbl,.app.collapsed .side-sec,.app.collapsed .side .row .kbd-k{display:revert}
  .app.collapsed .side-sec{display:flex}
  .app.collapsed .acct-btn .who{display:grid}
  .app.collapsed .acct-btn .chev,.app.collapsed .acct-gear,.app.collapsed .nav-sep{display:revert}
  .app.collapsed .acct-btn{flex:1;justify-content:flex-start;padding:0 8px;width:auto}
  .app.collapsed .side-top{flex-direction:row;justify-content:flex-start;padding:0 12px 0 10px}
  .app.collapsed .side-nav{padding:4px 10px 12px}
  .app.collapsed .side .row{justify-content:flex-start;padding:0 10px;width:100%}
  .app.collapsed .acct{padding:10px}
  .app.collapsed .acct-menu{left:10px;width:auto}
  .side-open{display:grid}
  .side .row .kbd-k{display:none}
  .page-head{padding:8px 14px;gap:8px}
}
@keyframes veilIn{from{opacity:0}}

/* ---------- parts only the phone version shows (mobile.js builds them, mobile.css lays them out) ---------- */
@media (min-width:901px){.m-tabbar,.m-av,.m-hist,.m-brand,.m-br,.m-more,.m-eddock,.m-sheet,.m-scrim{display:none!important}}

/* ---------- «إنشاء» beside a section's history heading ---------- */
.sec-h .sec-new{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px 0 8px;margin-inline-start:auto;border-radius:99px;color:var(--ink-2);
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--sand);font-size:12px;font-weight:600;text-decoration:none;letter-spacing:0;transition:background-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}
.sec-h .sec-new svg{width:13px;height:13px}
.sec-h .sec-new:hover{color:var(--primary-ink);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary-line)}

/* ---------- the studio's start screen: one prompt for designs, reels or an ad (studio-home.js) ---------- */
.ask-modes{display:none}
.main.blank .ask-modes{display:flex;gap:2px;width:max-content;max-width:100%;margin:0 auto 12px;padding:4px;border-radius:99px;background:rgba(255,255,255,.75);
  box-shadow:inset 0 0 0 1px var(--line),0 6px 18px -12px rgba(50,30,130,.35);overflow-x:auto;scrollbar-width:none;animation:rise .6s .03s cubic-bezier(.2,.8,.2,1) backwards}
.main.blank .ask-modes::-webkit-scrollbar{display:none}
.ask-modes button{flex:none;height:34px;padding:0 15px;border:0;border-radius:99px;background:transparent;color:var(--ink-3);font-size:13.5px;font-weight:600;white-space:nowrap;transition:background-color var(--t-fast),color var(--t-fast)}
.ask-modes button:hover{color:var(--ink)}
.ask-modes button[aria-selected="true"]{background:var(--ink);color:#fff}
/* designs-only controls step aside when the prompt is for a reel or an ad */
.main[data-ask="reels"].blank :is(#addPop,#scPop,#stPop,#crPop),.main[data-ask="ads"].blank :is(#addPop,#scPop,#stPop,#crPop),
.main[data-ask="reels"].blank .dock>.settings,.main[data-ask="ads"].blank .dock>.settings,
.main[data-ask="designs"].blank .starters .ask-extra,.main[data-ask="reels"].blank .starters>:not(.ask-extra),.main[data-ask="ads"].blank .starters>:not(.ask-extra){display:none!important}

/* the size picker shows the everyday sizes (and whatever is picked); «عرض كل المقاسات» opens the rest */
#szGrid:not(.all) .sz.extra:not(.on){display:none}
.sz-all{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:38px;margin-top:8px;border:0;border-radius:11px;background:var(--soft,#F1F2F5);
  color:var(--ink-2,#2B2B31);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .15s}
.sz-all:hover{background:var(--soft-2,#E9EAEE)}
.sz-all small{font-size:11.5px;font-weight:700;color:var(--stone,#6B6B75);background:rgba(20,20,22,.06);border-radius:99px;padding:1px 7px}
.sz-all svg{width:15px;height:15px}
