:root{--nt-front-accent:#f97316;--nt-front-ink:#111827;--nt-front-muted:#667085;--nt-front-line:#e6e9ee;--nt-front-soft:#f7f8fa;--nt-front-success:#177245;--nt-front-radius:22px;--nt-front-shadow:0 18px 48px rgba(15,23,42,.09);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.nt-front-site{margin:0;color:var(--nt-front-ink);background:#fff;font-family:inherit;-webkit-font-smoothing:antialiased}body.nt-front-site a{color:inherit;text-decoration:none}body.nt-front-site button,body.nt-front-site input,body.nt-front-site select{font:inherit}
.screen-reader-text{position:absolute!important;overflow:hidden;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0)}
.nt-front-shell{min-height:100vh}.nt-front-header{position:sticky;z-index:50;top:0;display:flex;width:min(1180px,calc(100% - 40px));align-items:center;justify-content:space-between;gap:24px;margin:18px auto 0;padding:12px 14px 12px 18px;border:1px solid rgba(230,233,238,.9);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 12px 34px rgba(15,23,42,.08);backdrop-filter:blur(18px)}
.nt-front-brand{display:inline-flex;align-items:center;gap:10px}.nt-front-brand>span{display:grid;width:34px;height:34px;place-items:center;border-radius:11px;color:#fff;background:var(--nt-front-accent);font-weight:900}.nt-front-brand strong{font-size:18px;letter-spacing:-.03em}.nt-front-brand--small>span{width:28px;height:28px;border-radius:9px}
.nt-front-nav{display:flex;align-items:center;gap:22px;color:#344054;font-size:14px;font-weight:650}.nt-front-nav a:hover{color:var(--nt-front-accent)}.nt-front-nav-button{padding:10px 14px;border-radius:11px;color:#fff!important;background:var(--nt-front-ink)}
.nt-front-menu-toggle{display:none;width:42px;height:42px;padding:10px;border:0;border-radius:10px;background:var(--nt-front-soft)}.nt-front-menu-toggle>span:not(.screen-reader-text){display:block;height:2px;margin:4px 0;background:var(--nt-front-ink)}
.nt-front-main,.nt-front-footer{width:min(1180px,calc(100% - 40px));margin:0 auto}
.nt-front-hero{display:grid;min-height:690px;grid-template-columns:1.05fr .95fr;align-items:center;gap:70px;padding:90px 0 76px}
.nt-front-kicker,.nt-front-section-heading>span,.nt-app-card header span,.nt-app-status article>span,.nt-recipe-ingredients header>span,.nt-recipe-steps header>span,.nt-recipe-member-cta>div>span{color:var(--nt-front-accent);font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.nt-front-hero h1,.nt-auth-intro h1,.nt-catalogue-hero h1,.nt-recipe-detail-hero h1,.nt-app-hero h1{max-width:780px;margin:14px 0 20px;font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.065em}
.nt-front-hero-copy>p,.nt-auth-intro>p,.nt-catalogue-hero>p,.nt-app-hero>div>p{max-width:670px;margin:0;color:var(--nt-front-muted);font-size:clamp(17px,2vw,21px);line-height:1.55}
.nt-front-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.nt-front-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:0 20px;border:0;border-radius:13px;cursor:pointer;font-weight:800}.nt-front-button--primary{color:#fff!important;background:var(--nt-front-accent);box-shadow:0 10px 24px rgba(249,115,22,.22)}.nt-front-button--quiet{background:var(--nt-front-soft)}.nt-front-button--light{color:var(--nt-front-ink)!important;background:#fff}
.nt-front-hero-stats{display:flex;flex-wrap:wrap;gap:28px;margin:42px 0 0}.nt-front-hero-stats>div{display:grid;gap:2px}.nt-front-hero-stats dt{font-size:22px;font-weight:900}.nt-front-hero-stats dd{margin:0;color:var(--nt-front-muted);font-size:11px;text-transform:uppercase}
.nt-front-hero-demo{position:relative;padding:18px;border:1px solid var(--nt-front-line);border-radius:28px;background:#fff;box-shadow:var(--nt-front-shadow);transform:rotate(1.2deg)}.nt-front-hero-demo:before{position:absolute;z-index:-1;content:"";inset:-40px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.18),transparent 66%)}
.nt-front-demo-top{display:flex;align-items:center;justify-content:space-between;padding:7px 5px 17px}.nt-front-demo-top span{color:var(--nt-front-muted);font-size:12px}.nt-front-demo-top strong{color:var(--nt-front-success);font-size:12px}
.nt-front-hero-demo article{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:14px;margin-top:8px;padding:16px;border:1px solid var(--nt-front-line);border-radius:16px;background:var(--nt-front-soft)}.nt-front-hero-demo article>span{color:var(--nt-front-muted);font-size:11px}.nt-front-hero-demo article>div{display:grid;gap:3px}.nt-front-hero-demo small{color:var(--nt-front-muted);font-size:9px;font-weight:800;text-transform:uppercase}.nt-front-hero-demo article strong{font-size:14px}.nt-front-hero-demo article b{padding:5px 8px;border-radius:999px;color:#344054;background:#eaecf0;font-size:9px;text-transform:uppercase}.nt-front-hero-demo article b.is-ready,.nt-front-hero-demo article b.is-fridge{color:#166534;background:#dcfce7}.nt-front-hero-demo article b.is-use{color:#b42318;background:#fee4e2}
.nt-front-section{padding:78px 0}.nt-front-section-heading{max-width:700px;margin-bottom:30px}.nt-front-section-heading h2,.nt-front-callout h2,.nt-recipe-member-cta h2{margin:8px 0 0;font-size:clamp(30px,4vw,50px);line-height:1.05;letter-spacing:-.05em}.nt-front-section-heading--row{display:flex;max-width:none;align-items:flex-end;justify-content:space-between;gap:30px}.nt-front-section-heading--row>a{color:var(--nt-front-accent);font-weight:800}
.nt-front-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.nt-front-feature-grid article{min-height:250px;padding:24px;border:1px solid var(--nt-front-line);border-radius:var(--nt-front-radius);background:var(--nt-front-soft)}.nt-front-feature-grid article>span{color:var(--nt-front-accent);font-size:12px;font-weight:900}.nt-front-feature-grid h3{margin:70px 0 9px;font-size:22px;letter-spacing:-.035em}.nt-front-feature-grid p{margin:0;color:var(--nt-front-muted);line-height:1.55}
.nt-front-recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.nt-front-recipe-card{overflow:hidden;border:1px solid var(--nt-front-line);border-radius:var(--nt-front-radius);background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.055)}.nt-front-recipe-card>a{display:block;height:100%}.nt-front-recipe-image{display:grid;aspect-ratio:16/10;place-items:center;overflow:hidden;color:#fff;background:linear-gradient(135deg,var(--nt-front-ink),var(--nt-front-accent));font-size:56px;font-weight:900}.nt-front-recipe-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.nt-front-recipe-card:hover img{transform:scale(1.03)}.nt-front-recipe-card>a>div:last-child{padding:20px}.nt-front-recipe-card small{color:var(--nt-front-accent);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.nt-front-recipe-card h2,.nt-front-recipe-card h3{margin:7px 0 8px;font-size:21px;letter-spacing:-.035em}.nt-front-recipe-card p{margin:0;color:var(--nt-front-muted);line-height:1.5}.nt-front-recipe-card dl{display:flex;gap:22px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--nt-front-line)}.nt-front-recipe-card dl>div{display:grid;gap:2px}.nt-front-recipe-card dt{color:var(--nt-front-muted);font-size:8px;font-weight:800;text-transform:uppercase}.nt-front-recipe-card dd{margin:0;font-size:12px;font-weight:800}
.nt-recipe-tags{display:flex;flex-wrap:wrap;gap:5px}.nt-recipe-tags span{display:inline-flex;padding:4px 7px;border-radius:999px;color:#9a3412;background:#ffedd5;font-size:8px;font-weight:850;text-transform:uppercase}
.nt-front-callout{display:grid;justify-items:start;margin:40px 0 90px;padding:56px;border-radius:30px;color:#fff;background:var(--nt-front-ink)}.nt-front-callout>span{color:#fbbf24;font-size:11px;font-weight:850;text-transform:uppercase}.nt-front-callout h2{max-width:820px;margin-bottom:26px}
.nt-front-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:30px 0 38px;border-top:1px solid var(--nt-front-line);color:var(--nt-front-muted);font-size:12px}.nt-front-footer p{margin:0;text-align:center}.nt-front-footer nav{display:flex;gap:18px}
.nt-auth-layout{display:grid;min-height:calc(100vh - 170px);grid-template-columns:1fr 460px;align-items:center;gap:80px;padding:70px 0}.nt-auth-layout--login{grid-template-columns:1fr 430px}.nt-auth-intro h1{font-size:clamp(44px,6vw,70px)}.nt-auth-intro ul{display:grid;gap:12px;margin:28px 0 0;padding:0;list-style:none}.nt-auth-intro li{position:relative;padding-left:28px;color:#344054}.nt-auth-intro li:before{position:absolute;left:0;content:"✓";color:var(--nt-front-success);font-weight:900}
.nt-auth-card{padding:30px;border:1px solid var(--nt-front-line);border-radius:24px;background:#fff;box-shadow:var(--nt-front-shadow)}.nt-auth-card header h2{margin:0;font-size:28px;letter-spacing:-.04em}.nt-auth-card header p{margin:6px 0 22px;color:var(--nt-front-muted)}.nt-auth-card a{color:var(--nt-front-accent);font-weight:750}.nt-auth-message,.nt-app-notice{margin-bottom:16px;padding:12px 14px;border:1px solid #b7e4ca;border-radius:11px;color:#166534;background:#ecfdf3;font-size:13px}.nt-auth-message.is-error,.nt-app-notice.is-error{border-color:#f3b4ae;color:#b42318;background:#fff4f2}
.nt-auth-form{display:grid;gap:15px}.nt-auth-form>label:not(.nt-auth-check),.nt-profile-form>label{display:grid;gap:6px}.nt-auth-form label>span:first-child,.nt-profile-form label>span{color:#344054;font-size:12px;font-weight:750}.nt-auth-form input[type=text],.nt-auth-form input[type=email],.nt-auth-form input[type=password],.nt-profile-form input{width:100%;min-height:48px;padding:0 13px;border:1px solid #d0d5dd;border-radius:11px;outline:0;background:#fff}.nt-auth-form input:focus,.nt-profile-form input:focus{border-color:var(--nt-front-accent);box-shadow:0 0 0 3px rgba(249,115,22,.14)}.nt-auth-form small{color:var(--nt-front-muted)}.nt-password-field{position:relative;display:block}.nt-password-field button{position:absolute;top:50%;right:8px;padding:6px 8px;border:0;border-radius:7px;color:#475467;background:var(--nt-front-soft);cursor:pointer;transform:translateY(-50%)}.nt-auth-check{display:flex;align-items:flex-start;gap:8px;color:#475467;font-size:12px}.nt-auth-form-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.nt-catalogue-hero{padding:86px 0 56px}.nt-catalogue-hero h1{font-size:clamp(42px,6vw,66px)}.nt-recipe-search{display:grid;max-width:870px;grid-template-columns:1fr 180px auto;gap:8px;margin-top:28px;padding:8px;border:1px solid var(--nt-front-line);border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.06)}.nt-recipe-search input,.nt-recipe-search select{width:100%;min-height:48px;padding:0 13px;border:0;border-radius:10px;outline:0;background:var(--nt-front-soft)}.nt-catalogue{padding-top:0}.nt-catalogue-count{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.nt-catalogue-count a{color:var(--nt-front-accent);font-size:13px;font-weight:750}.nt-pagination{display:flex;justify-content:center;gap:6px;margin-top:28px}.nt-pagination .page-numbers{display:grid;min-width:38px;height:38px;place-items:center;border:1px solid var(--nt-front-line);border-radius:10px}.nt-pagination .current{color:#fff;border-color:var(--nt-front-accent);background:var(--nt-front-accent)}.nt-front-empty{padding:60px 20px;border:1px dashed #d0d5dd;border-radius:18px;text-align:center;background:var(--nt-front-soft)}
.nt-recipe-detail{padding:66px 0 90px}.nt-recipe-back{display:inline-flex;margin-bottom:26px;color:var(--nt-front-accent)!important;font-size:13px;font-weight:800}.nt-recipe-detail-hero{display:grid;grid-template-columns:1fr .78fr;align-items:center;gap:55px}.nt-recipe-detail-hero h1{font-size:clamp(42px,6vw,72px)}.nt-recipe-detail-hero>div:first-child>p{color:var(--nt-front-muted);font-size:19px;line-height:1.5}.nt-recipe-detail-hero dl{display:flex;flex-wrap:wrap;gap:28px;margin:27px 0 0}.nt-recipe-detail-hero dl>div{display:grid;gap:2px}.nt-recipe-detail-hero dt{color:var(--nt-front-muted);font-size:9px;font-weight:800;text-transform:uppercase}.nt-recipe-detail-hero dd{margin:0;font-size:16px;font-weight:850}.nt-recipe-detail-image{display:grid;aspect-ratio:4/3;place-items:center;overflow:hidden;border-radius:26px;color:#fff;background:linear-gradient(135deg,var(--nt-front-ink),var(--nt-front-accent));box-shadow:var(--nt-front-shadow);font-size:80px;font-weight:900}.nt-recipe-detail-image img{width:100%;height:100%;object-fit:cover}.nt-recipe-description{max-width:800px;margin:50px 0;color:#475467;font-size:17px;line-height:1.7}
.nt-recipe-detail-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:18px;align-items:start}.nt-recipe-ingredients,.nt-recipe-steps{padding:25px;border:1px solid var(--nt-front-line);border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.045)}.nt-recipe-ingredients header h2,.nt-recipe-steps header h2{margin:5px 0 18px;font-size:26px}.nt-recipe-ingredients ul,.nt-recipe-steps ol{display:grid;gap:0;margin:0;padding:0;list-style:none}.nt-recipe-ingredients li{display:grid;grid-template-columns:85px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--nt-front-line)}.nt-recipe-ingredients li>strong{color:var(--nt-front-accent)}.nt-recipe-ingredients li>span{display:grid;gap:3px}.nt-recipe-ingredients small{color:var(--nt-front-muted)}.nt-recipe-steps ol{counter-reset:nt-step}.nt-recipe-steps li{position:relative;padding:16px 0 16px 48px;border-top:1px solid var(--nt-front-line);counter-increment:nt-step}.nt-recipe-steps li:before{position:absolute;top:14px;left:0;display:grid;width:32px;height:32px;content:counter(nt-step);place-items:center;border-radius:10px;color:#fff;background:var(--nt-front-ink);font-size:12px;font-weight:900}.nt-recipe-steps li>div{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.nt-recipe-steps li>div>span{flex:0 0 auto;padding:4px 7px;border-radius:999px;color:#9a3412;background:#ffedd5;font-size:9px;font-weight:800}.nt-recipe-steps li p{margin:8px 0 0;color:var(--nt-front-muted);font-size:13px;line-height:1.5}.nt-recipe-member-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:28px;padding:34px;border-radius:24px;color:#fff;background:var(--nt-front-ink)}.nt-recipe-member-cta h2{max-width:720px;font-size:32px}
.nt-app-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:76px 0 36px}.nt-app-hero h1{margin-bottom:12px;font-size:clamp(40px,6vw,66px)}.nt-app-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.nt-app-status article,.nt-app-card{border:1px solid var(--nt-front-line);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.045)}.nt-app-status article{display:grid;gap:4px;padding:18px}.nt-app-status strong{font-size:17px}.nt-app-status small,.nt-app-status a{overflow:hidden;color:var(--nt-front-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.nt-app-status a{color:var(--nt-front-accent);font-weight:750}.nt-app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:80px}.nt-app-card{padding:24px}.nt-app-card--wide{grid-column:1/-1}.nt-app-card header h2{margin:5px 0 0;font-size:25px}.nt-app-card>p{color:var(--nt-front-muted);line-height:1.55}.nt-app-card>a{color:var(--nt-front-accent);font-weight:800}.nt-profile-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;margin-top:20px}.nt-profile-form input:disabled{color:#667085;background:var(--nt-front-soft)}.nt-member-since{margin:14px 0 0;color:var(--nt-front-muted);font-size:11px}.nt-beta-label{display:inline-flex;margin-top:8px;padding:6px 9px;border-radius:999px;color:#9a3412;background:#ffedd5;font-size:9px;text-transform:uppercase}
@media(max-width:950px){.nt-front-hero,.nt-auth-layout,.nt-auth-layout--login,.nt-recipe-detail-hero,.nt-recipe-detail-grid{grid-template-columns:1fr}.nt-front-hero{gap:45px}.nt-front-feature-grid,.nt-front-recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-auth-layout{gap:40px}.nt-profile-form{grid-template-columns:1fr 1fr}.nt-profile-form .nt-front-button{grid-column:1/-1}}
@media(max-width:720px){.nt-front-header{width:calc(100% - 24px);margin-top:10px}.nt-front-menu-toggle{display:block}.nt-front-nav{position:absolute;top:calc(100% + 8px);right:0;left:0;display:none;align-items:stretch;flex-direction:column;gap:5px;padding:12px;border:1px solid var(--nt-front-line);border-radius:14px;background:#fff;box-shadow:var(--nt-front-shadow)}.nt-front-nav.is-open{display:flex}.nt-front-nav a{padding:10px 11px}.nt-front-main,.nt-front-footer{width:calc(100% - 28px)}.nt-front-hero{min-height:auto;padding:70px 0 55px}.nt-front-feature-grid,.nt-front-recipe-grid,.nt-app-status,.nt-app-grid{grid-template-columns:1fr}.nt-front-section-heading--row,.nt-recipe-member-cta,.nt-app-hero{align-items:flex-start;flex-direction:column}.nt-front-callout{padding:34px 25px}.nt-front-footer{grid-template-columns:1fr;justify-items:start}.nt-front-footer p{text-align:left}.nt-recipe-search{grid-template-columns:1fr}.nt-auth-layout{padding:55px 0}.nt-auth-card{padding:22px}.nt-auth-form-row{align-items:flex-start;flex-direction:column}.nt-recipe-detail{padding-top:48px}.nt-recipe-detail-hero dl{gap:20px}.nt-recipe-ingredients,.nt-recipe-steps{padding:20px}.nt-recipe-steps li>div{flex-direction:column}.nt-profile-form{grid-template-columns:1fr}.nt-profile-form .nt-front-button{grid-column:auto}}
@media(max-width:470px){.nt-front-hero-actions,.nt-front-hero-actions .nt-front-button{width:100%}.nt-front-hero-demo article{grid-template-columns:38px 1fr}.nt-front-hero-demo article>b{grid-column:2;justify-self:start}.nt-front-callout{margin-bottom:55px}}

.nt-recipe-detail-figure {
    margin: 0;
}

.nt-recipe-detail-figure figcaption {
    margin-top: 8px;
    color: var(--nt-front-muted);
    font-size: 9px;
    line-height: 1.4;
    text-align: right;
}

.nt-recipe-detail-figure figcaption a {
    color: var(--nt-front-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}


.nt-recipe-storage {
    margin: 26px 0 18px;
    padding: 25px;
    border: 1px solid var(--nt-front-line);
    border-radius: 22px;
    background: var(--nt-front-soft);
}

.nt-recipe-storage > header {
    margin-bottom: 16px;
}

.nt-recipe-storage > header > span {
    color: var(--nt-front-accent);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-recipe-storage > header h2 {
    margin: 5px 0 0;
    font-size: 27px;
    letter-spacing: -.04em;
}

.nt-recipe-storage-grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 12px;
}

.nt-recipe-storage-grid > article {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--nt-front-line);
    border-radius: 16px;
    background: #fff;
}

.nt-recipe-storage-icon {
    display: grid;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    color: #fff;
    background: var(--nt-front-ink);
    font-size: 18px;
    font-weight: 900;
}

.nt-recipe-storage-grid article.is-freezer .nt-recipe-storage-icon {
    background: #2563eb;
}

.nt-recipe-storage-grid article.is-fresh .nt-recipe-storage-icon {
    background: #177245;
}

.nt-recipe-storage-grid article.is-microwave .nt-recipe-storage-icon {
    background: var(--nt-front-accent);
}

.nt-recipe-storage-grid small {
    color: var(--nt-front-muted);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nt-recipe-storage-grid h3 {
    margin: 4px 0 7px;
    font-size: 18px;
    letter-spacing: -.025em;
}

.nt-recipe-storage-grid p {
    margin: 0;
    color: var(--nt-front-muted);
    font-size: 12px;
    line-height: 1.55;
}

.nt-microwave-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
    margin: 12px 0 10px;
    padding: 0;
    list-style: none;
}

.nt-microwave-steps li {
    display: grid;
    min-width: 0;
    gap: 2px;
    padding: 9px;
    border-radius: 10px;
    background: var(--nt-front-soft);
}

.nt-microwave-steps strong {
    color: var(--nt-front-accent);
    font-size: 16px;
    line-height: 1;
}

.nt-microwave-steps span {
    color: #475467;
    font-size: 9px;
    line-height: 1.3;
}

.nt-recipe-storage-grid .nt-microwave-warning {
    color: #9a3412;
    font-weight: 750;
}

@media (max-width: 850px) {
    .nt-recipe-storage-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .nt-recipe-storage {
        padding: 18px;
    }

    .nt-recipe-storage-grid > article {
        padding: 15px;
    }

    .nt-microwave-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


.nt-cupboard-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    padding: 76px 0 32px;
}

.nt-cupboard-hero h1 {
    max-width: 820px;
    margin: 12px 0 15px;
    font-size: clamp(42px, 6vw, 70px);
    line-height: .98;
    letter-spacing: -.06em;
}

.nt-cupboard-hero p {
    max-width: 720px;
    margin: 0;
    color: var(--nt-front-muted);
    font-size: 18px;
    line-height: 1.55;
}

.nt-cupboard-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.nt-cupboard-stats article {
    display: grid;
    gap: 3px;
    padding: 18px;
    border: 1px solid var(--nt-front-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.nt-cupboard-stats strong {
    font-size: 26px;
    letter-spacing: -.04em;
}

.nt-cupboard-stats span {
    color: var(--nt-front-muted);
    font-size: 10px;
    text-transform: uppercase;
}

.nt-cupboard-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 14px;
    align-items: start;
}

.nt-cupboard-panel {
    padding: 24px;
    border: 1px solid var(--nt-front-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.nt-cupboard-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.nt-cupboard-panel > header span,
.nt-cupboard-how > span,
.nt-cupboard-results-heading > div > span {
    color: var(--nt-front-accent);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-cupboard-panel h2,
.nt-cupboard-results-heading h2 {
    margin: 5px 0 0;
    font-size: 27px;
    letter-spacing: -.04em;
}

.nt-text-button,
.nt-cupboard-remove {
    border: 0;
    cursor: pointer;
    background: transparent;
}

.nt-text-button {
    color: #b42318;
    font-size: 11px;
    font-weight: 800;
}

.nt-cupboard-form {
    display: grid;
    gap: 12px;
}

.nt-cupboard-add-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 95px 80px auto;
    gap: 8px;
    align-items: end;
}

.nt-cupboard-add-row label,
.nt-cupboard-bulk label {
    display: grid;
    gap: 5px;
}

.nt-cupboard-add-row label > span,
.nt-cupboard-bulk label > span {
    color: #344054;
    font-size: 10px;
    font-weight: 750;
}

.nt-cupboard-add-row input,
.nt-cupboard-bulk textarea {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 11px;
    outline: 0;
    background: #fff;
}

.nt-cupboard-add-row input:focus,
.nt-cupboard-bulk textarea:focus {
    border-color: var(--nt-front-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--nt-front-accent) 14%, transparent);
}

.nt-cupboard-bulk {
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--nt-front-soft);
}

.nt-cupboard-bulk summary {
    cursor: pointer;
    color: #344054;
    font-size: 11px;
    font-weight: 800;
}

.nt-cupboard-bulk[open] {
    display: grid;
    gap: 10px;
}

.nt-cupboard-bulk textarea {
    margin-top: 10px;
    resize: vertical;
}

.nt-cupboard-note {
    margin: 15px 0 0;
    color: var(--nt-front-muted);
    font-size: 10px;
    line-height: 1.5;
}

.nt-cupboard-empty {
    margin-top: 16px;
    padding: 20px;
    border: 1px dashed #d0d5dd;
    border-radius: 12px;
    text-align: center;
    background: var(--nt-front-soft);
}

.nt-cupboard-empty p {
    margin: 5px 0 0;
    color: var(--nt-front-muted);
}

.nt-cupboard-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 16px;
}

.nt-cupboard-items article {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 10px 10px 12px;
    border: 1px solid var(--nt-front-line);
    border-radius: 11px;
    background: var(--nt-front-soft);
}

.nt-cupboard-items article > div {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.nt-cupboard-items strong {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nt-cupboard-items span {
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-cupboard-remove {
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border-radius: 8px;
    color: #b42318;
    background: #fee4e2;
    font-size: 17px;
}

.nt-cupboard-how {
    position: sticky;
    top: 96px;
    background: var(--nt-front-ink);
    color: #fff;
}

.nt-cupboard-how h2 {
    margin-bottom: 18px;
}

.nt-cupboard-how ol {
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: cupboard-step;
}

.nt-cupboard-how li {
    position: relative;
    padding-left: 37px;
    counter-increment: cupboard-step;
}

.nt-cupboard-how li::before {
    position: absolute;
    left: 0;
    display: grid;
    width: 27px;
    height: 27px;
    content: counter(cupboard-step);
    place-items: center;
    border-radius: 9px;
    color: var(--nt-front-ink);
    background: #fff;
    font-size: 10px;
    font-weight: 900;
}

.nt-cupboard-how p {
    margin: 4px 0 0;
    color: #cbd5e1;
    font-size: 11px;
    line-height: 1.5;
}

.nt-cupboard-results {
    padding: 70px 0 85px;
}

.nt-cupboard-results-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 20px;
}

.nt-cupboard-results-heading nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.nt-cupboard-results-heading nav a {
    padding: 8px 11px;
    border: 1px solid var(--nt-front-line);
    border-radius: 999px;
    color: #475467;
    background: #fff;
    font-size: 10px;
    font-weight: 800;
}

.nt-cupboard-results-heading nav a.is-active {
    color: #fff;
    border-color: var(--nt-front-ink);
    background: var(--nt-front-ink);
}

.nt-cupboard-recipe-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.nt-cupboard-recipe {
    overflow: hidden;
    border: 1px solid var(--nt-front-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}

.nt-cupboard-recipe > a {
    display: block;
    height: 100%;
}

.nt-cupboard-recipe-image {
    position: relative;
    display: grid;
    aspect-ratio: 16 / 9;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(135deg, var(--nt-front-ink), var(--nt-front-accent));
    font-size: 46px;
    font-weight: 900;
}

.nt-cupboard-recipe-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-cupboard-recipe-image > strong {
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 6px 8px;
    border-radius: 999px;
    color: #fff;
    background: rgba(17, 24, 39, .88);
    font-size: 9px;
    text-transform: uppercase;
}

.nt-cupboard-recipe.is-ready .nt-cupboard-recipe-image > strong {
    background: rgba(22, 101, 52, .92);
}

.nt-cupboard-recipe.is-near .nt-cupboard-recipe-image > strong {
    color: #7a2e0e;
    background: rgba(255, 237, 213, .96);
}

.nt-cupboard-recipe-copy {
    padding: 17px;
}

.nt-cupboard-recipe-copy h3 {
    margin: 0 0 6px;
    font-size: 19px;
    letter-spacing: -.03em;
}

.nt-cupboard-recipe-copy > p {
    margin: 0 0 13px;
    color: var(--nt-front-muted);
    font-size: 11px;
}

.nt-cupboard-missing > span {
    color: #b42318;
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
}

.nt-cupboard-missing ul {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
}

.nt-cupboard-missing li {
    padding: 4px 7px;
    border-radius: 999px;
    color: #7a2e0e;
    background: #ffedd5;
    font-size: 8px;
}

.nt-cupboard-complete {
    color: #166534;
    font-size: 10px;
    font-weight: 800;
}

.nt-catalogue-cupboard-link {
    display: flex;
    max-width: 870px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 10px;
    padding: 10px 13px;
    border-radius: 11px;
    color: #475467;
    background: var(--nt-front-soft);
    font-size: 11px;
}

.nt-catalogue-cupboard-link a {
    flex: 0 0 auto;
    color: var(--nt-front-accent);
    font-weight: 800;
}

.nt-front-recipe-image {
    position: relative;
}

.nt-recipe-cupboard-badge {
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 5px 7px;
    border-radius: 999px;
    color: #fff;
    background: rgba(17, 24, 39, .88);
    font-size: 8px;
    text-transform: uppercase;
}

.nt-recipe-cupboard-badge.is-ready {
    background: rgba(22, 101, 52, .92);
}

.nt-recipe-cupboard-badge.is-near {
    color: #7a2e0e;
    background: rgba(255, 237, 213, .96);
}

.nt-recipe-cupboard-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin: 28px 0 0;
    padding: 22px 24px;
    border: 1px solid #b7e4ca;
    border-radius: 18px;
    background: #ecfdf3;
}

.nt-recipe-cupboard-check > div > span {
    color: #177245;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-recipe-cupboard-check h2 {
    margin: 5px 0 6px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.nt-recipe-cupboard-check p {
    max-width: 760px;
    margin: 0;
    color: #3f5f4b;
    font-size: 12px;
    line-height: 1.5;
}

.nt-recipe-cupboard-check ul {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.nt-recipe-cupboard-check li {
    padding: 4px 7px;
    border-radius: 999px;
    color: #7a2e0e;
    background: #ffedd5;
    font-size: 9px;
}

@media (max-width: 980px) {
    .nt-cupboard-layout {
        grid-template-columns: 1fr;
    }

    .nt-cupboard-how {
        position: static;
    }

    .nt-cupboard-recipe-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .nt-cupboard-hero,
    .nt-cupboard-results-heading,
    .nt-recipe-cupboard-check {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-cupboard-stats {
        grid-template-columns: 1fr;
    }

    .nt-cupboard-add-row {
        grid-template-columns: 1fr 1fr;
    }

    .nt-cupboard-add-row label:first-child,
    .nt-cupboard-add-row .nt-front-button {
        grid-column: 1 / -1;
    }

    .nt-cupboard-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .nt-cupboard-recipe-grid,
    .nt-cupboard-items,
    .nt-cupboard-add-row {
        grid-template-columns: 1fr;
    }

    .nt-cupboard-add-row label:first-child,
    .nt-cupboard-add-row .nt-front-button {
        grid-column: auto;
    }

    .nt-catalogue-cupboard-link {
        align-items: flex-start;
        flex-direction: column;
    }
}


.nt-recipe-storage-grid article.is-defrost .nt-recipe-storage-icon {
    background: #2563eb;
}

.nt-defrost-time {
    display: inline-grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    gap: 6px;
    margin: 5px 0 9px;
    padding: 8px 10px;
    border-radius: 10px;
    color: #1e3a8a;
    background: #dbeafe;
}

.nt-defrost-time strong {
    font-size: 21px;
    line-height: 1;
}

.nt-defrost-time span {
    font-size: 10px;
    font-weight: 750;
}

.nt-recipe-storage-grid .nt-freezer-custom-note {
    margin-top: 9px;
    padding: 9px 10px;
    border-left: 3px solid var(--nt-front-accent);
    border-radius: 0 8px 8px 0;
    color: #344054;
    background: var(--nt-front-soft);
    font-weight: 700;
}

.nt-recipe-storage-grid .nt-defrost-warning {
    margin-top: 9px;
    color: #1e40af;
    font-weight: 750;
}


.nt-recipe-storage-grid .nt-freezer-method-title {
    margin: 4px 0 3px;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.045em;
    text-transform: uppercase;
}

.nt-recipe-storage-grid .nt-freezer-method-subtitle {
    margin: 0 0 10px;
    color: var(--nt-front-accent);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
}


.nt-recipe-storage > header .nt-storage-version {
    display: inline-block;
    margin-top: 7px;
    padding: 3px 6px;
    border-radius: 999px;
    color: #475467;
    background: #e4e7ec;
    font-size: 7px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}


/* Smart Plan & Shop */
.nt-workflow-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    padding: 76px 0 32px;
}

.nt-workflow-hero h1 {
    max-width: 900px;
    margin: 12px 0 15px;
    font-size: clamp(42px, 6vw, 70px);
    line-height: .98;
    letter-spacing: -.06em;
}

.nt-workflow-hero p {
    max-width: 760px;
    margin: 0;
    color: var(--nt-front-muted);
    font-size: 18px;
    line-height: 1.55;
}

.nt-workflow-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.nt-workflow-stats article {
    display: grid;
    gap: 3px;
    padding: 18px;
    border: 1px solid var(--nt-front-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.nt-workflow-stats strong {
    font-size: 28px;
    letter-spacing: -.04em;
}

.nt-workflow-stats span {
    color: var(--nt-front-muted);
    font-size: 10px;
    text-transform: uppercase;
}

.nt-workflow-empty {
    margin: 25px 0 80px;
}

.nt-plan-form {
    margin-bottom: 18px;
}

.nt-plan-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.nt-plan-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--nt-front-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}

.nt-plan-card-image {
    display: grid;
    aspect-ratio: 16 / 9;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(135deg, var(--nt-front-ink), var(--nt-front-accent));
    font-size: 48px;
    font-weight: 900;
}

.nt-plan-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-plan-card-copy {
    padding: 18px;
}

.nt-plan-card-copy > span {
    color: var(--nt-front-accent);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nt-plan-card h2 {
    margin: 6px 0 14px;
    font-size: 20px;
    letter-spacing: -.035em;
}

.nt-plan-card label {
    display: grid;
    grid-template-columns: 1fr 80px;
    align-items: center;
    gap: 12px;
}

.nt-plan-card label span {
    color: #475467;
    font-size: 10px;
    font-weight: 750;
}

.nt-plan-card input {
    width: 100%;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
}

.nt-plan-card small {
    display: block;
    margin-top: 8px;
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-plan-inline-remove {
    position: absolute;
    top: 10px;
    right: 10px;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    color: #fff;
    background: rgba(17, 24, 39, .82);
    font-size: 18px;
}

.nt-plan-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 18px;
}

.nt-plan-danger {
    display: flex;
    justify-content: flex-end;
    margin: 15px 0 75px;
}

.nt-recipe-plan-quick {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 7px;
    padding: 0 15px 15px;
}

.nt-recipe-plan-quick label {
    display: grid;
    gap: 3px;
}

.nt-recipe-plan-quick label span {
    color: var(--nt-front-muted);
    font-size: 8px;
    text-transform: uppercase;
}

.nt-recipe-plan-quick input {
    min-height: 38px;
    padding: 7px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
}

.nt-recipe-plan-quick button {
    align-self: end;
    min-height: 38px;
    border: 0;
    border-radius: 9px;
    cursor: pointer;
    color: #fff;
    background: var(--nt-front-ink);
    font-size: 10px;
    font-weight: 800;
}

.nt-recipe-plan-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 28px 0 0;
    padding: 22px 24px;
    border: 1px solid #fed7aa;
    border-radius: 18px;
    background: #fff7ed;
}

.nt-recipe-plan-box > div > span {
    color: var(--nt-front-accent);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-recipe-plan-box h2 {
    margin: 5px 0 6px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.nt-recipe-plan-box p {
    max-width: 700px;
    margin: 0;
    color: #7c4a25;
    font-size: 12px;
    line-height: 1.5;
}

.nt-recipe-plan-box form {
    display: grid;
    grid-template-columns: 90px auto;
    align-items: end;
    gap: 8px;
    flex: 0 0 auto;
}

.nt-recipe-plan-box label {
    display: grid;
    gap: 4px;
}

.nt-recipe-plan-box label span {
    color: #7c4a25;
    font-size: 9px;
    font-weight: 750;
}

.nt-recipe-plan-box input {
    min-height: 43px;
    padding: 8px 10px;
    border: 1px solid #fdba74;
    border-radius: 9px;
}

.nt-shopping-warning {
    margin: 0 0 16px;
    padding: 16px 18px;
    border: 1px solid #fedf89;
    border-radius: 13px;
    color: #7a2e0e;
    background: #fffaeb;
}

.nt-shopping-warning p {
    margin: 4px 0 0;
    font-size: 11px;
}

.nt-shopping-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 18px 0;
}

.nt-shopping-toolbar form {
    margin-left: auto;
}

.nt-shopping-list {
    overflow: hidden;
    margin-bottom: 16px;
    border: 1px solid var(--nt-front-line);
    border-radius: 18px;
    background: #fff;
}

.nt-shopping-list > header,
.nt-shopping-list > article {
    display: grid;
    grid-template-columns: minmax(230px, 1.5fr) repeat(3, minmax(110px, .6fr));
    align-items: center;
    gap: 12px;
}

.nt-shopping-list > header {
    padding: 11px 16px 11px 58px;
    color: var(--nt-front-muted);
    background: var(--nt-front-soft);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.nt-shopping-list > article {
    position: relative;
    padding: 14px 16px 14px 58px;
    border-top: 1px solid var(--nt-front-line);
}

.nt-shopping-list > article.is-enough {
    background: #f6fef9;
}

.nt-shopping-list > article.is-checked {
    opacity: .5;
}

.nt-shopping-list > article.is-checked .nt-shopping-name strong {
    text-decoration: line-through;
}

.nt-shopping-list article > form {
    position: absolute;
    left: 16px;
}

.nt-shopping-check {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 1px solid #98a2b3;
    border-radius: 8px;
    cursor: pointer;
    color: #fff;
    background: #fff;
    font-size: 15px;
    font-weight: 900;
}

.is-checked .nt-shopping-check {
    border-color: #177245;
    background: #177245;
}

.nt-shopping-name {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.nt-shopping-name strong {
    font-size: 13px;
}

.nt-shopping-name small {
    overflow: hidden;
    color: var(--nt-front-muted);
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nt-shopping-name [data-nt-shopping-sync-note] {
    color: #175cd3;
    font-weight: 750;
    white-space: normal;
}

.nt-shopping-name [data-nt-shopping-sync-note][data-state="offline"] {
    color: #8a4b08;
}

.nt-shopping-name [data-nt-shopping-sync-note][data-state="attention"] {
    color: #b42318;
    white-space: normal;
}

.nt-shopping-list article > span {
    color: #475467;
    font-size: 11px;
}

.nt-shopping-list article > strong {
    color: var(--nt-front-accent);
    font-size: 12px;
}

.nt-shopping-list article.is-enough > strong {
    color: #177245;
}

.nt-shopping-boundary {
    margin: 0 0 75px;
    color: var(--nt-front-muted);
    font-size: 10px;
    line-height: 1.5;
}

@media (max-width: 980px) {
    .nt-plan-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nt-shopping-list {
        overflow-x: auto;
    }

    .nt-shopping-list > header,
    .nt-shopping-list > article {
        min-width: 760px;
    }
}

@media (max-width: 760px) {
    .nt-workflow-hero,
    .nt-recipe-plan-box {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-workflow-stats {
        grid-template-columns: 1fr;
    }

    .nt-recipe-plan-box form {
        width: 100%;
        grid-template-columns: 85px 1fr;
    }
}

@media (max-width: 560px) {
    .nt-plan-grid {
        grid-template-columns: 1fr;
    }

    .nt-plan-actions,
    .nt-shopping-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .nt-shopping-toolbar form {
        margin-left: 0;
    }
}

@media print {
    .nt-front-header,
    .nt-front-footer,
    .nt-workflow-hero,
    .nt-workflow-stats,
    .nt-shopping-toolbar,
    .nt-shopping-boundary {
        display: none !important;
    }

    .nt-shopping-list {
        border: 0;
    }

    .nt-shopping-list > article {
        break-inside: avoid;
    }
}


/* Cook, Deduct & Stock */
.nt-plan-cook-button {
    width: 100%;
    min-height: 42px;
    margin-top: 14px;
    padding: 9px 11px;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
    color: #fff;
    background: #177245;
    font-size: 10px;
    font-weight: 850;
}

.nt-cook-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
    padding: 20px 22px;
    border: 1px solid #abefc6;
    border-radius: 16px;
    background: #ecfdf3;
}

.nt-cook-result > div > span {
    color: #177245;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nt-cook-result h2 {
    margin: 5px 0;
    font-size: 23px;
    letter-spacing: -.04em;
}

.nt-cook-result p {
    margin: 0;
    color: #3f5f4b;
    font-size: 11px;
}

.nt-freezer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding-bottom: 80px;
}

.nt-freezer-card {
    overflow: hidden;
    border: 1px solid var(--nt-front-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}

.nt-freezer-card-image {
    display: grid;
    aspect-ratio: 16 / 9;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(135deg, #0f4c5c, #177245);
    font-size: 45px;
}

.nt-freezer-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-freezer-card-copy {
    padding: 18px;
}

.nt-freezer-card-copy > span {
    color: #177245;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.nt-freezer-card h2 {
    margin: 5px 0 12px;
    font-size: 21px;
    letter-spacing: -.04em;
}

.nt-freezer-portions {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    margin-bottom: 10px;
    padding: 7px 10px;
    border-radius: 10px;
    color: #14532d;
    background: #dcfce7;
}

.nt-freezer-portions strong {
    font-size: 23px;
}

.nt-freezer-portions span {
    font-size: 10px;
    font-weight: 800;
}

.nt-freezer-card p {
    margin: 0 0 7px;
    color: #475467;
    font-size: 11px;
}

.nt-freezer-card small {
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-freezer-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 16px;
}

@media (max-width: 980px) {
    .nt-freezer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .nt-cook-result,
    .nt-freezer-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-freezer-grid {
        grid-template-columns: 1fr;
    }
}


.nt-cook-issues {
    margin-top: 10px;
    color: #475467;
    font-size: 10px;
}

.nt-cook-issues summary {
    cursor: pointer;
    color: #177245;
    font-weight: 800;
}

.nt-cook-issues ul {
    margin: 8px 0 0;
    padding-left: 18px;
}


/* Shop, stock and undo */
.nt-restock-result {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 20px;
    padding: 20px 22px;
    border: 1px solid #a6f4c5;
    border-radius: 16px;
    background: #ecfdf3;
}

.nt-restock-result > div > span {
    color: #067647;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.nt-restock-result h2 {
    margin: 5px 0 9px;
    font-size: 23px;
    letter-spacing: -.04em;
}

.nt-restock-result ul {
    margin: 8px 0;
    padding-left: 18px;
    color: #344054;
    font-size: 11px;
}

.nt-restock-result details {
    margin-top: 10px;
    color: #7a2e0e;
    font-size: 10px;
}

.nt-shopping-list--stock > header,
.nt-shopping-list--stock > article {
    grid-template-columns:
        minmax(210px, 1.25fr)
        minmax(105px, .55fr)
        minmax(150px, .75fr)
        minmax(105px, .55fr)
        minmax(180px, .85fr);
}

.nt-shopping-list--stock > header {
    padding-left: 58px;
}

.nt-shopping-list--stock > article {
    padding-left: 58px;
}

.nt-shopping-check-wrap {
    position: absolute;
    left: 16px;
    display: grid;
    cursor: pointer;
}

.nt-shopping-check-wrap input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.nt-shopping-check-wrap input:focus-visible + .nt-shopping-check {
    outline: 3px solid rgba(230, 108, 37, .25);
    outline-offset: 2px;
}

.nt-shopping-check-wrap input:checked + .nt-shopping-check {
    border-color: #177245;
    color: #fff;
    background: #177245;
}

.nt-shopping-check-wrap input:disabled + .nt-shopping-check {
    border-color: #d0d5dd;
    color: #98a2b3;
    background: #f2f4f7;
    cursor: not-allowed;
}

.nt-shopping-bought {
    display: grid;
    grid-template-columns: minmax(70px, 1fr) minmax(62px, .75fr);
    gap: 6px;
}

.nt-shopping-bought input {
    min-width: 0;
    min-height: 38px;
    padding: 7px 8px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #fff;
    font-size: 11px;
}

.nt-shopping-bought input:disabled {
    color: #98a2b3;
    background: #f2f4f7;
}

.nt-shopping-stock-form .nt-shopping-toolbar {
    flex-wrap: wrap;
}

.nt-shopping-stock-form .nt-shopping-toolbar
.nt-front-button--primary {
    margin-left: auto;
}

@media (max-width: 1100px) {
    .nt-shopping-list--stock > header,
    .nt-shopping-list--stock > article {
        min-width: 980px;
    }
}

@media (max-width: 760px) {
    .nt-restock-result {
        flex-direction: column;
    }

    .nt-shopping-stock-form .nt-shopping-toolbar
    .nt-front-button--primary {
        margin-left: 0;
    }
}

@media print {
    .nt-shopping-bought,
    .nt-shopping-check-wrap {
        display: none !important;
    }
}


/* Weekly autopilot */
.nt-autoplan-panel {
    margin: 0 0 22px;
    padding: 24px;
    border: 1px solid #fed7aa;
    border-radius: 20px;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(230, 108, 37, .13),
            transparent 34%
        ),
        #fffaf5;
    box-shadow: 0 16px 44px rgba(93, 45, 13, .07);
}

.nt-autoplan-panel > header span,
.nt-autoplan-result > div > span {
    color: var(--nt-front-accent);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-autoplan-panel h2 {
    margin: 5px 0 7px;
    font-size: 28px;
    letter-spacing: -.045em;
}

.nt-autoplan-panel header p {
    max-width: 800px;
    margin: 0 0 18px;
    color: #7c4a25;
    font-size: 12px;
    line-height: 1.55;
}

.nt-autoplan-form {
    display: grid;
    grid-template-columns:
        minmax(110px, .55fr)
        minmax(110px, .55fr)
        repeat(3, minmax(160px, 1fr))
        auto;
    align-items: end;
    gap: 11px;
}

.nt-autoplan-form > label {
    display: grid;
    gap: 5px;
}

.nt-autoplan-form > label > span {
    color: #7c4a25;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.nt-autoplan-form input[type="number"],
.nt-autoplan-form select {
    width: 100%;
    min-height: 43px;
    padding: 9px 10px;
    border: 1px solid #fdba74;
    border-radius: 10px;
    background: #fff;
}

.nt-autoplan-checks {
    display: grid;
    grid-column: 1 / -2;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.nt-autoplan-checks label {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 9px;
    padding: 11px 12px;
    border: 1px solid #fed7aa;
    border-radius: 11px;
    background: rgba(255, 255, 255, .74);
}

.nt-autoplan-checks input {
    margin-top: 3px;
}

.nt-autoplan-checks span {
    display: grid;
    gap: 2px;
}

.nt-autoplan-checks strong {
    color: #7c2d12;
    font-size: 10px;
}

.nt-autoplan-checks small {
    color: #9a5b37;
    font-size: 8px;
}

.nt-autoplan-result {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    margin: 0 0 20px;
    padding: 20px 22px;
    border: 1px solid #a6f4c5;
    border-radius: 18px;
    background: #ecfdf3;
}

.nt-autoplan-result h2 {
    margin: 5px 0 12px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.nt-autoplan-picks {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.nt-autoplan-picks article {
    display: grid;
    gap: 3px;
    padding: 10px 11px;
    border: 1px solid #abefc6;
    border-radius: 10px;
    background: rgba(255, 255, 255, .7);
}

.nt-autoplan-picks strong {
    font-size: 11px;
}

.nt-autoplan-picks span {
    color: #067647;
    font-size: 9px;
    font-weight: 750;
}

.nt-autoplan-picks small {
    color: #475467;
    font-size: 8px;
    line-height: 1.4;
}

@media (max-width: 1120px) {
    .nt-autoplan-form {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .nt-autoplan-checks {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .nt-autoplan-form,
    .nt-autoplan-checks,
    .nt-autoplan-picks {
        grid-template-columns: 1fr;
    }

    .nt-autoplan-result {
        flex-direction: column;
    }
}

@media print {
    .nt-autoplan-panel,
    .nt-autoplan-result {
        display: none !important;
    }
}


/* Eat Next and freezer rotation */
.nt-front-button-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nt-app-card--eat {
    border-color: #c7d7fe;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(53, 94, 252, .12),
            transparent 42%
        ),
        #f8faff;
}

.nt-app-card--eat small {
    display: block;
    margin: -4px 0 12px;
    color: #3655c5;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.nt-eat-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 18px 21px;
    border: 1px solid #a6f4c5;
    border-radius: 16px;
    background: #ecfdf3;
}

.nt-eat-result span,
.nt-eat-suggestion-copy > span,
.nt-eat-queue header span {
    color: #3655c5;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-eat-result h2 {
    margin: 4px 0 0;
    font-size: 21px;
    letter-spacing: -.035em;
}

.nt-eat-suggestion {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(360px, 1.1fr);
    overflow: hidden;
    margin-bottom: 22px;
    border: 1px solid #c7d7fe;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 22px 58px rgba(39, 63, 133, .13);
}

.nt-eat-suggestion-image {
    display: grid;
    min-height: 410px;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(145deg, #1d2939, #3655c5);
    font-size: 72px;
}

.nt-eat-suggestion-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-eat-suggestion-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(28px, 5vw, 56px);
}

.nt-eat-suggestion-copy h2 {
    margin: 8px 0 18px;
    font-size: clamp(38px, 5vw, 60px);
    line-height: .98;
    letter-spacing: -.06em;
}

.nt-eat-suggestion-copy h2 a {
    color: inherit;
    text-decoration: none;
}

.nt-eat-method {
    margin-bottom: 15px;
    padding: 15px 17px;
    border: 1px solid #c7d7fe;
    border-radius: 14px;
    background: #f5f7ff;
}

.nt-eat-method strong {
    display: block;
    margin-bottom: 5px;
    color: #243ea2;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
}

.nt-eat-method p {
    margin: 0;
    color: #475467;
    font-size: 12px;
    line-height: 1.55;
}

.nt-eat-suggestion.is-defrost_eat .nt-eat-method,
.nt-eat-suggestion.is-defrost_reheat .nt-eat-method {
    border-color: #fedf89;
    background: #fffaeb;
}

.nt-eat-suggestion.is-defrost_eat .nt-eat-method strong,
.nt-eat-suggestion.is-defrost_reheat .nt-eat-method strong {
    color: #b54708;
}

.nt-eat-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 20px;
}

.nt-eat-facts span {
    padding: 6px 8px;
    border-radius: 999px;
    color: #344054;
    background: #f2f4f7;
    font-size: 9px;
    font-weight: 750;
}

.nt-eat-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.nt-eat-actions form {
    margin: 0;
}

.nt-eat-queue {
    margin-bottom: 76px;
}

.nt-eat-queue > header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 12px;
}

.nt-eat-queue h2 {
    margin: 4px 0 0;
    font-size: 28px;
    letter-spacing: -.045em;
}

.nt-eat-queue > header small {
    max-width: 420px;
    color: var(--nt-front-muted);
    font-size: 9px;
    text-align: right;
}

.nt-eat-queue-grid {
    display: grid;
    gap: 7px;
}

.nt-eat-queue-grid article {
    display: grid;
    grid-template-columns: 38px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    border: 1px solid var(--nt-front-line);
    border-radius: 12px;
    background: #fff;
}

.nt-eat-queue-grid article.is-first {
    border-color: #c7d7fe;
    background: #f5f7ff;
}

.nt-eat-queue-grid article > strong {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    color: #fff;
    background: #3655c5;
    font-size: 11px;
}

.nt-eat-queue-grid h3 {
    margin: 0 0 2px;
    font-size: 13px;
}

.nt-eat-queue-grid h3 a {
    color: inherit;
    text-decoration: none;
}

.nt-eat-queue-grid div > span {
    color: #3655c5;
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.nt-eat-queue-grid article > small {
    color: var(--nt-front-muted);
    font-size: 9px;
}

@media (max-width: 850px) {
    .nt-eat-suggestion {
        grid-template-columns: 1fr;
    }

    .nt-eat-suggestion-image {
        min-height: 280px;
        aspect-ratio: 16 / 9;
    }

    .nt-eat-queue > header,
    .nt-eat-result {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-eat-queue > header small {
        text-align: left;
    }
}

@media (max-width: 560px) {
    .nt-front-button-row,
    .nt-eat-actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .nt-eat-actions form,
    .nt-eat-actions .nt-front-button,
    .nt-eat-actions .nt-text-button {
        width: 100%;
    }

    .nt-eat-queue-grid article {
        grid-template-columns: 34px 1fr;
    }

    .nt-eat-queue-grid article > small {
        grid-column: 2;
    }
}

@media print {
    .nt-eat-actions,
    .nt-eat-result form {
        display: none !important;
    }
}


/* Batch Day */
.nt-app-card--batch {
    border-color: #d6bbfb;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(105, 65, 198, .13),
            transparent 44%
        ),
        #fbfaff;
}

.nt-batch-stats {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
}

.nt-batch-cook-result,
.nt-batch-start,
.nt-batch-complete {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 18px;
    padding: 21px 23px;
    border: 1px solid #a6f4c5;
    border-radius: 18px;
    background: #ecfdf3;
}

.nt-batch-cook-result > div > span,
.nt-batch-start > div > span,
.nt-batch-complete > span,
.nt-batch-next-copy > span,
.nt-batch-preview-list header span,
.nt-batch-queue header span {
    color: #6941c6;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-batch-cook-result h2,
.nt-batch-start h2,
.nt-batch-complete h2 {
    margin: 5px 0 7px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.nt-batch-cook-result p,
.nt-batch-start p,
.nt-batch-complete p {
    max-width: 780px;
    margin: 0;
    color: #475467;
    font-size: 11px;
    line-height: 1.55;
}

.nt-batch-cook-result details {
    margin-top: 9px;
    color: #7a2e0e;
    font-size: 10px;
}

.nt-batch-cook-result ul {
    margin: 7px 0 0;
    padding-left: 18px;
}

.nt-batch-start {
    border-color: #d6bbfb;
    background: #f9f5ff;
}

.nt-batch-complete {
    display: grid;
    border-color: #a6f4c5;
}

.nt-batch-complete .nt-front-button-row {
    margin-top: 8px;
}

.nt-batch-complete form {
    margin: 0;
}

.nt-batch-progress {
    display: grid;
    gap: 9px;
    margin: 0 0 18px;
    padding: 15px 17px;
    border: 1px solid #d6bbfb;
    border-radius: 14px;
    background: #f9f5ff;
}

.nt-batch-progress > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.nt-batch-progress span {
    color: #42307d;
    font-size: 11px;
    font-weight: 850;
}

.nt-batch-progress small {
    color: #6941c6;
    font-size: 9px;
}

.nt-batch-progress-track {
    overflow: hidden;
    height: 10px;
    border-radius: 999px;
    background: #e9d7fe;
}

.nt-batch-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background:
        linear-gradient(
            90deg,
            #6941c6,
            #9e77ed
        );
    transition: width .25s ease;
}

.nt-batch-next {
    display: grid;
    grid-template-columns:
        minmax(280px, .9fr)
        minmax(380px, 1.1fr);
    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid #d6bbfb;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 22px 60px rgba(66, 48, 125, .13);
}

.nt-batch-next-image {
    display: grid;
    min-height: 420px;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(
            145deg,
            #42307d,
            #9e77ed
        );
    font-size: 76px;
    font-weight: 900;
}

.nt-batch-next-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-batch-next-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(28px, 5vw, 56px);
}

.nt-batch-next-copy h2 {
    margin: 8px 0 14px;
    font-size: clamp(38px, 5vw, 60px);
    line-height: .98;
    letter-spacing: -.06em;
}

.nt-batch-next-copy h2 a {
    color: inherit;
    text-decoration: none;
}

.nt-batch-next-copy > p {
    margin: 5px 0 10px;
    color: #475467;
    font-size: 12px;
    line-height: 1.55;
}

.nt-batch-next-copy > small {
    align-self: flex-start;
    padding: 5px 8px;
    border-radius: 999px;
    color: #42307d;
    background: #f4ebff;
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
}

.nt-batch-next-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.nt-batch-next-facts strong,
.nt-batch-next-facts span {
    padding: 7px 9px;
    border-radius: 999px;
    color: #344054;
    background: #f2f4f7;
    font-size: 9px;
    font-weight: 800;
}

.nt-batch-next.is-ready
.nt-batch-next-facts strong {
    color: #067647;
    background: #ecfdf3;
}

.nt-batch-next-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.nt-batch-next-actions form {
    margin: 0;
}

.nt-batch-preview-list,
.nt-batch-queue {
    margin: 20px 0 76px;
}

.nt-batch-preview-list > header,
.nt-batch-queue > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 11px;
}

.nt-batch-preview-list h2,
.nt-batch-queue h2 {
    margin: 4px 0 0;
    font-size: 27px;
    letter-spacing: -.045em;
}

.nt-batch-preview-list > article,
.nt-batch-queue-grid > article {
    display: grid;
    grid-template-columns:
        38px
        minmax(220px, 1fr)
        auto
        auto;
    align-items: center;
    gap: 12px;
    margin-bottom: 7px;
    padding: 13px 15px;
    border: 1px solid var(--nt-front-line);
    border-radius: 12px;
    background: #fff;
}

.nt-batch-preview-list > article > strong,
.nt-batch-queue-grid > article > strong {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    color: #fff;
    background: #6941c6;
    font-size: 11px;
}

.nt-batch-preview-list h3,
.nt-batch-queue h3 {
    margin: 0 0 3px;
    font-size: 13px;
}

.nt-batch-queue h3 a {
    color: inherit;
    text-decoration: none;
}

.nt-batch-preview-list article div > span,
.nt-batch-queue-copy > span {
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-batch-preview-list article > small,
.nt-batch-queue article > small {
    padding: 5px 7px;
    border-radius: 999px;
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
}

.nt-batch-preview-list small.is-ready,
.nt-batch-queue small.is-ready {
    color: #067647;
    background: #ecfdf3;
}

.nt-batch-preview-list small.is-near,
.nt-batch-queue small.is-near {
    color: #b54708;
    background: #fffaeb;
}

.nt-batch-preview-list small.is-partial,
.nt-batch-queue small.is-partial,
.nt-batch-preview-list small.is-empty,
.nt-batch-queue small.is-empty,
.nt-batch-queue small.is-unavailable {
    color: #b42318;
    background: #fef3f2;
}

.nt-batch-queue-grid article.is-next {
    border-color: #d6bbfb;
    background: #f9f5ff;
}

.nt-batch-queue-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
}

.nt-batch-queue-actions form {
    margin: 0;
}

@media (max-width: 950px) {
    .nt-batch-stats {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .nt-batch-next {
        grid-template-columns: 1fr;
    }

    .nt-batch-next-image {
        min-height: 280px;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 700px) {
    .nt-batch-cook-result,
    .nt-batch-start,
    .nt-batch-complete,
    .nt-batch-progress > div:first-child,
    .nt-batch-preview-list > header,
    .nt-batch-queue > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-batch-preview-list > article,
    .nt-batch-queue-grid > article {
        grid-template-columns: 34px 1fr;
    }

    .nt-batch-preview-list article > small,
    .nt-batch-queue article > small,
    .nt-batch-queue-actions {
        grid-column: 2;
    }
}

@media (max-width: 520px) {
    .nt-batch-stats {
        grid-template-columns: 1fr;
    }

    .nt-batch-next-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .nt-batch-next-actions form,
    .nt-batch-next-actions
    .nt-front-button {
        width: 100%;
    }
}

@media print {
    .nt-batch-hero,
    .nt-batch-next-actions,
    .nt-batch-queue-actions,
    .nt-batch-progress {
        display: none !important;
    }
}


/* Personal recipe taste memory */
.nt-app-card--taste {
    border-color: #f9a8d4;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(236, 72, 153, .12),
            transparent 44%
        ),
        #fff7fb;
}

.nt-taste-stats {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
}

.nt-taste-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 18px;
}

.nt-taste-tabs a {
    padding: 8px 11px;
    border: 1px solid var(--nt-front-line);
    border-radius: 999px;
    color: #475467;
    background: #fff;
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}

.nt-taste-tabs a.is-active {
    border-color: #db2777;
    color: #fff;
    background: #db2777;
}

.nt-taste-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.nt-taste-grid > article {
    overflow: hidden;
    border: 1px solid var(--nt-front-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .05);
}

.nt-taste-grid > article.is-favourite {
    border-color: #f9a8d4;
}

.nt-taste-grid > article.is-keep {
    border-color: #a6f4c5;
}

.nt-taste-grid > article.is-avoid {
    border-color: #fecdca;
}

.nt-taste-image {
    display: grid;
    aspect-ratio: 16 / 9;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(
            145deg,
            #831843,
            #ec4899
        );
    font-size: 50px;
    font-weight: 900;
}

.nt-taste-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-taste-card-copy {
    padding: 16px;
}

.nt-taste-current,
.nt-recipe-taste-box > div > span,
.nt-eat-feedback > div > span {
    color: #db2777;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.nt-taste-card-copy h2 {
    margin: 6px 0 5px;
    font-size: 20px;
    letter-spacing: -.035em;
}

.nt-taste-card-copy h2 a {
    color: inherit;
    text-decoration: none;
}

.nt-taste-card-copy > small {
    display: block;
    margin-bottom: 12px;
    color: var(--nt-front-muted);
    font-size: 8px;
}

.nt-taste-buttons {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.nt-taste-buttons form {
    margin: 0;
}

.nt-taste-buttons button {
    min-height: 34px;
    padding: 7px 9px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    cursor: pointer;
    color: #475467;
    background: #fff;
    font-size: 9px;
    font-weight: 800;
}

.nt-taste-buttons button.is-favourite {
    border-color: #f9a8d4;
    color: #9d174d;
    background: #fff1f7;
}

.nt-taste-buttons button.is-keep {
    border-color: #a6f4c5;
    color: #067647;
    background: #ecfdf3;
}

.nt-taste-buttons button.is-avoid {
    border-color: #fecdca;
    color: #b42318;
    background: #fef3f2;
}

.nt-taste-buttons button.is-clear {
    color: var(--nt-front-muted);
    background: #f2f4f7;
}

.nt-taste-buttons button.is-active {
    box-shadow:
        inset 0 0 0 2px currentColor;
}

.nt-taste-danger {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 76px;
}

.nt-recipe-taste-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 28px 0 0;
    padding: 21px 23px;
    border: 1px solid #f9a8d4;
    border-radius: 18px;
    background: #fff7fb;
}

.nt-recipe-taste-box.is-keep {
    border-color: #a6f4c5;
    background: #f6fef9;
}

.nt-recipe-taste-box.is-avoid {
    border-color: #fecdca;
    background: #fffafa;
}

.nt-recipe-taste-box h2 {
    margin: 5px 0 6px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.nt-recipe-taste-box p {
    max-width: 720px;
    margin: 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.5;
}

.nt-taste-buttons--detail {
    flex: 0 0 auto;
    justify-content: flex-end;
}

.nt-recipe-taste-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    padding: 5px 7px;
    border-radius: 999px;
    color: #fff;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.nt-recipe-taste-badge.is-favourite {
    background: #db2777;
}

.nt-recipe-taste-badge.is-keep {
    background: #067647;
}

.nt-recipe-taste-badge.is-avoid {
    background: #b42318;
}

.nt-catalogue-member-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 13px;
}

.nt-eat-feedback {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: -6px 0 18px;
    padding: 17px 19px;
    border: 1px solid #f9a8d4;
    border-radius: 15px;
    background: #fff7fb;
}

.nt-eat-feedback h2 {
    margin: 4px 0 0;
    font-size: 20px;
    letter-spacing: -.035em;
}

.nt-taste-buttons--eat {
    margin-bottom: 18px;
}

.nt-eat-facts span.is-taste-favourite {
    color: #9d174d;
    background: #fff1f7;
}

.nt-eat-facts span.is-taste-keep {
    color: #067647;
    background: #ecfdf3;
}

.nt-eat-facts span.is-taste-avoid {
    color: #b42318;
    background: #fef3f2;
}

@media (max-width: 960px) {
    .nt-taste-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .nt-taste-stats {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .nt-recipe-taste-box,
    .nt-eat-feedback {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-taste-buttons--detail {
        justify-content: flex-start;
    }
}

@media (max-width: 560px) {
    .nt-taste-grid,
    .nt-taste-stats {
        grid-template-columns: 1fr;
    }
}

@media print {
    .nt-recipe-taste-box,
    .nt-eat-feedback,
    .nt-taste-buttons {
        display: none !important;
    }
}


.nt-recipe-search.has-taste {
    max-width: 1050px;
    grid-template-columns: 1fr 180px 180px auto;
}

@media (max-width: 720px) {
    .nt-recipe-search.has-taste {
        grid-template-columns: 1fr;
    }
}


/* Today dashboard and next best action */
.nt-today-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    padding: 76px 0 30px;
}

.nt-today-hero h1 {
    margin: 9px 0 12px;
    font-size: clamp(48px, 7vw, 78px);
    line-height: .96;
    letter-spacing: -.065em;
}

.nt-today-hero p {
    max-width: 700px;
    margin: 0;
    color: var(--nt-front-muted);
    font-size: 17px;
    line-height: 1.55;
}

.nt-next-action {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 26px;
    overflow: hidden;
    margin-bottom: 16px;
    padding: clamp(28px, 5vw, 54px);
    border: 1px solid #c7d7fe;
    border-radius: 26px;
    background:
        radial-gradient(circle at 100% 0, rgba(54, 85, 197, .18), transparent 40%),
        #f8faff;
    box-shadow: 0 24px 65px rgba(39, 63, 133, .13);
}

.nt-next-action.is-eat {
    border-color: #c7d7fe;
    background:
        radial-gradient(circle at 100% 0, rgba(54, 85, 197, .2), transparent 42%),
        #f5f7ff;
}

.nt-next-action.is-shop {
    border-color: #fedf89;
    background:
        radial-gradient(circle at 100% 0, rgba(245, 158, 11, .18), transparent 42%),
        #fffaeb;
}

.nt-next-action.is-batch,
.nt-next-action.is-complete {
    border-color: #d6bbfb;
    background:
        radial-gradient(circle at 100% 0, rgba(105, 65, 198, .2), transparent 42%),
        #f9f5ff;
}

.nt-next-action.is-cupboard {
    border-color: #a6f4c5;
    background:
        radial-gradient(circle at 100% 0, rgba(6, 118, 71, .16), transparent 42%),
        #f6fef9;
}

.nt-next-action.is-plan {
    border-color: #f9a8d4;
    background:
        radial-gradient(circle at 100% 0, rgba(219, 39, 119, .16), transparent 42%),
        #fff7fb;
}

.nt-next-action-copy > span,
.nt-kitchen-loop header span,
.nt-today-panel header span {
    color: #3655c5;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-next-action h2 {
    max-width: 820px;
    margin: 7px 0 10px;
    font-size: clamp(38px, 5.5vw, 66px);
    line-height: .98;
    letter-spacing: -.06em;
}

.nt-next-action p {
    max-width: 720px;
    margin: 0 0 20px;
    color: #475467;
    font-size: 14px;
    line-height: 1.55;
}

.nt-next-action-mark {
    color: rgba(54, 85, 197, .1);
    font-size: clamp(70px, 12vw, 150px);
    font-weight: 950;
    letter-spacing: -.09em;
    line-height: .75;
    writing-mode: vertical-rl;
}

.nt-next-action.is-shop .nt-next-action-mark {
    color: rgba(181, 71, 8, .1);
}

.nt-next-action.is-batch .nt-next-action-mark,
.nt-next-action.is-complete .nt-next-action-mark {
    color: rgba(105, 65, 198, .11);
}

.nt-next-action.is-cupboard .nt-next-action-mark {
    color: rgba(6, 118, 71, .1);
}

.nt-next-action.is-plan .nt-next-action-mark {
    color: rgba(219, 39, 119, .1);
}

.nt-today-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 22px;
}

.nt-today-stats a {
    display: grid;
    gap: 2px;
    padding: 16px 17px;
    border: 1px solid var(--nt-front-line);
    border-radius: 15px;
    color: inherit;
    background: #fff;
    text-decoration: none;
}

.nt-today-stats span {
    color: var(--nt-front-muted);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.nt-today-stats strong {
    font-size: 29px;
    letter-spacing: -.045em;
}

.nt-today-stats small {
    color: #667085;
    font-size: 9px;
}

.nt-kitchen-loop {
    margin-bottom: 22px;
    padding: 22px;
    border: 1px solid var(--nt-front-line);
    border-radius: 19px;
    background: #fff;
}

.nt-kitchen-loop h2,
.nt-today-panel h2 {
    margin: 4px 0 13px;
    font-size: 25px;
    letter-spacing: -.04em;
}

.nt-kitchen-loop-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.nt-kitchen-loop-grid a {
    display: grid;
    grid-template-columns: 36px 1fr;
    align-items: center;
    gap: 10px;
    padding: 13px;
    border: 1px solid #eaecf0;
    border-radius: 12px;
    color: inherit;
    background: #f9fafb;
    text-decoration: none;
}

.nt-kitchen-loop-grid a > strong {
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    border-radius: 999px;
    color: #667085;
    background: #eaecf0;
    font-size: 10px;
}

.nt-kitchen-loop-grid h3 {
    margin: 0 0 2px;
    font-size: 12px;
}

.nt-kitchen-loop-grid span {
    color: var(--nt-front-muted);
    font-size: 8px;
}

.nt-kitchen-loop-grid a.is-done {
    border-color: #a6f4c5;
    background: #f6fef9;
}

.nt-kitchen-loop-grid a.is-done > strong,
.nt-kitchen-loop-grid a.is-ready > strong {
    color: #fff;
    background: #067647;
}

.nt-kitchen-loop-grid a.is-next,
.nt-kitchen-loop-grid a.is-active {
    border-color: #d6bbfb;
    background: #f9f5ff;
}

.nt-kitchen-loop-grid a.is-next > strong,
.nt-kitchen-loop-grid a.is-active > strong {
    color: #fff;
    background: #6941c6;
}

.nt-kitchen-loop-grid a.is-ready {
    border-color: #c7d7fe;
    background: #f5f7ff;
}

.nt-today-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.nt-today-panel {
    padding: 21px;
    border: 1px solid var(--nt-front-line);
    border-radius: 18px;
    background: #fff;
}

.nt-attention-list,
.nt-activity-list {
    display: grid;
    gap: 8px;
}

.nt-attention-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 13px;
    border: 1px solid #eaecf0;
    border-left-width: 4px;
    border-radius: 10px;
    background: #fff;
}

.nt-attention-list article.is-urgent {
    border-left-color: #6941c6;
}

.nt-attention-list article.is-shop {
    border-left-color: #f79009;
}

.nt-attention-list article.is-cupboard,
.nt-attention-list article.is-freezer {
    border-left-color: #12b76a;
}

.nt-attention-list article.is-taste {
    border-left-color: #db2777;
}

.nt-attention-list h3,
.nt-activity-list h3 {
    margin: 0 0 3px;
    font-size: 11px;
}

.nt-attention-list p,
.nt-activity-list p,
.nt-today-empty p {
    margin: 0;
    color: #667085;
    font-size: 9px;
    line-height: 1.45;
}

.nt-attention-list a {
    color: #3655c5;
    font-size: 9px;
    font-weight: 850;
    text-decoration: none;
}

.nt-activity-list article {
    display: grid;
    grid-template-columns: 9px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #eaecf0;
}

.nt-activity-list article:last-child {
    border-bottom: 0;
}

.nt-activity-list article > span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #98a2b3;
}

.nt-activity-list article.is-cook > span {
    background: #6941c6;
}

.nt-activity-list article.is-eat > span {
    background: #3655c5;
}

.nt-activity-list article.is-restock > span {
    background: #12b76a;
}

.nt-activity-list article.is-autoplan > span {
    background: #db2777;
}

.nt-activity-list article.is-undone > span {
    background: #98a2b3;
}

.nt-activity-list small {
    color: var(--nt-front-muted);
    font-size: 8px;
    white-space: nowrap;
}

.nt-today-empty {
    padding: 18px;
    border-radius: 11px;
    background: #f9fafb;
}

.nt-today-empty strong {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
}

.nt-tool-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 22px;
}

.nt-tool-grid a {
    display: grid;
    gap: 3px;
    padding: 16px;
    border: 1px solid var(--nt-front-line);
    border-radius: 14px;
    color: inherit;
    background: #fff;
    text-decoration: none;
}

.nt-tool-grid span {
    color: #3655c5;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.nt-tool-grid strong {
    font-size: 16px;
    letter-spacing: -.025em;
}

.nt-tool-grid small {
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-account-drawer {
    margin-bottom: 78px;
    border: 1px solid var(--nt-front-line);
    border-radius: 14px;
    background: #fff;
}

.nt-account-drawer summary {
    padding: 14px 16px;
    cursor: pointer;
    color: #475467;
    font-size: 10px;
    font-weight: 850;
}

.nt-account-drawer-content {
    padding: 0 16px 16px;
}

@media (max-width: 950px) {
    .nt-today-stats,
    .nt-tool-grid,
    .nt-kitchen-loop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .nt-today-hero,
    .nt-next-action,
    .nt-today-columns {
        grid-template-columns: 1fr;
    }

    .nt-today-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-next-action-mark {
        display: none;
    }
}

@media (max-width: 540px) {
    .nt-today-stats,
    .nt-tool-grid,
    .nt-kitchen-loop-grid {
        grid-template-columns: 1fr;
    }

    .nt-attention-list article {
        grid-template-columns: 1fr;
    }

    .nt-activity-list article {
        grid-template-columns: 9px 1fr;
    }

    .nt-activity-list small {
        grid-column: 2;
    }
}

@media print {
    .nt-today-hero,
    .nt-next-action,
    .nt-tool-grid,
    .nt-account-drawer {
        display: none !important;
    }
}


/* Use Soon and expiry-aware cupboard stock */
.nt-cupboard-stats,
.nt-soon-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nt-cupboard-add-row {
    grid-template-columns:
        minmax(180px, 1.4fr)
        minmax(80px, .55fr)
        minmax(75px, .5fr)
        minmax(150px, .85fr)
        auto;
}

.nt-cupboard-items article.is-expired,
.nt-cupboard-items article.is-today {
    border-color: #fda29b;
    background: #fffbfa;
}

.nt-cupboard-items article.is-urgent {
    border-color: #fec84b;
    background: #fffcf5;
}

.nt-cupboard-items article.is-soon {
    border-color: #b2ddff;
    background: #f5fbff;
}

.nt-cupboard-expiry {
    display: inline-flex;
    margin-top: 4px;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
}

.nt-cupboard-expiry.is-expired,
.nt-cupboard-expiry.is-today {
    color: #b42318;
    background: #fee4e2;
}

.nt-cupboard-expiry.is-urgent {
    color: #b54708;
    background: #fef0c7;
}

.nt-cupboard-expiry.is-soon {
    color: #175cd3;
    background: #eff8ff;
}

.nt-shopping-bought {
    grid-template-columns:
        minmax(65px, .7fr)
        minmax(55px, .55fr);
}

.nt-shopping-bought input[type="date"] {
    grid-column: 1 / -1;
}

.nt-soon-next {
    display: grid;
    grid-template-columns:
        minmax(290px, .9fr)
        minmax(390px, 1.1fr);
    overflow: hidden;
    margin-bottom: 24px;
    border: 1px solid #fec84b;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 64px rgba(181, 71, 8, .12);
}

.nt-soon-next-image {
    display: grid;
    min-height: 430px;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg, #7a2e0e, #f79009);
    font-size: 62px;
    font-weight: 900;
}

.nt-soon-next-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-soon-next-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(28px, 5vw, 58px);
}

.nt-soon-next-copy > span,
.nt-soon-recipes header span,
.nt-soon-stock > header span {
    color: #b54708;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-soon-next-copy h2 {
    margin: 8px 0 12px;
    font-size: clamp(38px, 5vw, 60px);
    line-height: .98;
    letter-spacing: -.06em;
}

.nt-soon-next-copy h2 a {
    color: inherit;
    text-decoration: none;
}

.nt-soon-next-copy > p {
    margin: 0 0 15px;
    color: #475467;
    font-size: 12px;
    line-height: 1.55;
}

.nt-soon-ingredient-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 20px;
}

.nt-soon-ingredient-pills > span {
    display: grid;
    gap: 2px;
    padding: 8px 10px;
    border-radius: 10px;
    color: #175cd3;
    background: #eff8ff;
    font-size: 10px;
    font-weight: 800;
}

.nt-soon-ingredient-pills > span.is-expired,
.nt-soon-ingredient-pills > span.is-urgent {
    color: #b42318;
    background: #fef3f2;
}

.nt-soon-ingredient-pills small {
    font-size: 8px;
    font-weight: 700;
}

.nt-soon-recipes,
.nt-soon-stock {
    margin: 0 0 76px;
}

.nt-soon-recipes > header,
.nt-soon-stock > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 13px;
}

.nt-soon-recipes h2,
.nt-soon-stock h2 {
    margin: 4px 0 0;
    font-size: 28px;
    letter-spacing: -.045em;
}

.nt-soon-recipe-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
}

.nt-soon-recipe-grid article {
    overflow: hidden;
    border: 1px solid var(--nt-front-line);
    border-radius: 16px;
    background: #fff;
}

.nt-soon-recipe-grid a {
    color: inherit;
    text-decoration: none;
}

.nt-soon-recipe-image {
    display: grid;
    aspect-ratio: 16 / 9;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg, #7a2e0e, #f79009);
    font-size: 44px;
    font-weight: 900;
}

.nt-soon-recipe-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nt-soon-recipe-grid article > a > div:last-child {
    padding: 14px;
}

.nt-soon-recipe-grid h3 {
    margin: 0 0 6px;
    font-size: 17px;
    letter-spacing: -.03em;
}

.nt-soon-recipe-grid p {
    margin: 0 0 8px;
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-soon-recipe-grid small {
    color: #b54708;
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.nt-soon-stock > header nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.nt-soon-stock > header nav a {
    padding: 7px 10px;
    border: 1px solid var(--nt-front-line);
    border-radius: 999px;
    color: #475467;
    background: #fff;
    font-size: 9px;
    font-weight: 800;
    text-decoration: none;
}

.nt-soon-stock > header nav a.is-active {
    border-color: #f79009;
    color: #fff;
    background: #f79009;
}

.nt-soon-stock-list {
    display: grid;
    gap: 8px;
}

.nt-soon-stock-list article {
    display: grid;
    grid-template-columns:
        minmax(180px, 1fr)
        minmax(150px, .7fr)
        minmax(340px, 1.2fr);
    align-items: center;
    gap: 14px;
    padding: 13px 15px;
    border: 1px solid var(--nt-front-line);
    border-radius: 12px;
    background: #fff;
}

.nt-soon-stock-list article.is-expired,
.nt-soon-stock-list article.is-today {
    border-color: #fda29b;
    background: #fffbfa;
}

.nt-soon-stock-list article.is-urgent {
    border-color: #fec84b;
    background: #fffcf5;
}

.nt-soon-stock-list article.is-soon {
    border-color: #b2ddff;
    background: #f5fbff;
}

.nt-soon-stock-name,
.nt-soon-stock-status {
    display: grid;
    gap: 3px;
}

.nt-soon-stock-name strong {
    font-size: 13px;
}

.nt-soon-stock-name span,
.nt-soon-stock-status small {
    color: var(--nt-front-muted);
    font-size: 9px;
}

.nt-soon-stock-status strong {
    color: #b54708;
    font-size: 11px;
}

.nt-soon-stock-list article.is-expired .nt-soon-stock-status strong,
.nt-soon-stock-list article.is-today .nt-soon-stock-status strong {
    color: #b42318;
}

.nt-soon-stock-list form {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) auto;
    align-items: end;
    gap: 8px;
}

.nt-soon-stock-list label {
    display: grid;
    gap: 4px;
}

.nt-soon-stock-list label span {
    color: var(--nt-front-muted);
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.nt-soon-stock-list input {
    min-height: 40px;
    padding: 8px 9px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #fff;
}

.nt-today-attention article.is-soon {
    border-color: #fec84b;
    background: #fffcf5;
}

@media (max-width: 1050px) {
    .nt-cupboard-add-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nt-soon-recipe-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nt-soon-stock-list article {
        grid-template-columns: 1fr 1fr;
    }

    .nt-soon-stock-list form {
        grid-column: 1 / -1;
    }
}

@media (max-width: 780px) {
    .nt-soon-next {
        grid-template-columns: 1fr;
    }

    .nt-soon-next-image {
        min-height: 280px;
        aspect-ratio: 16 / 9;
    }

    .nt-soon-recipes > header,
    .nt-soon-stock > header {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .nt-cupboard-stats,
    .nt-soon-stats,
    .nt-soon-recipe-grid,
    .nt-soon-stock-list article,
    .nt-soon-stock-list form {
        grid-template-columns: 1fr;
    }

    .nt-soon-stock-list form {
        grid-column: auto;
    }
}

.nt-tool-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 1120px) {
    .nt-tool-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .nt-tool-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 540px) {
    .nt-tool-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    .nt-soon-stock-list form,
    .nt-soon-hero .nt-front-button {
        display: none !important;
    }
}


/* Meal schedule and defrost queue */
.nt-next-action.is-schedule {
    border-color: #7dd3fc;
    background:
        radial-gradient(circle at 100% 0, rgba(14, 165, 233, .18), transparent 42%),
        #f0f9ff;
}

.nt-schedule-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nt-schedule-result {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    margin: 0 0 18px;
    padding: 19px 21px;
    border: 1px solid #a6f4c5;
    border-radius: 16px;
    background: #ecfdf3;
}

.nt-schedule-result.is-fill {
    border-color: #7dd3fc;
    background: #f0f9ff;
}

.nt-schedule-result span,
.nt-schedule-setup > section > span,
.nt-schedule-list > header span {
    color: #0369a1;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-schedule-result h2 {
    margin: 5px 0 0;
    font-size: 22px;
    letter-spacing: -.04em;
}

.nt-schedule-setup {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.nt-schedule-setup > section {
    padding: 21px;
    border: 1px solid #bae6fd;
    border-radius: 18px;
    background: #f8fcff;
}

.nt-schedule-setup h2 {
    margin: 5px 0 6px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.nt-schedule-setup > section > p {
    margin: 0 0 15px;
    color: #475467;
    font-size: 11px;
    line-height: 1.55;
}

.nt-schedule-setup form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    align-items: end;
}

.nt-schedule-setup form label {
    display: grid;
    gap: 4px;
}

.nt-schedule-setup form label.is-wide {
    grid-column: 1 / -1;
}

.nt-schedule-setup form label span {
    color: #075985;
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.nt-schedule-setup input,
.nt-schedule-setup select {
    width: 100%;
    min-height: 42px;
    padding: 8px 9px;
    border: 1px solid #7dd3fc;
    border-radius: 9px;
    background: #fff;
}

.nt-schedule-setup form .nt-front-button {
    min-height: 42px;
}

.nt-schedule-list {
    margin-bottom: 76px;
}

.nt-schedule-list > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 11px;
}

.nt-schedule-list h2 {
    margin: 4px 0 0;
    font-size: 28px;
    letter-spacing: -.045em;
}

.nt-schedule-list > article {
    display: grid;
    grid-template-columns: 115px minmax(260px, 1fr) auto;
    gap: 16px;
    align-items: center;
    margin-bottom: 8px;
    padding: 15px;
    border: 1px solid var(--nt-front-line);
    border-radius: 15px;
    background: #fff;
}

.nt-schedule-list > article.is-due,
.nt-schedule-list > article.is-overdue {
    border-color: #fdba74;
    background: #fffaf5;
}

.nt-schedule-list > article.is-started {
    border-color: #a6f4c5;
    background: #f6fef9;
}

.nt-schedule-date {
    display: grid;
    gap: 2px;
    padding: 11px;
    border-radius: 12px;
    background: #f0f9ff;
}

.nt-schedule-date strong {
    color: #075985;
    font-size: 13px;
}

.nt-schedule-date span {
    font-size: 20px;
    font-weight: 900;
    letter-spacing: -.04em;
}

.nt-schedule-date small {
    color: var(--nt-front-muted);
    font-size: 8px;
    text-transform: uppercase;
}

.nt-schedule-meal > span {
    color: #0369a1;
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
}

.nt-schedule-meal h3 {
    margin: 4px 0 4px;
    font-size: 18px;
    letter-spacing: -.035em;
}

.nt-schedule-meal h3 a {
    color: inherit;
    text-decoration: none;
}

.nt-schedule-meal p {
    margin: 0 0 8px;
    color: #475467;
    font-size: 10px;
    line-height: 1.5;
}

.nt-schedule-alert {
    display: inline-block;
    padding: 5px 7px;
    border-radius: 999px;
    color: #b54708;
    background: #fffaeb;
    font-size: 8px;
    text-transform: uppercase;
}

.nt-schedule-alert.is-later {
    color: #0369a1;
    background: #f0f9ff;
}

.nt-schedule-alert.is-started,
.nt-schedule-alert.is-ready {
    color: #067647;
    background: #ecfdf3;
}

.nt-schedule-actions {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 7px;
}

.nt-schedule-actions form {
    margin: 0;
}

.nt-attention-list article.is-schedule {
    border-color: #7dd3fc;
    background: #f0f9ff;
}

@media (max-width: 950px) {
    .nt-schedule-stats,
    .nt-schedule-setup {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nt-schedule-list > article {
        grid-template-columns: 100px 1fr;
    }

    .nt-schedule-actions {
        grid-column: 2;
        align-items: flex-start;
        flex-direction: row;
        flex-wrap: wrap;
    }
}

@media (max-width: 620px) {
    .nt-schedule-stats,
    .nt-schedule-setup,
    .nt-schedule-setup form {
        grid-template-columns: 1fr;
    }

    .nt-schedule-setup form label.is-wide {
        grid-column: auto;
    }

    .nt-schedule-list > header,
    .nt-schedule-result {
        align-items: flex-start;
        flex-direction: column;
    }

    .nt-schedule-list > article {
        grid-template-columns: 1fr;
    }

    .nt-schedule-actions {
        grid-column: auto;
        align-items: stretch;
        flex-direction: column;
    }

    .nt-schedule-actions form,
    .nt-schedule-actions .nt-front-button {
        width: 100%;
    }
}

@media print {
    .nt-schedule-setup,
    .nt-schedule-actions,
    .nt-schedule-list > header form {
        display: none !important;
    }
}

/* Kitchen defaults and Cook Mode launch */
.nt-recipe-cook-launch {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 28px 0 0;
    padding: 22px 24px;
    border: 1px solid #c7d7fe;
    border-radius: 20px;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(53, 94, 252, .13),
            transparent 42%
        ),
        #f8faff;
}

.nt-recipe-cook-launch > div > span,
.nt-settings-section > header > span {
    color: #3655c5;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.nt-recipe-cook-launch h2,
.nt-settings-section h2 {
    margin: 5px 0 7px;
    font-size: 25px;
    letter-spacing: -.04em;
}

.nt-recipe-cook-launch p,
.nt-settings-section header p {
    max-width: 760px;
    margin: 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.55;
}

.nt-recipe-cook-launch form {
    display: flex;
    align-items: end;
    flex: 0 0 auto;
    gap: 8px;
    margin: 0;
}

.nt-recipe-cook-launch label {
    display: grid;
    gap: 4px;
}

.nt-recipe-cook-launch label span,
.nt-default-portions-control > span {
    color: #475467;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.nt-recipe-cook-launch input,
.nt-default-portions-control input {
    width: 92px;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #b8c6f5;
    border-radius: 10px;
    background: #fff;
    font-size: 15px;
    font-weight: 800;
}

.nt-user-settings-form {
    display: grid;
    gap: 16px;
    margin-bottom: 76px;
}

.nt-settings-section {
    padding: 23px 24px;
    border: 1px solid var(--nt-front-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(15, 23, 42, .05);
}

.nt-settings-section > header {
    margin-bottom: 17px;
}

.nt-default-portions-control {
    display: grid;
    grid-template-columns: auto 100px 1fr;
    align-items: center;
    gap: 13px;
    padding: 15px 16px;
    border: 1px solid #c7d7fe;
    border-radius: 14px;
    background: #f8faff;
}

.nt-default-portions-control small {
    color: #667085;
    font-size: 9px;
    line-height: 1.45;
}

.nt-layout-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.nt-layout-choice {
    position: relative;
    display: block;
    cursor: pointer;
}

.nt-layout-choice input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.nt-layout-choice > span {
    display: grid;
    min-height: 132px;
    align-content: start;
    gap: 7px;
    padding: 15px;
    border: 1px solid #d0d5dd;
    border-radius: 14px;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.nt-layout-choice input:checked + span {
    border-color: #3655c5;
    background: #f5f7ff;
    box-shadow: inset 0 0 0 2px #3655c5;
}

.nt-layout-choice input:focus-visible + span {
    outline: 3px solid rgba(53, 94, 252, .22);
    outline-offset: 3px;
}

.nt-layout-choice strong {
    color: #101828;
    font-size: 13px;
}

.nt-layout-choice small {
    color: #667085;
    font-size: 9px;
    line-height: 1.5;
}

.nt-settings-toggle-grid,
.nt-panel-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.nt-panel-choice-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nt-settings-toggle-grid label,
.nt-panel-choice-grid label {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 10px;
    padding: 13px 14px;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    background: #fcfcfd;
}

.nt-settings-toggle-grid input,
.nt-panel-choice-grid input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    accent-color: #3655c5;
}

.nt-settings-toggle-grid span,
.nt-panel-choice-grid span {
    display: grid;
    gap: 3px;
}

.nt-settings-toggle-grid strong,
.nt-panel-choice-grid strong {
    color: #344054;
    font-size: 10px;
}

.nt-settings-toggle-grid small,
.nt-panel-choice-grid small {
    color: #667085;
    font-size: 8px;
    line-height: 1.45;
}

.nt-settings-save-bar {
    position: sticky;
    bottom: 12px;
    z-index: 8;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border: 1px solid #c7d7fe;
    border-radius: 14px;
    background: rgba(248, 250, 255, .96);
    box-shadow: 0 14px 44px rgba(16, 24, 40, .14);
    backdrop-filter: blur(12px);
}

.nt-settings-save-bar p {
    margin: 0;
    color: #475467;
    font-size: 10px;
}

@media (max-width: 960px) {
    .nt-layout-choice-grid,
    .nt-panel-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .nt-recipe-cook-launch,
    .nt-settings-save-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .nt-recipe-cook-launch form {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .nt-recipe-cook-launch input,
    .nt-recipe-cook-launch .nt-front-button {
        width: 100%;
    }

    .nt-settings-toggle-grid {
        grid-template-columns: 1fr;
    }

    .nt-default-portions-control {
        grid-template-columns: 1fr;
    }

    .nt-default-portions-control input {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .nt-layout-choice-grid,
    .nt-panel-choice-grid {
        grid-template-columns: 1fr;
    }
}

/* Commit 0070: calm account sync state. */
.nt-sync-indicator {
    margin: 0;
    font-size: 0.86rem;
    color: var(--nt-front-muted, #64748b);
}

.nt-sync-indicator[data-state="syncing"]::before,
.nt-sync-indicator[data-state="synced"]::before,
.nt-sync-indicator[data-state="offline"]::before,
.nt-sync-indicator[data-state="attention"]::before {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    margin-right: 0.42rem;
    border-radius: 999px;
    content: "";
    background: currentColor;
}

.nt-sync-indicator[data-state="synced"] { color: #15803d; }
.nt-sync-indicator[data-state="offline"] { color: #64748b; }
.nt-sync-indicator[data-state="attention"] { color: #b45309; }


.nt-personal-recipe-banner,
.nt-recipe-original-source {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid var(--nt-front-border, #dfe7df);
    border-radius: 18px;
    background: #f4f7f3;
    padding: 14px 16px;
}

.nt-personal-recipe-banner {
    margin: 0 0 18px;
}

.nt-personal-recipe-banner span,
.nt-recipe-original-source span {
    color: var(--nt-front-muted, #667268);
}

.nt-recipe-original-source {
    margin: 18px 0;
}

.nt-recipe-original-source > div {
    display: grid;
    gap: 3px;
}

.nt-recipe-original-source a,
.nt-import-recipe-link {
    font-weight: 800;
}

.nt-recipe-step-stage {
    display: block;
    margin-bottom: 5px;
    color: var(--nt-front-accent, #f97316);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

@media (max-width: 640px) {
    .nt-personal-recipe-banner,
    .nt-recipe-original-source {
        align-items: flex-start;
        flex-direction: column;
    }
}


.nt-personal-recipe-note {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0.8rem 1rem;
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.72);
}

.nt-personal-recipe-share,
.nt-personal-recipe-platform-link {
    grid-column: 1 / -1;
    justify-self: start;
    margin: 0;
}

.nt-personal-recipe-share button {
    min-height: 48px;
}


/* Commit 0076: low-friction capacity entry point on Today. */
.nt-today-capacity{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.5fr);gap:1rem;align-items:center;padding:clamp(1rem,2.5vw,1.5rem);border:1px solid rgba(249,115,22,.24);border-radius:22px;background:rgba(249,115,22,.07)}
.nt-today-capacity span{display:block;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--nt-front-accent,#f97316)}
.nt-today-capacity h2{margin:.25rem 0 .35rem}.nt-today-capacity p{margin:0;color:#64748b}.nt-today-capacity nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.nt-today-capacity a{display:grid;place-items:center;min-height:58px;padding:.55rem;border:1px solid #fed7aa;border-radius:14px;background:#fff;color:#9a3412;text-align:center;text-decoration:none;font-weight:800}.nt-today-capacity a:hover,.nt-today-capacity a:focus-visible{border-color:var(--nt-front-accent,#f97316);background:#fff7ed}@media(max-width:820px){.nt-today-capacity{grid-template-columns:1fr}.nt-today-capacity nav{grid-template-columns:repeat(2,1fr)}}


.nt-today-prep{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.15rem 1.3rem;border:1px solid #bae6fd;border-radius:22px;background:linear-gradient(135deg,#f0f9ff,#fff)}.nt-today-prep span{display:block;font-size:.75rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#0369a1}.nt-today-prep h2{margin:.25rem 0;font-size:1.35rem}.nt-today-prep p{margin:0;color:#475569}@media(max-width:680px){.nt-today-prep{display:grid}.nt-today-prep .nt-front-button{width:100%;justify-content:center}}

/* Commit 0079: persistent shopping */
.nt-shopping-persistent-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:1rem;margin:1.25rem 0;padding:1rem;border:1px solid var(--nt-front-border,#d8d8d8);border-radius:1rem;background:var(--nt-front-surface,#fff)}
.nt-shopping-persistent-tools h2{margin:.25rem 0 .75rem}
.nt-shopping-custom-form{display:grid;grid-template-columns:2fr .7fr .7fr 1.2fr auto;gap:.65rem;align-items:end}
.nt-shopping-custom-form label,.nt-shopping-route-form{display:grid;gap:.3rem}
.nt-shopping-custom-form span{font-size:.78rem;font-weight:700}
.nt-shopping-custom-form input,.nt-shopping-route-form textarea,.nt-shopping-bought select{min-height:44px;border:1px solid var(--nt-front-border,#ccc);border-radius:.65rem;padding:.55rem .65rem;background:#fff;color:#171717}
.nt-shopping-route-form textarea{width:100%;min-height:14rem}
.nt-shopping-list article .nt-text-button{align-self:center}
@media(max-width:900px){.nt-shopping-persistent-tools{grid-template-columns:1fr}.nt-shopping-custom-form{grid-template-columns:1fr 1fr}.nt-shopping-custom-form label:first-of-type{grid-column:1/-1}.nt-shopping-custom-form button{grid-column:1/-1}}
@media(max-width:560px){.nt-shopping-custom-form{grid-template-columns:1fr}.nt-shopping-custom-form label,.nt-shopping-custom-form button{grid-column:auto}.nt-shopping-bought select{width:100%}}

/* Commit 0085 accessibility baseline */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid currentColor;outline-offset:3px}.nt-skip-link{position:fixed;left:1rem;top:1rem;z-index:100000;transform:translateY(-160%);padding:.75rem 1rem;border-radius:10px;background:#0f172a;color:#fff;font-weight:800}.nt-skip-link:focus{transform:none}.nt-a11y-live{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}.nt-a11y-large{font-size:112.5%}.nt-a11y-xlarge{font-size:125%}.nt-a11y-reading-width .nt-front-main{max-width:78rem;margin-inline:auto}.nt-a11y-high-contrast{--nt-front-accent:#9a3412}.nt-a11y-high-contrast :where(.nt-front-card,.nt-today-panel,.nt-next-action,article,section,details,input,select,textarea){border-color:currentColor!important}.nt-a11y-touch :where(button,.nt-front-button,input,select,summary,.nt-front-nav a){min-height:48px}.nt-a11y-reduced-motion *,.nt-a11y-reduced-motion *::before,.nt-a11y-reduced-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media(forced-colors:active){:where(button,a,input,select,textarea,summary){forced-color-adjust:auto}.nt-front-button{border:2px solid ButtonText}}

/* Commit 0087: preserve the requested workflow after login. */
.nt-auth-return-note {
    margin: 0;
    color: var(--nt-front-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

/* Version 1.19.0: calm, grouped member navigation. */
.nt-front-brand{flex:0 0 auto}.nt-front-brand strong{white-space:nowrap}
.nt-front-nav{gap:3px;margin-left:auto}
.nt-front-nav>a,.nt-front-nav-group>summary{display:flex;min-height:42px;align-items:center;padding:0 10px;border-radius:10px;white-space:nowrap}
.nt-front-nav>a:hover,.nt-front-nav-group>summary:hover,.nt-front-nav-group>summary:focus-visible{color:var(--nt-front-accent);background:var(--nt-front-soft)}
.nt-front-nav>a[aria-current=page],.nt-front-nav-group>summary.is-current{color:#9a3412;background:#ffedd5}
.nt-front-nav-group{position:relative}
.nt-front-nav-group>summary{gap:8px;cursor:pointer;list-style:none}
.nt-front-nav-group>summary::-webkit-details-marker{display:none}
.nt-front-nav-group>summary:after{width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;content:"";transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}
.nt-front-nav-group[open]>summary:after{transform:rotate(225deg) translate(-1px,-1px)}
.nt-front-nav-group:not([open])>.nt-front-nav-dropdown{display:none}
.nt-front-nav-dropdown{position:absolute;top:calc(100% + 10px);right:0;z-index:20;display:grid;min-width:220px;gap:8px;padding:12px;border:1px solid var(--nt-front-line);border-radius:16px;background:#fff;box-shadow:var(--nt-front-shadow)}
.nt-front-nav-dropdown--wide{width:min(640px,calc(100vw - 40px));grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nt-front-nav-dropdown section{display:grid;align-content:start;gap:3px;padding:5px}
.nt-front-nav-heading{padding:4px 9px;color:var(--nt-front-muted);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.nt-front-nav-dropdown a{display:flex;min-height:40px;align-items:center;padding:8px 9px;border-radius:9px;color:#344054}
.nt-front-nav-dropdown a:hover{color:var(--nt-front-accent);background:var(--nt-front-soft)}
.nt-front-nav-dropdown a[aria-current=page]{color:#9a3412;background:#ffedd5}
.nt-front-nav-dropdown--account{gap:3px}
.nt-front-nav-dropdown .nt-front-nav-admin{margin-top:5px;padding-top:10px;border-top:1px solid var(--nt-front-line);border-radius:0}
.nt-front-nav-dropdown .nt-front-nav-button{justify-content:center;margin-top:5px;color:#fff;background:var(--nt-front-ink)}

@media(max-width:900px){
    .nt-front-menu-toggle{display:block}
    .nt-front-nav{position:absolute;top:calc(100% + 8px);right:0;left:0;display:none;max-height:calc(100vh - 110px);align-items:stretch;overflow-y:auto;flex-direction:column;gap:4px;margin:0;padding:12px;border:1px solid var(--nt-front-line);border-radius:14px;background:#fff;box-shadow:var(--nt-front-shadow)}
    .nt-front-nav.is-open{display:flex}
    .nt-front-nav>a,.nt-front-nav-group>summary{width:100%;min-height:46px;justify-content:flex-start;padding:0 12px}
    .nt-front-nav-group>summary:after{margin-left:auto}
    .nt-front-nav-dropdown{position:static;width:auto;min-width:0;margin:2px 6px 8px;padding:6px;border:0;border-left:2px solid var(--nt-front-line);border-radius:0;background:var(--nt-front-soft);box-shadow:none}
    .nt-front-nav-dropdown--wide{grid-template-columns:1fr}
    .nt-front-nav-dropdown section{padding:4px}
    .nt-front-nav-dropdown section+section{padding-top:9px;border-top:1px solid var(--nt-front-line)}
    .nt-front-nav-dropdown a{min-height:44px;padding:8px 10px}
}
