/* Generated from tokens.json. */
:root {
  --fastui-font: "IBM Plex Sans Variable", "Noto Sans SC Variable", "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif;
  --fastui-font-size: 12px;
  --fastui-radius-control: 4px;
  --fastui-radius-panel: 6px;
  --fastui-space-1: 4px;
  --fastui-space-2: 8px;
  --fastui-space-3: 12px;
  --fastui-space-4: 16px;
  --fastui-space-6: 24px;
  --fastui-space-8: 32px;
  --fastui-height-xs: 24px;
  --fastui-height-sm: 25px;
  --fastui-height-md: 28px;
  --fastui-on-primary: #ffffff;
  --fastui-on-primary-rgb: 255, 255, 255;
  --fastui-font-mono: "JetBrains Mono Variable", "Noto Sans SC Variable", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --fastui-font-system: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei UI", sans-serif;
  --fastui-font-weight: 500;
  --fastui-font-weight-code: 450;
  --fastui-radius-overlay: 8px;
  --fastui-height-comfortable: 32px;
  --fastui-duration-fast: 120ms;
  --fastui-duration-normal: 180ms;
  --fastui-ease: cubic-bezier(0.2, 0, 0, 1);
  --fastui-disabled-opacity: 0.4;
  --fastui-tab-height: 28px;
  --fastui-rail-width: 52px;
  --fastui-panel-header-height: 32px;
  --fastui-grid-size: 16px;
  --fastui-shadow-paper: 0 4px 16px rgb(0 0 0 / 8%);
  --fastui-touch-target: 0px;
  --fastui-touch-input-font-size: 0px;
}
:root, [data-fastui-theme="light"] {
  --fastui-page: #f7f8fa;
  --fastui-page-rgb: 247, 248, 250;
  --fastui-workspace: #eef0f3;
  --fastui-workspace-rgb: 238, 240, 243;
  --fastui-surface: #ffffff;
  --fastui-surface-rgb: 255, 255, 255;
  --fastui-raised: #eff1f4;
  --fastui-raised-rgb: 239, 241, 244;
  --fastui-text: #151c28;
  --fastui-text-rgb: 21, 28, 40;
  --fastui-secondary: #4b5565;
  --fastui-secondary-rgb: 75, 85, 101;
  --fastui-muted: #687384;
  --fastui-muted-rgb: 104, 115, 132;
  --fastui-border: #dfe3e8;
  --fastui-border-rgb: 223, 227, 232;
  --fastui-border-strong: #8290a3;
  --fastui-border-strong-rgb: 130, 144, 163;
  --fastui-primary: #155fb8;
  --fastui-primary-rgb: 21, 95, 184;
  --fastui-primary-hover: #104a91;
  --fastui-primary-hover-rgb: 16, 74, 145;
  --fastui-focus: #2878d0;
  --fastui-focus-rgb: 40, 120, 208;
  --fastui-selected: #dbeafe;
  --fastui-selected-rgb: 219, 234, 254;
  --fastui-disabled: #e8ebef;
  --fastui-disabled-rgb: 232, 235, 239;
  --fastui-success: #16834a;
  --fastui-success-rgb: 22, 131, 74;
  --fastui-warning: #8c5b09;
  --fastui-warning-rgb: 140, 91, 9;
  --fastui-danger: #c93636;
  --fastui-danger-rgb: 201, 54, 54;
  --fastui-danger-fill: #c93636;
  --fastui-danger-fill-rgb: 201, 54, 54;
  --fastui-overlay: #151c2880;
  --fastui-selected-text: #113d70;
  --fastui-selected-text-rgb: 17, 61, 112;
  --fastui-hover: #eff1f4;
  --fastui-hover-rgb: 239, 241, 244;
  --fastui-secondary-hover: #dfe3e8;
  --fastui-secondary-hover-rgb: 223, 227, 232;
  --fastui-chrome: #f7f8fa;
  --fastui-chrome-rgb: 247, 248, 250;
  --fastui-success-soft: #eefbf3;
  --fastui-success-soft-rgb: 238, 251, 243;
  --fastui-warning-soft: #fff8e8;
  --fastui-warning-soft-rgb: 255, 248, 232;
  --fastui-danger-soft: #fff1f1;
  --fastui-danger-soft-rgb: 255, 241, 241;
  --fastui-ai: #7151a1;
  --fastui-ai-rgb: 113, 81, 161;
  --fastui-ai-soft: #f2edfa;
  --fastui-ai-soft-rgb: 242, 237, 250;
  --fastui-grid-dot: var(--fastui-border);
  --fastui-scrollbar: var(--fastui-border-strong);
  --fastui-color-scheme: light;
}
[data-fastui-theme="dark"] {
  --fastui-page: #151b24;
  --fastui-page-rgb: 21, 27, 36;
  --fastui-workspace: #10161e;
  --fastui-workspace-rgb: 16, 22, 30;
  --fastui-surface: #171e27;
  --fastui-surface-rgb: 23, 30, 39;
  --fastui-raised: #2a3543;
  --fastui-raised-rgb: 42, 53, 67;
  --fastui-text: #f4f7fa;
  --fastui-text-rgb: 244, 247, 250;
  --fastui-secondary: #b6c1ce;
  --fastui-secondary-rgb: 182, 193, 206;
  --fastui-muted: #9aa8b9;
  --fastui-muted-rgb: 154, 168, 185;
  --fastui-border: #2a3543;
  --fastui-border-rgb: 42, 53, 67;
  --fastui-border-strong: #8290a3;
  --fastui-border-strong-rgb: 130, 144, 163;
  --fastui-primary: #0e639c;
  --fastui-primary-rgb: 14, 99, 156;
  --fastui-primary-hover: #1177bb;
  --fastui-primary-hover-rgb: 17, 119, 187;
  --fastui-focus: #5ba3ea;
  --fastui-focus-rgb: 91, 163, 234;
  --fastui-selected: #16385f;
  --fastui-selected-rgb: 22, 56, 95;
  --fastui-disabled: #273342;
  --fastui-disabled-rgb: 39, 51, 66;
  --fastui-success: #56c787;
  --fastui-success-rgb: 86, 199, 135;
  --fastui-warning: #f0c36b;
  --fastui-warning-rgb: 240, 195, 107;
  --fastui-danger: #ff848c;
  --fastui-danger-rgb: 255, 132, 140;
  --fastui-danger-fill: #b03030;
  --fastui-danger-fill-rgb: 176, 48, 48;
  --fastui-overlay: #00000099;
  --fastui-selected-text: #b7dcff;
  --fastui-selected-text-rgb: 183, 220, 255;
  --fastui-hover: #1c2530;
  --fastui-hover-rgb: 28, 37, 48;
  --fastui-secondary-hover: #3b4859;
  --fastui-secondary-hover-rgb: 59, 72, 89;
  --fastui-chrome: #151b24;
  --fastui-chrome-rgb: 21, 27, 36;
  --fastui-success-soft: #112b20;
  --fastui-success-soft-rgb: 17, 43, 32;
  --fastui-warning-soft: #332814;
  --fastui-warning-soft-rgb: 51, 40, 20;
  --fastui-danger-soft: #351a20;
  --fastui-danger-soft-rgb: 53, 26, 32;
  --fastui-ai: #c7b0ef;
  --fastui-ai-rgb: 199, 176, 239;
  --fastui-ai-soft: #2b223b;
  --fastui-ai-soft-rgb: 43, 34, 59;
  --fastui-grid-dot: var(--fastui-border);
  --fastui-scrollbar: var(--fastui-border-strong);
  --fastui-color-scheme: dark;
}
/* Every appearance rule is explicitly opted into by a fastui class. No reset. */
.fastui-button, .fastui-input, .fastui-textarea, .fastui-select {
  box-sizing: border-box;
  font-family: var(--fastui-font);
  font-size: var(--fastui-font-size);
  font-weight: var(--fastui-font-weight);
  line-height: 1.5;
  min-height: max(var(--fastui-height-md), var(--fastui-touch-target));
  padding: 3px 6px;
  border: 1px solid var(--fastui-border-strong);
  border-radius: var(--fastui-radius-control);
  background: var(--fastui-surface);
  color: var(--fastui-text);
  max-width: 100%;
  min-width: 0;
  color-scheme: var(--fastui-color-scheme);
}
.fastui-button { transition: background-color var(--fastui-duration-fast) var(--fastui-ease), color var(--fastui-duration-fast) var(--fastui-ease); display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; font-weight: 600; text-decoration: none; }
.fastui-button--sm, .fastui-input--sm, .fastui-select--sm { min-height: max(var(--fastui-height-sm), var(--fastui-touch-target)); padding: 2px 8px; font-size: 12px; }
.fastui-button--xs, .fastui-input--xs, .fastui-select--xs { min-height: max(var(--fastui-height-xs), var(--fastui-touch-target)); padding: 1px 6px; font-size: 12px; }
.fastui-button { padding-inline: 11px; background: var(--fastui-raised); border-color: transparent; }
.fastui-button:hover:not(:disabled) { background: var(--fastui-secondary-hover); }
.fastui-button--primary { background: var(--fastui-primary); border-color: var(--fastui-primary); color: var(--fastui-on-primary); }
.fastui-button--primary:hover:not(:disabled) { background: var(--fastui-primary-hover); }
.fastui-button--danger { background: var(--fastui-danger-fill); border-color: var(--fastui-danger-fill); color: var(--fastui-on-primary); }
.fastui-button--danger:hover:not(:disabled) { filter: brightness(.9); background: var(--fastui-danger-fill); }
.fastui-button--quiet, .fastui-button--icon, .fastui-button--navigation { background: transparent; border-color: transparent; }
.fastui-button--icon { aspect-ratio: 1; padding: 5px; }
.fastui-button--navigation { border-radius: 0; }
.fastui-button[aria-pressed=true], .fastui-button[aria-selected=true] { background: var(--fastui-selected); color: var(--fastui-selected-text); }
.fastui-button:disabled, .fastui-input:disabled, .fastui-textarea:disabled, .fastui-select:disabled { opacity: var(--fastui-disabled-opacity); cursor: not-allowed; }
.fastui-button:focus-visible, .fastui-input:focus-visible, .fastui-textarea:focus-visible, .fastui-select:focus-visible, .fastui-link:focus-visible, .fastui-disclosure-trigger:focus-visible { outline: 2px solid var(--fastui-focus); outline-offset: 2px; }
.fastui-input::placeholder, .fastui-textarea::placeholder { color: var(--fastui-muted); }
.fastui-input[aria-invalid=true], .fastui-textarea[aria-invalid=true] { border-color: var(--fastui-danger); }
.fastui-input[type=checkbox], .fastui-input[type=radio], .fastui-input[type=range] { min-height: auto; padding: 0; accent-color: var(--fastui-primary); }
.fastui-textarea { resize: vertical; }
.fastui-field { display: grid; gap: 6px; color: var(--fastui-secondary); font: var(--fastui-font-weight) 13px/1.5 var(--fastui-font); }
.fastui-fieldset { border: 1px solid var(--fastui-border); border-radius: var(--fastui-radius-panel); min-width: 0; padding: 16px; }
.fastui-legend { color: var(--fastui-secondary); padding: 0 4px; }
.fastui-heading { color: var(--fastui-text); font-weight: 600; }
.fastui-link { color: var(--fastui-focus); text-underline-offset: 3px; }
.fastui-progress { accent-color: var(--fastui-primary); }
.fastui-table { border-collapse: collapse; text-align: left; }
.fastui-table :where(th, td) { padding: 12px; border-bottom: 1px solid var(--fastui-border); }
.fastui-table th { background: var(--fastui-raised); font-weight: 600; }
.fastui-disclosure-trigger { padding: 5px 8px; cursor: pointer; }
.fastui-dialog { box-sizing: border-box; width: min(620px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: 0; border: 1px solid var(--fastui-border); border-radius: var(--fastui-radius-overlay); background: var(--fastui-surface); color: var(--fastui-text); font: var(--fastui-font-weight) 14px/1.5 var(--fastui-font); box-shadow: 0 16px 48px #0004; }
.fastui-dialog--lg { width: min(880px, calc(100% - 32px)); }
.fastui-dialog--xl { width: min(1100px, calc(100% - 32px)); }
.fastui-dialog::backdrop { background: var(--fastui-overlay); }
.fastui-dialog > :where(header, footer), .fastui-modal-body { padding: 20px 24px; }
.fastui-dialog > header { border-bottom: 1px solid var(--fastui-border); }
.fastui-dialog > footer { display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--fastui-border); }
.fastui-modal-body { display: grid; gap: 16px; }
.fastui-alert, .fastui-badge, .fastui-empty, .fastui-loading { font-family: var(--fastui-font); color: var(--fastui-text); }
.fastui-alert { border: 1px solid var(--fastui-border); border-left: 3px solid var(--fastui-tone, var(--fastui-focus)); border-radius: var(--fastui-radius-control); padding: 12px 16px; background: var(--fastui-surface); }
.fastui-badge { display: inline-block; border: 1px solid currentColor; color: var(--fastui-tone, var(--fastui-focus)); border-radius: 4px; padding: 1px 6px; font-size: 12px; }
.fastui-tone-success { --fastui-tone: var(--fastui-success); }
.fastui-tone-warning { --fastui-tone: var(--fastui-warning); }
.fastui-tone-danger { --fastui-tone: var(--fastui-danger); }
.fastui-empty { padding: 24px; text-align: center; }
.fastui-empty > h2 { font-size: 16px; }
.fastui-loading { display: inline-flex; align-items: center; gap: 8px; }

/* Workbench chrome: flat surfaces, a top selection marker and visible focus. */
.fastui-toolbar, .fastui-statusbar { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; font: var(--fastui-font-weight) var(--fastui-font-size)/1.5 var(--fastui-font); color: var(--fastui-secondary); }
.fastui-toolbar { padding: 8px 12px; border-bottom: 1px solid var(--fastui-border); }
.fastui-statusbar { padding: 4px 10px; border-top: 1px solid var(--fastui-border); background: var(--fastui-chrome); }
.fastui-divider { border: 0; border-top: 1px solid var(--fastui-border); margin: 12px 0; }
.fastui-section { min-width: 0; border: 1px solid var(--fastui-border); border-radius: var(--fastui-radius-panel); background: var(--fastui-surface); color: var(--fastui-text); }
.fastui-section > header { padding: 10px 12px; border-bottom: 1px solid var(--fastui-border); }
.fastui-list-row { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border-bottom: 1px solid var(--fastui-border); color: var(--fastui-text); font: var(--fastui-font-weight) 13px/1.5 var(--fastui-font); text-decoration: none; }
.fastui-list-row:hover { background: var(--fastui-hover); }
.fastui-list-row[aria-current]:not([aria-current=false]), .fastui-list-row[aria-selected=true] { background: var(--fastui-selected); color: var(--fastui-selected-text); }
.fastui-tabs { display: flex; align-items: stretch; overflow-x: auto; min-width: 0; background: var(--fastui-chrome); border-bottom: 1px solid var(--fastui-border); }
.fastui-tab-item { display: inline-flex; flex: 0 0 auto; align-items: center; max-width: 300px; height: max(var(--fastui-tab-height), var(--fastui-touch-target)); border-top: 2px solid transparent; }
.fastui-tabs--closable .fastui-tab-item { height: max(34px, var(--fastui-touch-target)); border-right: 1px solid var(--fastui-border); }
.fastui-tab-item:has([aria-selected=true]) { border-top-color: var(--fastui-focus); background: var(--fastui-surface); }
.fastui-tab, .fastui-tab-close, .fastui-segment { font: var(--fastui-font-weight) var(--fastui-font-size)/1.5 var(--fastui-font); color: var(--fastui-muted); border: 0; background: transparent; cursor: pointer; }
.fastui-tab { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; height: 100%; padding: 0 12px; white-space: nowrap; border-radius: 0; }
.fastui-tab-label { overflow: hidden; text-overflow: ellipsis; }
.fastui-tab[aria-selected=true] { color: var(--fastui-text); }
.fastui-tab:hover, .fastui-tab-close:hover { background: var(--fastui-hover); }
.fastui-tab:disabled, .fastui-segment:disabled { cursor: not-allowed; opacity: var(--fastui-disabled-opacity); }
.fastui-tab:focus-visible, .fastui-tab-close:focus-visible, .fastui-segment:focus-visible, .fastui-list-row:focus-visible { outline: 1px solid var(--fastui-focus); outline-offset: -2px; box-shadow: none; }
.fastui-tab--preview { font-style: italic; }
.fastui-tab-dirty { display: inline-block; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--fastui-muted); }
.fastui-tab-close { flex: 0 0 max(20px, var(--fastui-touch-target)); width: max(20px, var(--fastui-touch-target)); height: max(20px, var(--fastui-touch-target)); margin-right: 4px; padding: 0; }
.fastui-segments { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 2px; border: 1px solid var(--fastui-border); border-radius: var(--fastui-radius-control); background: var(--fastui-chrome); }
.fastui-segment { min-height: max(var(--fastui-height-sm), var(--fastui-touch-target)); padding: 2px 10px; border-radius: 2px; color: var(--fastui-secondary); }
.fastui-segment:hover:not(:disabled) { background: var(--fastui-hover); }
.fastui-segment[aria-pressed=true] { background: var(--fastui-selected); color: var(--fastui-selected-text); }
.fastui-spinner { display: inline-block; box-sizing: border-box; width: 14px; height: 14px; flex-shrink: 0; border: 2px solid var(--fastui-border-strong); border-top-color: var(--fastui-focus); border-radius: 50%; animation: fastui-spin 800ms linear infinite; }
@keyframes fastui-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .fastui-button { transition: none; }
  .fastui-spinner { animation: none; }
}
@media (forced-colors: active) {
  .fastui-tab-item:has([aria-selected=true]) { border-top-color: Highlight; }
  .fastui-segment[aria-pressed=true] { outline: 1px solid Highlight; }
  .fastui-tab-dirty { background: CanvasText; }
}

/* Editor primitives, scoped to opt-in classes; the host owns panel arrangement. */
.fastui-panel-header { box-sizing: border-box; display: flex; align-items: center; gap: 8px; min-height: var(--fastui-panel-header-height); padding: 6px 12px; border-bottom: 1px solid var(--fastui-border); color: var(--fastui-text); background: var(--fastui-surface); font: 600 12px/1.5 var(--fastui-font); }
.fastui-panel-header > :where(h2, h3) { margin: 0; font: inherit; }
.fastui-activity-rail { box-sizing: border-box; display: flex; flex-direction: column; gap: 3px; width: var(--fastui-rail-width); flex-shrink: 0; min-height: 0; overflow-y: auto; padding: 8px 0; border-inline-end: 1px solid var(--fastui-border); background: var(--fastui-surface); }
.fastui-activity-rail > .fastui-button { flex: 0 0 auto; width: 100%; min-height: 48px; flex-direction: column; gap: 3px; padding: 6px 2px; font-size: 10px; line-height: 1.2; }
.fastui-activity-rail svg { width: 18px; height: 18px; }
.fastui-inspector-section { min-width: 0; color: var(--fastui-text); background: var(--fastui-surface); border-bottom: 1px solid var(--fastui-border); font: var(--fastui-font-weight) 12px/1.5 var(--fastui-font); }
.fastui-inspector-section > summary { display: flex; align-items: center; gap: 8px; padding: 8px 12px; cursor: pointer; font-weight: 600; list-style: none; }
.fastui-inspector-section > summary::-webkit-details-marker { display: none; }
.fastui-inspector-section > summary::before { content: ''; width: 5px; height: 5px; border-inline-end: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); flex-shrink: 0; }
.fastui-inspector-section[open] > summary::before { transform: rotate(45deg); }
.fastui-inspector-section > summary:hover { background: var(--fastui-hover); }
.fastui-inspector-body { display: grid; gap: 10px; min-width: 0; padding: 0 12px 12px; }
.fastui-asset-card { box-sizing: border-box; display: flex; flex-direction: column; align-items: stretch; gap: 0; min-width: 0; max-width: 100%; padding: 0; overflow: hidden; border: 1px solid var(--fastui-border); border-radius: var(--fastui-radius-panel); background: var(--fastui-surface); color: var(--fastui-text); text-align: start; font: var(--fastui-font-weight) 12px/1.5 var(--fastui-font); cursor: pointer; transition: border-color var(--fastui-duration-fast) var(--fastui-ease); }
.fastui-asset-card:hover:not(:disabled) { border-color: var(--fastui-focus); }
.fastui-asset-card[aria-pressed=true] { border-color: var(--fastui-focus); box-shadow: inset 0 0 0 1px var(--fastui-focus); background: var(--fastui-selected); }
.fastui-asset-preview { display: grid; place-items: center; min-height: 80px; padding: 8px; border-bottom: 1px solid var(--fastui-border); background: var(--fastui-raised); overflow: hidden; }
.fastui-asset-preview > :where(svg, img) { max-width: 100%; max-height: 100%; }
.fastui-asset-label { padding: 8px 10px 0; overflow-wrap: anywhere; font-weight: 600; }
.fastui-asset-description { padding: 3px 10px 10px; color: var(--fastui-muted); font-size: 10px; overflow-wrap: anywhere; }
.fastui-asset-label:last-child { padding-bottom: 8px; }
.fastui-asset-card:disabled { cursor: not-allowed; opacity: var(--fastui-disabled-opacity); }
.fastui-canvas { box-sizing: border-box; display: grid; place-items: safe center; min-width: 0; min-height: 0; overflow: auto; padding: 24px; background-color: var(--fastui-workspace); color: var(--fastui-text); scrollbar-width: thin; scrollbar-color: var(--fastui-scrollbar) transparent; }
.fastui-canvas--grid { background-image: radial-gradient(var(--fastui-grid-dot) .75px, transparent .75px); background-size: var(--fastui-grid-size) var(--fastui-grid-size); }
.fastui-inspector-section > summary:focus-visible, .fastui-asset-card:focus-visible, .fastui-activity-rail:focus-visible, .fastui-canvas:focus-visible { outline: 2px solid var(--fastui-focus); outline-offset: -2px; }
@media (forced-colors: active) {
  .fastui-asset-card[aria-pressed=true], .fastui-button--navigation[aria-selected=true], .fastui-button--navigation[aria-pressed=true] { outline: 2px solid Highlight; outline-offset: -2px; }
}
.fastui-button--navigation[aria-pressed=true] { box-shadow: inset 2px 0 var(--fastui-focus); }
@media (prefers-reduced-motion: reduce) {
  .fastui-asset-card { transition: none; }
}

/* Touch density is additive: desktop tokens and the FastWrite palette stay intact. */
.fastui-input:not([type=checkbox]):not([type=radio]):not([type=range]), .fastui-textarea, .fastui-select { font-size: max(var(--fastui-font-size), var(--fastui-touch-input-font-size)); }
.fastui-button--icon { min-width: max(var(--fastui-height-xs), var(--fastui-touch-target)); }
.fastui-disclosure-trigger, .fastui-inspector-section > summary { box-sizing: border-box; min-height: var(--fastui-touch-target); }
.fastui-field:has(> .fastui-input:is([type=checkbox], [type=radio])) { display: flex; align-items: center; min-height: var(--fastui-touch-target); }
.fastui-button, .fastui-tab, .fastui-tab-close, .fastui-segment, .fastui-asset-card, .fastui-disclosure-trigger, .fastui-inspector-section > summary { touch-action: manipulation; }
.fastui-segments { box-sizing: border-box; min-width: 0; max-width: 100%; }
.fastui-segment { min-width: 0; overflow-wrap: anywhere; }
.fastui-tabs { max-width: 100%; overscroll-behavior-inline: contain; scroll-padding-inline: 8px; }
.fastui-table-scroll { max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; }
.fastui-canvas { overscroll-behavior: contain; }

@media (max-width: 900px) and (pointer: coarse) {
  :root { --fastui-touch-target: 44px; --fastui-touch-input-font-size: 16px; }
}
/* May be placed on a root, a panel or an individual control. */
[data-fastui-density=touch] { --fastui-touch-target: 44px; --fastui-touch-input-font-size: 16px; }
[data-fastui-density=compact] { --fastui-touch-target: 0px; --fastui-touch-input-font-size: 0px; }

@media (max-width: 680px) {
  .fastui-dialog { width: calc(100% - 16px); max-width: calc(100% - 16px); max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)) - max(8px, env(safe-area-inset-bottom, 0px))); margin: auto; overscroll-behavior: contain; overflow-wrap: anywhere; }
  .fastui-dialog > :where(header, footer), .fastui-modal-body { padding: 16px; }
  .fastui-dialog > footer { flex-wrap: wrap; padding-bottom: max(16px, env(safe-area-inset-bottom, 0px)); }
  .fastui-dialog > footer > .fastui-button { flex: 1 1 120px; }
  .fastui-toolbar, .fastui-statusbar { gap: 6px; padding-inline: 8px; }
  .fastui-toolbar > *, .fastui-statusbar > *, .fastui-panel-header > *, .fastui-list-row > * { min-width: 0; }
  .fastui-statusbar, .fastui-list-row { overflow-wrap: anywhere; }
  .fastui-alert, .fastui-empty { padding: 12px; overflow-wrap: anywhere; }
  .fastui-canvas { padding: 12px; }
}
