/* Shared permission presentation; authority remains in the authenticated host. */
.browser-permissions-dialog, .browser-permissions-dialog *,
.browser-permission-chat-card, .browser-permission-chat-card * { box-sizing: border-box; }
.browser-permissions-notice {
  position: fixed; z-index: 1100; top: calc(var(--dashboard-topbar-height, var(--test-topbar-height, var(--safe-top, 0px))) + 12px);
  left: 50%; transform: translateX(-50%); max-width: calc(100vw - 24px);
  padding: 10px 18px; border: 1px solid #c98d35; border-radius: 24px;
  background: #241b0d; color: #ffe1a6; box-shadow: 0 8px 30px #0004;
  font: inherit; font-size: 13px; cursor: pointer;
}
.browser-permissions-notice[hidden] { display: none; }
.browser-permission-chat-card {
  width:min(620px, calc(100% - 24px)); margin:14px 12px 4px; padding:14px 15px;
  display:grid; grid-template-columns:auto minmax(0, 1fr) auto; align-items:center; gap:12px;
  border:1px solid color-mix(in oklab, #f6b94b 52%, var(--border, #ffffff1c)); border-radius:16px;
  background:linear-gradient(135deg, color-mix(in oklab, #f6b94b 11%, var(--bg-card, #141820)), color-mix(in oklab, var(--primary, #bca3f5) 7%, var(--bg-card, #141820)));
  color:var(--fg, #e7eaf0); text-align:left; font:inherit; cursor:pointer; box-shadow:0 12px 34px rgba(0,0,0,.15);
}
.browser-permission-chat-card:hover { border-color:#f6b94b; transform:translateY(-1px); }
.browser-permission-chat-card:focus-visible { outline:2px solid #f6b94b; outline-offset:3px; }
.browser-permission-chat-icon { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border-radius:11px; background:#f6b94b; color:#241b0d; font-weight:900; }
.browser-permission-chat-copy { min-width:0; display:grid; gap:3px; }
.browser-permission-chat-copy strong { font-size:13px; line-height:1.35; }
.browser-permission-chat-copy > span, .browser-permission-chat-copy small { overflow-wrap:anywhere; color:var(--fg-muted, #a5abba); font-size:11px; line-height:1.45; }
.browser-permission-chat-copy .browser-permission-chat-summary { color:var(--fg, #e7eaf0); margin-top:3px; white-space:pre-line; }
.browser-permission-chat-action { color:#f8cd7c; font-size:11px; font-weight:800; white-space:nowrap; }
.browser-permissions-dialog {
  box-sizing: border-box; width: min(760px, calc(100vw - 24px)); max-height: calc(var(--voice-viewport-height, 100dvh) - 32px);
  margin: auto; padding: 0; border: 1px solid var(--border, #ffffff1c); border-radius: 18px;
  background: var(--bg-card, #141820); color: var(--fg, #e7eaf0); overflow: auto;
  box-shadow: 0 24px 100px #0008;
}
.browser-permissions-dialog::backdrop { background: #050812aa; backdrop-filter: blur(4px); }
.browser-permissions-heading { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; background: var(--bg-card, #141820); border-bottom: 1px solid var(--border, #ffffff1c); }
.browser-permissions-heading h2 { margin: 0; font-size: 19px; }
.browser-permissions-content { padding: 0 24px 24px; }
.browser-permissions-help, .browser-permission-meta, .browser-permission-empty { color: var(--fg-muted, #a5abba); font-size: 13px; line-height: 1.55; }
.browser-permissions-status { min-height: 22px; color: var(--primary, #bca3f5); font-size: 13px; line-height: 1.5; }
.browser-permissions-content h3 { margin: 24px 0 12px; font-size: 15px; }
.browser-permission-card { border: 1px solid var(--border, #ffffff1c); border-radius: 12px; padding: 18px; margin-top: 12px; }
.browser-permission-identity { display: grid; gap: 5px; overflow-wrap: anywhere; }
.browser-permission-identity strong { font-size: 16px; }
.browser-permission-identity span { font-size: 12px; color: var(--fg-muted, #a5abba); }
.browser-permission-identity .browser-permission-action-label { width:fit-content; padding:4px 9px; border-radius:6px; background:color-mix(in oklab, var(--primary, #bca3f5) 14%, transparent); color:var(--primary, #bca3f5); font-weight:600; margin-bottom:3px; }
.browser-permission-identity small { color:var(--fg-muted, #a5abba); font-size:11px; line-height:1.5; }
.browser-permission-scope { color: var(--primary, #bca3f5) !important; }
.browser-permission-summary { margin:14px 0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; white-space:pre-line; }
.browser-permission-details { margin:14px 0; padding:11px 12px; border:1px solid var(--border, #ffffff1c); border-radius:8px; font-size:12px; }
.browser-permission-details summary { cursor:pointer; color:var(--fg-muted, #a5abba); }
.browser-permission-details summary:focus-visible { outline:2px solid var(--primary, #bca3f5); outline-offset:4px; }
.browser-permission-technical { display:grid; gap:6px; font-size:11px; line-height:1.5; color:var(--fg-muted, #a5abba); overflow-wrap:anywhere; }
.browser-permission-details[open] .browser-permission-technical { margin-top:12px; }
.browser-permission-label { font-size: 12px; font-weight: 600; margin: 16px 0 8px; }
.browser-permission-preview { font: inherit; font-size: 13px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 240px; overflow: auto; padding: 14px; background: var(--bg, #0b0e15); border: 1px solid var(--border, #ffffff1c); border-radius: 8px; }
.browser-permission-remember label, .browser-permission-limits label { display: grid; gap: 6px; margin-top: 12px; font-size: 12px; }
.browser-permission-remember select, .browser-permission-limits input { width: 100%; box-sizing: border-box; border: 1px solid var(--border, #ffffff1c); border-radius: 7px; padding: 9px 10px; background: var(--bg, #0b0e15); color: var(--fg, #e7eaf0); font: inherit; }
.browser-permission-scope-preview { font-size: 12px; line-height: 1.5; color: var(--primary, #bca3f5); }
.browser-permission-limits { margin: 14px 0; font-size: 12px; }
.browser-permission-limits summary { cursor: pointer; }
.browser-permission-limits small { display: block; margin-top: 10px; color: var(--fg-muted, #a5abba); }
.browser-permission-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.browser-permission-deny { color: var(--danger, #ee9e9e); }
.browser-permissions-toolbar { display: flex; gap: 8px; flex-wrap: wrap; }
/* Manual bootstrap surfaces do not load the dashboard's global button styles. */
.browser-permissions-dialog[data-browser-permissions-manual] { font: inherit; }
.browser-permissions-dialog[data-browser-permissions-manual] .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 7px 14px; min-height: 36px; border: 1px solid var(--border, #ffffff1c);
  border-radius: 6px; background: transparent; color: var(--fg, #e7eaf0);
  font: inherit; font-size: 13px; cursor: pointer;
}
.browser-permissions-dialog[data-browser-permissions-manual] .btn-primary {
  background: var(--primary, #bca3f5); color: var(--primary-fg, #1c1230);
}
.browser-permissions-dialog[data-browser-permissions-manual] .btn:disabled { opacity: .45; cursor: default; }
.browser-permissions-dialog[data-browser-permissions-manual] .btn:focus-visible {
  outline: 2px solid var(--primary, #bca3f5); outline-offset: 3px;
}
.browser-permissions-dialog[data-browser-permissions-manual] .browser-permission-deny { color: var(--danger, #ee9e9e); }
@media (max-width: 600px) {
  .browser-permission-chat-card { width:calc(100% - 20px); margin-inline:10px; grid-template-columns:auto minmax(0, 1fr); }
  .browser-permission-chat-action { grid-column:2; }
  .browser-permissions-heading { padding: 16px; }
  .browser-permissions-content { padding: 0 16px 16px; }
  .browser-permission-card { padding: 14px; }
  .browser-permission-actions .btn { flex: 1 1 100%; min-height: 42px; }
  .browser-permissions-dialog[data-browser-permissions-manual] input,
  .browser-permissions-dialog[data-browser-permissions-manual] select { font-size: 16px; }
}
