/* Avatars HQ: calm, warm, light. System fonts only, no external files. */
:root{
  --bg:#f3f1ed;--side:#f9f8f5;--card:#fff;
  --ink:#1c1917;--ink2:#292524;--sub:#57534e;--mute:#78716c;--faint:#a8a29e;
  --line:#e8e4de;--line2:#d9d3ca;--tline:#cbc3b7;
  --gold:#a16207;--ok:#15803d;--warn:#b45309;--bad:#b42318;
  --focus:#6366f1;
  --sh1:0 1px 2px rgba(41,37,36,.05),0 6px 18px rgba(41,37,36,.06);
  --sh2:0 2px 6px rgba(41,37,36,.07),0 18px 40px rgba(41,37,36,.13);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sidew:252px;
  --c:#57534e;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
h1,h2,h3,p{margin:0}
svg{width:1em;height:1em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
svg .f{fill:currentColor;stroke:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nojs{text-align:center;padding:40px}
.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--mute);font-size:15px}

/* ── buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:999px;border:1px solid var(--line2);background:#fff;color:var(--ink);font-size:14.5px;font-weight:650;line-height:1.2;white-space:nowrap;text-decoration:none;box-shadow:0 1px 2px rgba(41,37,36,.05);transition:background .15s,box-shadow .15s,transform .15s,border-color .15s}
.btn:hover{border-color:#c9c1b6;box-shadow:0 4px 12px rgba(41,37,36,.09)}
.btn:active{transform:translateY(1px)}
.btn svg{width:17px;height:17px}
.btn.pri{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 6px 16px rgba(28,25,23,.18)}
.btn.pri:hover{background:#000}
.btn.danger{color:var(--bad);border-color:#f2c4be;background:#fff8f7}
.btn.danger:hover{background:#fdecea}
.btn.ghost{background:transparent;border-color:transparent;box-shadow:none}
.btn.ghost:hover{background:rgba(41,37,36,.06)}
.btn.sm{min-height:34px;padding:6px 12px;font-size:13.5px}
.btn.sm svg{width:15px;height:15px}
.btn.big{min-height:50px;padding:12px 24px;font-size:16px}
.btn[disabled],.btn.busy{opacity:.55;cursor:default;transform:none;box-shadow:none}
.btn.busy{opacity:.8}
.spin{display:inline-block;width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite;flex:0 0 auto}
@keyframes spin{to{transform:rotate(360deg)}}
.ib{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:0;background:transparent;color:var(--mute)}
.ib:hover{background:rgba(41,37,36,.07);color:var(--ink)}
.ib svg{width:17px;height:17px}
.ib.on{color:#b45309}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;color:var(--sub);background:#f4f1ec;border:1px solid var(--line);border-radius:999px;padding:3px 10px;line-height:1.35;text-decoration:none;max-width:100%}
.chip svg{width:13px;height:13px}
a.chip:hover{background:#ece7e0;color:var(--ink)}
.chip.c{color:color-mix(in srgb,var(--c) 82%,#000);background:color-mix(in srgb,var(--c) 10%,#fff);border-color:color-mix(in srgb,var(--c) 24%,#fff)}
.chip.ai{color:#4338ca;background:#eef2ff;border-color:#dfe3fd}
.chip.sandbox{color:#92400e;background:#fef3c7;border-color:#fde68a}

/* ── sign-in screens ── */
.gate{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(900px 480px at 15% -5%,#efe9ff 0%,rgba(239,233,255,0) 60%),radial-gradient(800px 420px at 100% 0%,#e3f1f8 0%,rgba(227,241,248,0) 55%),var(--bg)}
.gcard{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--sh2);padding:38px 32px 30px;text-align:center}
.gcard .mark{margin:0 auto 18px;width:56px;height:56px;border-radius:18px}
.gcard .mark svg{width:30px;height:30px}
.gcard h1{font-size:30px;font-weight:800;letter-spacing:-.025em;line-height:1.15}
.gcard .sub{color:var(--sub);margin:10px 0 26px;font-size:15.5px}
.gcard .btn{width:100%}
.gcard .small{font-size:13.5px;color:var(--mute);margin-top:14px}
.gcard .gnote{font-size:13px;color:var(--warn);margin-top:10px}
.gcard .gerr{background:#fff4f2;border:1px solid #f6cfc9;color:var(--bad);border-radius:14px;padding:10px 14px;font-size:14px;margin:-8px 0 18px;text-align:left}
.gcard .who{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gcard .who .btn{min-height:56px;font-size:17px}

/* ── logo ── */
.logo{display:flex;align-items:center;gap:11px;padding:2px 8px 14px}
.mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#1c1917,#44403c);box-shadow:0 6px 16px rgba(28,25,23,.22);flex:0 0 auto}
.mark svg{width:21px;height:21px}
.logo b{display:block;font-size:16.5px;font-weight:800;letter-spacing:-.015em;line-height:1.2}
.logo small{display:block;font-size:12px;color:var(--mute);line-height:1.3}

/* ── layout ── */
.shell{display:grid;grid-template-columns:var(--sidew) minmax(0,1fr);min-height:100vh;min-height:100dvh}
.side{position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;background:var(--side);border-right:1px solid var(--line);padding:20px 14px 16px;display:flex;flex-direction:column}
.navlist{display:flex;flex-direction:column;gap:2px}
.navsec{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:16px 12px 6px}
.navi{position:relative;display:flex;gap:11px;align-items:flex-start;width:100%;text-align:left;border:0;background:transparent;border-radius:14px;padding:10px 12px;color:var(--ink);transition:background .15s}
.navi:hover{background:rgba(41,37,36,.05)}
.navi.on{background:#fff;box-shadow:var(--sh1)}
.navi.on::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:4px;border-radius:0 4px 4px 0;background:var(--c)}
.navi .dot{width:12px;height:12px;border-radius:50%;background:var(--c);margin-top:5px;flex:0 0 auto;box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 18%,transparent)}
.navi .gi{width:20px;height:20px;margin:1px -3px 0 -4px;color:var(--sub)}
.navi .nt{min-width:0;flex:1}
.navi b{display:block;font-size:14.5px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.navi small{display:block;font-size:12.5px;color:var(--mute);line-height:1.35;margin-top:1px}
.srctag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;margin-top:6px;line-height:1.5;border:1px solid}
.srctag i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto}
.srctag.live{color:#15803d;background:#effcf3;border-color:#c6f0d3}
.srctag.live i{box-shadow:0 0 0 3px rgba(21,128,61,.15);animation:pulse 2.4s ease-in-out infinite}
.srctag.copy{color:#b45309;background:#fffaeb;border-color:#fde3a7}
.srctag.none{color:var(--mute);background:#f5f3ef;border-color:var(--line)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.newb{margin:14px 4px 0;border-style:dashed;box-shadow:none;background:transparent;color:var(--sub)}
.newb:hover{background:#fff;color:var(--ink)}
.sidefoot{margin-top:auto;padding:16px 10px 2px;font-size:13px;color:var(--mute);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.sidefoot b{color:var(--ink2);font-weight:650}
.linkbtn{border:0;background:none;padding:4px 2px;color:var(--sub);font-size:13px;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.linkbtn:hover{color:var(--ink)}
.topbar{display:none}
.main{min-width:0;padding:30px 32px 96px;overflow-x:clip}
.wrap{max-width:1480px;margin:0 auto}
.mfoot{display:none}
.loading{color:var(--mute);padding:60px 0;text-align:center;display:flex;gap:10px;justify-content:center;align-items:center}

/* ── page heads ── */
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 78%,#000)}
.vhead{margin:4px 0 26px}
.vhead .eyebrow{color:var(--mute)}
.vhead h1,.bhead h1{font-size:34px;line-height:1.12;letter-spacing:-.028em;font-weight:800;margin:6px 0 8px;overflow-wrap:anywhere}
.tagline{font-size:16px;color:var(--sub);max-width:68ch;line-height:1.5}

/* ── all brands grid ── */
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}
.bcard{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--sh1);padding:24px 22px 18px;overflow:hidden;min-height:236px;transition:transform .18s,box-shadow .18s;color:var(--ink)}
.bcard::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 45%,#fff))}
.bcard:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.bc-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bc-top .srctag{margin-top:0}
.bc-kind{font-size:11.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 78%,#000)}
.bc-name{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin-top:10px;overflow-wrap:anywhere}
.bc-tag{display:block;font-size:14px;color:var(--sub);margin-top:6px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bc-faces{display:flex;align-items:center;margin-top:auto;padding-top:18px;min-height:62px}
.bc-faces .face{--fs:42px;margin-right:-9px;box-shadow:0 0 0 2.5px #fff}
.bc-faces .face .aitag{display:none}
.bc-faces .more{margin-left:16px;font-size:13px;font-weight:700;color:var(--sub)}
.bc-faces .nofaces{font-size:13.5px;color:var(--mute)}
.bc-foot{display:flex;width:100%;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #f1ede7;font-size:13px;color:var(--mute);font-weight:600}
.bc-foot .go{display:inline-flex;align-items:center;gap:4px;color:var(--ink2);font-weight:700}
.bc-foot .go svg{width:15px;height:15px;transition:transform .15s}
.bcard:hover .bc-foot .go svg{transform:translateX(3px)}
.bcard.add{align-items:center;justify-content:center;text-align:center;border:1.5px dashed var(--line2);background:rgba(255,255,255,.5);box-shadow:none;color:var(--sub);gap:8px}
.bcard.add::before{display:none}
.bcard.add svg{width:30px;height:30px;padding:6px;border-radius:12px;background:#fff;border:1px solid var(--line);box-sizing:content-box}
.bcard.add b{font-size:16px;color:var(--ink)}
.bcard.add small{font-size:13.5px;max-width:26ch;color:var(--mute)}
.bcard.add:hover{background:#fff}

/* ── brand head ── */
.bhead{position:relative;background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--sh1);overflow:hidden;margin-bottom:22px}
.bhead::before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 40%,#fff))}
.bh-in{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:22px 28px 24px}
.bh-tx{min-width:0;flex:1 1 420px}
.bh-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bh-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.bh-acts{display:flex;gap:10px;flex-wrap:wrap}
.bsync{margin-top:14px}
.sync{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:650;border-radius:999px;padding:5px 12px;border:1px solid}
.sync i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 auto}
.sync.live{color:#15803d;background:#effcf3;border-color:#c6f0d3}
.sync.live i{box-shadow:0 0 0 4px rgba(21,128,61,.14);animation:pulse 2.4s ease-in-out infinite}
.sync.copy{color:#b45309;background:#fffaeb;border-color:#fde3a7}
.sync.none{color:var(--mute);background:#f5f3ef;border-color:var(--line)}
.syncnote{font-size:13.5px;color:var(--sub);margin-top:8px;max-width:70ch}
.about{margin:0 28px 22px;border-top:1px solid #f1ede7;padding-top:12px}
.about summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--sub);list-style:none;display:inline-flex;align-items:center;gap:6px}
.about summary::-webkit-details-marker{display:none}
.about summary svg{width:15px;height:15px;transition:transform .2s}
.about[open] summary svg{transform:rotate(90deg)}
.about p{margin-top:8px;color:var(--sub);white-space:pre-wrap;max-width:80ch;font-size:14.5px}

/* ── org chart ── */
.chart{background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:26px;overflow:hidden}
.chart-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:18px 24px 0}
.chart-h h2{font-size:17px;font-weight:800;letter-spacing:-.01em}
.chart-h span{font-size:13.5px;color:var(--mute)}
.stage{overflow-x:auto;overflow-y:hidden;padding:4px 0 10px;-webkit-overflow-scrolling:touch}
.sizer{position:relative;margin:0 auto}
.tree{position:absolute;left:0;top:0;width:max-content;transform-origin:0 0;padding:20px 20px 30px}
.lines{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.lines path{fill:none;stroke:var(--tline);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tn{display:flex;flex-direction:column;align-items:center}
.tk.h{display:flex;align-items:flex-start;gap:16px;margin-top:46px}
.tk.v{display:flex;flex-direction:column;gap:10px;margin-top:30px;padding-left:16px}
.nd{position:relative;z-index:1}
.vtree{display:none}
.chart-empty{text-align:center;padding:6px 20px 34px;color:var(--mute);font-size:14.5px}
.chart-empty .btn{margin-top:12px}

/* faces */
.face{--fs:72px;position:relative;display:inline-flex;width:var(--fs);height:var(--fs);border-radius:50%;padding:3px;background:#e7e2db;flex:0 0 auto}
.face.ai{background:conic-gradient(from 210deg,var(--c),#a78bfa,#38bdf8,var(--c))}
.face .in{width:100%;height:100%;border-radius:50%;overflow:hidden;border:2.5px solid #fff;background:var(--c);display:flex;align-items:center;justify-content:center}
.face img{width:100%;height:100%;object-fit:cover;display:block;background:#f1efeb;-webkit-user-drag:none;user-select:none}
.face .ini{color:#fff;font-weight:800;font-size:calc(var(--fs) * .32);letter-spacing:.02em;line-height:1}
.aitag{position:absolute;right:-6px;bottom:0;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;font-size:10px;font-weight:800;letter-spacing:.05em;border-radius:999px;padding:2px 6px;border:2px solid #fff;line-height:1.2;box-shadow:0 2px 6px rgba(99,102,241,.3)}

/* AI cards and people cards */
.card{width:176px;min-height:214px;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh1);padding:18px 12px 16px;overflow:hidden;color:var(--ink);transition:transform .16s,box-shadow .16s}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c)}
.card:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.card .dl{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 80%,#000);margin:0 0 10px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .nm{display:block;margin-top:11px;font-size:15.5px;font-weight:750;line-height:1.25;letter-spacing:-.01em;max-width:100%;overflow-wrap:anywhere}
.card .tt{display:-webkit-box;margin-top:3px;font-size:12.5px;color:var(--sub);line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
.card.person{width:160px;min-height:0;padding:14px 10px 14px;background:#fdfcfa;box-shadow:0 1px 2px rgba(41,37,36,.04);border-radius:18px}
.card.person::before{height:3px}
.card.person .face{--fs:54px}
.card.person .nm{font-size:14.5px;font-weight:700;margin-top:9px}
.card.person .dl{margin-bottom:8px}

/* stacked rows under a manager */
.row{width:180px;display:flex;align-items:center;gap:9px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:15px;padding:8px 10px 8px 11px;color:var(--ink);overflow:hidden;min-height:56px;transition:transform .16s,box-shadow .16s}
.row::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}
.row:hover{transform:translateX(2px);box-shadow:var(--sh1)}
.row.ai{box-shadow:var(--sh1)}
.row.person{background:#fdfcfa}
.row .face{--fs:38px;padding:2px}
.row .face .in{border-width:2px}
.row.person .face{--fs:34px}
.row .aitag{right:-7px;bottom:-3px;font-size:8.5px;padding:1px 4px;border-width:1.5px}
.rt{min-width:0;flex:1;display:block}
.rt .nm{display:block;font-size:13.5px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt .tt{display:-webkit-box;font-size:12px;color:var(--sub);line-height:1.3;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* owners box */
.owners{display:flex;flex-direction:column;align-items:center;background:linear-gradient(180deg,#fffaf0,#fff);border:1px solid #efe0bf;border-radius:24px;box-shadow:0 1px 2px rgba(41,37,36,.05),0 12px 30px rgba(161,98,7,.11);padding:14px 22px 16px;min-width:250px}
.ol{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.op{display:flex;gap:14px;justify-content:center}
.own{display:flex;flex-direction:column;align-items:center;border:0;background:transparent;border-radius:16px;padding:6px 12px;color:var(--ink);transition:background .15s}
.own:hover{background:rgba(161,98,7,.07)}
.own .face,.vo .face{background:linear-gradient(135deg,#f6c453,#b7791f)}
.own .face{--fs:62px}
.ow{display:block;text-align:center}
.own .nm{display:block;font-size:15px;font-weight:750;margin-top:8px;line-height:1.25}
.own .tt{display:block;font-size:12.5px;color:var(--sub)}
.otext{font-size:16px;font-weight:700;text-align:center;max-width:340px;line-height:1.35;overflow-wrap:anywhere}

/* ── panel (drawer on desktop, full sheet on phone) ── */
.panel{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:100vw;z-index:50;background:#fff;box-shadow:-24px 0 60px rgba(28,25,23,.16),-1px 0 0 var(--line);display:flex;flex-direction:column;animation:drawerIn .26s cubic-bezier(.2,.8,.2,1)}
@keyframes drawerIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.ph{position:relative;padding:max(20px,calc(env(safe-area-inset-top) + 12px)) 22px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 13%,#fff),#fff);border-bottom:1px solid var(--line)}
.px{position:absolute;right:14px;top:max(14px,calc(env(safe-area-inset-top) + 8px));display:inline-flex;align-items:center;gap:6px;min-width:40px;height:40px;padding:0 10px;justify-content:center;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink2);font-size:14.5px;font-weight:700;z-index:2}
.px:hover{background:#f6f4f0}
.px svg{width:18px;height:18px}
.px span{display:none}
.pwho{display:flex;gap:16px;align-items:center;padding-right:48px}
.pwho .face{--fs:86px}
.pwho .aitag{font-size:11px;padding:2px 7px}
.pwt{min-width:0}
.pwt h2{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}
.ptt{font-size:14.5px;color:var(--sub);font-weight:600;margin-top:2px}
.pmeta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.pgone{background:#fff4f2;border:1px solid #f6cfc9;color:var(--bad);border-radius:12px;padding:8px 12px;font-size:13.5px;margin-top:12px}
.ptabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--line);background:#fff;overflow-x:auto;scrollbar-width:none;flex:0 0 auto}
.ptabs::-webkit-scrollbar{display:none}
.ptabs button{border:0;background:transparent;padding:13px 12px 11px;font-size:14.5px;font-weight:700;color:var(--mute);border-bottom:3px solid transparent;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.ptabs button:hover{color:var(--ink)}
.ptabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--c)}
.ptabs .n{font-size:11.5px;background:#f2efea;border-radius:999px;padding:1px 7px;color:var(--sub);font-weight:700}
.pbody{flex:1;min-height:0;display:flex;flex-direction:column}
.ps{flex:1;min-height:0;display:flex;flex-direction:column}
.sc{flex:1;min-height:0;overflow-y:auto;padding:18px 22px 28px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sf{flex:0 0 auto;border-top:1px solid var(--line);padding:12px 22px max(12px,env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center;background:#fff}
.sf .st{flex:1;font-size:13.5px;color:var(--mute);min-width:0}
.sf .st.ok{color:var(--ok)}
.sf .st.err{color:var(--bad)}
.sf .st.dirty{color:var(--warn)}

/* read-only note */
.ronote{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#f7f5f1;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:18px;font-size:14px;color:var(--sub)}
.ronote>div{flex:1 1 200px;min-width:0}
.ronote b{color:var(--ink);font-weight:700}
.ronote svg.lk{width:18px;height:18px;color:var(--mute)}

/* key-value profile */
.kvs{margin:0}
.kv{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid #f1ede7}
.kv:last-child{border-bottom:0}
.kv dt{font-size:13px;font-weight:700;color:var(--mute)}
.kv dd{margin:0;font-size:14.5px;color:var(--ink);overflow-wrap:anywhere}
.kv dd small{display:block;color:var(--mute);font-size:13px;margin-top:2px}
.pre{white-space:pre-wrap}
.rules{margin:0;padding-left:18px}
.rules li{margin:0 0 5px}

/* forms */
.f{display:block;margin:0 0 14px;min-width:0}
.f>span{display:block;font-size:12.5px;font-weight:750;color:var(--sub);margin:0 0 6px;letter-spacing:.01em}
.f>span em{font-style:normal;font-weight:500;color:var(--faint);margin-left:4px}
.f input,.f select,.f textarea,.wish input{width:100%;border:1px solid var(--line2);border-radius:12px;padding:10px 12px;font-size:16px;line-height:1.4;color:var(--ink);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s,background .4s;-webkit-appearance:none;appearance:none}
.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:18px;padding-right:34px}
.f textarea{min-height:88px;resize:vertical;line-height:1.5}
.f input:focus,.f select:focus,.f textarea:focus,.wish input:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px rgba(129,140,248,.22)}
.f.flash input,.f.flash select,.f.flash textarea{background:#fefce8}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.fnote{font-size:12.5px;color:var(--mute);margin:-8px 0 14px;line-height:1.45}
.fsec{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:22px 0 12px;display:flex;align-items:center;gap:10px}
.fsec::after{content:"";flex:1;height:1px;background:var(--line)}
.seg{display:inline-flex;background:#f2efea;border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border-radius:9px;font-size:14px;font-weight:700;color:var(--sub);cursor:pointer}
.seg input:checked+span{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(41,37,36,.14)}
.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:1px}
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.sw{position:relative}
.sw input{position:absolute;opacity:0;pointer-events:none}
.sw span{display:block;width:34px;height:34px;border-radius:50%;background:var(--c);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:transform .12s}
.sw span:hover{transform:scale(1.08)}
.sw input:checked+span{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--c)}
.sw input:focus-visible+span{outline:3px solid var(--focus);outline-offset:4px}
.wish{background:linear-gradient(135deg,#f5f3ff,#fdf4ff);border:1px solid #e9e3fd;border-radius:18px;padding:14px 16px 16px;margin:0 0 20px}
.wish-t{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px;color:#4338ca}
.wish-t svg{width:18px;height:18px}
.wish p{font-size:13.5px;color:var(--sub);margin:4px 0 10px}
.wish-row{display:flex;gap:8px}
.wish-row input{flex:1;min-width:0}
.wish-row .btn{flex:0 0 auto}
.facebox{display:flex;gap:16px;align-items:center;margin:0 0 18px;flex-wrap:wrap}
.facebox .face{--fs:96px}
.faceacts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cprog{flex-basis:100%;font-size:13px;color:var(--sub)}
.bar{height:6px;border-radius:999px;background:#efebe5;overflow:hidden;margin:2px 0 6px}
.bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#6366f1,#a855f7);transition:width .5s linear}
.note{flex-basis:100%;font-size:13.5px;color:#92400e;background:#fffaeb;border:1px solid #fde3a7;border-radius:12px;padding:9px 12px}
.danger-zone{margin-top:26px;padding-top:16px;border-top:1px solid var(--line)}

/* memory */
.memadd{border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:16px;background:#fcfbf9}
.memadd textarea{width:100%;border:1px solid var(--line2);border-radius:12px;padding:10px 12px;font-size:16px;min-height:70px;resize:vertical;outline:none;background:#fff}
.memadd textarea:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px rgba(129,140,248,.22)}
.memadd .ma-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.tick{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--sub);cursor:pointer}
.tick input{width:18px;height:18px;accent-color:#b45309}
.memlist{display:flex;flex-direction:column;gap:10px}
.mem{background:#faf9f6;border:1px solid #efebe5;border-radius:15px;padding:10px 12px 11px;font-size:14px;line-height:1.5}
.mem.pinned{background:#fffbeb;border-color:#fde68a}
.mh{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--mute);font-weight:650;margin-bottom:4px;flex-wrap:wrap}
.mh .k{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:800;background:#ebe6df;color:#44403c;border-radius:999px;padding:1px 8px}
.mh .k.asked{background:#e0e7ff;color:#3730a3}
.mh .k.task{background:#dcfce7;color:#166534}
.mh .k.change{background:#fef3c7;color:#92400e}
.mh .pin{display:inline-flex;align-items:center;gap:4px;color:#b45309;font-weight:750}
.mh .pin svg{width:12px;height:12px}
.mh .mx{margin-left:auto;display:flex;gap:2px}
.mh .mx .ib{width:30px;height:30px}
.mem .tx{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink2)}
.mem .tx.clamp{max-height:9em;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
.mem .more{border:0;background:none;color:#4338ca;font-size:13px;font-weight:700;padding:4px 0 0}
.mem .by{font-size:12px;color:var(--faint);margin-top:4px}
.empty{color:var(--mute);font-size:14.5px;text-align:center;padding:26px 12px;line-height:1.55}

/* ask */
.chat{display:flex;flex-direction:column;gap:14px}
.msg{display:flex;gap:9px;align-items:flex-start}
.msg.me{justify-content:flex-end}
.msg .face{--fs:32px;padding:2px}
.msg .face .in{border-width:1.5px}
.msg .face .aitag{display:none}
.bub{max-width:86%;border-radius:18px;padding:10px 14px;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.bub p{margin:0 0 .6em;white-space:pre-wrap}
.bub p:last-child,.bub ul:last-child,.bub ol:last-child{margin-bottom:0}
.bub ul,.bub ol{margin:0 0 .6em;padding-left:1.3em}
.bub li{margin:0 0 .25em}
.bub strong{font-weight:750}
.msg.me .bub{background:var(--ink);color:#fff;border-bottom-right-radius:6px}
.msg.ai .bub{background:#f7f5f1;border:1px solid #ece7e0;border-bottom-left-radius:6px;color:var(--ink)}
.chat-intro{text-align:center;color:var(--mute);font-size:14.5px;padding:18px 10px 6px;line-height:1.55}
.chat-intro .face{--fs:64px;margin-bottom:10px}
.chat-intro b{display:block;color:var(--ink);font-size:16px;margin-bottom:2px}
.think{display:flex;gap:6px;align-items:center;color:var(--mute);font-size:14px;padding:12px 2px 0}
.think i{width:7px;height:7px;border-radius:50%;background:#a5b4fc;animation:dot 1s infinite}
.think i:nth-child(2){animation-delay:.15s}
.think i:nth-child(3){animation-delay:.3s;margin-right:4px}
@keyframes dot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.compose{align-items:flex-end}
.compose textarea{flex:1;min-width:0;border:1px solid var(--line2);border-radius:16px;padding:11px 14px;font-size:16px;line-height:1.4;min-height:46px;max-height:160px;resize:none;outline:none;background:#fff}
.compose textarea:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px rgba(129,140,248,.22)}
.compose .btn{min-height:46px}
.chat-tools{display:flex;justify-content:flex-end;margin:-6px 0 8px}

/* brief */
.hint{font-size:14px;color:var(--sub);margin:0 0 10px}
.brief{font-family:var(--mono);font-size:12.5px;line-height:1.6;background:#faf9f6;border:1px solid var(--line);border-radius:14px;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:#292524}

/* ── modal ── */
.mback{position:fixed;inset:0;z-index:60;background:rgba(28,25,23,.36);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 24px;overflow-y:auto;animation:fade .18s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{position:relative;width:100%;max-width:640px;background:#fff;border-radius:26px;box-shadow:0 30px 80px rgba(28,25,23,.28);display:flex;flex-direction:column;max-height:88vh;animation:pop .22s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{transform:translateY(12px) scale(.985);opacity:0}to{transform:none;opacity:1}}
.mh{position:relative;padding:22px 24px 10px;padding-right:70px}
.mh h2{font-size:22px;font-weight:800;letter-spacing:-.02em}
.mh p{font-size:14px;color:var(--sub);margin-top:3px}
.mh .px{top:16px;right:16px}
.mb{flex:1;min-height:0;overflow-y:auto;padding:10px 24px 18px;overscroll-behavior:contain}
.mf{display:flex;gap:10px;align-items:center;padding:14px 24px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.mf .grow{flex:1}

/* ── toasts ── */
#toasts{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(92vw,520px)}
.toast{pointer-events:auto;background:#1c1917;color:#fff;border-radius:14px;padding:11px 16px;font-size:14.5px;line-height:1.4;box-shadow:0 12px 30px rgba(28,25,23,.28);animation:toastIn .22s cubic-bezier(.2,.8,.2,1);cursor:pointer;max-width:100%}
.toast.err{background:#8f1d17}
.toast.ok{background:#14532d}
.toast.out{opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* headings that receive focus for screen readers */
h1:focus,h2:focus{outline:none}

/* tasks */
.tasklist{display:flex;flex-direction:column;gap:10px}
.task{border:1px solid var(--line);border-radius:15px;padding:12px 14px;background:#fff}
.task .th{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.task .th b{font-size:14.5px;font-weight:700;line-height:1.35;min-width:0;overflow-wrap:anywhere}
.tst{flex:0 0 auto;font-size:11.5px;font-weight:750;border-radius:999px;padding:2px 9px;background:#f2efea;color:var(--sub);white-space:nowrap}
.tst.starting{background:#e0f2fe;color:#075985}
.tst.sent{background:#eef2ff;color:#3730a3}
.tst.failed{background:#fdecea;color:#b42318}
.tst.reported{background:#dcfce7;color:#166534}
.tst.cancelled{color:var(--mute)}
.task.cancelled{background:#faf9f6}
.task.cancelled .th b{color:var(--mute);text-decoration:line-through}
.task .td{font-size:13.5px;color:var(--sub);white-space:pre-wrap;margin-top:4px;overflow-wrap:anywhere}
.task .tm{font-size:12px;color:var(--faint);margin-top:6px}
.tthread{display:flex;gap:6px;align-items:center;font-size:13px;color:#3730a3;margin-top:8px;font-weight:650;overflow-wrap:anywhere}
.tthread svg{width:14px;height:14px}
.trep{margin-top:10px;background:#f3fbf5;border:1px solid #c9eed4;border-radius:12px;padding:10px 12px}
.trep>b{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#166534;margin-bottom:4px}
.trep .bub{max-width:none;padding:0;background:none;border:0;border-radius:0;font-size:14px}
.terr{margin-top:8px;font-size:13.5px;color:var(--bad);background:#fff4f2;border:1px solid #f6cfc9;border-radius:10px;padding:8px 10px}
.tacts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.taskadd .f{margin-bottom:10px}
.taskadd .fnote{margin:0 0 4px}

/* ── narrower desktops ── */
@media (max-width:1100px){
  :root{--sidew:226px}
  .main{padding:24px 22px 90px}
  .vhead h1,.bhead h1{font-size:30px}
}

/* ── phone ── */
@media (max-width:760px){
  body{font-size:15.5px}
  .shell{display:block}
  .side{display:none}
  .topbar{display:block;position:sticky;top:0;z-index:30;background:rgba(243,241,237,.9);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid var(--line);padding:calc(env(safe-area-inset-top) + 10px) 0 10px}
  .topbar .logo{padding:0 16px 10px}
  .topbar .logo .mark{width:32px;height:32px;border-radius:10px}
  .topbar .logo .mark svg{width:18px;height:18px}
  .topbar .logo small{display:none}
  .pills{position:relative;display:flex;gap:8px;overflow-x:auto;padding:2px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .pills::-webkit-scrollbar{display:none}
  .pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:14.5px;font-weight:700;color:var(--ink2);white-space:nowrap}
  .pill .dot{width:10px;height:10px;border-radius:50%;background:var(--c);flex:0 0 auto}
  .pill svg{width:16px;height:16px}
  .pill.on{background:var(--ink);border-color:var(--ink);color:#fff}
  .pill.on .dot{box-shadow:0 0 0 2px #fff}
  .pill.add{border-style:dashed;background:transparent;color:var(--sub)}
  .main{padding:18px 14px 40px}
  .mfoot{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin-top:28px;font-size:13.5px;color:var(--mute)}
  .vhead{margin-bottom:18px}
  .vhead h1,.bhead h1{font-size:27px}
  .tagline{font-size:15px}
  .bgrid{grid-template-columns:1fr;gap:14px}
  .bcard{min-height:0;padding:22px 18px 16px}
  .bh-in{padding:18px 18px 20px;gap:16px}
  .bh-tx{flex-basis:100%}
  .bh-acts{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .bh-acts .btn{min-height:46px;padding:10px 8px}
  .bh-acts .btn:only-child{grid-column:1 / -1}
  .about{margin:0 18px 18px}
  .btn{min-height:44px}
  .btn.sm{min-height:40px}
  .chart{border-radius:22px;background:rgba(255,255,255,.6)}
  .chart-h{padding:16px 16px 0}
  .stage{display:none}
  .vtree{display:block;padding:14px 12px 18px}
  .chart-empty{padding:6px 10px 20px}
  /* owners on top */
  .vown{background:linear-gradient(180deg,#fffaf0,#fff);border:1px solid #efe0bf;border-radius:20px;padding:12px 12px 10px;box-shadow:0 8px 22px rgba(161,98,7,.09)}
  .vown .ol{margin:0 4px 8px}
  .vop{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .vo{display:flex;align-items:center;gap:9px;border:0;background:transparent;border-radius:14px;padding:6px;text-align:left;color:var(--ink);min-height:52px;min-width:0}
  .vo:active{background:rgba(161,98,7,.08)}
  .vo .face{--fs:40px;padding:2px}
  .vo .rt .nm{white-space:normal;overflow-wrap:anywhere}
  .vo .face .in{border-width:2px}
  .vown .otext{text-align:left;margin:0 4px 4px;font-size:15.5px}
  /* the indented tree */
  .vt{list-style:none;margin:0;padding:0 0 0 14px}
  .vt.root{padding-left:22px}
  .vt li{position:relative;padding:8px 0 0 16px;--mid:31px}
  .vt li.person{--mid:27px}
  .vt li::before{content:"";position:absolute;left:0;top:0;bottom:0;border-left:2px solid var(--tline)}
  .vt li:last-child::before{bottom:auto;height:calc(8px + var(--mid));width:12px;border-bottom:2px solid var(--tline);border-bottom-left-radius:10px}
  .vt li:not(:last-child)::after{content:"";position:absolute;left:0;top:calc(8px + var(--mid));width:12px;border-top:2px solid var(--tline)}
  .vrow{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:62px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px 10px 8px 12px;box-shadow:var(--sh1);color:var(--ink);overflow:hidden}
  .vrow::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}
  .vrow:active{background:#faf8f5}
  .vrow .face{--fs:44px;padding:2.5px}
  .vrow .face .in{border-width:2px}
  .vrow .aitag{right:-7px;bottom:-3px;font-size:9px;padding:1px 5px;border-width:1.5px}
  .vrow .rt .nm{font-size:15px}
  .vrow .rt .tt{font-size:13px;-webkit-line-clamp:1}
  .vrow .rt .dl{display:block;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 80%,#000);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .vrow .chev{width:18px;height:18px;color:var(--faint)}
  .vrow.person{min-height:54px;background:#fdfcfa;box-shadow:none}
  .vrow.person .face{--fs:36px;padding:2px}
  .vrow.person .rt .nm{font-size:14.5px}
  .vrow.person .rt .dl{display:none}
  /* panel becomes a full-screen sheet */
  .panel{left:0;width:100%;box-shadow:none;animation:sheetUp .28s cubic-bezier(.2,.8,.2,1)}
  @keyframes sheetUp{from{transform:translateY(36px);opacity:0}to{transform:none;opacity:1}}
  .ph{padding:max(16px,calc(env(safe-area-inset-top) + 10px)) 16px 14px}
  .px{height:44px;padding:0 14px}
  .px span{display:inline}
  .pwho{padding-right:96px;gap:14px}
  .pwho .face{--fs:72px}
  .pwt h2{font-size:21px}
  .ptabs{padding:0 8px}
  .ptabs button{padding:13px 11px 11px;font-size:15px}
  .sc{padding:16px 16px 26px}
  .sf{padding:10px 16px max(10px,env(safe-area-inset-bottom))}
  .kv{grid-template-columns:1fr;gap:2px;padding:10px 0}
  body.has-panel,body.has-modal{overflow:hidden}
  /* modal becomes a full-screen sheet */
  .mback{padding:0;align-items:stretch;background:#fff}
  .modal{max-width:none;max-height:none;min-height:100%;height:100dvh;border-radius:0;box-shadow:none;animation:sheetUp .26s cubic-bezier(.2,.8,.2,1)}
  .mh{padding:max(18px,calc(env(safe-area-inset-top) + 12px)) 16px 8px;padding-right:110px}
  .mh .px{top:max(12px,calc(env(safe-area-inset-top) + 6px));right:12px}
  .mb{padding:8px 16px 18px}
  .mf{padding:10px 16px max(12px,env(safe-area-inset-bottom))}
  .mf .btn{min-height:46px}
  .wish-row{flex-direction:column}
  #toasts{bottom:calc(16px + env(safe-area-inset-bottom))}
}
@media (max-width:380px){
  .two{grid-template-columns:1fr}
  .vop{grid-template-columns:1fr}
}
body.has-modal{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
