/* yo-chat.css — Yamama Office conversational panel */
html.yoc-on{--yoc-acc:#4b3fb0;--yoc-acc2:#6d5fe0;--yoc-bg:#fbfaff;--yoc-ink:#1d1b2e;--yoc-mut:#6b6880;--yoc-line:#e6e3f3;--yoc-h:36dvh}
html.yoc-on.yoc-desk:not(.yoc-collapsed)>body{margin-inline-end:var(--yoc-w)!important;width:auto!important;max-width:none!important;transform:translateZ(0);min-height:100vh;overflow-x:hidden}
html.yoc-on.yoc-phone>body{transform:translateZ(0);height:calc(100dvh - var(--yoc-h))!important;min-height:0!important;max-height:calc(100dvh - var(--yoc-h))!important;overflow:auto}
/* w111-propagate (shared root of w109's Meet-only fix): while the assistant is on, <body> carries transform:translateZ(0) (rules above), so every position:fixed dialog backdrop was sized to the whole page, not the window; on a long or scrolled page the dialog's heading and buttons sat off-screen. While a dialog backdrop is open the body drops the transform; with the panel docked on a desktop the backdrop stops at the panel's edge, so the dialog still centres over the document and the assistant stays usable beside it. */
html.yoc-on>body:has(>:is(.mback,.dlg-back,.yodlg-wrap,.pvov)){transform:none!important}
html.yoc-on.yoc-desk:not(.yoc-collapsed)>body>:is(.mback,.dlg-back,.yodlg-wrap,.pvov){inset-inline-end:var(--yoc-w)}
/* w111-propagate-sheets-20261102T0741Z */
html.yoc-on.yoc-phone.yoc-collapsed{--yoc-h:56px}
html.yoc-on.yoc-phone{overflow:hidden}
html.yoc-resizing,html.yoc-resizing *{cursor:col-resize!important;user-select:none!important}
.yoc{position:fixed;z-index:2147483000;inset-block:0;inset-inline-end:0;width:var(--yoc-w);display:flex;flex-direction:column;background:var(--yoc-bg);color:var(--yoc-ink);border-inline-start:1px solid var(--yoc-line);box-shadow:0 0 0 1px rgba(75,63,176,.04),-8px 0 32px rgba(29,27,46,.06);font-size:14px;line-height:1.55;font-family:"IBM Plex Sans Arabic","Noto Sans Arabic","Segoe UI",system-ui,-apple-system,sans-serif;box-sizing:border-box;text-align:start}
.yoc *{box-sizing:border-box}.yoc button,.yoc textarea{font-family:"IBM Plex Sans Arabic","Noto Sans Arabic","Segoe UI",system-ui,-apple-system,sans-serif;letter-spacing:0}
[dir=rtl].yoc{box-shadow:0 0 0 1px rgba(75,63,176,.04),8px 0 32px rgba(29,27,46,.06)}
.yoc-grip{position:absolute;inset-block:0;inset-inline-start:-4px;width:8px;cursor:col-resize;z-index:2}
.yoc-grip:hover,.yoc-resizing .yoc-grip{background:linear-gradient(90deg,transparent 3px,var(--yoc-acc2) 3px,var(--yoc-acc2) 5px,transparent 5px)}
.yoc-h{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--yoc-line);background:#fff;min-height:58px;flex:0 0 auto}
.yoc-logo{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--yoc-acc),var(--yoc-acc2));flex:0 0 auto}
.yoc-logo svg{width:19px;height:19px}
.yoc-tt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.yoc-tt b{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yoc-tt small{font-size:12px;color:var(--yoc-mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yoc-ib{width:40px;height:40px;border-radius:12px;border:0;background:transparent;color:var(--yoc-mut);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.yoc-ib:hover{background:#f0eefb;color:var(--yoc-acc)}
.yoc-ib svg{width:20px;height:20px}
.yoc-log{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.yoc-m{max-width:100%;border-radius:16px;padding:10px 13px;overflow-wrap:anywhere;animation:yocIn .22s ease-out}
.yoc-m p{margin:0 0 6px}.yoc-m p:last-child{margin-bottom:0}
.yoc-me{align-self:flex-end;background:linear-gradient(135deg,var(--yoc-acc),var(--yoc-acc2));color:#fff;max-width:88%;border-end-end-radius:6px}
.yoc-bot{align-self:stretch;background:#fff;border:1px solid var(--yoc-line);border-end-start-radius:6px}
.yoc-bot:empty{display:none}
@keyframes yocIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.yoc-dots{display:inline-flex;gap:4px;padding:4px 0}.yoc-dots i{width:7px;height:7px;border-radius:50%;background:var(--yoc-acc2);animation:yocB 1s infinite ease-in-out}.yoc-dots i:nth-child(2){animation-delay:.15s}.yoc-dots i:nth-child(3){animation-delay:.3s}
@keyframes yocB{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:none}}
.yoc-step{display:flex;align-items:center;gap:9px;margin-top:8px;padding:8px 10px;border-radius:12px;background:#f3f1fd;border:1px solid #e3dff8}
.yoc-si{width:24px;height:24px;border-radius:50%;background:#1f9d6b;color:#fff;display:grid;place-items:center;flex:0 0 auto}.yoc-si svg{width:14px;height:14px}
.yoc-sl{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.yoc-sl b{font-weight:600;font-size:13.5px}.yoc-sl small{font-size:12px;color:var(--yoc-mut);overflow-wrap:anywhere}.yoc-sl small.yoc-mono{font-family:ui-monospace,Menlo,Consolas,monospace;direction:ltr;text-align:start;unicode-bidi:plaintext}
.yoc-undo{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 11px;border-radius:10px;border:1px solid #d8d3f3;background:#fff;color:var(--yoc-acc);font-size:12.5px;font-weight:600;line-height:1;cursor:pointer;flex:0 0 auto;white-space:nowrap}
.yoc-undo svg{width:15px;height:15px}.yoc-undo:hover{background:#ece9fc}.yoc-undo:disabled{color:var(--yoc-mut);background:transparent;border-color:transparent;cursor:default}
.yoc-undone{opacity:.62}.yoc-undone .yoc-si{background:#9b98ad}.yoc-undone .yoc-sl b{text-decoration:line-through}
.yoc-plan{margin:2px 0 4px;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:6px}
.yoc-plan li{counter-increment:s;display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--yoc-mut)}
.yoc-plan li::before{content:counter(s);width:20px;height:20px;border-radius:50%;border:1.5px solid #cfcae9;display:grid;place-items:center;font-size:11px;font-weight:700;flex:0 0 auto}
.yoc-plan li.run{color:var(--yoc-ink)}.yoc-plan li.run::before{border-color:var(--yoc-acc2);color:var(--yoc-acc2)}
.yoc-plan li.ok{color:var(--yoc-ink)}.yoc-plan li.ok::before{content:'✓';background:#1f9d6b;border-color:#1f9d6b;color:#fff}
.yoc-plan li.bad::before{content:'!';background:#c2410c;border-color:#c2410c;color:#fff}
.yoc-ans{margin-top:6px}.yoc-ans ul{margin:4px 0;padding-inline-start:18px}.yoc-ans code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#f3f1fd;padding:1px 5px;border-radius:6px;overflow-wrap:anywhere}
.yoc-err{color:#b4321a;margin:6px 0 0}
.yoc-key{padding:9px 11px;border-radius:12px;background:#fff7e8;border:1px solid #f4dfb3;color:#6b4a07;margin-bottom:8px!important}
.yoc-src{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--yoc-mut);font-size:12.5px}.yoc-src svg{width:15px;height:15px}
.yoc-res{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.yoc-res li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:#faf9ff;border:1px solid var(--yoc-line)}
.yoc-res a{color:var(--yoc-acc);font-weight:600;text-decoration:none}.yoc-res a:hover{text-decoration:underline}.yoc-res span{font-size:12.5px;color:var(--yoc-mut)}
.yoc-f{flex:0 0 auto;padding:8px 12px 12px;border-top:1px solid var(--yoc-line);background:#fff}
.yoc-sugg,.yoc-ready{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:flex-start;gap:6px;margin-bottom:8px}
.yoc-ready{margin:6px 0 0}
.yoc-chip{flex:0 0 auto!important;width:auto!important;min-width:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block!important;min-height:34px;padding:6px 11px;border-radius:999px;border:1px solid #dcd8f2;background:#faf9ff;color:var(--yoc-ink);font-size:12.5px;font-weight:500;line-height:1.3;cursor:pointer;text-align:start;max-width:100%}
.yoc-chip:hover{border-color:var(--yoc-acc2);color:var(--yoc-acc)}
.yoc-box{display:flex;align-items:flex-end;gap:8px;border:1.5px solid #d8d3f3;border-radius:16px;padding:6px 6px 6px 12px;background:#fff}
[dir=rtl] .yoc-box{padding:6px 12px 6px 6px}
.yoc-box:focus-within{border-color:var(--yoc-acc2);box-shadow:0 0 0 3px rgba(109,95,224,.14)}
.yoc-in{flex:1;min-width:0;border:0;outline:0;resize:none;background:transparent;font-size:15px;line-height:1.5;color:var(--yoc-ink);padding:6px 0;max-height:140px}
.yoc .yoc-in,.yoc .yoc-in:focus{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important;margin:0!important;min-height:0!important}
.yoc-in::placeholder{color:#8a87a0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yoc-send{width:40px;height:40px;border-radius:12px;border:0;background:linear-gradient(135deg,var(--yoc-acc),var(--yoc-acc2));color:#fff;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.yoc-send svg{width:19px;height:19px}.yoc-busy .yoc-send{opacity:.5;cursor:default}
/* collapsed desktop: a compact pill at the inline-end bottom corner */
html.yoc-desk.yoc-collapsed .yoc{inset-block:auto 18px;inset-inline-end:18px;width:auto;border-radius:16px;border:1px solid var(--yoc-line);box-shadow:0 10px 30px rgba(29,27,46,.16)}
html.yoc-desk.yoc-collapsed .yoc-h{border:0;border-radius:16px;padding:8px 8px 8px 14px;min-height:52px;cursor:pointer}
html.yoc-desk.yoc-collapsed[dir=rtl] .yoc-h,html.yoc-desk.yoc-collapsed .yoc[dir=rtl] .yoc-h{padding:8px 14px 8px 8px}
html.yoc-collapsed .yoc-log,html.yoc-collapsed .yoc-f,html.yoc-collapsed .yoc-grip,html.yoc-collapsed .yoc-new{display:none}
/* phone: bottom sheet, app above */
html.yoc-phone .yoc{inset:auto 0 0 0;width:auto;height:var(--yoc-h);border-inline-start:0;border-top:1px solid var(--yoc-line);border-radius:18px 18px 0 0;box-shadow:0 -10px 30px rgba(29,27,46,.12)}
html.yoc-phone .yoc-grip{display:none}
html.yoc-phone .yoc-h{min-height:52px;padding:6px 10px;border-radius:18px 18px 0 0}
html.yoc-phone .yoc-logo{width:30px;height:30px;border-radius:10px}
html.yoc-phone .yoc-tt small{display:none}
html.yoc-phone .yoc-log{padding:10px}
html.yoc-phone .yoc-f{padding:6px 10px 8px}
html.yoc-phone .yoc-sugg{flex-wrap:wrap!important;overflow:hidden;max-height:70px;margin-bottom:6px;gap:6px}
html.yoc-phone .yoc-sugg .yoc-chip{flex:0 1 auto!important;white-space:nowrap;min-height:32px;padding:5px 10px;font-size:12.5px;max-width:100%}
html.yoc-phone .yoc-in{font-size:16px}
html.yoc-on.yoc-phone>body>#ed{height:100%!important;max-height:100%!important}
/* phone + open sheet: the app is the area above the sheet, so dialogs and popovers size to it, never to the full screen */
html.yoc-on.yoc-phone:not(.yoc-collapsed) .mback{padding:8px}
html.yoc-on.yoc-phone:not(.yoc-collapsed) .mback .modal{max-height:calc(100dvh - var(--yoc-h) - 16px)!important;min-height:0}
html.yoc-on.yoc-phone:not(.yoc-collapsed) .pop{max-height:calc(100dvh - var(--yoc-h) - 16px)!important}
html.yoc-phone.yoc-collapsed .yoc-h{cursor:pointer}
@media print{.yoc{display:none!important}html.yoc-on>body{margin:0!important;transform:none!important;height:auto!important;max-height:none!important}}
.yoc-tgl span{display:grid;place-items:center}.yoc-i-open{display:none!important}html.yoc-collapsed .yoc-i-open{display:grid!important}html.yoc-collapsed .yoc-i-min{display:none!important}
.yoc.yoc-started .yoc-sugg{display:none!important}
html.yoc-on .ai-fab,html.yoc-on .aibar{display:none!important}
.yoc-send:focus{outline:none}.yoc-send:focus-visible{outline:2px solid var(--yoc-acc2);outline-offset:2px}

/* a reply's action buttons sit under the step chip they belong to */
.yoc .yoc-acts{margin-top:6px}.yoc .yoc-acts p{margin:0}
/* one assistant: inside Sheets, Docs and Slides the panel is the only «Ask Yamama» entry */
html.yoc-m-sheets [data-act="ai"],html.yoc-m-docs [data-act="ai"],html.yoc-m-slides [data-act="ai"]{display:none!important}
.yoc .yoc-plan.yoc-done{display:none}

/* ===== c1016cl: calmer, smaller chat (Copilot-like side panel) ===== */
.yoc{font-size:13px;line-height:1.5}
.yoc-h{gap:8px;padding:8px 10px;min-height:48px}
.yoc-logo{width:28px;height:28px;border-radius:9px}.yoc-logo svg{width:16px;height:16px}
.yoc-tt b{font-size:13.5px}.yoc-tt small{font-size:11.5px}
.yoc-ib{width:34px;height:34px;border-radius:10px;transition:background-color .16s ease,color .16s ease}.yoc-ib svg{width:18px;height:18px}
.yoc-log{padding:12px;gap:8px;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#d9d5ee transparent}
.yoc-log::-webkit-scrollbar{width:6px}.yoc-log::-webkit-scrollbar-thumb{background:#d9d5ee;border-radius:6px}
.yoc-m{border-radius:13px;padding:7px 11px;animation:yocIn2 .18s cubic-bezier(.2,.7,.3,1) both}
.yoc-m p{margin:0 0 4px}
.yoc-me{max-width:86%;border-end-end-radius:5px}
.yoc-bot{border-end-start-radius:5px}
@keyframes yocIn2{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.yoc-wait{padding:9px 12px}
.yoc-dots{gap:4px;padding:2px 0}.yoc-dots i{width:6px;height:6px;animation:yocB2 1.4s infinite ease-in-out}.yoc-dots i:nth-child(2){animation-delay:.2s}.yoc-dots i:nth-child(3){animation-delay:.4s}
@keyframes yocB2{0%,70%,100%{opacity:.3}35%{opacity:.9}}
.yoc-step{gap:8px;margin-top:6px;padding:6px 8px;border-radius:10px;animation:yocIn2 .18s ease-out both;transition:opacity .18s ease}
.yoc-si{width:20px;height:20px}.yoc-si svg{width:12px;height:12px}
.yoc-sl b{font-size:12.5px}.yoc-sl small{font-size:11.5px}
.yoc-undo{min-height:30px;padding:0 9px;border-radius:8px;font-size:12px;gap:4px;transition:background-color .16s ease}.yoc-undo svg{width:13px;height:13px}
.yoc-plan{gap:4px}.yoc-plan li{font-size:12px;gap:7px}.yoc-plan li::before{width:18px;height:18px;font-size:10px;transition:background-color .18s ease,border-color .18s ease}
.yoc-ans{margin-top:4px}
.yoc-key{padding:7px 10px;border-radius:10px}
.yoc-src{font-size:12px}.yoc-res{gap:6px}.yoc-res li{padding:6px 9px}.yoc-res span{font-size:11.5px}
.yoc-f{padding:8px 10px 10px}
.yoc-sugg,.yoc-ready{gap:5px;margin-bottom:7px}
.yoc-chip{min-height:30px;padding:5px 10px;font-size:12px;transition:border-color .16s ease,color .16s ease,background-color .16s ease}
.yoc-box{gap:6px;border-radius:14px;padding:4px 4px 4px 10px;transition:border-color .16s ease,box-shadow .16s ease}
[dir=rtl] .yoc-box{padding:4px 10px 4px 4px}
.yoc-in{font-size:13px;line-height:1.45;padding:6px 0;max-height:120px}
.yoc-send{width:34px;height:34px;border-radius:10px;transition:opacity .16s ease,transform .16s ease}.yoc-send svg{width:17px;height:17px}
.yoc-send:active{transform:scale(.94)}
/* panel open/close glides instead of jumping */
html.yoc-desk:not(.yoc-collapsed) .yoc{animation:yocOpen .2s cubic-bezier(.2,.7,.3,1)}
html.yoc-desk.yoc-collapsed .yoc{animation:yocPill .18s ease-out}
html.yoc-phone:not(.yoc-collapsed) .yoc{animation:yocSheet .2s cubic-bezier(.2,.7,.3,1)}
@keyframes yocOpen{from{opacity:.4;transform:translateX(calc(var(--yoc-dir,1) * 24px))}to{opacity:1;transform:none}}
[dir=rtl] .yoc,.yoc[dir=rtl]{--yoc-dir:-1}
@keyframes yocPill{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes yocSheet{from{transform:translateY(18px);opacity:.6}to{transform:none;opacity:1}}
html.yoc-desk.yoc-collapsed .yoc-h{min-height:44px;padding:6px 6px 6px 12px}
html.yoc-desk.yoc-collapsed[dir=rtl] .yoc-h,html.yoc-desk.yoc-collapsed .yoc[dir=rtl] .yoc-h{padding:6px 12px 6px 6px}
/* phone: 14px reading size; the input stays 16px so iOS never zooms the page on focus */
html.yoc-phone .yoc{font-size:14px}
html.yoc-phone .yoc-h{min-height:46px;padding:5px 8px}
html.yoc-phone .yoc-logo{width:28px;height:28px}
html.yoc-phone .yoc-log{padding:8px 10px;gap:7px}
html.yoc-phone .yoc-sugg .yoc-chip{min-height:30px;padding:4px 10px;font-size:12.5px}
html.yoc-phone .yoc-in{font-size:16px;line-height:1.4;padding:5px 0}
@media (prefers-reduced-motion:reduce){.yoc,.yoc *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ===== (retired 20daf818: only with html.yo-legacy-bars) app identity colours on the top bars ===== */
html.yo-legacy-bars[data-yo-app=sheets]{--yo-br:#217346;--yo-brd:#185c37}
html.yo-legacy-bars[data-yo-app=docs]{--yo-br:#2b579a;--yo-brd:#1e4176}
html.yo-legacy-bars[data-yo-app=slides]{--yo-br:#c43e1c;--yo-brd:#a33215}
html.yo-legacy-bars[data-yo-app=mail]{--yo-br:#0f6cbd;--yo-brd:#0c5596}
html.yo-legacy-bars[data-yo-app=pdf]{--yo-br:#b30b00;--yo-brd:#8f0900}
html.yo-legacy-bars[data-yo-app=diagrams]{--yo-br:#3955a3;--yo-brd:#2c4282}
html.yo-legacy-bars[data-yo-app=meet]{--yo-br:#5b5fc7;--yo-brd:#4a4eab}
html.yo-legacy-bars[data-yo-app=workspace]{--yo-br:#0364b8;--yo-brd:#024f91}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb),html.yo-legacy-bars[data-yo-app=workspace] header.top{background:var(--yo-br)!important;background-image:none!important;color:#fff!important;border-bottom:1px solid var(--yo-brd)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) :is(a,span,b,small,strong,h1,h2,label,button,nav,.ic):not(.hsearch):not(.hsearch *):not(.yoc *):not([class*=menu] *):not([class*=pop] *):not([class*=drop] *):not(.dicon):not(.dicon *):not(.pri):not(.pri *):not(.primary):not(.primary *):not(.ai-btn):not(.ai-btn *):not([aria-selected=true]):not([aria-selected=true] *):not(.logo *){color:#fff!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) :is(button.acct,a.acct,.btn,.soft):not(.pri):not(.primary):not(.ai-btn):not(.av):not(.yoc *){background:rgba(0,0,0,.16)!important;background-image:none!important;border:1px solid rgba(255,255,255,.32)!important;box-shadow:none!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) :is(.ib,.btn,button.acct,.zbtn,nav.tabs button):not(.yoc *):hover{background:rgba(0,0,0,.26)!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) :is(.btn.pri,.btn.primary,.ai-btn):not(.yoc *){background:#fff!important;background-image:none!important;color:var(--yo-br)!important;border:0!important;box-shadow:none!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) :is(.btn.pri,.btn.primary,.ai-btn) :is(span,.ic,svg){color:var(--yo-br)!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) nav.tabs{background:rgba(0,0,0,.16)!important}
html.yo-legacy-bars[data-yo-app] :is(header#hdr,header.top) nav.tabs button{background:transparent!important;border:0!important}
html.yo-legacy-bars[data-yo-app] :is(header#hdr,header.top) nav.tabs button[aria-selected=true]{background:#fff!important;box-shadow:none!important}
html.yo-legacy-bars[data-yo-app] :is(header#hdr,header.top) nav.tabs button[aria-selected=true] :is(span,.ic,svg),html.yo-legacy-bars[data-yo-app] :is(header#hdr,header.top) nav.tabs button[aria-selected=true]{color:var(--yo-br)!important}
html.yo-legacy-bars[data-yo-app] header#titlebar .dicon{background:#fff!important;background-image:none!important;color:var(--yo-br)!important}
html.yo-legacy-bars[data-yo-app] header#titlebar .dicon :is(svg,.ic){color:var(--yo-br)!important}
html.yo-legacy-bars[data-yo-app] :is(header#titlebar,header#tb) input:not(.yoc *){color:#fff!important;background:transparent!important;border-color:transparent!important;caret-color:#fff}
html.yo-legacy-bars[data-yo-app] :is(header#titlebar,header#tb) input:not(.yoc *):is(:hover,:focus){background:rgba(0,0,0,.16)!important;border-color:rgba(255,255,255,.4)!important;outline:none}
html.yo-legacy-bars[data-yo-app] :is(header#titlebar,header#tb) input::placeholder{color:rgba(255,255,255,.75)!important}
html.yo-legacy-bars[data-yo-app] :is(header#titlebar,header#tb) :is(.savest,.sstate,#saveSt,#saveState){color:rgba(255,255,255,.88)!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header.top) .hsearch{background:#fff!important;border-radius:10px}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header.top) .hsearch input{background:#fff!important;color:#1f1f1f!important;border-color:transparent!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header.top) .hsearch .ic{color:#616161!important}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header.top) a.brand img{background:#fff;border-radius:8px;padding:2px}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) :focus-visible{outline:2px solid #fff!important;outline-offset:2px}
html.yo-legacy-bars[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) button.acct:not(.yoc *){padding-inline:10px 12px!important;gap:6px;min-height:34px}
html.yo-legacy-bars[data-yo-app] :is(header#hdr,header.top) .logo{box-shadow:0 0 0 1.5px rgba(255,255,255,.55)}
html.yo-legacy-bars[data-yo-app=pdf] .hero2{background:linear-gradient(120deg,#8f0900,#b30b00 55%,#c4314b)!important}
html.yo-legacy-bars[data-yo-app=diagrams] .hero2{background:linear-gradient(120deg,#2c4282,#3955a3 55%,#4a68c0)!important}
/* ribbon follows the app colour like Office: File button and the active tab underline */
html.yo-legacy-bars[data-yo-app] .rtab.file{background:var(--yo-br)!important;color:#fff!important}
html.yo-legacy-bars[data-yo-app] .rtab.file:hover{background:var(--yo-brd)!important}
html.yo-legacy-bars[data-yo-app] .rtab[aria-selected=true]:not(.file){color:var(--yo-br)!important}
html.yo-legacy-bars[data-yo-app] .rtab[aria-selected=true]::after{background:var(--yo-br)!important}

/* ===== c1016m: phone = small round button + full-screen chat (no bottom sheet, the file keeps the whole screen) ===== */
html.yoc-on.yoc-phone,html.yoc-on.yoc-phone.yoc-collapsed{--yoc-h:0px}
html.yoc-on[data-yo-app=sheets]{--yoc-acc:#217346;--yoc-acc2:#2e8b57}
html.yoc-on[data-yo-app=docs]{--yoc-acc:#2B579A;--yoc-acc2:#3b6fc0}
html.yoc-on[data-yo-app=slides]{--yoc-acc:#C43E1C;--yoc-acc2:#d9572f}
html.yoc-on[data-yo-app=mail]{--yoc-acc:#0F6CBD;--yoc-acc2:#2b88d8}
html.yoc-on[data-yo-app=pdf]{--yoc-acc:#B30B00;--yoc-acc2:#d0342a}
html.yoc-on[data-yo-app=diagrams]{--yoc-acc:#3955A3;--yoc-acc2:#5470c0}
html.yoc-on[data-yo-app=meet]{--yoc-acc:#5B5FC7;--yoc-acc2:#7579e0}
html.yoc-on[data-yo-app=workspace]{--yoc-acc:#0364B8;--yoc-acc2:#2a86d6}
.yoc-back{display:none!important}
html.yoc-phone.yoc-collapsed .yoc{inset:auto;inset-inline-end:14px;bottom:calc(var(--yoc-fab-b,16px) + env(safe-area-inset-bottom,0px));width:52px;height:52px;border-radius:50%;border:0;background:var(--yoc-acc);box-shadow:0 6px 18px rgba(0,0,0,.22);overflow:hidden;animation:none}
html.yoc-phone.yoc-collapsed .yoc-h{min-height:52px;height:52px;padding:0!important;justify-content:center;background:transparent;border:0;border-radius:50%}
html.yoc-phone.yoc-collapsed .yoc-h>*:not(.yoc-logo){display:none!important}
html.yoc-phone.yoc-collapsed .yoc-logo{width:52px;height:52px;border-radius:50%;background:transparent!important;color:#fff;margin:0}
html.yoc-phone.yoc-collapsed .yoc-logo svg{width:24px;height:24px}
html.yoc-phone.yoc-nofab .yoc{display:none!important}
html.yoc-phone:not(.yoc-collapsed) .yoc{position:fixed;inset:auto 0 auto 0;top:var(--yoc-vt,0px);height:var(--yoc-vh,100dvh);width:100%;border:0;border-radius:0;box-shadow:none;z-index:2147483000;animation:yocFull .18s ease-out}
@keyframes yocFull{from{opacity:.4;transform:translateY(14px)}to{opacity:1;transform:none}}
html.yoc-phone:not(.yoc-collapsed) .yoc-h{border-radius:0;min-height:52px;padding:6px 8px;gap:6px;background:var(--yoc-acc);color:#fff;border-bottom:0}
html.yoc-phone:not(.yoc-collapsed) .yoc-h .yoc-tt b{color:#fff}
html.yoc-phone:not(.yoc-collapsed) .yoc-h .yoc-logo{background:rgba(255,255,255,.16)!important;color:#fff}
html.yoc-phone:not(.yoc-collapsed) .yoc-h .yoc-ib{color:#fff}
html.yoc-phone:not(.yoc-collapsed) .yoc-tgl{display:none!important}
html.yoc-phone:not(.yoc-collapsed) .yoc-back{display:inline-flex!important;align-items:center;gap:2px;width:auto!important;padding:0 10px 0 6px!important;height:38px;border-radius:19px;background:rgba(255,255,255,.14)!important;font:inherit;font-size:14px;font-weight:600;color:#fff}
.yoc[dir=rtl] .yoc-back svg{transform:scaleX(-1)}
.yoc-back svg{width:20px;height:20px}
html.yoc-phone:not(.yoc-collapsed) .yoc-log{padding:12px 12px 8px}
html.yoc-phone:not(.yoc-collapsed) .yoc-f{padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--yoc-line);background:#fff}
html.yoc-phone:not(.yoc-collapsed) .yoc-sugg{max-height:none;overflow:visible}
html.yoc-on.yoc-phone:not(.yoc-collapsed)>body{overflow:hidden}
/* one result line per request; the steps fold under «Details» */
.yoc-prog{display:flex;align-items:center;gap:8px;color:var(--yoc-mut);font-size:12.5px;margin:2px 0}
.yoc-grp{display:flex;flex-direction:column;gap:4px}
.yoc-det{font-size:12px;color:var(--yoc-mut)}
.yoc-det summary{cursor:pointer;padding:2px 4px;list-style:none;display:inline-flex;align-items:center;gap:4px}
.yoc-det summary::-webkit-details-marker{display:none}
.yoc-det summary::before{content:'';width:6px;height:6px;border:solid currentColor;border-width:0 1.6px 1.6px 0;transform:rotate(45deg);margin:0 2px 3px}
.yoc-det[open] summary::before{transform:rotate(-135deg);margin-bottom:-2px}
.yoc-det .yoc-step{margin-top:4px}
.yoc-sum b{font-weight:700}
/* the result line on the file (phone) */
.yoc-toast{position:fixed;inset-inline:10px;bottom:calc(var(--yoc-fab-b,16px) + env(safe-area-inset-bottom,0px));z-index:2147482990;display:flex;align-items:center;gap:8px;padding:6px 6px 6px 12px;min-height:48px;border-radius:14px;background:#1f2328;color:#fff;font:500 13.5px/1.35 inherit;font-family:inherit;box-shadow:0 8px 24px rgba(0,0,0,.25);animation:yocFull .18s ease-out}
.yoc-toast[dir=rtl]{padding:6px 12px 6px 6px}
.yoc-ti{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#2e8b57;flex:0 0 auto}.yoc-ti svg{width:14px;height:14px}
.yoc-tx{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.yoc-tu{flex:0 0 auto;height:36px;padding:0 12px;border:0;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.yoc-to{flex:0 0 auto;width:36px;height:36px;border:0;border-radius:10px;background:var(--yoc-acc,#217346);color:#fff;display:grid;place-items:center;cursor:pointer}.yoc-to svg{width:18px;height:18px}
html.yoc-desk .yoc-toast{display:none}

html.yoc-on .yoc-step{background:color-mix(in srgb,var(--yoc-acc) 7%,#fff);border-color:color-mix(in srgb,var(--yoc-acc) 18%,#fff)}
html.yoc-phone.yoc-collapsed.yoc-toasting .yoc{display:none!important}
html.yoc-phone.yoc-collapsed.yoc-fabhide .yoc{opacity:0;pointer-events:none}
/* phone touch targets ≥44px (P59) */
html.yoc-phone.yoc-m-sheets #ribbon .rb,html.yoc-phone.yoc-m-sheets #ribbon .rsel,html.yoc-phone.yoc-m-sheets .rtab{min-height:44px}
html.yoc-phone.yoc-m-sheets #ribbon .rb.sm{min-width:44px}
html.yoc-phone.yoc-m-sheets #ribbon .rdd{min-height:44px;height:44px;min-width:26px}
html.yoc-phone.yoc-m-sheets #titlebar .ib,html.yoc-phone.yoc-m-sheets #titlebar .btn,html.yoc-phone.yoc-m-sheets #titlebar button.acct{min-width:44px;min-height:44px}
html.yoc-phone.yoc-m-sheets #titlebar .title-in{min-height:40px!important;max-width:calc(100vw - 250px)!important}
html.yoc-phone.yoc-m-sheets #ribbon .rsel,html.yoc-phone.yoc-m-sheets #fxbar .ib,html.yoc-phone.yoc-m-sheets #nameBox,html.yoc-phone.yoc-m-sheets #sheetbar .ib,html.yoc-phone.yoc-m-sheets #sheetbar .stab,html.yoc-phone.yoc-m-sheets #status button{min-height:44px}
html.yoc-phone.yoc-m-sheets #fxbar .ib,html.yoc-phone.yoc-m-sheets #sheetbar .ib,html.yoc-phone.yoc-m-sheets #status button{min-width:44px}
html.yoc-phone.yoc-m-sheets #status{min-height:44px}
html.yoc-phone.yoc-m-sheets #ribbon .rsel.styl{min-height:44px!important;height:44px!important}
html.yoc-phone.yoc-m-sheets #titlebar .title-in{min-height:36px!important;height:36px!important;padding-block:0!important}
html.yoc-on.yoc-phone.yoc-collapsed.yoc-bscroll>body{padding-bottom:84px!important}
/* docs/slides phone ribbon: «More» sits at the end of the strip instead of floating over the tools */
html.yoc-phone .rrow .more{position:static!important;box-shadow:none!important}
/* home lists scroll clear of a fixed bottom nav */
html.yoc-phone.yoc-home #home{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}

/* c1017a: phone touch targets >=44px (P59) — home headers on every module, and the Docs editor like Sheets */
html.yoc-phone .htop :is(.ib,.pts,button.acct,.btn,a.brand){min-height:44px}
html.yoc-phone .htop :is(.ib,button.acct){min-width:44px}
html.yoc-phone .htop a.brand{display:inline-flex;align-items:center}
html.yoc-phone .htop :is(input[type=search],.hsearch input){min-height:44px}
html.yoc-phone .hhead :is(.ib,.btn,.lnk,button){min-height:44px}
html.yoc-phone .hhead .ib{min-width:44px}
html.yoc-phone .seg button{min-height:44px}
html.yoc-phone.yoc-m-docs #ribbon .rb,html.yoc-phone.yoc-m-docs #ribbon .rsel,html.yoc-phone.yoc-m-docs .rtab{min-height:44px}
html.yoc-phone.yoc-m-docs #ribbon .rb.sm{min-width:44px}
html.yoc-phone.yoc-m-docs #ribbon .rdd{min-height:44px;height:44px;min-width:26px}
html.yoc-phone.yoc-m-docs #titlebar .ib,html.yoc-phone.yoc-m-docs #titlebar .btn,html.yoc-phone.yoc-m-docs #titlebar button.acct,html.yoc-phone.yoc-m-docs #titlebar button{min-width:44px;min-height:44px}
html.yoc-phone.yoc-m-docs #status button{min-height:44px;min-width:44px}
html.yoc-phone.yoc-m-docs #status{min-height:44px}
html.yoc-phone.yoc-m-docs #ribbon .rsel.styl{min-height:44px!important;height:44px!important}
html.yoc-phone.yoc-m-docs #titlebar .title-in{min-height:44px!important}

/* c1017b: remaining phone targets to 44px */
html.yoc-phone .htop button.acct,html.yoc-phone .htop .pts{min-height:44px!important}
html.yoc-phone:is(.yoc-m-sheets,.yoc-m-docs) #ribbon .rdd{min-width:44px!important}
html.yoc-phone:is(.yoc-m-sheets,.yoc-m-docs) #ribbon #rbFont,html.yoc-phone:is(.yoc-m-sheets,.yoc-m-docs) #ribbon .rsel.font{min-height:44px!important;height:44px!important;min-width:44px!important}
html.yoc-phone:is(.yoc-m-sheets,.yoc-m-docs) #ribbon #rbSize,html.yoc-phone:is(.yoc-m-sheets,.yoc-m-docs) #ribbon .rsel.size{min-height:44px!important;height:44px!important;min-width:44px!important}
html.yoc-phone:is(.yoc-m-sheets,.yoc-m-docs) #ribbon .rsel.styl{min-width:44px!important}

/* c1017b: Slides editor targets like Docs */
html.yoc-phone.yoc-m-slides #ribbon .rb,html.yoc-phone.yoc-m-slides #ribbon .rsel,html.yoc-phone.yoc-m-slides .rtab{min-height:44px}
html.yoc-phone.yoc-m-slides #ribbon .rb.sm{min-width:44px}
html.yoc-phone.yoc-m-slides #ribbon .rdd{min-height:44px;height:44px;min-width:26px}
html.yoc-phone.yoc-m-slides #status button{min-height:44px;min-width:44px}
html.yoc-phone.yoc-m-slides #status{min-height:44px}
html.yoc-phone.yoc-m-slides #ribbon .rsel.styl{min-height:44px!important;height:44px!important}
html.yoc-phone.yoc-m-slides #ribbon .rdd{min-width:44px!important}
html.yoc-phone.yoc-m-slides #ribbon #rbFont,html.yoc-phone.yoc-m-slides #ribbon .rsel.font,html.yoc-phone.yoc-m-slides #ribbon #rbSize,html.yoc-phone.yoc-m-slides #ribbon .rsel.size{min-height:44px!important;height:44px!important;min-width:44px!important}
html.yoc-phone.yoc-m-slides #ribbon .rsel.styl{min-width:44px!important}

/* c1017c: phone home on Sheets/Docs/Slides — header, scrolling body, bottom nav in its own row (body carries a transform, so a fixed nav would scroll with the content) */
@media (max-width:760px){
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar){display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar)>.htop{flex:none;position:relative}
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar)>.hbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar)>.hbar{position:static;flex:none;inset:auto}
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar) .hmain{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  html.yoc-on.yoc-phone>body:not(.editing):has(>#home:not([hidden])>.hbar){overflow:hidden!important;padding-bottom:0!important}
}

/* t1017v5: undo/close on the assistant toast >=44px on phones */
@media (max-width:760px){.yoc-toast .yoc-tu,.yoc-toast .yoc-to{min-height:44px!important;min-width:44px!important}}

/* qa1017: touch targets inside the assistant (phones + touch tablets) */
@media (pointer:coarse){.yoc button{min-height:40px;min-width:40px}.yoc .yoc-chip{min-height:40px!important}}

/* eaa1018: loop fixes — points pill readable on the brand header; phone home nav sits at the true bottom; phone header on one row; editor status bar fits 360 */
html[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) .pts:not(.yoc *){background:rgba(0,0,0,.16)!important;background-image:none!important;border:1px solid rgba(255,255,255,.32)!important;color:#fff!important}
html[data-yo-app] :is(header.htop,header#hdr,header#titlebar,header#tb,header.top) a.brand{min-height:44px;display:inline-flex;align-items:center}
@media (max-width:760px){
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar){padding-bottom:0!important}
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar) .hmain{padding-bottom:24px}
  .hbar button span{white-space:nowrap}
  html.yoc-phone>body:not(.editing)>#home:not([hidden]):has(>.hbar)>.hbar{position:sticky;bottom:0}
  html[data-yo-app] footer#status{background:#f9f9fc}
}
@media (max-width:440px){
  html[data-yo-app] header.htop{flex-wrap:wrap;row-gap:6px}
  html[data-yo-app] header.htop .brand span{font-size:0!important}
  html[data-yo-app] header.htop .brand span b{font-size:16px!important}
  html[data-yo-app] header.htop .pts{padding-inline:9px!important}
  html[data-yo-app] header.htop button.acct:has(.av) .nm{display:none}
  html[data-yo-app] footer#status #stZoom,html[data-yo-app] footer#status #stZoom~button,html[data-yo-app] footer#status button:has(+#stZoom){display:none!important}
  html[data-yo-app] footer#status{overflow:hidden}
}

/* yo-motion v1 (2026-10-19): calm motion, phone split, focus — appended */
html.yoc-on{--yom-e:cubic-bezier(.2,.8,.2,1)}
.yoc-drag{display:none}
.yoc-exp{display:none!important}
html.yoc-phone.yoc-m-sheets:not(.yoc-collapsed):not(.yoc-ph-full) #sheetbar,html.yoc-phone.yoc-m-sheets:not(.yoc-collapsed):not(.yoc-ph-full) #ysFit .fft{display:none!important}
/* phone: open = split screen; the file stays visible above the assistant */
html.yoc-phone:not(.yoc-collapsed):not(.yoc-ph-full){--yoc-h:var(--yoc-ph,50dvh)}
html.yoc-phone.yoc-closing:not(.yoc-ph-full){--yoc-h:0px}
html.yoc-on.yoc-phone:not(.yoc-collapsed):not(.yoc-ph-full)>body{height:calc(var(--yoc-vh,100dvh) - var(--yoc-h))!important;max-height:calc(var(--yoc-vh,100dvh) - var(--yoc-h))!important;overflow:auto!important}
html.yoc-phone:not(.yoc-collapsed):not(.yoc-ph-full) .yoc{top:calc(var(--yoc-vt,0px) + var(--yoc-vh,100dvh) - var(--yoc-ph,50dvh))!important;bottom:auto!important;height:var(--yoc-ph,50dvh)!important;border-radius:18px 18px 0 0!important;border-top:1px solid var(--yoc-line)!important;box-shadow:0 -12px 32px rgba(29,27,46,.18)!important;overflow:hidden}
html.yoc-phone:not(.yoc-collapsed):not(.yoc-ph-full) .yoc-h{border-radius:18px 18px 0 0;padding-top:12px;min-height:58px}
html.yoc-phone:not(.yoc-collapsed) .yoc-drag{display:block;position:absolute;top:0;inset-inline:0;height:22px;z-index:3;cursor:ns-resize;touch-action:none}
html.yoc-phone:not(.yoc-collapsed) .yoc-drag::after{content:"";position:absolute;top:6px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:rgba(255,255,255,.55)}
html.yoc-phone.yoc-ph-full:not(.yoc-collapsed) .yoc-drag{display:none}
html.yoc-phone:not(.yoc-collapsed) .yoc-exp{display:grid!important}
html.yoc-phone:not(.yoc-collapsed):not(.yoc-ph-full) .yoc-sugg{max-height:76px;overflow:hidden}
.yoc-exp .yom-i2{display:none}html.yoc-ph-full .yoc-exp .yom-i1{display:none}html.yoc-ph-full .yoc-exp .yom-i2{display:block}
.yoc .yoc-ib:focus-visible,.yoc .yoc-send:focus-visible,.yoc .yoc-chip:focus-visible,.yoc .yoc-back:focus-visible{outline:2px solid var(--yoc-acc2);outline-offset:2px}
.yoc-grip::after{content:"";position:absolute;top:50%;left:2px;width:4px;height:36px;margin-top:-18px;border-radius:2px;background:#d6d1ef;opacity:0;transition:opacity .15s}
.yoc:hover .yoc-grip::after{opacity:1}
@media (prefers-reduced-motion:no-preference){
html.yoc-on.yoc-desk>body{transition:margin-inline-end .24s var(--yom-e)}
html.yoc-on.yoc-phone>body{transition:height .26s var(--yom-e),max-height .26s var(--yom-e)}
html.yoc-resizing>body,html.yoc-ph-drag>body,html.yoc-ph-drag .yoc{transition:none!important;animation:none!important}
html.yoc-desk:not(.yoc-collapsed) .yoc{animation:yomInE .24s var(--yom-e)}
html.yoc-desk:not(.yoc-collapsed) .yoc[dir=rtl]{animation-name:yomInS}
html.yoc-desk.yoc-closing .yoc{animation:yomOutE .19s ease-in forwards}
html.yoc-desk.yoc-closing .yoc[dir=rtl]{animation-name:yomOutS}
html.yoc-desk.yoc-closing>body{margin-inline-end:0!important}
html.yoc-desk.yoc-collapsed .yoc{animation:yomPill .22s var(--yom-e)}
html.yoc-phone:not(.yoc-collapsed) .yoc{animation:yomUp .26s var(--yom-e)}
html.yoc-phone.yoc-ph-full:not(.yoc-collapsed) .yoc{transition:top .24s var(--yom-e),height .24s var(--yom-e)}
html.yoc-phone.yoc-closing .yoc{animation:yomDown .2s ease-in forwards}
html.yoc-phone.yoc-collapsed .yoc{animation:yomPill .22s var(--yom-e)}
.yoc-m{animation:yomMsg .24s var(--yom-e)}
.yoc-step,.yoc-plan li{animation:yomMsg .22s var(--yom-e) both}
.yoc-ib,.yoc-send,.yoc-chip,.yoc-undo,.yoc-back,.yoc-tu,.yoc-to{transition:scale .12s ease,background-color .15s,color .15s,border-color .15s,box-shadow .15s}
.yoc-ib:active,.yoc-send:active,.yoc-chip:active,.yoc-undo:active,.yoc-back:active,.yoc-tu:active,.yoc-to:active{scale:.94}
.yoc-toast{animation:yomToastIn .24s var(--yom-e)}
.yoc-toast.yom-out{animation:yomToastOut .18s ease-in forwards}
/* app-wide, quiet: dialogs, menus, presses, cards */
.mback{animation:yomFade .16s ease-out}
.mback .modal,.modal[open],dialog[open]{animation:yomDlg .2s var(--yom-e)}
.pop,.menu:not([hidden]),[role=menu]{animation:yomPop .15s var(--yom-e)}
:is(#ribbon .rb,.rtab,#titlebar .btn,.btn,.ib,.tcard,.hbar button){transition:scale .1s ease,background-color .15s,color .15s,box-shadow .15s,border-color .15s}
:is(#ribbon .rb,.rtab,#titlebar .btn,.btn,.ib,.hbar button):active{scale:.96}
.tcard:hover{box-shadow:0 6px 18px rgba(29,27,46,.08)}
.tcard:active{scale:.98}
.tcard,.srow,.shrow{animation:yomItem .26s var(--yom-e) both}
}
@keyframes yomInE{from{opacity:0;translate:28px 0}to{opacity:1;translate:0 0}}
@keyframes yomInS{from{opacity:0;translate:-28px 0}to{opacity:1;translate:0 0}}
@keyframes yomOutE{to{opacity:0;translate:28px 0}}
@keyframes yomOutS{to{opacity:0;translate:-28px 0}}
@keyframes yomPill{from{opacity:0;scale:.9;translate:0 10px}to{opacity:1;scale:1;translate:0 0}}
@keyframes yomUp{from{translate:0 100%}to{translate:0 0}}
@keyframes yomDown{to{translate:0 100%}}
@keyframes yomMsg{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes yomToastIn{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@keyframes yomToastOut{to{opacity:0;translate:0 14px}}
@keyframes yomFade{from{opacity:0}}
@keyframes yomDlg{from{opacity:0;scale:.97;translate:0 8px}to{opacity:1;scale:1;translate:0 0}}
@keyframes yomPop{from{opacity:0;translate:0 -4px}to{opacity:1;translate:0 0}}
@keyframes yomItem{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}

html[data-yo-app] header :is(button.acct,a.acct,.btn,.soft):not(.pri):not(.primary):not(.ai-btn):not(.av):not(.yoc *){background:rgba(0,0,0,.16)!important}
html[data-yo-app] header :is(.ib,.btn,button.acct,.zbtn):not(.yoc *):hover{background:rgba(0,0,0,.26)!important}

/* c3 motion floor (2026-10-20): every clickable eases its colour, border and shadow (180 ms); zero specificity so app rules win */
@media (prefers-reduced-motion:no-preference){
:where(button,a[href],[role=button],[role=tab],[role=menuitem],[role=option],summary,input,select,textarea,label.chk){transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease}
:where([role=dialog]:not([hidden]),[role=listbox]:not([hidden]),.smenu,.dropdown:not([hidden])){animation:yomPop .18s var(--yom-e,cubic-bezier(.2,.8,.2,1))}
:where(.yoc-ans,.yoc-msg){animation:yomMsg .22s var(--yom-e,cubic-bezier(.2,.8,.2,1)) both}
}

/* c4: the file-list header (.htop) is light — the points pill keeps its own readable colours there */
html[data-yo-app]:not(.dark) header.htop .pts:not(.yoc *):not(#_p){background:var(--brand-soft,#efeafc)!important;border-color:transparent!important;color:var(--brand,#5b2a9e)!important}
html[data-yo-app] header.htop .pts:not(.yoc *) :is(b,span,.ic,svg){color:inherit!important}
html[data-yo-app]:not(.dark) header.htop .pts:not(.yoc *):not(#_p):not(#_q) :is(b,span,.ic,svg,i){color:var(--brand,#5b2a9e)!important}

/* c5: send becomes «إيقاف» while the assistant works */
.yoc-busy .yoc-send.yoc-stopbtn,.yoc-send.yoc-stopbtn{opacity:1!important;cursor:pointer!important;background:#2f2a5a!important;color:#fff!important;animation:yocStopIn .18s ease}
.yoc-send.yoc-stopbtn:disabled{opacity:.55!important;cursor:default!important}
@keyframes yocStopIn{from{transform:scale(.9)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.yoc-send.yoc-stopbtn{animation:none}}
/* xb (1782adee): Sheets phone title bar — name (36px) + save status (14px) fit the 50px bar; with a 44px name the status hung below the bar and the name's top was clipped */

/* ===== 20daf818 (Oct 22, round 2): ONE design system with the portal (y365 «5f5a1364») — glass top bar, glossy app tile,
   portal purple actions, designed empty states, pill indicators, motion. Replaces the Microsoft-colour top bars above. ===== */
html[data-yo-app]{--yo-app:#4b3fb0;--yds-grad:linear-gradient(135deg,#2a1f6e 0%,#4b3fb0 58%,#5a48d8 100%);--yds-ease:cubic-bezier(.2,.7,.2,1);--yds-sh1:0 1px 2px rgba(27,25,48,.05),0 6px 18px -8px rgba(27,25,48,.12);--yds-sh2:0 2px 4px rgba(27,25,48,.06),0 18px 36px -14px rgba(42,31,110,.28);--yds-gloss:linear-gradient(155deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.08) 42%,rgba(0,0,0,.16) 100%)}
html[data-yo-app=docs]{--yo-app:#2f6fde}
html[data-yo-app=sheets]{--yo-app:#1b8a55}
html[data-yo-app=slides]{--yo-app:#c2410c}
html[data-yo-app=mail]{--yo-app:#2563eb}
html[data-yo-app] body{background:radial-gradient(1200px 520px at 85% -120px,rgba(111,95,230,.09),transparent 70%),var(--bg,#f5f4fa);background-attachment:fixed}
/* top bars: frosted white like the portal */
html[data-yo-app] :is(header.htop,header#hdr){background:rgba(255,255,255,.86)!important;-webkit-backdrop-filter:saturate(1.6) blur(16px)!important;backdrop-filter:saturate(1.6) blur(16px)!important;border-bottom:1px solid rgba(231,228,242,.9)!important;box-shadow:0 10px 28px -24px rgba(27,25,48,.45)}
html[data-yo-app] :is(header.htop,header#hdr) .brand{color:#2a1f6e}
html[data-yo-app] :is(header.htop,header#hdr) .brand b{color:#2a1f6e}
/* the app identity lives in one glossy tile (same family as the portal's app tiles) */
html[data-yo-app] :is(header.htop,header#titlebar) a.brand img{box-sizing:border-box;width:34px;height:34px;padding:6px;border-radius:11px;background-color:var(--yo-app);background-image:var(--yds-gloss);filter:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 14px -7px rgba(27,25,48,.5)}
html[data-yo-app] :is(header.htop,header#titlebar) a.brand img{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-6 -4 98 108'%3E%3Cpath d='M80 4C57 3 51 27 45 46S29 82 4 86' fill='none' stroke='%23fff' stroke-width='9' stroke-linecap='round'/%3E%3Cpath d='M83 17C60 16 54 40 48 59S32 95 8 99' fill='none' stroke='%23fff' stroke-opacity='.55' stroke-width='7' stroke-linecap='round'/%3E%3Ccircle cx='70' cy='43' r='6' fill='%23fff'/%3E%3C/svg%3E")}
html[data-yo-app=mail] header#hdr .brand .logo{background-color:var(--yo-app);background-image:var(--yds-gloss);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 14px -7px rgba(27,25,48,.5)}
html[data-yo-app] :is(header.htop,header#hdr) .hsearch input{background:#f1f0f8!important;border-color:transparent!important;transition:background .2s,box-shadow .2s}
html[data-yo-app] :is(header.htop,header#hdr) .hsearch input:focus{background:#fff!important;box-shadow:0 0 0 3px rgba(75,63,176,.18)}
html[data-yo-app] :is(header.htop,header#hdr) :is(.ib,.btn.icon){transition:background .18s var(--yds-ease),transform .18s var(--yds-ease)}
html[data-yo-app] :is(header.htop,header#hdr) :is(.ib,.btn.icon):active{transform:scale(.94)}
/* mail tabs: pill like the portal chips */
html[data-yo-app=mail] header#hdr nav.tabs button[aria-selected=true]{background:linear-gradient(180deg,#efecff,#e5e0ff)!important;color:#2a1f6e!important}
html[data-yo-app=mail] header#hdr nav.tabs button[aria-selected=true] :is(.ic,svg){color:#4b3fb0!important}
/* primary actions: the portal gradient */
html[data-yo-app] :is(.btn.pri,.btn.primary):not(.yoc *){background:var(--yds-grad)!important;border-color:transparent!important;color:#fff!important;box-shadow:0 8px 18px -8px rgba(75,63,176,.7);transition:filter .18s,transform .12s,box-shadow .18s}
html[data-yo-app] :is(.btn.pri,.btn.primary):not(.yoc *):hover{filter:brightness(1.07)}
html[data-yo-app] :is(.btn.pri,.btn.primary):not(.yoc *):active{transform:scale(.97)}
html[data-yo-app] :is(.btn.pri,.btn.primary):not(.yoc *) :is(.ic,svg){color:#fff!important}
html[data-yo-app] .btn:not(.pri):not(.primary):not(.yoc *){border-radius:12px}
/* side navigation: soft pill + gradient marker (portal rail) */
html[data-yo-app] .nv{position:relative;border-radius:12px;transition:background .18s var(--yds-ease),color .18s}
html[data-yo-app] .nv[aria-current=page]{background:linear-gradient(180deg,#efecff,#e7e3ff)!important;color:#2a1f6e!important}
html[data-yo-app] .nv[aria-current=page] .ic{color:#4b3fb0}
html[data-yo-app] .nv[aria-current=page]::before{content:"";position:absolute;inset-inline-start:-14px;top:9px;bottom:9px;width:4px;border-radius:4px;background:var(--yds-grad)}
html[data-yo-app] .nvfoot{border-radius:14px;box-shadow:var(--yds-sh1)}
/* page titles with the portal accent bar */
html[data-yo-app] .hhead h1{display:flex;align-items:center;gap:10px;letter-spacing:-.01em}
html[data-yo-app] .hhead h1::before{content:"";width:5px;height:22px;border-radius:4px;background:var(--yds-grad);flex:none}
/* start row + document cards: soft depth and lift */
html[data-yo-app] .tthumb{border-radius:12px;border-color:#e7e4f2;box-shadow:var(--yds-sh1);transition:transform .22s var(--yds-ease),box-shadow .22s var(--yds-ease),border-color .2s}
html[data-yo-app] .tcard:hover .tthumb{transform:translateY(-3px);box-shadow:var(--yds-sh2);border-color:#cfc8f5}
html[data-yo-app] .tcard:active .tthumb{transform:scale(.98)}
html[data-yo-app] .tcard.blank .tthumb{background:linear-gradient(160deg,#fff,#f4f2ff)}
html[data-yo-app] .tcard.blank .tthumb .ic{width:52px;height:52px;padding:12px;box-sizing:border-box;border-radius:16px;color:#fff;background-color:var(--yo-app);background-image:var(--yds-gloss);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 20px -10px rgba(27,25,48,.55);stroke-width:2.2}
html[data-yo-app] .tcard.ai .tthumb{background:linear-gradient(160deg,#f3f0ff,#e9f4ff)}
html[data-yo-app] .tcard.ai .tthumb .ic{width:52px;height:52px;padding:12px;box-sizing:border-box;border-radius:16px;color:#fff;background:var(--yds-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 20px -10px rgba(42,31,110,.7);stroke-width:2}
html[data-yo-app] .tcard.more .tthumb{background:#f6f5fb}
/* designed empty states: the portal's gradient icon tile */
html[data-yo-app] .empty .eill{width:88px;height:88px;border-radius:26px;color:#fff;background:var(--yds-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 18px 34px -16px rgba(42,31,110,.7);position:relative}
html[data-yo-app] .empty .eill::after{content:"";position:absolute;inset:-10px;border-radius:32px;border:1.5px dashed rgba(75,63,176,.25)}
html[data-yo-app] .empty .eill .ic{color:#fff;stroke-width:1.8}
html[data-yo-app] .empty h2{color:#1b1930}
/* phone bottom bar: the portal's pill indicator */
html[data-yo-app] .hbar{background:rgba(255,255,255,.92)!important;box-shadow:0 -8px 24px -16px rgba(27,25,48,.3)}
html[data-yo-app] .hbar button{position:relative;isolation:isolate}
html[data-yo-app] .hbar button[aria-current=page]{color:#2a1f6e!important;background:none!important}
html[data-yo-app] .hbar button[aria-current=page]::before{content:"";position:absolute;left:50%;transform:translateX(-50%);top:2px;width:54px;height:30px;border-radius:15px;background:linear-gradient(180deg,#ece8ff,#e2dcff);z-index:-1}
html[data-yo-app] .hbar button[aria-current=page] .ic{color:#4b3fb0}
html[data-yo-app] .fab{background:var(--yds-grad)!important;box-shadow:0 12px 26px -10px rgba(42,31,110,.75)!important}
/* points chip: only with a real balance, styled as a quiet pill */
html[data-yo-app] .pts{background:#f1effc;border:1px solid #e3def8;color:#2a1f6e}
/* motion */
html[data-yo-app] .hmain{animation:ydsIn .38s var(--yds-ease) both}
@keyframes ydsIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){html[data-yo-app] .hmain{animation:none}html[data-yo-app] .tthumb{transition:none}}
/* assistant accent follows the portal purple */
html.yoc-on[data-yo-app]{--yoc-acc:#4b3fb0!important;--yoc-acc2:#6f5fe6!important}
/* dark mode keeps the frosted bar dark */
:root.dark[data-yo-app] :is(header.htop,header#hdr){background:rgba(20,18,48,.86)!important;border-bottom-color:rgba(255,255,255,.08)!important}
:root.dark[data-yo-app] :is(header.htop,header#hdr) :is(.brand,.brand b){color:#efedff}
:root.dark[data-yo-app] :is(header.htop,header#hdr) .hsearch input{background:rgba(255,255,255,.08)!important;color:#efedff!important}
:root.dark[data-yo-app] .nv[aria-current=page]{background:rgba(124,108,240,.22)!important;color:#efedff!important}
:root.dark[data-yo-app] .hbar{background:rgba(20,18,48,.92)!important}
:root.dark[data-yo-app] .hbar button[aria-current=page]{color:#efedff!important}
:root.dark[data-yo-app] .hbar button[aria-current=page]::before{background:rgba(124,108,240,.28)}
:root.dark[data-yo-app] .empty h2{color:#efedff}

/* 20daf818 phone fixes found by the crawl (360/390): editor title bar, chips, check rows */
@media (max-width:420px){
 html[data-yo-app] #titlebar .tmeta{flex:1 1 auto!important;min-width:0!important}
 html[data-yo-app] #titlebar .title-in{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box}
 html[data-yo-app] #titlebar .yox-aitg{padding:0!important;width:40px!important;min-width:40px!important;gap:0!important;flex:none}
 html[data-yo-app] #titlebar .yox-aitg :is(span,kbd){display:none!important}
}
@media (max-width:760px){
 html[data-yo-app] button.chip:not(#status *){min-height:40px}
 html[data-yo-app] label:has(> input[type=checkbox]){min-height:40px;display:flex;align-items:center;gap:8px}
 html[data-yo-app=mail] header#hdr nav.tabs{flex:0 1 auto;min-width:0}
}

@media (max-width:760px){
 html[data-yo-app] .htop .hsearch{order:9;flex:1 1 calc(100% - 52px)!important;min-width:0;max-width:none}
 html[data-yo-app] .htop :is(.yox-aitg,.yo-pre-ai){order:10;margin:6px 0 2px}
}

/* 20daf818: the app tile carries the app's own icon (same family as the portal tiles) */
html[data-yo-app=docs] :is(header.htop,header#titlebar) a.brand img{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M8 13h8M8 17h6M8 9h2'/%3E%3C/svg%3E")}
html[data-yo-app=sheets] :is(header.htop,header#titlebar) a.brand img{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M3 15h18M9 3v18'/%3E%3C/svg%3E")}
html[data-yo-app=slides] :is(header.htop,header#titlebar) a.brand img{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h20'/%3E%3Cpath d='M3 3v11a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3'/%3E%3Cpath d='m7 21 5-5 5 5'/%3E%3Cpath d='M8 11l3-3 2 2 3-3'/%3E%3C/svg%3E")}
html[data-yo-app] :is(header.htop,header#hdr) .acct > .btn:not(.pri):not(.primary){background:#fff!important;border:1px solid #e3def8!important;color:#2a1f6e!important;border-radius:12px}
html[data-yo-app] .nvfoot .lnk{color:#4b3fb0!important}
html[data-yo-app] header.htop button.acct:not(:has(.av)){background:#fff!important;border:1px solid #e3def8!important;color:#2a1f6e!important}

/* 20daf818: phone editor title bar — decorative icon, star and app switcher step aside so the file name is readable (star stays in the file list; apps are one tap away on the home screen) */
@media (max-width:420px){
 html[data-yo-app] #titlebar :is(.dicon,.ib.star,.y365-sw){display:none!important}
 html[data-yo-app] #titlebar .tmeta{margin-inline-start:2px}
}

/* r7 a11y: visible 2px ring on the assistant box (eacd1ba5) */
.yoc-box:focus-within{outline:2px solid var(--yoc-acc2,#4b3fb0);outline-offset:2px}

/* JOURNEY 1a18e3be — friendly motion on the Docs/Sheets/Slides homes (owner 7:27 PM): soft rise of template cards, lift on hover, press feedback. transform only (no layout shift, nothing hidden); off under prefers-reduced-motion */
@keyframes yoRise{from{transform:translateY(10px)}to{transform:none}}
.tcard,.qcard,.dcard{transition:transform .14s ease,box-shadow .2s ease}
.tcard:active,.qcard:active,.dcard:active,.yoc-send:active,.yoc-fab:active{transform:scale(.97)}
@media (hover:hover){.tcard:hover,.qcard:hover,.dcard:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(42,31,110,.14)}}
@media (prefers-reduced-motion:no-preference){
 .tcard,.qcard{animation:yoRise .36s cubic-bezier(.2,.7,.2,1) both}
 .tcard:nth-child(2),.qcard:nth-child(2){animation-delay:.04s}.tcard:nth-child(3),.qcard:nth-child(3){animation-delay:.08s}.tcard:nth-child(4),.qcard:nth-child(4){animation-delay:.12s}.tcard:nth-child(5),.qcard:nth-child(5){animation-delay:.16s}.tcard:nth-child(n+6),.qcard:nth-child(n+6){animation-delay:.2s}
}

/* JOURNEY 1a18e3be (owner 7:49 PM «ما هذا!!»): on phones the assistant is full screen over the file, never a split that squeezes the grid/page/slide into a top band (it showed 5 rows of the invoice and an empty half). Neutralises the split rules above. */
html.yoc-phone:not(.yoc-collapsed):not(.yoc-jfx){--yoc-h:0px}
html.yoc-phone:not(.yoc-collapsed):not(.yoc-jfx) .yoc{top:var(--yoc-vt,0px)!important;bottom:auto!important;height:var(--yoc-vh,100dvh)!important;border-radius:0!important}
html.yoc-phone:not(.yoc-collapsed):not(.yoc-jfx) .yoc-drag{display:none!important}

/* cbe90e4d: the split height is also written inline on <html> (--yoc-h), which beat the neutraliser above in Docs; pin the file to the full screen while the assistant is open on a phone. */
html.yoc-on.yoc-phone:not(.yoc-collapsed):not(.yoc-jfx)>body{height:var(--yoc-vh,100dvh)!important;max-height:var(--yoc-vh,100dvh)!important}

/* tap23c: assistant panel + account + title controls >=44 px on touch screens */
/*touch*/html.yo-touch body .yox-aitg,html.yo-touch body .yox-fab,html.yo-touch body .acct,html.yo-touch body button[aria-label^="الحساب"],html.yo-touch body button[aria-label^="Account"],html.yo-touch body #titleIn,html.yo-touch body .title-in,html.yo-touch body .yoc-ib,html.yo-touch body .yoc-chip,html.yo-touch body .yoc-sugg button,html.yo-touch body .yoc-back,html.yo-touch body .yoc-send,html.yo-touch body .yoc-undo,html.yo-touch body [class*="yoc-"] button{min-height:44px!important;min-width:44px!important;box-sizing:border-box}

/*tap24: 44px touch targets, keyed on html.yo-touch (set by yo-chat.js on any touch screen); ids in :is() so it outranks yo-x.js runtime rules*/
:root.yo-touch.yo-touch.yo-touch :is(#titlebar button,#hLang,#hDark,header.htop .ib,header.htop button,#titlebar .ib,#titlebar .acct,#titlebar .pts,.yox-aitg,.yox-fab,.rtabs button,.rtab,.pst,.rcollapse,#status button,#fxbar button,#sheetbar button,.stab,#thumbs .thadd,#rpanel .rb,#rpanel .rdd,#rpanel .rsel,#rbFont,#rbSize,#nameBox,#zoomR,#yoMic,#yoStatBtn,#yoTools,#stZoom,#stLang,#stPage,#stDir,.yoc button,.yoc-chip,.yoc-ib,.yoc-send,.yoc-sugg button){min-height:44px!important;min-width:44px!important;box-sizing:border-box!important}
:root.yo-touch.yo-touch.yo-touch :is(#titleIn,.title-in){min-height:44px!important;min-width:76px!important;flex:1 1 76px!important;box-sizing:border-box!important}
:root.yo-touch.yo-touch.yo-touch :is(#rpanel,.rrow,.rtablist){align-items:center}
@media (max-width:430px){:root.yo-touch.yo-touch.yo-touch #titlebar .pts{display:none!important}}
@media (pointer:coarse){:root:root:root:root :is(#titlebar button,#hLang,#hDark,header.htop .ib,header.htop button,#titlebar .ib,#titlebar .acct,#titlebar .pts,.yox-aitg,.yox-fab,.rtabs button,.rtab,.pst,.rcollapse,#status button,#fxbar button,#sheetbar button,.stab,#thumbs .thadd,#rpanel .rb,#rpanel .rdd,#rpanel .rsel,#rbFont,#rbSize,#nameBox,#zoomR,#yoMic,#yoStatBtn,#yoTools,#stZoom,#stLang,#stPage,#stDir,.yoc button,.yoc-chip,.yoc-ib,.yoc-send,.yoc-sugg button){min-height:44px!important;min-width:44px!important;box-sizing:border-box!important}}

/*tap24b: the panel header buttons keep 48px so the open animation (scale .97) never dips them under 44*/
:root.yo-touch.yo-touch.yo-touch :is(.yoc-ib,.yoc-new,.yoc-tgl,.yoc-send){min-height:48px!important;min-width:48px!important}
@media (pointer:coarse){:root:root:root:root :is(.yoc-ib,.yoc-new,.yoc-tgl,.yoc-send){min-height:48px!important;min-width:48px!important}}

/*tap25 (r-dom, DOM forensics 2026-10-23):
 1) .rtab: the tap24 min-width:44px replaced the flex default min-width:auto, so with flex-shrink:1 the ribbon tabs shrank to 44px under their text and the labels overlapped (Docs 390). Tabs no longer shrink; .rtabs scrolls sideways with padding at both ends.
 2) panel header: tap24b's 48px never applied (tap24's :is() carries ids, specificity 1,4,0 beat 0,5,0); #yoc lifts it to 1,5,0. The panel's open/pill animations scale the panel, which dips a 44px child under 44 while they run; on touch they slide/fade without scale.
 3) Slides title: on narrow touch screens the title bar «ابدأ العرض» button moves out (F5 / الرئيسية menu keeps it) so the title gets the room.*/
:root.yo-touch.yo-touch.yo-touch :is(#ribbon .rtab,#titlebar~* .rtab,.rtabs .rtab,.rtab){flex:0 0 auto!important;max-width:none!important}
:root.yo-touch.yo-touch.yo-touch .rtabs{overflow-x:auto!important;overflow-y:hidden!important;padding-inline:12px!important;scroll-padding-inline:12px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
:root.yo-touch.yo-touch.yo-touch .rtabs::after{content:"";flex:0 0 12px}
:root.yo-touch.yo-touch.yo-touch #yoc :is(.yoc-ib,.yoc-new,.yoc-tgl,.yoc-send){min-height:48px!important;min-width:48px!important}
@media (pointer:coarse){
 :root:root:root:root :is(#ribbon .rtab,.rtabs .rtab,.rtab){flex:0 0 auto!important;max-width:none!important}
 :root:root:root:root .rtabs{overflow-x:auto!important;overflow-y:hidden!important;padding-inline:12px!important;scroll-padding-inline:12px}
 :root:root:root:root #yoc :is(.yoc-ib,.yoc-new,.yoc-tgl,.yoc-send){min-height:48px!important;min-width:48px!important}
 @keyframes yomPill{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
 @keyframes yocPill{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
 @keyframes yocStopIn{from{opacity:.6}to{opacity:1}}
 @keyframes yomDlg{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
}
html.yo-touch .yoc,html.yo-touch .yoc *{scale:none}
html.yo-touch .yoc-ib:active,html.yo-touch .yoc-send:active{scale:none!important;transform:none!important;opacity:.7}
@media (max-width:430px){:root.yo-touch.yo-touch.yo-touch #titlebar [data-act="show"]{display:none!important}}
@media (max-width:430px){:root.yo-touch.yo-touch.yo-touch.yoc-m-slides #titlebar .acct{display:none!important}}

/*land (r-land, sideways phones 2026-10-23): pixel budget for short landscape screens only.
  Bands measured before: titlebar 51-53, ribbon 100-186, formula bar 55, status 45 -> Sheets grid 14 px at 844x390.
  Cuts: titlebar 40 px (its 44 px taps hang 4 px over the tab row), ribbon = one 44 px tab row; its tools open as a
  floating sheet over the content when a tab is tapped (closes on tap outside), formula bar 44, Sheets status hidden >=640 wide. */
@media (orientation:landscape) and (max-height:500px){
 #ed>#titlebar{height:40px!important;min-height:40px!important;max-height:40px!important;padding-block:0!important;overflow:visible!important;align-items:flex-start!important;position:relative;z-index:7}
 #ed>#titlebar>button,#ed>#titlebar>.btn{margin-top:0!important;margin-bottom:-4px!important}
 #ed>#titlebar #saveSt,#ed>#titlebar .dicon,#ed>#titlebar .acct,#ed>#titlebar .pts{display:none!important}
 #ed>#titlebar .tmeta{height:40px!important;max-height:40px!important;top:0!important;display:flex!important;align-items:center!important}
 #ed>#titlebar #titleIn{height:40px!important;line-height:40px!important;top:0!important}
 #ed>#ribbon{position:relative;z-index:6}
 #ed>#ribbon>.rtabs{height:44px!important;min-height:44px!important;max-height:44px!important;padding-block:0!important;align-items:center!important;overflow-y:hidden!important}
 #ed>#ribbon>#rpanel{display:none!important}
 #ed>#ribbon.yo-lopen>#rpanel{display:flex!important;position:absolute!important;top:100%!important;inset-inline:0!important;z-index:30!important;max-height:calc(100vh - 100px)!important;overflow:auto!important;background:var(--card,#fff)!important;box-shadow:0 10px 24px rgba(15,23,42,.18)!important;border-bottom:1px solid var(--line,#e5e7eb)!important}
 #ed>#fxbar{height:44px!important;min-height:44px!important;max-height:44px!important;padding-block:0!important;align-items:center!important;overflow:hidden!important}
 #ed>#fxbar #fxIn{max-height:40px!important}
}
@media (orientation:landscape) and (max-height:500px) and (min-width:640px){
 .yo-sheets-ed #status,#ed:has(#gridWrap)>#status{display:none!important}
}

/* w29 focus ring (26332e0c): the message box shows a clear 2px ring while its text field has keyboard focus (was a 14%-alpha glow) */
.yoc-box:focus-within{box-shadow:0 0 0 2px var(--yoc-acc2,#6d5fe0)!important}

/* w30 (c14da6a0): phones — every control in the open Copilot sheet is at least 44×44 px and 8 px apart */
html.yoc-phone:not(.yoc-collapsed) .yoc .yoc-ib,html.yoc-phone:not(.yoc-collapsed) .yoc .yoc-send,html.yoc-phone:not(.yoc-collapsed) .yoc .aip-mic,html.yoc-phone:not(.yoc-collapsed) .yoc .aip-spk,html.yoc-phone:not(.yoc-collapsed) .yoc .r4-x{min-width:44px!important;min-height:44px!important}
html.yoc-phone:not(.yoc-collapsed) .yoc .yoc-back{min-height:44px!important}
html.yoc-phone:not(.yoc-collapsed) .yoc .aip-exo,html.yoc-phone:not(.yoc-collapsed) .yoc .aip-mchip,html.yoc-phone:not(.yoc-collapsed) .yoc .aip-pex a{min-height:44px!important;display:inline-flex;align-items:center}
html.yoc-phone:not(.yoc-collapsed) .yoc .yoc-in{min-height:44px!important}
html.yoc-phone:not(.yoc-collapsed) .yoc .yoc-h{gap:8px!important}
html.yoc-phone:not(.yoc-collapsed) .yoc .yoc-ib+.yoc-ib,html.yoc-phone:not(.yoc-collapsed) .yoc .aip-exb+.aip-exo{margin-inline-start:8px}
html.yoc-phone:not(.yoc-collapsed) .yoc .aip-exo+.aip-exo{margin-inline-start:8px}

/* w36 (port of w35): phone collapsed FAB exposes the existing open button (keyboard + screen reader route) */
html.yoc-phone.yoc-collapsed .yoc-h>.yoc-tgl{display:block!important;position:absolute;inset:0;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;color:transparent!important;cursor:pointer;z-index:1}
html.yoc-phone.yoc-collapsed .yoc-h>.yoc-tgl>span{visibility:hidden}
html.yoc-phone.yoc-collapsed .yoc-h>.yoc-tgl:focus-visible{outline:3px solid #fff!important;outline-offset:-5px}

/* w62: on list pages the collapsed assistant is an icon-only launcher, so it no longer sits over cards and their buttons */
html.yoc-desk.yoc-collapsed.yoc-home .yoc-tt,html.yoc-desk.yoc-collapsed.yoc-home .yoc-logo,html.yoc-desk.yoc-collapsed.yoc-home .yoc-h .aip-spk{display:none!important}
html.yoc-desk.yoc-collapsed.yoc-home .yoc-h{padding:6px!important;min-height:0!important}
/* w62-deploy-sheets-20261030T051137Z-17649 */

/* w63-ai-sheets-20261030T062753Z */

/* w91q: phone assistant header — icon buttons keep 48 px targets with 12 px between them (was 16), so the «مساعد اليمامة» title gets its full width (was 78 px for 82 px of text at 360) */
html.yoc-phone:not(.yoc-collapsed) #yoc.yoc .yoc-ib+.yoc-ib,html.yoc-phone:not(.yoc-collapsed) #yoc .yoc-ib+.yoc-ib{margin-inline-start:4px}

/* nov9r28 density: the assistant shows at most 3 suggestions at a time (owner: «كثافة العناصر مزعجة») */
.yoc .aip-pexl > .aip-ex:nth-child(n+4),.yoc .yoc-sugg > .yoc-chip:nth-child(n+4){display:none!important}
