
:root{
  --primary:oklch(.72 .16 220);--primary-ink:oklch(.14 .02 250);
  --fg:oklch(.96 .008 270);--muted:oklch(.96 .008 270/.62);
  --glass:oklch(.19 .03 270/.80);--content:oklch(.15 .02 270);--raised:oklch(.22 .03 270);
  --hair:oklch(1 0 0/.10);--line:oklch(1 0 0/.16);
  --menubar:oklch(.13 .02 270/.5);--on-map:oklch(.97 .005 270);
  --ok:oklch(.78 .16 155);--warn:oklch(.82 .15 80);--err:oklch(.68 .19 25);--plan:oklch(.72 .15 300);
  --glow:oklch(.72 .16 220/.35);--shadow:0 18px 50px rgb(0 0 0/.4);
  --map:radial-gradient(1200px 700px at 78% 12%,oklch(.55 .16 230/.30),transparent 60%),radial-gradient(900px 600px at 15% 85%,oklch(.5 .17 300/.28),transparent 60%),linear-gradient(135deg,oklch(.2 .03 270) 0%,oklch(.12 .015 270) 55%,oklch(.16 .025 285) 100%);
}
[data-theme=light]{
  --primary:oklch(.48 .14 220);--primary-ink:#fff;--fg:oklch(.2 .02 270);--muted:oklch(.2 .02 270/.62);
  --glass:oklch(.99 .004 270/.86);--content:oklch(.985 .004 270);--raised:#fff;--hair:oklch(0 0 0/.09);--line:oklch(0 0 0/.16);
  --menubar:oklch(.99 0 0/.6);--on-map:oklch(.2 .02 270);--glow:oklch(.48 .14 220/.3);--shadow:0 18px 50px rgb(40 40 80/.2);
  --map:radial-gradient(1200px 700px at 78% 12%,oklch(.8 .1 230/.45),transparent 60%),radial-gradient(900px 600px at 15% 85%,oklch(.8 .1 300/.35),transparent 60%),linear-gradient(135deg,oklch(.97 .008 270),oklch(.93 .015 260) 55%,oklch(.95 .012 290));
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable Text","Segoe UI",Inter,system-ui,sans-serif;font-size:14px;color:var(--fg);overflow:hidden;background:#000;-webkit-font-tap-highlight-color:transparent}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg.i{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
#app{position:fixed;inset:0;display:flex;flex-direction:column}
/* menu bar */
.menubar{height:30px;flex-shrink:0;display:flex;align-items:center;gap:16px;padding:0 14px;background:var(--menubar);backdrop-filter:blur(30px) saturate(1.6);-webkit-backdrop-filter:blur(30px) saturate(1.6);box-shadow:0 .5px 0 var(--hair);font-size:13px;font-weight:500;z-index:50;position:relative;white-space:nowrap}
.menubar .logo{width:18px;height:18px;color:var(--primary)}
.menubar strong{font-weight:700}
.menubar .menus{display:flex;gap:16px;color:var(--muted);overflow:hidden}
.menubar .sp{flex:1}
.menubar .mb{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;border-radius:8px;position:relative}
.menubar .mb:hover{background:var(--hair)}
.menubar .dotn{position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 8px var(--glow)}
.clock{font-variant-numeric:tabular-nums;color:var(--muted)}
/* map */
.map{position:relative;flex:1;background:var(--map);overflow:hidden;transition:filter .7s}
.map::before{content:"";position:absolute;inset:0;background:radial-gradient(520px 360px at 50% 50%,oklch(.72 .16 220/.10),transparent 70%);pointer-events:none}
.layer{position:absolute;inset:0;transition:opacity .7s,filter .7s}
.map.dim .layer{opacity:.5;filter:saturate(.8)}
.map.dim .notice{display:none}
.links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.links line{stroke:var(--line);stroke-width:1.4px;stroke-dasharray:3 5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85;transition:all .6s}
.links line.live{stroke:var(--primary);opacity:.8;animation:flow 1s linear infinite}
@keyframes flow{to{stroke-dashoffset:-16}}
.b{position:absolute;transform:translate(-50%,-50%);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:left .6s cubic-bezier(.3,.1,.2,1),top .6s cubic-bezier(.3,.1,.2,1),width .3s,height .3s;animation:pop .5s cubic-bezier(.3,.1,.2,1) backwards;--bg:linear-gradient(160deg,oklch(.3 .04 270),oklch(.17 .025 270));color:var(--primary)}
@keyframes pop{from{opacity:0;scale:.3}to{opacity:1;scale:1}}
.b .in{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 24%,rgb(255 255 255/.26),rgb(255 255 255/0) 56%),var(--bg);box-shadow:inset 0 0 0 .5px rgb(255 255 255/.22),inset 0 -6px 12px rgb(0 0 0/.18),0 10px 22px rgb(0 0 0/.38);animation:bob 6.5s ease-in-out infinite;animation-delay:var(--d,0s);transition:transform .15s,box-shadow .3s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.b:hover .in{transform:scale(1.06)}
.b:active .in{transform:scale(.94)}
.b.project .in{--bg:linear-gradient(160deg,oklch(.34 .05 270),oklch(.17 .03 270));box-shadow:inset 0 0 0 .5px rgb(255 255 255/.28),inset 0 -8px 16px rgb(0 0 0/.3),0 0 0 5px oklch(.72 .16 220/.14),0 0 36px var(--glow),0 12px 26px rgb(0 0 0/.45)}
.b.agent .in{--bg:linear-gradient(160deg,oklch(.82 .13 215),oklch(.5 .15 245));}
.b.agent{color:oklch(.14 .03 250)}
.b.sub .in{--bg:oklch(.27 .03 270);}
.b.sub{color:oklch(.9 .02 250)}
.b.plan .in{--bg:linear-gradient(160deg,oklch(.78 .14 305),oklch(.48 .17 295))}
.b.plan{color:oklch(.14 .03 300)}
.b.step .in{--bg:oklch(.3 .05 300)}
.b.step{color:oklch(.9 .05 300)}
.b.active .in{box-shadow:inset 0 0 0 .5px rgb(255 255 255/.3),0 0 0 2px #14141c,0 0 0 4px var(--primary),0 0 28px var(--glow),0 10px 22px rgb(0 0 0/.4)}
.b .ic{position:relative;font-size:calc(var(--s)*.42);display:flex}
.b .lab{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:600;color:var(--on-map);text-shadow:0 1px 2px rgb(0 0 0/.6)}
[data-theme=light] .lab{text-shadow:0 1px 2px rgb(255 255 255/.8)}
.b.project .lab{font-size:13px}
.b .ring{position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(var(--primary) 0 28%,transparent 28% 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));animation:spin 2.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.b .done{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:50%;background:var(--ok);color:#0b1a10;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 0 0 2px #14141c}
.b .badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:var(--primary);color:var(--primary-ink);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #14141c}
.b .more{position:absolute;top:-4px;left:-4px;min-width:22px;height:20px;padding:0 5px;border-radius:10px;background:var(--raised);color:var(--fg);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px var(--hair)}
.notice{position:absolute;left:calc(100% + 10px);top:-6px;background:var(--raised);color:var(--fg);font-size:12px;font-weight:600;padding:6px 10px;border-radius:14px 14px 14px 4px;white-space:nowrap;box-shadow:0 0 0 .5px var(--hair),var(--shadow);display:flex;align-items:center;gap:6px;text-shadow:none}
.notice::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary)}
/* hub */
.hub{position:absolute;width:56px;height:56px;transform:translate(-50%,-50%) scale(var(--hs,1.5));border-radius:50%;z-index:30;transition:left .85s cubic-bezier(.5,0,.15,1),top .85s cubic-bezier(.5,0,.15,1),transform .85s cubic-bezier(.5,0,.15,1);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--primary);background:radial-gradient(circle at 30% 24%,rgb(255 255 255/.26),transparent 56%),linear-gradient(160deg,oklch(.34 .05 270),oklch(.17 .03 270));animation:breathe 4.3s ease-in-out infinite;font-size:30px;touch-action:none}
@keyframes breathe{0%,100%{box-shadow:inset 0 0 0 .5px rgb(255 255 255/.28),0 0 0 2px oklch(.72 .16 220/.1),0 0 18px var(--glow),0 12px 26px rgb(0 0 0/.45)}50%{box-shadow:inset 0 0 0 .5px rgb(255 255 255/.28),0 0 0 6px oklch(.72 .16 220/.12),0 0 32px var(--glow),0 12px 26px rgb(0 0 0/.45)}}
.hublab{position:absolute;font-size:13px;font-weight:700;color:var(--on-map);transform:translateX(-50%);z-index:29;transition:left .85s cubic-bezier(.5,0,.15,1),top .85s cubic-bezier(.5,0,.15,1),opacity .3s;text-shadow:0 1px 2px rgb(0 0 0/.6);pointer-events:none}
.start{position:absolute;z-index:40;display:flex;gap:6px;padding:8px;border-radius:22px;background:var(--glass);backdrop-filter:blur(30px) saturate(1.6);-webkit-backdrop-filter:blur(30px) saturate(1.6);box-shadow:0 0 0 .5px var(--hair),var(--shadow);opacity:0;pointer-events:none;transform:translateX(24px);transition:opacity .32s,transform .32s;max-width:calc(100% - 20px);overflow-x:auto}
.start.open{opacity:1;pointer-events:auto;transform:none}
.sa{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:62px;padding:4px 2px;border-radius:14px;font-size:11px;font-weight:600;position:relative}
.sa .c{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:linear-gradient(160deg,oklch(.34 .05 270),oklch(.2 .03 270));color:var(--primary);box-shadow:inset 0 0 0 .5px rgb(255 255 255/.22)}
.sa.new .c{background:var(--primary);color:var(--primary-ink)}
.sa i{position:absolute;bottom:-1px;width:4px;height:4px;border-radius:50%;background:var(--primary)}
.sa:hover .c{box-shadow:0 0 0 2px var(--primary),0 0 16px var(--glow)}
/* peek */
.peek{position:absolute;z-index:35;display:flex;flex-direction:column;gap:8px;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .3s}
.peek.open{opacity:1;pointer-events:auto}
.pk{background:#1b1b22;color:var(--fg);border-radius:14px;padding:8px 12px;max-width:14rem;box-shadow:0 0 0 .5px var(--hair),var(--shadow);text-align:left;font-size:12px;color:var(--muted)}
[data-theme=light] .pk{background:#fff}
.pk b{display:block;font-size:13px;color:var(--fg)}
/* windows */
.wins{position:absolute;inset:0;pointer-events:none;z-index:20}
.win{position:absolute;pointer-events:auto;border-radius:14px;background:var(--glass);backdrop-filter:blur(40px) saturate(1.6);-webkit-backdrop-filter:blur(40px) saturate(1.6);box-shadow:0 0 0 .5px var(--hair),var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:left .35s,top .35s,width .35s,height .35s,box-shadow .2s;animation:wenter .65s cubic-bezier(.3,.1,.2,1)}
.win.focus{box-shadow:0 0 0 .5px var(--hair),0 30px 80px rgb(0 0 0/.55),0 10px 24px rgb(0 0 0/.35)}
.win.leaving{animation:wleave .32s cubic-bezier(.3,0,.8,.15) forwards}
@keyframes wenter{from{opacity:0;scale:.2}to{opacity:1;scale:1}}
@keyframes wleave{to{opacity:0;scale:.2}}
.tb{min-height:52px;display:flex;align-items:center;gap:12px;padding:0 14px 0 16px;box-shadow:0 .5px 0 var(--hair);flex-shrink:0}
.lights{display:flex;gap:12px}
.lt{width:12px;height:12px;border-radius:50%;background:var(--hair);position:relative;padding:0}
.lt::after{content:"";position:absolute;inset:-6px}
.win.focus .lt.x{background:#E0694A}.win.focus .lt.m{background:#F2A33A}.win.focus .lt.z{background:#9C948A}
.av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;background:linear-gradient(160deg,oklch(.34 .05 270),oklch(.2 .03 270));color:var(--primary);flex-shrink:0}
.ttl{font-size:15px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumb{font-size:11px;color:var(--muted);white-space:nowrap}
.tag{margin-left:auto;font-size:11px;padding:3px 9px;border-radius:99px;border:1px solid oklch(.72 .16 220/.4);color:var(--primary);font-weight:600;white-space:nowrap}
.body{flex:1;min-height:0;background:var(--content);display:flex;flex-direction:column}
.tabs{display:flex;gap:2px;padding:6px 10px;box-shadow:0 .5px 0 var(--hair);overflow-x:auto;flex-shrink:0}
.tabs button{padding:8px 12px;border-radius:10px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;min-height:36px}
.tabs button.on{background:oklch(.72 .16 220/.12);color:var(--fg);box-shadow:inset 0 0 0 1px oklch(.72 .16 220/.3)}
.pane{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px;min-height:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.card{background:var(--raised);border-radius:16px;padding:12px 14px;box-shadow:0 0 0 .5px var(--hair)}
.card .k{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.card .v{font-size:22px;font-weight:700;margin-top:4px}
.row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);min-height:48px;text-align:left;width:100%}
button.row:hover{box-shadow:0 0 0 1px var(--primary)}
.row .n{flex:1;min-width:0}.row .n b{display:block;font-size:13px}.row .n small{color:var(--muted);font-size:12px}
.row.s1{margin-left:22px;width:calc(100% - 22px)}
.st{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap}
.st.work{background:oklch(.72 .16 220/.15);color:var(--primary)}.st.done{background:oklch(.78 .16 155/.15);color:var(--ok)}.st.wait{background:var(--hair);color:var(--muted)}.st.err{background:oklch(.68 .19 25/.15);color:var(--err)}
.bar{height:6px;border-radius:99px;background:var(--hair);overflow:hidden}.bar i{display:block;height:100%;background:var(--primary);box-shadow:0 0 10px var(--glow);border-radius:99px}
h4{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.chat{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;min-height:0}
.msg{max-width:85%;padding:10px 14px;border-radius:16px 16px 16px 4px;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);line-height:1.45;font-size:13px}
.msg.u{align-self:flex-end;border-radius:16px 16px 4px 16px;background:oklch(.72 .16 220/.16);box-shadow:0 0 0 1px oklch(.72 .16 220/.3)}
.msg small{display:block;color:var(--primary);font-weight:700;font-size:11px;margin-bottom:2px}
.cin{display:flex;gap:8px;padding:10px 12px;box-shadow:0 -.5px 0 var(--hair);flex-shrink:0}
.cin input{flex:1;min-height:44px;border-radius:14px;border:0;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);padding:0 14px;color:var(--fg);font:inherit;outline:0}
.cin input:focus{box-shadow:0 0 0 1.5px var(--primary)}
.btn{min-height:44px;min-width:44px;padding:0 16px;border-radius:14px;background:var(--primary);color:var(--primary-ink);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 0 18px var(--glow)}
.btn.g{background:var(--raised);color:var(--fg);box-shadow:0 0 0 .5px var(--hair)}
.dag{display:flex;gap:0;align-items:stretch;overflow-x:auto;padding:4px 0 8px}
.dn{min-width:150px;flex:0 0 auto;padding:12px;border-radius:16px;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);display:flex;flex-direction:column;gap:6px;position:relative;text-align:left}
.dn.work{box-shadow:0 0 0 1.5px var(--primary),0 0 20px var(--glow)}
.dn.done{box-shadow:0 0 0 1px oklch(.78 .16 155/.5)}
.dn b{font-size:13px}.dn small{color:var(--muted);font-size:12px}
.dc{width:28px;flex:0 0 28px;align-self:center;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 8px)}
.tl{display:flex;flex-direction:column;gap:14px}
.ev{display:flex;gap:12px}.ev i{width:9px;height:9px;border-radius:50%;background:var(--primary);margin-top:5px;box-shadow:0 0 8px var(--glow);flex-shrink:0}.ev small{display:block;color:var(--muted)}
.term{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#0b0b10;color:#a9e6c3;border-radius:14px;padding:12px;line-height:1.6;white-space:pre-wrap}
.agentbar{display:flex;align-items:center;gap:10px;padding:10px 14px;box-shadow:0 -.5px 0 var(--hair);font-size:12px;color:var(--muted);flex-shrink:0}
.agentbar b{color:var(--ok)}
.ctx{position:fixed;z-index:80;min-width:190px;padding:6px;border-radius:14px;background:var(--glass);backdrop-filter:blur(30px) saturate(1.6);-webkit-backdrop-filter:blur(30px) saturate(1.6);box-shadow:0 0 0 .5px var(--hair),var(--shadow);display:none}
.ctx button{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 12px;border-radius:10px;font-size:13px;font-weight:500;text-align:left}
.ctx button:hover{background:oklch(.72 .16 220/.15)}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(20px);z-index:90;padding:10px 16px;border-radius:99px;background:var(--glass);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 0 0 .5px var(--hair),var(--shadow);font-size:13px;font-weight:600;opacity:0;transition:all .3s;pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translateX(-50%)}
.hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);font-size:12px;color:var(--on-map);opacity:.7;text-shadow:0 1px 2px rgb(0 0 0/.5);pointer-events:none;text-align:center;transition:opacity .5s;white-space:nowrap}
.map.dim .hint{opacity:0}
@media(max-width:1023px){.menubar .menus span:nth-child(n+4){display:none}}
@media(max-width:767px){.notice{display:none}.menubar{height:28px;gap:10px;padding:0 10px}.menubar .menus{display:none}.tb{min-height:44px}.crumb,.tag{display:none}.hint{font-size:11px;white-space:normal;width:80%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== v2 tillägg ===== */
.menubar .org{display:inline-flex;align-items:center;gap:6px;padding:0 10px;min-height:28px;border-radius:8px;font-weight:600;color:var(--fg)}
.menubar .org:hover{background:var(--hair)}
.menubar .org small{color:var(--muted)}
.orgmenu{position:fixed;top:32px;left:150px;z-index:70;min-width:200px;padding:6px;border-radius:14px;background:var(--glass);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 0 0 .5px var(--hair),var(--shadow);display:none}
.orgmenu.open{display:block}
.orgmenu button{display:flex;justify-content:space-between;gap:16px;width:100%;min-height:40px;align-items:center;padding:0 12px;border-radius:10px;font-weight:600;font-size:13px}
.orgmenu button:hover{background:oklch(.72 .16 220/.15)}.orgmenu small{color:var(--muted);font-weight:500}
.b .bq{position:absolute;top:-4px;left:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--err);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #14141c,0 0 12px oklch(.68 .19 25/.6);animation:shake 2.5s infinite}
@keyframes shake{0%,90%,100%{transform:none}93%{transform:rotate(-12deg)}96%{transform:rotate(12deg)}}
.b .badge.rv{background:var(--warn);color:#201400}
.b .bp{position:absolute;left:-3px;bottom:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:oklch(.68 .19 25);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #14141c}
.b .sats{position:absolute;left:-12px;top:50%;display:flex;flex-direction:column;gap:3px;transform:translateY(-50%)}
.b .sats i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.35}}
.b .ports{position:absolute;right:-6px;bottom:6px;transform:translateX(100%);display:flex;flex-direction:column;gap:3px}
.b .ports i{font-style:normal;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;background:var(--raised);color:var(--primary);box-shadow:0 0 0 1px oklch(.72 .16 220/.4),0 0 10px var(--glow)}
.b .gring{position:absolute;inset:calc(-2px - var(--g,1)*1px);border-radius:50%;border:calc(var(--g,1)*1px) solid oklch(.82 .15 80/.55);pointer-events:none}
.b .mdl{position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;color:var(--on-map);opacity:.7;white-space:nowrap}
.b.wf .in{--bg:linear-gradient(160deg,oklch(.8 .12 190),oklch(.45 .12 200))}.b.wf{color:oklch(.14 .03 200)}
.b.wfa .in{--bg:oklch(.3 .05 195)}.b.wfa{color:oklch(.9 .06 190)}
.links line.wfl{stroke:oklch(.8 .12 190/.6)}
.map.dragging .b.agent .in,.map.dragging .b.sub .in{box-shadow:0 0 0 3px var(--primary),0 0 24px var(--glow)}
.hubcount{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:var(--primary);color:var(--primary-ink);font-size:11px;font-weight:800;align-items:center;justify-content:center;display:none;transform:scale(calc(1/var(--hs,1)))}
.start{left:auto;right:auto;display:block;width:min(620px,calc(100% - 20px));max-height:calc(100% - 100px);padding:12px;border-radius:24px;overflow:hidden;display:flex;flex-direction:column}
.start .sh input{width:100%;min-height:44px;border-radius:14px;border:0;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);padding:0 14px;color:var(--fg);font:inherit;outline:0}
.start .sh input:focus{box-shadow:0 0 0 1.5px var(--primary)}
.sbody{overflow:auto;margin-top:8px}
.sbody h5{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:12px 6px 6px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:4px}
.sa{text-align:center}.sa .c{width:44px;height:44px}
.dock{position:absolute;left:10px;bottom:10px;z-index:25;display:none;gap:6px;max-width:calc(100% - 90px);overflow-x:auto}
.dk{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:99px;background:var(--glass);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 0 0 .5px var(--hair),var(--shadow);font-size:12px;font-weight:600;white-space:nowrap}
.dk span{max-width:110px;overflow:hidden;text-overflow:ellipsis}.dk svg{color:var(--primary);font-size:15px}
.palette{position:fixed;left:50%;top:70px;transform:translateX(-50%) translateY(-10px);z-index:85;width:min(560px,calc(100% - 20px));border-radius:20px;background:var(--glass);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);box-shadow:0 0 0 .5px var(--hair),var(--shadow);opacity:0;pointer-events:none;transition:all .25s;padding:10px}
.palette.open{opacity:1;pointer-events:auto;transform:translateX(-50%)}
.palette input{width:100%;min-height:48px;border-radius:14px;border:0;background:var(--raised);padding:0 16px;color:var(--fg);font:inherit;font-size:15px;outline:0;box-shadow:0 0 0 1.5px var(--primary)}
#plist{margin-top:8px;display:flex;flex-direction:column;max-height:50vh;overflow:auto}
#plist button{display:flex;gap:12px;align-items:center;text-align:left;min-height:48px;padding:6px 8px;border-radius:12px}
#plist button:hover{background:oklch(.72 .16 220/.14)}
#plist .c{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--raised);color:var(--primary);flex-shrink:0}
#plist small{display:block;color:var(--muted);font-size:12px}.pe{padding:14px;color:var(--muted)}
.ctx .ch{padding:8px 12px 4px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ctx hr{border:0;height:1px;background:var(--hair);margin:4px 0}
.ctx{overflow:auto}
.vm{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:99px;background:var(--hair);font-size:12px;font-weight:600}
.scope{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:oklch(.82 .15 80/.15);color:var(--warn);white-space:nowrap}
.tb .sp{flex:1}.tb .tag{margin-left:0}
.win.narrow .vm span,.win.narrow .scope,.win.narrow .tag{display:none}
/* innehållsbyggstenar */
.scroll{overflow:auto;min-height:0}
.split{display:flex;flex:1;min-height:0}
.side{width:210px;flex-shrink:0;box-shadow:inset -.5px 0 0 var(--hair);overflow:auto;padding:8px;display:flex;flex-direction:column;gap:2px}
.win.narrow .side{width:150px}
.main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.li{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;border-radius:10px;font-size:13px;text-align:left;width:100%;white-space:nowrap}
.li:hover{background:var(--hair)}.li.on{background:oklch(.72 .16 220/.12);box-shadow:inset 0 0 0 1px oklch(.72 .16 220/.3)}
.li svg{color:var(--muted);flex-shrink:0}.li .g{margin-left:auto;font-size:11px;font-weight:700;color:var(--warn)}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.7;background:#0b0b10;color:#d6deeb;overflow:auto;flex:1;padding:8px 0;min-height:0}
[data-theme=light] .code,[data-theme=light] .term{background:#f4f4f8;color:#2b2b3a}
.code .ln{display:flex}.code .n{width:44px;text-align:right;padding-right:12px;color:#5b6078;flex-shrink:0;user-select:none}
.code .k{color:#c792ea}.code .s{color:#ecc48d}.code .c{color:#637777}.code .f{color:#82aaff}
.code .ln.add{background:oklch(.78 .16 155/.14)}.code .ln.del{background:oklch(.68 .19 25/.16)}.code .ln.ag{background:oklch(.72 .16 220/.14);box-shadow:inset 2px 0 0 var(--primary)}
.fl{display:flex;gap:2px;padding:6px 8px 0;overflow-x:auto;background:oklch(0 0 0/.15);flex-shrink:0}
.fl button{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px 10px 0 0;font-size:12px;color:var(--muted);white-space:nowrap}
.fl button.on{background:#0b0b10;color:var(--fg)}[data-theme=light] .fl button.on{background:#f4f4f8}
.fl .dot{width:7px;height:7px;border-radius:50%;background:var(--warn)}.fl .pen{width:7px;height:7px;border-radius:50%;background:var(--primary);animation:pulse 1s infinite}
.sbar{display:flex;gap:14px;align-items:center;min-height:28px;padding:0 12px;font-size:11px;color:var(--muted);box-shadow:0 -.5px 0 var(--hair);white-space:nowrap;overflow:hidden;flex-shrink:0}
.sbar b{color:var(--ok)}
.pres{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;background:oklch(.72 .16 220/.1);color:var(--primary);flex-shrink:0}
.tr{display:flex;align-items:center;gap:6px;min-height:30px;font-size:13px;white-space:nowrap;cursor:pointer}
.tr svg{color:var(--muted)}.tr .m{margin-left:auto;font-size:10px;font-weight:800;padding:1px 6px;border-radius:6px}
.m-M{background:oklch(.82 .15 80/.2);color:var(--warn)}.m-A{background:oklch(.78 .16 155/.2);color:var(--ok)}.m-U{background:oklch(.72 .16 220/.2);color:var(--primary)}
.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:8px 10px;font-weight:700}
.tbl td{padding:10px;box-shadow:0 -.5px 0 var(--hair);vertical-align:middle}.ovx{overflow-x:auto}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{font-weight:600;text-align:right}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip2{font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;background:var(--hair);color:var(--fg);min-height:28px;display:inline-flex;align-items:center;gap:5px}
.chip2.on{background:oklch(.72 .16 220/.18);color:var(--primary);box-shadow:inset 0 0 0 1px oklch(.72 .16 220/.4)}
.chip2.ok{background:oklch(.78 .16 155/.15);color:var(--ok)}.chip2.err{background:oklch(.68 .19 25/.15);color:var(--err)}.chip2.warn{background:oklch(.82 .15 80/.15);color:var(--warn)}
.toggle{width:44px;height:26px;border-radius:99px;background:var(--hair);position:relative;flex-shrink:0;transition:background .2s}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--fg);transition:transform .2s}
.toggle.on{background:var(--primary)}.toggle.on::after{transform:translateX(18px);background:var(--primary-ink)}
.q{padding:12px 14px;border-radius:16px;background:oklch(.68 .19 25/.1);box-shadow:inset 0 0 0 1px oklch(.68 .19 25/.35);display:flex;flex-direction:column;gap:8px;font-size:13px}
.q.ok{background:oklch(.78 .16 155/.1);box-shadow:inset 0 0 0 1px oklch(.78 .16 155/.35)}
.ctl{display:flex;gap:6px;padding:8px 12px;overflow-x:auto;box-shadow:0 .5px 0 var(--hair);flex-shrink:0}
.tokbar{display:flex;gap:12px;align-items:center;padding:6px 14px;font-size:11px;color:var(--muted);box-shadow:0 -.5px 0 var(--hair);flex-shrink:0;white-space:nowrap;overflow:hidden}
.seg{display:flex;height:6px;border-radius:99px;overflow:hidden;min-width:80px;flex:1;background:var(--hair)}.seg i{display:block}
.browser{flex:1;display:flex;flex-direction:column;min-height:0}
.urlbar{display:flex;gap:8px;padding:8px 10px;box-shadow:0 .5px 0 var(--hair);flex-shrink:0}
.urlbar .u{flex:1;min-height:36px;border-radius:99px;background:var(--raised);display:flex;align-items:center;padding:0 14px;font-size:12px;color:var(--muted);box-shadow:0 0 0 .5px var(--hair);white-space:nowrap;overflow:hidden}
.page{flex:1;overflow:auto;background:#f7f7fb;color:#1b1b2a;padding:20px;min-height:0;display:flex;flex-direction:column;gap:14px}
.page.mob{max-width:300px;margin:0 auto;width:100%;box-shadow:0 0 0 1px var(--hair)}
.pgh{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:18px}.pgh i{font-style:normal;font-weight:500;font-size:12px;color:#666}
.pgcard{background:#fff;border-radius:14px;padding:14px;box-shadow:0 1px 4px rgb(0 0 0/.1);display:flex;justify-content:space-between;align-items:center;font-size:14px}
.pgbtn{background:#1f2a44;color:#fff;border-radius:12px;padding:12px;text-align:center;font-weight:700}
.x11{flex:1;background:linear-gradient(135deg,#1a2a44,#2a1a44);position:relative;min-height:0;overflow:hidden}
.x11 .xw{position:absolute;border-radius:8px;background:#0b0b10;box-shadow:0 8px 24px rgb(0 0 0/.5);overflow:hidden;font-size:10px;color:#a9e6c3;font-family:ui-monospace,monospace}
.x11 .xw b{display:block;background:#2a2a35;color:#ddd;padding:4px 8px;font-family:system-ui;font-size:10px}.x11 .xw p{padding:6px 8px;white-space:pre}
.dag2{display:flex;gap:0;align-items:stretch;overflow:auto;padding:4px 0 10px;min-height:0}
.phase{display:flex;flex-direction:column;gap:8px;flex:0 0 auto;min-width:150px}.phase>h6{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;padding:0 4px}
.sn{padding:9px 11px;border-radius:14px;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);font-size:12px;text-align:left;display:flex;flex-direction:column;gap:3px;position:relative}
.sn b{font-size:12px}.sn small{color:var(--muted)}
.sn.work{box-shadow:0 0 0 1.5px var(--primary),0 0 18px var(--glow)}.sn.done{box-shadow:0 0 0 1px oklch(.78 .16 155/.5)}.sn.wait{border-style:dashed;opacity:.8}.sn.err{box-shadow:0 0 0 1.5px var(--err)}
.sn.sel{outline:2px solid var(--primary)}
.gcon{flex:0 0 34px;align-self:center;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 8px)}
.gantt{display:flex;flex-direction:column;gap:6px}.gantt .gr{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;font-size:12px}
.gantt .tr2{position:relative;height:16px;border-radius:99px;background:var(--hair)}.gantt .tr2 i{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--primary);box-shadow:0 0 8px var(--glow)}.gantt .tr2 i.q2{background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 6px);box-shadow:none}
.logl{font-family:ui-monospace,monospace;font-size:12px;display:flex;flex-direction:column;gap:5px}.logl span{color:var(--muted)}
.tilegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.tile{aspect-ratio:1;border-radius:16px;box-shadow:0 0 0 .5px var(--hair);display:flex;align-items:flex-end;padding:8px;font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgb(0 0 0/.6)}
.bars{display:flex;align-items:flex-end;gap:8px;height:120px;padding:8px 0}.bars div{flex:1;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--primary),oklch(.45 .14 240));min-height:6px;position:relative}
.bars span{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}
.steps{display:flex;gap:6px;align-items:center}.steps i{flex:1;height:4px;border-radius:99px;background:var(--hair)}.steps i.on{background:var(--primary)}
.sticky-act{position:sticky;bottom:0;padding:10px 0 0;display:flex;gap:8px;background:linear-gradient(0deg,var(--content) 70%,transparent)}
.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:600}.field input,.field select,.field textarea{min-height:44px;border-radius:12px;border:0;background:var(--raised);box-shadow:0 0 0 .5px var(--hair);padding:0 12px;color:var(--fg);font:inherit;outline:0}
.field input:focus{box-shadow:0 0 0 1.5px var(--primary)}
@media(max-width:767px){.orgmenu{left:10px}.org small{display:none}.start{border-radius:24px 24px 0 0;width:100%;max-height:75%;max-width:100%}.menubar .org{padding:0 6px}.side{width:120px}.pres{font-size:11px}.hubcount{font-size:10px}}
.start{position:absolute;right:10px;bottom:76px;top:auto!important;transform:translateY(24px)}
.start.open{transform:none}
@media(max-width:767px){.start{right:0;left:0;bottom:0}}
.code .ln span:last-child{white-space:pre}
.chat~.q{margin:0 12px 8px}
.pane>*{flex-shrink:0}
.ctl,.tabs,.fl,.dock,.start,.menubar{scrollbar-width:none}
.ctl::-webkit-scrollbar,.tabs::-webkit-scrollbar,.fl::-webkit-scrollbar,.dock::-webkit-scrollbar{display:none}
@media(max-width:767px){#bLayout{display:none}.menubar{gap:4px;padding:0 8px}.menubar strong{max-width:96px;overflow:hidden;text-overflow:ellipsis}.clock{font-size:12px}}
*{scrollbar-color:oklch(1 0 0/.22) transparent;scrollbar-width:thin}
.backchip{position:absolute;top:10px;left:10px;z-index:26;min-height:44px;padding:0 16px;border-radius:99px;background:var(--glass);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 0 0 .5px var(--hair),var(--shadow);font-size:13px;font-weight:700;align-items:center;max-width:70%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.b.focus .in{box-shadow:inset 0 0 0 .5px rgb(255 255 255/.3),0 0 0 3px var(--primary),0 0 40px var(--glow),0 12px 26px rgb(0 0 0/.45)}
.b.focus .lab{font-size:15px}
.map.dim .backchip{display:none!important}
.links path{fill:none;stroke:var(--line);stroke-width:1.4px;stroke-dasharray:3 5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85;transition:d .6s}
.links path.live{stroke:var(--primary);opacity:.8;animation:flow 1s linear infinite}
.links path.wfl{stroke:oklch(.8 .12 190/.6)}
@media(max-width:767px){.hint{bottom:auto;top:12px}}
.links path.hl{stroke:oklch(.72 .16 220/.4);opacity:.7}
.links path.hl.off{opacity:0}
.links path.hl{stroke:oklch(.72 .16 220/.6);opacity:.9}
