/* PAW reading controls; the governed ivory MFGAxis artwork stays source-exact. */
.cte-reader-dock { position:fixed; right:max(18px,env(safe-area-inset-right)); bottom:max(18px,env(safe-area-inset-bottom)); z-index:9996; display:flex; align-items:flex-end; gap:10px; font-family:Arial,sans-serif; color:#172c31; }
.cte-reader-dock [hidden], .cte-reader-dock[hidden] { display:none!important; }
.cte-reader-dock button { font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.cte-reader-dock button:focus-visible,.cte-reader-dock input:focus-visible { outline:3px solid #377b90; outline-offset:4px; }
.cte-reader-dock__hub { width:76px; height:76px; flex:none; border:1px solid #446065; border-radius:50%; background:#152d34; color:#f5f3ed; box-shadow:0 5px 22px #001d3233; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:9px; }
.cte-reader-dock__hub img { width:58px; height:auto; }
.cte-reader-dock__hub span { font-size:12px; line-height:10px; letter-spacing:3px; }
.cte-reader-dock__hub:hover,.cte-reader-dock__hub[aria-expanded=true] { background:#25545f; }
.cte-reader-dock__pins { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; max-width:min(244px,calc(100vw - 132px)); padding-bottom:12px; }
.cte-reader-dock__pin { position:relative; display:grid; place-items:center; width:44px; height:44px; border:1px solid #bfd0ce; border-radius:50%; color:#214c56; background:#fffdf8; box-shadow:0 3px 12px #152d3426; padding:10px; }
.cte-reader-dock__pin svg { width:23px; height:23px; }
.cte-reader-dock__pin span { display:none; position:absolute; bottom:52px; white-space:nowrap; right:0; padding:6px 9px; background:#152d34; color:#fffdf8; border-radius:5px; font-size:12px; }
.cte-reader-dock__pin:hover span,.cte-reader-dock__pin:focus-visible span { display:block; }
.cte-reader-dock svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cte-reader-wheel { position:absolute; bottom:88px; right:0; width:min(324px,calc(100vw - 32px)); max-height:calc(100dvh - 120px); overflow:auto; overscroll-behavior:contain; border:1px solid #c8d6d2; border-radius:24px; background:#fffdf8; box-shadow:0 14px 55px #12242e38; padding:12px; box-sizing:border-box; }
.cte-reader-wheel__heading { display:flex; align-items:center; justify-content:space-between; padding-left:7px; font-size:14px; }
.cte-reader-wheel__heading button { display:grid; place-items:center; width:36px; height:36px; color:#34515b; background:transparent; border:0; border-radius:50%; font-size:26px; }
.cte-reader-wheel__heading button:hover { background:#eef2ee; }
.cte-reader-wheel__orbit { position:relative; width:100%; height:292px; }
.cte-reader-wheel__orbit:before { content:""; position:absolute; inset:40px 42px; border:1px solid #d9e2dc; border-radius:50%; }
.cte-reader-wheel__center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:105px; height:105px; border-radius:50%; background:#152d34; color:#f5f3ed; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:9px; box-shadow:inset 0 0 0 5px #ffffff0a; }
.cte-reader-wheel__center img { width:80px; height:auto; }
.cte-reader-wheel__center span { font-size:9px; letter-spacing:.02em; }
.cte-reader-wheel__action { position:absolute; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:78px; min-height:64px; padding:5px 3px; transform:translate(-50%,-50%); border:0; border-radius:14px; color:#2b5360; background:#fffdf8; }
.cte-reader-wheel__action svg { width:24px; height:24px; }
.cte-reader-wheel__action span { font-size:11px; font-weight:700; line-height:1.2; max-width:76px; }
.cte-reader-wheel__action:hover { background:#edf2ec; }
.cte-reader-wheel__action:disabled,.cte-reader-dock__pin:disabled { opacity:.4; cursor:default; }
.cte-reader-wheel__action[data-cte-action=top] { left:50%; top:11%; }
.cte-reader-wheel__action[data-cte-action=next] { left:85%; top:31%; }
.cte-reader-wheel__action[data-cte-action=bottom] { left:85%; top:70%; }
.cte-reader-wheel__action[data-cte-action=footer] { left:50%; top:89%; }
.cte-reader-wheel__action[data-cte-action=previous] { left:15%; top:70%; }
.cte-reader-wheel__action[data-cte-action=notes] { left:15%; top:31%; }
.cte-reader-wheel__customize { width:100%; border:1px solid #cfdad5; border-radius:12px; min-height:42px; background:#f2f5ef; color:#244c55; font-size:12px!important; font-weight:700!important; }
.cte-reader-wheel__preferences { padding:8px; }
.cte-reader-wheel__preferences p { font-size:13px; line-height:1.5; margin:8px 0; }
.cte-reader-wheel__preferences label { display:flex; align-items:center; min-height:42px; gap:10px; font-size:13px; }
.cte-reader-wheel__preferences input { width:18px; height:18px; accent-color:#285e6a; }
.cte-reader-wheel__preferences small { color:#54706b; font-size:11px; }
.cte-reader-wheel__status { font-size:12px; line-height:1.4; margin:0; }
.cte-reader-wheel__status:not(:empty) { padding:10px 8px 0; }

/* The public owner, or the reader-only fallback, reserves clear screen space. */
.cte-reader-dock { position:static; z-index:auto; }
.cte-reader-dock__hub.cte-footerAccessToggle { width:76px; height:76px; box-shadow:none; }
.cte-reader-dock__hub.cte-footerAccessToggle img { width:58px; }
.cte-reader-dock .cte-reader-wheel,.cte-reader-notes { position:fixed; right:max(18px,env(safe-area-inset-right)); bottom:100px; z-index:99995; }
.cte-reader-dock .cte-reader-wheel { max-height:calc(100dvh - 116px); }
.cte-reader-dock__pin { position:fixed; left:var(--cte-reader-pin-left,auto); top:var(--cte-reader-pin-top,auto); z-index:9996; transform:none; box-shadow:none; scroll-margin:6px; }
.cte-reader-dock__pin svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cte-reader-dock__pin { font:14px Arial,sans-serif; cursor:pointer; }
.cte-reader-dock__pin[hidden] { display:none!important; }
.cte-reader-dock__pin[data-reader-placement=deferred],.cte-reader-dock__hub[data-cte-footer-placement=deferred] { visibility:hidden; pointer-events:none; }
.cte-reader-dock__pin:focus-visible { outline:3px solid #377b90; outline-offset:2px; }
.cte-reader-pin-dock { height:0; }
.cte-reader-pin-dock.is-docked { height:auto; padding:8px; }
.cte-reader-dock__pin[data-reader-placement=docked] { position:relative; left:auto; top:auto; margin:auto; }
.cte-reader-notes { width:min(370px,calc(100vw - 36px)); max-height:calc(100dvh - 130px); overflow:auto; overscroll-behavior:contain; border:1px solid #c8d6d2; border-radius:18px; background:#fffdf8; padding:18px; box-sizing:border-box; box-shadow:0 14px 55px #12242e38; }
.cte-reader-notes p { font-size:13px; line-height:1.5; }
.cte-reader-notes [data-cte-note-title] { border-left:3px solid #2e6773; padding-left:10px; font-weight:700; }
.cte-reader-notes textarea { display:block; box-sizing:border-box; width:100%; font:16px/1.5 Arial,sans-serif; padding:10px; border:1px solid #bacdc7; border-radius:8px; resize:vertical; }
.cte-reader-notes form>button { min-height:44px; padding:8px 14px; margin-top:10px; border:1px solid #cfdad5; border-radius:10px; background:#edf2ec; color:#244c55; }
.cte-issueGate-lock .cte-reader-dock,.cte-issueGate-lock .cte-reader-dock__hub,.cte-issueGate-lock .cte-reader-dock__pin { visibility:hidden; pointer-events:none; }
@media(max-width:720px) {
 .cte-reader-dock__hub.cte-footerAccessToggle { width:66px; height:66px; }
 .cte-reader-dock__hub.cte-footerAccessToggle img { width:51px; }
 .cte-reader-dock .cte-reader-wheel,.cte-reader-notes { right:12px; bottom:90px; }
 .cte-reader-wheel__orbit { height:278px; }
}
@media(max-height:500px) {
 .cte-reader-dock__hub.cte-footerAccessToggle { width:44px; height:44px; padding:5px; gap:1px; }
 .cte-reader-dock__hub.cte-footerAccessToggle img { width:34px; }
 .cte-reader-dock__hub.cte-footerAccessToggle span { font-size:9px; line-height:6px; }
 .cte-reader-dock .cte-reader-wheel { bottom:62px; max-height:calc(100dvh - 78px); }
 .cte-reader-wheel__orbit { height:200px; }
 .cte-reader-wheel__center { width:76px; height:76px; gap:5px; }
 .cte-reader-wheel__center img { width:59px; }
 .cte-reader-wheel__center span { font-size:8px; }
 .cte-reader-wheel__action { min-height:48px; gap:3px; }
 .cte-reader-wheel__action svg { width:20px; height:20px; }
 .cte-reader-wheel__action span { font-size:10px; }
}
@media(prefers-reduced-motion:no-preference) { .cte-reader-wheel { animation:cteWheelOpen .16s ease-out; transform-origin:bottom right; } @keyframes cteWheelOpen { from { opacity:0; transform:translateY(8px) scale(.97); } to { opacity:1; transform:none; } } }
