/* KMind 宇宙交互 V17 · 面板视图 in the universe's own style.
   Loaded last; every rule here is scoped to the panel view (body:not(.km-u)), so the universe view is untouched.
   The same language as the universe view (src/universe/cosmos.css):
   - The ground is the sky: the same pale (白昼) or graphite (夜间) radial ground, with a faint dust of stars.
   - No boxes. Panels are soft fields of glass that fade into the sky at their edges; no outlines.
   - One line of light at most: a hairline that fades out at both ends, under a heading or along a panel's side.
   - Buttons are words and glyphs: hover lights the word and draws a short line of light; on = accent colour and a small dot.
     Primary actions keep a soft glowing pill.
   - Rows (channels, members, messages) light up as a fading band from the left; the current one has a thin bar of light.
   Nothing is hidden or moved: only colour, outline, radius and light change. Dialogs and toasts share the universe's rules. */

/* ---------- the ground ---------- */
body:not(.km-u){background:var(--k-ubg) fixed;background-color:var(--k-bg2)}
body:not(.km-u)::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55;
  background-image:radial-gradient(1px 1px at 12% 18%,rgba(var(--k-acc-rgb),.5),transparent 60%),radial-gradient(1px 1px at 68% 9%,rgba(var(--k-acc-rgb),.45),transparent 60%),
    radial-gradient(1.2px 1.2px at 84% 62%,rgba(var(--k-acc-rgb),.4),transparent 60%),radial-gradient(1px 1px at 33% 77%,rgba(var(--k-acc-rgb),.42),transparent 60%),
    radial-gradient(1px 1px at 52% 41%,rgba(var(--k-acc-rgb),.3),transparent 60%),radial-gradient(1px 1px at 91% 28%,rgba(var(--k-acc-rgb),.38),transparent 60%),
    radial-gradient(ellipse 60% 50% at 8% 0%,rgba(var(--k-acc-rgb),.07),transparent 70%),radial-gradient(ellipse 50% 45% at 100% 100%,rgba(var(--k-acc-rgb),.06),transparent 70%);
  background-size:340px 300px,420px 380px,380px 420px,300px 340px,460px 300px,520px 460px,100% 100%,100% 100%}
html[data-theme=night] body:not(.km-u)::before{opacity:.8;filter:brightness(1.6)}
body:not(.km-u) .app{position:relative;z-index:1;background:transparent}
body:not(.km-u) *{scrollbar-width:thin;scrollbar-color:rgba(var(--k-acc-rgb),.22) transparent}

/* ---------- the title line: floating words and glyphs ---------- */
body:not(.km-u) .titlebar{background:transparent}
body:not(.km-u) .windowdots i{background:rgba(var(--k-acc-rgb),.16)}
body:not(.km-u) .ib{border-radius:10px;transition:color .15s}
body:not(.km-u) .ib:hover{background:transparent;color:var(--k-acc)}
body:not(.km-u) .ib:hover svg,body:not(.km-u) .ib:hover .ico{filter:drop-shadow(0 0 5px var(--cz-glow))}
body:not(.km-u) .ib[aria-pressed=true]{color:var(--k-acc)}
body:not(.km-u) .km-view-switch{border:0!important;background:radial-gradient(ellipse at 50% 60%,rgba(var(--k-acc-rgb),.16),rgba(var(--k-acc-rgb),0) 75%)!important;color:var(--k-acc)!important;box-shadow:none!important;text-shadow:0 0 14px var(--cz-glow)}
body:not(.km-u) .km-view-switch:hover{background:radial-gradient(ellipse at 50% 60%,rgba(var(--k-acc-rgb),.26),rgba(var(--k-acc-rgb),0) 78%)!important}
body:not(.km-u) .km-view-switch:hover svg{filter:drop-shadow(0 0 6px var(--cz-glow))}
html[data-theme=night] body:not(.km-u) .km-view-switch{color:#CFE0FF!important}

/* ---------- the universes down the side ---------- */
body:not(.km-u) .rail{background:transparent}
body:not(.km-u) .rail .separator{background:linear-gradient(90deg,transparent,var(--cz-line),transparent)}
body:not(.km-u) .server{transition:box-shadow .2s,transform .15s,filter .2s}
body:not(.km-u) .server:hover{transform:translateY(-1px);filter:drop-shadow(0 0 8px var(--cz-glow))}
body:not(.km-u) .server.active{box-shadow:0 0 0 2px rgba(var(--k-bg-rgb),.9),0 0 0 3.5px rgba(var(--k-acc-rgb),.7),0 0 18px 2px var(--cz-glow)}
body:not(.km-u) .server.active::before,body:not(.km-u) .server.unread::before{background:var(--k-acc);box-shadow:0 0 8px 1px var(--cz-glow);border-radius:999px;width:4px;left:-12px}
body:not(.km-u) .server.unread:not(.active)::before{height:6px;width:6px;left:-13px}
body:not(.km-u) .server.add,body:not(.km-u) .server.home{background:radial-gradient(circle,rgba(var(--k-acc-rgb),.12),transparent 72%)!important;color:var(--k-acc)}
body:not(.km-u) .server.add:hover,body:not(.km-u) .server.home:hover{background:radial-gradient(circle,rgba(var(--k-acc-rgb),.26),transparent 74%)!important}
body:not(.km-u) .server .badge{border-color:transparent}

/* ---------- the channel list: a field of glass that fades into the sky ---------- */
body:not(.km-u) .channels{border:0!important;border-radius:18px 18px 0 0;background:var(--cz-bg2)!important;box-shadow:0 0 34px 12px var(--cz-halo)}
body:not(.km-u) .serverhead,body:not(.km-u) .channelhead,body:not(.km-u) .panehead{border-bottom:0!important;background:var(--cz-rule-soft) bottom/100% 1px no-repeat!important}
body:not(.km-u) .serverhead>button:hover{color:var(--k-acc)}
body:not(.km-u) .channel-rule{border-top:0;height:1px;background:var(--cz-rule-soft)}
body:not(.km-u) .category{color:var(--k-dim);letter-spacing:.08em}
body:not(.km-u) .category>button:hover,body:not(.km-u) .category .plus:hover{color:var(--k-acc)}
body:not(.km-u) .channel,body:not(.km-u) .utility,body:not(.km-u) .dm-shortcut,body:not(.km-u) .dm-item{border-radius:10px;position:relative;transition:color .15s,background .15s}
body:not(.km-u) .channel:hover,body:not(.km-u) .utility:hover,body:not(.km-u) .dm-shortcut:hover,body:not(.km-u) .dm-item:hover{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.09),rgba(var(--k-acc-rgb),0) 88%)!important;color:var(--k-acc)!important}
body:not(.km-u) .channel.active,body:not(.km-u) .dm-shortcut.active,body:not(.km-u) .dm-item.active,body:not(.km-u) .utility.active{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.17),rgba(var(--k-acc-rgb),0) 92%)!important;color:var(--k-acc)!important;box-shadow:inset 2px 0 0 var(--k-acc)}
body:not(.km-u) .channel.active .cname{font-weight:650}
body:not(.km-u) .channel.new::before{background:var(--k-acc);box-shadow:0 0 6px var(--cz-glow)}
body:not(.km-u) .dm-search{border:0;border-radius:999px;background:rgba(var(--k-acc-rgb),.06)}
body:not(.km-u) .userbar{border:0!important;border-radius:16px;background:radial-gradient(ellipse 80% 120% at 25% 50%,rgba(var(--k-acc-rgb),.08),transparent 80%),var(--cz-rule-soft) top/100% 1px no-repeat!important;box-shadow:none}
body:not(.km-u) .km-agent-row:hover,body:not(.km-u) .km-agent-row.active{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.1),rgba(var(--k-acc-rgb),0) 90%)}

/* ---------- the chat: the brighter glass in the middle ---------- */
body:not(.km-u) .workspace{border:0!important;border-radius:18px 0 0 0;margin-left:8px;background:var(--cz-bg)!important;box-shadow:0 0 40px 16px var(--cz-halo)}
body:not(.km-u) .channelhead .topic{border-left:0;background:linear-gradient(transparent,var(--cz-line),transparent) left/1px 100% no-repeat}
body:not(.km-u) .searchbox input{border:0;border-radius:999px;background:rgba(var(--k-acc-rgb),.06);box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.08)}
body:not(.km-u) .searchbox input:focus{outline:0;box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.42),0 0 16px rgba(var(--k-acc-rgb),.14)}
body:not(.km-u) .km-strip{border-bottom:0!important;background:radial-gradient(ellipse 60% 140% at 30% 50%,rgba(var(--k-acc-rgb),.05),transparent 75%),var(--cz-rule-soft) bottom/100% 1px no-repeat!important;position:relative}
body:not(.km-u) .km-chip,body:not(.km-u) .km-chip-btn{border:0!important;background:transparent!important;border-radius:0;position:relative;box-shadow:none}
body:not(.km-u) .km-chip-btn:hover{color:var(--k-acc);text-shadow:0 0 12px var(--cz-glow)}
body:not(.km-u) .km-chip-btn:hover::after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:1px;background:var(--k-acc);box-shadow:0 0 8px var(--cz-glow)}
body:not(.km-u) .km-chip-btn.km-primary,body:not(.km-u) .km-chip-btn.on{color:var(--k-acc)!important;text-shadow:0 0 14px var(--cz-glow)}
body:not(.km-u) .km-chip-btn.km-primary::before{content:"";position:absolute;inset:0 -2px;border-radius:999px;background:radial-gradient(ellipse at 50% 60%,rgba(var(--k-acc-rgb),.17),rgba(var(--k-acc-rgb),0) 75%);z-index:-1}
body:not(.km-u) .km-chip.km-human-chip{color:var(--k-amber-ink)!important;text-shadow:none}
body:not(.km-u) .date:before,body:not(.km-u) .date:after{background:var(--cz-rule-soft)}
body:not(.km-u) .message{border-radius:12px}
body:not(.km-u) .message:hover{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.05),rgba(var(--k-acc-rgb),0) 75%)}
body:not(.km-u) .message-actions{border:0!important;border-radius:12px;background:var(--cz-solid)!important;box-shadow:0 0 18px 6px var(--cz-halo),0 0 0 1px rgba(var(--k-acc-rgb),.07)!important}
body:not(.km-u) .reaction{border-radius:999px;background:rgba(var(--k-acc-rgb),.07);border-color:transparent}
body:not(.km-u) .reaction[aria-pressed=true]{background:rgba(var(--k-acc-rgb),.16);border-color:transparent;box-shadow:0 0 10px rgba(var(--k-acc-rgb),.18)}
body:not(.km-u) .attachment,body:not(.km-u) .msgfile-img,body:not(.km-u) .message-text pre{border:0!important;border-radius:14px;background:rgba(var(--k-acc-rgb),.05)!important}
body:not(.km-u) .composer{border:0!important;border-radius:18px;background:rgba(var(--k-acc-rgb),.045)!important;box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.1)}
body:not(.km-u) .composer:focus-within{box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.38),0 0 22px rgba(var(--k-acc-rgb),.13)}
body:not(.km-u) .reply-banner{border-radius:14px 14px 0 0;background:rgba(var(--k-acc-rgb),.07)}
body:not(.km-u) .emoji-pop,body:not(.km-u) .servermenu{border:0!important;border-radius:16px;background:var(--cz-solid)!important;box-shadow:0 0 34px 16px var(--cz-halo),0 0 0 1px rgba(var(--k-acc-rgb),.06)!important}
body:not(.km-u) .servermenu button:hover{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.14),transparent 90%);color:var(--k-acc)}
body:not(.km-u) .unread-divider:before,body:not(.km-u) .unread-divider:after{background:linear-gradient(90deg,transparent,#E0566A 30%,#E0566A 70%,transparent)}

/* ---------- the sides of the chat: members, threads, profiles, activity ---------- */
body:not(.km-u) .members,body:not(.km-u) .thread-pane,body:not(.km-u) .dm-profile,body:not(.km-u) .activity,body:not(.km-u) .topic-aside{border-left:0!important;background:linear-gradient(transparent,var(--cz-line) 18%,var(--cz-line) 82%,transparent) left/1px 100% no-repeat!important}
body:not(.km-u) .memberheading{color:var(--k-dim);letter-spacing:.08em}
body:not(.km-u) .member{border-radius:10px}
body:not(.km-u) .member:hover{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.09),rgba(var(--k-acc-rgb),0) 90%)}
body:not(.km-u) .member:hover .name{color:var(--k-acc)}
body:not(.km-u) .avatar .dot{border-color:rgba(var(--k-bg-rgb),.95)}

/* ---------- pages, lists and cards: quiet rows of glass ---------- */
body:not(.km-u) .listcard,body:not(.km-u) .post-card,body:not(.km-u) .activity-card,body:not(.km-u) .forum-searchbar,body:not(.km-u) .request-card,body:not(.km-u) .resource-card,body:not(.km-u) .profile-box{border:0!important;border-radius:16px;background:rgba(var(--k-acc-rgb),.04)!important;box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.06)}
body:not(.km-u) .post-card:hover,body:not(.km-u) .listcard:hover{background:rgba(var(--k-acc-rgb),.07)!important;box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.14),0 0 20px rgba(var(--k-acc-rgb),.08)}
body:not(.km-u) .friend-row{border-top:0;background:var(--cz-rule-soft) top/100% 1px no-repeat}
body:not(.km-u) .friend-row:hover{border-radius:12px;background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.09),rgba(var(--k-acc-rgb),0) 90%)}
body:not(.km-u) .tab,body:not(.km-u) .chip{border-radius:999px}
body:not(.km-u) .tab.active,body:not(.km-u) .tab:not(.addfriend):hover{background:transparent;color:var(--k-acc);text-shadow:0 0 12px var(--cz-glow);box-shadow:inset 0 -1px 0 var(--k-acc)}
body:not(.km-u) .tag{border:0;border-radius:999px;background:rgba(var(--k-acc-rgb),.07)}
body:not(.km-u) .tag.active{background:rgba(var(--k-acc-rgb),.18);box-shadow:0 0 10px rgba(var(--k-acc-rgb),.16)}
body:not(.km-u) .forum-filters select{border:0;border-radius:999px;background:rgba(var(--k-acc-rgb),.07)}
body:not(.km-u) .list-empty{border:0;border-radius:16px;background:radial-gradient(ellipse at 50% 40%,rgba(var(--k-acc-rgb),.06),transparent 75%)}
body:not(.km-u) .post-controls{border-bottom:0;background:var(--cz-rule-soft) bottom/100% 1px no-repeat}
body:not(.km-u) .roundbtn{background:radial-gradient(circle,rgba(var(--k-acc-rgb),.12),transparent 72%)}
body:not(.km-u) .roundbtn:hover{background:radial-gradient(circle,rgba(var(--k-acc-rgb),.26),transparent 74%);color:var(--k-acc)}

/* ---------- buttons and fields outside dialogs ---------- */
body:not(.km-u) .workspace .primary,body:not(.km-u) .channels .primary,body:not(.km-u) .tab.addfriend{border-radius:999px;background:linear-gradient(180deg,rgba(var(--k-acc-rgb),.92),var(--k-acc2));color:#fff;box-shadow:0 4px 16px -4px rgba(var(--k-acc-rgb),.55)}
body:not(.km-u) .workspace .primary:hover,body:not(.km-u) .channels .primary:hover{box-shadow:0 4px 20px -2px rgba(var(--k-acc-rgb),.7)}
body:not(.km-u) .workspace .secondary,body:not(.km-u) .channels .secondary{border-radius:999px;background:rgba(var(--k-acc-rgb),.08);color:var(--k-ink2)}
body:not(.km-u) .workspace .secondary:hover,body:not(.km-u) .channels .secondary:hover{background:rgba(var(--k-acc-rgb),.15);color:var(--k-acc)}
body:not(.km-u) .workspace .outline,body:not(.km-u) .channels .outline{border:0;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.22)}
body:not(.km-u) .workspace .outline:hover,body:not(.km-u) .channels .outline:hover{color:var(--k-acc);box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.5),0 0 12px rgba(var(--k-acc-rgb),.14)}
body:not(.km-u) .workspace .field{border:0;border-radius:0;background:transparent;box-shadow:inset 0 -1px 0 rgba(var(--k-acc-rgb),.24)}
body:not(.km-u) .workspace .field:focus{outline:0;box-shadow:inset 0 -1.5px 0 var(--k-acc)}

/* ---------- small screens: the same glass, edge to edge ---------- */
@media (max-width:760px){
  body:not(.km-u) .workspace{margin-left:0;border-radius:0}
  body:not(.km-u) .channels{border-radius:0}
}

/* ---------- orbits: as in the universe view, an orbit's colour runs through its name and its planets' marks ---------- */
body:not(.km-u) .km-orbit-cat .category-label{color:var(--km-oc);text-shadow:0 0 10px color-mix(in srgb,var(--km-oc) 30%,transparent)}
/* V22: hover and the selected planet look the same in every orbit (the accent, its left edge included); the orbit's colour stays on the # mark */
body:not(.km-u) .km-orbit-list .channel.active .cname{text-shadow:none}
body:not(.km-u) .channelhead>.hash,body:not(.km-u) .channelhead>span:first-child{color:var(--km-oc,var(--k-acc))}
body:not(.km-u) .channelhead .km-en{font:500 9px/1 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim);white-space:nowrap;margin-left:-2px;align-self:center;padding-top:3px}
@media (max-width:1000px){body:not(.km-u) .channelhead .km-en{display:none}}
body:not(.km-u) .km-msort{border:0!important;background:transparent!important;box-shadow:none!important}
body:not(.km-u) .km-msort button{border:0!important;background:transparent!important;border-radius:0!important;position:relative;color:var(--k-ink2)}
body:not(.km-u) .km-msort button.on,body:not(.km-u) .km-msort button[aria-pressed=true]{color:var(--k-acc)!important;box-shadow:none!important}
body:not(.km-u) .km-msort button.on::after,body:not(.km-u) .km-msort button[aria-pressed=true]::after{content:"";position:absolute;left:50%;bottom:-2px;width:4px;height:4px;border-radius:50%;background:var(--k-acc);box-shadow:0 0 8px var(--cz-glow);transform:translateX(-50%)}

/* ---------- unread counts on the universes: white on red, ringed in the sky's colour (both views) ---------- */
.rail .lc-count{color:#FFFFFF!important;font-weight:700;border-color:rgba(var(--k-bg-rgb),.96)!important;box-shadow:0 0 8px rgba(224,82,99,.35)}
@media (hover:none){body:not(.km-u) .channel,body:not(.km-u) .member,body:not(.km-u) article.message,body:not(.km-u) .rail .server{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}

/* ---------- 中文 / English (both views) ---------- */
.km-lang-btn{font:700 11px/1 "Inter Tight","Plex SC",sans-serif;letter-spacing:.04em}
button.km-lang-btn{color:var(--k-ink2)}
button.km-lang-btn:hover{color:var(--k-acc)}
html[lang=en] .channelhead .km-en{display:none}
@media (max-width:700px){.titlebar #window-title{max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media (max-width:480px){.titlebar .tright{gap:2px;right:6px}.titlebar .tright .ib{width:28px}}   /* V14: room for 中文 / English beside the title on a phone */
@media (max-width:480px){.titlebar{justify-content:flex-start;padding-left:100px}.titlebar .smallmark{display:none}.titlebar #window-title{max-width:calc(100vw - 100px - 184px)}}   /* a phone: the title moves left of the buttons; a long one ends in … */

/* ---------- V17 · 面板视图's 我的智能体 is its 动态 (src/kmind/panelx.js): picture = card, row = tasks; groups; 关系; order ---------- */
.km-side-ow .km-cat{display:flex;align-items:center;gap:2px}
.km-side-ow .km-cat .category-label{flex:1}
.km-side-tool{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:6px;background:transparent;color:var(--k-dim);cursor:pointer}
.km-side-tool:hover{color:var(--k-acc);background:rgba(var(--k-acc-rgb),.08)}
.km-side-sum{display:flex;align-items:center;flex-wrap:wrap;gap:4px 9px;padding:0 10px 6px 12px;font-size:11px;color:var(--k-ink2)}
.km-side-sum>span{display:inline-flex;align-items:center;gap:4px}
.km-side-sum .km-ow-dot{position:static;width:6px;height:6px}
.km-side-gtag{display:inline-flex;align-items:center;gap:3px;margin-left:auto;height:20px;padding:0 7px;border:0;border-radius:999px;background:rgba(var(--k-acc-rgb),.08);color:var(--k-acc);font:inherit;font-size:10.5px;cursor:pointer}
.km-side-rows{display:flex;flex-direction:column}
.km-side-gh{display:flex;align-items:center;gap:6px;width:100%;height:26px;margin-top:6px;padding:0 8px 0 6px;border:0;background:var(--cz-rule-soft,linear-gradient(90deg,transparent,var(--k-line),transparent)) bottom/100% 1px no-repeat;color:var(--k-ink);font:inherit;text-align:left;cursor:pointer}
.km-side-gh>svg{flex:none;color:var(--k-dim);transition:transform .2s}
.km-side-gh.fold>svg{transform:rotate(-90deg)}
.km-side-gh b{font-size:12px;font-weight:650;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-side-gh small{font:500 8.5px/1 "JetBrains Mono",monospace;letter-spacing:.14em;color:var(--k-dim)}
.km-side-gh em{margin-left:auto;font:600 10px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--k-dim)}
.km-side-gh:hover b{color:var(--k-acc)}
.km-side-row{position:relative;display:flex;align-items:center;gap:0;padding:0 4px 0 6px;border-radius:8px;margin:1px 0}
.km-side-row[draggable="true"]{cursor:grab}
.km-side-row.dragging{opacity:.4}
.km-side-row.km-gdrag{opacity:.45}   /* V34: dragging a leader, its group goes with it */
.km-side-row.km-ins-t{box-shadow:inset 0 2px 0 var(--k-acc)}
.km-side-row.km-ins-b{box-shadow:inset 0 -2px 0 var(--k-acc)}
.km-side-av{position:relative;display:grid;place-items:center;flex:none;width:38px;height:40px;padding:0;border:0;border-radius:8px;background:transparent;cursor:pointer;transition:transform .15s}
.km-side-av:hover{transform:scale(1.06)}
.km-side-av:hover .km-avbox{filter:drop-shadow(0 0 6px rgba(var(--k-acc-rgb),.45))}
.km-side-av .km-ow-dot{position:absolute;right:3px;bottom:5px;width:8px;height:8px;border:2px solid var(--panel,var(--k-bg))}
.km-side-body{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:6px;height:42px;padding:0 4px 0 6px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.km-side-body>span:first-child{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.km-side-body .dm-badge{flex:none}
.km-side-body b{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-side-body small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-side-n{font:600 10px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--k-acc)}
.km-side-chev{display:grid;place-items:center;color:var(--k-dim);opacity:0;transition:transform .2s,opacity .15s}
.km-side-row:hover .km-side-chev,.km-side-row.open .km-side-chev{opacity:1}
.km-side-row.open .km-side-chev{transform:rotate(180deg);color:var(--k-acc)}
.km-side-row:hover{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.1),rgba(var(--k-acc-rgb),0) 90%)}
.km-side-row.open{background:linear-gradient(90deg,rgba(var(--k-acc-rgb),.14),rgba(var(--k-acc-rgb),.02) 90%)}
.km-side-drop{margin:0 4px 6px 12px;padding:2px 0 2px 10px;border-left:1px solid rgba(var(--k-acc-rgb),.25)}
.km-side-drop .km-ow-drop{padding:4px 0}
.km-side-drop .km-ow-task{grid-template-columns:auto minmax(0,1fr);gap:6px 8px}
.km-side-drop .km-ow-tside{grid-column:2;flex-direction:row;justify-content:space-between;align-items:center;gap:8px}
.km-side-drop .km-ow-dfoot{display:flex;flex-wrap:wrap;gap:2px 0;justify-content:flex-start}
.km-side-drop .km-ow-dfoot .km-ow-link{padding:0 5px}   /* V22: 完整资料 · 私信 · 邮箱 · 编辑 fit one line in the sidebar */
/* a crowded planet's strip: one chip per group, a menu of its agents */
.km-crowd{display:inline-flex!important;align-items:center;gap:0;height:26px;margin:0 2px;padding:0 8px 0 4px;border:0;border-radius:999px;background:rgba(var(--k-acc-rgb),.07);box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.16);color:var(--k-ink2);font:inherit;font-size:11.5px;cursor:pointer}
.km-crowd .km-avbox{margin-right:-5px}
.km-crowd b{margin-left:10px;font-weight:600;color:var(--k-ink)}
.km-crowd em{margin-left:5px;font:600 10px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--k-dim)}
.km-crowd.own{box-shadow:inset 0 0 0 1px rgba(var(--k-acc-rgb),.45)}
.km-crowd.own b{color:var(--k-acc)}
.km-crowd:hover{background:rgba(var(--k-acc-rgb),.13)}
/* 关系 as a dialog */
dialog.modal.km-rel-dlg{width:min(1040px,96vw);height:min(720px,88dvh);flex-direction:column;overflow:hidden}
dialog.modal.km-rel-dlg[open]{display:flex}
dialog.modal.km-rel-dlg .km-rel-host{flex:1;min-height:0;overflow:auto;margin:0 -6px}
/* 动态 from the titlebar: the universe's panel in a dialog (V24: back, with 只看这颗星球); 沉浸视图 beside it */
.km-ow-tb{position:relative}
.titlebar .km-ow-tb.on{color:var(--k-acc);background:rgba(var(--k-acc-rgb),.12)}
.km-ow-badge{position:absolute;top:1px;right:0;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--k-amber);color:#fff;font:700 9.5px/15px "Inter Tight",sans-serif;font-style:normal;text-align:center}
/* V24 · 动态 in 面板视图: a panel dropping down from its titlebar button (not a modal), over 沉浸视图 (z 60, src/universe/imm.css) */
.km-ow-pop{position:fixed;z-index:70;overflow:auto;scrollbar-width:thin;border-radius:14px;background:rgba(var(--k-bg-rgb),.97);border:1px solid var(--k-line);box-shadow:0 18px 50px rgba(var(--k-sh),.22);animation:km-ow-pop-in .18s ease-out}
.km-ow-pop[hidden]{display:none}
@keyframes km-ow-pop-in{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.km-ow-pop{animation:none}}
@media (max-width:430px){.titlebar .km-ow-tb{display:none!important}.km-ow-pop{display:none!important}}   /* a phone's titlebar has no room: 动态 is in 我的智能体 on the mother planet */
