/* Mobile sheets, account and sign-in. Desktop layouts keep their own rules. */
@media (max-width: 900px) {
  body[data-dd-ui] :is(.project-dialog, .inspiration-dialog, .library-dialog, .info-dialog, .account-dialog, .dd-brief) {
    --dd-mobile-edge: max(8px, env(safe-area-inset-left), env(safe-area-inset-right));
    --dd-mobile-y: max(8px, env(safe-area-inset-top), env(safe-area-inset-bottom));
    box-sizing: border-box;
    width: min(100%, 720px);
    max-width: calc(100vw - var(--dd-mobile-edge) - var(--dd-mobile-edge));
    max-height: calc(100dvh - var(--dd-mobile-y) - var(--dd-mobile-y));
    margin: auto;
    border-radius: 9px;
    overscroll-behavior: contain;
  }

  body[data-dd-ui] :is(.project-dialog, .inspiration-dialog, .library-dialog, .account-dialog)[open] {
    height: min(880px, calc(100dvh - var(--dd-mobile-y) - var(--dd-mobile-y)));
    padding: 52px 0 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  /* A quiet light header keeps the black, transparent close icon readable. */
  body[data-dd-ui] :is(.project-dialog, .inspiration-dialog, .library-dialog, .account-dialog) > .dialog-close,
  body[data-dd-ui] .account-dialog .account-content > .dialog-close {
    position: absolute;
    top: 4px;
    right: 8px;
    z-index: 8;
    margin: 0;
  }

  body[data-dd-ui] :is(.project-dialog-image, .inspiration-stage) {
    flex: 0 0 auto;
    width: 100%;
    min-height: 0;
    height: clamp(150px, 32svh, 300px);
  }

  body[data-dd-ui] :is(.project-dialog-image img, .inspiration-stage canvas) {
    width: 100%;
    height: 100%;
  }

  body[data-dd-ui] :is(.project-dialog-copy, .inspiration-details) {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    align-self: stretch;
    padding: 24px clamp(20px, 5vw, 32px) 28px;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-padding-block: 18px;
  }

  body[data-dd-ui] :is(.project-dialog-copy, .inspiration-details) h2 {
    font-size: clamp(28px, 7vw, 38px);
    line-height: 1.15;
    letter-spacing: -1.2px;
    overflow-wrap: break-word;
    margin: 15px 0 18px;
  }

  body[data-dd-ui] :is(.project-dialog-copy, .inspiration-details) p {
    font-size: 14px;
    line-height: 1.8;
  }

  body[data-dd-ui] :is(.project-dialog-copy, .inspiration-details) .button {
    width: 100%;
    min-height: 48px;
    margin-top: 20px;
    padding: 13px 16px;
    font-size: 13px;
    white-space: normal;
    text-align: left;
  }

  body[data-dd-ui] .inspiration-stage > span {
    left: 16px;
    right: 16px;
    bottom: 14px;
    font-size: 8px;
    line-height: 1.6;
  }

  body[data-dd-ui] .library-dialog[open] {
    padding: 58px 20px 0;
  }

  body[data-dd-ui] .library-dialog > .eyebrow {
    font-size: 10px;
    padding-right: 8px;
  }

  body[data-dd-ui] .library-dialog > h2 {
    font-size: clamp(27px, 6.8vw, 36px);
    line-height: 1.18;
    margin: 12px 0;
    letter-spacing: -1px;
  }

  body[data-dd-ui] .library-dialog > p {
    flex: 0 0 auto;
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.65;
  }

  body[data-dd-ui] .library-dialog > #studio-inspirations {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0 2px 24px;
    scroll-padding-block: 12px;
    -webkit-overflow-scrolling: touch;
  }

  body[data-dd-ui] .library-dialog .inspiration-controls { margin: 18px 0; }
  body[data-dd-ui] .library-dialog .inspiration-controls label { max-width: none; }
  body[data-dd-ui] .library-dialog .inspiration-controls select {
    min-height: 46px;
    font-size: 16px;
  }

  body[data-dd-ui] .info-dialog {
    padding: 12px 24px 28px;
    overflow: auto;
    scroll-padding-block: 54px 20px;
  }

  body[data-dd-ui] .info-dialog > .dialog-close {
    position: sticky;
    top: 0;
    right: auto;
    display: grid;
    margin: -8px -16px 8px auto;
    z-index: 8;
  }

  body[data-dd-ui] .info-dialog > .eyebrow { display: block; font-size: 10px; }
  body[data-dd-ui] .info-dialog h2 { font-size: clamp(32px, 8vw, 44px); line-height: 1.15; }
  body[data-dd-ui] .info-dialog :is(p, li) { font-size: 14px; line-height: 1.8; }
  body[data-dd-ui] .info-dialog p { overflow-wrap: anywhere; }

  /* A bounded form leaves only its body scrolling, keeping exit and next handy. */
  body[data-dd-ui] .dd-brief[open] {
    height: min(900px, calc(100dvh - var(--dd-mobile-y) - var(--dd-mobile-y)));
    padding: 0;
    overflow: hidden;
  }

  body[data-dd-ui] .dd-brief-form { height: 100%; max-height: 100%; min-height: 0; }
  body[data-dd-ui] .dd-brief-header { padding: 20px 20px 16px; }
  body[data-dd-ui] .dd-brief-eyebrow { padding-right: 42px; font-size: 9px; line-height: 1.6; }
  body[data-dd-ui] .dd-brief-header h2 {
    max-width: none;
    padding-right: 42px;
    font-size: clamp(25px, 5vw, 32px);
    line-height: 1.2;
  }

  body[data-dd-ui] .dd-brief-close { top: 12px; right: 10px; }
  body[data-dd-ui] .dd-brief-steps { padding: 0 20px 16px; }
  body[data-dd-ui] .dd-brief-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 20px;
    scroll-padding-block: 16px;
    -webkit-overflow-scrolling: touch;
  }

  body[data-dd-ui] .dd-brief :is(input:not([type=radio]):not([type=checkbox]), select, textarea) {
    font-size: 16px;
    min-height: 46px;
  }

  body[data-dd-ui] .dd-brief .dd-brief-proposal > input { min-height: 0; }
  body[data-dd-ui] .dd-brief-notice { padding: 10px 20px; font-size: 10px; line-height: 1.6; }
  body[data-dd-ui] .dd-brief-footer { padding: 12px 20px; gap: 10px; }
  body[data-dd-ui] :is(.dd-brief-next, .dd-brief-back) {
    min-width: 0;
    min-height: 46px;
    padding: 12px 14px;
    font-size: 12px;
    line-height: 1.5;
    white-space: normal;
  }

  body[data-dd-ui] .dd-brief-next { max-width: 76%; }

  /* The signed-in page and the discovery modal use the same touch-sized tabs. */
  body[data-dd-ui] .account-page { display: block; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .account-sidebar {
    position: relative;
    top: auto;
    height: auto;
    flex: 0 0 auto;
    min-width: 0;
    padding: 14px 16px 10px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-brand {
    grid-column: 1 / -1;
    min-width: 0;
    margin: 0 0 6px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-brand-official {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .logo-plaque { padding: 6px 8px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .logo-plaque .official-logo { width: 68px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .account-brand-official > span:last-child:not(.logo-plaque) {
    min-width: 0;
    max-width: 150px;
    white-space: normal;
    font-size: 9px;
    line-height: 1.8;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-nav {
    min-width: 0;
    width: 100%;
    min-height: 60px;
    margin: 0;
    padding: 8px 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    text-align: center;
    line-height: 1.3;
    font-size: 17px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-nav > span {
    min-width: 0;
    max-width: 100%;
    font-size: 11px;
    white-space: normal;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-nav > span:last-child:not(:first-of-type) { display: none; }
  body[data-dd-ui] .account-dialog :is(.account-sidebar-note, .account-user) { display: none; }
  body[data-dd-ui] .account-page .account-sidebar-note {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    padding: 5px 0 0;
    margin: 0;
  }

  body[data-dd-ui] .account-page .account-sidebar-note a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    margin: 0;
    font-size: 12px;
  }

  body[data-dd-ui] .account-page .account-user { display: none; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .account-content {
    position: static;
    min-width: 0;
    padding: 28px clamp(18px, 5vw, 32px) 36px;
  }

  body[data-dd-ui] .account-dialog .account-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-padding-block: 18px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-content h2 {
    font-size: clamp(29px, 7.3vw, 40px);
    line-height: 1.18;
    margin: 14px 0;
    letter-spacing: -1.1px;
    overflow-wrap: break-word;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .account-content .eyebrow { font-size: 10px; line-height: 1.8; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .account-page-top { display: block; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .account-page-top .button {
    width: 100%;
    min-height: 48px;
    font-size: 13px;
    margin-top: 20px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-projects {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 24px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-project { min-width: 0; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-project h3 { font-size: 22px; overflow-wrap: anywhere; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-project-body { padding: 18px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-project-body p { font-size: 12px; line-height: 1.8; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-project-actions { flex-wrap: wrap; gap: 8px 14px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-project-actions :is(a, button) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 12px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-project-picker { display: block; margin: 24px 0 16px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-project-picker label { display: block; margin-bottom: 9px; font-size: 12px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-project-picker select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 46px;
    font-size: 16px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-head { flex-wrap: wrap; gap: 10px; padding: 14px 12px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-head > div:not(.designer-avatar) { min-width: 0; flex: 1; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-head > .sample-label { margin-left: auto; font-size: 8px; line-height: 1.7; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-messages {
    min-height: 180px;
    max-height: min(430px, 48svh);
    padding: 18px 12px;
    overscroll-behavior: contain;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-bubble { max-width: 94%; font-size: 14px; line-height: 1.75; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-form { align-items: flex-end; gap: 8px; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-form textarea {
    flex: 1 1 auto;
    min-width: 0;
    width: 0;
    min-height: 76px;
    padding: 12px;
    font-size: 16px;
    line-height: 1.6;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-form .button {
    flex: 0 0 46px;
    width: 46px;
    min-width: 46px;
    min-height: 46px;
    padding: 0;
    gap: 0;
    font-size: 20px;
  }

  body[data-dd-ui] :is(.account-page, .account-dialog) .chat-disclaimer { font-size: 11px; line-height: 1.8; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .document-row { flex-wrap: wrap; gap: 12px 18px; padding: 20px 0; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .document-row > div { min-width: 0; flex: 1 1 160px; overflow-wrap: anywhere; }
  body[data-dd-ui] :is(.account-page, .account-dialog) .document-row > :is(a, button) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 12px;
  }

  body[data-dd-ui] .auth-layout { display: block; }
  body[data-dd-ui] .auth-photo { height: 270px; background-position: 50% 55%; }
  body[data-dd-ui] .auth-photo > div { left: max(24px, env(safe-area-inset-left)); right: 24px; bottom: 24px; }
  body[data-dd-ui] .auth-photo span { font-size: 9px; line-height: 1.8; }
  body[data-dd-ui] .auth-photo h1 { font-size: clamp(32px, 7vw, 42px); margin-top: 12px; letter-spacing: -1.3px; }
  body[data-dd-ui] .auth-brand-official { top: max(16px, env(safe-area-inset-top)); left: max(24px, env(safe-area-inset-left)); padding: 7px 9px; }
  body[data-dd-ui] .auth-brand-official .official-logo { width: 82px; }
  body[data-dd-ui] .auth-card {
    max-width: 620px;
    padding: 30px max(24px, env(safe-area-inset-right), env(safe-area-inset-left)) max(40px, env(safe-area-inset-bottom));
  }

  body[data-dd-ui] .auth-card > .text-link { min-height: 44px; font-size: 13px; }
  body[data-dd-ui] .auth-card > .eyebrow { margin-top: 24px; }
  body[data-dd-ui] .auth-card h2 { font-size: clamp(31px, 7.5vw, 39px); line-height: 1.18; overflow-wrap: break-word; }
  body[data-dd-ui] .auth-card input:not([type=checkbox]) { min-height: 48px; font-size: 16px; line-height: 1.5; }
  body[data-dd-ui] .auth-card .remember { min-height: 44px; font-size: 13px; line-height: 1.7; }
  body[data-dd-ui] .auth-card .remember input { flex: 0 0 20px; width: 20px; height: 20px; }
  body[data-dd-ui] .auth-card form > .button { min-height: 50px; padding: 13px 16px; font-size: 14px; white-space: normal; }
  body[data-dd-ui] .auth-links { gap: 8px 22px; margin-top: 18px; }
  body[data-dd-ui] .auth-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
  body[data-dd-ui] .auth-notice { overflow-wrap: anywhere; }
}

@media (max-width: 600px) {
  body[data-dd-ui] :is(.account-page, .account-dialog) .saved-projects { grid-template-columns: minmax(0, 1fr); }
  body[data-dd-ui] .library-dialog .inspiration-grid { grid-template-columns: minmax(0, 1fr); }
  body[data-dd-ui] .library-dialog .inspiration-card img { width: 100%; height: auto; aspect-ratio: 1.7; }
  body[data-dd-ui] .library-dialog .inspiration-card h3 { font-size: 20px; }
  body[data-dd-ui] .library-dialog .inspiration-card > div { padding: 18px; }
  body[data-dd-ui] .library-dialog .inspiration-card > div > span:first-child { font-size: 10px; }
  body[data-dd-ui] .library-dialog .inspiration-card > div > span:last-child { font-size: 12px; }
  body[data-dd-ui] .dd-brief-room-list { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 360px) {
  body[data-dd-ui] .dd-brief-header { padding: 18px 16px 14px; }
  body[data-dd-ui] .dd-brief-header h2 { font-size: 24px; padding-right: 35px; }
  body[data-dd-ui] .dd-brief-steps { padding-inline: 16px; gap: 6px; }
  body[data-dd-ui] .dd-brief-body { padding: 18px 16px; }
  body[data-dd-ui] :is(.dd-brief-notice, .dd-brief-footer) { padding-inline: 16px; }
  body[data-dd-ui] .dd-brief-footer { gap: 8px; }
  body[data-dd-ui] :is(.dd-brief-next, .dd-brief-back) { font-size: 11px; padding-inline: 11px; }
  body[data-dd-ui] .dd-brief-room-fields { grid-template-columns: minmax(0, 1fr); }
  body[data-dd-ui] .dd-brief-terrace-dimensions { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 560px) and (max-width: 900px) and (max-height: 520px) {
  body[data-dd-ui] :is(.project-dialog, .inspiration-dialog)[open] {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
  }

  body[data-dd-ui] :is(.project-dialog-image, .inspiration-stage) { height: 100%; min-height: 0; }
  body[data-dd-ui] :is(.project-dialog-copy, .inspiration-details) { padding: 18px 22px 24px; height: 100%; }
  body[data-dd-ui] :is(.project-dialog-copy, .inspiration-details) h2 { font-size: 28px; margin-top: 12px; }
  body[data-dd-ui] .account-dialog[open] {
    display: grid;
    grid-template-columns: 174px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    padding: 0;
  }

  body[data-dd-ui] .account-dialog .account-sidebar {
    grid-template-columns: minmax(0, 1fr);
    display: flex;
    flex-direction: column;
    gap: 5px;
    height: 100%;
    overflow: auto;
    padding: 12px;
  }

  body[data-dd-ui] .account-dialog .account-brand-official { flex-direction: column; align-items: flex-start; gap: 8px; }
  body[data-dd-ui] .account-dialog .account-nav {
    flex: 0 0 auto;
    flex-direction: row;
    justify-content: flex-start;
    gap: 8px;
    min-height: 44px;
    padding-inline: 10px;
  }

  body[data-dd-ui] .account-dialog .account-content { height: 100%; padding: 56px 24px 24px; }
  body[data-dd-ui] .account-dialog .account-content h2 { font-size: 29px; }
  body[data-dd-ui] .account-dialog .saved-projects { grid-template-columns: minmax(0, 1fr); }
  body[data-dd-ui] .library-dialog[open] { padding-top: 52px; }
  body[data-dd-ui] .library-dialog > .eyebrow { display: none; }
  body[data-dd-ui] .library-dialog > h2 { font-size: 26px; margin: 0 0 8px; }
  body[data-dd-ui] .library-dialog > p { font-size: 12px; margin-bottom: 0; }
  body[data-dd-ui] .library-dialog .inspiration-controls { margin-top: 12px; }
  body[data-dd-ui] .dd-brief-header { padding: 13px 22px 10px; }
  body[data-dd-ui] .dd-brief-eyebrow { display: none; }
  body[data-dd-ui] .dd-brief-header h2 { font-size: 25px; padding-right: 48px; }
  body[data-dd-ui] .dd-brief-close { top: 6px; right: 10px; }
  body[data-dd-ui] .dd-brief-steps { padding: 0 22px 10px; }
  body[data-dd-ui] .dd-brief-steps li { flex-direction: row; align-items: center; font-size: 10px; }
  body[data-dd-ui] .dd-brief-body { padding: 15px 22px; }
  body[data-dd-ui] .dd-brief-notice { padding: 7px 22px; font-size: 10px; line-height: 1.5; }
  body[data-dd-ui] .dd-brief-footer { padding: 8px 22px; }
  body[data-dd-ui] .dd-brief-room-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-dd-ui] .auth-photo { height: 220px; }
}

/* Also compact a narrow portrait sheet when the on-screen keyboard opens. */
@media (max-width: 900px) and (max-height: 520px) {
  body[data-dd-ui] .dd-brief-header { padding: 12px 16px 10px; }
  body[data-dd-ui] .dd-brief-eyebrow { display: none; }
  body[data-dd-ui] .dd-brief-header h2 {
    padding-right: 42px;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: -.7px;
  }

  body[data-dd-ui] .dd-brief-close { top: 3px; right: 8px; }
  body[data-dd-ui] .dd-brief-steps { padding: 0 16px 9px; gap: 7px; }
  body[data-dd-ui] .dd-brief-steps li {
    flex-direction: row;
    align-items: center;
    gap: 6px;
    font-size: 9px;
    line-height: 1.3;
  }

  body[data-dd-ui] .dd-brief-step-number { width: 22px; height: 22px; flex-basis: 22px; }
  body[data-dd-ui] .dd-brief-steps li > span:not(.dd-brief-step-number) { min-width: 0; }
  body[data-dd-ui] .dd-brief-body { padding: 14px 16px; }
  body[data-dd-ui] .dd-brief-notice { padding: 7px 16px; font-size: 10px; line-height: 1.5; }
  body[data-dd-ui] .dd-brief-footer { padding: 8px 16px; gap: 8px; }
}
