/* =========================================================
   Large Desktop
   ========================================================= */

@media (min-width: 1400px) {

  .app-shell {
    width: min(1240px, calc(100% - 64px));
  }

  .hero {
    margin-bottom: 64px;
  }

  #shared-text {
    min-height: 500px;
  }
}


/* =========================================================
   Laptop
   ========================================================= */

@media (max-width: 1199px) {

  .app-shell {
    width: min(1000px, calc(100% - 40px));
  }

  .header {
    margin-bottom: 58px;
  }

  .hero h1 {
    font-size: clamp(42px, 6vw, 62px);
  }

  #shared-text {
    min-height: 400px;
  }
}


/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 900px) {

  .app-shell {
    width: calc(100% - 32px);

    padding-top: 22px;
  }

  .header {
    margin-bottom: 48px;
  }

  .hero {
    margin-bottom: 42px;
  }

  .hero p {
    font-size: 15px;
  }

  .room-setup {
    grid-template-columns: 1fr;
  }

  .card {
    padding: 24px;
  }

  .active-room {
    padding: 20px;
  }

  .active-room-header {
    align-items: flex-start;

    flex-direction: column;
  }

  .room-info {
    width: 100%;
  }

  .room-info > div {
    flex: 1;
  }

  #shared-text {
    min-height: 380px;
  }
}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 600px) {

  .app-shell {
    width: calc(100% - 24px);

    padding:
      16px 0 24px;
  }

  .header {
    align-items: flex-start;

    margin-bottom: 42px;
  }

  .security-badge {
    padding:
      7px 10px;

    font-size: 10px;
  }

  .brand-icon {
    width: 38px;
    height: 38px;

    border-radius: 11px;
  }

  .brand-text small {
    font-size: 10px;
  }

  .hero {
    margin-bottom: 34px;
  }

  .eyebrow {
    font-size: 10px;

    padding:
      6px 10px;
  }

  .hero h1 {
    font-size: clamp(38px, 12vw, 52px);

    line-height: 1;

    margin-bottom: 18px;
  }

  .hero p {
    font-size: 13px;

    line-height: 1.7;
  }

  .room-setup {
    gap: 14px;

    margin-bottom: 20px;
  }

  .card {
    padding: 20px;

    border-radius: 20px;
  }

  .card-header {
    margin-bottom: 22px;
  }

  .card-icon {
    width: 40px;
    height: 40px;

    border-radius: 12px;
  }

  .card-title h2 {
    font-size: 16px;
  }

  .card-title p {
    font-size: 11px;
  }

  .input-wrapper input,
  .input-wrapper select {
    height: 50px;
  }

  .primary-button {
    min-height: 50px;
  }

  .active-room {
    padding: 14px;

    border-radius: 21px;
  }

  .active-room-header {
    padding:
      4px 3px 17px;

    margin-bottom: 14px;
  }

  .active-room-header h2 {
    font-size: 21px;
  }

  .room-info {
    display: grid;

    grid-template-columns:
      1fr 1fr;

    gap: 7px;
  }

  .room-info > div {
    min-width: 0;

    padding:
      9px 10px;
  }

  .room-info small {
    font-size: 9px;
  }

  .room-info strong {
    font-size: 11px;
  }

  .shared-editor {
    border-radius: 15px;
  }

  .editor-header {
    padding:
      12px;
  }

  .editor-header > div:first-child span {
    max-width: 170px;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;
  }

  .editor-actions {
    gap: 0;
  }

  .text-button {
    padding:
      6px 8px;

    font-size: 10px;
  }

  #shared-text {
    min-height: 330px;

    padding: 16px;

    font-size: 13px;

    line-height: 1.7;
  }

  .editor-footer {
    padding:
      10px 12px;

    font-size: 9px;
  }

  .editor-footer span:last-child {
    display: none;
  }

  .room-controls {
    margin-top: 10px;
  }

  .secondary-button,
  .danger-button {
    flex: 1;

    min-height: 42px;

    padding:
      0 10px;

    font-size: 10px;
  }

  .footer {
    gap: 10px 18px;

    padding-top: 28px;

    font-size: 9px;
  }
}


/* =========================================================
   Small Mobile
   ========================================================= */

@media (max-width: 400px) {

  .header {
    margin-bottom: 34px;
  }

  .security-badge {
    max-width: 120px;

    text-align: right;
  }

  .hero h1 {
    font-size: 38px;
  }

  .hero p {
    font-size: 12px;
  }

  .card {
    padding: 17px;
  }

  .card-header {
    gap: 10px;
  }

  .step-number {
    font-size: 9px;
  }

  .active-room {
    padding: 10px;
  }

  .room-info {
    grid-template-columns: 1fr;
  }

  #shared-text {
    min-height: 300px;

    padding: 14px;

    font-size: 12px;
  }

  .room-controls {
    flex-direction: column;
  }

  .footer > div:nth-child(2) {
    display: none;
  }
}


/* =========================================================
   Very Small Phones
   ========================================================= */

@media (max-width: 340px) {

  .app-shell {
    width: calc(100% - 16px);
  }

  .brand-text small {
    display: none;
  }

  .security-badge {
    font-size: 9px;
  }

  .hero h1 {
    font-size: 34px;
  }

  .editor-header {
    align-items: flex-start;

    flex-direction: column;
  }

  .editor-actions {
    width: 100%;

    justify-content: flex-end;
  }
}


/* =========================================================
   Landscape Phones
   ========================================================= */

@media (
  max-width: 900px
) and (
  orientation: landscape
) {

  .app-shell {
    padding-top: 14px;
  }

  .header {
    margin-bottom: 28px;
  }

  .hero {
    margin-bottom: 28px;
  }

  #shared-text {
    min-height: 240px;
  }
}


/* =========================================================
   Touch Devices
   ========================================================= */

@media (hover: none) {

  .card:hover {
    transform: none;
  }

  .primary-button:hover {
    transform: none;
  }

  .secondary-button:hover,
  .danger-button:hover {
    transform: none;
  }
}