/* Shared glass-modal theme. Layout and interaction stay with each component. */
dialog.aquarium-modal,
dialog.aquarium-modal.profile-dialog,
dialog.aquarium-modal.trait-editor {
  --modal-ink: #17343d;
  --modal-muted: #4d6970;
  --modal-paper: #fffef9;
  --modal-inset: #edf6f2;
  --modal-card: rgba(255,254,249,.66);
  --modal-card-inset: rgba(237,246,242,.52);
  --modal-line: #bad2ce;
  --modal-action: #1a5d68;
  --modal-soft: rgba(224,242,236,.76);
  --modal-control: rgba(255,254,249,.88);
  --modal-control-border: #89aaa7;
  --modal-focus: #176878;
  --modal-primary: linear-gradient(155deg, rgba(31,105,115,.97), rgba(22,77,88,.98));
  --modal-glass-fill: linear-gradient(155deg, rgba(238,250,243,.69), rgba(191,223,224,.57));
  --modal-glass-header: linear-gradient(110deg, rgba(229,245,238,.38), rgba(211,235,232,.24));
  --modal-glass-footer: rgba(222,238,232,.38);
  --modal-glass-edge: linear-gradient(135deg, rgba(255,255,255,.38) 0%, rgba(221,237,239,.14) 26%, rgba(153,183,192,.1) 54%, rgba(119,155,168,.14) 78%, rgba(229,244,246,.24) 100%);
  --modal-glass-glint: radial-gradient(ellipse at 14% 0%, rgba(255,255,255,.46) 0%, rgba(255,255,255,.18) 28%, rgba(255,255,255,.04) 50%, transparent 72%);
  --modal-glass-reflection: inset 0 2px 1px -1px rgba(255,255,255,.58), inset 2px 0 1px -1px rgba(255,255,255,.34), inset -2px -2px 2px -1px rgba(108,145,157,.18);
  --profile-bg: #d4eeea;
  --profile-surface: var(--modal-card);
  --profile-surface-raised: var(--modal-card-inset);
  --aquarium-card: var(--modal-card);
  --aquarium-inset: var(--modal-card-inset);
  --profile-border: #bad2ce;
  --profile-gold: #164d58;
  --profile-muted: #4d6970;
  --muted: #4d6970;
  position: fixed;
  border: 4px solid transparent;
  border-radius: 18px;
  color: var(--modal-ink);
  background: var(--modal-glass-fill) padding-box, var(--modal-glass-glint) border-box, var(--modal-glass-edge) border-box;
  box-shadow: var(--modal-glass-reflection);
}
/* The clear casing comes from the edge itself; no extra rim over the content. */
dialog.aquarium-modal.fish-detail-dialog::before,
dialog.aquarium-modal.fish-detail-dialog::after { content:none; pointer-events:none; }
dialog.aquarium-modal.fish-detail-dialog .fish-activity-flyout {
  border:4px solid transparent; border-radius:18px;
  background:var(--modal-glass-fill) padding-box, var(--modal-glass-glint) border-box, var(--modal-glass-edge) border-box;
  box-shadow:var(--modal-glass-reflection);
  -webkit-backdrop-filter:blur(14px) saturate(110%);
  backdrop-filter:blur(14px) saturate(110%);
}
/* Keep blur on the backdrop so fixed entry forms follow the visual viewport. */
dialog.aquarium-modal::backdrop { background: rgba(7,37,44,.65); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
html:has(dialog.aquarium-modal[open]), body:has(dialog.aquarium-modal[open]) { overflow: hidden; }
dialog.aquarium-modal :is(.dialog-header, .terms-acceptance-dialog__header) { border-bottom: 1px solid #9cc8c6; background: var(--modal-glass-header); box-shadow: none; }
dialog.aquarium-modal :is(.dialog-header, .terms-acceptance-dialog__header) :is(h2, .eyebrow, p) { color: #164d58; }
dialog.aquarium-modal .dialog-header .icon-button { border: 1px solid var(--modal-control-border); background: var(--modal-soft); color: #164d58; box-shadow: inset 0 1px 0 rgba(255,255,255,.56); }
dialog.aquarium-modal :is(h2,h3,h4,legend) { color: #164d58; }
dialog.aquarium-modal :is(.muted, .trait-hint, .trait-history-record small, .program-origin, .program-explainer) { color: var(--modal-muted); }
dialog.aquarium-modal :is(.panel, .program-card, .trait-history-record, .program-picker, .line-related-card, .family-parentage, .family-history, .family-fish-panel, .pairing-fish-section, .fish-detail-panel, .line-admin-tools, .family-generation-card, .line-summary-card, .family-parent-card, .line-detail-notes, .line-traits, .line-owner-card, .line-detail-meta) { border-color: var(--modal-line); background: var(--modal-card); color: var(--modal-ink); box-shadow: none; }
dialog.aquarium-modal :is(.program-card, .trait-history-record, .program-picker, fieldset) { border-radius: 8px; }
dialog.aquarium-modal.trait-editor :is(p,small,label) { color: var(--modal-muted); }
dialog.aquarium-modal.trait-editor :is(h2,h3,strong,legend) { color: #164d58; }
dialog.aquarium-modal.trait-editor fieldset { border: 1px solid var(--modal-line); background: var(--modal-card); }
dialog.aquarium-modal.trait-editor fieldset:has([data-selected]:checked) { background:rgba(217,238,231,.78); border-color:#397d84; }
dialog.aquarium-modal :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea) { min-width: 0; max-width: 100%; border: 1px solid var(--modal-control-border); border-radius: 8px; background: var(--modal-control); color: var(--modal-ink); box-shadow: inset 0 1px 0 rgba(255,255,255,.62); }
dialog.aquarium-modal :is(input,textarea)::placeholder { color: #657c81; opacity: 1; }
dialog.aquarium-modal input:is([type="checkbox"],[type="radio"]) { accent-color: var(--modal-action); }
dialog.aquarium-modal :is(button,.fish-detail-link,.record-link) { color: #164d58; }
dialog.aquarium-modal :is(.outline-button,.icon-button,.fish-detail-link,.fish-activity-add,.fish-next-step,.fish-profile-share,.trait-panel button,.trait-pagination button,.program-picker button,.program-actions button,.program-pager button,footer button,.dialog-actions button),
dialog.aquarium-modal.trait-editor button,
dialog.aquarium-modal.lifecycle-dialog button { border: 1px solid var(--modal-control-border); border-radius: 8px; background: var(--modal-soft); color: #164d58; box-shadow: inset 0 1px 0 rgba(255,255,255,.56); }
dialog.aquarium-modal :is(.button--primary,.primary-button,button[type="submit"]) { border: 1px solid #1a5d68; border-radius: 8px; background: var(--modal-primary); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.18); }
dialog.aquarium-modal :is(button.button--danger,button.passport-danger,button.is-danger,button.row-action--danger,button[data-certificate-action="revoke"],button[data-revoke-user-session],button[data-revoke-invitation]) { border-color: #b8887b; background: rgba(255,240,233,.9); color: #8b362a; }
dialog.aquarium-modal :is(button:disabled,input:disabled,select:disabled,textarea:disabled) { border-color: #b7c9c3; background: rgba(233,240,236,.86); color: #617578; opacity: 1; box-shadow: none; }
dialog.aquarium-modal :is(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid var(--modal-focus); outline-offset: 2px; }
dialog.aquarium-modal :is(.form-error,[role="alert"]) { color: #8b362a; }
dialog.aquarium-modal .trait-editor-grid { min-width: 0; }
dialog.aquarium-modal :is(.trait-history-record,.program-card) strong { color: #164d58; }
dialog.aquarium-modal.trait-editor :is(header,footer) { border-color: #aacdca; }
dialog.aquarium-modal.trait-editor footer { background: var(--modal-glass-footer); }
/* Replace the older navy profile surfaces while retaining each renderer's grid. */
dialog.aquarium-modal .entity-profile-dashboard { background: transparent; }
dialog.aquarium-modal .entity-profile-column { border: 1px solid var(--modal-line); border-radius: 8px; background: rgba(255,254,249,.38); color: var(--modal-ink); box-shadow: none; }
dialog.aquarium-modal .entity-profile-column__header { border-bottom-color: var(--modal-line); }
dialog.aquarium-modal .entity-profile-column__header :is(h3,p) { color: #164d58; }
dialog.aquarium-modal .entity-profile-column__body { scrollbar-width: thin; }
dialog.aquarium-modal .entity-profile-dashboard :is(h3,h4,strong,dd) { color: var(--modal-ink); }
dialog.aquarium-modal .entity-profile-dashboard :is(p,small,dt,.muted) { color: var(--modal-muted); }
dialog.aquarium-modal .entity-profile-dashboard :is(.panel,.line-traits,.line-related-card,.family-parentage,.family-history,.family-fish-panel,.pairing-detail-summary,.pairing-fish-section,.egg-batch-metrics article,.fry-survival-section,.fry-grade-grid article,.fish-detail-panel,.line-admin-tools,.line-detail-hero,.family-detail-hero,.egg-batch-hero,.fry-group-hero,.line-detail-meta) { border-color: var(--modal-line); background: var(--modal-card); color: var(--modal-ink); box-shadow: none; }
dialog.aquarium-modal .entity-profile-dashboard :is(.line-detail-stats > span,.family-detail-stats > span,.egg-batch-counts > span,.fry-group-kpis > span,.pairing-detail-kpis > span,.family-parent-pair,.family-parent-summary,.ownership-party) { background: var(--modal-card-inset); border-color: var(--modal-line); }
dialog.aquarium-modal .entity-profile-dashboard :is(.record-code,.health-badge,.date-pill) { border-color: #aac9c4; background: var(--modal-soft); color: #164d58; box-shadow: none; }
dialog.aquarium-modal .entity-profile-tabs { border-bottom-color: var(--modal-line); }
dialog.aquarium-modal .entity-profile-tabs button { color: var(--modal-muted); }
dialog.aquarium-modal .entity-profile-tabs button.is-active { border-bottom-color: #30717d; background: var(--modal-soft); color: #164d58; }
dialog.aquarium-modal .entity-profile-dashboard :is(.record-link,code) { color: #164d58; }
dialog.aquarium-modal .trait-panel { color: var(--modal-ink); }
dialog.aquarium-modal .entity-profile-dashboard :is(.family-parent-pair__heading,.family-parent-role,.line-admin-tools summary) { color: #164d58; border-color: var(--modal-line); }
dialog.aquarium-modal.profile-dialog :is(.family-parent-card,.family-parent-metrics > span,.family-pairing-evidence,.family-fish-panel .fish-top-view-card,.family-fish-panel .fish-top-view-card__metrics > span,.line-admin-tools form,.founding-profile-hero,.founding-program-record .mini-stat,.founding-farm,.founding-stat-grid > span,.founding-record-list > button,.founding-record-list > a,.founding-check) { border-color: var(--modal-line); background: var(--modal-card-inset); color: var(--modal-ink); box-shadow: none; }
dialog.aquarium-modal.profile-dialog :is(.family-parent-metrics strong,.family-pairing-evidence > strong,.founding-stat-grid strong,.founding-program-record .mini-stat strong,.founding-record-list > button > span:last-child,.founding-record-list > a > span:last-child) { color: #164d58; }
dialog.aquarium-modal.profile-dialog :is(.founding-farm span,.founding-check em,.founding-record-group small,.founding-record-pagination) { color: var(--modal-muted); }
dialog.aquarium-modal.profile-dialog :is(.founding-farm__icon,.founding-record-pagination button) { border-color: var(--modal-line); background: var(--modal-soft); color: #164d58; }
dialog.aquarium-modal.profile-dialog .founding-record-pagination button:not(:disabled):hover,
dialog.aquarium-modal.profile-dialog .founding-record-list > :is(button,a):hover { border-color: #6c9b9e; background: #dcefea; color: #164d58; }
dialog.aquarium-modal.profile-dialog .badge--green { border-color: #a4cdb7; background: #e3f3e9; color: #216042; }
dialog.aquarium-modal.profile-dialog .badge--amber { border-color: #d8c49a; background: #fff3dc; color: #78521b; }
dialog.aquarium-modal.profile-dialog .family-fish-panel .fish-top-view-card__body { border-color: var(--modal-line); }
dialog.aquarium-modal .terms-acceptance-dialog__header { background: var(--modal-glass-header); }
dialog.aquarium-modal.terms-acceptance-dialog form { background: var(--modal-glass-footer); border-top-color: var(--modal-line); }
dialog.aquarium-modal.image-lightbox figcaption { background: var(--modal-glass-footer); color: var(--modal-ink); }
dialog.aquarium-modal.image-lightbox .image-lightbox__close { background: #dcefea; color: #164d58; border: 1px solid #aac9c4; box-shadow: none; }
/* Desktop shells grow with their content, capped only by the viewport. */
@media (min-width:721px) {
  dialog.aquarium-modal { max-height:calc(100dvh - 32px); box-sizing:border-box; }
  dialog.aquarium-modal.operation-dialog { width:min(680px,calc(100vw - 32px)); }
  dialog.aquarium-modal.operation-dialog > form { padding:18px; }
  dialog.aquarium-modal.operation-dialog .dialog-header { margin:-18px -18px 12px; padding:12px 18px; }
  dialog.aquarium-modal .dialog-header { gap:12px; }
  dialog.aquarium-modal .dialog-header > div { min-width:0; }
  dialog.aquarium-modal .dialog-header h2 { overflow-wrap:anywhere; }
  dialog.aquarium-modal .dialog-fields { gap:12px; margin-top:12px; }
  dialog.aquarium-modal :is(.dialog-actions,footer) { gap:10px; margin-top:12px; flex-wrap:wrap; }
  dialog.aquarium-modal :is(.form-error,[role="alert"]):empty { display:none; }
  dialog.aquarium-modal.trait-editor,
  dialog.aquarium-modal.lifecycle-dialog { padding:18px; }
  dialog.aquarium-modal.trait-editor label { margin-block:8px; }
  dialog.aquarium-modal.lifecycle-dialog form { gap:12px; }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog) { height:fit-content; }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog):not(.line-summary-profile) { width:min(1180px,calc(100vw - 32px)); }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog) > article { display:flex; flex-direction:column; height:auto; max-height:calc(100dvh - 40px); }
  dialog.aquarium-modal.fish-detail-dialog > article { max-height:calc(100dvh - 40px); }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog) .dialog-header { flex:none; min-height:64px; padding:10px 16px; }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog) .line-detail-content { overflow:auto; min-height:0; }
  dialog.aquarium-modal .entity-profile-dashboard { height:auto; gap:10px; padding:10px; align-items:start; }
  dialog.aquarium-modal .entity-profile-column { min-height:0; grid-template-rows:auto auto; }
  dialog.aquarium-modal .entity-profile-column__header { padding:10px; }
  dialog.aquarium-modal .entity-profile-column__body { padding:10px; }
  dialog.aquarium-modal .entity-profile-tab-panels,
  dialog.aquarium-modal .entity-profile-tab-panel { height:auto; }
  dialog.aquarium-modal.line-summary-profile .line-detail-content { padding:14px; }
  dialog.aquarium-modal.line-summary-profile .line-summary-information-heading { padding:14px 16px; }
  dialog.aquarium-modal.line-summary-profile .line-summary-information-body { padding:14px 16px; }
  dialog.aquarium-modal.line-summary-profile .line-detail-photo { padding:14px; }
  dialog.aquarium-modal.line-summary-profile .line-summary-visual .line-traits { padding:14px; }
  dialog.aquarium-modal.line-summary-profile .line-summary-panels { height:auto; min-height:0; }
  dialog.aquarium-modal.line-summary-profile .line-summary-tabpanel { min-height:0; padding:14px; }
}
@media (max-width:720px) {
  dialog.aquarium-modal { max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  dialog.aquarium-modal.operation-dialog,
  dialog.aquarium-modal.trait-editor,
  dialog.aquarium-modal.lifecycle-dialog { padding:12px; box-sizing:border-box; }
  dialog.aquarium-modal.operation-dialog > form { padding:0; }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog) { height:auto; }
  dialog.aquarium-modal.profile-dialog:not(.fish-detail-dialog) > article { height:auto; max-height:calc(100dvh - 24px); }
  dialog.aquarium-modal.fish-detail-dialog > article { max-height:calc(100dvh - 26px); }
  dialog.aquarium-modal.profile-dialog .entity-profile-dashboard { min-height:0; padding:8px; }
  dialog.aquarium-modal.profile-dialog .entity-profile-column { min-height:0; margin-bottom:8px; }
  dialog.aquarium-modal .entity-profile-column__header { padding:10px; }
  dialog.aquarium-modal .entity-profile-column__body { padding:8px; }
  dialog.aquarium-modal.line-summary-profile .line-detail-content { padding:8px; }
  dialog.aquarium-modal.line-summary-profile :is(.line-summary-information-body,.line-summary-facts,.line-summary-tabpanel,.line-summary-edits) { padding:12px; }
  dialog.aquarium-modal.line-summary-profile .line-summary-visual .line-traits { padding:12px; }
  dialog.aquarium-modal.line-summary-profile .line-summary-panels { height:auto; min-height:0; }
  dialog.aquarium-modal.operation-dialog .dialog-header { margin:-12px -12px 10px; padding:10px 12px; }
  dialog.aquarium-modal .dialog-header { gap:8px; }
  dialog.aquarium-modal .dialog-header > div { min-width:0; }
  dialog.aquarium-modal .dialog-header h2 { max-width:100%; white-space:normal; overflow-wrap:anywhere; font-size:1rem; line-height:1.4; }
  dialog.aquarium-modal .dialog-header .icon-button { flex:0 0 44px; width:44px; min-height:44px; }
  dialog.aquarium-modal :is(.dialog-fields,.trait-editor-grid) { gap:10px; }
  dialog.aquarium-modal .dialog-fields { grid-template-columns:minmax(0,1fr); margin-top:10px; }
  dialog.aquarium-modal :is(.dialog-actions,footer) { gap:8px; margin-top:10px; }
  dialog.aquarium-modal :is(.dialog-actions,footer) > button { flex:1 1 120px; min-width:0; }
  dialog.aquarium-modal :is(button,.button,.outline-button) { max-width:100%; white-space:normal; overflow-wrap:anywhere; box-sizing:border-box; }
  dialog.aquarium-modal :is(input,select,textarea) { box-sizing:border-box; }
  dialog.aquarium-modal input[type="file"] { width:100%; min-width:0; font-size:13px; }
  dialog.aquarium-modal :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.gf-date-field__native),select) { min-height:44px; }
  dialog.aquarium-modal textarea { min-height:88px; }
  dialog.aquarium-modal :is(p,fieldset) { margin-block:8px; }
  dialog.aquarium-modal :is(.form-error,[role="alert"]):empty { display:none; }
  dialog.aquarium-modal.trait-editor label { margin-block:6px; }
  dialog.aquarium-modal.lifecycle-dialog form { gap:10px; }
  dialog.aquarium-modal :is(.program-picker,.program-card) { padding:10px; }
  dialog.aquarium-modal.terms-acceptance-dialog .terms-acceptance-dialog__header { padding:12px; }
  dialog.aquarium-modal.terms-acceptance-dialog form { padding:12px; }
  dialog.aquarium-modal :is(.trait-editor-grid,.program-picker,.dialog-fields,.dialog-field,fieldset,label) { min-width: 0; }
  dialog.aquarium-modal :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea) { font-size:16px; }
  dialog.aquarium-modal :is(.dialog-actions button,footer button,.trait-panel button,.program-picker button,.program-actions button,.program-pager button) { min-height:44px; }
  dialog.aquarium-modal.trait-editor :is(header,footer) { flex-wrap:wrap; gap:8px; }
  dialog.aquarium-modal.trait-editor header > div { min-width:0; flex:1; }
  dialog.aquarium-modal.trait-editor header [data-close] { flex:0 0 44px; min-height:44px; }
  dialog.aquarium-modal.trait-editor .trait-editor-grid { grid-template-columns:minmax(0,1fr); }
  dialog.aquarium-modal.trait-editor .trait-range { grid-template-columns:repeat(2,minmax(0,1fr)); }
  dialog.aquarium-modal :is(.program-actions,.program-pager,.dialog-actions) { flex-wrap:wrap; }
}

/* Fixed chrome with a single, bounded content scroller. */
dialog.aquarium-modal.modal-layout-dialog { padding:0; overflow:hidden; }
dialog.aquarium-modal.modal-layout-dialog[open] { display:flex; flex-direction:column; }
dialog.aquarium-modal .modal-layout-shell,
dialog.aquarium-modal.modal-layout-shell[open] {
  display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  min-height:0; max-height:calc(100dvh - 40px); margin:0; padding:0; gap:0;
}
dialog.aquarium-modal.modal-layout-dialog > form { padding:0; }
dialog.aquarium-modal .modal-scroll-body { min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; padding:16px; scroll-padding:12px; }
dialog.aquarium-modal.modal-layout-dialog :is(.modal-layout-shell > header,.modal-layout-shell > .dialog-header),
dialog.aquarium-modal.modal-layout-dialog > header { margin:0; padding:12px 16px; border-bottom:1px solid var(--modal-line); background:var(--modal-glass-header); }
dialog.aquarium-modal.modal-layout-dialog :is(.modal-layout-shell > footer,.modal-layout-shell > .dialog-actions),
dialog.aquarium-modal.modal-layout-dialog > footer { margin:0; padding:10px 16px; border-top:1px solid var(--modal-line); background:var(--modal-glass-footer); display:flex; gap:8px; flex-wrap:wrap; }
dialog.aquarium-modal.modal-layout-dialog :is(header, .dialog-header) [data-close] { min-width:44px; min-height:44px; flex-shrink:0; }
.fish-activity-flyout { overflow:hidden; }
.fish-detail-dialog .fish-activity-flyout form.modal-layout-shell:not([hidden]) { display:grid; grid-template-rows:minmax(0,1fr) auto; min-height:0; max-height:calc(100dvh - 200px); overflow:hidden; }
.fish-activity-flyout .modal-scroll-body { display:grid; gap:8px; min-height:0; overflow:auto; overscroll-behavior:contain; padding:2px; }
.fish-activity-flyout .modal-layout-shell > .dialog-actions { margin:0; padding:8px 0 0; background:var(--modal-glass-footer); }
@media (max-width:720px) {
  dialog.aquarium-modal .modal-layout-shell,
  dialog.aquarium-modal.modal-layout-shell[open] { max-height:calc(100dvh - 24px); }
  dialog.aquarium-modal .modal-scroll-body { padding:12px; }
  dialog.aquarium-modal.modal-layout-dialog :is(.modal-layout-shell > header,.modal-layout-shell > .dialog-header),
  dialog.aquarium-modal.modal-layout-dialog > header { padding:10px 12px; }
  dialog.aquarium-modal.modal-layout-dialog :is(.modal-layout-shell > footer,.modal-layout-shell > .dialog-actions),
  dialog.aquarium-modal.modal-layout-dialog > footer { padding:8px 12px; }
}
/* Let the glass surface show through layout wrappers, keeping cards and fields solid. */
dialog.aquarium-modal :is(.line-detail-content,.fish-profile-workspace,.fish-profile-sections) { background:transparent; }
dialog.aquarium-modal .fish-profile-navigation { background:rgba(220,239,235,.28); }
/* A keyboard can shrink the visual viewport while 100dvh stays unchanged. */
@media (max-width:720px), (pointer:coarse) and (max-width:1024px) {
  dialog.aquarium-modal[data-modal-viewport] {
    top:var(--modal-viewport-top); bottom:auto; margin:0 auto;
    max-height:calc(var(--modal-viewport-height) - 16px);
  }
  dialog.aquarium-modal[data-modal-viewport] .modal-layout-shell,
  dialog.aquarium-modal.modal-layout-shell[data-modal-viewport],
  dialog.aquarium-modal.profile-dialog[data-modal-viewport] > article {
    max-height:calc(var(--modal-viewport-height) - 24px);
  }
  dialog.aquarium-modal[data-modal-viewport] :is(.modal-scroll-body,.fish-profile-sections,.line-detail-content) {
    scroll-behavior:auto; scroll-padding-block:8px;
  }
  dialog.aquarium-modal[data-modal-viewport] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { font-size:16px; }
  dialog.fish-detail-dialog[data-modal-viewport] .fish-activity-flyout:not([hidden]) {
    position:fixed; top:calc(var(--modal-viewport-offset) + 8px); bottom:auto;
    left:8px; right:8px; max-height:calc(var(--modal-viewport-height) - 16px);
    display:flex; flex-direction:column; box-sizing:border-box;
  }
  dialog.fish-detail-dialog[data-modal-viewport] .fish-activity-flyout__header { flex:none; }
  dialog.fish-detail-dialog[data-modal-viewport] .fish-activity-flyout form.modal-layout-shell:not([hidden]) {
    flex:0 1 auto; max-height:calc(var(--modal-viewport-height) - 100px);
  }
}
/* Glass cards share the canvas tint; field and image surfaces keep their own fill. */
dialog.aquarium-modal.fish-detail-dialog [data-fish-section] :is(.fish-profile-card,.fish-detail-panel) { background:var(--modal-card); }
dialog.aquarium-modal.fish-detail-dialog [data-fish-section] :is(.fish-detail-facts > div,.ownership-party,.ownership-history__item,.origin-trace-link,.origin-trace-catalog,.fish-pedigree-parent,.fish-grading-components > span,.certificate-version-list > div) { background:var(--modal-card-inset); }
dialog.aquarium-modal.line-summary-profile .line-summary-main { background:var(--modal-card); box-shadow:none; }
dialog.aquarium-modal.line-summary-profile :is(.line-summary-visual,.line-detail-photo,.line-summary-facts) { background:transparent; }
dialog.aquarium-modal.line-summary-profile .line-summary-visual .line-traits { background:transparent; }
dialog.aquarium-modal.line-summary-profile :is(.line-summary-information-heading,.line-summary-facts dl > div,.line-summary-goal,.line-summary-trust,.line-summary-disclosure,.line-summary-edits) { background:var(--modal-card-inset); }
dialog.aquarium-modal.trait-editor fieldset:not(:has([data-selected]:checked)):hover { background:rgba(241,248,243,.76); }
/* High-contrast controls sit above the translucent cards without blurring labels. */
dialog.aquarium-modal :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea):focus:not(.gf-date-field__text):not(.gf-date-field__native) {
  background:rgba(255,254,249,.97); border-color:var(--modal-focus);
  outline:2px solid var(--modal-focus); outline-offset:2px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
dialog.aquarium-modal .gf-date-field { border-radius:8px; }
dialog.aquarium-modal .gf-date-field:focus-within { outline:2px solid var(--modal-focus); outline-offset:2px; }
dialog.aquarium-modal .gf-date-field > input:is(.gf-date-field__text,.gf-date-field__native):focus { outline:none; }
dialog.aquarium-modal .gf-date-field:focus-within > input.gf-date-field__text { border-color:var(--modal-focus); background:rgba(255,254,249,.97); }
dialog.aquarium-modal input[type="file"]::file-selector-button {
  border:1px solid var(--modal-control-border); border-radius:6px; padding:7px 10px;
  background:var(--modal-soft); color:var(--modal-ink); font:inherit; cursor:pointer;
}
dialog.aquarium-modal .media-upload-card .media-upload-actions button:not([type="submit"]) { border:1px solid var(--modal-control-border); border-radius:8px; background:var(--modal-soft); color:#164d58; box-shadow:inset 0 1px 0 rgba(255,255,255,.56); }
dialog.aquarium-modal .fish-activity-flyout form button[type="submit"],
dialog.aquarium-modal .ownership-transfer-form button[type="submit"],
dialog.aquarium-modal.trait-editor button[type="submit"],
dialog.aquarium-modal .media-upload-card .media-upload-actions button[type="submit"] { border-color:#1a5d68; border-radius:8px; background:var(--modal-primary); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.18); }
dialog.aquarium-modal.fish-detail-dialog [data-fish-section] :is(button:disabled,input:disabled,select:disabled,textarea:disabled),
dialog.aquarium-modal :is(.modal-layout-shell,.media-upload-card) :is(button:disabled,input:disabled,select:disabled,textarea:disabled) { border-color:#b7c9c3; background:rgba(233,240,236,.86); color:#617578; opacity:1; box-shadow:none; cursor:not-allowed; }
dialog.aquarium-modal :is(.fish-profile-navigation,.line-summary-tabs) button[aria-selected="true"],
dialog.aquarium-modal .line-summary-edit-navigation button[aria-pressed="true"],
dialog.aquarium-modal :is(.entity-profile-tabs,.fish-activity-tabs) button.is-active { border-color:#4f8d94; background:rgba(209,234,225,.88); color:#164d58; }
dialog.aquarium-modal .gf-date-field > input.gf-date-field__native:disabled { opacity:0; }
/* Gentle action states: color and inset light change without moving the target. */
dialog.aquarium-modal {
  --modal-button-rest:var(--modal-soft);
  --modal-button-hover:rgba(234,248,242,.96);
  --modal-button-pressed:rgba(198,226,215,.96);
  --modal-button-ink:#164d58;
  --modal-button-border:var(--modal-control-border);
  --modal-button-hover-border:#57949b;
  --modal-button-pressed-border:#3b7880;
  --modal-button-hover-filter:brightness(1);
  --modal-button-pressed-filter:brightness(1);
  --modal-button-glow:rgba(255,255,255,.72);
}
dialog.aquarium-modal :is(.button--primary,.primary-button,button[type="submit"]) {
  --modal-button-rest:var(--modal-primary);
  --modal-button-hover:var(--modal-primary);
  --modal-button-pressed:var(--modal-primary);
  --modal-button-ink:#fff;
  --modal-button-border:#1a5d68;
  --modal-button-hover-border:#387f89;
  --modal-button-pressed-border:#164d58;
  --modal-button-hover-filter:brightness(1.07);
  --modal-button-pressed-filter:brightness(.95);
  --modal-button-glow:rgba(255,255,255,.3);
}
dialog.aquarium-modal :is(.button--danger,.passport-danger,.is-danger,.row-action--danger,[data-certificate-action="revoke"],[data-revoke-user-session],[data-revoke-invitation]) {
  --modal-button-rest:rgba(255,240,233,.9);
  --modal-button-hover:rgba(255,235,226,.98);
  --modal-button-pressed:rgba(245,215,203,.98);
  --modal-button-ink:#823c2e;
  --modal-button-border:#b8887b;
  --modal-button-hover-border:#ae7565;
  --modal-button-pressed-border:#985d4f;
  --modal-button-hover-filter:brightness(1);
  --modal-button-pressed-filter:brightness(1);
}
dialog.aquarium-modal :is(.button,.outline-button,.icon-button,.primary-button,.fish-detail-link,.fish-activity-add,.fish-next-step,.fish-profile-share,.passport-danger,[type="submit"],[data-close],[data-certificate-action],[data-revoke-user-session],[data-revoke-invitation],.is-danger,.image-lightbox__close,.trait-editor button,.lifecycle-dialog button,.program-picker button,.program-actions button,.program-pager button,.media-upload-actions button,.user-lifecycle-actions button,footer button,.dialog-actions button,[role="tab"]) {
  transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,box-shadow 140ms ease,filter 140ms ease;
}
@media (hover:hover) and (pointer:fine) {
  dialog.aquarium-modal :is(.button,.outline-button,.icon-button,.primary-button,.fish-detail-link,.fish-activity-add,.fish-next-step,.fish-profile-share,.passport-danger,[type="submit"],[data-close],[data-certificate-action],[data-revoke-user-session],[data-revoke-invitation],.is-danger,.image-lightbox__close,.trait-editor button,.lifecycle-dialog button,.program-picker button,.program-actions button,.program-pager button,.media-upload-actions button,.user-lifecycle-actions button,footer button,.dialog-actions button,[role="tab"]):not(:disabled):not([aria-disabled="true"]):not([aria-selected="true"]):not([aria-pressed="true"]):not(.is-active):hover {
    background:var(--modal-button-hover); border-color:var(--modal-button-hover-border); color:var(--modal-button-ink);
    box-shadow:inset 0 1px 0 var(--modal-button-glow),inset 0 -1px 0 rgba(16,63,75,.08);
    filter:var(--modal-button-hover-filter);
  }
}
/* Touch browsers can retain :hover after a tap; restore the resting surface. */
@media (hover:none), (pointer:coarse) {
  dialog.aquarium-modal :is(.button,.outline-button,.icon-button,.primary-button,.fish-detail-link,.fish-activity-add,.fish-next-step,.fish-profile-share,.passport-danger,[type="submit"],[data-close],[data-certificate-action],[data-revoke-user-session],[data-revoke-invitation],.is-danger,.image-lightbox__close,.trait-editor button,.lifecycle-dialog button,.program-picker button,.program-actions button,.program-pager button,.media-upload-actions button,.user-lifecycle-actions button,footer button,.dialog-actions button,[role="tab"]):not(:disabled):not([aria-disabled="true"]):not([aria-selected="true"]):not([aria-pressed="true"]):not(.is-active):not(:active):not([data-modal-pressed]) {
    background:var(--modal-button-rest); border-color:var(--modal-button-border); color:var(--modal-button-ink); filter:none;
  }
}
dialog.aquarium-modal :is(.button,.outline-button,.icon-button,.primary-button,.fish-detail-link,.fish-activity-add,.fish-next-step,.fish-profile-share,.passport-danger,[type="submit"],[data-close],[data-certificate-action],[data-revoke-user-session],[data-revoke-invitation],.is-danger,.image-lightbox__close,.trait-editor button,.lifecycle-dialog button,.program-picker button,.program-actions button,.program-pager button,.media-upload-actions button,.user-lifecycle-actions button,footer button,.dialog-actions button,[role="tab"]):not(:disabled):not([aria-disabled="true"]):not([aria-selected="true"]):not([aria-pressed="true"]):not(.is-active):is(:active,[data-modal-pressed]) {
  background:var(--modal-button-pressed); border-color:var(--modal-button-pressed-border); color:var(--modal-button-ink);
  box-shadow:inset 0 2px 3px rgba(16,63,75,.18),inset 0 -1px 0 rgba(255,255,255,.26);
  filter:var(--modal-button-pressed-filter);
}
@media (prefers-reduced-motion:reduce) {
  dialog.aquarium-modal :is(button,a),
  dialog.aquarium-modal input[type="file"]::file-selector-button { transition:none !important; }
}
