.mcp-picker-overlay{
  position:fixed;
  inset:0;
  z-index:260;
  display:grid;
  place-items:end center;
  padding:18px;
  background:rgba(26,34,42,.22);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.mcp-picker-overlay.open{ opacity:1; pointer-events:auto; }
.mcp-picker-sheet{
  width:min(520px,100%);
  max-height:min(76vh,620px);
  overflow:auto;
  border:1px solid var(--card-line);
  border-radius:18px;
  background:var(--card-bg);
  box-shadow:var(--card-shadow);
  padding:16px;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.mcp-picker-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.mcp-picker-title{ font-size:17px; font-weight:520; color:var(--text); }
.mcp-close{
  width:32px;
  height:32px;
  border:0;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--seg-track);
  color:var(--text-soft);
  font:inherit;
  cursor:pointer;
}
.mcp-option{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:11px;
  align-items:center;
  padding:11px 0;
  border-top:1px solid var(--field-line);
}
.mcp-option input{ width:18px; height:18px; accent-color:var(--accent); }
.mcp-option b{ display:block; color:var(--text); font-size:13.5px; font-weight:520; }
.mcp-option small{ display:block; margin-top:2px; color:var(--text-faint); font-size:11.5px; line-height:1.35; }
.mcp-service-controls{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  min-width:88px;
}
.mcp-service-controls label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--text-faint);
  font-size:11px;
  white-space:nowrap;
}
.mcp-service-controls input{ width:16px; height:16px; }
.mcp-emergency{
  border:1px solid rgba(176,88,88,.24);
  border-radius:12px;
  padding:10px 11px;
  margin:10px 0 4px;
  color:#9b5c5c;
  background:rgba(255,235,235,.28);
  font-size:12px;
  line-height:1.45;
}
.mcp-emergency.ok{
  color:var(--text-faint);
  border-color:var(--field-line);
  background:rgba(255,255,255,.16);
}
.mcp-registry-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
}
.mcp-pill{
  border:1px solid var(--field-line);
  border-radius:999px;
  padding:4px 8px;
  color:var(--text-faint);
  font-size:11px;
  white-space:nowrap;
}
.mcp-picker-actions{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.mcp-picker-actions button{
  border:0;
  border-radius:12px;
  padding:10px 8px;
  background:var(--seg-track);
  color:var(--text);
  font:inherit;
  font-size:12.5px;
  cursor:pointer;
}
.mcp-picker-actions button.primary{ background:var(--accent); color:var(--accent-fg); }

.tool-card{
  display:grid;
  gap:8px;
  min-width:min(54vw,420px);
  margin-top:4px;
}
.tool-card-head{ font-weight:600; color:var(--text); }
.tool-card-row{ color:var(--text-soft); font-size:.92em; line-height:1.45; overflow-wrap:anywhere; }
.tool-card-status{
  display:inline-flex;
  width:max-content;
  border:1px solid var(--field-line);
  border-radius:999px;
  padding:3px 8px;
  color:var(--text-faint);
  font-size:.86em;
}
.tool-card-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.tool-card-actions button{
  border:0;
  border-radius:10px;
  padding:8px 10px;
  background:var(--seg-track);
  color:var(--text);
  font:inherit;
  font-size:.9em;
}
.tool-card-actions button.primary{ background:var(--accent); color:var(--accent-fg); }

@media (prefers-reduced-motion: reduce){
  .mcp-picker-overlay{ transition:none; }
}

/* Embedded MCP service shell, extracted from web/index.html. */
  /* ── Embedded service pages: memory/music/reading stay independent, shell stays unified ── */
  .service-panel{
    position: fixed;
    inset: 0;
    width:100%;
    max-width:100%;
    z-index: 195;
    opacity: 0;
    pointer-events: none;
    transform: translateX(100%);
    transition: transform .38s var(--ease-soft), opacity .28s ease;
  }
  .service-panel.open{
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
  .service-page{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    width:100%;
    max-width:100%;
    min-height:100dvh;
    background-color:var(--bg);
    background-image:var(--menu-wall-default);
    background-size:cover;
    background-position:center;
    overflow:hidden;
  }
  .service-page::before{
    content:"";
    position:absolute;
    inset:0;
    background:var(--scrim);
    pointer-events:none;
  }
  .service-topbar{
    position:absolute;
    left:0;
    right:0;
    top:0;
    z-index:2;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:14px;
    padding:calc(env(safe-area-inset-top) + 10px) clamp(12px,3vw,18px) 0;
    pointer-events:none;
  }
  [data-theme="harbor"] .service-topbar{
    background:transparent;
  }
  .service-back,
  .service-open{
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.58);
    color:var(--text);
    display:grid;
    place-items:center;
    cursor:pointer;
    box-shadow:0 12px 32px rgba(80,99,118,.12);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    pointer-events:auto;
  }
  .service-back svg,
  .service-open svg{ width:18px; height:18px; display:block; }
  .service-heading{ min-width:0; text-align:left; display:none; }
  .service-title{
    margin:0;
    color:var(--text);
    font-size:clamp(17px,4.8vw,22px);
    font-weight:520;
    line-height:1.1;
  }
  .service-sub{
    margin:3px 0 0;
    color:var(--text-faint);
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .service-status{
    display:none;
    align-items:center;
    gap:7px;
    color:var(--text-soft);
    font-size:11px;
    white-space:nowrap;
  }
  .service-status::before{
    content:"";
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--status-dot);
    box-shadow:0 0 0 4px rgba(95,191,143,.13);
  }
  .service-frame-wrap{
    position:relative;
    z-index:1;
    flex:1 1 auto;
    min-height:0;
    width:100%;
    max-width:100%;
    padding:0;
    overflow:hidden;
  }
  .service-frame-shell{
    position:relative;
    width:100%;
    max-width:100%;
    height:100%;
    min-height:100dvh;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .service-frame{
    position:absolute;
    inset:0;
    width:100%;
    max-width:100%;
    height:100%;
    border:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    background:#fff;
  }
  .service-frame.active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .service-empty{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    color:var(--text-faint);
    font-size:13px;
  }
  .mcp-debug-panel{
    position:fixed;
    left:8px;
    right:8px;
    bottom:calc(env(safe-area-inset-bottom) + 8px);
    z-index:260;
    max-height:42vh;
    overflow:auto;
    margin:0;
    padding:10px 12px;
    border-radius:14px;
    background:rgba(20,18,19,.82);
    color:#fff4f6;
    box-shadow:0 14px 40px rgba(0,0,0,.24);
    font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    white-space:pre-wrap;
    word-break:break-word;
  }
  .mcp-debug-panel.hidden{ display:none; }

