/* iOS-like feedback & gestures (presentation only) */
.hx-sw{position:fixed;left:-60px;top:0;width:40px;height:24px;opacity:.01;pointer-events:none;overflow:hidden;margin:0}
.hx-sw input{margin:0}
/* pressed feedback */
.pressed{transform:scale(.95)!important;filter:brightness(.94) saturate(1.05);transition:transform .09s ease-out,filter .09s!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--pink,#F3A6B8) 30%,transparent)!important}
.tabs a.pressed{transform:scale(.88)!important}
.rwrap.pressed{transform:scale(.985)!important;box-shadow:none!important;filter:brightness(.96)}
.kpi.pressed,.ios-row.pressed{transform:scale(.985)!important}
.ios-ring{position:fixed;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;pointer-events:none;z-index:60;background:radial-gradient(circle,color-mix(in srgb,var(--pink,#F3A6B8) 55%,transparent),transparent 70%);animation:iosring .5s ease-out forwards}
@keyframes iosring{from{transform:scale(.3);opacity:.9}to{transform:scale(1.8);opacity:0}}
.rrow,.rwrap,.entry{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.ios-nofx.fx-page,#app.ios-nofx{animation:none!important}
#app{will-change:auto}
/* edge-back dim */
html.g-edge body{overflow-x:hidden}
/* settings switch */
.ios-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;margin:0;font-weight:700;border-bottom:1px solid var(--line,rgba(0,0,0,.08))}
html.no-native-switch .ios-sw{appearance:none;-webkit-appearance:none;width:51px;height:31px;border-radius:99px;background:rgba(120,120,128,.32);position:relative;cursor:pointer;transition:background .25s;flex:none;margin:0}
html.no-native-switch .ios-sw::after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
html.no-native-switch .ios-sw:checked{background:#34C759}
html.no-native-switch .ios-sw:checked::after{transform:translateX(20px)}
html.no-native-switch .ios-sw:active::after{width:33px}
html.no-native-switch .ios-sw:checked:active::after{transform:translateX(14px)}
/* segmented control with sliding thumb */
.seg.ios-seg{position:relative;gap:0;padding:3px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-b)}
.seg.ios-seg.mini{padding:3px}
.seg.ios-seg>.seg-thumb{position:absolute;left:0;top:0;border-radius:999px;background:var(--solid);box-shadow:0 3px 10px rgba(0,0,0,.18);transition:transform .45s cubic-bezier(.32,1.3,.5,1),width .45s cubic-bezier(.32,1.3,.5,1),height .3s,opacity .2s;pointer-events:none;z-index:0;opacity:0}
.seg.ios-seg span,.seg.ios-seg button{position:relative;z-index:1;background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none;transform:none}
.seg.ios-seg input:checked+span,.seg.ios-seg button.on,.seg.ios-seg button.btn:not(.ghost){color:var(--solid-t)!important}
.seg.ios-seg span:hover,.seg.ios-seg button:hover{transform:none!important}
.seg.ios-seg span.pressed,.seg.ios-seg button.pressed{transform:scale(.94)!important}
.seg.ios-seg label{z-index:1}
/* context menu */
.ctx-bd{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:background .25s,backdrop-filter .25s,-webkit-backdrop-filter .25s;touch-action:none}
.ctx-bd.on{background:rgba(0,0,0,.28);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}
.ctx-prev{position:fixed!important;margin:0!important;transform:scale(1);transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;pointer-events:none;border-radius:20px;overflow:hidden;background:var(--bg,#fff);filter:none!important}
.ctx-bd.on .ctx-prev{transform:scale(1.03);box-shadow:0 18px 50px rgba(0,0,0,.35)}
.ctx-menu{position:fixed;padding:6px;border-radius:18px;background:var(--hdr,rgba(255,255,255,.9));backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);box-shadow:0 14px 44px rgba(0,0,0,.3);border:1px solid var(--line,rgba(0,0,0,.08));transform:scale(.6);opacity:0;transition:transform .38s cubic-bezier(.34,1.56,.64,1),opacity .2s}
.ctx-bd.on .ctx-menu{transform:scale(1);opacity:1}
.ctx-menu button{display:flex;justify-content:space-between;align-items:center;width:100%;height:52px;padding:0 16px;border:0;border-radius:12px;background:transparent;font:inherit;font-weight:700;color:inherit;cursor:pointer}
.ctx-menu button+button{border-top:1px solid var(--line,rgba(0,0,0,.08));border-radius:0}
.ctx-menu button:active{background:rgba(120,120,128,.18)}
.ctx-menu button.danger{color:#E5484D;background:transparent}
.ctx-menu .pressed{transform:none!important;box-shadow:none!important;background:rgba(120,120,128,.18)}
@media (prefers-reduced-motion:reduce){.ios-ring{display:none}.ctx-menu,.ctx-prev,.ctx-bd{transition:none}}
