lossless-group_perplexed-pl.../styles.css
mpstaton 7b17b3b6e7 chore(marketplace): pass ObsidianReviewBot lint cleanly
Applies all required fixes from the bot's review of PR #12513
(obsidianmd/obsidian-releases). ESLint now passes 0 errors with the
Obsidian community ruleset; tsc passes; production build is clean.

Lint setup:

- Adopted eslint-plugin-obsidianmd@^0.2.9 in eslint.config.mjs
- Mirrored the bot's rule surface locally so violations surface in
  `pnpm lint` instead of the marketplace PR thread
- Configured the ui/sentence-case rule with a brand allowlist
  (Perplexity, Perplexica, Vane, Claude, Anthropic, LM Studio, Imgur,
  ImageKit, OpenAI, Ollama, Sonar, Llama, GPT, YAML, JSON, URL, API)
  so legitimate proper nouns aren't lowercased

Code fixes (487 → 0):

- console.log/info → console.debug across all sources (~130 sites)
- UI strings normalized to sentence case (~150 sites)
- Command IDs and names cleaned up: dropped "command" suffix, dropped
  "perplexed" plugin-name prefix
- Settings tab section headers switched from createEl('h2') to
  new Setting().setHeading() (5 sites)
- Inline element.style.color/width/minHeight/fontFamily migrated to
  a new CSS class (.perplexed-json-textarea + .is-tall / .is-extra-tall)
  in src/styles/settings-tab.css (8 textarea sites, 32 style assignments)
- Async input handlers wrapped: addEventListener('input', () => void
  (async () => { ... })()) so the listener type matches (8 sites)
- forEach((opt) => dd.addOption(...)) blocks made void-returning to
  satisfy no-misused-promises (9 modal sites)
- JSON.parse results typed as unknown then narrowed
- throw <string> → throw new Error(<string>)
- ${unknown} interpolations narrowed via instanceof Error
- Removed dotenv runtime dependency: published plugins shouldn't read
  .env at runtime; user enters API keys via the settings tab
- Replaced builtin-modules dev-dependency with node:module's
  builtinModules — same data, no extra package
- Logger console-method dispatch rewritten as a switch instead of
  dynamic console[level] indexing (which the bot rejects)

Streaming exceptions:

- src/services/{perplexityService,lmStudioService,perplexicaService}.ts
  retain `fetch()` for SSE / chunked streaming because Obsidian's
  `requestUrl` buffers the whole body. Each site has an
  `eslint-disable-next-line no-restricted-globals` with the marketplace
  `/skip` justification inline. Plan to surface these on the PR with
  a `/skip` reply.

Reference docs:

- context-v/issues/Obsidian-Review-Bot-Feedback-on-Perplexed-Submission.md
  (issue log distilled into…)
- context-v/reminders/Obsidian-Marketplace-Compliance.md (the rules
  themselves, reusable for image-gin and cite-wide submissions)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 02:39:06 -05:00

1 line
24 KiB
CSS

.perplexity-modal{width:90vw;max-width:640px}.perplexity-modal .modal-content{padding:0}.perplexity-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.perplexity-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.perplexity-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.perplexity-modal__section{padding:18px 28px 4px}.perplexity-modal__section+.perplexity-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.perplexity-modal__section-title{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.perplexity-modal__section .setting-item{padding:10px 0;border-top:none}.perplexity-modal__section .setting-item+.setting-item{border-top:1px solid var(--background-modifier-border-hover)}.perplexity-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.perplexity-modal__textarea{width:100%;min-height:120px;padding:12px 14px;font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.perplexity-modal__textarea:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.perplexity-modal__textarea::placeholder{color:var(--text-faint)}.perplexity-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.perplexity-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.perplexity-modal__button:hover{background-color:var(--background-modifier-hover)}.perplexity-modal__button:active{transform:translateY(1px)}.perplexity-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.perplexity-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.perplexity-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.perplexity-modal{width:95vw;max-width:none}.perplexity-modal__header,.perplexity-modal__section,.perplexity-modal__footer{padding-left:18px;padding-right:18px}.perplexity-modal__footer{flex-direction:column-reverse}.perplexity-modal__button{width:100%}}.article-generator-modal{width:90vw;max-width:640px}.article-generator-modal .modal-content{padding:0}.article-generator-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.article-generator-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.article-generator-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.article-generator-modal__section{padding:18px 28px 4px}.article-generator-modal__section+.article-generator-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.article-generator-modal__section-title{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.article-generator-modal__section .setting-item{padding:10px 0;border-top:none}.article-generator-modal__section .setting-item+.setting-item{border-top:1px solid var(--background-modifier-border-hover)}.article-generator-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.article-generator-modal__input{width:100%;padding:10px 14px;font-family:var(--font-text);font-size:15px;line-height:1.4;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.article-generator-modal__input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.article-generator-modal__input::placeholder{color:var(--text-faint)}.article-generator-modal__hint{margin:8px 0 0;font-size:12px;line-height:1.45;color:var(--text-muted);font-style:italic}.article-generator-modal__warning{margin-top:6px;font-size:12px;line-height:1.4;color:var(--text-error);font-weight:500;display:none}.article-generator-modal__warning.is-active{display:block}.article-generator-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.article-generator-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.article-generator-modal__button:hover{background-color:var(--background-modifier-hover)}.article-generator-modal__button:active{transform:translateY(1px)}.article-generator-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.article-generator-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.article-generator-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.article-generator-modal{width:95vw;max-width:none}.article-generator-modal__header,.article-generator-modal__section,.article-generator-modal__footer{padding-left:18px;padding-right:18px}.article-generator-modal__footer{flex-direction:column-reverse}.article-generator-modal__button{width:100%}}.perplexica-modal{width:90vw;max-width:640px}.perplexica-modal .modal-content{padding:0}.perplexica-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.perplexica-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.perplexica-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.perplexica-modal__section{padding:18px 28px 4px}.perplexica-modal__section+.perplexica-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.perplexica-modal__section-title{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.perplexica-modal__section .setting-item{padding:10px 0;border-top:none}.perplexica-modal__section .setting-item+.setting-item{border-top:1px solid var(--background-modifier-border-hover)}.perplexica-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.perplexica-modal__textarea{width:100%;min-height:120px;padding:12px 14px;font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.perplexica-modal__textarea:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.perplexica-modal__textarea::placeholder{color:var(--text-faint)}.perplexica-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.perplexica-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.perplexica-modal__button:hover{background-color:var(--background-modifier-hover)}.perplexica-modal__button:active{transform:translateY(1px)}.perplexica-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.perplexica-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.perplexica-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.perplexica-modal{width:95vw;max-width:none}.perplexica-modal__header,.perplexica-modal__section,.perplexica-modal__footer{padding-left:18px;padding-right:18px}.perplexica-modal__footer{flex-direction:column-reverse}.perplexica-modal__button{width:100%}}.lmstudio-modal{width:90vw;max-width:640px}.lmstudio-modal .modal-content{padding:0}.lmstudio-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.lmstudio-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.lmstudio-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.lmstudio-modal__section{padding:18px 28px 4px}.lmstudio-modal__section+.lmstudio-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.lmstudio-modal__section-title{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.lmstudio-modal__section .setting-item{padding:10px 0;border-top:none}.lmstudio-modal__section .setting-item+.setting-item{border-top:1px solid var(--background-modifier-border-hover)}.lmstudio-modal__hint{margin:-4px 0 8px;font-size:12px;line-height:1.45;color:var(--text-muted)}.lmstudio-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.lmstudio-modal__textarea{width:100%;min-height:120px;padding:12px 14px;font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.lmstudio-modal__textarea:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.lmstudio-modal__textarea::placeholder{color:var(--text-faint)}.lmstudio-modal__textarea--system{min-height:72px;font-family:var(--font-monospace);font-size:13px}.lmstudio-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.lmstudio-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.lmstudio-modal__button:hover{background-color:var(--background-modifier-hover)}.lmstudio-modal__button:active{transform:translateY(1px)}.lmstudio-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.lmstudio-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.lmstudio-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.lmstudio-modal{width:95vw;max-width:none}.lmstudio-modal__header,.lmstudio-modal__section,.lmstudio-modal__footer{padding-left:18px;padding-right:18px}.lmstudio-modal__footer{flex-direction:column-reverse}.lmstudio-modal__button{width:100%}}.url-update-modal{width:90vw;max-width:500px}.url-update-modal .modal-content{padding:0}.url-update-modal__header{padding:20px 24px 12px;border-bottom:1px solid var(--background-modifier-border)}.url-update-modal__title{margin:0;font-size:1.3em;font-weight:600;color:var(--text-normal)}.url-update-modal__section{padding:18px 24px}.url-update-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.url-update-modal__input{width:100%;padding:10px 12px;font-family:var(--font-text);font-size:14px;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:6px;box-sizing:border-box}.url-update-modal__input:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.url-update-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.url-update-modal__button{padding:6px 14px;font-size:13px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:4px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.url-update-modal__button:hover{background-color:var(--background-modifier-hover)}.url-update-modal__button:active{transform:translateY(1px)}.url-update-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.url-update-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}@media(max-width:500px){.url-update-modal{width:95vw;max-width:none}.url-update-modal__header,.url-update-modal__section,.url-update-modal__footer{padding-left:16px;padding-right:16px}.url-update-modal__footer{flex-direction:column-reverse}.url-update-modal__button{width:100%}}.text-enhancement-modal{width:90vw;max-width:720px}.text-enhancement-modal .modal-content{padding:0}.text-enhancement-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.text-enhancement-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.text-enhancement-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.text-enhancement-modal__section{padding:18px 28px 4px}.text-enhancement-modal__section+.text-enhancement-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.text-enhancement-modal__hint{margin:-4px 0 8px;font-size:12px;line-height:1.45;color:var(--text-muted)}.text-enhancement-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.text-enhancement-modal__textarea{width:100%;min-height:120px;padding:12px 14px;font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.text-enhancement-modal__textarea:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.text-enhancement-modal__textarea::placeholder{color:var(--text-faint)}.text-enhancement-modal__textarea--readonly{background-color:var(--background-secondary);color:var(--text-muted);cursor:default}.text-enhancement-modal__textarea--readonly:focus{border-color:var(--background-modifier-border);box-shadow:none}.text-enhancement-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.text-enhancement-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.text-enhancement-modal__button:hover{background-color:var(--background-modifier-hover)}.text-enhancement-modal__button:active{transform:translateY(1px)}.text-enhancement-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.text-enhancement-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.text-enhancement-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.text-enhancement-modal{width:95vw;max-width:none}.text-enhancement-modal__header,.text-enhancement-modal__section,.text-enhancement-modal__footer{padding-left:18px;padding-right:18px}.text-enhancement-modal__footer{flex-direction:column-reverse}.text-enhancement-modal__button{width:100%}}.text-enhancement-with-images-modal{width:90vw;max-width:720px}.text-enhancement-with-images-modal .modal-content{padding:0}.text-enhancement-with-images-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.text-enhancement-with-images-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.text-enhancement-with-images-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.text-enhancement-with-images-modal__section{padding:18px 28px 4px}.text-enhancement-with-images-modal__section+.text-enhancement-with-images-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.text-enhancement-with-images-modal__hint{margin:-4px 0 8px;font-size:12px;line-height:1.45;color:var(--text-muted)}.text-enhancement-with-images-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.text-enhancement-with-images-modal__textarea{width:100%;min-height:120px;padding:12px 14px;font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.text-enhancement-with-images-modal__textarea:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.text-enhancement-with-images-modal__textarea::placeholder{color:var(--text-faint)}.text-enhancement-with-images-modal__textarea--readonly{background-color:var(--background-secondary);color:var(--text-muted);cursor:default}.text-enhancement-with-images-modal__textarea--readonly:focus{border-color:var(--background-modifier-border);box-shadow:none}.text-enhancement-with-images-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.text-enhancement-with-images-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.text-enhancement-with-images-modal__button:hover{background-color:var(--background-modifier-hover)}.text-enhancement-with-images-modal__button:active{transform:translateY(1px)}.text-enhancement-with-images-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.text-enhancement-with-images-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.text-enhancement-with-images-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.text-enhancement-with-images-modal{width:95vw;max-width:none}.text-enhancement-with-images-modal__header,.text-enhancement-with-images-modal__section,.text-enhancement-with-images-modal__footer{padding-left:18px;padding-right:18px}.text-enhancement-with-images-modal__footer{flex-direction:column-reverse}.text-enhancement-with-images-modal__button{width:100%}}.claude-modal{width:90vw;max-width:640px}.claude-modal .modal-content{padding:0}.claude-modal__header{padding:24px 28px 16px;border-bottom:1px solid var(--background-modifier-border)}.claude-modal__title{margin:0 0 6px;font-size:1.5em;font-weight:600;color:var(--text-normal);letter-spacing:-.01em}.claude-modal__subtitle{margin:0;font-size:13px;line-height:1.45;color:var(--text-muted)}.claude-modal__section{padding:18px 28px 4px}.claude-modal__section+.claude-modal__section{border-top:1px solid var(--background-modifier-border-hover);margin-top:4px}.claude-modal__section-title{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.claude-modal__section .setting-item{padding:10px 0;border-top:none}.claude-modal__section .setting-item+.setting-item{border-top:1px solid var(--background-modifier-border-hover)}.claude-modal__label{display:block;margin-bottom:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.claude-modal__textarea{width:100%;min-height:120px;padding:12px 14px;font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--text-normal);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-radius:8px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.claude-modal__textarea:focus{outline:none;border-color:var(--interactive-accent);box-shadow:0 0 0 3px var(--interactive-accent-hover)}.claude-modal__textarea::placeholder{color:var(--text-faint)}.claude-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px;margin-top:12px;border-top:1px solid var(--background-modifier-border);background-color:var(--background-secondary);border-bottom-left-radius:var(--modal-radius, 8px);border-bottom-right-radius:var(--modal-radius, 8px)}.claude-modal__button{padding:8px 18px;font-size:14px;font-weight:500;border:1px solid var(--background-modifier-border);border-radius:6px;background-color:var(--background-primary);color:var(--text-normal);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.claude-modal__button:hover{background-color:var(--background-modifier-hover)}.claude-modal__button:active{transform:translateY(1px)}.claude-modal__button.mod-cta{background-color:var(--interactive-accent);color:var(--text-on-accent);border-color:var(--interactive-accent)}.claude-modal__button.mod-cta:hover{background-color:var(--interactive-accent-hover);border-color:var(--interactive-accent-hover)}.claude-modal__button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.claude-modal{width:95vw;max-width:none}.claude-modal__header,.claude-modal__section,.claude-modal__footer{padding-left:18px;padding-right:18px}.claude-modal__footer{flex-direction:column-reverse}.claude-modal__button{width:100%}}.perplexed-json-textarea{width:100%;min-height:300px;font-family:var(--font-monospace)}.perplexed-json-textarea.is-tall{min-height:500px}.perplexed-json-textarea.is-extra-tall{min-height:600px}.callout[data-callout=brain]{background-color:#9333ea1a;border-left:4px solid #9333ea}.callout[data-callout=brain] .callout-title{color:#9333ea;font-weight:600}.callout[data-callout=brain] .callout-content{color:var(--text-normal);font-style:normal}.callout[data-callout=brain] .callout-icon{color:#9333ea}