:root{
  --ink:#1b1e28; --ink2:#5b5f6b; --ink3:#9aa0ad;
  --card:#ffffff; --bg:#eef1f6; --line:#e6e9f0;
  --lav:#8b7cf6; --lav-soft:#f0edfe;
  --green:#22c55e; --amber:#f59e0b; --gray:#9aa0ad; --red:#ef4444;
  --r:20px; --shadow:0 10px 34px rgba(28,28,60,.10); --shadow-sm:0 4px 16px rgba(28,28,60,.07);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Inter,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:13px}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:16px;color:var(--ink)}
h2{font-size:13px;font-weight:700}

/* ---------- top bar ---------- */
.topbar{position:fixed;top:0;left:0;right:0;height:58px;display:flex;align-items:center;gap:10px;padding:0 16px;z-index:40;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:9px;min-width:0}
.brand .mark{width:32px;height:32px;border-radius:10px;background:var(--lav);display:grid;place-items:center;flex:none}
.brand .mark svg{width:17px;height:17px}
.brand .name{font-weight:800;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand .sub{font-size:10.5px;color:var(--ink3);white-space:nowrap}
.topbar .spacer{flex:1}
.iconbtn{position:relative;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:var(--ink2);background:#f4f6fa;transition:.15s;flex:none}
.iconbtn:hover{background:#e9edf5;color:var(--ink)}
.iconbtn svg{width:16px;height:16px}
.iconbtn .ndot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid #fff}
.readonly-pill{display:none;font-size:10.5px;color:var(--ink2);background:#f4f6fa;padding:5px 10px;border-radius:999px;white-space:nowrap;border:0;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
body.readonly .readonly-pill{display:block}
body.readonly .only-admin{display:none!important}
.card.only-readonly{display:none}
body.readonly .card.only-readonly{display:flex}

/* ---------- views ---------- */
#views{padding:70px 14px 92px;max-width:980px;margin:0 auto}
.view{display:none;animation:fade .2s ease}
.view.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1}}
#view-agents,#view-calendar,#view-chat,#view-more{max-width:640px;margin:0 auto}
#view-more .card{margin-bottom:12px}

/* ---------- greeting ---------- */
.greet{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:12px 14px;margin-bottom:12px}
.gav{width:42px;height:42px;border-radius:50%;background:#1c1c22;color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px;flex:none}
.gtxt{flex:1;min-width:0}
.ghi{font-weight:800;font-size:15px}
.gsub{font-size:11px;color:var(--ink3);margin-top:1px}
.online{display:flex;align-items:center;gap:6px;background:#eafbf0;color:#15803d;font-weight:600;font-size:10.5px;padding:5px 11px;border-radius:999px;white-space:nowrap}
.online .dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- cards ---------- */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;margin-bottom:12px}
.card .chead{display:flex;align-items:center;gap:9px;padding:13px 14px 10px}
.card .chead .count{font-size:10.5px;color:var(--ink3);background:#f4f6fa;border-radius:999px;padding:2px 8px}
.card .chead .spacer{flex:1}
.cico{width:32px;height:32px;border-radius:10px;background:#f0edfe;color:var(--lav);display:grid;place-items:center;flex:none}
.cico svg{width:16px;height:16px}
.cico.sm{width:28px;height:28px;border-radius:9px}
.cico.sm svg{width:14px;height:14px}
.csub{font-size:10px;color:var(--ink3)}
.card .cbody{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 14px 13px}
.mini{font-size:10.5px;font-weight:600;color:var(--lav);background:var(--lav-soft);border-radius:8px;padding:5px 9px;white-space:nowrap}
.mini:hover{background:#e4defd}
.mini.dark{color:#fff;background:var(--ink)}
.mini.dark:hover{background:#33333d}
.mini.ghostb{background:#f4f6fa;color:var(--ink2);font-size:14px}

/* ---------- office ---------- */
@media (max-width:900px){.office-card .stage{height:320px}}
.agent{cursor:pointer}
.agent .figure{transition:transform .2s}
.agent.mode-typing .figure{animation:bob .55s ease-in-out infinite alternate}
.agent.mode-walking .figure{animation:walk .3s ease-in-out infinite alternate}
.agent.mode-coffee .figure,.agent.mode-idle .figure,.agent.mode-meeting .figure{animation:sway 3.2s ease-in-out infinite alternate}
.agent .bubble{display:none}
.agent.mode-meeting .bubble{display:block}
.agent.available .screen{fill:#cdd6ea}
.agent.working .screen{fill:#b9aefc;filter:drop-shadow(0 0 5px rgba(139,124,246,.8))}
.agent .pill .dot{fill:#22c55e}
.agent.working .pill .dot{fill:#f59e0b}
.agent.paused .pill .dot{fill:#9aa0ad}
.agent.paused{opacity:.5}
@keyframes bob{from{transform:translateY(0)}to{transform:translateY(-3px)}}
@keyframes walk{from{transform:translateY(0)}to{transform:translateY(-4px)}}
@keyframes sway{from{transform:translateY(0) rotate(-1.2deg)}to{transform:translateY(-1px) rotate(1.2deg)}}
.agent .pill{transition:transform .15s}
.agent:hover .pill{transform:translateY(-3px)}
.screenline{font-family:ui-monospace,"SF Mono",Menlo,monospace}
/* mapa expandido */

/* ---------- quick actions ---------- */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.q{background:var(--card);border-radius:16px;box-shadow:var(--shadow-sm);padding:13px 8px 11px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:.15s}
.q:hover{transform:translateY(-2px)}
.qi{width:36px;height:36px;border-radius:12px;display:grid;place-items:center}
.qi svg{width:18px;height:18px}
.qt{font-size:11px;font-weight:700}
.qn{font-size:9.5px;color:var(--ink3)}

/* ---------- home duo ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.duo-r{display:flex;flex-direction:column}
.duo-r .card{margin-bottom:12px}
@media (max-width:760px){.duo{grid-template-columns:1fr}.duo .card{margin-bottom:0}.duo>div>.card{margin-bottom:12px}.duo-r .card:last-child{margin-bottom:0}}

/* team rows */
.tm{display:flex;align-items:center;gap:10px;padding:9px 14px;width:100%;text-align:left;transition:.12s}
.tm:hover{background:#f7f8fc}
.tm .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex:none}
.tm .who{min-width:0;flex:1}
.tm .who .n{font-weight:700;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm .who .r{font-size:10px;color:var(--ink3);display:flex;align-items:center;gap:5px;margin-top:1px}
.tm .who .r .sd{flex:none}
.sd{width:7px;height:7px;border-radius:50%;display:inline-block}
.sd.available,.sd.working{background:var(--green)} .sd.paused{background:var(--amber)} .sd.meeting{background:var(--lav)}
.tm .chev{color:var(--ink3);font-size:13px;flex:none}

/* meetings */
.mt{display:flex;gap:10px;padding:9px 14px;align-items:flex-start}
.mt .mtline{width:3.5px;align-self:stretch;border-radius:3px;background:var(--lav);flex:none}
.mt .mtt{flex:1;min-width:0}
.mt .mh{font-size:10px;color:var(--ink2);font-weight:600}
.mt .mn{font-size:12px;font-weight:700;margin-top:1px}
.mt .mroom{display:inline-block;font-size:9.5px;font-weight:600;padding:2.5px 8px;border-radius:999px;margin-top:4px}
.mt .mavs{display:flex;margin-left:auto;flex:none;padding-top:2px}
.mt .mavs .mav2{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:9px;border:2px solid #fff;margin-left:-7px}
.mt.now .mn::after{content:" · En curso";color:var(--green);font-size:10px;font-weight:700}
.mday{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:10px 14px 2px;font-weight:700}

/* goal */
.goal{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer}
.gico{width:36px;height:36px;border-radius:12px;background:var(--lav-soft);color:var(--lav);display:grid;place-items:center;flex:none}
.gico svg{width:18px;height:18px}
.goal .gt{font-size:12.5px;font-weight:800}
.goal .gg{font-size:10.5px;color:var(--ink3);margin-top:1px}

/* notice */
.notice{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--lav-soft);border-radius:16px;padding:11px 14px;margin-bottom:4px}
.notice .nico{font-size:15px}
.notice .ntxt{flex:1;min-width:0}
.notice .ntxt b{display:block;font-size:10.5px;color:#5b4fc4}
.notice .ntxt span{font-size:10.5px;color:var(--ink2);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notice .nts{font-size:9.5px;color:var(--ink3);flex:none}

/* ---------- missions ---------- */
.mgroup{padding:2px 14px 8px}
.mgroup h3{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:8px 0 6px;display:flex;align-items:center;gap:6px}
.mgroup h3 .n{background:#f4f6fa;border-radius:999px;padding:1px 7px;font-size:9.5px}
.ms{background:#f7f8fc;border-radius:12px;padding:9px 11px;margin-bottom:7px;cursor:pointer}
.ms .t{font-weight:600;font-size:11.5px;line-height:1.35}
.ms .meta{display:flex;align-items:center;gap:6px;margin-top:6px}
.ms .who{font-size:10px;color:var(--ink2);display:flex;align-items:center;gap:5px;min-width:0}
.ms .who .dot2{width:6px;height:6px;border-radius:50%;flex:none}
.ms .actions{display:flex;gap:5px;margin-top:8px}
.ms .actions button{font-size:9.5px;font-weight:600;padding:4px 8px;border-radius:7px;background:#fff;color:var(--ink2);box-shadow:inset 0 0 0 1px var(--line)}
.ms .actions button.del{color:var(--red)}
.empty{padding:14px 16px 18px;color:var(--ink3);font-size:11px;text-align:center}
.pbar{height:6px;background:#eef0f6;border-radius:99px;overflow:hidden;margin-top:8px}
.pfill{height:100%;background:var(--lav);border-radius:99px;transition:width .5s}
.ms .res{margin-top:7px;font-size:10px;color:var(--ink2);background:#f0edfe;border-radius:8px;padding:5px 8px;line-height:1.4}
.resbox{font-size:12px;line-height:1.6;color:var(--ink);background:#f7f8fc;border-radius:12px;padding:12px 14px;white-space:pre-wrap}

/* feed */
.feed{padding-top:4px}
.fitem{display:flex;gap:9px;padding:6px 0;border-bottom:1px solid #f2f4f9;align-items:baseline}
.fitem:last-child{border-bottom:none}
.fitem .ts{font-family:ui-monospace,Menlo,monospace;font-size:9.5px;color:var(--ink3);flex:none;width:52px}
.fitem .tx{font-size:11px;line-height:1.4;color:var(--ink)}
.fitem.new .tx{animation:flash 1.2s}
@keyframes flash{0%{color:var(--lav)}100%{color:var(--ink)}}
.fico{flex:none;width:14px;text-align:center}

/* settings */
.setlist{padding:4px 0 0}
.setrow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font-size:12px;font-weight:600;padding:10px;border-radius:11px}
.setrow:hover{background:#f7f8fc}
.setrow span{width:26px;height:26px;border-radius:8px;background:#f4f6fa;display:grid;place-items:center;font-size:12px;flex:none}

/* ---------- bottom nav ---------- */
.mtabs{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:55;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 10px calc(6px + env(safe-area-inset-bottom))}
@media (min-width:640px){.mtabs{top:58px;bottom:auto;border-top:none;border-bottom:1px solid var(--line);padding:4px 10px}}
@media (min-width:640px){#views{padding-top:110px}}
.mtabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9.5px;font-weight:600;color:var(--ink3);border-radius:12px;padding:5px 0}
.mtabs button.on{color:var(--lav)}
.mtabs button svg{width:19px;height:19px}

/* ---------- sheet / modals ---------- */
.overlay{position:fixed;inset:0;background:rgba(20,20,35,.32);z-index:80;display:none;align-items:center;justify-content:center;padding:18px}
.overlay.open{display:flex}
.sheet{background:var(--card);border-radius:22px;box-shadow:var(--shadow);width:380px;max-width:100%;max-height:calc(100vh - 60px);display:flex;flex-direction:column;overflow:hidden;animation:up .22s ease}
@keyframes up{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.sheet .phead{padding:20px 20px 0;position:relative}
.sheet .close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:10px;background:#f4f6fa;display:grid;place-items:center;color:var(--ink2)}
.sheet .close:hover{background:#e9edf5}
.pers{display:flex;align-items:center;gap:13px}
.pers .av{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:20px;flex:none}
.pers .n{font-size:16px;font-weight:700;line-height:1.25}
.pers .r{font-size:11.5px;color:var(--ink2);margin-top:1px}
.ptag{font-size:10px;color:var(--ink3);margin-top:10px;font-style:italic}
.tabs{flex:none;display:flex;gap:4px;padding:14px 20px 0;border-bottom:1px solid var(--line)}
.tabs button{font-size:11.5px;font-weight:600;color:var(--ink2);padding:8px 12px;border-radius:10px 10px 0 0;position:relative}
.tabs button.on{color:var(--ink)}
.tabs button.on::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2.5px;border-radius:2px;background:var(--lav)}
.pane{padding:16px 20px 20px;overflow-y:auto;min-height:160px}
.pane h4{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin:12px 0 6px}
.pane h4:first-child{margin-top:0}
.pane ul{list-style:none}
.pane ul li{font-size:11.5px;color:var(--ink2);padding:3px 0 3px 14px;position:relative}
.pane ul li::before{content:"";position:absolute;left:2px;top:9px;width:4px;height:4px;border-radius:50%;background:var(--lav)}
.kv{display:flex;justify-content:space-between;font-size:11.5px;padding:5px 0;border-bottom:1px solid #f4f6fa}
.kv span{color:var(--ink3)}.kv b{font-weight:600}
.field{margin-bottom:11px}
.field label{display:block;font-size:10px;font-weight:600;color:var(--ink2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);border-radius:11px;padding:9px 12px;font-size:16px;background:#fbfbfe;outline:none;transition:.15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--lav);background:#fff}
.btn{display:block;width:100%;background:var(--ink);color:#fff;font-weight:600;font-size:12.5px;padding:11px;border-radius:12px;transition:.15s}
.btn:hover{background:#33333d}
.btn.ghost{background:#f4f6fa;color:var(--ink2)}.btn.ghost:hover{background:#e9edf5}
.btn.danger{background:#fdeaea;color:var(--red)}

/* org chart */
.orgwrap{padding:8px 4px 16px;overflow:auto}
.org{display:flex;flex-direction:column;align-items:center;gap:0}
.org .lvl{display:flex;gap:18px;justify-content:center;position:relative;padding-top:26px}
.org .lvl:first-child{padding-top:0}
.onode{background:#fff;border:1.5px solid var(--line);border-radius:13px;padding:8px 13px;text-align:center;min-width:104px;position:relative;box-shadow:var(--shadow-sm)}
.onode .n{font-weight:700;font-size:11.5px}
.onode .r{font-size:9.5px;color:var(--ink3);margin-top:1px}
.onode .bdot{position:absolute;top:-5px;right:-5px;width:11px;height:11px;border-radius:50%;border:2px solid #fff}

/* toast */
.toast{position:fixed;bottom:88px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;font-size:12px;font-weight:500;padding:10px 18px;border-radius:12px;opacity:0;transition:.25s;z-index:90;pointer-events:none;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translateX(-50%)}

/* ---------- chat ---------- */
.card-chat{height:calc(100vh - 58px - 78px - 24px);min-height:380px}
.chatlist{padding:6px 14px 10px;flex:1}
.msg{display:flex;gap:8px;padding:5px 0;align-items:flex-start}
.msg.me{justify-content:flex-end}
.mav{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:10px;flex:none;margin-top:2px}
.mbody{max-width:82%}
.msg.me .mbody{text-align:right}
.mname{font-size:9px;font-weight:700;margin-bottom:2px}
.mbubble{display:inline-block;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px rgba(30,30,60,.06);border-radius:12px;padding:7px 11px;font-size:11.5px;line-height:1.45;text-align:left}
.msg.me .mbubble{background:var(--ink);color:#fff}
.mbubble.onlyimg{padding:4px;background:none;box-shadow:none;backdrop-filter:none}
.chatimg{display:block;max-width:210px;border-radius:12px;box-shadow:0 4px 14px rgba(30,30,60,.14)}
.chatfile{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:13px;padding:8px 12px;text-decoration:none;color:var(--ink);max-width:220px;box-shadow:0 2px 10px rgba(30,30,60,.07)}
.chatfile .cfi{font-size:18px}
.chatfile .cfm b{display:block;font-size:11px;font-weight:700;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chatfile .cfm i{font-size:9.5px;color:var(--ink3);font-style:normal}
#pendingFile{display:flex;align-items:center;gap:6px;margin:0 12px;padding:6px 10px;background:#f0edfe;border:1px solid #e2d9fd;border-radius:10px;font-size:11px}
#pendingFile button{color:var(--ink3);font-size:11px;padding:0 4px}
.chatin{display:flex;gap:7px;padding:10px 12px;border-top:1px solid var(--line)}
.chatin input{flex:1;border:1.5px solid var(--line);border-radius:10px;padding:8px 11px;font-size:16px;background:#fbfbfe;outline:none}
.chatin input:focus{border-color:var(--lav)}
.livemini{display:flex;align-items:center;gap:5px;font-size:9.5px;font-weight:700;color:#15803d}
.livemini .dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 1.6s infinite}
#view-chat{background:linear-gradient(180deg,#eef1f8,#e9edf6)}

/* ---------- profile v2 ---------- */
.prof{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}
.psky{position:relative;padding:30px 18px 14px;text-align:center;border-radius:22px 22px 0 0;overflow:hidden;flex:none;
  background:radial-gradient(130px 60px at 18% 18%, rgba(255,255,255,.95), transparent 70%),radial-gradient(150px 70px at 82% 8%, rgba(255,255,255,.8), transparent 70%),radial-gradient(170px 90px at 62% 42%, rgba(255,255,255,.55), transparent 70%),linear-gradient(180deg,#cfe2fb 0%,#e3defa 55%,#f7f4ff 100%)}
.psky .close{background:rgba(255,255,255,.7)}
.holo{position:absolute;left:14px;top:30px;width:62px;height:62px;border-radius:50%;transform:rotate(-12deg);display:grid;place-items:center;
  background:conic-gradient(from 10deg,#ffd1ec,#c5f6fa,#d9ffb3,#ffe3b3,#e7d1ff,#ffd1ec);box-shadow:0 6px 16px rgba(139,124,246,.35), inset 0 0 0 3px rgba(255,255,255,.65)}
.holo span{font-size:7.5px;font-weight:800;letter-spacing:.06em;color:#3b3352;line-height:1.25;background:rgba(255,255,255,.75);border-radius:50%;width:44px;height:44px;display:grid;place-items:center;text-align:center}
.pava{width:64px;height:64px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;background:var(--c);border:3px solid #fff;box-shadow:0 0 0 2px var(--c),0 8px 18px rgba(60,60,120,.18)}
.pava span{color:#fff;font-weight:800;font-size:24px}
.pname{font-size:17px;font-weight:800;color:#1d2130}
.prole{font-size:11px;color:#6b7186;margin-top:1px}
.pbio{font-size:11.5px;color:#4a4f61;margin:8px auto 0;max-width:250px;line-height:1.45}
.pfoll{font-size:11px;color:#6b7186;margin-top:8px}
.pfoll b{color:#1d2130}
.pwith{font-size:10px;color:#8a90a3;margin-top:3px}
.pchips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px}
.pchip{background:#14161d;color:#fff;font-size:10px;font-weight:600;padding:5px 11px;border-radius:999px}
.pstats3{flex:none;display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.pstats3>div{flex:1;text-align:center;padding:10px 4px}
.pstats3>div+div{border-left:1px solid var(--line)}
.pstats3 span{display:block;font-size:8.5px;letter-spacing:.08em;color:var(--ink3);font-weight:600}
.pstats3 b{font-size:16px;font-weight:800}
.pabout p{font-size:11.5px;color:var(--ink2);line-height:1.5}
.scoreRow{display:flex;align-items:center;justify-content:space-between;margin:14px 0 10px}
.scoreRow .sc{display:flex;align-items:center;gap:8px}
.scoreRow .star{font-size:20px}
.scoreRow b{font-size:18px;font-weight:800;display:block;line-height:1}
.scoreRow .sc span:last-child,.scoreRow .sc div span{font-size:8.5px;letter-spacing:.08em;color:var(--ink3);font-weight:600}
.rangeT{display:flex;gap:4px;background:#f0f2f8;border-radius:999px;padding:3px}
.rangeT button{font-size:10px;font-weight:600;color:var(--ink3);padding:4px 10px;border-radius:999px}
.rangeT button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}
.paidCard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow-sm)}
.paidCard .lbl{font-size:9px;letter-spacing:.1em;color:var(--ink3);font-weight:700}
.paidCard .big{font-size:24px;font-weight:800;margin-top:2px}
.paidCard .up{font-size:11px;font-weight:700;color:var(--green);vertical-align:4px}
.paidCard .sub{font-size:9px;color:var(--ink3);margin-top:2px}
.glassBtn{display:block;margin:14px auto 4px;padding:11px 26px;border-radius:999px;font-size:12.5px;font-weight:700;color:#3b3f6e;
  background:rgba(255,255,255,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);box-shadow:0 8px 24px rgba(90,90,160,.18)}
.pgest{text-align:center;margin-top:10px}
.pgest span{font-size:10px;color:var(--ink3);cursor:pointer;text-decoration:underline}
.pgest .pgb{display:grid;gap:6px;margin-top:8px}

@media (max-width:900px){
  .sheet{width:100%;border-radius:22px 22px 0 0;position:absolute;bottom:0;max-height:86vh}
  .overlay{padding:0;align-items:flex-end}
  .psky{border-radius:22px 22px 0 0}
}

/* ---------- escena: render real + agentes ---------- */
.rbody{display:flex;flex-direction:column;align-items:center;gap:3px}
/* caminata: piernas + rebote */
@keyframes legSwing{from{transform:rotate(16deg)}to{transform:rotate(-16deg)}}
@keyframes walkBob{from{transform:translateY(0)}to{transform:translateY(-1.6px)}}
/* sentado: en escritorio, reunión o café */
@media (max-width:900px){
  .rlabel{font-size:8.5px;padding:2.5px 8px 2.5px 6px}
  .fig{width:19px;height:33px}
  .rname{font-size:8px}
}

/* ---------- escena 3D ---------- */

.mact{display:flex;gap:6px;margin-top:7px}
.btn.mini{padding:5px 10px;font-size:11.5px;border-radius:8px}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink2)}


/* FP movil: joystick y dpad sin gestos del navegador */
canvas.glcanvas { touch-action: none; }

.act-list{display:flex;flex-direction:column;gap:8px}
.act-row{display:flex;gap:10px;align-items:flex-start;background:#f7f8fc;border-radius:14px;padding:11px 12px}
.act-n{width:22px;height:22px;border-radius:8px;background:var(--lav);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;flex:none;margin-top:1px}
.act-t{font-size:13px;line-height:1.45}
.act-meta{font-size:11px;color:var(--ink3);margin-top:8px}
.mini{white-space:nowrap}

/* campos copiables (tokens/URLs) */
.fld{display:flex;flex-direction:column;gap:4px;padding:9px 0;border-bottom:1px solid #f4f6fa}
.fld:last-child{border-bottom:0}
.fld-l{font-size:11px;color:var(--ink3);font-weight:700}
.fld-r code{display:block;font-size:11px;background:#f7f8fc;border-radius:10px;padding:7px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink2)}
.fld-r a{font-size:12px}
.btnrow{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.hint2{font-size:12.5px;color:var(--ink3);margin:0 0 6px;line-height:1.45}
/* plan de ingresos estructurado */
.plan-sec{margin-bottom:13px}
.plan-sec:last-child{margin-bottom:2px}
.plan-sec h3{font-size:13px;font-weight:800;margin:0 0 6px}
.plan-sec p{font-size:13px;line-height:1.5;margin:0 0 6px;color:var(--ink)}
.plan-li{position:relative;padding-left:15px;font-size:13px;line-height:1.5;margin-bottom:4px}
.plan-li:before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--lav)}

/* ---------- Future Growth: negocios, sync IAs, auto-build ---------- */
.pill{font-size:8.5px;font-weight:800;padding:2px 7px;border-radius:999px;letter-spacing:.03em;vertical-align:1px}
.pill.ok{background:#e5f9ec;color:#15803d}
.pill.warn{background:#fdf3d7;color:#b45309}
.pill.bad{background:#fde8e8;color:#dc2626}
.autorow{display:flex;align-items:center;gap:12px;padding:13px 14px}
.autorow>div:first-child{flex:1;min-width:0}
.switch{width:46px;height:28px;border-radius:999px;background:#d7dbe4;position:relative;flex:none;transition:background .2s;padding:0}
.switch .knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.22);transition:left .2s}
.switch.on{background:#22c55e}
.switch.on .knob{left:21px}
.tokrow{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:10.5px;background:#f4f6fa;border-radius:8px;padding:6px 8px;word-break:break-all;margin-top:4px;color:var(--ink2)}
/* ---------- tarjeta de propuesta de contratación en el chat ---------- */
.hirecard{background:rgba(255,255,255,.92);border:1.5px solid var(--lav);border-radius:16px;padding:12px 14px;max-width:280px;box-shadow:0 6px 18px rgba(110,90,220,.14);text-align:left}
.hirecard .hc-top{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;color:var(--lav);letter-spacing:.3px;margin-bottom:8px}
.hirecard .hc-top svg{width:13px;height:13px}
.hirecard .hc-name{font-size:15px;font-weight:800;color:var(--ink)}
.hirecard .hc-role{font-size:12px;font-weight:600;color:var(--ink2);margin-top:1px}
.hirecard .hc-func{font-size:11.5px;color:var(--ink3);margin-top:6px;line-height:1.45}
.hirecard .hc-by{font-size:10px;color:var(--ink3);margin-top:8px}
.hirecard .hc-actions{display:flex;gap:8px;margin-top:10px}
.hirecard .hc-actions .mini{font-size:12px;padding:7px 14px}
.hirecard .hc-status{display:inline-block;margin-top:10px;font-size:11px;font-weight:700;padding:5px 12px;border-radius:99px;background:#e6f7ec;color:#15803d}
.hirecard .hc-status.no{background:#fdeaea;color:#b91c1c}
/* ---------- estado real + progreso ---------- */
.sd.idle{background:var(--red)}
.pbar{position:relative;height:14px;background:#eef0f6;border-radius:99px;margin-top:5px;overflow:hidden}
.pbar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--lav),#6d5df0);border-radius:99px}
.pbar span{position:absolute;right:7px;top:0;line-height:14px;font-size:8.5px;font-weight:800;color:var(--ink2)}

/* ---------- contacto de un toque ---------- */
.ms{position:relative}
.ms.hasact{padding-right:82px}
.ms.hasact3{padding-right:118px}
.qact{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:flex;gap:5px}
.qact a{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.cact{display:flex;gap:8px;margin:2px 0 10px}
.cbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 6px;border-radius:12px;font-size:12.5px;font-weight:700;text-decoration:none}
.cbtn.wa{background:#e5f9ec;color:#15803d;box-shadow:inset 0 0 0 1px #bbe7c8}
.cbtn.telb{background:#e8f2fe;color:#1d4ed8;box-shadow:inset 0 0 0 1px #c3dcfa}
.cbtn.mailb{background:#f0edfe;color:var(--lav);box-shadow:inset 0 0 0 1px #d8cffb}

/* finanzas / hoy */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px;margin-bottom:10px}
.kpi{background:#f6f7fb;border-radius:14px;padding:10px 11px}
.kpi b{display:block;font-size:17px;font-weight:800;letter-spacing:-.2px}
.kpi span{display:block;font-size:10.5px;color:var(--ink3);margin-top:2px}
.kpi.good b{color:#16a34a}
.frow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.frow .fi{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:14px;flex:none;background:var(--lav-soft)}
.frow .ft{flex:1;min-width:0}
.frow .ft b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frow .ft i{display:block;font-style:normal;font-size:10.5px;color:var(--ink3);margin-top:1px}
.frow .fm{font-weight:800;font-size:12.5px;white-space:nowrap}
.fempty{font-size:12px;color:var(--ink3);padding:6px 0 2px}

/* Solicitudes de cambio */
.reqform{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.reqform select,.reqform textarea{font-size:13px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);resize:vertical}
.reqitem{padding:10px 0;border-top:1px solid var(--line)}
.reqitem .n{font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:6px}
.reqitem .r{font-size:12px;color:var(--ink2);margin-top:2px}

/* Propuestas del equipo + Recursos compartidos */
.reqtips{font-size:11.5px;color:var(--ink3);margin:0 0 10px}
.reqchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.rchip{font-size:10.5px;font-weight:600;color:var(--ink2);background:#f4f6fa;border-radius:999px;padding:5px 11px;border:0;cursor:pointer;font-family:inherit}
.rchip.on{background:var(--ink);color:#fff}
.reqnew{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.reqnew summary{font-size:12px;font-weight:700;color:var(--lav);cursor:pointer;list-style:none}
.reqnew summary::-webkit-details-marker{display:none}
.reqnew[open] summary{margin-bottom:8px}
.reqrow{display:flex;gap:7px;flex-wrap:wrap}
.reqrow>*{flex:1;min-width:110px}
.reqform input{font-size:13px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.reqform input:focus,.reqform select:focus,.reqform textarea:focus{border-color:var(--lav);outline:none}
.reqxtra{flex-direction:column;gap:8px}
.reqatts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reqthumbs{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}
.reqthumbs img{width:64px;height:64px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.reqitem .reqthumbs img{width:86px;height:86px}
.rthumb{position:relative}
.rthumb button{position:absolute;top:-5px;right:-5px;width:17px;height:17px;border-radius:50%;background:var(--ink);color:#fff;font-size:9px;border:0;cursor:pointer;line-height:1}
.reqtpl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:10.5px;color:var(--ink3)}
.reqmoney{font-size:12.5px;font-weight:700;color:#15803d;margin-top:4px}
.reqresult{font-size:12px;color:var(--ink2);background:#f4f6fa;border-radius:9px;padding:7px 9px;margin-top:5px}
.pill.money{background:#e5f9ec;color:#15803d}
.pill.exec{background:#eef0ff;color:#5b5fc7}
.rescat{font-size:10.5px;font-weight:800;color:var(--ink3);letter-spacing:.04em;margin:12px 0 0}
.resitem{padding:8px 0;border-top:1px solid var(--line)}
.resitem .n{font-size:12.5px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:6px}
.resitem .r{font-size:12px;color:var(--ink2);margin-top:2px;white-space:pre-line}
.reslink{font-size:11.5px;color:var(--lav);word-break:break-all;display:inline-block;margin-top:2px}
.resdel{background:none;border:0;color:var(--ink3);cursor:pointer;font-size:11px;padding:2px 4px}
.chatin select{border:1.5px solid var(--line);border-radius:10px;padding:8px 6px;font-size:13px;background:#fbfbfe;font-family:inherit}
body:not(.readonly) .only-guest{display:none!important}

/* v20261028b */
.chatin input{min-width:0}
.chatin select{max-width:92px;flex:none}

/* ============ Apple polish (refero: estilo Apple) ============ */
:root{
  --ink:#1d1d1f; --ink2:#515154; --ink3:#6e6e73;
  --bg:#f5f5f7; --line:rgba(0,0,0,.06);
  --blue:#0071e3; --link:#0066cc;
  --r:18px; --shadow-sm:0 2px 12px rgba(0,0,0,.05); --shadow:0 8px 28px rgba(0,0,0,.08);
}
body{font-size:14px}
h2{font-size:16px;font-weight:700;letter-spacing:-.01em}
.card{border-radius:var(--r);box-shadow:var(--shadow-sm);margin-bottom:16px}
.card .chead{padding:16px 18px 8px}
.card .cbody{padding:0 18px 16px}
.card .chead .count{font-size:11px;padding:3px 10px}
.greet{border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.ghi{font-size:17px}
.gsub{font-size:12px}
.quick{gap:12px;margin-bottom:16px}
.q{border-radius:var(--r);padding:16px 8px 13px}
.q .qt{font-size:11.5px;font-weight:600}
.q .qn{font-size:10.5px;color:var(--ink3)}
.mini{border-radius:999px;padding:6px 12px;font-size:11px}
.mini.dark{background:var(--blue)}
.mini.dark:hover{background:#0077ed}
.btn{border-radius:14px;background:var(--blue);font-size:13px;padding:12px}
.btn:hover{background:#0077ed}
.btn.ghost{background:#f5f5f7;color:var(--ink2)}
.btn.mini{border-radius:999px;padding:6px 14px;font-size:12px}
.ms{background:#f5f5f7;border-radius:14px;padding:12px 13px;margin-bottom:8px}
.mact{margin-top:9px}
.tm{padding:12px 16px;border-radius:14px}
.tm:hover{background:#f5f5f7}
.mtabs{background:rgba(255,255,255,.82);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-top:1px solid var(--line)}
.mtabs button.on{color:var(--blue)}
.mtabs button{font-size:10px}
.mbubble{border-radius:16px;padding:9px 13px;font-size:12.5px;line-height:1.5;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.msg.me .mbubble{background:var(--blue)}
.msg{padding:7px 0}
.fld{padding:12px 0;gap:5px}
.fld-l{font-size:12.5px;line-height:1.5}
#view-more .card{margin-bottom:16px}
.duo{gap:16px}
.fitem{padding:8px 0}
.fitem .tx{font-size:12px;line-height:1.5}
#outStatusTitle{font-size:17px!important;font-weight:800}
#outStatusSub{font-size:12px!important;margin-top:4px!important}
.rcard{background:#f5f5f7;border-radius:14px;padding:12px 13px;margin-bottom:8px}
.rcard .rwho{font-weight:700;font-size:13px}
.rcard .rwhat{font-size:12.5px;line-height:1.5;color:var(--ink);margin-top:3px;white-space:pre-line}
.rcard .ract{font-size:11px;color:var(--link);font-weight:600;margin-top:6px}
.rcard .rwtime{font-size:10.5px;color:var(--ink3)}

/* ===== pill nav flotante (ref IQ-X) ===== */
#views{padding-bottom:128px}
.mtabs{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:480px;padding:6px;gap:2px;border-radius:999px;background:rgba(255,255,255,.78);backdrop-filter:blur(30px) saturate(1.5);-webkit-backdrop-filter:blur(30px) saturate(1.5);border:1px solid rgba(0,0,0,.05);box-shadow:0 10px 34px rgba(0,0,0,.14)}
.mtabs button{border-radius:999px;min-height:52px;padding:7px 2px;gap:4px}
.mtabs button.on{background:#e6efff;color:var(--blue)}
.mtabs button svg{width:20px;height:20px}

/* ===== propuestas visuales (tarjetas) ===== */
.reqtips{font-size:11.5px;color:var(--ink3);margin:0 0 10px}
.reqitem{background:#f5f5f7;border:none;border-radius:16px;padding:13px 14px;margin-bottom:10px}
.rcover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;margin-bottom:9px;display:block}
.rhead{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.rhead .rsp{flex:1}
.rtypechip{font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--blue);background:#e6efff;border-radius:999px;padding:3px 8px}
.rtitle2{font-size:14.5px;font-weight:800;line-height:1.3;margin-bottom:2px}
.rby2{font-size:11px;color:var(--ink3);margin-bottom:8px}
.rscenes{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.rscenes::-webkit-scrollbar{display:none}
.rscene{flex:none;width:200px;background:#fff;border-radius:12px;padding:9px 10px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.rscene .rt{font-size:10px;font-weight:800;color:var(--blue);margin-bottom:2px}
.rscene .rx{font-size:11.5px;line-height:1.45;color:var(--ink)}
.rmore{margin-top:8px}
.rmore summary{font-size:11.5px;font-weight:600;color:var(--link);cursor:pointer;list-style:none}
.rmore .rfull{font-size:12px;line-height:1.55;color:var(--ink2);white-space:pre-line;margin-top:6px}
.rbig{display:flex;gap:8px;margin-top:10px}
.rbig .btn{flex:1;padding:12px;font-size:13px;border-radius:14px}
.reqmoney{margin-top:8px;font-size:12px;font-weight:700;color:#15803d}
#homeReqs .mact{display:flex;gap:8px}
#homeReqs .btn.mini{flex:1;padding:10px;font-size:12.5px;border-radius:12px}
.mtabs{top:auto;right:auto}
@media (min-width:640px){#views{padding-top:70px}}

/* ============ Ramp refresh (2026-10-29) ============ */
:root{
  --ink:#0c0a08; --ink2:#6d6c6b; --ink3:#8a8784;
  --card:#ffffff; --bg:#f4f2f0; --line:#e5e7eb;
  --lav:#0c0a08; --lav-soft:#f4f2f0;
  --acc:#e4f222;
  --r:14px; --shadow:none; --shadow-sm:none;
}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Arial,sans-serif}
.card,.greet,.q,.goal,.notice{box-shadow:none!important;border:1px solid var(--line)}
.topbar{box-shadow:none}
.mtabs{box-shadow:0 10px 34px rgba(0,0,0,.10)}
h1,h2,h3,.ghi,.bname{letter-spacing:-.01em}
.fx-kicker{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:2px}
.fx-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.fx-row:first-child{border-top:none}
.fx-ft{flex:1;min-width:0}
.fx-ft b{display:block;font-size:12.5px;font-weight:500;line-height:1.35}
.fx-ft i{display:block;font-style:normal;font-size:10.5px;color:var(--ink2);margin-top:2px;line-height:1.45}
.fx-amt{font-size:13px;font-weight:600;white-space:nowrap;text-align:right}
.fx-lbl{display:inline-block;font-size:8.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 7px;border-radius:4px;margin-top:3px}
.fx-lbl.hot{background:var(--acc);color:var(--ink)}
.fx-lbl.line{border:1px solid var(--smoke,#d3d3d3);color:var(--ink2)}
.fx-lbl.ink{background:var(--ink);color:#fff}
.fx-btn{display:inline-block;background:var(--acc)!important;color:var(--ink)!important;font-weight:600;font-size:10.5px;letter-spacing:.05em;padding:9px 14px;border-radius:6px;white-space:nowrap;text-transform:uppercase;border:none;cursor:pointer}
.fx-btn.ghost{background:var(--card)!important;border:1px solid var(--smoke,#d3d3d3)!important;color:var(--ink)!important}
.fx-bar{height:3px;background:var(--line);border-radius:99px;overflow:hidden}
.fx-bar i{display:block;height:100%;background:var(--ink)}
.fx-bar i.acc{background:var(--acc)}
.fx-note{font-size:10.5px;color:var(--ink3);line-height:1.55;margin-top:10px}
.fx-note b{color:var(--ink);font-weight:500}
.fx-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.fx-chip{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink2)}
.fx-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.fx-big{font-size:26px;font-weight:500;letter-spacing:-.02em}
.fx-frow{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fx-frow:last-of-type{margin-bottom:0}
.fx-flabel{flex:0 0 96px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.fx-fnum{font-size:13px;font-weight:600;flex:0 0 34px;text-align:right}
.fx-mini{font-size:10px;padding:5px 9px;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--ink2);cursor:pointer;white-space:nowrap}
.fx-mini:hover{border-color:var(--ink);color:var(--ink)}

/* Fidelity pass 2 (2026-10-29): neutral shell per approved Ramp mockup */
:root{--blue:#0c0a08;--link:#0c0a08}
.q .qi{background:#f4f2f0!important;color:#0c0a08!important}
.mtabs button.on{background:transparent;color:var(--ink)}
.rtypechip{color:var(--ink2);background:#f4f2f0}
.mini.dark{background:var(--ink)}
