/* Roger app tokens (src/roger.css): dark bg #1C1C1E card #2C2C2E soft #3A3A3C sub #8E8E93 acc #0A84FF; light bg #F2F2F7 card #fff soft #E9E9EE; radius 12 */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{--font:-apple-system,"SF Pro Text",Inter,system-ui,"Segoe UI",Roboto,sans-serif;font-family:var(--font);font-size:16px;line-height:1.3;-webkit-font-smoothing:antialiased;background:#0b0e1c}
body[data-theme=dark]{--bg:#1C1C1E;--ink:#fff;--sub:#8E8E93;--card:#2C2C2E;--ln:rgba(84,84,88,.65);--soft:#3A3A3C;--them:#2C2C2E;--bar:rgba(28,28,30,.94);--glass:rgba(28,28,30,.82);--track:#3A3A3C;color-scheme:dark}
body[data-theme=light]{--bg:#F2F2F7;--ink:#000;--sub:#8A8A8E;--card:#fff;--ln:#E5E5EA;--soft:#E9E9EE;--them:#E9E9EB;--bar:rgba(249,249,249,.94);--glass:rgba(255,255,255,.86);--track:#E9E9EE;color-scheme:light}
body{--acc:#0A84FF;--ok:#34C759;--warn:#FF9500;--danger:#FF3B30;--r:12px;background:var(--bg);color:var(--ink)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}
.ic{width:22px;height:22px;flex:none}
#app{position:relative;height:100dvh;width:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
.mk{position:absolute;z-index:60;left:6px;top:4px;display:flex;gap:6px;align-items:center;font-size:10.5px;font-weight:600;background:rgba(0,0,0,.55);color:#fff;border-radius:99px;padding:2px 8px;backdrop-filter:blur(6px)}
.mk a{color:#9cc8ff;text-decoration:none}.mk button{font-size:10.5px;color:#fff;font-weight:600}
/* office stage */
.ostage{position:relative;flex:1;min-height:0;display:flex;justify-content:center;align-items:flex-start;overflow:hidden;background:#0b0e1c;--ab:1;--as:1}
.oview{position:relative;overflow:hidden;background:#000;touch-action:pan-y}
.oscale{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.oroom{position:absolute;top:0;bottom:0;left:0;width:100%;transition:transform .38s cubic-bezier(.3,.8,.3,1)}
.oroom canvas{width:100%;height:100%;display:block;image-rendering:auto}
.ohot{position:absolute;background:none;border:0;cursor:pointer;border-radius:8px}
.ohot:focus-visible,.oag:focus-visible{outline:2px solid var(--acc)}
.oag{position:absolute;border:0;background:none;padding:0;cursor:pointer;filter:brightness(var(--ab)) saturate(var(--as));animation:bob 2.4s ease-in-out infinite}
.oag svg{width:100%;display:block;overflow:visible}
.oag.ghost{opacity:.5;filter:grayscale(1) brightness(var(--ab))}
.oag.sel{filter:drop-shadow(0 0 5px #fff) brightness(var(--ab))}
.oag.you{animation:walk 1.6s ease-in-out infinite}
.oag .st{position:absolute;top:2%;right:-2%;width:15%;aspect-ratio:1;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 4px rgba(0,0,0,.5)}
.oag .st.need{animation:blink 1.1s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-3%)}}@keyframes walk{0%,100%{transform:translateY(0)}50%{transform:translateY(-5%)}}@keyframes blink{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.oag,.oag.you,.oag .st.need{animation:none}}
.otag{position:absolute;left:50%;top:100%;transform:translate(-50%,2px);white-space:nowrap;font:700 10px var(--font);background:rgba(20,22,32,.82);color:#fff;border-radius:99px;padding:2px 7px;border:1px solid rgba(255,255,255,.18);pointer-events:none}
.otag.need{background:#FF9500;color:#1b1200;border-color:#fff}
/* pop-up (tap a character) */
.opop{position:absolute;z-index:30;width:min(300px,calc(100% - 12px));background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--ln);border-radius:16px;padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.45);color:var(--ink);animation:popin .14s ease-out}
.opop::after{content:"";position:absolute;left:var(--ax,50%);bottom:-7px;width:12px;height:12px;background:var(--glass);border-right:1px solid var(--ln);border-bottom:1px solid var(--ln);transform:translateX(-50%) rotate(45deg)}
.opop.below::after{bottom:auto;top:-7px;transform:translateX(-50%) rotate(225deg)}
@keyframes popin{from{opacity:0;transform:translateY(6px) scale(.96)}}
.opop .pt{display:flex;gap:10px;align-items:center}.opop .pav{width:56px;height:60px;flex:none;border-radius:12px;background:var(--soft);padding:3px}
.opop .pav svg{width:100%;height:100%}.opop .pi{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.opop .pi b{font-size:17px}
.opop .pi small{font-size:12px;color:var(--sub);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.opop .pbg{align-self:flex-start;margin-top:3px;font-size:11px;font-weight:700;color:#06120a;padding:1px 8px;border-radius:99px}
.opop .px{align-self:flex-start;width:28px;height:28px;border-radius:50%;background:var(--soft);font-size:18px;line-height:1;color:var(--sub)}
.opop .pjob{margin-top:9px;font-size:13px;line-height:1.35}.opop .pjob small{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--sub);margin-bottom:2px}
.opop .jt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pbar{height:8px;border-radius:99px;background:var(--track);margin-top:7px;overflow:hidden}.pbar i{display:block;height:100%;border-radius:99px;background:var(--acc)}
.ppct{display:flex;justify-content:space-between;font-size:11px;color:var(--sub);margin-top:3px}
.pbtn{display:flex;gap:6px;margin-top:10px}.pbtn button{flex:1;min-height:44px;border-radius:12px;background:var(--soft);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}
.pbtn button:first-child{background:var(--acc);color:#fff}
/* generic HUD bits */
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:99px;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ln);font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot.g{background:var(--ok)}.dot.o{background:var(--warn)}.dot.b{background:var(--acc)}.dot.n{animation:blink 1.1s infinite}
.fab{width:48px;height:48px;border-radius:50%;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ln);display:grid;place-items:center;color:var(--ink);position:relative}
.fab.acc{background:var(--acc);color:#fff;border-color:transparent}
.badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 4px;border:2px solid var(--bg)}
.tabs{flex:none;display:flex;padding:6px 8px 20px;background:var(--bar);border-top:.5px solid var(--ln);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:relative;z-index:20}
.tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;color:var(--sub);font-size:10.5px;font-weight:500;position:relative}.tabs button.on{color:var(--acc)}.tabs .ic{width:25px;height:25px}
.tabs .tdot{position:absolute;top:2px;left:calc(50% + 6px);width:9px;height:9px;border-radius:50%;background:var(--danger)}
.prog{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--sub)}.prog .pbar{flex:1;margin:0}
.jrow{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;min-height:56px;width:100%;text-align:left;border-bottom:.5px solid var(--ln)}
.jrow .jn{font-weight:700;font-size:14px;min-width:44px;color:var(--sub)}.jrow .jb{flex:1;min-width:0}.jrow .jt{font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jrow .jm{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);margin-top:3px}.jrow .jm .pbar{width:70px;margin:0;height:6px}
.pill{font-size:11px;font-weight:700;padding:1px 8px;border-radius:99px;color:#06120a;flex:none}.pill.run{background:var(--ok)}.pill.need{background:var(--warn)}.pill.queued{background:var(--soft);color:var(--sub)}
.seg{display:flex;background:var(--soft);border-radius:10px;padding:2px;gap:2px}.seg button{flex:1;min-height:32px;border-radius:8px;font-size:13px;font-weight:600;color:var(--sub);padding:0 10px;white-space:nowrap}.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.2)}
/* sheets */
.sbg{position:absolute;inset:0;z-index:40;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s}.sbg.on{opacity:1;pointer-events:auto}
.sheet{position:absolute;z-index:41;left:0;right:0;bottom:0;max-height:88%;background:var(--bg);border-radius:16px 16px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.4);display:flex;flex-direction:column;transform:translateY(105%);transition:transform .26s cubic-bezier(.32,.72,0,1);overflow:hidden}
.sheet.on{transform:none}.sheet .grab{width:36px;height:5px;border-radius:3px;background:var(--sw,#48484A);margin:8px auto 2px;flex:none}
.sheet .sh{display:flex;align-items:center;gap:10px;padding:8px 14px 10px;flex:none}.sheet .sh h2{font-size:18px;flex:1}.sheet .sx{width:32px;height:32px;border-radius:50%;background:var(--soft);font-size:20px;color:var(--sub)}
.sheet .sbody{overflow:auto;flex:1;min-height:0}
@media (min-width:900px){.sheet{left:auto;right:16px;bottom:16px;top:16px;width:420px;max-height:none;border-radius:16px;transform:translateX(120%)}.sheet .grab{display:none}}
.toast{position:absolute;z-index:70;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:99px;font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis}.toast.on{opacity:1;transform:translate(-50%,0)}
/* chat (bubbles copied from the Roger app roger.css) */
.chatv{display:flex;flex-direction:column;height:100%;min-height:340px}.msgs{flex:1;overflow:auto;padding:10px 14px;display:flex;flex-direction:column;gap:6px}
.msg{max-width:82%;display:flex;flex-direction:column}.msg.me{align-self:flex-end;align-items:flex-end}.msg.them{align-self:flex-start}
.bub{padding:9px 14px;border-radius:19px;font-size:16px;line-height:1.35;background:var(--them);overflow-wrap:anywhere}.me .bub{background:var(--acc);color:#fff;border-bottom-right-radius:6px}.them .bub{border-bottom-left-radius:6px}
.comp{display:flex;gap:8px;align-items:center;padding:8px 12px 12px;border-top:.5px solid var(--ln)}.comp input{flex:1;min-height:44px;border-radius:22px;border:1px solid var(--ln);background:var(--card);color:var(--ink);padding:0 14px;font-size:16px}
.comp .send{width:44px;height:44px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center}
.callv{padding:24px 18px 26px;text-align:center}.callv .cav{width:96px;height:100px;margin:0 auto 10px;border-radius:24px;background:var(--soft);padding:6px}.callv .cav svg{width:100%;height:100%}
.callv h3{font-size:22px}.callv p{color:var(--sub);font-size:14px;margin:4px 0 18px;min-height:20px}.callv .cb{display:flex;gap:14px;justify-content:center}
.callv .cb button{width:68px;height:68px;border-radius:50%;background:var(--soft);display:grid;place-items:center}.callv .cb .go{background:var(--ok);color:#fff}.callv .cb .end{background:var(--danger);color:#fff}
.profv{padding:6px 16px 22px;font-size:15px}.profv dl{display:grid;grid-template-columns:96px 1fr;gap:10px 12px;margin-top:10px}.profv dt{color:var(--sub);font-size:13px}.profv .top{display:flex;gap:12px;align-items:center}.profv .pav{width:76px;height:80px;border-radius:16px;background:var(--soft);padding:4px;flex:none}.profv .pav svg{width:100%;height:100%}
.empty{padding:30px;text-align:center;color:var(--sub);font-size:14px}

.otag:empty{display:none}
body{--tb:0px}@media (max-width:899px){body{--tb:84px}}
