/* C12-1D: C11 owns the visual language; this file only adapts the lab controls. */
#unified-main { min-height: 100svh; }
#welcome-screen[hidden], #library-screen[hidden] { display: none !important; }
.offline-welcome-art img { object-fit: contain; }
.lab-note { position: relative; z-index: 1; width: fit-content; max-width: calc(100% - 1.5rem); margin: .45rem auto 0; color: #756b70; font-size: .7rem; text-align: center; }
.offline-preparation-status { width: fit-content; max-width: calc(100% - 2rem); margin: .4rem auto 0; color: #756b70; font-size: .72rem; line-height: 1.35; text-align: center; }
.offline-preparation-status:empty { display: none; }
.readonly-pill { max-width: 52%; text-align: center; }
.offline-library .retry-list { width: 100%; margin: 0 0 .8rem; }
.offline-library .empty-banner { display: flex; }
.offline-library .lab-tools { margin-top: 1.2rem; }
.offline-library .lab-tools > p { color: #756b70; }
.offline-library .generate-package { margin: .35rem .9rem .25rem; width: calc(100% - 1.8rem); }
.offline-library .lab-tools label { display: block; margin: .85rem .9rem .4rem; color: #594750; font-weight: 650; }
.offline-library .lab-tools input[type="file"] { display: block; width: calc(100% - 1.8rem); margin: 0 .9rem .7rem; padding: .55rem; border: 1px solid #d8c8cd; border-radius: .7rem; background: #fffdfc; color: #41363a; font: inherit; font-size: .82rem; }
.offline-library .lab-tools input:focus-visible, .offline-library .lab-tools button:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
.lab-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: .35rem .9rem .75rem; }
.offline-library .lab-actions .lab-action { min-width: 0; min-height: 44px; margin: 0; padding: .55rem .65rem; font-size: .82rem; }
.offline-library .lab-action:disabled, .offline-library .generate-package:disabled { cursor: not-allowed; opacity: .55; }
.package-review { margin: .8rem .9rem 1rem; padding: .9rem; border: 1px solid #ead6df; border-radius: .9rem; background: #fdf8fa; color: #62575a; }
.package-review h2 { margin: 0 0 .5rem; color: #49383f; font: 550 1.15rem Georgia, "Times New Roman", serif; }
.package-review p, .package-review #review-details p { margin: .35rem 0; font-size: .82rem; line-height: 1.45; overflow-wrap: anywhere; }
.package-review strong { color: #563b48; }
.offline-library .storage-state { min-height: 1.2em; }
.offline-library .error-banner[hidden], .retry-list[hidden], .package-review[hidden] { display: none !important; }

@media (max-width: 420px) {
  .lab-actions { grid-template-columns: 1fr; }
  .offline-library .readonly-pill { font-size: .68rem; }
  .offline-library .brand { font-size: .88rem; }
  .offline-preparation-status { font-size: .68rem; }
}

.private-publication { margin: 1.1rem 0; padding: 1rem; border: 1px solid #e5d5dc; border-radius: 1rem; background: #fffafc; color: #594750; }
.private-publication h2, .private-publication h3, .private-publication h4 { color: #49383f; }
.private-publication > p:not(.eyebrow) { line-height: 1.5; }
.private-publication button:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
#private-publication-results article { margin-top: .7rem; padding: .75rem; border: 1px solid #ead6df; border-radius: .75rem; background: #fff; overflow-wrap: anywhere; }
#private-publication-results h3, #private-publication-results h4, #private-publication-results p { margin: .3rem 0; }
#private-publication-results button, .withdrawal-confirmation button, .withdrawal-recovery button { min-height: 44px; margin: .35rem .35rem .2rem 0; padding: .65rem .85rem; border: 1px solid #d89bad; border-radius: .75rem; background: #f7dce6; color: #63364a; font: inherit; font-weight: 650; cursor: pointer; }
#private-publication-results button:hover, .withdrawal-confirmation button:hover, .withdrawal-recovery button:hover { background: #f1cbd9; }
#private-publication-results button:focus-visible, .withdrawal-confirmation button:focus-visible, .withdrawal-recovery button:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
#private-publication-results button:disabled, .withdrawal-confirmation button:disabled, .withdrawal-recovery button:disabled { cursor: wait; opacity: .6; }
.withdrawal-confirmation, .withdrawal-recovery { margin-top: .9rem; padding: .9rem; border: 1px solid #d8a9b8; border-radius: .85rem; background: #fff6f9; }
.withdrawal-confirmation h3, .withdrawal-recovery h3 { margin: 0 0 .45rem; }
.withdrawal-confirmation p, .withdrawal-recovery p { line-height: 1.5; }
.withdrawal-warning { border-color: #b86a80; background: #fff0f3; }
.withdrawal-trip-name { font-weight: 700; overflow-wrap: anywhere; }
.withdrawal-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.withdrawal-confirmation[hidden], .withdrawal-recovery[hidden] { display: none !important; }

.published-trip-detail { display: grid; gap: .8rem; margin-top: .8rem; color: #4c3c43; }
.published-trip-back { justify-self: start; }
.published-trip-summary, .published-trip-section, .published-trip-day, .published-trip-note, .published-trip-contact { padding: .9rem; border: 1px solid #ead6df; border-radius: .85rem; background: #fff; overflow-wrap: anywhere; }
.published-trip-summary { background: #fff6f9; }
.published-trip-title { margin: .2rem 0 .65rem; color: #49383f; font: 600 clamp(1.45rem, 6vw, 2rem) Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.published-trip-eyebrow { margin: 0; color: #8d5a70; font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.published-trip-detail h3 { margin: 0 0 .6rem; color: #49383f; font: 550 1.25rem Georgia, "Times New Roman", serif; }
.published-trip-detail h4 { margin: .2rem 0 .4rem; color: #563b48; font-size: 1rem; }
.published-trip-detail h5 { margin: .15rem 0 .35rem; color: #49383f; font-size: .94rem; }
.published-trip-detail p { margin: .35rem 0; line-height: 1.5; overflow-wrap: anywhere; }
.published-trip-day { margin-top: .65rem; background: #fffdfd; }
.published-trip-activities, .published-trip-budget-items, .published-trip-checklist { margin: .55rem 0 0; padding-inline-start: 1.4rem; }
.published-trip-activity { margin: .55rem 0; padding: .65rem; border-inline-start: 3px solid #d89bad; background: #fff9fb; }
.published-trip-checklist-item { display: flex; gap: .55rem; align-items: flex-start; margin: .45rem 0; }
.published-trip-checklist-mark { flex: 0 0 auto; color: #756b70; font-weight: 800; }
.published-trip-checklist-mark.is-checked { color: #47735b; }
.published-trip-map-link { display: inline-flex; min-height: 44px; align-items: center; color: #63364a; font-weight: 700; text-decoration: underline; text-underline-offset: .15em; }
.published-trip-map-note, .published-trip-empty { color: #756b70; font-size: .82rem; }
.published-trip-detail :focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }

/* C12 visual refinement: keep the approved Atlas palette while separating the two tasks. */
.lab-note { padding: .28rem .7rem; border: 1px solid #eadfd9; border-radius: 999px; background: #fffdfa; }
.offline-preparation-status { min-height: 1.2em; }
.offline-library { padding-bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px)); }
.offline-library .offline-topbar { min-height: 64px; border-bottom-color: rgba(194, 164, 157, .34); }
.offline-library .offline-page { max-width: 700px; padding-top: 1.4rem; padding-bottom: 1rem; }
.offline-library .offline-page-heading { margin-bottom: .35rem; }
.offline-library .offline-page-heading h1 { color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.95rem, 7vw, 2.55rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.12; }
.offline-library .offline-heading-mark { width: 44px; height: 44px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 15px; color: var(--rose-dark); background: var(--rose-pale); font-size: 1.15rem; }
.offline-library .updates-heading-mark { color: var(--blue-dark); background: var(--blue); }
.offline-library .page-intro { margin: .55rem 0 1.2rem; color: var(--muted); line-height: 1.55; }
.offline-library .storage-state { margin: .7rem 0; padding: .65rem .8rem; border: 1px solid #d9e2d3; border-radius: .85rem; color: #52634c; background: #f4f7f0; font-size: .84rem; line-height: 1.45; }
.offline-library .empty-banner { align-items: center; margin: .9rem 0; padding: 1.35rem 1.1rem; border: 1px dashed #d8c7c5; border-radius: 1.15rem; background: rgba(255,253,250,.78); text-align: center; }
#saved-empty[hidden] { display: none !important; }
.offline-library .empty-banner h2, .saved-publication-copies > h2 { margin: 0 0 .4rem; color: var(--ink); font: 550 1.25rem Georgia, "Times New Roman", serif; }
.offline-library .empty-banner p, .section-supporting-copy { max-width: 32rem; margin: 0; color: var(--muted); font-size: .87rem; line-height: 1.5; }
.saved-publication-copies { margin: 1.4rem 0; }
.saved-publication-copies > h2 { margin-bottom: .35rem; }
.section-supporting-copy { margin-bottom: .7rem; }
.c12-bottom-nav { position: fixed; z-index: 10; right: 0; bottom: 0; left: 0; display: flex; justify-content: center; gap: clamp(1.5rem, 12vw, 6rem); padding: .45rem 1rem max(.55rem, env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e7dad6; background: rgba(255,253,250,.97); box-shadow: 0 -8px 24px rgba(83,56,61,.05); backdrop-filter: blur(12px); }
.c12-nav-button { min-width: 112px; min-height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .16rem; padding: .3rem .85rem; border: 0; border-radius: 14px; color: #6f6265; background: transparent; cursor: pointer; font-size: .74rem; font-weight: 650; }
.c12-nav-icon { font-size: 1.2rem; line-height: 1; }
.c12-nav-button.is-active { color: var(--rose-dark); background: #faedf1; }
.c12-nav-button:focus-visible { outline: 3px solid #9a4c69; outline-offset: 2px; }
.publication-trip-card, .saved-publication-card { overflow: hidden; margin-top: .75rem; padding: 0 0 .8rem; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: 0 8px 24px rgba(83,56,61,.07); }
.publication-trip-card::before, .saved-publication-card::before { display: flex; min-height: 83px; align-items: end; padding: .8rem 1rem; color: #fffefa; content: "ATLAS · PUBLICACIÓN SINTÉTICA"; font-size: .66rem; font-weight: 750; letter-spacing: .13em; text-shadow: 0 1px 4px rgba(47,47,39,.3); background: radial-gradient(circle at 82% 15%, rgba(255,255,255,.34) 0 45px, transparent 46px), linear-gradient(135deg, #dce8e3, #b9cdc4 62%, #a6beb4); }
.saved-publication-card::before { content: "COPIA LOCAL · VERIFICADA"; background: radial-gradient(circle at 82% 15%, rgba(255,255,255,.34) 0 45px, transparent 46px), linear-gradient(135deg, #e8dce8, #d7c8dc 60%, #b9a9c4); }
.publication-trip-card > *, .saved-publication-card > * { margin-right: 1rem !important; margin-left: 1rem !important; }
.publication-trip-title { margin-top: .85rem !important; margin-bottom: .35rem !important; color: #49383f; font: 550 1.22rem/1.25 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.publication-trip-dates { margin-top: .45rem !important; color: #65585b; font-size: .84rem; font-variant-numeric: tabular-nums; }
.publication-trip-destination { display: block; margin-bottom: .28rem; color: #705c65; font-size: .88rem; font-weight: 650; font-variant-numeric: normal; overflow-wrap: anywhere; }
.publication-trip-status { display: table; margin-top: .55rem !important; padding: .32rem .65rem; border-radius: 999px; color: #425d42; background: #e7eedf; font-size: .75rem; font-weight: 700; }
.publication-trip-revision { color: #57634e; font-size: .8rem; line-height: 1.45; }
.saved-publication-card > p:nth-of-type(2) { color: #6a6062; font-size: .79rem; line-height: 1.45; }
.publication-trip-card button, .saved-publication-card button { width: calc(100% - 2rem); min-height: 46px; margin-top: .55rem !important; border: 1px solid #d9a6b8; border-radius: .8rem; color: #63364a; background: #f7dce6; font: inherit; font-weight: 700; cursor: pointer; }
.publication-trip-card button:hover, .saved-publication-card button:hover { background: #f1cbd9; }
.publication-trip-card button:focus-visible, .saved-publication-card button:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
.publication-trip-card button:last-child { color: var(--rose-dark); background: #fff9fa; }
.publication-trip-card button:last-child:hover { background: #faedf1; }
.private-publication { margin: .8rem 0 1.3rem; padding: 1.15rem; border-color: #e7d7dc; background: #fffdfd; box-shadow: 0 8px 24px rgba(83,56,61,.05); }
.private-publication > .eyebrow { color: #815568; }
.private-publication > p:not(.eyebrow) { color: #6d6064; font-size: .9rem; }
.private-publication > #query-private-publication { min-height: 48px; padding: .72rem 1rem; border-radius: .9rem; }
.private-publication > #private-publication-status { margin: .75rem 0; color: #62575a; font-size: .85rem; line-height: 1.45; }
.c12-footer { margin: 1.6rem 0 .2rem; padding: 1rem .5rem; border-top: 1px solid rgba(194,164,157,.34); color: #706467; font-size: .75rem; line-height: 1.5; text-align: center; }
.lab-tools { margin-top: 1rem !important; border: 1px solid #e7ddd8; border-radius: .9rem; background: rgba(255,253,250,.65); }
.lab-tools summary { min-height: 44px; padding: .75rem .9rem; color: #68585f; cursor: pointer; font-size: .87rem; font-weight: 650; }
.private-offline-detail { margin: .9rem 0; }
.published-trip-detail { gap: .65rem; }
.published-trip-detail > .published-trip-back { min-height: 44px; padding: .55rem .9rem; border: 1px solid #d9a6b8; border-radius: .75rem; color: var(--rose-dark); background: #fff9fa; font-weight: 700; }
.published-trip-summary { padding: 1.1rem; border-color: #ead6d8; border-radius: 1.1rem; background: linear-gradient(135deg, #f7ece8, #fff7f8 72%, #f2e9ef); }
.published-trip-section { border-color: #e9ddd9; border-radius: 1rem; }
.published-trip-section > h3, .published-trip-collapsible > summary h3 { color: #49383f; font: 550 1.18rem Georgia, "Times New Roman", serif; }
.published-trip-collapsible { padding: 0; overflow: clip; }
.published-trip-collapsible > summary { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .8rem 1rem; color: #49383f; cursor: pointer; list-style: none; }
.published-trip-collapsible > summary::-webkit-details-marker { display: none; }
.published-trip-collapsible > summary h3 { margin: 0; }
.published-trip-disclosure { color: var(--rose-dark); font-size: 1rem; font-weight: 700; transition: transform .15s ease; }
.published-trip-collapsible[open] .published-trip-disclosure { transform: rotate(45deg); }
.published-trip-collapsible[open] > summary { border-bottom: 1px solid #f0e5e1; }
.published-trip-section-content { padding: .8rem; }
.published-trip-collapsible:focus-within > summary { outline: 3px solid #9a536d; outline-offset: -3px; }

@media (min-width: 680px) {
  .c12-bottom-nav { left: 50%; right: auto; width: min(100%, 760px); transform: translateX(-50%); border-right: 1px solid #e7dad6; border-left: 1px solid #e7dad6; border-radius: 16px 16px 0 0; }
  #private-publication-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .85rem; }
  #private-publication-results > h3 { grid-column: 1 / -1; }
}
@media (max-width: 380px) {
  .offline-library .offline-topbar { gap: .5rem; }
  .offline-library .readonly-pill { max-width: 55%; padding: .34rem .5rem; font-size: .65rem; }
  .c12-nav-button { min-width: 100px; }
  .private-publication { padding: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .c12-nav-button, .publication-trip-card button, .saved-publication-card button { scroll-behavior: auto; transition: none; }
}

/* UX-REFINE-01 · segunda iteración editorial para el teléfono. */
.offline-library .offline-page { max-width: 720px; padding-top: 1.55rem; }
.offline-library .page-intro { margin: .7rem 0 1.45rem; font-size: 1rem; line-height: 1.6; }
.offline-library .storage-state { padding: .75rem .9rem; font-size: .9rem; }
.offline-library .trip-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }

.offline-library .snapshot-trip-card {
  position: relative;
  overflow: hidden;
  padding: 0;
  border: 1px solid #e2d8d1;
  border-radius: 1.45rem;
  background: #fffefa;
  box-shadow: 0 14px 32px rgb(69 57 47 / 9%);
}
.offline-library .snapshot-trip-card::before {
  display: block;
  height: 158px;
  content: "";
  background:
    radial-gradient(ellipse at 81% 17%, rgb(255 255 255 / 45%) 0 2.1rem, transparent 2.2rem),
    radial-gradient(ellipse at 93% 82%, rgb(129 155 133 / 28%) 0 4.2rem, transparent 4.3rem),
    radial-gradient(ellipse at 14% 100%, rgb(255 255 255 / 25%) 0 3rem, transparent 3.1rem),
    linear-gradient(132deg, #dbe5d8, #b9cdbd 54%, #a8c0b0);
}
.offline-library .snapshot-trip-card:nth-child(even)::before {
  background:
    radial-gradient(ellipse at 79% 12%, rgb(255 255 255 / 48%) 0 2.4rem, transparent 2.5rem),
    radial-gradient(ellipse at 100% 96%, rgb(132 157 137 / 25%) 0 5rem, transparent 5.1rem),
    linear-gradient(145deg, #e2e8d8, #c2d0bd 57%, #afc4b0);
}
.offline-library .snapshot-trip-card-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: .72rem;
  padding: 1.15rem 1.2rem 1.25rem;
}
.offline-library .snapshot-eyebrow {
  position: absolute;
  top: 1rem;
  left: 1.25rem;
  z-index: 1;
  grid-column: auto;
  color: #3f5548;
  font-size: .73rem;
  letter-spacing: .1em;
  text-shadow: 0 1px 0 rgb(255 255 255 / 55%);
}
.offline-library .snapshot-card-title {
  margin: .05rem 0 .1rem;
  color: #49383f;
  font: 550 clamp(1.55rem, 7vw, 2rem)/1.18 Georgia, "Times New Roman", serif;
  overflow-wrap: anywhere;
}
.offline-library .snapshot-card-destination {
  position: absolute;
  top: 3.65rem;
  left: 1.25rem;
  max-width: calc(100% - 2.5rem);
  margin: 0;
  color: #304638;
  font-size: clamp(1.08rem, 5vw, 1.34rem);
  font-weight: 650;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-shadow: 0 1px 0 rgb(255 255 255 / 55%);
}
.offline-library .snapshot-dates { color: #675c58; font-size: 1rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
.offline-library .snapshot-status { justify-self: start; padding: .38rem .72rem; font-size: .84rem; }
.offline-library .snapshot-offline-status {
  justify-self: start;
  color: #49624f;
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.45;
}
.offline-library .snapshot-offline-status::before { content: "✓ "; font-weight: 800; }
.offline-library .local-copy-provenance { margin: 0; color: #62575a; font-size: .82rem; line-height: 1.45; }
.offline-library .snapshot-trip-card .snapshot-open {
  width: 100%;
  min-height: 50px;
  justify-self: stretch;
  margin-top: .1rem;
  border-radius: .95rem;
  font-size: 1rem;
}

.offline-library .snapshot-detail-hero {
  position: relative;
  overflow: hidden;
  margin: 1.15rem 0;
  padding: 1.4rem 1.2rem;
  border-color: #d9dfd2;
  border-radius: 1.45rem;
  background:
    radial-gradient(ellipse at 91% 10%, rgb(255 255 255 / 62%) 0 2.4rem, transparent 2.5rem),
    radial-gradient(ellipse at 100% 100%, rgb(133 157 135 / 20%) 0 5.5rem, transparent 5.6rem),
    linear-gradient(140deg, #e2e9dc, #f5f3e9 68%, #f8eceb);
  box-shadow: 0 12px 28px rgb(69 57 47 / 7%);
}
.offline-library .snapshot-detail-hero .snapshot-eyebrow { position: static; color: #586d58; text-shadow: none; }
.offline-library .snapshot-detail-hero .snapshot-trip-title { margin: .45rem 0 .7rem; font: 550 clamp(1.8rem, 7vw, 2.4rem)/1.16 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.offline-library .snapshot-detail-hero .snapshot-destination { margin: .8rem 0 0; color: #526c56; font-size: 1.05rem; line-height: 1.45; }
.offline-library .snapshot-section { margin-top: 1rem; padding: 1.1rem; border-color: #e5dcd6; border-radius: 1.15rem; box-shadow: 0 8px 22px rgb(69 57 47 / 5%); }
.offline-library .snapshot-section h2 { margin-bottom: .85rem; color: #49383f; font: 550 1.4rem/1.25 Georgia, "Times New Roman", serif; }
.offline-library .snapshot-day { margin-top: .8rem; padding: 1rem; border: 1px solid #ece3dd; border-radius: 1rem; background: #fffdfa; }
.offline-library .snapshot-day h3 { font-size: 1.08rem; line-height: 1.4; }
.offline-library .snapshot-day-date { color: #74696a; font-size: .95rem; }
.offline-library .snapshot-activities { gap: .75rem; margin-top: .9rem; padding-left: 1.35rem; }
.offline-library .snapshot-activity { padding: .5rem .2rem .5rem .4rem; color: #483e40; font-size: 1rem; line-height: 1.5; }
.offline-library .snapshot-activity-meta, .offline-library .snapshot-place { margin-top: .35rem; font-size: .92rem; line-height: 1.45; }
.offline-library .snapshot-checklist { gap: .7rem; }
.offline-library .snapshot-checklist-item { align-items: flex-start; font-size: 1rem; }
.offline-library .snapshot-back { min-height: 48px; padding-inline: 1rem; }

.offline-library .saved-publication-copies { margin-top: 1.8rem; }
.offline-library .saved-publication-copies > h2 { font-size: 1.45rem; }
.offline-library .section-supporting-copy { font-size: .95rem; line-height: 1.55; }
.offline-library .publication-trip-card,
.offline-library .saved-publication-card {
  --card-inset: 1.15rem;
  position: relative;
  margin-top: 1.15rem;
  padding: 0 var(--card-inset) 1.1rem;
  border-color: #e2d8d1;
  border-radius: 1.4rem;
  box-shadow: 0 13px 30px rgb(69 57 47 / 8%);
}
.offline-library .publication-trip-card::before,
.offline-library .saved-publication-card::before {
  min-height: 148px;
  padding: 1rem 1.15rem;
  content: "ATLAS · PUBLICACIÓN SINTÉTICA";
  color: #304638;
  text-shadow: none;
  background:
    radial-gradient(ellipse at 82% 12%, rgb(255 255 255 / 52%) 0 2.3rem, transparent 2.4rem),
    radial-gradient(ellipse at 100% 95%, rgb(126 153 132 / 25%) 0 5rem, transparent 5.1rem),
    linear-gradient(138deg, #dfe8db, #b8cbb9 58%, #a6bdac);
}
.offline-library .publication-trip-card::before {
  margin-inline: calc(0px - var(--card-inset));
}
.offline-library .saved-publication-card::before {
  content: "COPIA LOCAL · ALMACENADA";
  background:
    radial-gradient(ellipse at 82% 12%, rgb(255 255 255 / 55%) 0 2.3rem, transparent 2.4rem),
    radial-gradient(ellipse at 100% 95%, rgb(161 139 154 / 20%) 0 5rem, transparent 5.1rem),
    linear-gradient(138deg, #e9e1e6, #d3c8d5 58%, #b9afc2);
}
.offline-library .publication-trip-card > *,
.offline-library .saved-publication-card > * { margin-right: 0 !important; margin-left: 0 !important; }
.offline-library .publication-trip-title { margin-top: 1rem !important; margin-bottom: .4rem !important; font: 550 clamp(1.5rem, 6.5vw, 1.9rem)/1.2 Georgia, "Times New Roman", serif; }
.offline-library .publication-trip-dates { margin-top: .45rem !important; color: #665b5a; font-size: 1rem; line-height: 1.5; }
.offline-library .publication-trip-card .publication-trip-destination,
.offline-library .saved-publication-card .publication-trip-destination {
  position: absolute;
  top: 3.5rem;
  left: 1.15rem;
  z-index: 1;
  max-width: calc(100% - 2.3rem);
  margin: 0;
  color: #304638;
  font-size: clamp(1.05rem, 5vw, 1.3rem);
  font-weight: 650;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-shadow: 0 1px 0 rgb(255 255 255 / 55%);
}
.offline-library .publication-trip-status { margin-top: .7rem !important; padding: .4rem .75rem; font-size: .84rem; }
.offline-library .publication-trip-revision { margin-top: 1rem !important; padding: .6rem .75rem; border-radius: .75rem; color: #53634f; background: #f2f6ee; font-size: .9rem; line-height: 1.5; }
.offline-library .saved-publication-card > p:nth-of-type(2) { color: #63585b; font-size: .9rem; line-height: 1.5; }
.offline-library .publication-trip-card button,
.offline-library .saved-publication-card button { width: 100%; min-height: 50px; margin-top: .65rem !important; padding: .72rem 1rem; border-radius: .95rem; font-size: .96rem; }
.offline-library .publication-trip-card .publication-trip-view,
.offline-library .saved-publication-card button:first-of-type { color: #fff; border-color: #8b5268; background: #8b5268; }
.offline-library .publication-trip-card .publication-trip-view:hover,
.offline-library .saved-publication-card button:first-of-type:hover { background: #71364e; }
.offline-library .publication-trip-card .publication-trip-save { color: #63364a; background: #f7e8ed; }
.offline-library .publication-trip-card .publication-trip-withdraw,
.offline-library .publication-trip-card .publication-trip-withdraw:last-child { color: #735c61; border-color: #e5d9dc; background: #fffdfc; }
.offline-library .publication-trip-card .publication-trip-withdraw:hover { background: #fbf1f3; }
.offline-library .private-publication { margin-top: 1.05rem; padding: 1.25rem; border-radius: 1.25rem; }
.offline-library .private-publication > p:not(.eyebrow) { font-size: .96rem; line-height: 1.6; }
.offline-library .private-publication > #query-private-publication { min-height: 50px; font-size: 1rem; }
.offline-library .private-publication > #private-publication-status { font-size: .95rem; }
.offline-library .lab-tools { margin-top: 1.4rem !important; }
.offline-library .lab-tools summary { min-height: 48px; font-size: .92rem; }
.offline-library .c12-footer { font-size: .82rem; }
.offline-library .published-trip-detail { gap: 1rem; margin-top: 1rem; }
.offline-library .published-trip-summary {
  position: relative;
  overflow: hidden;
  padding: 1.35rem 1.2rem;
  border-color: #d9dfd2;
  border-radius: 1.4rem;
  background:
    radial-gradient(ellipse at 91% 10%, rgb(255 255 255 / 62%) 0 2.4rem, transparent 2.5rem),
    radial-gradient(ellipse at 100% 100%, rgb(133 157 135 / 20%) 0 5.5rem, transparent 5.6rem),
    linear-gradient(140deg, #e2e9dc, #f5f3e9 68%, #f8eceb);
  box-shadow: 0 12px 28px rgb(69 57 47 / 7%);
}
.offline-library .published-trip-summary .published-trip-title { margin: .4rem 0 .7rem; font: 550 clamp(1.8rem, 7vw, 2.35rem)/1.16 Georgia, "Times New Roman", serif; }
.offline-library .published-trip-summary .published-trip-destination,
.offline-library .published-trip-summary .published-trip-locality { color: #526c56; font-size: 1rem; font-weight: 650; }
.offline-library .published-trip-summary .published-trip-revision { padding-top: .7rem; border-top: 1px solid rgb(91 113 91 / 20%); color: #625b58; font-size: .9rem; }
.offline-library .published-trip-section { padding: 1.1rem; border-color: #e5dcd6; border-radius: 1.15rem; box-shadow: 0 8px 22px rgb(69 57 47 / 5%); }
.offline-library .published-trip-section > h3,
.offline-library .published-trip-collapsible > summary h3 { font-size: 1.4rem; line-height: 1.25; }
.offline-library .published-trip-day { margin-top: .8rem; padding: 1rem; border-color: #ece3dd; border-radius: 1rem; background: #fffdfa; }
.offline-library .published-trip-day h4 { font-size: 1.1rem; line-height: 1.4; }
.offline-library .published-trip-day-date,
.offline-library .published-trip-activity-meta { color: #74696a; font-size: .94rem; }
.offline-library .published-trip-activity { margin: .7rem 0; padding: .8rem; border-inline-start-width: 4px; border-radius: 0 .8rem .8rem 0; background: #fff8f8; }
.offline-library .published-trip-activity h5 { font-size: 1.02rem; line-height: 1.4; }
.offline-library .published-trip-activity p,
.offline-library .published-trip-place p { font-size: .95rem; line-height: 1.55; }
.offline-library .published-trip-collapsible > summary { min-height: 56px; padding: .9rem 1rem; }
.offline-library .published-trip-collapsible > summary h3 { margin: 0; }
.offline-library .published-trip-section-content { padding: .9rem; }
.offline-library .published-trip-back { min-height: 48px; padding: .65rem 1rem; }
.offline-library .import-error,
.offline-library #import-error { font-size: .9rem; line-height: 1.55; }

@media (max-width: 380px) {
  .offline-library .snapshot-trip-card-body { padding: 1rem; }
  .offline-library .snapshot-trip-card::before { height: 148px; }
  .offline-library .snapshot-card-destination { top: 3.45rem; }
  .offline-library .publication-trip-card,
  .offline-library .saved-publication-card { --card-inset: .95rem; }
  .offline-library .publication-trip-card::before,
  .offline-library .saved-publication-card::before { min-height: 140px; }
  .offline-library .publication-trip-card .publication-trip-destination,
  .offline-library .saved-publication-card .publication-trip-destination { left: .95rem; max-width: calc(100% - 1.9rem); }
  .c12-bottom-nav { gap: 1rem; }
}

.offline-library .wifi-transfer-import { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid #eadfe1; }
.offline-library .wifi-transfer-import h3 { margin: 0 0 .45rem; color: var(--ink); font: 550 1.15rem Georgia, "Times New Roman", serif; }
.offline-library .wifi-transfer-import h2 { margin: 0 0 .55rem; color: var(--ink); font: 550 1.35rem Georgia, "Times New Roman", serif; }
.offline-library .wifi-transfer-import > p { color: #63585b; font-size: .9rem; line-height: 1.5; }
.offline-library .wifi-transfer-import input[type="file"] { display: block; width: calc(100% - 1.8rem); margin: .55rem .9rem .7rem; padding: .55rem; border: 1px solid #d8c8cd; border-radius: .7rem; background: #fffdfc; color: #41363a; font: inherit; font-size: .82rem; }
.offline-library .wifi-transfer-import button { width: 100%; min-height: 48px; margin-top: .55rem; padding: .7rem 1rem; border: 1px solid #d9c9c6; border-radius: .9rem; color: #63364a; background: #f7e8ed; font: inherit; font-weight: 650; cursor: pointer; }
.offline-library .wifi-transfer-import button:disabled { opacity: .55; cursor: not-allowed; }
.offline-library .wifi-transfer-import button:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
.offline-library .wifi-transfer-import [hidden] { display: none !important; }
.offline-library .wifi-transfer-card { margin: .7rem 0; padding: .9rem; border: 1px solid #e5dcd6; border-radius: 1.15rem; background: #fffdfa; box-shadow: 0 8px 22px rgb(69 57 47 / 5%); }
.offline-library .wifi-transfer-card h3 { margin: 0 0 .45rem; }
.offline-library .wifi-transfer-card-summary { margin: 0; color: #41363a; line-height: 1.45; overflow-wrap: anywhere; }
.offline-library .wifi-transfer-card-state { display: inline-flex; margin: .7rem 0; padding: .35rem .65rem; border-radius: 999px; color: #52634c; background: #eef2e8; font-size: .9rem; font-weight: 650; line-height: 1.35; }
.offline-library .wifi-transfer-card-state[data-state="updated"] { color: #684a20; background: #fff5df; }
.offline-library .wifi-transfer-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.offline-library .wifi-transfer-card-actions #wifi-transfer-view-trip { grid-column: 1 / -1; }
.offline-library .wifi-transfer-card-actions button { min-width: 0; min-height: 48px; margin: 0; padding: .65rem .75rem; overflow-wrap: anywhere; }
.offline-library .wifi-transfer-pending-detail { margin-top: .8rem; scroll-margin-block: .75rem calc(6.5rem + env(safe-area-inset-bottom, 0px)); }
.offline-library .wifi-transfer-pending-detail[hidden] { display: none !important; }
.offline-library #wifi-transfer-status[hidden] { display: none !important; }
.offline-library .wifi-qr-camera-frame { box-sizing: border-box; width: min(100%, 420px, 74.666svh); aspect-ratio: 4 / 3; max-height: 320px; margin: .75rem auto .35rem; overflow: hidden; border: 1px solid #40363a; border-radius: 1rem; background: #211b1d; }
.offline-library .wifi-qr-camera-frame[hidden] { display: none !important; }
.offline-library #wifi-qr-video { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; object-position: center; background: #211b1d; }
.offline-library #stop-wifi-qr { position: relative; z-index: 1; min-height: 48px; margin: .25rem 0 .55rem; scroll-margin-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px)); }
.offline-library #wifi-qr-status,
.offline-library #wifi-qr-address,
.offline-library #connect-wifi-transfer { scroll-margin-block: .75rem calc(6.5rem + env(safe-area-inset-bottom, 0px)); }
.offline-library #connect-wifi-transfer { min-height: 48px; margin-top: .35rem; margin-bottom: .45rem; }
.offline-library #wifi-transfer-review-card { scroll-margin-block: .75rem calc(6.5rem + env(safe-area-inset-bottom, 0px)); }
.offline-library #wifi-transfer-review-title:focus { outline: 3px solid #9a536d; outline-offset: 3px; border-radius: .25rem; }
.offline-library .wifi-transfer-import hr { margin: 1.4rem 0; border: 0; border-top: 1px solid #eadfe1; }
.offline-library .wifi-transfer-result { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid #b9d3c5; border-radius: .85rem; color: #244d39; background: #eef8f1; line-height: 1.45; }
.offline-library .wifi-transfer-result[data-outcome="error"] { border-color: #e1b4a7; color: #742f24; background: #fff2ed; }
.offline-library .wifi-transfer-result[data-outcome="pending"] { border-color: #d8c8a1; color: #57461d; background: #fff9e8; }
.offline-library .wifi-transfer-result[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .offline-library * { scroll-behavior: auto; transition-duration: .01ms !important; }
}

/* WIFI-TRIP-UX-01: two focused sections; local copies stay reachable offline. */
.offline-library { padding-bottom: calc(6.6rem + env(safe-area-inset-bottom, 0px)); }
.c12-bottom-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .3rem;
  padding-right: max(.55rem, env(safe-area-inset-right, 0px));
  padding-left: max(.55rem, env(safe-area-inset-left, 0px));
}
.c12-nav-button { width: 100%; min-width: 0; padding-inline: .25rem; font-size: .72rem; white-space: nowrap; }
.copies-heading-mark { color: #526a52; background: #e7eedf; }
.publication-trip-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.publication-trip-list[hidden] { display: none !important; }
.action-status { min-height: 1.4em; margin: .8rem 0; color: #52634c; font-size: .9rem; line-height: 1.5; }
.empty-copy-state { margin: .7rem 0; padding: .85rem; border: 1px dashed #d8c7c5; border-radius: .9rem; background: #fffdfa; color: #62575a; font-size: .9rem; line-height: 1.5; }
.empty-copy-state[hidden] { display: none !important; }
#copies-content[hidden] { display: none !important; }
#published-trips-empty[hidden] { display: none !important; }
#view-published-trips[hidden] { display: none !important; }
.offline-library .snapshot-trip-card .snapshot-delete {
  width: 100%;
  min-height: 46px;
  justify-self: stretch;
  margin-top: .05rem;
  border: 1px solid #d9c9c6;
  border-radius: .9rem;
  color: #66565a;
  background: #fffaf8;
  font: inherit;
  font-size: .9rem;
  font-weight: 650;
  cursor: pointer;
}
.offline-library .snapshot-trip-card .snapshot-delete:hover { background: #f8efeb; }
.offline-library .snapshot-trip-card .snapshot-delete:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
.offline-library .copy-diagnostic { margin: .7rem 0; padding: .8rem 1rem; border: 1px solid #c78b9e; border-radius: .85rem; color: #63364a; background: #fff3f6; line-height: 1.5; }
.offline-library .published-trip-detail > .published-trip-summary { display: grid; gap: .45rem; }
.offline-library .published-trip-back { justify-self: start; min-height: 48px; margin: 0 0 .2rem; padding: .65rem 1rem; border: 1px solid #d89bad; border-radius: .85rem; color: #63364a; background: #f7dce6; font: inherit; font-weight: 700; cursor: pointer; }
.offline-library .published-trip-back:hover { background: #f1cbd9; }
.offline-library .published-trip-back:focus-visible { outline: 3px solid #9a536d; outline-offset: 3px; }
.offline-library .snapshot-detail-hero .snapshot-back { margin-bottom: .65rem; }

@media (min-width: 680px) {
  .c12-bottom-nav { gap: .6rem; }
  .c12-nav-button { max-width: 220px; justify-self: center; }
}
@media (max-width: 340px) {
  .c12-bottom-nav { gap: .1rem; padding-inline: .3rem; }
  .c12-nav-button { font-size: .67rem; }
}
