:root {
  --nun-green-900: #073b2a;
  --nun-green-700: #0b6b45;
  --nun-gold-500: #c9972e;
  --nun-cream-50: #fffdf7;
  --nun-ink-900: #17211d;
  --nun-ink-600: #5c6862;
  --nun-border: rgba(23, 33, 29, .14);
  --nun-radius-sm: .625rem;
  --nun-radius-md: 1rem;
  --nun-radius-lg: 1.5rem;
  --nun-shadow-sm: 0 8px 24px rgba(7, 59, 42, .08);
  --nun-space-1: .25rem;
  --nun-space-2: .5rem;
  --nun-space-3: .75rem;
  --nun-space-4: 1rem;
  --nun-space-6: 1.5rem;
  --nun-space-8: 2rem;
}
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; }
[hidden] { display: none !important; }
.nun-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
[data-action="save"].is-active, [data-save].is-active, .save-button.is-active,
[data-action="vote"].is-active, [data-vote].is-active { color: var(--nun-green-700); }
.nun-pagination { display: flex; justify-content: center; align-items: center; gap: var(--nun-space-4); margin: var(--nun-space-8) 0; }
.nun-pagination button { min-height: 2.75rem; padding: 0 var(--nun-space-4); border: 1px solid var(--nun-border); border-radius: var(--nun-radius-sm); background: #fff; cursor: pointer; }
.nun-pagination button:disabled { opacity: .45; cursor: not-allowed; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--nun-gold-500) 70%, white); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* DEV-003: shared interaction and responsive consistency */
button,
input,
select,
textarea {
  font: inherit;
}

button,
[role="button"],
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}

button,
[role="button"],
a {
  touch-action: manipulation;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
}

textarea {
  resize: vertical;
}

svg {
  flex-shrink: 0;
}

.nun-pagination {
  flex-wrap: wrap;
}

.nun-pagination [aria-current="page"] {
  border-color: var(--nun-green-700);
  background: var(--nun-green-700);
  color: #fff;
}

@media (max-width: 640px) {
  .nun-pagination {
    gap: var(--nun-space-2);
    margin-block: var(--nun-space-6);
  }

  .nun-pagination button,
  .nun-pagination a {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
}

/* ISSUE-005: cross-browser and mobile regression hardening */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 5rem;
}

body {
  min-width: 20rem;
  overflow-wrap: anywhere;
}

img,
picture,
video,
canvas,
svg {
  height: auto;
}

:focus-visible {
  outline-color: var(--nun-gold-500);
}

@supports (height: 100dvh) {
  .nun-viewport-height { min-height: 100dvh; }
}

@supports not (backdrop-filter: blur(1px)) {
  .nun-glass,
  [data-glass] {
    background-color: rgba(255, 253, 247, .98);
  }
}

@media (max-width: 640px) {
  input,
  select,
  textarea {
    font-size: max(1rem, 16px);
  }

  body {
    overscroll-behavior-x: none;
  }
}


/* ISSUE-026: persistent, high-visibility sell/list launcher */
.nun-list-launcher {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 9997;
  display: grid;
  justify-items: end;
  gap: .75rem;
  font-family: inherit;
}

.nun-list-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 3.35rem;
  padding: .85rem 1.15rem;
  border: 2px solid #0d4a36;
  border-radius: 999px;
  background: #bdf817;
  color: #072e22;
  box-shadow: 0 12px 30px rgba(3, 39, 28, .24);
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  letter-spacing: .04em;
}

.nun-list-trigger:hover,
.nun-list-trigger:focus-visible,
.nun-list-launcher.is-open .nun-list-trigger {
  background: #0d4a36;
  color: #fff;
  transform: translateY(-2px);
}

.nun-list-trigger span {
  font-size: 1.35rem;
  line-height: 1;
}

.nun-list-menu {
  width: min(24rem, calc(100vw - 2rem));
  overflow: hidden;
  border: 1px solid rgba(13, 74, 54, .22);
  border-radius: 1rem;
  background: #fffdf7;
  box-shadow: 0 24px 64px rgba(3, 39, 28, .28);
}

.nun-list-menu[hidden] {
  display: none;
}

.nun-list-menu-head {
  display: grid;
  gap: .25rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid rgba(13, 74, 54, .14);
  background: #f7f7ef;
}

.nun-list-menu-head span {
  color: #507164;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .14em;
}

.nun-list-menu-head strong {
  color: #082f24;
  font-size: 1.05rem;
}

.nun-list-action {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  min-height: 4.25rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid rgba(13, 74, 54, .11);
  color: #082f24;
  text-decoration: none;
  cursor: pointer;
}

.nun-list-action:last-child {
  border-bottom: 0;
}

.nun-list-action:hover,
.nun-list-action:focus-visible {
  background: #efffd0;
}

.nun-list-action-icon {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: .7rem;
  background: #0d4a36;
  color: #fff;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .04em;
}

.nun-list-action > span:nth-child(2) {
  display: grid;
  min-width: 0;
  gap: .15rem;
}

.nun-list-action strong {
  font-size: .96rem;
}

.nun-list-action small {
  color: #5f716a;
  font-size: .78rem;
}

.nun-list-action-arrow {
  font-size: 1.1rem;
  font-weight: 900;
}

@media (max-width: 720px) {
  .nun-list-launcher {
    right: .75rem;
    bottom: calc(4.9rem + env(safe-area-inset-bottom));
  }

  .nun-list-trigger {
    min-height: 3.2rem;
    padding: .8rem 1rem;
  }

  .nun-list-menu {
    width: min(22rem, calc(100vw - 1.5rem));
  }
}


/* ISSUE-029: contextual publishing and quick-action visibility */
.nun-context-publish {
  width: min(1180px, calc(100% - 2rem));
  margin: clamp(1rem, 2vw, 1.75rem) auto;
  padding: clamp(1rem, 2vw, 1.4rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(13, 74, 54, .18);
  border-radius: 1rem;
  background: linear-gradient(100deg, #f6f9e9 0%, #fffdf7 72%);
  box-shadow: 0 12px 32px rgba(5, 58, 42, .08);
}
.nun-context-publish-copy { display: grid; gap: .22rem; min-width: 0; }
.nun-context-publish-copy > span,
.nun-dashboard-actions-head > span {
  color: #4f6f62;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .14em;
}
.nun-context-publish-copy strong { color: #082f24; font-size: clamp(1.08rem, 2vw, 1.35rem); }
.nun-context-publish-copy p { margin: 0; color: #54675f; font-size: .92rem; }
.nun-context-publish-action,
.nun-empty-publish {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 2.85rem;
  padding: .75rem 1rem;
  border: 2px solid #0d4a36;
  border-radius: .75rem;
  background: #bdf817;
  color: #072e22;
  text-decoration: none;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  white-space: nowrap;
  cursor: pointer;
}
.nun-context-publish-action:hover,
.nun-context-publish-action:focus-visible,
.nun-empty-publish:hover,
.nun-empty-publish:focus-visible { background: #0d4a36; color: #fff; }
.nun-empty-publish { margin-top: .8rem; }

.nun-dashboard-actions {
  margin: 0 0 1.25rem;
  padding: 1rem;
  border: 1px solid rgba(13, 74, 54, .16);
  border-radius: 1rem;
  background: #fffdf7;
}
.nun-dashboard-actions-head { display: grid; gap: .2rem; margin-bottom: .8rem; }
.nun-dashboard-actions-head strong { color: #082f24; font-size: 1.12rem; }
.nun-dashboard-actions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.nun-dashboard-actions-grid a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .15rem .6rem;
  align-items: center;
  padding: .9rem 1rem;
  border: 1px solid rgba(13, 74, 54, .18);
  border-radius: .8rem;
  background: #f6f9e9;
  color: #082f24;
  text-decoration: none;
  cursor: pointer;
}
.nun-dashboard-actions-grid a:hover,
.nun-dashboard-actions-grid a:focus-visible { border-color: #0d4a36; transform: translateY(-1px); }
.nun-dashboard-actions-grid strong { font-size: .95rem; }
.nun-dashboard-actions-grid small { grid-column: 1; color: #617168; }
.nun-dashboard-actions-grid a > span { grid-column: 2; grid-row: 1 / span 2; font-size: 1.2rem; }

.nun-publish-shortcuts { display: grid; gap: .2rem; padding: .65rem 0; border-top: 1px solid rgba(13, 74, 54, .12); }
.nun-publish-shortcuts > span { padding: .25rem .75rem; color: #5d746a; font-size: .65rem; font-weight: 900; letter-spacing: .12em; }
.nun-publish-shortcuts > a { padding: .48rem .75rem; color: inherit; text-decoration: none; cursor: pointer; }
.nun-publish-shortcuts > a:hover,
.nun-publish-shortcuts > a:focus-visible { background: rgba(189, 248, 23, .18); }

@media (max-width: 700px) {
  .nun-context-publish { align-items: stretch; flex-direction: column; width: min(100% - 1rem, 1180px); }
  .nun-context-publish-action { width: 100%; }
  .nun-dashboard-actions-grid { grid-template-columns: 1fr; }
}

/* ISSUE-030: shared form reliability */
.nun-required{color:#b42318;font-weight:800}
.nun-field-error{display:block;margin-top:.4rem;color:#b42318;font-size:.78rem;font-weight:700;line-height:1.35}
.nun-field-error[hidden]{display:none}
[aria-invalid="true"]{border-color:#b42318!important;box-shadow:0 0 0 3px rgba(180,35,24,.12)!important}
form[aria-busy="true"]{cursor:progress}
form[aria-busy="true"] button[type="submit"]{cursor:wait;opacity:.78}
.nun-draft-notice{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:1rem 1.1rem;border:1px solid rgba(12,104,67,.25);border-radius:14px;background:#f3fbf6;box-shadow:0 8px 24px rgba(17,24,39,.07)}
.nun-draft-notice>div:first-child{display:grid;gap:.2rem}.nun-draft-notice strong{color:#123d2d}.nun-draft-notice span{color:#52645d;font-size:.84rem}
.nun-draft-actions{display:flex;gap:.55rem;flex-shrink:0}.nun-draft-actions button{min-height:40px;padding:.55rem .85rem;border:1px solid #0c6843;border-radius:10px;background:#fff;color:#0c6843;font:inherit;font-weight:800;cursor:pointer}.nun-draft-actions button:first-child{background:#0c6843;color:#fff}
@media(max-width:640px){.nun-draft-notice{align-items:stretch;flex-direction:column}.nun-draft-actions{width:100%}.nun-draft-actions button{flex:1}}

/* ISSUE-033: shared UX and accessibility polish */
:where(a,button,input,select,textarea,[role="button"],[tabindex]):focus-visible {
  outline: 3px solid #bdf817;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #0d4a36;
}
:where(button,a,[role="button"],summary,label[for],input[type="checkbox"],input[type="radio"],select):not([aria-disabled="true"]):not(:disabled) { cursor: pointer; }
:where(button,[role="button"],[class*="btn"],[class*="button"]) { touch-action: manipulation; }
:where(button,[role="button"],[class*="btn"],[class*="button"]):disabled,
:where(button,[role="button"])[aria-disabled="true"] { cursor: not-allowed; opacity: .58; }
html.nun-dialog-open, html.nun-dialog-open body { overflow: hidden; }
[role="dialog"][aria-modal="true"] { isolation: isolate; }
.nun-image-error {
  min-height: 120px;
  object-fit: contain !important;
  background: linear-gradient(135deg,#f5f1e7,#eef4e7);
  color: transparent;
}
[aria-busy="true"] { cursor: progress; }
[aria-busy="true"] :where(button,a,input,select,textarea) { pointer-events: none; }
.nun-skeleton {
  position: relative;
  overflow: hidden;
  background: #edf1eb;
  color: transparent !important;
  border-color: transparent !important;
}
.nun-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);
  animation: nun-skeleton-sweep 1.35s infinite;
}
@keyframes nun-skeleton-sweep { to { transform: translateX(100%); } }
@media (max-width: 700px) {
  :where(button,[role="button"],input,select,textarea,.nun-empty-publish,.nun-context-publish-action) { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
