/* Desktop workspace layer. Interface clean-up, 27 September 2026 (Claude lane, P4-CLAUDE-UI-CLEAN), on the
   layout the owner accepted on 10 September (da866d8): collapsible sidebar, centred conversation, optional
   right panel. Presentation only: no fabricated conversations, agents, reminders or job outcomes, and no
   screen states more than the core records. The visual rules come from the references the owner named
   (Claude, Grok, ChatGPT) and the Linear and Raycast design documents: a neutral luminance ladder with 6%
   hairlines instead of outlined boxes, Fraunces Soft for interface text and titles, one
   restrained accent, ease-out motion of 150 to 250 ms that is off under reduced-motion. */
.jv-app {
  /* Caffeine, decision45: neutral secondary controls; warmth is reserved for primary actions. */
  --jv-bg:#f9f9f9;--jv-surface:#fcfcfc;--jv-surface-2:#efefef;--jv-surface-3:#e8e8e8;--jv-text:#202020;--jv-text-2:#343434;
  --jv-text-muted:#646464;--jv-text-subtle:#666666;--jv-border:#e2e2e2;--jv-border-strong:#d8d8d8;--jv-input-border:#858585;
  --jv-accent:#644a40;--jv-accent-text:#fff;--jv-accent-soft:rgba(100,74,64,.12);--jv-btn:#644a40;--jv-on-btn:#fff;
  --jv-ok:#247044;--jv-warn:#805407;--jv-bad:#b83228;--jv-unknown:#666666;
  --jv-hover:#e8e8e8;--jv-selected:#e8e8e8;--jv-sidebar:#f2f2f2;--jv-panel-bg:#f2f2f2;
  --jv-shadow:0 16px 48px rgba(32,32,32,.10),0 2px 6px rgba(32,32,32,.04);
  --jv-font:"Fraunces Soft",Georgia,serif;
  --jv-serif:var(--jv-font);--jv-tap:40px;
  color-scheme:light;color:var(--jv-text);background:var(--jv-bg);font:14px/1.5 var(--jv-font);
  font-feature-settings:"calt","kern";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  height:100dvh;min-height:0;overflow:hidden;grid-template-columns:248px minmax(0,1fr);
  grid-template-rows:56px minmax(0,1fr);position:relative;
}
.jv-app[data-theme="dark"] {
  --jv-bg:#111111;--jv-surface:#191919;--jv-surface-2:#222222;--jv-surface-3:#2a2a2a;--jv-sidebar:#181818;--jv-panel-bg:#181818;
  --jv-text:#eeeeee;--jv-text-2:#d4d4d4;--jv-text-muted:#b4b4b4;--jv-text-subtle:#a3a3a3;--jv-border:#303030;--jv-border-strong:#484848;--jv-input-border:#747474;
  --jv-accent:#ffe0c2;--jv-accent-text:#081a1b;--jv-accent-soft:rgba(255,224,194,.10);--jv-btn:#ffe0c2;--jv-on-btn:#081a1b;
  --jv-hover:#2a2a2a;--jv-selected:#303030;--jv-ok:#83d3a1;--jv-warn:#e2b04a;--jv-bad:#ff948b;--jv-unknown:#a3a3a3;
  --jv-shadow:0 24px 70px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.25);color-scheme:dark;
}
.jv-app button,.jv-app input,.jv-app textarea,.jv-app select{font:inherit;font-feature-settings:inherit}
.jv-app button{touch-action:manipulation}
.jv-app button,.jv-app .jv-side-link,.jv-app .jv-nav a,.jv-app .jv-card,.jv-app .jv-job,.jv-app .jv-app-card{transition:background-color .14s var(--jv-ease),color .14s var(--jv-ease),box-shadow .14s var(--jv-ease),border-color .14s var(--jv-ease),opacity .14s var(--jv-ease),transform .15s var(--jv-ease)}
.jv-app button:active:not(:disabled){transform:scale(.97)}
.jv-app button:focus-visible,.jv-app a:focus-visible,.jv-app textarea:focus-visible,.jv-app input:focus-visible,.jv-app select:focus-visible,.jv-app [tabindex]:focus-visible{outline:2px solid var(--jv-accent);outline-offset:3px}
.jv-icon{width:17px;height:17px;display:block;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.jv-icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border:0;border-radius:8px;background:transparent;color:var(--jv-text-muted);padding:8px;cursor:pointer}
.jv-icon-button:hover:not(:disabled){background:var(--jv-hover);color:var(--jv-text)}
.jv-icon-button:disabled{opacity:.4;cursor:default}
.jv-skip{position:absolute;left:12px;top:-80px;z-index:20;padding:12px;background:var(--jv-bg);color:var(--jv-accent);border:1px solid var(--jv-accent);border-radius:6px}
.jv-skip:focus{top:12px}
.jv-mobile-only{display:none}

/* ---- sidebar ---- */
.jv-workspace-sidebar{grid-column:1;grid-row:1/-1;display:flex;flex-direction:column;min-height:0;padding:0 10px;border-right:1px solid var(--jv-border);background:var(--jv-sidebar);overflow:hidden}
.jv-brand{height:60px;display:flex;align-items:center;gap:9px;padding:0 10px;flex-shrink:0}
.jv-brand strong{font-size:14.5px;letter-spacing:-.01em;font-weight:500}
.jv-side-link,.jv-app .jv-nav a{display:flex;align-items:center;gap:11px;width:100%;min-height:34px;padding:7px 10px;margin:1px 0;font-size:13.5px;font-weight:450;border:0;border-radius:8px;background:transparent;color:var(--jv-text-2);text-decoration:none;text-align:left;cursor:pointer}
.jv-side-link:hover,.jv-app .jv-nav a:hover{background:var(--jv-hover);color:var(--jv-text)}
.jv-new-chat{font-weight:500;color:var(--jv-text)}
.jv-side-link>.jv-icon,.jv-nav a>.jv-icon{color:var(--jv-text-muted);width:16px;height:16px}
.jv-side-link kbd{margin-left:auto;font:11px var(--jv-font);color:var(--jv-text-subtle);letter-spacing:.02em}
.jv-shortcuts{margin-top:2px}
.jv-app .jv-nav a[aria-current="page"],.jv-side-link[aria-current="page"],.jv-conversations a[aria-current="true"]{background:var(--jv-selected);color:var(--jv-text);font-weight:500}
.jv-app .jv-nav a[aria-current="page"]>.jv-icon,.jv-side-link[aria-current="page"]>.jv-icon{color:var(--jv-text)}
.jv-app .jv-nav .badge,.jv-soon{margin-left:auto;font-size:10px;color:var(--jv-text-subtle);font-weight:400}
.jv-sidebar-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}
.jv-section-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--jv-text-subtle);padding:0 10px;margin:18px 0 6px}
.jv-sidebar-empty{font-size:12px;line-height:1.6;color:var(--jv-text-muted);padding:0 10px}
.jv-conversations{display:block;border:0;padding:0;overflow:visible}
.jv-conversations ul{padding:0;margin:0;list-style:none}
.jv-conversations a{min-height:32px;font-size:13px;padding:6px 10px;gap:8px;border-radius:8px;color:var(--jv-text-muted);font-weight:400}
.jv-conversations a>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-conversations a:hover{background:var(--jv-hover);color:var(--jv-text)}
.jv-badge-dot{width:6px;height:6px;margin-left:auto;background:var(--jv-warn);border-radius:50%}
.jv-avatar{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--jv-surface-3);color:var(--jv-text-muted);font-weight:500;font-size:12px;box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-team-link b,.jv-profile b{display:block;font-size:13px;font-weight:500}
.jv-team-link small,.jv-profile small{display:block;color:var(--jv-text-muted);font-size:11.5px;line-height:1.5}
.jv-sidebar-footer{padding:10px 0 12px;flex-shrink:0}
.jv-profile{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-top:6px;border-radius:8px;color:var(--jv-text);text-decoration:none}
.jv-profile:hover{background:var(--jv-hover)}
.jv-profile>.jv-icon{margin-left:auto;color:var(--jv-text-subtle);width:15px}
.jv-owner-avatar{background:linear-gradient(135deg,#8b8b8b,#484848);color:#fff;box-shadow:none}

/* ---- header ---- */
.jv-header{grid-column:2;grid-row:1;min-height:0;height:56px;border:0;padding:0 20px;gap:6px;background:var(--jv-bg)}
.jv-breadcrumb{display:flex;align-items:center;gap:10px;min-width:0;font-size:13px;color:var(--jv-text-muted)}
.jv-breadcrumb strong{color:var(--jv-text);font-weight:500;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-slash{opacity:.5}
.jv-header-actions{display:flex;align-items:center;gap:2px;margin-left:auto;flex-shrink:0}
.jv-status{margin:0 6px 0 0;font-size:12px;max-width:190px;gap:6px;padding:4px 9px;border-radius:999px;background:var(--jv-surface-2)}
.jv-status .dot{width:6px;height:6px}
.jv-status[data-state="live"]{display:none}
.jv-context-button{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--jv-text-muted);padding:6px 10px;border-radius:8px;font-size:13px!important;cursor:pointer;min-height:32px}
.jv-context-button:hover,.jv-context-button[aria-pressed="true"]{background:var(--jv-hover);color:var(--jv-text)}
.jv-context-button .jv-icon{width:15px;height:15px}

/* ---- routes ---- */
.jv-main{grid-column:2;grid-row:2;padding:0;min-height:0;overflow:auto}
@keyframes jv-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.jv-main>.jv-route{animation:jv-rise .24s var(--jv-ease) both}
.jv-main>.jv-route:not(.jv-chat){padding:26px 40px 40px;max-width:980px}
.jv-main>.jv-route h2{font-family:var(--jv-serif);font-weight:400;font-size:26px;letter-spacing:-.01em;line-height:1.15;margin:0 0 6px}
.jv-main>.jv-route>h3,.jv-section-head h3,.jv-app-group>h3,.jv-work-group>h3,.jv-inbox>h3,.jv-team-composer>h3{font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--jv-text-subtle)}
.jv-card{border:0;border-radius:14px;padding:16px 18px;margin-bottom:12px;background:var(--jv-surface);box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-card h3{font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--jv-text);margin:0 0 6px}
.jv-card>h3:first-child{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--jv-text-subtle);margin-bottom:10px}
.jv-card h4{font-size:13.5px;font-weight:500;margin:0 0 4px}
.jv-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 13px;border-radius:999px;border:0;background:var(--jv-surface-3);color:var(--jv-text);font-size:13px;font-weight:500;box-shadow:inset 0 0 0 1px var(--jv-border);text-decoration:none;cursor:pointer}
.jv-btn .jv-icon{width:15px;height:15px}
.jv-btn:disabled{opacity:.45;cursor:default}
.jv-btn:hover:not(:disabled){background:var(--jv-hover);box-shadow:inset 0 0 0 1px var(--jv-border-strong)}
.jv-btn[data-primary]{background:var(--jv-btn);color:var(--jv-on-btn);border:0;box-shadow:none}
.jv-btn[data-primary]:hover:not(:disabled){background:var(--jv-btn);opacity:.9}
.jv-card .jv-btn{background:var(--jv-bg)}
.jv-card .jv-btn[data-primary]{background:var(--jv-btn)}
.jv-input,.jv-app select.jv-input{border:0;border-radius:10px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-input-border);min-height:36px;padding:7px 11px;font-size:13.5px}
.jv-card .jv-input{background:var(--jv-bg)}
.jv-input:focus{box-shadow:inset 0 0 0 1px var(--jv-accent),0 0 0 3px var(--jv-accent-soft);outline:0}
.jv-label{font-size:12.5px;color:var(--jv-text-muted);margin:10px 0 4px}
.jv-banner{border:0;border-radius:10px;background:var(--jv-surface-3);padding:10px 14px;font-size:13px;box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-banner[data-tone="warn"]{box-shadow:inset 3px 0 0 var(--jv-warn),inset 0 0 0 1px var(--jv-border)}
.jv-banner[data-tone="bad"]{box-shadow:inset 3px 0 0 var(--jv-bad),inset 0 0 0 1px var(--jv-border)}
.jv-banner[data-tone="ok"]{box-shadow:inset 3px 0 0 var(--jv-ok),inset 0 0 0 1px var(--jv-border)}
.jv-unknown{color:var(--jv-text-subtle);font-size:13px}
.jv-kv{font-size:13px}
.jv-kv dt{color:var(--jv-text-subtle)}
.jv-app details>summary{cursor:pointer;color:var(--jv-text-subtle);font-size:13px;list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 0}
.jv-app details>summary::-webkit-details-marker{display:none}
.jv-app details>summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .14s var(--jv-ease)}
.jv-app details[open]>summary::before{transform:rotate(45deg)}
.jv-app details>summary:hover{color:var(--jv-text-muted)}
.jv-details{margin-top:6px}
.jv-details>.jv-card,.jv-details>p{margin-top:10px}
.jv-lede{color:var(--jv-text-muted);font-size:13.5px;margin:0 0 18px}
.jv-table{border-collapse:collapse;width:100%;font-size:13px}
.jv-table th,.jv-table td{text-align:left;padding:8px 10px;border-top:1px solid var(--jv-border)}
.jv-table thead th{border-top:0;color:var(--jv-text-subtle);font-weight:500;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}

/* ---- chat ---- */
.jv-chat{height:100%;margin:0;width:100%;max-width:none;animation:none}
.jv-chat-frame{display:flex;min-width:0;height:100%;gap:0}
.jv-transcript-wrap{width:100%;height:100%;position:relative}
.jv-transcript{padding:40px max(32px,calc((100% - 760px)/2));gap:28px;overflow-anchor:none;scrollbar-width:thin}
.jv-msg{max-width:100%;flex-shrink:0;font-size:14.5px;line-height:1.75}
.jv-msg[data-role="owner"]{max-width:88%;width:max-content}
.jv-msg[data-role="jarvis"]{width:100%}
.jv-bubble{padding:0;border:0;border-radius:0;background:transparent}
.jv-msg[data-role="owner"]>.jv-bubble{padding:10px 16px;border:0;border-radius:18px;background:var(--jv-surface-2)}
.jv-provisional{border:0;background:transparent;color:var(--jv-text-muted);margin-top:20px;line-height:1.8}
.jv-msg-status{font-size:11.5px;line-height:1.5;margin-top:7px;color:var(--jv-text-subtle)}
.jv-claims{margin-top:12px}
.jv-claim{border-radius:8px;font-size:12px;padding:5px 9px}
.jv-empty{margin:auto;text-align:center;max-width:520px;color:var(--jv-text-muted);padding:30px 0 60px;position:relative}
.jv-empty::before{display:none}
.jv-empty>img{display:none}
.jv-mark-tile{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--jv-btn);color:var(--jv-on-btn);font-family:var(--jv-serif);font-size:24px;line-height:1;margin-bottom:14px;box-shadow:var(--jv-shadow)}
.jv-eyebrow{display:none}
.jv-empty h2{font-family:var(--jv-serif);font-size:38px;font-weight:400!important;letter-spacing:-.015em!important;line-height:1.1;color:var(--jv-text);margin:0 0 10px}
.jv-empty h2 i{font-style:italic;color:var(--jv-text-muted)}
.jv-empty>p:last-of-type{font-size:14px;line-height:1.7;margin:0 0 20px}
.jv-empty .jv-btn{display:inline-block;font-size:12px;text-decoration:none}
.jv-composer{width:calc(100% - 64px);max-width:800px;margin:0 auto;display:block;padding:14px 14px 10px;border:0;border-radius:22px;background:var(--jv-surface);box-shadow:inset 0 0 0 1px var(--jv-border-strong),0 12px 40px rgba(0,0,0,.06);flex-shrink:0;position:relative}
.jv-app[data-theme="dark"] .jv-composer{box-shadow:inset 0 0 0 1px var(--jv-border-strong),0 12px 40px rgba(0,0,0,.4)}
.jv-composer:focus-within{box-shadow:inset 0 0 0 1px var(--jv-border-strong),0 0 0 4px var(--jv-accent-soft),0 12px 40px rgba(0,0,0,.14)}
.jv-voice-status{border-bottom:1px solid var(--jv-border);padding:0 3px 10px;margin-bottom:8px;font-size:13px;line-height:1.5}
.jv-voice-status p{margin:0 0 8px}
.jv-voice-transcript{max-height:6em;overflow:auto;overflow-wrap:anywhere;color:var(--jv-text-muted)}
.jv-voice-controls{display:flex;flex-wrap:wrap;gap:8px}
.jv-voice-status button{min-height:36px}
.jv-voice-help{font:inherit;font-size:11.5px;border:0;background:transparent;color:var(--jv-text-subtle);text-decoration:none;min-height:28px;padding:0 6px;cursor:pointer;display:block}
.jv-voice-help:hover{color:var(--jv-text-muted)}
.jv-composer-input{font-size:15px!important;width:100%;border:0;background:transparent;resize:vertical;max-height:25dvh;min-height:56px;padding:4px 6px;line-height:1.6;box-shadow:none!important;outline-offset:0!important}
.jv-composer-input::placeholder{color:var(--jv-text-subtle)}
.jv-composer-actions{display:flex;align-items:center;gap:2px;position:relative}
.jv-add-anchor{position:relative;display:inline-flex}
.jv-add-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:30;min-width:240px;padding:6px;border-radius:14px;background:var(--jv-bg);box-shadow:var(--jv-shadow),0 0 0 1px var(--jv-border-strong);animation:jv-rise .18s var(--jv-ease) both}
.jv-add-menu button,.jv-add-menu a{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--jv-text);text-align:left;font-size:13.5px;font-weight:450;cursor:pointer;text-decoration:none}
.jv-add-menu button:hover,.jv-add-menu a:hover{background:var(--jv-hover)}
.jv-add-menu .jv-icon{width:16px;height:16px;color:var(--jv-text-muted)}
.jv-add-menu small{display:block;color:var(--jv-text-muted);font-size:12px;font-weight:400}
.jv-model-label{font-size:13px;font-weight:450;color:var(--jv-text-muted);white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.jv-model-label .jv-icon{width:13px;height:13px}
.jv-model-label:hover{color:var(--jv-text)}
.jv-composer-spacer{flex:1}
.jv-send{width:32px;height:32px;min-width:32px;min-height:32px;padding:7px;margin-left:4px;border-radius:50%!important;display:flex;align-items:center;justify-content:center;background:var(--jv-btn)!important;color:var(--jv-on-btn)!important;border:0!important;box-shadow:none!important}
.jv-send .jv-icon{stroke-width:2.2;width:16px;height:16px}
.jv-send:disabled{opacity:.3}
.jv-composer-note{text-align:center;font-size:11.5px;margin:10px 20px 14px;line-height:1.5;flex-shrink:0;color:var(--jv-text-subtle)}
.jv-composer-note span{margin-left:10px}
.jv-chat-connection{border:0;border-radius:8px;background:var(--jv-surface-2);padding:8px 12px;margin:0 auto 10px;width:calc(100% - 64px);max-width:800px;font-size:12px}

/* ---- right panel ---- */
.jv-panel{display:none;grid-column:3;grid-row:1/-1;min-height:0;overflow:auto;width:320px;background:var(--jv-panel-bg);border-left:1px solid var(--jv-border);padding:0;color:var(--jv-text)}
.jv-app[data-context-open="true"]{grid-template-columns:248px minmax(0,1fr) 320px}
.jv-panel[data-panel-open="true"]{display:block;animation:jv-rise .2s var(--jv-ease) both}
.jv-panel-heading{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 20px}
.jv-panel-heading h2{font-family:var(--jv-serif);font-size:20px;font-weight:400;margin:0}
.jv-panel-intro{padding:24px;color:var(--jv-text-muted);font-size:13px;line-height:1.7}
.jv-panel-intro>.jv-icon{width:22px;height:22px;margin-bottom:16px;color:var(--jv-text-subtle)}
.jv-panel-intro h3{font-weight:500;font-size:15px;line-height:1.5;color:var(--jv-text);margin:0 0 8px;letter-spacing:0;text-transform:none}
.jv-planned-label{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--jv-surface-2);box-shadow:inset 0 0 0 1px var(--jv-border);font-size:11.5px;margin-top:8px;color:var(--jv-text-muted)}
.jv-tabs{display:none}
@media(max-width:1150px){
 .jv-breadcrumb>span{display:none}.jv-status .label{max-width:110px}.jv-header{padding:0 16px}
 .jv-app[data-context-open="true"]{grid-template-columns:248px minmax(0,1fr)}
 .jv-panel[data-panel-open="true"]{position:absolute;right:0;top:0;height:100%;z-index:5;box-shadow:-8px 0 28px #0001}
}
@media(max-width:760px){
 .jv-app{--jv-tap:44px}.jv-app .jv-icon-button,.jv-context-button{min-width:44px;min-height:44px}.jv-side-link,.jv-app .jv-nav a,.jv-conversations a{min-height:44px}
 .jv-app,.jv-app[data-context-open="true"]{grid-template-columns:minmax(0,1fr);grid-template-rows:56px minmax(0,1fr)}
 .jv-header,.jv-main{grid-column:1}.jv-header{height:56px;padding:0 10px;gap:4px}
 .jv-mobile-only{display:inline-flex}.jv-brand .jv-mobile-only{margin-left:auto}
 .jv-workspace-sidebar{display:none;position:absolute;left:0;top:0;bottom:0;width:270px;z-index:10;box-shadow:12px 0 32px #0002}
 .jv-app[data-menu-open="true"] .jv-workspace-sidebar{display:flex}
 .jv-breadcrumb{font-size:12px}.jv-breadcrumb strong{max-width:145px}.jv-header-actions{gap:0}
 .jv-status{max-width:10px;margin:0 5px}.jv-status .label{display:none}.jv-context-button{padding:8px}.jv-context-button span{display:none}
 .jv-main>.jv-route:not(.jv-chat){padding:20px 16px}.jv-card{padding:14px}.jv-table{font-size:12px!important}
 .jv-transcript{padding:26px 20px;gap:24px}.jv-empty{padding-bottom:25px}.jv-empty h2{font-size:30px}
 .jv-composer{width:calc(100% - 24px);padding:10px 10px 8px}.jv-composer-input{min-height:56px}
 .jv-composer-note{font-size:10px;margin-bottom:max(10px,env(safe-area-inset-bottom))}.jv-composer-note span{display:none}
 .jv-model-label{font-size:11px}.jv-composer-actions{gap:1px}
 .jv-chat-connection{width:calc(100% - 24px)}.jv-panel{width:min(320px,100%)}
 .jv-send{width:44px;height:44px;min-width:44px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.jv-app *{scroll-behavior:auto!important;animation:none!important;transition:none!important}.jv-app button:active{transform:none!important}}

/* ---- Work, Inbox, results, unread badges, the model description ---- */
.jv-badge-count{margin-left:auto;min-width:18px;height:18px;padding:0 6px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--jv-text);color:var(--jv-bg);font-variant-numeric:tabular-nums}
.jv-context-button .jv-badge-count{margin-left:4px}
.jv-conversations a .jv-badge-count{margin-left:auto}
.jv-count{display:inline-block;margin-left:6px;font-size:12px;font-weight:500;color:var(--jv-text-muted)}
.jv-work-columns{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,1.3fr);gap:20px;align-items:start}
.jv-work-group h3,.jv-inbox h3{margin:18px 0 8px}
.jv-job{border:0;border-radius:12px;background:transparent;margin:0;overflow:hidden;box-shadow:inset 0 1px 0 var(--jv-border)}
.jv-job:first-child{box-shadow:none}
.jv-job:hover,.jv-job[data-selected="true"]{background:var(--jv-surface-2);box-shadow:none}
.jv-job:hover+.jv-job,.jv-job[data-selected="true"]+.jv-job{box-shadow:none}
.jv-job-head{display:grid;grid-template-columns:1fr auto;gap:2px 12px;width:100%;padding:12px 14px;border:0;background:transparent;color:var(--jv-text);text-align:left;cursor:pointer;font:inherit}
.jv-job-title{font-weight:500;grid-column:1}
.jv-job-kind{grid-column:2;grid-row:1;font-size:12px;color:var(--jv-text-subtle);white-space:nowrap}
.jv-job-status{grid-column:1/-1;font-size:12.5px;color:var(--jv-text-muted)}
.jv-job-status::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 7px 1px 0;background:var(--jv-unknown)}
.jv-job-status[data-status="running"]::before{background:var(--jv-accent)}
.jv-job-status[data-status="failed"]::before{background:var(--jv-bad)}
.jv-job-status[data-status="done"]::before{background:var(--jv-ok)}
.jv-job-status[data-status="waiting_approval"]::before,.jv-job-status[data-status="waiting_pool"]::before,.jv-job-status[data-status="waiting_host"]::before{background:var(--jv-warn)}
.jv-job[data-stopping="true"] .jv-job-status::before{background:var(--jv-warn)}
.jv-job-when{grid-column:1/-1;font-size:11.5px;color:var(--jv-text-subtle)}
.jv-job-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 14px 12px}
.jv-job-actions .jv-btn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 12px;font-size:13px}
.jv-job-note{font-size:12px;color:var(--jv-text-muted)}
.jv-job-detail{border:0;border-radius:14px;background:var(--jv-surface-2);box-shadow:inset 0 0 0 1px var(--jv-border);padding:16px 18px}
.jv-job-detail h3{margin:0 0 4px;font-size:16px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--jv-text)}
.jv-job-detail h4{margin:18px 0 6px;font-size:11.5px;font-weight:500;color:var(--jv-text-subtle);text-transform:uppercase;letter-spacing:.06em}
.jv-job-detail .jv-job-actions{padding:10px 0 0}
.jv-checks{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.jv-checks li{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:12px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);color:var(--jv-text-muted)}
.jv-checks li[data-pass="true"]{color:var(--jv-ok)}
.jv-checks li[data-pass="false"]{color:var(--jv-bad)}
.jv-checks .jv-icon{width:14px;height:14px}
.jv-events{margin:0;padding-left:18px;font-size:13px;line-height:1.6}
.jv-runs{font-size:13px}
.jv-stop{margin-top:10px;font-size:13px}
.jv-job-result{margin-top:12px}
.jv-job-result .jv-btn{display:inline-flex;align-items:center;gap:6px}
.jv-result{margin-top:10px;border:0;border-radius:12px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);overflow:hidden}
.jv-result-head{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--jv-border);font-size:12px}
.jv-result-head .jv-icon-button{margin-left:auto}
.jv-result-text{margin:0;padding:12px 14px;max-height:50vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:12.5px/1.6 var(--jv-mono, ui-monospace, Consolas, monospace);color:var(--jv-text)}
.jv-result[data-stale="true"] .jv-banner,.jv-result[data-error] .jv-banner{margin:12px}
.jv-result .jv-btn{margin:0 12px 12px}
.jv-panel-body{padding:14px 16px}
.jv-panel-body .jv-job-detail{border:0;padding:0;background:transparent;box-shadow:none}
.jv-panel-body .jv-side-link{margin-bottom:10px}
.jv-work-empty{padding:12px 0}
.jv-approval,.jv-grant{border:0;border-radius:14px;background:var(--jv-surface-2);box-shadow:inset 0 0 0 1px var(--jv-border);padding:14px 16px;margin:0 0 10px}
.jv-approval[data-state="requested"]{box-shadow:inset 0 0 0 1px var(--jv-warn)}
.jv-approval-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.jv-risk{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:3px 10px;border-radius:999px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);color:var(--jv-text-muted)}
.jv-risk[data-tone="bad"]{color:var(--jv-bad)}
.jv-risk[data-tone="warn"]{color:var(--jv-warn)}
.jv-risk .jv-icon{width:14px;height:14px}
.jv-approval-state{font-size:12px;color:var(--jv-text-muted)}
.jv-approval-state[data-approval-state="requested"]{color:var(--jv-warn);font-weight:500}
.jv-approval-summary{margin:4px 0 10px;font-size:14px}
.jv-approval-scope{font-size:13px}
.jv-approval-actions{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.jv-approval-actions .jv-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 14px;font-size:13px}
.jv-approval-actions .jv-job-note{flex-basis:100%}
.jv-grant-form{flex-basis:100%;border:1px dashed var(--jv-border-strong);border-radius:10px;padding:12px 14px;font-size:13px}
.jv-grant-form input[type="number"]{width:64px;min-height:30px;padding:2px 6px;border:0;border-radius:6px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);color:var(--jv-text)}
.jv-grant-form select{min-height:30px;border:0;border-radius:6px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);color:var(--jv-text);padding:2px 6px}
.jv-approval code,.jv-grant code,.jv-grant-form code{font-family:var(--jv-mono, ui-monospace, Consolas, monospace);font-size:12px;background:var(--jv-bg);padding:1px 5px;border-radius:4px}
.jv-inbox .jv-banner{font-size:13px}
.jv-model-anchor{position:relative;display:inline-flex}
button.jv-model-label{border:0;background:transparent;cursor:pointer;padding:6px 9px;border-radius:8px;text-align:left}
button.jv-model-label:hover{background:var(--jv-hover)}
.jv-popover{position:absolute;bottom:calc(100% + 8px);left:0;z-index:30;width:min(380px,calc(100vw - 40px));max-height:min(70vh,520px);overflow:auto;background:var(--jv-bg);border:0;border-radius:14px;box-shadow:var(--jv-shadow),0 0 0 1px var(--jv-border-strong);padding:12px 14px;animation:jv-rise .18s var(--jv-ease) both}
.jv-popover-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.jv-model-group h4{margin:12px 0 4px;font-size:11px;font-weight:500;color:var(--jv-text-subtle);text-transform:uppercase;letter-spacing:.06em}
.jv-model-group ul{list-style:none;margin:0;padding:0}
.jv-model-group li{padding:4px 0;border-top:1px solid var(--jv-border)}
.jv-model-group li[data-available="false"]{color:var(--jv-text-muted)}
.jv-model-option{display:inline-flex;align-items:center;gap:6px}
.jv-model-option .jv-icon{width:14px;height:14px}
.jv-model-reason{display:block;font-size:11px;line-height:1.5}
button.jv-claim{cursor:pointer;font:inherit;color:inherit}
button.jv-claim:hover{background:var(--jv-hover)}
@media(max-width:900px){.jv-work-columns{grid-template-columns:minmax(0,1fr)}}
.jv-freshness{margin:12px 40px 0;font-size:12px}

/* ---- files in the composer and on turns, the drop hint, the attachment viewer, diagnostics ---- */
.jv-files{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.jv-file{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:34px;padding:4px 6px 4px 10px;border:0;border-radius:9px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);font-size:12px;color:var(--jv-text)}
.jv-file>.jv-icon{width:15px;height:15px;color:var(--jv-text-muted)}
.jv-file-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.jv-file-meta{color:var(--jv-text-muted);white-space:nowrap}
.jv-file[data-file-state="uploading"]{box-shadow:inset 0 0 0 1px var(--jv-border-strong);opacity:.8}
.jv-file[data-file-state="refused"]{box-shadow:inset 0 0 0 1px var(--jv-bad);flex-wrap:wrap}
.jv-probes .jv-result{white-space:nowrap}
.jv-file-refusal{flex-basis:100%;color:var(--jv-bad);font-size:11px;line-height:1.4}
.jv-file-remove{width:30px;height:30px;padding:5px;margin-left:2px}
.jv-turn-files{margin:8px 0 0}
.jv-msg[data-role="owner"]>.jv-turn-files{justify-content:flex-end}
.jv-msg[data-role="owner"]>.jv-files-pending{margin-top:6px;font-size:11px}
button.jv-file-open{cursor:pointer;font:inherit;background:var(--jv-surface-2)}
button.jv-file-open:hover{background:var(--jv-hover)}
button.jv-file-open[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--jv-accent)}
.jv-transcript-wrap[data-dragging="true"]{outline:2px dashed var(--jv-accent);outline-offset:-6px}
.jv-drop-hint{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--jv-bg) 82%,transparent);color:var(--jv-accent);font-size:16px;font-weight:500;pointer-events:none}
.jv-drop-hint>.jv-icon{width:32px;height:32px}
.jv-attachment-viewer{margin-top:8px;width:100%;max-width:100%;text-align:left}
.jv-msg[data-role="owner"]>.jv-attachment-viewer{align-self:stretch}
.jv-attachment-image{display:block;max-width:100%;max-height:60vh;margin:10px auto;border-radius:8px}
.jv-attachment-viewer .jv-banner{margin:12px}
.jv-composer[data-files]:not([data-files="0"]){box-shadow:inset 0 0 0 1px var(--jv-border-strong)}
.jv-table-scroll{overflow-x:auto;max-width:100%}
.jv-probes th[scope="row"]{font-weight:500;white-space:nowrap}
.jv-probes .jv-probe-heading th{padding-top:16px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--jv-text-subtle)}
.jv-probe-needs{font-size:12px;color:var(--jv-text-muted)}
.jv-probe-needs[data-dependency="true"]{color:var(--jv-warn)}
@media(max-width:760px){
 .jv-file-remove{width:44px;height:44px}.jv-file{min-height:44px}button.jv-file-open{min-height:44px}
 .jv-file-name{max-width:140px}.jv-attachment-image{max-height:45vh}
 .jv-probes{font-size:11px!important}.jv-probes th,.jv-probes td{padding:6px 4px}
}

/* ---- Settings (Setup + the section list), Tools cards, vendor icons ---- */
.jv-settings-list{display:grid;margin:0 -12px}
.jv-settings-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:11px 12px;border-radius:10px;min-height:46px;position:relative;color:var(--jv-text);text-decoration:none}
.jv-settings-row+.jv-settings-row::before{content:"";position:absolute;left:12px;right:12px;top:0;height:1px;background:var(--jv-border)}
.jv-settings-row:hover{background:var(--jv-surface-2)}
.jv-settings-row:hover::before,.jv-settings-row:hover+.jv-settings-row::before{opacity:0}
.jv-settings-row b{font-weight:500;display:block}
.jv-settings-row small{display:block;color:var(--jv-text-muted);font-size:12.5px}
.jv-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 9px 3px 8px;border-radius:999px;background:var(--jv-surface-2);color:var(--jv-text-muted);white-space:nowrap;font-weight:450;box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--jv-unknown)}
.jv-chip[data-tone="ok"]::before{background:var(--jv-ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--jv-ok) 18%,transparent)}
.jv-chip[data-tone="warn"]::before{background:var(--jv-warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--jv-warn) 18%,transparent)}
.jv-chip[data-tone="bad"]::before{background:var(--jv-bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--jv-bad) 18%,transparent)}
.jv-vendor{width:36px;height:36px;border-radius:10px;display:inline-grid;place-items:center;flex:none;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);overflow:hidden}
.jv-vendor img{width:22px;height:22px;object-fit:contain;display:block}
.jv-vendor[data-vendor-tile="dark"]{background:#24292f;box-shadow:none}
.jv-vendor[data-vendor-tile="light"]{background:#ffffff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.jv-vendor-glyph{font-weight:600;font-size:13px;color:var(--jv-text-muted)}
.jv-stagger>*{animation:jv-rise .32s var(--jv-ease) both}
.jv-stagger>*:nth-child(1){animation-delay:22ms}.jv-stagger>*:nth-child(2){animation-delay:44ms}.jv-stagger>*:nth-child(3){animation-delay:66ms}.jv-stagger>*:nth-child(4){animation-delay:88ms}.jv-stagger>*:nth-child(5){animation-delay:110ms}.jv-stagger>*:nth-child(6){animation-delay:132ms}.jv-stagger>*:nth-child(7){animation-delay:154ms}.jv-stagger>*:nth-child(8){animation-delay:176ms}

/* Workflow downloads keep their icon, label and digest aligned. */
[data-downloads] { list-style: none; padding: 0; }
[data-downloads] > li { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 8px 0; }
[data-downloads] .jv-btn { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }

/* ---- screen structure: section heads, rows, chips, disclosures, team, tools, files, projects, inbox ---- */
.jv-section-head{display:flex;align-items:center;gap:10px;margin:22px 0 10px}
.jv-section-head h2,.jv-section-head h3{margin:0}
.jv-section-head .jv-section-note{font-size:12.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-section-head h3+.jv-icon-button,.jv-section-head .jv-section-note+.jv-icon-button{margin-left:auto}
.jv-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px}
.jv-search{display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:10px;height:36px;color:var(--jv-text-subtle);background:var(--jv-surface-2);box-shadow:inset 0 0 0 1px var(--jv-border);flex:1;min-width:200px;max-width:440px}
.jv-search:focus-within{box-shadow:inset 0 0 0 1px var(--jv-accent),0 0 0 3px var(--jv-accent-soft)}
.jv-search .jv-icon{width:15px;height:15px}
.jv-search input{border:0;background:none;flex:1;font:inherit;color:var(--jv-text);outline:none;min-width:0}
.jv-search input::placeholder{color:var(--jv-text-subtle)}
.jv-select-quiet{width:auto;min-height:36px;padding:6px 30px 6px 12px;border-radius:10px}
.jv-tools-status{font-size:12px;margin:0 0 12px}
.jv-btn-quiet{background:transparent;box-shadow:none;color:var(--jv-text-muted)}
.jv-btn-quiet:hover:not(:disabled){background:var(--jv-surface-2);box-shadow:none;color:var(--jv-text)}
.jv-link{border:0;background:none;color:var(--jv-text-muted);text-decoration:underline;cursor:pointer;padding:0;font:inherit}
.jv-rows{display:grid;margin:0;padding:0;list-style:none}
.jv-row{position:relative;padding:12px 14px;border-radius:12px;margin:0;border:0;background:transparent}
.jv-row+.jv-row::before{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:var(--jv-border)}
.jv-row:hover{background:var(--jv-surface-2)}
.jv-row:hover::before,.jv-row:hover+.jv-row::before{opacity:0}
.jv-row-main{display:flex;align-items:center;gap:13px;min-width:0}
.jv-row-main>div{flex:1;min-width:0}
.jv-row-main>.jv-icon{width:18px;height:18px;color:var(--jv-text-muted)}
.jv-row-main strong,.jv-row-main h4{font-weight:500;font-size:14px;margin:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-row-sub{display:block;font-size:12.5px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-row-sub code{font-size:12px}
.jv-row-actions{margin-top:6px;gap:2px}
.jv-row .jv-details{margin-top:4px}
.jv-avatar-square{border-radius:9px;font-size:11.5px}
.jv-section-more{margin-top:24px}
.jv-section-more>summary{font-size:13.5px;color:var(--jv-text-muted)}
.jv-section-more[open]>summary{margin-bottom:10px}
.jv-section-more .jv-card{margin-top:10px}
/* team */
.jv-team-composer{padding:14px 16px}
.jv-team-composer h3{font-size:13.5px;color:var(--jv-text-muted);font-weight:500;margin:0 0 10px}
.jv-head-picker{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.jv-head-option{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border);font-size:12.5px;cursor:pointer;color:var(--jv-text-2)}
.jv-head-option:hover{background:var(--jv-surface-3)}
.jv-head-option[data-selected="true"]{background:var(--jv-btn);color:var(--jv-on-btn);box-shadow:none}
.jv-head-option[data-addressable="false"]{opacity:.45;cursor:default}
.jv-head-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.jv-head-option strong{font-weight:500}
.jv-head-option small{display:none}
.jv-team-composer textarea.jv-input{background:var(--jv-bg);min-height:72px;resize:vertical}
.jv-team-bytes{display:none}
.jv-team-outcome{font-size:13px;color:var(--jv-text-muted);margin:8px 0 0}
.jv-roster-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.jv-roster-role{background:var(--jv-surface-2);border-radius:14px;padding:12px 14px;box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-roster-role:hover{background:var(--jv-surface-3)}
.jv-roster-head{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}
.jv-roster-text{min-width:0}
.jv-roster-text strong{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-roster-sub{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-roster-kind{text-transform:none;letter-spacing:0;font-size:inherit;color:inherit}
.jv-roster-head .jv-chip{grid-column:2;justify-self:start}
.jv-roster-role .jv-details{margin-top:8px}
.jv-roster-role .jv-details p{font-size:12.5px;margin:6px 0 0}
.jv-roster-tasks{margin-top:6px;font-size:12.5px}
.jv-team-tasks{margin-top:8px}
.jv-team-task{padding:14px 16px}
.jv-team-task>.jv-job-detail-head>h3,.jv-card.jv-team-task h3{font-size:14.5px;font-weight:500;margin:0 0 4px;text-transform:none;letter-spacing:0;color:var(--jv-text)}
.jv-team-task .jv-job-detail-head{margin-bottom:8px}
.jv-task-meta{font-size:12px;color:var(--jv-text-subtle)}
.jv-team-task .jv-actions{margin-top:6px;gap:2px}
.jv-team-task .jv-details{margin-top:6px}
.jv-ladder-row{display:flex;align-items:center;gap:10px;margin:6px 0 4px;flex-wrap:wrap}
.jv-stage-now{font-size:12.5px}
.jv-stage-ladder{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:5px}
.jv-stage-ladder li{display:inline-flex;align-items:center;gap:6px}
.jv-stage-dot{width:6px;height:6px;border-radius:50%;background:var(--jv-surface-3);display:block}
.jv-stage-ladder li[data-stage-state="completed"] .jv-stage-dot{background:var(--jv-text)}
.jv-stage-ladder li[data-stage-state="running"] .jv-stage-dot,.jv-stage-ladder li[data-stage-state="queued"] .jv-stage-dot{background:var(--jv-accent);box-shadow:0 0 0 3px var(--jv-accent-soft)}
.jv-stage-ladder li[data-stage-state="failed"] .jv-stage-dot{background:var(--jv-bad)}
.jv-stage-ladder .jv-stage-label,.jv-stage-ladder .jv-stage-state{display:none;font-size:12px}
.jv-stage-ladder li[data-current="true"] .jv-stage-dot{background:var(--jv-text-muted);box-shadow:0 0 0 3px var(--jv-surface-3)}
.jv-stage-list{list-style:none;margin:8px 0;padding:0;font-size:13px;display:grid;gap:2px}
.jv-stage-list li{display:flex;justify-content:space-between;gap:12px;padding:3px 0}
.jv-team-continuation{margin:8px 0}
.jv-team-correct{margin-top:10px}
.jv-team-correct textarea.jv-input{background:var(--jv-bg)}
.jv-team-assignments .jv-card{margin-bottom:8px}
.jv-team-inbox-empty .jv-inbox-note{margin:0 0 14px}
/* tools */
.jv-app-group{margin:18px 0 0}
.jv-app-group h3{margin:0 0 10px}
.jv-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.jv-app-card{margin:0;padding:12px 14px}
.jv-app-card[data-open="true"]{grid-column:1/-1}
.jv-app-row{display:flex;align-items:center;gap:12px;min-width:0}
.jv-app-text{flex:1;min-width:0}
.jv-app-text h4{margin:0;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jv-app-line{font-size:12.5px;margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jv-app-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.jv-app-side .jv-btn{min-height:28px;padding:4px 10px;font-size:12.5px}
.jv-app-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--jv-border);font-size:13.5px}
.jv-ops{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.jv-ops li{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--jv-bg);box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-ops li[data-state="implemented"]{color:var(--jv-ok)}
.jv-ask-form{margin-top:10px}
.jv-describe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 12px}
/* files */
.jv-file-library{margin-top:28px}
.jv-source-picker>summary{font-size:13.5px;color:var(--jv-text-muted)}
.jv-source-picker[open]{background:var(--jv-surface-2);border-radius:14px;padding:12px 14px;box-shadow:inset 0 0 0 1px var(--jv-border);margin:6px 0 10px}
.jv-source-picker[open]>summary{color:var(--jv-text)}
.jv-source-picker .jv-input{background:var(--jv-bg)}
.jv-index-line{font-size:12px;margin:6px 0 4px}
.jv-file-rows{margin:0 -14px}
.jv-source-search{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.jv-source-search>p,.jv-source-search>ul{flex-basis:100%}
[data-search-results]{list-style:none;margin:0;padding:0;font-size:13px}
[data-search-results] li{padding:8px 0;border-top:1px solid var(--jv-border)}
[data-search-snippet]{margin:2px 0 0;color:var(--jv-text-muted)}
/* projects */
.jv-projects .jv-rows{margin:0 -14px}
/* C6: a row's location carries a 64-character host id and a native path; both wrap rather than widen the pane at phone width. */
.jv-projects .jv-row{min-width:0}
.jv-projects [data-project-kind] p,.jv-parents li,.jv-parents code{overflow-wrap:anywhere}
.jv-register{margin-top:20px}
.jv-register .jv-input{background:var(--jv-surface-2)}
/* inbox */
.jv-inbox-note{font-size:13px;margin:0 0 14px}
.jv-inbox-empty{padding:44px 0 32px}
.jv-empty-mark{width:40px;height:40px;border-radius:12px;background:var(--jv-surface-2);box-shadow:inset 0 0 0 1px var(--jv-border);display:grid;place-items:center;color:var(--jv-text-muted);margin:0 auto 10px}
.jv-empty-mark .jv-icon{width:20px;height:20px}
.jv-inbox-empty h4{font-family:var(--jv-serif);font-weight:400;font-size:22px;margin:0 0 4px;color:var(--jv-text)}
.jv-main>.jv-route .jv-empty{margin:0}
.jv-empty>.jv-icon{width:22px;height:22px;color:var(--jv-text-subtle);margin-bottom:8px}
.jv-app-status{font-size:12px;margin:3px 0 0;display:flex;flex-wrap:wrap;gap:4px 8px;color:var(--jv-text-subtle)}
.jv-app-status .jv-muted{color:var(--jv-text-subtle)}
.jv-app-gate{color:var(--jv-warn);cursor:help}

/* Browser frames are ephemeral and scale to the client; input uses source pixels. */
.jv-screens { max-width: 100%; min-width: 0; }
.jv-memory { max-width: 100%; min-width: 0; }
.jv-memory-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.jv-memory-list li { padding: .75rem 0; border-top: 1px solid var(--jv-border); }
.jv-memory-text { margin: 0 0 .25rem; }
.jv-memory-meta { margin: 0; font-size: .85em; opacity: .75; }
.jv-memory-stale .jv-memory-text { opacity: .7; }
.jv-memory-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .4rem; }
.jv-memory textarea { width: 100%; box-sizing: border-box; }
.screens-heading { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.screens-heading h1 { margin-bottom: .25rem; }
.jv-screens label { display: grid; gap: .4rem; min-width: 0; }
.jv-screens select, .jv-screens input { box-sizing: border-box; max-width: 100%; min-width: 0; }
.screens-status { display: grid; gap: .35rem; margin: 1rem 0; }
.screens-status span { font-size: .85rem; }
.screens-surface { display: grid; place-items: center; border: 1px solid var(--jv-border-strong); border-radius: .6rem; overflow: hidden; min-height: 12rem; }
.screens-surface img { display: block; width: 100%; height: auto; }
.screens-surface p { padding: 1rem; }
.screens-controls { display: grid; gap: .8rem; margin-top: 1rem; }
.screens-controls form { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; }
.screens-controls form label { flex: 1 1 12rem; }
.screens-controls button { justify-self: start; }
.screens-keys { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ORG-1c: a proposed team, indented by depth under its head; every row is the core's. */
.jv-proposal{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--jv-line,rgba(127,127,127,.25))}
.jv-proposal-agents{list-style:none;padding:0;margin:.5rem 0}
.jv-proposal-agents li{padding:.35rem 0}
.jv-proposal-agents li[data-depth="1"]{margin-left:1.25rem}
.jv-proposal-agents li[data-depth="2"]{margin-left:2.5rem}
.jv-proposal-agents li[data-depth="3"]{margin-left:3.75rem}
.jv-proposal-agents li[data-depth="4"],.jv-proposal-agents li[data-depth="5"],.jv-proposal-agents li[data-depth="6"],.jv-proposal-agents li[data-depth="7"],.jv-proposal-agents li[data-depth="8"]{margin-left:5rem}

/* Decision 39: Jarvis asks for an account in chat; the owner names it and connects it right there. */
.jv-chat-need{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.jv-need-connect{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}
.jv-need-connect .jv-input{flex:1 1 220px;min-width:0}

/* The newer routes use their existing semantic markup; no new behavior or synthetic content. */
.jv-main>:is(.jv-memory,.jv-screens){padding:26px 40px 40px;max-width:980px;box-sizing:border-box}
:is(.jv-memory,.jv-screens) .screens-heading{margin-bottom:28px}
:is(.jv-memory,.jv-screens) h1{font:400 30px/1.15 var(--jv-serif);letter-spacing:-.01em;margin:0 0 10px}
:is(.jv-memory,.jv-screens) h2{font:400 24px/1.2 var(--jv-serif);margin:28px 0 14px}
.screens-heading p{color:var(--jv-text-muted);margin:0;max-width:62ch}
:is(.jv-memory,.jv-screens) button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 14px;border:0;border-radius:999px;background:var(--jv-surface-3);color:var(--jv-text);box-shadow:inset 0 0 0 1px var(--jv-border);font-size:13px;font-weight:500;cursor:pointer;justify-self:start;overflow-wrap:anywhere}
:is(.jv-memory,.jv-screens) button:hover:not(:disabled){background:var(--jv-hover);box-shadow:inset 0 0 0 1px var(--jv-border-strong)}
:is(.jv-memory,.jv-screens) button:disabled{opacity:.45;cursor:default}
.screens-heading>button{flex-shrink:0}
:is(.jv-memory,.jv-screens) :is(input,select,textarea){min-height:40px;max-width:100%;box-sizing:border-box;border:1px solid var(--jv-input-border);border-radius:10px;background:var(--jv-surface);color:var(--jv-text);padding:8px 12px;font:inherit}
:is(.jv-memory,.jv-screens) label{font-size:13px;color:var(--jv-text-muted)}
.jv-memory>label,.jv-screens>label{display:grid;gap:8px;max-width:360px}
.jv-memory .screens-status,.jv-screens .screens-status{padding:18px 20px;border-radius:14px;background:var(--jv-surface);box-shadow:inset 0 0 0 1px var(--jv-border);gap:12px;margin:24px 0}
.screens-status>span{color:var(--jv-text-muted)}
.jv-memory .screens-status form{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.jv-memory .screens-status label{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.jv-memory input[type="number"]{width:90px}
.jv-memory-meta{color:var(--jv-text-muted);opacity:1;overflow-wrap:anywhere}
.jv-memory-stale .jv-memory-text{color:var(--jv-text-muted);opacity:1}
.jv-memory-text{overflow-wrap:anywhere}
.jv-memory-list li{padding:16px 0}
.jv-memory form>button{margin:8px 8px 0 0}
.screens-surface{background:var(--jv-surface);color:var(--jv-text-muted);border-radius:14px}
.screens-handback{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media(max-width:760px){
 .jv-main>:is(.jv-memory,.jv-screens){padding:20px 16px}
 :is(.jv-memory,.jv-screens) button{min-height:44px}
 :is(.jv-memory,.jv-screens) .screens-heading{flex-wrap:wrap;gap:16px;margin-bottom:24px}
 .jv-memory .screens-status,.jv-screens .screens-status{padding:16px}
 .jv-app-grid{grid-template-columns:minmax(0,1fr)}
}
