/* Desktop applications: shared tools, with independent content scrolling. */
.app-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 8px 10px; border-bottom: 1px solid #d8dfeb; background: #d3dce8; flex-shrink: 0; }
.app-toolbar button, .notepad-document-bar button, .notepad-findbar button, .notepad-editor-settings button { min-height: 30px; padding: 5px 9px; border: 1px solid #ced8e6; border-radius: 4px; background: #e3e8ef; color: #334b6c; font: 12px var(--font-family); cursor: pointer; }
.app-toolbar button:hover, .notepad-findbar button:hover, .notepad-editor-settings button:hover { background: #e5edfc; }
.app-toolbar button:disabled, .notepad-editor-settings button:disabled { opacity: .45; cursor: default; }

/* Terminal */
.terminal-content { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.terminal-toolbar { border-color: #29374d; background: #162135; color: #a6b9d7; }
.terminal-toolbar button { border-color: #384b69; background: #1c2c45; color: #d8e7ff; }
.terminal-toolbar button:hover { background: #294162; }
.terminal-hint { flex: 1; font: 10px var(--font-family); }
.terminal-output { flex: 1; min-height: 0; padding: 14px 16px; overflow: auto; font: 12px/1.7 'Cascadia Code', 'SFMono-Regular', Consolas, monospace; }
.terminal-line { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0 0 7px; }
.terminal-input-line { display: grid; grid-template-columns: auto minmax(0, 1fr) 30px; align-items: center; gap: 9px; padding: 9px 12px; flex-shrink: 0; border-top: 1px solid #2c3b53; font: 12px/1.6 Consolas, monospace; }
.terminal-input-line label { color: #8ddcc5; overflow-wrap: anywhere; max-width: 230px; }
.terminal-input-line input { width: 100%; min-width: 0; padding: 5px 0; border: 0; background: transparent; color: #f0f5ff; font: inherit; }
.terminal-input-line input::placeholder { color: #7f94b6; }
.terminal-submit { width: 30px; height: 30px; border: 1px solid #384b69; border-radius: 4px; background: #1c2c45; color: #d8e7ff; cursor: pointer; }
.terminal-status { flex-shrink: 0; padding: 4px 12px; background: #0b1322; color: #91a7c8; font: 10px/1.5 var(--font-family); }

/* Notepad */
.notepad-window .notepad-content { display: flex; flex-direction: column; background: #dfe6ef; overflow: auto; }
.notepad-document-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 7px 10px; border-bottom: 1px solid #d8dfeb; font: 11px var(--font-family); flex-shrink: 0; color: #6b7d97; }
.notepad-document-bar input { width: 170px; flex: 1; min-width: 100px; padding: 7px 9px; border: 1px solid #d4deec; border-radius: 4px; background: #e3e8ef; color: #263f63; font: 12px var(--font-family); }
.notepad-findbar { display: grid; grid-template-columns: minmax(100px, 1fr) auto minmax(100px, 1fr) auto auto; gap: 6px; padding: 8px 10px; border-bottom: 1px solid #d8dfeb; background: #d8e1ed; flex-shrink: 0; }
.notepad-findbar input { min-width: 0; padding: 6px 8px; border: 1px solid #ccd8e9; border-radius: 4px; background: #e3e8ef; color: #263f63; font: 12px var(--font-family); }
#notepadFindStatus { grid-column: 1 / -1; font: 10px var(--font-family); color: #6b7d97; }
#notepadFindStatus:empty { display: none; }
.notepad-window .notepad-textarea { flex: 1 0 110px; min-height: 110px; width: 100%; padding: 16px; border: 0; border-radius: 0; background: #e3e8ef; color: #27354a; font-size: var(--notepad-font-size, 14px); line-height: 1.65; tab-size: 4; }
.notepad-editor-settings { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; padding: 5px 9px; border-top: 1px solid #d8dfeb; background: #d3dce8; color: #617694; font: 10px var(--font-family); flex-shrink: 0; }
#notepadStats { flex: 1; min-width: 140px; }
.notepad-editor-settings button { min-height: 25px; padding: 3px 6px; font-size: 10px; }
#notepadWrap[aria-pressed="true"] { background: #e0eafe; border-color: #a1b6dd; }
.notepad-status { padding: 4px 10px; color: #617694; background: #dfe6ef; border-top: 1px solid #e2e8f2; font: 10px/1.5 var(--font-family); flex-shrink: 0; }

/* Browser */
.xp-browser-content { display: flex; flex-direction: column; overflow: hidden; min-height: 0; }
.browser-tabbar { display: flex; align-items: center; gap: 5px; padding: 5px 7px 0; background: #dfe6f1; flex-shrink: 0; }
.browser-tabs { display: flex; align-items: stretch; gap: 3px; flex: 1; min-width: 0; overflow: auto; scrollbar-width: thin; }
.browser-tab-item { display: flex; align-items: center; flex: 0 0 auto; min-width: 90px; max-width: 180px; border-radius: 7px 7px 0 0; background: #e8eef8; }
.browser-tab { min-width: 0; max-width: 146px; padding: 8px 9px; border: 0; border-radius: 6px 0 0; background: transparent; color: #5f7291; font: 11px var(--font-family); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.browser-tab[aria-selected="true"] { background: #e0e7f1; color: #233f6c; font-weight: 600; }
.browser-tab-item:has(.browser-tab[aria-selected="true"]) { background: #e0e7f1; }
.browser-tab-close { width: 23px; height: 23px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #6e7e98; cursor: pointer; }
.browser-tab-close:hover { background: #c8d6ec; color: #233f6c; }
.browser-new-tab { width: 30px; height: 30px; margin-bottom: 3px; border: 0; border-radius: 5px; background: transparent; color: #536b8f; font-size: 20px; cursor: pointer; flex-shrink: 0; }
.browser-new-tab:hover { background: #c8d6ec; }
.browser-toolbar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 8px; flex-shrink: 0; }
.browser-nav-group { display: flex; align-items: center; gap: 4px; overflow: visible; }
.browser-toolbar .browser-nav-group button { width: 27px; min-height: 29px; padding: 2px; }
.browser-address-wrap { display: flex; align-items: center; min-width: 0; border: 1px solid #c9d5e7; border-radius: 6px; background: #e3e8ef; gap: 0; padding: 0 5px 0 8px; }
.browser-address { width: 100%; min-width: 0; padding: 7px 0; border: 0; background: transparent; color: #2c466d; font: 12px var(--font-family); }
.browser-address-wrap button { width: 27px; min-height: 27px; border: 0; background: transparent; font-size: 20px; flex-shrink: 0; color: #9b6c11; }
.browser-toolbar .browser-go { min-height: 30px; padding: 4px 9px; font: 11px var(--font-family); }
.browser-favorites { display: flex; align-items: center; gap: 5px; padding: 5px 8px; overflow-x: auto; scrollbar-width: thin; flex-shrink: 0; }
.browser-favorites button { flex-shrink: 0; padding: 4px 7px; min-height: 25px; font: 10px var(--font-family); }
.browser-favorites button.active { background: #dfeafd; border-color: #a4bce7; }
.browser-page { flex: 1; min-width: 0; min-height: 0; padding: 22px; overflow: auto; }
.browser-page h2 { margin: 0 0 12px; font-size: 22px; }
.browser-page p { line-height: 1.7; color: #60718c; }
.browser-page a { color: #365db2; overflow-wrap: anywhere; }
.browser-page li { margin: 8px 0; line-height: 1.6; }
.browser-page ul { padding-left: 18px; }
.browser-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 10px; margin: 18px 0; }
.browser-card { padding: 14px; border: 1px solid #d8e3f2; border-radius: 7px; background: #d9e3f0; color: #263f65; }
.browser-card h3 { margin: 0 0 7px; font-size: 14px; }
.browser-card p { margin: 0 0 10px; font-size: 12px; }
.browser-action, .browser-history-item { display: inline-flex; padding: 7px 10px; border: 1px solid #bdd0ef; border-radius: 5px; background: #edf3ff; color: #345b9e; font: 12px var(--font-family); text-decoration: none; cursor: pointer; }
.browser-action:hover { background: #dce9ff; }
.browser-empty { padding: 22px 0; color: #7184a2; }
.browser-external-url { padding: 10px; border: 1px solid #dce5f1; border-radius: 5px; background: #dce5f0; overflow-wrap: anywhere; font: 12px/1.7 Consolas, monospace; }
.browser-list { list-style: none; padding: 0 !important; }
.browser-list li, .browser-bookmark-row { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; padding: 7px 0; border-bottom: 1px solid #e2e8f2; }
.browser-bookmark-row .browser-action { flex: 1; }
.browser-history-item { justify-content: flex-start; text-align: left; }
.browser-statusbar { flex-shrink: 0; padding: 5px 10px; font: 10px var(--font-family); gap: 10px; }
#browserStatus { overflow-wrap: anywhere; }

@media (max-width: 600px) {
    .terminal-hint { display: none; }
    .terminal-toolbar { justify-content: flex-end; padding: 5px 8px; }
    .terminal-input-line { grid-template-columns: minmax(0, 1fr) 30px; gap: 3px 7px; }
    .terminal-input-line label { grid-column: 1 / -1; max-width: none; font-size: 11px; }
    .terminal-output { padding: 10px; font-size: 11px; }
    .notepad-toolbar { padding: 6px; gap: 4px; }
    .notepad-toolbar button { padding: 4px 6px; font-size: 11px; }
    .notepad-document-bar { padding: 6px; }
    .notepad-document-bar label { width: 100%; }
    .notepad-findbar { grid-template-columns: minmax(0, 1fr) auto auto; padding: 6px; }
    #notepadFind { grid-column: 1 / 3; }
    #notepadReplace { grid-column: 1; }
    .notepad-findbar button { padding: 4px 6px; font-size: 11px; }
    .notepad-window .notepad-textarea { padding: 11px; }
    .browser-toolbar { grid-template-columns: auto 1fr; gap: 5px; padding: 6px; }
    .browser-nav-group { grid-column: 1; }
    .browser-address-wrap { grid-row: 2; grid-column: 1 / -1; }
    .browser-go { grid-row: 1; grid-column: 2; justify-self: end; }
    .browser-page { padding: 14px; }
    .browser-page h2 { font-size: 19px; }
    .browser-statusbar > span:last-child { display: none; }
}

@media (max-height: 480px) {
    .browser-favorites { display: none; }
    .browser-statusbar { padding: 2px 8px; }
    .notepad-window .notepad-content { overflow: auto; }
}

/* Shared dark palette for desktop windows and their application controls. */
.window {
    --surface: #1e2530;
    --surface-raised: #283241;
    --surface-input: #171e28;
    --surface-hover: #34445b;
    --surface-border: #405069;
    --text: #e0e7f1;
    --text-muted: #b0bed1;
    color-scheme: dark;
    scrollbar-color: #60738f var(--surface);
    scrollbar-width: thin;
    background: var(--surface);
    color: var(--text);
    border-color: var(--surface-border);
}
.window .window-header, .window.is-focused .window-header { background: var(--surface-raised); color: var(--text); border-color: var(--surface-border); }
.window .window-control { color: var(--text-muted); }
.window .window-control:hover { background: var(--surface-hover); }
.window .window-control.close:hover { background: #bd3548; color: #fff; }
.window .window-content, .window .browser-page, .window .explorer-content, .window .explorer-main { background: var(--surface); color: var(--text); }
.window :is(.app-toolbar, .browser-toolbar, .browser-favorites, .browser-tabbar, .browser-statusbar, .explorer-sidebar, .file-browser-toolbar, .file-browser-header, .notepad-menubar, .notepad-document-bar, .notepad-findbar, .notepad-editor-settings, .notepad-status) { background: var(--surface-raised); color: var(--text-muted); border-color: var(--surface-border); }
.window :is(.service-step, .skill-category, .featured-service, .cv-info, .mail-info, .phone-info, .matrix-info, .browser-card, .browser-external-url, .skill-item) { background: var(--surface-raised); color: var(--text); border-color: var(--surface-border); }
.window :is(.app-toolbar button, .browser-toolbar button, .browser-favorites button, .explorer-sidebar button, .notepad-menubar button, .notepad-document-bar button, .notepad-findbar button, .notepad-editor-settings button, .welcome-shortcuts button, .browser-action, .browser-history-item) { background: var(--surface-raised); color: var(--text); border-color: var(--surface-border); }
.window :is(.app-toolbar button, .browser-toolbar button, .browser-favorites button, .explorer-sidebar button, .notepad-menubar button, .notepad-document-bar button, .notepad-findbar button, .notepad-editor-settings button, .welcome-shortcuts button, .browser-action, .browser-history-item, .explorer-file):hover { background: var(--surface-hover); color: var(--text); }
.window :is(.notepad-document-bar input, .notepad-findbar input, .notepad-textarea, .browser-address-wrap) { background: var(--surface-input); color: var(--text); border-color: var(--surface-border); }
.window .browser-address { color: var(--text); }
.window :is(input, textarea)::placeholder { color: var(--text-muted); }
.window :is(.content-section h2, .content-section h3, .welcome-title, .welcome-message h3, .browser-page h2, .browser-card h3) { color: #b8d2ff; }
.window :is(.content-section p, .content-section ul, .browser-page p, .welcome-subtitle, .welcome-eyebrow, .desktop-help, .cv-note, .explorer-file small, .browser-empty, #notepadFindStatus) { color: var(--text-muted); }
.window :is(.content-section a, .browser-page a) { color: #a8c8ff; }
.window .content-section code { background: var(--surface-input); color: #c3d9ff; }
.window .explorer-file { color: var(--text); }
.window .browser-tab-item { background: var(--surface-input); }
.window :is(.browser-tab, .browser-tab-close, .browser-new-tab) { color: var(--text-muted); }
.window .browser-tab[aria-selected="true"], .window .browser-tab-item:has(.browser-tab[aria-selected="true"]) { background: var(--surface-hover); color: var(--text); }
.window :is(.browser-tab-close, .browser-new-tab):hover { background: var(--surface-hover); color: var(--text); }
.window .browser-favorites button.active, .window #notepadWrap[aria-pressed="true"] { background: #344c70; border-color: #779ace; color: var(--text); }
.window .browser-address-wrap button { background: transparent; color: #efcb80; }
.window :is(.browser-list li, .browser-bookmark-row) { border-color: var(--surface-border); }
.terminal-window .window-content { background: #101827; color: #dbe6fa; }
.privacy-panel, .xp-notice { color-scheme: dark; background: #1e2530; color: #e0e7f1; border-color: #405069; }
.privacy-panel h2, .privacy-panel h3, .privacy-panel p { color: #e0e7f1; }
.privacy-panel button { background: #283241; color: #e0e7f1; border-color: #779ace; }
.privacy-panel button:hover { background: #34445b; }

/* Legacy document and contact styles must follow the window palette too. */
.window .file-row { color: var(--text); }
.window .file-row:hover, .window .file-row:focus-visible { background: var(--surface-hover); color: var(--text); border-color: #779ace; }
.window :is(.file-browser-count, .file-type, .file-size, .browser-favorites-label) { color: var(--text-muted); }
.window :is(.cv-content, .mail-content, .phone-content, .matrix-content) h2 { color: #b8d2ff; }
.window :is(.cv-content, .mail-content, .phone-content, .matrix-content) p { color: var(--text-muted); }
.window :is(.cv-info, .mail-info, .phone-info, .matrix-info) strong { color: var(--text); }
.window .popular-badge { background: #344c70; color: #efcb80; }
.window .chat-external-link a { color: #a8c8ff; }
.window .chat-fallback-message { background: var(--surface-raised); color: var(--text); }
.window :is(.content-section a, .browser-page a, .chat-external-link a):hover,
.window :is(.content-section a, .browser-page a, .chat-external-link a):focus-visible { color: #d1e2ff; }

/* Workspace tools stay within the window on narrow and short screens. */
.window .window-header > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.window .window-controls { flex-shrink: 0; }
.window .explorer-unified { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; align-content: start; }
.explorer-tools { display: grid; grid-template-columns: auto minmax(80px, 1fr); align-items: center; gap: 8px; padding: 4px; flex-shrink: 0; }
.explorer-tools label { font-size: 12px; }
.window .explorer-tools :is(input, select) { width: 100%; min-width: 0; min-height: 34px; padding: 6px 8px; border: 1px solid var(--surface-border); border-radius: 5px; background: var(--surface-input); color: var(--text); font: 12px var(--font-family); }
.explorer-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 8px; align-content: start; min-height: 0; overflow: auto; flex: 1; }
.explorer-results .explorer-file { min-width: 0; min-height: 76px; text-align: left; border: 1px solid var(--surface-border); font: 12px/1.5 var(--font-family); overflow-wrap: anywhere; }
.explorer-result-status, .explorer-empty { margin: 4px; color: var(--text-muted); font-size: 12px; flex-shrink: 0; }
.window .explorer-sidebar button[aria-pressed="true"] { background: #344c70; color: var(--text); border-color: #779ace; }
.window .explorer-file:focus { background: var(--surface-hover); color: var(--text); }
.window .explorer-file:focus-visible { outline: 2px solid #a8c8ff; outline-offset: 2px; }
.window .browser-page :is(.browser-action, .browser-history-item):hover,
.window .browser-page :is(.browser-action, .browser-history-item):focus-visible { background: var(--surface-hover); color: var(--text); }
.window :is(.file-row, .app-toolbar button, .browser-favorites button, .notepad-menubar button):focus-visible { background: var(--surface-hover); color: var(--text); outline: 2px solid #a8c8ff; outline-offset: 2px; }
@media (max-width: 699px) {
    .window-snap { display: none; }
    #explorerWindow .explorer-content { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
    #explorerWindow .explorer-sidebar { display: flex; overflow-x: auto; min-width: 0; padding: 6px; }
    #explorerWindow .explorer-sidebar button { flex: 0 0 auto; }
}
@media (max-height: 480px) {
    #explorerWindow .explorer-content { padding: 8px; }
    .explorer-tools { grid-template-columns: minmax(80px, 1fr) minmax(100px, .7fr); gap: 6px; }
    .explorer-tools label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}
@media (min-width: 700px) {
    #explorerWindow .explorer-content { grid-template-columns: minmax(150px, .35fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); overflow: hidden; }
    #explorerWindow .explorer-sidebar { min-height: 0; overflow: auto; }
}
@media (max-height: 480px) {
    #explorerWindow .explorer-unified { padding: 0; gap: 4px; }
}

/* Optional local appearance preferences. */
:root[data-window-theme="soft"] .window {
    --surface: #28303b; --surface-raised: #323d4c; --surface-input: #202833;
    --surface-hover: #40516a; --text: #f0f4fa; --text-muted: #c2cddd;
}
:root[data-window-theme="contrast"] .window {
    --surface: #10151d; --surface-raised: #182232; --surface-input: #090e16;
    --surface-hover: #2c405e; --surface-border: #8598b5; --text: #fff; --text-muted: #d0d9e8;
}
:root[data-text-size="large"] { --workspace-text: 14px; }
:root[data-text-size="larger"] { --workspace-text: 16px; }
:root:is([data-text-size="large"], [data-text-size="larger"]) .window .window-content :is(p, li, label, button, input, select, small, strong, .file-type, .file-size) { font-size: var(--workspace-text); }
:root:is([data-text-size="large"], [data-text-size="larger"]) .terminal-window :is(.terminal-output, .terminal-input-line) { font-size: var(--workspace-text); }
:root[data-motion="reduced"] *, :root[data-motion="reduced"] *::before, :root[data-motion="reduced"] *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
.settings-window { width: min(640px, calc(100vw - 32px)); height: min(620px, calc(100dvh - var(--taskbar-height) - 40px)); }
.settings-content > label { display: block; margin: 16px 0 6px; font-weight: 600; }
.window .settings-content :is(select, button) { min-height: 36px; padding: 7px 10px; border: 1px solid var(--surface-border); border-radius: 5px; background: var(--surface-raised); color: var(--text); font: 13px var(--font-family); }
.settings-content select { width: 100%; }
.settings-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.settings-content :is(h2, summary) { color: #b8d2ff; }
.settings-content p, .settings-content dd { color: var(--text-muted); }
.settings-content details { margin-top: 18px; border-top: 1px solid var(--surface-border); padding-top: 14px; }
.settings-content summary { cursor: pointer; }
.settings-content dt { margin-top: 12px; font-weight: 600; }
.settings-content dd { margin: 4px 0; }
.window .settings-content button:hover { background: var(--surface-hover); }
.explorer-view-tools { display: flex; flex-wrap: wrap; gap: 6px; flex-shrink: 0; }
.window .explorer-view-tools button { padding: 5px 8px; min-height: 28px; border: 1px solid var(--surface-border); border-radius: 4px; background: var(--surface-raised); color: var(--text); font: 12px var(--font-family); cursor: pointer; }
.explorer-resource { position: relative; min-width: 0; }
.explorer-resource .explorer-file { width: 100%; height: 100%; padding-right: 40px; }
.window .explorer-pin { position: absolute; right: 4px; top: 4px; width: 32px; height: 32px; padding: 0; border: 1px solid var(--surface-border); border-radius: 5px; background: var(--surface-raised); color: #efcb80; font-size: 20px; cursor: pointer; }
.window .explorer-pin:hover, .window .explorer-view-tools button:hover { background: var(--surface-hover); }
.explorer-results[data-view="list"] { grid-template-columns: minmax(0, 1fr); }
.explorer-results[data-view="list"] .explorer-file { min-height: 54px; }
.terminal-searchbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 10px; flex-shrink: 0; background: #162135; color: #dbe6fa; font: 12px var(--font-family); }
.terminal-searchbar[hidden], #explorerClearRecent[hidden] { display: none; }
.terminal-searchbar input { flex: 1; min-width: 90px; width: 120px; }
.window .terminal-searchbar :is(input, button) { min-height: 30px; padding: 4px 7px; border: 1px solid #60738f; border-radius: 4px; background: #101827; color: #dbe6fa; font: inherit; }
.terminal-searchbar button:disabled { opacity: .5; }
.terminal-searchbar [role="status"] { width: 100%; color: #b0bed1; }
.terminal-searchbar [role="status"]:empty { display: none; }
.terminal-search-hit { background: #293d55; }
.terminal-search-current { background: #344c70; outline: 1px solid #a8c8ff; outline-offset: -1px; }
.browser-page { zoom: var(--browser-zoom, 1); }
.browser-zoom-controls { display: flex; align-items: center; gap: 3px; flex-shrink: 0; }
.window .browser-zoom-controls button { min-width: 27px; min-height: 27px; border: 1px solid var(--surface-border); border-radius: 4px; background: var(--surface-raised); color: var(--text); font: 11px var(--font-family); cursor: pointer; }
.browser-zoom-controls button:disabled { opacity: .45; cursor: default; }
.window .browser-zoom-controls button:hover:not(:disabled) { background: var(--surface-hover); }
@media (max-height: 480px) {
    .explorer-view-tools button { min-height: 23px; padding: 2px 6px; }
    .terminal-searchbar { padding: 3px 6px; }
}

/* Selection and details remain local to the explorer. */
.window[data-snap] { resize: none; }
.explorer-unified { position: relative; }
.explorer-resource.is-selected > .explorer-file { border-color: #8faede; background: var(--surface-raised); }
.explorer-inspector { position: absolute; inset: 8px 8px 40px; padding: 14px; overflow: auto; z-index: 2; border: 1px solid var(--surface-border); border-radius: 7px; background: var(--surface-input); color: var(--text); box-shadow: 0 6px 24px #0008; }
.explorer-inspector[hidden] { display: none; }
.explorer-inspector h3 { margin: 10px 0; color: #b8d2ff; }
.explorer-inspector dt { font-size: 11px; color: var(--text-muted); margin-top: 9px; }
.explorer-inspector dd { font-size: 13px; margin: 3px 0; overflow-wrap: anywhere; }
.window .explorer-inspector button { min-height: 30px; padding: 5px 9px; border: 1px solid var(--surface-border); border-radius: 4px; background: var(--surface-raised); color: var(--text); cursor: pointer; }
.window .explorer-inspector button:hover { background: var(--surface-hover); }
.browser-new-tab:disabled { opacity: .4; cursor: default; }
@media (max-height: 480px) {
    .explorer-inspector { inset: 0; max-height: 100%; }
}

/* Keep content reachable when landscape orientation or the keyboard reduces height. */
@media (max-height: 480px) {
    .window .xp-browser-content, .window .terminal-content { overflow: auto; }
    .window .browser-page, .window .terminal-output { flex: 1 0 80px; }
    .browser-toolbar { padding-block: 4px; }
    .browser-tabbar { padding-top: 2px; }
}

.workspace-short .window :is(.xp-browser-content, .terminal-content) { overflow: auto; }
.workspace-short .window :is(.browser-page, .terminal-output) { flex: 1 0 80px; }
.workspace-short .browser-favorites { display: none; }
.workspace-short .browser-toolbar { padding-block: 4px; }
.workspace-short .browser-tabbar { padding-top: 2px; }

/* The embedded assistant must shrink its conversation, not hide its composer. */
.chat-window .window-content { overflow: hidden; }
.chat-window #chatAssistantFrame { flex: 1 1 0; height: 0; min-height: 0; width: 100%; }
.workspace-short .chat-window .chat-external-link { display: none; }

.browser-page, .terminal-output, .explorer-results { overscroll-behavior: contain; }

/* Hybrid tablets also need touch targets when a mouse is connected. */
@media (any-pointer: coarse) {
    .notepad-window .notepad-textarea { font-size: max(16px, var(--notepad-font-size, 14px)); }
    .window :is(.app-toolbar, .browser-toolbar, .browser-favorites, .browser-tabbar, .browser-statusbar, .explorer-sidebar, .explorer-tools, .explorer-view-tools, .notepad-document-bar, .notepad-findbar, .notepad-editor-settings, .terminal-searchbar, .explorer-inspector) :is(button, input, select) {
        min-width: 44px;
        min-height: 44px;
    }
    .window :is(.browser-nav-group, .browser-address-wrap) button, .window :is(.browser-tab-close, .browser-new-tab, .explorer-pin, .terminal-submit) { width: 44px; height: 44px; }
    .window .browser-tab { min-height: 44px; }
    .window .terminal-input-line { grid-template-columns: auto minmax(0, 1fr) 44px; }
    .window .terminal-input-line input { min-height: 44px; font-size: 16px; }
    .window :is(.notepad-document-bar, .notepad-findbar, .browser-address-wrap) input { font-size: 16px; }
    .window .explorer-resource .explorer-file { padding-right: 52px; }
    .window .browser-statusbar { flex-wrap: wrap; }
}

@media (any-pointer: coarse) and (max-width: 600px) {
    .window .terminal-input-line { grid-template-columns: minmax(0, 1fr) 44px; }
}
