/* =========================================================
   NESTFLOW V3
   Warm household theme based on NestFlow artwork
   ========================================================= */

:root {
  --nf-cream: #f5e8d2;
  --nf-cream-light: #fff9ef;
  --nf-parchment: #ead7bb;
  --nf-brown: #7c4b2d;
  --nf-brown-dark: #442517;
  --nf-sage: #a9c3be;
  --nf-teal: #759d99;
  --nf-gold: #c69759;
  --nf-text: #372b24;
  --nf-muted: #786c62;
  --nf-success: #729a78;
  --nf-warning: #d69b4a;
  --nf-danger: #c96858;
  --nf-surface: rgba(255, 249, 239, 0.88);
  --nf-surface-strong: rgba(255, 250, 242, 0.97);
  --nf-border: rgba(124, 75, 45, 0.14);
  --nf-shadow: 0 18px 45px rgba(68, 37, 23, 0.14);
  --nf-radius-xl: 30px;
  --nf-radius-lg: 22px;
  --nf-radius-md: 16px;
}

html {
  min-height: 100%;
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--nf-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background-color: var(--nf-cream);
}

button,
input,
textarea,
select {
  font: inherit;
}

.nfv3-background {
  min-height: 100vh;
  background-color: var(--nf-cream);
  background-image:
    linear-gradient(rgba(248, 236, 216, 0.24), rgba(248, 236, 216, 0.34)),
    url("/static/brand/nestflow-bg-desktop.webp");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px));
}

.nfv3-shell {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

.nfv3-content {
  padding-top: 26px;
}

.nfv3-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(124, 75, 45, 0.10);
  background: rgba(255, 249, 239, 0.82);
  backdrop-filter: blur(22px) saturate(130%);
  -webkit-backdrop-filter: blur(22px) saturate(130%);
}

.nfv3-header-inner {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.nfv3-brand {
  display: flex;
  align-items: center;
  gap: 13px;
  color: inherit;
  text-decoration: none;
}

.nfv3-logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
  filter: drop-shadow(0 7px 9px rgba(68, 37, 23, 0.17));
}

.nfv3-brand-copy {
  display: flex;
  flex-direction: column;
}

.nfv3-brand-name {
  color: var(--nf-brown-dark);
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
}

.nfv3-brand-subtitle {
  margin-top: 5px;
  color: var(--nf-muted);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.02em;
}

.nfv3-avatar {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 50%;
  background: linear-gradient(145deg, var(--nf-sage), var(--nf-teal));
  color: white;
  font-size: 15px;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(68, 37, 23, 0.15);
}

.nfv3-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nfv3-panel {
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--nf-radius-xl);
  background: var(--nf-surface);
  box-shadow: var(--nf-shadow);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.nfv3-card {
  border: 1px solid var(--nf-border);
  border-radius: var(--nf-radius-lg);
  background: var(--nf-surface-strong);
  box-shadow: 0 10px 30px rgba(68, 37, 23, 0.08);
}

.nfv3-eyebrow {
  margin: 0 0 7px;
  color: var(--nf-brown);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.nfv3-title {
  margin: 0;
  max-width: 690px;
  color: var(--nf-brown-dark);
  font-size: clamp(30px, 5vw, 46px);
  line-height: 1.04;
  letter-spacing: -0.045em;
}

.nfv3-copy {
  max-width: 680px;
  margin: 12px 0 0;
  color: var(--nf-muted);
  font-size: 15px;
  line-height: 1.62;
}

.nfv3-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 15px;
  padding: 0 18px;
  font: inherit;
  font-weight: 760;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.nfv3-button:hover {
  transform: translateY(-1px);
}

.nfv3-button:active {
  transform: scale(0.97);
}

.nfv3-button-primary {
  color: white;
  background: linear-gradient(145deg, var(--nf-brown), var(--nf-brown-dark));
  box-shadow: 0 8px 18px rgba(68, 37, 23, 0.20);
}

.nfv3-button-soft {
  color: var(--nf-brown-dark);
  border: 1px solid rgba(124, 75, 45, 0.10);
  background: rgba(245, 232, 210, 0.88);
}


/* =========================================================
   HOME
   ========================================================= */

.nfv3-hero {
  min-height: 260px;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(180px, 0.5fr);
  align-items: center;
  gap: 24px;
  overflow: hidden;
  padding: 30px;
}

.nfv3-hero-copy {
  position: relative;
  z-index: 2;
}

.nfv3-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.nfv3-hero-logo-wrap {
  min-height: 190px;
  display: grid;
  place-items: center;
  position: relative;
}

.nfv3-hero-logo-wrap::before {
  content: "";
  position: absolute;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(169, 195, 190, 0.32), rgba(198, 151, 89, 0.08) 56%, transparent 72%);
}

.nfv3-hero-logo {
  position: relative;
  width: min(210px, 100%);
  max-height: 210px;
  object-fit: contain;
  filter: drop-shadow(0 15px 22px rgba(68, 37, 23, 0.17));
}

.nfv3-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.nfv3-summary-card {
  min-height: 92px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 17px;
}

.nfv3-summary-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(234, 215, 187, 0.88), rgba(169, 195, 190, 0.48));
  color: var(--nf-brown-dark);
  font-size: 21px;
  font-weight: 850;
}

.nfv3-summary-value {
  color: var(--nf-brown-dark);
  font-size: 23px;
  font-weight: 850;
  line-height: 1;
}

.nfv3-summary-label {
  margin-top: 5px;
  color: var(--nf-muted);
  font-size: 11px;
  font-weight: 700;
}

.nfv3-section {
  margin-top: 34px;
}

.nfv3-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 15px;
}

.nfv3-section-title {
  margin: 0;
  color: var(--nf-brown-dark);
  font-size: 25px;
  letter-spacing: -0.035em;
}

.nfv3-section-copy {
  margin: 5px 0 0;
  color: var(--nf-muted);
  font-size: 13px;
}

.nfv3-room-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
}

.nfv3-room-card {
  --room-accent: var(--nf-success);
  min-height: 185px;
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.70);
  border-radius: 24px;
  color: inherit;
  text-decoration: none;
  background:
    linear-gradient(155deg, color-mix(in srgb, var(--room-accent) 21%, white), rgba(255, 250, 242, 0.94) 72%);
  box-shadow: 0 12px 30px rgba(68, 37, 23, 0.10);
  transition: transform 0.14s ease, box-shadow 0.14s ease;
}

.nfv3-room-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 17px 34px rgba(68, 37, 23, 0.13);
}

.nfv3-room-card.is-empty {
  --room-accent: var(--nf-sage);
}

.nfv3-room-card.is-good {
  --room-accent: var(--nf-success);
}

.nfv3-room-card.is-upcoming {
  --room-accent: #9eaa68;
}

.nfv3-room-card.is-soon {
  --room-accent: var(--nf-gold);
}

.nfv3-room-card.is-today {
  --room-accent: var(--nf-warning);
}

.nfv3-room-card.is-overdue {
  --room-accent: var(--nf-danger);
}

.nfv3-room-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.nfv3-room-icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 17px;
  background: rgba(255, 250, 242, 0.72);
  font-size: 25px;
  box-shadow: inset 0 0 0 1px rgba(124, 75, 45, 0.08);
}

.nfv3-room-chevron {
  color: rgba(68, 37, 23, 0.46);
  font-size: 30px;
  line-height: 1;
}

.nfv3-room-body {
  flex: 1;
  margin-top: 18px;
}

.nfv3-room-name {
  margin: 0;
  color: var(--nf-brown-dark);
  font-size: 20px;
  letter-spacing: -0.025em;
}

.nfv3-room-count {
  margin: 5px 0 0;
  color: var(--nf-muted);
  font-size: 12px;
  font-weight: 650;
}

.nfv3-room-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 15px;
  border-top: 1px solid rgba(124, 75, 45, 0.09);
  color: var(--nf-muted);
  font-size: 11px;
  font-weight: 720;
}

.nfv3-room-status-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--room-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--room-accent) 14%, transparent);
}

.nfv3-empty-state {
  display: grid;
  place-items: center;
  padding: 38px 24px;
  text-align: center;
}

.nfv3-empty-logo {
  width: 145px;
  height: 145px;
  object-fit: contain;
  filter: drop-shadow(0 12px 18px rgba(68, 37, 23, 0.14));
}

.nfv3-empty-state h3 {
  margin: 8px 0 0;
  color: var(--nf-brown-dark);
  font-size: 24px;
}

.nfv3-empty-state p {
  max-width: 480px;
  margin: 8px 0 20px;
  color: var(--nf-muted);
}

.nfv3-fab {
  position: fixed;
  z-index: 180;
  right: 24px;
  bottom: calc(94px + env(safe-area-inset-bottom, 0px));
  width: 58px;
  height: 58px;
  display: none;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, var(--nf-brown), var(--nf-brown-dark));
  color: white;
  font-size: 28px;
  box-shadow: 0 15px 28px rgba(68, 37, 23, 0.28);
  cursor: pointer;
}


/* =========================================================
   BOTTOM NAV
   ========================================================= */

.nfv3-bottom-nav {
  position: fixed;
  z-index: 200;
  left: 50%;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(calc(100% - 24px), 610px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 25px;
  background: rgba(255, 249, 239, 0.92);
  box-shadow: 0 18px 45px rgba(68, 37, 23, 0.20);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

.nfv3-nav-link {
  min-height: 55px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border-radius: 18px;
  color: #8c786a;
  text-decoration: none;
  font-size: 10px;
  font-weight: 720;
  user-select: none;
}

.nfv3-nav-link-active {
  color: var(--nf-brown-dark);
  background: linear-gradient(145deg, rgba(234, 215, 187, 0.90), rgba(169, 195, 190, 0.60));
}

.nfv3-nav-link-disabled {
  cursor: default;
  opacity: 0.48;
}

.nfv3-nav-icon {
  font-size: 21px;
  line-height: 1;
}


/* =========================================================
   MODAL / FORM
   ========================================================= */

.nfv3-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: none;
  align-items: flex-end;
  justify-content: center;
  padding: 18px;
  background: rgba(48, 32, 24, 0.46);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.nfv3-modal.is-open {
  display: flex;
}

.nfv3-sheet {
  width: min(610px, 100%);
  max-height: min(88vh, 760px);
  overflow-y: auto;
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 30px;
  padding: 12px 24px 24px;
  background: rgba(255, 249, 239, 0.98);
  box-shadow: 0 30px 70px rgba(68, 37, 23, 0.28);
}

.nfv3-sheet-handle {
  width: 45px;
  height: 5px;
  margin: 2px auto 18px;
  border-radius: 100px;
  background: rgba(124, 75, 45, 0.22);
}

.nfv3-sheet-heading h2 {
  margin: 0;
  color: var(--nf-brown-dark);
  font-size: 27px;
  letter-spacing: -0.035em;
}

.nfv3-sheet-heading p:last-child {
  margin: 7px 0 0;
  color: var(--nf-muted);
  line-height: 1.5;
}

.nfv3-form {
  margin-top: 22px;
}

.nfv3-form-grid {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px;
}

.nfv3-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.nfv3-field label {
  color: var(--nf-brown-dark);
  font-size: 12px;
  font-weight: 780;
}

.nfv3-field input,
.nfv3-field textarea,
.nfv3-field select {
  min-height: 48px;
  box-sizing: border-box;
  width: 100%;
  border: 1px solid rgba(124, 75, 45, 0.16);
  border-radius: 15px;
  padding: 0 14px;
  outline: none;
  color: var(--nf-text);
  background: rgba(255, 255, 255, 0.82);
}

.nfv3-field input:focus,
.nfv3-field textarea:focus,
.nfv3-field select:focus {
  border-color: rgba(117, 157, 153, 0.72);
  box-shadow: 0 0 0 4px rgba(169, 195, 190, 0.22);
}

.nfv3-field-icon input {
  text-align: center;
  font-size: 23px;
}

.nfv3-sheet-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {
  .nfv3-room-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nfv3-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .nfv3-background {
    background-image:
      linear-gradient(rgba(248, 236, 216, 0.18), rgba(248, 236, 216, 0.28)),
      url("/static/brand/nestflow-bg-mobile.webp");
    background-position: center top;
    background-attachment: scroll;
  }

  .nfv3-shell {
    width: min(calc(100% - 22px), 680px);
  }

  .nfv3-header-inner {
    min-height: 72px;
  }

  .nfv3-logo {
    width: 54px;
    height: 54px;
  }

  .nfv3-brand-name {
    font-size: 25px;
  }

  .nfv3-content {
    padding-top: 16px;
  }

  .nfv3-hero {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 21px;
  }

  .nfv3-hero-logo-wrap {
    display: none;
  }

  .nfv3-title {
    font-size: clamp(30px, 10vw, 41px);
  }

  .nfv3-copy {
    font-size: 14px;
  }

  .nfv3-desktop-add {
    display: none;
  }

  .nfv3-fab {
    display: grid;
  }

  .nfv3-room-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .nfv3-room-card {
    min-height: 155px;
    padding: 18px;
  }

  .nfv3-section {
    margin-top: 28px;
  }

  .nfv3-modal {
    padding: 10px;
  }

  .nfv3-sheet {
    padding: 10px 17px 20px;
    border-radius: 26px;
  }
}

@media (max-width: 430px) {
  .nfv3-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .nfv3-summary-card {
    min-height: 78px;
    gap: 9px;
    padding: 12px;
  }

  .nfv3-summary-icon {
    width: 38px;
    height: 38px;
    border-radius: 13px;
    font-size: 18px;
  }

  .nfv3-summary-value {
    font-size: 19px;
  }

  .nfv3-summary-label {
    font-size: 9px;
  }

  .nfv3-form-grid {
    grid-template-columns: 86px minmax(0, 1fr);
  }

  .nfv3-bottom-nav {
    width: calc(100% - 18px);
    bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    padding: 6px;
    border-radius: 22px;
  }

  .nfv3-nav-link {
    min-height: 51px;
  }
}


/* =========================================================
   NESTFLOW FUNCTIONAL PAGES / AUTH / TASKS / SETTINGS
   ========================================================= */
.nfv3-auth-page{min-height:100vh;display:grid;place-items:center;padding:28px 16px;background-image:linear-gradient(rgba(248,236,216,.18),rgba(248,236,216,.34)),url('/static/brand/nestflow-bg-desktop.webp');background-size:cover;background-position:center}
.nfv3-auth-card{width:min(460px,100%);box-sizing:border-box;padding:28px;border:1px solid rgba(255,255,255,.78);border-radius:32px;background:rgba(255,249,239,.91);box-shadow:0 25px 70px rgba(68,37,23,.2);backdrop-filter:blur(18px)}
.nfv3-auth-brand{text-align:center}.nfv3-auth-logo{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(68,37,23,.16))}.nfv3-auth-wordmark{font-family:'Brush Script MT','Segoe Script',cursive;color:var(--nf-brown-dark);font-size:34px;font-weight:700;line-height:1}.nfv3-auth-subtitle{margin-top:4px;color:var(--nf-muted);font-size:12px;font-weight:700}.nfv3-auth-copyblock{margin:24px 0 18px}.nfv3-auth-copyblock h1{margin:0;color:var(--nf-brown-dark);font-size:31px;letter-spacing:-.04em}.nfv3-auth-copyblock p:last-child{margin:8px 0 0;color:var(--nf-muted);line-height:1.55}.nfv3-auth-foot{text-align:center;color:var(--nf-muted);font-size:11px;margin:17px 0 0}
.nfv3-page-hero{padding:28px}.nfv3-page-hero .nfv3-copy{max-width:760px}
.nfv3-alert{margin:16px 0;padding:13px 15px;border-radius:15px;font-size:13px;font-weight:700}.nfv3-alert-error{background:#fbe4df;color:#8c392d;border:1px solid #efc2b8}.nfv3-alert-success{background:#e4f0e5;color:#3f6c45;border:1px solid #c6ddc8}
.nfv3-button-full{width:100%;box-sizing:border-box}.nfv3-button-danger{color:#fff;background:linear-gradient(145deg,#c96858,#a9473b)}.nfv3-muted{color:var(--nf-muted);font-weight:500}.nfv3-signout{margin-top:14px}
.nfv3-form{display:flex;flex-direction:column;gap:15px}.nfv3-field{display:flex;flex-direction:column;gap:7px}.nfv3-field label{color:var(--nf-brown-dark);font-size:12px;font-weight:780}.nfv3-field input,.nfv3-field textarea,.nfv3-field select{box-sizing:border-box;width:100%;min-height:48px;border:1px solid rgba(124,75,45,.16);border-radius:15px;padding:0 14px;outline:none;color:var(--nf-text);background:rgba(255,255,255,.84)}.nfv3-field textarea{padding-top:12px;resize:vertical}.nfv3-field input:focus,.nfv3-field textarea:focus,.nfv3-field select:focus{border-color:rgba(117,157,153,.72);box-shadow:0 0 0 4px rgba(169,195,190,.22)}
.nfv3-sheet-heading h2{margin:0;color:var(--nf-brown-dark);font-size:27px;letter-spacing:-.035em}.nfv3-sheet-heading p:last-child{color:var(--nf-muted)}.nfv3-sheet-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:7px}.nfv3-form-grid-equal{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nfv3-check{display:flex;gap:9px;align-items:center;color:var(--nf-muted);font-size:12px}.nfv3-check input{width:auto;min-height:auto}
.nfv3-icon-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-height:270px;overflow:auto;padding:3px}.nfv3-icon-choice{min-width:0;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(124,75,45,.12);border-radius:15px;background:rgba(255,255,255,.68);cursor:pointer;color:var(--nf-text)}.nfv3-icon-choice span{font-size:24px}.nfv3-icon-choice small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:var(--nf-muted)}.nfv3-icon-choice.is-selected{border-color:var(--nf-teal);background:rgba(169,195,190,.34);box-shadow:0 0 0 3px rgba(169,195,190,.18)}.nfv3-icon-grid-compact{max-height:220px}
.nfv3-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nfv3-task-card{padding:18px}.nfv3-task-card-top{display:flex;align-items:flex-start;gap:12px}.nfv3-task-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:16px;background:rgba(245,232,210,.8);font-size:25px}.nfv3-task-main{min-width:0;flex:1}.nfv3-task-main h3{margin:2px 0 0;color:var(--nf-brown-dark);font-size:18px}.nfv3-task-main p{margin:5px 0 0;color:var(--nf-muted);font-size:11px}.nfv3-status-chip{flex:0 0 auto;border-radius:999px;padding:7px 9px;background:rgba(169,195,190,.3);color:var(--nf-brown-dark);font-size:9px;font-weight:800}.nfv3-task-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:15px}.nfv3-task-meta span{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:13px;background:rgba(245,232,210,.48);font-size:11px;font-weight:700}.nfv3-task-meta small{color:var(--nf-muted);font-size:8px;text-transform:uppercase;letter-spacing:.06em}.nfv3-progress{height:6px;margin-top:13px;border-radius:999px;background:rgba(124,75,45,.1);overflow:hidden}.nfv3-progress span{display:block;height:100%;border-radius:inherit}.nfv3-instructions{margin-top:13px;border-top:1px solid rgba(124,75,45,.1);padding-top:11px}.nfv3-instructions summary{cursor:pointer;color:var(--nf-brown-dark);font-size:12px;font-weight:800}.nfv3-instructions div{padding:10px 2px 2px;color:var(--nf-muted);font-size:12px;line-height:1.6}.nfv3-task-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.nfv3-task-actions form{margin:0}.nfv3-empty-mini{padding:20px;color:var(--nf-muted);text-align:center}
.nfv3-history-stats{margin-top:18px}.nfv3-summary-text{font-size:15px}.nfv3-stat-note{margin:12px 2px 0;color:var(--nf-muted);font-size:12px}.nfv3-history-list{display:flex;flex-direction:column;gap:10px}.nfv3-history-item{display:flex;align-items:center;gap:12px;padding:14px}.nfv3-history-icon{width:45px;height:45px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;background:rgba(245,232,210,.76);font-size:22px}.nfv3-history-main{min-width:0;flex:1}.nfv3-history-main h3{margin:0;color:var(--nf-brown-dark);font-size:15px}.nfv3-history-main p,.nfv3-history-main time{display:block;margin:3px 0 0;color:var(--nf-muted);font-size:10px}.nfv3-history-note{margin-top:7px;font-size:11px}.nfv3-icon-button{width:38px;height:38px;border:0;border-radius:12px;background:rgba(245,232,210,.65);cursor:pointer}.nfv3-icon-button.nfv3-danger{color:#a9473b}
.nfv3-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.nfv3-settings-card{padding:22px}.nfv3-settings-card h2{margin:0 0 16px;color:var(--nf-brown-dark)}.nfv3-settings-wide{grid-column:1/-1}.nfv3-card-copy{color:var(--nf-muted);font-size:12px;line-height:1.55}.nfv3-member-list{display:flex;flex-direction:column;gap:9px}.nfv3-member-row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:15px;background:rgba(245,232,210,.45)}.nfv3-member-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--nf-sage);color:#fff;font-weight:800}.nfv3-member-main{min-width:0;flex:1;display:flex;flex-direction:column}.nfv3-member-main strong{font-size:12px}.nfv3-member-main span{color:var(--nf-muted);font-size:9px}.nfv3-you{display:inline-block!important;color:var(--nf-brown)!important}.nfv3-role-form{display:flex;gap:5px}.nfv3-role-form select,.nfv3-role-form button{min-height:32px;border:1px solid rgba(124,75,45,.14);border-radius:9px;background:#fff9ef;font-size:9px}.nfv3-role-pill{font-size:9px;font-weight:800;text-transform:uppercase}.nfv3-add-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.nfv3-add-user-grid .nfv3-button{align-self:end}
.nfv3-room-detail-hero{padding:24px}.nfv3-back-link{display:inline-block;margin-bottom:18px;color:var(--nf-brown);text-decoration:none;font-size:12px;font-weight:800}.nfv3-room-detail-heading{display:flex;align-items:center;gap:17px}.nfv3-room-detail-icon{width:72px;height:72px;display:grid;place-items:center;flex:0 0 auto;border-radius:23px;background:rgba(245,232,210,.75);font-size:36px}.nfv3-room-detail-actions{display:flex;gap:9px;margin-top:19px}
@media(max-width:700px){.nfv3-auth-page{background-image:linear-gradient(rgba(248,236,216,.16),rgba(248,236,216,.27)),url('/static/brand/nestflow-bg-mobile.webp');background-position:center top}.nfv3-auth-card{padding:22px}.nfv3-auth-logo{width:104px;height:104px}.nfv3-task-grid,.nfv3-settings-grid{grid-template-columns:1fr}.nfv3-task-meta{grid-template-columns:1fr 1fr}.nfv3-add-user-grid{grid-template-columns:1fr}.nfv3-icon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.nfv3-room-detail-actions{flex-wrap:wrap}.nfv3-page-hero{padding:21px}}
@media(max-width:430px){.nfv3-icon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nfv3-form-grid-equal{grid-template-columns:1fr}.nfv3-task-meta{grid-template-columns:1fr}.nfv3-history-item{align-items:flex-start}}


/* =========================================================
   NESTFLOW v1.0.2 — precise scheduling / assignment
   ========================================================= */

.nfv3-field-help {
  display: block;
  margin-top: 7px;
  color: var(--nf-muted);
  font-size: 11px;
  line-height: 1.45;
}

.nfv3-time-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.nfv3-time-grid > div {
  min-width: 0;
}

.nfv3-time-grid small {
  display: block;
  margin-bottom: 5px;
  color: var(--nf-muted);
  font-size: 10px;
  font-weight: 750;
}

.nfv3-alert {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 16px;
  padding: 14px 16px;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(68,37,23,.12);
}

.nfv3-alert-error {
  border: 1px solid rgba(176,70,54,.25);
  background: rgba(255,238,231,.96);
  color: #6f2f25;
}

.nfv3-alert div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.nfv3-alert strong {
  font-size: 13px;
}

.nfv3-alert span {
  font-size: 12px;
  line-height: 1.45;
}

.nfv3-alert button {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

/* Highly visible Green -> Yellow -> Orange -> Red urgency timeline. */
.nfv3-timeline-wrap {
  margin-top: 15px;
}

.nfv3-timeline-labels {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin-bottom: 6px;
  color: var(--nf-muted);
  font-size: 8px;
  font-weight: 750;
}

.nfv3-timeline-labels span:nth-child(2),
.nfv3-timeline-labels span:nth-child(3) {
  text-align: center;
}

.nfv3-timeline-labels span:last-child {
  text-align: right;
}

.nfv3-timeline {
  position: relative;
  height: 12px;
  border: 2px solid rgba(255,255,255,.84);
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    #72a67b 0%,
    #8fba70 25%,
    #dfcb55 50%,
    #e99843 74%,
    #c95f52 100%
  );
  box-shadow:
    inset 0 1px 3px rgba(68,37,23,.13),
    0 3px 9px rgba(68,37,23,.08);
}

.nfv3-timeline-marker {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translate(-50%, -50%);
  border: 3px solid #fffaf2;
  border-radius: 50%;
  background: var(--nf-brown-dark);
  box-shadow:
    0 2px 7px rgba(68,37,23,.30),
    0 0 0 1px rgba(68,37,23,.08);
}

@media (max-width: 430px) {
  .nfv3-time-grid {
    gap: 6px;
  }

  .nfv3-timeline-labels {
    font-size: 7px;
  }
}
