:root{--nf-blue:#315A86;--nf-blue-dark:#24486e;--nf-bg:#f5f7fa;--nf-card:#fff;--nf-text:#17212f;--nf-muted:#6b7280;--nf-line:#e5e7eb;--nf-danger:#c63f49;--nf-radius:12px;--nf-shadow:0 8px 28px rgba(23,33,47,.08)}*{box-sizing:border-box}body{margin:0;background:var(--nf-bg);color:var(--nf-text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.nofira-skip{position:absolute;left:-9999px}.nofira-skip:focus{left:1rem;top:1rem;background:#fff;padding:.7rem;z-index:999}.nofira-landing{min-height:100vh;display:grid;place-items:center;padding:4rem 1.5rem;background:radial-gradient(circle at 70% 20%,rgba(49,90,134,.45),transparent 36%),linear-gradient(135deg,#102030,#315a86 62%,#6d88a5);color:#fff}.nofira-landing-inner{width:min(780px,100%);text-align:center}.nofira-landing-logo{width:min(420px,80%);height:auto}.nofira-payoff{font-size:1.2rem;letter-spacing:.04em}.nofira-landing h1{font-family:Georgia,serif;font-size:clamp(2.4rem,7vw,5.4rem);line-height:1.02;margin:2.4rem 0 1rem}.nofira-landing-inner>p:not(.nofira-payoff):not(.nofira-landing-note){font-size:1.15rem;max-width:620px;margin:0 auto 2rem}.nofira-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.nofira-btn,.nofira-button{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.3rem;border-radius:8px;font-weight:650;text-decoration:none}.nofira-btn.primary,.nofira-button{background:#fff;color:var(--nf-blue)}.nofira-btn.ghost{border:1px solid rgba(255,255,255,.65);color:#fff}.nofira-landing-note{font-size:.85rem;opacity:.75;margin-top:2rem}.nofira-page{min-height:100vh;padding:3rem 1rem}.nofira-page-inner{width:min(760px,100%);margin:auto;background:#fff;border:1px solid var(--nf-line);border-radius:var(--nf-radius);padding:2rem}.nofira-auth-card{width:min(520px,100%);margin:2rem auto;background:#fff;border:1px solid var(--nf-line);border-radius:16px;padding:2rem;box-shadow:var(--nf-shadow)}.nofira-auth-card h1{color:var(--nf-blue);letter-spacing:.05em}.nofira-auth-card label{display:grid;gap:.4rem;margin:1rem 0;font-weight:600}.nofira-auth-card input,.nofira-auth-card textarea,.nofira-auth-card select{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:8px}.nofira-auth-card button{border:0;background:var(--nf-blue);color:#fff;padding:.75rem 1rem;border-radius:8px;font-weight:700;cursor:pointer}.nofira-error{background:#fff1f2;color:#9f1239;padding:.8rem;border-radius:8px}.nofira-success{background:#ecfdf5;color:#065f46;padding:.8rem;border-radius:8px}.nofira-panel{background:#fff;border:1px solid var(--nf-line);border-radius:12px;padding:1.25rem}.nofira-app-root{min-height:100vh}.nf-shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,720px) 300px;gap:24px;width:min(1320px,calc(100% - 32px));margin:0 auto;padding:20px 0}.nf-sidebar,.nf-aside{position:sticky;top:20px;align-self:start}.nf-brand img{width:150px}.nf-nav{display:grid;gap:4px;margin:24px 0}.nf-nav button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:12px;border-radius:9px;text-align:left;font-weight:600;color:var(--nf-text);cursor:pointer}.nf-nav button.active,.nf-nav button:hover{background:#eaf1f8;color:var(--nf-blue)}.nf-add{width:100%;padding:12px;border:0;border-radius:9px;background:var(--nf-blue);color:#fff;font-weight:700;cursor:pointer}.nf-main{min-width:0}.nf-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.nf-tabs{display:flex;gap:20px}.nf-tab{border:0;background:transparent;padding:10px 0;font-weight:700;color:var(--nf-muted);border-bottom:2px solid transparent;cursor:pointer}.nf-tab.active{color:var(--nf-blue);border-color:var(--nf-blue)}.nf-photo-card{background:#fff;border:1px solid var(--nf-line);border-radius:12px;overflow:hidden;margin-bottom:16px}.nf-card-head{display:flex;align-items:center;gap:10px;padding:12px 14px}.nf-avatar{width:36px;height:36px;border-radius:50%;background:#dbe4ee;display:grid;place-items:center;font-weight:800;color:var(--nf-blue)}.nf-author{font-weight:700}.nf-meta{font-size:.78rem;color:var(--nf-muted)}.nf-image-wrap{background:#111;display:grid;place-items:center}.nf-image{display:block;max-width:100%;width:100%;height:auto;object-fit:contain;max-height:72vh}.nf-card-body{padding:14px}.nf-title{font-weight:750;margin:0 0 6px}.nf-text{margin:0 0 10px;color:#334155}.nf-genres{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.nf-chip{font-size:.72rem;background:#edf2f7;color:#506070;border-radius:999px;padding:4px 8px}.nf-actions-row{display:flex;align-items:center;gap:16px;border-top:1px solid var(--nf-line);padding-top:10px}.nf-react{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;cursor:pointer;color:#52606d;padding:4px}.nf-react.active{color:var(--nf-blue);font-weight:700}.nf-react svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}.nf-aside-card{background:#fff;border:1px solid var(--nf-line);border-radius:12px;padding:14px;margin-bottom:14px}.nf-aside-card h3{font-size:.9rem;margin:0 0 12px}.nf-empty{text-align:center;padding:4rem 1.5rem;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;color:var(--nf-muted)}.nf-dialog{border:0;border-radius:16px;padding:0;width:min(640px,calc(100% - 24px));box-shadow:0 30px 80px rgba(0,0,0,.3)}.nf-dialog::backdrop{background:rgba(15,23,42,.55)}.nf-upload{padding:22px}.nf-upload h2{margin-top:0}.nf-form-row{display:grid;gap:6px;margin:12px 0}.nf-form-row input,.nf-form-row textarea,.nf-form-row select{padding:.75rem;border:1px solid #cbd5e1;border-radius:8px}.nf-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.nf-btn{border:0;border-radius:8px;padding:.72rem 1rem;font-weight:700;cursor:pointer}.nf-btn.primary{background:var(--nf-blue);color:#fff}.nf-btn.secondary{background:#eef2f6;color:#334155}.nf-mobile-nav{display:none}@media(max-width:1050px){.nf-shell{grid-template-columns:200px minmax(0,1fr)}.nf-aside{display:none}}@media(max-width:720px){.nf-shell{display:block;width:100%;padding:0 0 76px}.nf-sidebar{display:none}.nf-topbar{position:sticky;top:0;z-index:5;background:rgba(245,247,250,.96);padding:10px 14px;border-bottom:1px solid var(--nf-line)}.nf-photo-card{border-radius:0;border-left:0;border-right:0;margin-bottom:10px}.nf-card-head,.nf-card-body{padding-left:14px;padding-right:14px}.nf-image{max-height:none}.nf-mobile-nav{position:fixed;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--nf-line);padding:7px 4px calc(7px + env(safe-area-inset-bottom))}.nf-mobile-nav button{border:0;background:transparent;color:#475569;font-size:.72rem;display:grid;gap:2px;place-items:center}.nf-mobile-nav button:nth-child(3){background:var(--nf-blue);color:#fff;width:44px;height:44px;border-radius:50%;justify-self:center;margin-top:-20px;font-size:1.5rem}.nf-dialog{width:100%;max-width:none;margin:0;align-self:end;border-radius:18px 18px 0 0}}

.nf-image-link{display:block;color:inherit;text-decoration:none}.nf-title a{color:inherit;text-decoration:none}.nf-title a:hover{color:var(--nf-blue)}.nf-single-photo{width:min(980px,calc(100% - 24px));margin:24px auto;background:#fff;border:1px solid var(--nf-line);border-radius:14px;overflow:hidden}.nf-single-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--nf-line)}.nf-back-link{color:var(--nf-blue);text-decoration:none;font-weight:700}.nf-single-id{font-size:.8rem;color:var(--nf-muted)}.nf-single-head{display:flex;align-items:center;gap:10px;padding:14px 16px}.nf-single-image-wrap{background:#0f1115;display:grid;place-items:center;min-height:220px}.nf-single-image{display:block;max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain}.nf-single-body{padding:18px 20px 22px}.nf-single-body h1{margin:0 0 10px;font-family:Georgia,serif;font-size:clamp(1.5rem,4vw,2.5rem)}.nf-single-text{color:#334155;line-height:1.65}.nf-single-text p:first-child{margin-top:0}@media(max-width:720px){.nf-single-photo{width:100%;margin:0;border-left:0;border-right:0;border-radius:0}.nf-single-image{max-height:none;width:100%}.nf-single-body{padding:16px 14px 90px}}

/* ================================================================
   NOFIRA Theme 0.1.2 — Community desktop layout refinement
   The Community is an application view, not an editorial page.
   ================================================================ */

body.page-community {
    overflow-x: hidden;
}

/* NOFIRA 0.2.22 — public profile solution A and cover crop. */
.nofira-community-page #nofira-app .nf-profile > .nf-cover{position:relative;width:100%;height:auto;aspect-ratio:20/7;overflow:hidden;border-radius:12px 12px 0 0;background:linear-gradient(130deg,#c7d9e8,#e7eef4)}
.nofira-community-page #nofira-app .nf-profile > .nf-cover > img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.nofira-community-page #nofira-app .nf-profile-head{display:flex;align-items:center;gap:18px;margin:0;padding:18px 24px 0}
.nofira-community-page #nofira-app .nf-profile-head > .nf-profile-avatar{margin:0;border-width:4px}
.nofira-community-page #nofira-app .nf-profile-main{min-width:0;flex:1;padding:0}
.nofira-community-page #nofira-app .nf-profile-title{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0}
.nofira-community-page #nofira-app .nf-profile-identity{min-width:0}
.nofira-community-page #nofira-app .nf-profile-identity h1{margin:0 0 4px}
.nofira-community-page #nofira-app .nf-profile-public-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.nofira-community-page #nofira-app .nf-profile-more{position:relative}
.nofira-community-page #nofira-app .nf-profile-more > summary{list-style:none}
.nofira-community-page #nofira-app .nf-profile-more > summary::-webkit-details-marker{display:none}
.nofira-community-page #nofira-app .nf-profile-more-menu{position:absolute;z-index:20;top:calc(100% + 7px);right:0;display:grid;width:190px;overflow:hidden;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-card,#fff);box-shadow:0 14px 30px rgba(20,34,48,.18)}
.nofira-community-page #nofira-app .nf-profile-menu-action{padding:11px 13px;border:0;border-bottom:1px solid var(--nf-line);background:transparent;color:var(--nf-text);font:inherit;text-align:left}
.nofira-community-page #nofira-app .nf-profile-menu-action:last-child{border-bottom:0}
.nofira-community-page #nofira-app .nf-profile-menu-action.danger{color:#a33333}
.nf-cover-crop{width:min(860px,92vw)}
.nf-cover-crop canvas{display:block;width:100%;height:auto;aspect-ratio:20/7;border-radius:10px;background:#111820}
.nf-cover-position{display:grid;gap:7px;margin:16px 0}
.nf-cover-position input{width:100%}
.nf-profile-file-field small{color:var(--nf-muted);font-size:.75rem}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-profile-more-menu{border-color:#34414e;background:#18212a}
@media(max-width:720px){.nofira-community-page #nofira-app .nf-profile > .nf-cover{aspect-ratio:16/7;border-radius:0}.nofira-community-page #nofira-app .nf-profile-head{align-items:flex-start;padding:14px 16px 0}.nofira-community-page #nofira-app .nf-profile-title{align-items:flex-start;flex-direction:column;gap:12px}.nofira-community-page #nofira-app .nf-profile-public-actions{justify-content:flex-start}}

.nofira-community-page {
    min-height: 100vh;
    width: 100%;
    padding: 0;
    margin: 0;
}

.nofira-community-page > .nofira-app-root,
.nofira-community-page .nofira-app-root {
    width: 100%;
}

/* Desktop application shell: navigation / photography / support rail. */
.nofira-community-page .nf-shell {
    grid-template-columns: 248px minmax(680px, 1fr) 292px;
    gap: 30px;
    width: min(1460px, calc(100% - 64px));
    padding: 30px 0 48px;
}

.nofira-community-page .nf-sidebar,
.nofira-community-page .nf-aside {
    top: 30px;
}

.nofira-community-page .nf-sidebar {
    padding-top: 2px;
}

.nofira-community-page .nf-brand {
    padding: 2px 8px 0;
}

.nofira-community-page .nf-brand img {
    width: 158px;
    max-width: 100%;
    height: auto;
}

.nofira-community-page .nf-nav {
    gap: 6px;
    margin: 28px 0 24px;
}

.nofira-community-page .nf-nav button {
    min-height: 46px;
    padding: 12px 14px;
    border-radius: 10px;
    font-size: .96rem;
}

.nofira-community-page .nf-add {
    min-height: 46px;
    border-radius: 10px;
    box-shadow: 0 5px 14px rgba(49,90,134,.15);
}

/* Feed is the primary visual column. */
.nofira-community-page .nf-main {
    width: 100%;
    max-width: 820px;
    justify-self: center;
}

.nofira-community-page .nf-topbar {
    min-height: 52px;
    margin-bottom: 20px;
    padding: 0 2px;
}

.nofira-community-page .nf-topbar > strong {
    color: var(--nf-muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.nofira-community-page .nf-tabs {
    gap: 30px;
}

.nofira-community-page .nf-tab {
    padding: 14px 1px 11px;
    font-size: 1rem;
    border-bottom-width: 3px;
}

.nofira-community-page .nf-photo-card {
    margin-bottom: 26px;
    border-radius: 15px;
    border-color: #dfe5ec;
    box-shadow: 0 8px 30px rgba(23,33,47,.045);
}

.nofira-community-page .nf-card-head {
    min-height: 66px;
    padding: 14px 18px;
}

.nofira-community-page .nf-avatar {
    width: 40px;
    height: 40px;
}

.nofira-community-page .nf-author {
    font-size: .96rem;
}

.nofira-community-page .nf-meta {
    margin-top: 2px;
    font-size: .76rem;
}

.nofira-community-page .nf-image-wrap {
    width: 100%;
    min-height: 260px;
    background: #0f1216;
}

.nofira-community-page .nf-image {
    width: 100%;
    max-height: 78vh;
    object-fit: contain;
}

.nofira-community-page .nf-card-body {
    padding: 17px 18px 16px;
}

.nofira-community-page .nf-title {
    margin-bottom: 7px;
    font-size: 1.08rem;
    line-height: 1.35;
}

.nofira-community-page .nf-title a {
    color: inherit;
    text-decoration: none;
}

.nofira-community-page .nf-title a:hover {
    color: var(--nf-blue);
}

.nofira-community-page .nf-text {
    margin-bottom: 13px;
    font-size: .95rem;
    line-height: 1.58;
}

.nofira-community-page .nf-genres {
    margin-bottom: 14px;
}

.nofira-community-page .nf-chip {
    padding: 5px 9px;
    font-size: .7rem;
}

.nofira-community-page .nf-actions-row {
    gap: 20px;
    min-height: 38px;
    padding-top: 12px;
}

.nofira-community-page .nf-react {
    min-width: 32px;
    min-height: 32px;
}

/* Right rail is supporting information, never the protagonist. */
.nofira-community-page .nf-aside {
    opacity: .97;
}

.nofira-community-page .nf-aside-card {
    margin-bottom: 18px;
    padding: 18px;
    border-radius: 14px;
    box-shadow: 0 3px 16px rgba(23,33,47,.025);
}

.nofira-community-page .nf-aside-card h3 {
    margin-bottom: 10px;
    font-size: .9rem;
    letter-spacing: .01em;
}

.nofira-community-page .nf-aside-card p {
    margin: 0 0 10px;
    color: #334155;
    font-size: .9rem;
    line-height: 1.55;
}

.nofira-community-page .nf-aside-card small {
    color: var(--nf-muted);
    line-height: 1.45;
}

.nofira-community-page .nf-empty,
.nofira-community-page .nofira-panel,
.nofira-community-page .nofira-error {
    border-radius: 14px;
}

/* Intermediate desktops: keep the feed generous, reduce rails first. */
@media (max-width: 1380px) {
    .nofira-community-page .nf-shell {
        grid-template-columns: 220px minmax(620px, 1fr) 260px;
        gap: 24px;
        width: min(1280px, calc(100% - 44px));
    }
    .nofira-community-page .nf-main {
        max-width: 780px;
    }
}

@media (max-width: 1160px) {
    .nofira-community-page .nf-shell {
        grid-template-columns: 210px minmax(0, 1fr);
        gap: 26px;
        width: min(1040px, calc(100% - 40px));
    }
    .nofira-community-page .nf-aside {
        display: none;
    }
    .nofira-community-page .nf-main {
        max-width: 800px;
    }
}

@media (max-width: 860px) and (min-width: 721px) {
    .nofira-community-page .nf-shell {
        grid-template-columns: 184px minmax(0, 1fr);
        gap: 20px;
        width: calc(100% - 28px);
        padding-top: 20px;
    }
    .nofira-community-page .nf-nav button {
        padding-left: 10px;
        padding-right: 10px;
    }
    .nofira-community-page .nf-brand img {
        width: 142px;
    }
}

/* Restore the purpose-built mobile application layout. */
@media (max-width: 720px) {
    .nofira-community-page .nf-shell {
        display: block;
        width: 100%;
        padding: 0 0 76px;
    }
    .nofira-community-page .nf-main {
        max-width: none;
    }
    .nofira-community-page .nf-topbar {
        min-height: auto;
        margin: 0;
        padding: 10px 14px;
    }
    .nofira-community-page .nf-topbar > strong {
        display: none;
    }
    .nofira-community-page .nf-tabs {
        gap: 22px;
    }
    .nofira-community-page .nf-photo-card {
        margin-bottom: 10px;
        border-radius: 0;
        box-shadow: none;
    }
    .nofira-community-page .nf-card-head {
        min-height: auto;
        padding: 12px 14px;
    }
    .nofira-community-page .nf-card-body {
        padding: 14px;
    }
    .nofira-community-page .nf-image-wrap {
        min-height: 0;
    }
    .nofira-community-page .nf-image {
        max-height: none;
    }
}

/* ==========================================================
   NOFIRA 0.2 — complete test UI
   ========================================================== */
:root {
    --nf-blue: #315A86;
    --nf-blue-700: #24496f;
    --nf-blue-050: #edf4fa;
    --nf-ink: #17212f;
    --nf-text: #27364a;
    --nf-muted: #6b7280;
    --nf-line: #dfe5eb;
    --nf-soft: #f6f8fa;
    --nf-danger: #b42318;
    --nf-warning: #9a6700;
    --nf-radius: 14px;
}
.nf-btn,.nf-link-btn,.nf-action{font:inherit;cursor:pointer}.nf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 15px;border:1px solid var(--nf-line);border-radius:9px;background:#fff;color:var(--nf-ink);font-weight:650;text-decoration:none}.nf-btn:hover{border-color:#aebdcb;background:#f9fbfc}.nf-btn.primary{background:var(--nf-blue);border-color:var(--nf-blue);color:#fff}.nf-btn.primary:hover{background:var(--nf-blue-700)}.nf-btn.secondary{background:#fff;color:var(--nf-blue);border-color:#a9bed3}.nf-btn.danger,.nf-action.danger{color:var(--nf-danger);border-color:#efc0bb}.nf-btn.warning{color:#7a5200;border-color:#e6cd86;background:#fffaf0}.nf-btn:disabled{opacity:.48;cursor:not-allowed}.nf-link-btn{border:0;background:transparent;color:var(--nf-blue);padding:0;font-weight:600}.nf-action{border:0;background:transparent;color:var(--nf-text);padding:7px 9px;border-radius:8px}.nf-action:hover{background:var(--nf-soft)}
.nf-panel,.nf-onboarding,.nf-settings,.nf-profile,.nf-search-page{background:#fff;border:1px solid var(--nf-line);border-radius:var(--nf-radius);padding:22px}.nf-view-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.nf-view-title h1,.nf-view-title h2,.nf-section-head h2{margin:0;color:var(--nf-ink)}.nf-kicker{font-size:.76rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--nf-blue);margin-bottom:5px}.nf-muted,.nf-help{color:var(--nf-muted)}.nf-help{font-size:.84rem;line-height:1.5}.nf-error,.nf-error-inline{color:#8a1c13;background:#fff2f0;border:1px solid #f1c7c2;border-radius:9px;padding:10px 12px}.nf-empty{padding:34px 22px;text-align:center;color:var(--nf-muted);background:#fff;border:1px dashed #cad3dd;border-radius:var(--nf-radius)}.nf-loading{padding:28px;color:var(--nf-muted);text-align:center}
.nf-form-stack{display:grid;gap:14px}.nf-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nf-form-grid .span-2{grid-column:1/-1}.nf-simple-form label,.nf-form-stack label,.nf-form-grid label,.nf-setting-row{display:grid;gap:6px;color:var(--nf-text);font-size:.91rem;font-weight:600}.nf-simple-form input,.nf-simple-form textarea,.nf-simple-form select,.nf-form-stack input,.nf-form-stack textarea,.nf-form-stack select,.nf-form-grid input,.nf-form-grid textarea,.nf-form-grid select,.nf-inline-form input,.nf-inline-form select,.nf-comment-form textarea,.nf-global-search{width:100%;box-sizing:border-box;border:1px solid #ccd5de;border-radius:9px;background:#fff;color:var(--nf-ink);padding:10px 11px;font:inherit}.nf-simple-form textarea,.nf-form-stack textarea,.nf-form-grid textarea{min-height:100px;resize:vertical}.nf-form-actions,.nf-actions-row,.nf-inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.nf-form-actions{margin-top:8px}.nf-setting-row{padding:13px 0;border-bottom:1px solid #edf0f3}.nf-setting-row:last-child{border-bottom:0}.nf-setting-row input[type=checkbox]{width:auto}.nf-upload-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:22px}.nf-dropzone{display:flex;min-height:280px;align-items:center;justify-content:center;text-align:center;border:2px dashed #b9c7d5;border-radius:14px;background:#f8fbfd;padding:26px}.nf-dropzone:hover{border-color:var(--nf-blue);background:#f1f7fc}.nf-analog-fields{grid-column:1/-1;padding:14px;border:1px solid #d8e0e8;border-radius:10px;background:#fafcfd}
.nf-digest-options{display:grid;gap:10px;margin-top:20px}.nf-digest-options>p{margin:0 0 2px}.nf-digest-option,.nf-visibility-choice{display:flex!important;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--nf-border,var(--nf-line));border-radius:12px;background:var(--nf-surface,#fff);color:var(--nf-ink);cursor:pointer}.nf-digest-option input,.nf-visibility-choice input{width:18px!important;height:18px;flex:none;margin:2px 0 0;accent-color:var(--nf-blue)}.nf-digest-option span,.nf-visibility-choice span{display:grid;gap:4px;min-width:0}.nf-digest-option strong,.nf-visibility-choice strong{line-height:1.25}.nf-digest-option small,.nf-visibility-choice small{color:var(--nf-muted);font-size:.82rem;line-height:1.45;font-weight:400}
.nf-chip,.nf-sensitive-label,.nf-pin{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:#edf2f6;color:#526171;font-size:.74rem;line-height:1.2}.nf-sensitive-label{background:#fff1e8;color:#9b4b14}.nf-pin{background:#f3efff;color:#6044a0}.nf-genres,.nf-photo-meta,.nf-links{display:flex;gap:7px;flex-wrap:wrap}.nf-photo-note{white-space:pre-wrap;line-height:1.55;color:var(--nf-text)}
.nf-license-button{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--nf-blue);font:inherit;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}.nf-license-button:hover{color:var(--nf-blue-700)}
.nf-license-dialog{box-sizing:border-box;width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto}.nf-license-info{padding:0 22px 22px}.nf-license-info>.nf-dialog-head{margin:0 -22px 18px;padding:16px 22px}.nf-license-info>.nf-dialog-head>div{min-width:0}.nf-license-info>.nf-dialog-head .nf-kicker{display:block}.nf-license-intro{margin:0 0 16px;color:var(--nf-muted);line-height:1.5}.nf-license-list{display:grid;gap:10px}.nf-license-item{padding:13px 14px;border:1px solid var(--nf-line);border-radius:11px;background:var(--nf-soft)}.nf-license-item.current{border-color:var(--nf-blue);background:var(--nf-blue-050);box-shadow:inset 4px 0 0 var(--nf-blue)}.nf-license-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.nf-license-item>div>span{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:var(--nf-blue);color:#fff;font-size:.72rem;font-weight:650}.nf-license-item p{margin:7px 0 0;line-height:1.45;color:var(--nf-text)}.nf-license-note{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--nf-line);color:var(--nf-muted);font-size:.84rem;line-height:1.45}.nf-license-info>.nf-form-actions{justify-content:flex-end;margin-top:16px}
html[data-nofira-theme="dark"] .nf-license-item{background:#111820;border-color:#3a4652}html[data-nofira-theme="dark"] .nf-license-item.current{background:#182a3b;border-color:#5b8fbe}html[data-nofira-theme="dark"] .nf-license-item p{color:#dbe4ec}
@media(max-width:560px){.nf-license-info{padding:0 16px 18px}.nf-license-info>.nf-dialog-head{margin:0 -16px 16px;padding:14px 16px}.nf-license-item>div{align-items:flex-start;flex-direction:column}.nf-license-item>div>span{flex:auto}}
.nf-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 16px}.nf-list-cards,.nf-notifications,.nf-report-list{display:grid;gap:12px}.nf-list-card,.nf-conversation,.nf-message,.nf-comment,.nf-event-list>article{background:#fff;border:1px solid var(--nf-line);border-radius:11px;padding:14px}.nf-list-card h3,.nf-project-card h3{margin:0 0 7px}.nf-list-card p{margin:5px 0}.nf-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.nf-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nf-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.nf-gallery img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px}.nf-project-grid,.nf-editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.nf-project-card{background:#fff;border:1px solid var(--nf-line);border-radius:12px;overflow:hidden}.nf-project-card .nf-project-placeholder{aspect-ratio:16/8;background:linear-gradient(135deg,#eaf0f5,#d7e3ee);display:grid;place-items:center;color:var(--nf-muted)}.nf-project-card>div:not(.nf-project-placeholder){padding:14px}.nf-project-sequence{display:grid;gap:20px}.nf-project-sequence figure{margin:0}.nf-project-sequence img{width:100%;display:block;border-radius:10px}.nf-project-sequence figcaption{padding-top:8px;color:var(--nf-muted)}.nf-project-conclusion{margin-top:24px;padding-top:18px;border-top:1px solid var(--nf-line)}
.nf-profile{padding:0;overflow:hidden}.nf-cover{height:210px;background:linear-gradient(130deg,#c7d9e8,#e7eef4);background-size:cover;background-position:center}.nf-profile-main{padding:0 24px 24px}.nf-profile-head{display:flex;gap:18px;align-items:flex-end;margin-top:-52px}.nf-profile-avatar{width:106px;height:106px;border-radius:50%;object-fit:cover;border:5px solid #fff;background:#eef2f6}.nf-profile-title{flex:1;padding-bottom:8px}.nf-profile-title h1{margin:0 0 4px}.nf-verified{color:var(--nf-blue);font-weight:700}.nf-profile-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:20px 0;background:var(--nf-line);border:1px solid var(--nf-line);border-radius:10px;overflow:hidden}.nf-profile-counts>div{background:#fff;padding:13px;text-align:center}.nf-profile-counts strong{display:block;font-size:1.05rem;color:var(--nf-ink)}.nf-profile-tabs,.nf-feed-tabs{display:flex;gap:22px;border-bottom:1px solid var(--nf-line);margin-bottom:18px}.nf-profile-tabs button,.nf-feed-tabs button{border:0;background:transparent;padding:11px 1px;color:var(--nf-muted);font-weight:650;cursor:pointer;border-bottom:2px solid transparent}.nf-profile-tabs button.active,.nf-feed-tabs button.active{color:var(--nf-blue);border-bottom-color:var(--nf-blue)}
.nf-photo-modal{width:min(1180px,96vw);max-height:92vh}.nf-photo-modal-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);min-height:540px}.nf-viewer{display:grid;place-items:center;background:#10151b;min-height:540px}.nf-viewer img{display:block;max-width:100%;max-height:78vh;object-fit:contain}.nf-photo-side{padding:18px;overflow:auto;max-height:82vh}.nf-dialog{border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px rgba(8,17,27,.28)}.nf-dialog::backdrop{background:rgba(7,14,22,.62)}.nf-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--nf-line)}.nf-dialog-head h2{margin:0}.nf-menu-dialog{width:min(360px,92vw)}.nf-details{border-top:1px solid var(--nf-line);margin-top:14px;padding-top:12px}.nf-details summary{cursor:pointer;font-weight:650}.nf-comment-form{display:grid;gap:8px;margin-top:14px}.nf-comment{margin:9px 0}.nf-comment-body{line-height:1.5}.nf-comment-actions{display:flex;gap:10px;margin-top:8px;font-size:.84rem}
.nf-messages-layout{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:560px;border:1px solid var(--nf-line);border-radius:14px;overflow:hidden;background:#fff}.nf-conversation-list{border-right:1px solid var(--nf-line);padding:10px;overflow:auto}.nf-conversation{cursor:pointer;margin-bottom:8px}.nf-conversation.active{border-color:#aac3d9;background:#f2f7fb}.nf-message-stream{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:10px}.nf-message{max-width:78%;align-self:flex-start}.nf-message.mine{align-self:flex-end;background:#eef5fb;border-color:#c6d7e6}.nf-conversation-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nf-message.scheduled{border-style:dashed;background:#f3f7fb}.nf-message.scheduled small{color:var(--nf-blue);font-weight:650}.nf-message-request-form{box-sizing:border-box;width:min(600px,100%);padding:0 22px 22px}.nf-message-request-form>.nf-dialog-head{margin:0 -22px 18px;padding:16px 22px}.nf-message-parties{display:grid;gap:10px;margin-bottom:16px}.nf-message-party{display:grid;grid-template-columns:34px 42px minmax(0,1fr);align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--nf-line);border-radius:11px;background:var(--nf-soft)}.nf-message-party-label{font-weight:700;color:var(--nf-blue)}.nf-message-party img,.nf-message-party>.nf-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover}.nf-message-party>span:last-child{display:grid;min-width:0}.nf-message-party small{color:var(--nf-muted);font-weight:400}.nf-message-recipient-select{margin:0;padding:11px 13px;border:1px solid var(--nf-line);border-radius:11px;background:var(--nf-soft)}.nf-message-schedule-fields{display:grid;gap:6px;padding:12px 14px;border:1px solid #bfd0df;border-radius:11px;background:var(--nf-blue-050)}.nf-message-schedule-fields small{color:var(--nf-muted);line-height:1.4}.nf-message-schedule-fields[hidden]{display:none}.nf-message-request-form>.nf-form-actions{justify-content:flex-end;margin-top:18px}
html[data-nofira-theme="dark"] .nf-message-party,html[data-nofira-theme="dark"] .nf-message-recipient-select{background:#111820;border-color:#3a4652}html[data-nofira-theme="dark"] .nf-message-schedule-fields{background:#182a3b;border-color:#496984}html[data-nofira-theme="dark"] .nf-message.scheduled{background:#182a3b}
@media(max-width:560px){.nf-message-request-form{padding:0 16px 18px}.nf-message-request-form>.nf-dialog-head{margin:0 -16px 16px;padding:14px 16px}.nf-message-party{grid-template-columns:30px 38px minmax(0,1fr)}.nf-message-party img,.nf-message-party>.nf-avatar{width:38px;height:38px}}
.nf-stat-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.nf-stat-cards>div{background:#fff;border:1px solid var(--nf-line);border-radius:12px;padding:16px}.nf-stat-cards strong{display:block;font-size:1.45rem;color:var(--nf-ink)}.nf-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--nf-line);border-radius:10px;overflow:hidden}.nf-table th,.nf-table td{padding:10px 12px;border-bottom:1px solid #edf0f3;text-align:left;vertical-align:top}.nf-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--nf-muted);background:#f8fafb}.nf-event-list{display:grid;gap:12px}.nf-event-date{font-weight:700;color:var(--nf-blue)}
.nf-notifications .nf-list-card{display:grid;grid-template-columns:34px 1fr auto;align-items:start}.nf-notif-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef4fa;color:var(--nf-blue)}.nf-toast{position:fixed;z-index:99999;right:22px;bottom:22px;max-width:380px;padding:12px 16px;border-radius:10px;background:#17212f;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.2)}.nf-toast.danger{background:#8f251c}.nf-search-page .nf-filterbar{display:grid;grid-template-columns:2fr repeat(4,minmax(110px,1fr));gap:9px;margin-bottom:18px}.nf-filterbar input,.nf-filterbar select{min-width:0}.nf-onboarding{max-width:780px;margin:20px auto}.nf-step{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--nf-blue);color:#fff;font-weight:700}.nf-upload-avatar{display:flex;align-items:center;gap:14px}.nf-upload-avatar img{width:78px;height:78px;border-radius:50%;object-fit:cover;background:#eef2f6}.nf-avatar-img,.nf-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#edf2f6}.nf-author-link{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.nf-mini-profile{display:flex;align-items:center;gap:10px}.nf-image-button{display:block;padding:0;border:0;background:#f2f4f6;width:100%;cursor:pointer}.nf-image-button img{width:100%;display:block}.nf-more{margin-left:auto}.nf-global-search{max-width:390px}.nf-sidebar{min-width:0}.nf-mobile-nav,.nf-mobile-add{display:none}

/* Notification timeline (solution A). */
.nf-notification-page{max-width:850px}.nf-notification-page .nf-section-head p{margin:5px 0 0;color:var(--nf-muted)}
.nf-notification-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px;padding-bottom:16px;border-bottom:1px solid var(--nf-line)}
.nf-notification-filters button{appearance:none;border:1px solid var(--nf-line);border-radius:999px;background:var(--nf-surface,#fff);color:var(--nf-text);padding:8px 15px;font:inherit;font-weight:650;cursor:pointer}
.nf-notification-filters button:hover,.nf-notification-filters button.active{border-color:var(--nf-blue);background:var(--nf-blue);color:#fff}
.nf-notification-timeline{display:grid;gap:26px}.nf-notification-group{display:grid;grid-template-columns:90px minmax(0,1fr);gap:18px;align-items:start}
.nf-notification-group>h3{position:sticky;top:16px;margin:13px 0 0;color:var(--nf-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.07em}
.nf-notification-list{position:relative;display:grid;border:1px solid var(--nf-line);border-radius:16px;background:var(--nf-surface,#fff);overflow:hidden;box-shadow:0 8px 24px rgba(26,44,68,.05)}
.nf-notification-item{position:relative;display:block;padding:0;border-bottom:1px solid var(--nf-line);background:transparent}
.nf-notification-item:last-child{border-bottom:0}.nf-notification-item.unread{background:color-mix(in srgb,var(--nf-blue) 7%,var(--nf-surface,#fff))}
.nf-notification-item .nf-notif-icon{width:34px;height:34px}.nf-notification-copy{display:grid;gap:2px;line-height:1.15}.nf-notification-copy strong{display:block;margin:0}.nf-notification-copy p{margin:0;line-height:1.2}.nf-notification-copy time{display:block;margin:1px 0 0;color:var(--nf-muted);font-size:.75rem;line-height:1.1}
.nf-unread-dot{width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--nf-blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--nf-blue) 15%,transparent)}
.nf-notification-trigger{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) 10px 18px;gap:11px;align-items:center;padding:12px 16px;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.nf-notification-trigger:disabled{cursor:default}.nf-notification-message{display:block}.nf-notification-chevron{font-size:1.1rem;color:var(--nf-muted);text-align:center}.nf-notification-item.expanded{background:color-mix(in srgb,var(--nf-blue) 4%,var(--nf-surface,#fff))}.nf-notification-detail{padding:14px 16px 16px 65px;border-top:1px solid var(--nf-line);background:color-mix(in srgb,var(--nf-blue) 3%,var(--nf-surface,#fff))}.nf-notification-preview{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:start}.nf-notification-preview>img,.nf-notification-placeholder{width:112px;height:84px;object-fit:cover;border-radius:9px;background:var(--nf-line)}.nf-notification-preview strong{display:block;margin-bottom:5px}.nf-notification-preview blockquote{margin:6px 0 10px;padding-left:10px;border-left:3px solid var(--nf-blue);line-height:1.35}.nf-notification-context{margin:5px 0 10px;color:var(--nf-muted)}.nf-notification-simple-detail{display:flex;align-items:center;justify-content:space-between;gap:12px}.nf-notification-simple-detail p{margin:0}
@media(max-width:700px){.nf-notification-group{grid-template-columns:1fr;gap:8px}.nf-notification-group>h3{position:static;margin:0}.nf-notification-item{padding:14px;grid-template-columns:38px minmax(0,1fr) 8px}.nf-notification-page .nf-section-head{align-items:flex-start}}
@media(max-width:700px){.nf-notification-item{padding:0}.nf-notification-trigger{grid-template-columns:34px minmax(0,1fr) 8px 16px;padding:11px 12px}.nf-notification-detail{padding:12px}.nf-notification-preview{grid-template-columns:78px minmax(0,1fr)}.nf-notification-preview>img,.nf-notification-placeholder{width:78px;height:78px}.nf-notification-simple-detail{align-items:flex-start;flex-direction:column}}
@media (max-width:1100px){.nf-upload-grid,.nf-photo-modal-grid{grid-template-columns:1fr}.nf-photo-side{max-height:none}.nf-viewer{min-height:360px}.nf-three{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-project-grid,.nf-editorial-grid{grid-template-columns:1fr}.nf-search-page .nf-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-global-search{max-width:280px}}
@media (max-width:720px){.nf-form-grid,.nf-two,.nf-three,.nf-stat-cards{grid-template-columns:1fr}.nf-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-profile-head{align-items:center;margin-top:-38px}.nf-profile-avatar{width:82px;height:82px}.nf-profile-counts{grid-template-columns:repeat(2,1fr)}.nf-messages-layout{grid-template-columns:1fr}.nf-conversation-list{border-right:0;border-bottom:1px solid var(--nf-line);max-height:220px}.nf-photo-modal{width:100vw;max-width:none;max-height:100vh;border-radius:0}.nf-viewer{min-height:320px}.nf-search-page .nf-filterbar{grid-template-columns:1fr}.nf-panel,.nf-onboarding,.nf-settings,.nf-profile,.nf-search-page{border-radius:0;border-left:0;border-right:0}.nf-mobile-nav{display:flex;position:fixed;z-index:8000;bottom:0;left:0;right:0;height:62px;background:#fff;border-top:1px solid var(--nf-line);justify-content:space-around;align-items:center}.nf-mobile-nav button{border:0;background:transparent;color:var(--nf-text);font-size:.72rem}.nf-mobile-add{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--nf-blue)!important;color:#fff!important;margin-top:-18px}.nf-topbar .nf-global-search{display:none}}

/* Dark mode — neutral and photography-first. */
html[data-nofira-theme="dark"] body{background:#0f141a;color:#e8edf2}
html[data-nofira-theme="dark"] .nofira-community-page{background:#0f141a}
html[data-nofira-theme="dark"] .nf-sidebar,
html[data-nofira-theme="dark"] .nf-aside-card,
html[data-nofira-theme="dark"] .nf-photo-card,
html[data-nofira-theme="dark"] .nf-panel,
html[data-nofira-theme="dark"] .nf-onboarding,
html[data-nofira-theme="dark"] .nf-settings,
html[data-nofira-theme="dark"] .nf-profile,
html[data-nofira-theme="dark"] .nf-search-page,
html[data-nofira-theme="dark"] .nf-list-card,
html[data-nofira-theme="dark"] .nf-project-card,
html[data-nofira-theme="dark"] .nf-conversation,
html[data-nofira-theme="dark"] .nf-message,
html[data-nofira-theme="dark"] .nf-table,
html[data-nofira-theme="dark"] .nf-dialog{background:#171d24;color:#e8edf2;border-color:#2b3540}
html[data-nofira-theme="dark"] .nf-topbar{background:#0f141a;border-color:#28323c}
html[data-nofira-theme="dark"] .nf-title,
html[data-nofira-theme="dark"] h1,
html[data-nofira-theme="dark"] h2,
html[data-nofira-theme="dark"] h3,
html[data-nofira-theme="dark"] strong{color:#f5f7f9}
html[data-nofira-theme="dark"] .nf-muted,
html[data-nofira-theme="dark"] .nf-help,
html[data-nofira-theme="dark"] small{color:#9aa7b5}
html[data-nofira-theme="dark"] .nf-btn{background:#1b232c;color:#ecf1f6;border-color:#3a4652}
html[data-nofira-theme="dark"] .nf-btn.primary{background:#3c70a7;border-color:#3c70a7;color:#fff}
html[data-nofira-theme="dark"] input,
html[data-nofira-theme="dark"] textarea,
html[data-nofira-theme="dark"] select,
html[data-nofira-theme="dark"] .nf-global-search{background:#111820;color:#e8edf2;border-color:#3a4652}
html[data-nofira-theme="dark"] .nf-chip{background:#252e38;color:#c7d1dc}
html[data-nofira-theme="dark"] .nf-nav button{color:#c5ced8}
html[data-nofira-theme="dark"] .nf-nav button.active{background:#203349;color:#e9f3fc}
html[data-nofira-theme="dark"] .nf-profile-tabs,
html[data-nofira-theme="dark"] .nf-feed-tabs,
html[data-nofira-theme="dark"] .nf-card-head,
html[data-nofira-theme="dark"] .nf-card-body,
html[data-nofira-theme="dark"] .nf-dialog-head{border-color:#2b3540}
html[data-nofira-theme="dark"] .nf-mobile-nav{background:#171d24;border-color:#2b3540}
.nf-portfolio-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:58vh;overflow:auto;margin:12px 0 18px}.nf-portfolio-picker label{position:relative;border:1px solid var(--nf-line);border-radius:9px;overflow:hidden;background:#fff}.nf-portfolio-picker img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}.nf-portfolio-picker input{position:absolute;top:8px;left:8px;width:20px;height:20px;z-index:2}.nf-portfolio-picker span{display:block;padding:7px;font-size:.82rem}.nf-challenge-entry{display:grid;gap:5px}.nf-challenge-entry .nf-link-btn{font-size:.78rem}.nf-group-posts{display:grid;gap:12px;margin:16px 0}.nf-group-posts article{border:1px solid var(--nf-line);border-radius:10px;padding:13px}.nf-group-posts img{max-width:100%;border-radius:8px}
@media(max-width:720px){.nf-portfolio-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nf-profile-card{text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:11px;align-items:center}.nf-profile-card-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;grid-row:1/4}.nf-profile-card strong,.nf-profile-card span,.nf-profile-card small{grid-column:2}
.nf-share-card{border:1px solid #cbd8e5;border-radius:14px;background:#f8fbfd;padding:12px;margin-bottom:20px}.nf-share-head{padding:2px 4px 12px;color:var(--nf-text)}.nf-share-head small{display:block;color:var(--nf-muted);margin-top:3px}.nf-share-head p{margin:8px 0 0}.nf-share-card .nf-photo-card,.nf-share-card .nf-project-card{margin-bottom:0}
.nf-project-builder{margin-top:18px;padding-top:16px;border-top:1px solid var(--nf-line)}.nf-project-builder-row{display:grid;grid-template-columns:74px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--nf-line)}.nf-project-builder-row img{width:74px;height:58px;object-fit:cover;border-radius:7px}.nf-project-builder-row input{margin-top:5px}.nf-project-builder-row button{border:1px solid var(--nf-line);background:#fff;border-radius:6px;padding:5px 8px;cursor:pointer}
/* Sensitive content gate */
.nf-sensitive-media{position:relative;overflow:hidden;background:#111}
.nf-sensitive-media>img{filter:blur(24px);transform:scale(1.04);transition:filter .2s ease,transform .2s ease}
.nf-sensitive-media.revealed>img{filter:none;transform:none}
.nf-sensitive-label{position:absolute;z-index:2;inset:auto 16px 16px 16px;padding:10px 14px;border-radius:10px;background:rgba(15,23,42,.86);color:#fff;font-size:.85rem;text-align:center;pointer-events:none}
.nf-sensitive-viewer .nf-sensitive-reveal{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.45);background:rgba(15,23,42,.9);color:#fff;padding:12px 18px;border-radius:10px;cursor:pointer}
.nf-sensitive-media.revealed .nf-sensitive-label{display:none}

/* ================================================================
   NOFIRA Theme 0.2.1 — quieter, photography-first interface
   ================================================================ */
body,
button,
input,
textarea,
select {
    font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif;
}

/* Neutralise browser button chrome around brand, author and photo menu. */
.nf-brand,
.nf-author-link,
.nf-more {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.nf-brand {
    display: block;
    width: 100%;
    padding: 0;
    text-align: left;
}

.nofira-community-page .nf-brand {
    padding: 0 4px;
}

.nf-brand img,
.nofira-community-page .nf-brand img {
    display: block;
    width: 190px;
    max-width: 100%;
    height: auto;
}

.nf-author-link {
    min-width: 0;
    padding: 0;
    text-align: left;
}

.nf-author-link > span:last-child {
    display: grid;
    line-height: 1.2;
}

.nf-author-link small {
    margin-top: 3px;
    color: var(--nf-muted);
    font-size: .75rem;
    font-weight: 400;
}

.nf-more {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-left: auto;
    padding: 0;
    border-radius: 50%;
    color: var(--nf-muted);
    font-size: 1.35rem;
    line-height: 1;
}

.nf-more:hover {
    background: #eef2f6;
    color: var(--nf-ink);
}

.nf-brand:focus-visible,
.nf-author-link:focus-visible,
.nf-more:focus-visible,
.nf-nav button:focus-visible,
.nf-btn:focus-visible,
.nf-add:focus-visible {
    outline: 2px solid var(--nf-blue);
    outline-offset: 3px;
}

/* A textual navigation is calmer and more consistent than mixed symbols. */
.nofira-community-page .nf-nav {
    gap: 2px;
    margin: 24px 0 20px;
}

.nofira-community-page .nf-nav button {
    position: relative;
    min-height: 38px;
    gap: 0;
    padding: 8px 12px 8px 16px;
    border-radius: 7px;
    font-size: .94rem;
    font-weight: 600;
}

.nofira-community-page .nf-nav button > span {
    display: none;
}

.nofira-community-page .nf-nav button.active {
    background: #edf3f8;
    color: var(--nf-blue);
}

.nofira-community-page .nf-nav button.active::before {
    content: "";
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--nf-blue);
}

/* Compact action language throughout the application. */
.nf-btn {
    min-height: 34px;
    padding: 6px 12px;
    border-radius: 7px;
    font-size: .9rem;
    font-weight: 600;
}

.nofira-community-page .nf-add {
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 7px;
    box-shadow: none;
    font-size: .92rem;
    font-weight: 600;
}

.nofira-community-page .nf-card-head {
    min-height: 58px;
    padding: 10px 16px;
}

.nofira-community-page .nf-avatar,
.nofira-community-page .nf-avatar-img {
    width: 36px;
    height: 36px;
}

.nofira-community-page .nf-author {
    font-size: .94rem;
    font-weight: 600;
}

.nofira-community-page .nf-aside-card {
    padding: 15px 16px;
    border-radius: 10px;
    box-shadow: none;
}

@media (max-width: 860px) and (min-width: 721px) {
    .nf-brand img,
    .nofira-community-page .nf-brand img {
        width: 168px;
    }
}

@media (max-width: 720px) {
    .nofira-community-page .nf-card-head {
        min-height: 54px;
        padding: 9px 14px;
    }
}

html[data-nofira-theme="dark"] .nf-more:hover {
    background: #252e38;
    color: #f5f7f9;
}

html[data-nofira-theme="dark"] .nofira-community-page .nf-nav button.active {
    background: #203349;
}

/* Homepage 0.2.3: refined profile hierarchy and search control. */
.nofira-community-page .nf-topbar:has(.nf-view-title:empty) {
    display: none;
}

#nofira-app .nf-aside-search {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 0;
    padding: 4px 5px 4px 14px;
    border: 1px solid #c9d3dd;
    border-radius: 999px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

#nofira-app .nf-aside-search input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--nf-text);
    padding: 7px 0;
    font-size: .92rem;
}

#nofira-app .nf-aside-search input::placeholder {
    color: #7b8794;
}

#nofira-app .nf-aside-search:focus-within {
    border-color: var(--nf-blue);
    box-shadow: 0 0 0 3px rgba(49,90,134,.12);
}

#nofira-app .nf-aside-search button {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--nf-blue);
    color: #fff;
    cursor: pointer;
}

#nofira-app .nf-aside-search button:hover {
    background: var(--nf-blue-700);
}

#nofira-app .nf-aside-search button svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

#nofira-app .nf-aside-search button:focus-visible {
    outline: 2px solid var(--nf-blue);
    outline-offset: 2px;
}

#nofira-app .nf-mini-profile-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    min-width: 0;
    line-height: 1.15;
}

#nofira-app .nf-mini-profile-name,
#nofira-app .nf-mini-profile-username {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#nofira-app .nf-mini-profile-name {
    color: var(--nf-ink);
    font-size: .96rem;
    font-weight: 700;
}

#nofira-app .nf-mini-profile-username {
    display: block;
    color: var(--nf-muted);
    font-size: .8rem;
    font-weight: 400;
}

html[data-nofira-theme="dark"] #nofira-app .nf-aside-search {
    border-color: #465361;
    background: #111820;
}

html[data-nofira-theme="dark"] #nofira-app .nf-aside-search input {
    background: transparent;
}

html[data-nofira-theme="dark"] #nofira-app .nf-aside-search button:hover {
    background: #416f9f;
}

#nofira-app .nf-aside-card {
    padding: 12px 2px 14px;
    border: 0;
    border-bottom: 1px solid var(--nf-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* Schede elenco Challenge e Gruppi */
#nofira-app button.nf-list-card[data-challenge],
#nofira-app button.nf-list-card[data-group]{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "title meta"
    "description meta";
  align-items:center;
  width:100%;
  min-width:0;
  gap:6px 18px;
  padding:15px 16px;
  appearance:none;
  border:1px solid var(--nf-line);
  border-radius:13px;
  background:#fff;
  color:var(--nf-ink);
  text-align:left;
  cursor:pointer;
  transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
#nofira-app button.nf-list-card[data-challenge]:hover,
#nofira-app button.nf-list-card[data-group]:hover{
  border-color:#a8bfd5;
  background:#fbfdff;
  box-shadow:0 7px 20px rgba(31,65,96,.08);
  transform:translateY(-1px);
}
#nofira-app button.nf-list-card[data-challenge]:focus-visible,
#nofira-app button.nf-list-card[data-group]:focus-visible{
  outline:3px solid rgba(49,90,134,.2);
  outline-offset:2px;
}
#nofira-app button.nf-list-card[data-challenge]>strong,
#nofira-app button.nf-list-card[data-group]>strong{
  grid-area:title;
  display:block;
  min-width:0;
  color:var(--nf-ink);
  font-size:.96rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}
#nofira-app button.nf-list-card[data-challenge]>span,
#nofira-app button.nf-list-card[data-group]>span{
  grid-area:description;
  display:block;
  min-width:0;
  color:var(--nf-muted);
  font-size:.82rem;
  line-height:1.45;
  overflow-wrap:anywhere;
}
#nofira-app button.nf-list-card[data-challenge]>small,
#nofira-app button.nf-list-card[data-group]>small{
  grid-area:meta;
  display:inline-flex;
  max-width:260px;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  background:#eef4fa;
  color:var(--nf-blue);
  font-size:.75rem;
  font-weight:650;
  line-height:1.25;
  text-align:center;
  white-space:normal;
}
html[data-nofira-theme=dark] #nofira-app button.nf-list-card[data-challenge],
html[data-nofira-theme=dark] #nofira-app button.nf-list-card[data-group]{
  border-color:#34414d;
  background:#171d24;
}
html[data-nofira-theme=dark] #nofira-app button.nf-list-card[data-challenge]:hover,
html[data-nofira-theme=dark] #nofira-app button.nf-list-card[data-group]:hover{
  border-color:#668bb2;
  background:#1d2630;
}
html[data-nofira-theme=dark] #nofira-app button.nf-list-card[data-challenge]>small,
html[data-nofira-theme=dark] #nofira-app button.nf-list-card[data-group]>small{
  background:#223141;
  color:#a9c4de;
}
@media(max-width:520px){
  #nofira-app button.nf-list-card[data-challenge],
  #nofira-app button.nf-list-card[data-group]{
    grid-template-columns:1fr;
    grid-template-areas:
      "title"
      "description"
      "meta";
    gap:6px;
  }
  #nofira-app button.nf-list-card[data-challenge]>small,
  #nofira-app button.nf-list-card[data-group]>small{
    max-width:100%;
    justify-self:start;
  }
}

/* Salvataggio fotografia: scelta o creazione raccolta */
#nofira-app .nf-save-photo-form{
  display:grid;
  width:min(540px,100%);
  gap:16px;
}
#nofira-app .nf-save-photo-form>.nf-muted{
  margin:-6px 0 0;
}
#nofira-app .nf-save-collection-list{
  display:grid;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  gap:9px;
}
#nofira-app .nf-save-collection-list legend{
  margin-bottom:8px;
  color:var(--nf-ink);
  font-size:.84rem;
  font-weight:700;
}
#nofira-app .nf-save-collection-option{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  align-items:center;
  gap:11px;
  min-width:0;
  padding:12px 13px;
  border:1px solid var(--nf-line);
  border-radius:13px;
  background:#fff;
  cursor:pointer;
  transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease;
}
#nofira-app .nf-save-collection-option:hover{
  border-color:#9db5cd;
  background:#f8fbfd;
}
#nofira-app .nf-save-collection-option:has(input:checked){
  border-color:var(--nf-blue);
  background:#f2f7fb;
  box-shadow:0 0 0 3px rgba(49,90,134,.1);
}
#nofira-app .nf-save-collection-option input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:var(--nf-blue);
}
#nofira-app .nf-save-collection-option>span{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:3px;
}
#nofira-app .nf-save-collection-option strong{
  overflow:hidden;
  color:var(--nf-ink);
  font-size:.92rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#nofira-app .nf-save-collection-option small{
  color:var(--nf-muted);
  font-size:.77rem;
}
#nofira-app .nf-save-new-collection{
  padding:12px 13px;
  border:1px solid var(--nf-line);
  border-radius:13px;
  background:#f8fafc;
}
#nofira-app .nf-save-new-collection summary{
  color:var(--nf-blue);
  font-size:.88rem;
  font-weight:700;
  cursor:pointer;
}
#nofira-app .nf-save-new-collection summary small{
  margin-left:4px;
  color:var(--nf-muted);
  font-size:.72rem;
  font-weight:500;
}
#nofira-app .nf-save-new-collection[open]{
  display:grid;
  gap:12px;
}
#nofira-app .nf-save-new-collection p{
  margin:3px 0 0;
  color:var(--nf-muted);
  font-size:.8rem;
  line-height:1.4;
}
#nofira-app .nf-save-new-collection label{
  display:grid;
  gap:6px;
  color:var(--nf-ink);
  font-size:.82rem;
  font-weight:650;
}
#nofira-app .nf-save-photo-form>.nf-form-actions .nf-btn.secondary[data-close-dialog]{
  flex:0 1 auto;
  width:auto;
  height:auto;
  min-width:88px;
  padding:6px 12px;
  border-radius:7px;
}
html[data-nofira-theme=dark] #nofira-app .nf-save-collection-option{
  border-color:#34414d;
  background:#171d24;
}
html[data-nofira-theme=dark] #nofira-app .nf-save-collection-option:hover,
html[data-nofira-theme=dark] #nofira-app .nf-save-collection-option:has(input:checked){
  border-color:#668bb2;
  background:#202a35;
}
html[data-nofira-theme=dark] #nofira-app .nf-save-new-collection{
  border-color:#34414d;
  background:#171d24;
}

/* Area personale contestuale e avvisi Home */
.nofira-community-page .nf-sidebar>.nf-add{margin:18px 0 8px}
.nofira-community-page .nf-sidebar>.nf-add+.nf-nav{margin:0 0 20px}
.nf-top-profile{display:none;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--nf-line);border-radius:8px;background:var(--nf-card);color:var(--nf-text);font:inherit;font-size:.84rem;font-weight:600;cursor:pointer}
.nf-profile-menu{margin:10px 0 12px;padding:12px;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-card);box-shadow:var(--nf-shadow)}
.nf-profile-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 4px 9px;color:var(--nf-ink,var(--nf-text));font-size:.84rem}
.nf-profile-menu-head button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--nf-muted);font-size:1.25rem;cursor:pointer}
.nf-profile-nav{display:grid;gap:3px}
.nf-profile-nav button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--nf-text);font:inherit;font-size:.91rem;font-weight:600;text-align:left;cursor:pointer}
.nf-profile-nav button:hover,.nf-profile-nav button.active{background:#edf3f8;color:var(--nf-blue)}
.nf-profile-nav-icon{color:var(--nf-muted);font-size:1rem;text-align:center}
.nf-nav-badge,.nf-profile-alert-count{display:inline-grid;min-width:20px;height:20px;place-items:center;padding:0 6px;border-radius:999px;background:var(--nf-blue);color:#fff;font-size:.7rem;font-weight:700;line-height:1}
.nf-home-notices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 16px}
.nf-home-notices[hidden],.nf-nav-badge[hidden],.nf-profile-alert-count[hidden]{display:none!important}
.nf-home-notice{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid #cbd8e5;border-radius:10px;background:#f6f9fc;color:var(--nf-text);font:inherit;text-align:left;cursor:pointer}
.nf-home-notice:hover{border-color:#9fb8d0;background:#eef5fb}
.nf-home-notice-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#e4eef7;color:var(--nf-blue);font-size:1.05rem}
.nf-home-notice strong,.nf-home-notice small{display:block}.nf-home-notice strong{color:var(--nf-ink,var(--nf-text));font-size:.92rem}.nf-home-notice small{margin-top:2px;color:var(--nf-muted);font-size:.78rem}.nf-home-notice-arrow{color:var(--nf-blue);font-size:1.35rem}
.nf-share-head strong{color:var(--nf-ink,var(--nf-text))}
html[data-nofira-theme=dark] .nf-share-card{border-color:#2b3540;background:#171d24}
html[data-nofira-theme=dark] .nf-share-head,html[data-nofira-theme=dark] .nf-share-head strong{color:#e8edf2}
html[data-nofira-theme=dark] .nf-profile-menu,html[data-nofira-theme=dark] .nf-home-notice{border-color:#2b3540;background:#171d24;color:#e8edf2}
html[data-nofira-theme=dark] .nf-profile-menu-head,html[data-nofira-theme=dark] .nf-home-notice strong{color:#f5f7f9}
html[data-nofira-theme=dark] .nf-profile-nav button{color:#c5ced8}
html[data-nofira-theme=dark] .nf-profile-nav button:hover,html[data-nofira-theme=dark] .nf-profile-nav button.active{background:#203349;color:#e9f3fc}
.nf-profile-backdrop[hidden]{display:none}
@media(max-width:1050px){
 .nf-top-profile{display:inline-flex}
 .nf-profile-backdrop:not([hidden]){position:fixed;z-index:8400;inset:0;display:block;background:rgba(8,13,19,.58)}
 .nf-aside.nf-profile-menu-visible{position:fixed;z-index:8500;top:12px;right:12px;bottom:76px;display:block;width:min(340px,calc(100vw - 24px));padding:14px;overflow-y:auto;border:1px solid var(--nf-line);border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.32)}
 html[data-nofira-theme=dark] .nf-aside.nf-profile-menu-visible{border-color:#2b3540;background:#111820;color:#e8edf2}
}
@media(max-width:720px){
 .nf-top-profile{display:inline-flex;padding:6px 8px;font-size:.78rem}
 .nf-home-notices{grid-template-columns:1fr;margin:0 14px 14px}
 .nf-aside.nf-profile-menu-visible{top:10px;right:10px;width:calc(100vw - 20px)}
}
@media(max-width:520px){
  #nofira-app .nf-save-photo-form{
    gap:13px;
  }
  #nofira-app .nf-save-collection-option{
    padding:11px;
  }
}

/* ================================================================
   NOFIRA Theme 0.2.6 — unified controls and interaction states
   ================================================================ */
.nofira-community-page #nofira-app {
  --nf-control-height: 42px;
  --nf-control-radius: 11px;
  --nf-action-height: 38px;
  --nf-focus-ring: 0 0 0 3px rgba(49,90,134,.16);
  --nf-control-border: #c9d3dd;
  --nf-control-hover: #9fb4c8;
}

/* Buttons: one visual grammar, with clear semantic variants. */
.nofira-community-page #nofira-app.nofira-app-root button.nf-btn,
.nofira-community-page #nofira-app.nofira-app-root a.nf-btn {
  appearance: none;
  display: inline-flex;
  width: auto;
  min-width: 0;
  min-height: var(--nf-action-height);
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid #9fb7ce;
  border-radius: var(--nf-button-radius,5px);
  background: #fff;
  color: var(--nf-blue);
  font: inherit;
  font-size: .86rem;
  font-weight: 650;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none;
  transition: color .18s ease, background-color .18s ease,
              border-color .18s ease, box-shadow .18s ease,
              transform .18s ease;
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-btn.primary,
.nofira-community-page #nofira-app.nofira-app-root a.nf-btn.primary {
  border-color: var(--nf-blue);
  background: var(--nf-blue);
  color: #fff;
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-btn.secondary,
.nofira-community-page #nofira-app.nofira-app-root a.nf-btn.secondary {
  border-color: #9fb7ce;
  background: #fff;
  color: var(--nf-blue);
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-btn.danger,
.nofira-community-page #nofira-app.nofira-app-root a.nf-btn.danger {
  border-color: #e1a49e;
  background: #fff;
  color: var(--nf-danger);
}

@media (hover:hover) {
  .nofira-community-page #nofira-app.nofira-app-root button.nf-btn:hover,
  .nofira-community-page #nofira-app.nofira-app-root a.nf-btn:hover {
    border-color: #7899b8;
    background: #f2f7fb;
    color: var(--nf-blue-700);
    transform: translateY(-1px);
  }

  .nofira-community-page #nofira-app.nofira-app-root button.nf-btn.primary:hover,
  .nofira-community-page #nofira-app.nofira-app-root a.nf-btn.primary:hover {
    border-color: var(--nf-blue-700);
    background: var(--nf-blue-700);
    color: #fff;
  }

  .nofira-community-page #nofira-app.nofira-app-root button.nf-btn.danger:hover,
  .nofira-community-page #nofira-app.nofira-app-root a.nf-btn.danger:hover {
    border-color: #cf7d75;
    background: #fff3f1;
    color: #8f1f17;
  }
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-btn:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root a.nf-btn:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root button.nf-action:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root button.nf-more:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root button.nf-author-link:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root button.nf-image-button:focus-visible {
  outline: 0;
  box-shadow: var(--nf-focus-ring);
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-btn:disabled,
.nofira-community-page #nofira-app.nofira-app-root button.nf-btn[aria-disabled="true"] {
  opacity: .5;
  transform: none;
  cursor: not-allowed;
}

/* Text fields, dates, text areas and predefined lists. */
.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]),
  textarea,
  select
) {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: var(--nf-control-height);
  margin: 0;
  border: 1px solid var(--nf-control-border);
  border-radius: 999px;
  background-color: #fff;
  color: var(--nf-text);
  font: inherit;
  font-size: .91rem;
  font-weight: 400;
  line-height: 1.35;
  box-shadow: none;
  transition: border-color .18s ease, background-color .18s ease,
              box-shadow .18s ease;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]) {
  padding: 0 14px;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) textarea {
  min-height: 104px !important;
  padding: 11px 13px;
  border-radius: 13px !important;
  resize: vertical;
}

.nofira-community-page #nofira-app.nofira-app-root textarea[rows="2"] {
  min-height: 76px !important;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) select:not([multiple]) {
  padding: 0 40px 0 14px;
  background-image:
    linear-gradient(45deg, transparent 50%, #69798a 50%),
    linear-gradient(135deg, #69798a 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) select[multiple] {
  appearance: auto !important;
  min-height: 178px !important;
  padding: 7px;
  border-radius: 13px !important;
  background-image: none;
  overflow-y: auto;
  cursor: default;
}

.nofira-community-page #nofira-app.nofira-app-root select[multiple] option {
  margin: 2px 0;
  padding: 8px 10px;
  border-radius: 7px;
  color: var(--nf-text);
}

.nofira-community-page #nofira-app.nofira-app-root select[multiple] option:checked {
  background: linear-gradient(var(--nf-blue),var(--nf-blue));
  color: #fff;
}

.nofira-community-page #nofira-app.nofira-app-root :is(input,textarea)::placeholder {
  color: #7b8794;
  opacity: 1;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) :is(input,textarea,select):focus {
  border-color: var(--nf-blue) !important;
  outline: 0;
  box-shadow: var(--nf-focus-ring) !important;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) :is(input,textarea,select):user-invalid {
  border-color: #c94d43 !important;
  box-shadow: 0 0 0 3px rgba(180,35,24,.11) !important;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) :is(input,textarea,select):disabled {
  border-color: #d8dee5;
  background-color: #f1f4f7;
  color: #7b8794;
  cursor: not-allowed;
  opacity: 1;
}

/* Checkbox and radio controls must never inherit the full field width. */
.nofira-community-page #nofira-app.nofira-app-root input[type="checkbox"],
.nofira-community-page #nofira-app.nofira-app-root input[type="radio"] {
  appearance: auto;
  flex: 0 0 18px;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px;
  margin: 1px 0 0;
  padding: 0;
  border-radius: 4px;
  accent-color: var(--nf-blue);
  box-shadow: none !important;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root input[type="radio"] {
  border-radius: 50%;
}

.nofira-community-page #nofira-app.nofira-app-root input:is([type="checkbox"],[type="radio"]):focus-visible {
  outline: 2px solid var(--nf-blue);
  outline-offset: 3px;
  box-shadow: none !important;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  form.nf-upload,
  form.nf-simple-form,
  .nf-form-stack,
  .nf-form-grid
) > label:has(> input[type="checkbox"]),
.nofira-community-page #nofira-app.nofira-app-root .nf-settings .nf-panel > label:has(> input[type="checkbox"]) {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: var(--nf-text);
  font-weight: 500;
  line-height: 1.35;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-setting-row label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  white-space: nowrap;
  cursor: pointer;
}

/* Boolean options in dialogs: control and description always share one row. */
#nf-dialog label.nf-check-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100%;
  min-height: 28px;
  margin: 0;
  padding: 3px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--nf-text);
  font-weight: 600;
  line-height: 1.35;
  cursor: pointer;
}

#nf-dialog label.nf-check-row > input:is([type="checkbox"],[type="radio"]) {
  appearance: auto;
  flex: 0 0 18px !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--nf-blue);
}

/* Compact multiple-choice field used for photographic genres. */
#nf-dialog .nf-native-multiselect {
  display: none !important;
}

#nf-dialog .nf-multiselect {
  position: relative;
  width: 100%;
}

#nf-dialog .nf-multiselect > summary {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 10px 42px 10px 14px;
  overflow: hidden;
  border: 1px solid #ccd5de;
  border-radius: 999px;
  background: #fff;
  color: var(--nf-text);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}

#nf-dialog .nf-multiselect > summary::-webkit-details-marker {
  display: none;
}

#nf-dialog .nf-multiselect > summary::after {
  content: '⌄';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-55%);
  color: var(--nf-text);
  font-size: 1.1rem;
}

#nf-dialog .nf-multiselect > summary > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#nf-dialog .nf-multiselect > summary > span.is-placeholder {
  color: var(--nf-muted);
  font-weight: 500;
}

#nf-dialog .nf-multiselect-options {
  position: absolute;
  z-index: 40;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: grid;
  gap: 2px;
  max-height: 240px;
  padding: 8px;
  overflow: auto;
  border: 1px solid #ccd5de;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(20,34,48,.18);
}

#nf-dialog .nf-multiselect-option,
#nf-dialog label.nf-multiselect-option.nf-check-row {
  display: flex !important;
  min-height: 36px !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 7px 8px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  cursor: pointer;
}

#nf-dialog .nf-multiselect-option:hover {
  background: #eef4fa !important;
}

html[data-nofira-theme="dark"] #nf-dialog .nf-multiselect > summary,
html[data-nofira-theme="dark"] #nf-dialog .nf-multiselect-options {
  border-color: #44515f;
  background: #171d24;
  color: #e8edf2;
}

/* Popup and profile corrections: spacing, contrast and sensitive media. */
#nofira-app #nf-dialog {
  color: #17212f;
}

#nofira-app #nf-dialog :is(.nf-photo-side,.nf-simple-form,.nf-upload,.nf-menu-dialog,.nf-panel) {
  color: #17212f;
}

#nofira-app #nf-dialog :is(h1,h2,h3,strong,.nf-author-link,.nf-details summary,.nf-photo-meta) {
  color: #17212f !important;
}

#nofira-app #nf-dialog .nf-photo-side {
  background: #fff;
}

#nofira-app #nf-dialog .nf-viewer {
  box-sizing: border-box;
  padding: clamp(14px,2vw,24px);
}

#nofira-app #nf-dialog .nf-viewer > img {
  max-width: 100%;
  max-height: calc(78vh - 48px);
}

#nofira-app .nf-profile-photo-wrap {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: 7px;
  background: #111;
}

#nofira-app .nf-profile-photo-wrap > img {
  border-radius: 0;
}

#nofira-app .nf-profile-photo-wrap .nf-sensitive-label {
  inset: auto 8px 8px;
  padding: 7px 9px;
  font-size: .7rem;
}

/* Owner actions on photographs in the profile grid. */
#nofira-app .nf-gallery-card-shell {
  position: relative;
  min-width: 0;
}

#nofira-app .nf-gallery-card-shell > .nf-gallery-card {
  width: 100%;
  height: 100%;
}

#nofira-app .nf-profile-photo-actions {
  position: absolute;
  z-index: 8;
  top: 15px;
  right: 15px;
}

#nofira-app .nf-profile-photo-actions > summary {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  background: rgba(17,33,49,.86);
  color: #fff;
  box-shadow: 0 3px 10px rgba(0,0,0,.2);
  cursor: pointer;
  list-style: none;
}

#nofira-app .nf-profile-photo-actions > summary::-webkit-details-marker {
  display: none;
}

#nofira-app .nf-profile-photo-actions > summary svg {
  width: 20px;
  height: 20px;
}

#nofira-app .nf-profile-photo-actions-menu {
  position: absolute;
  top: 45px;
  right: 0;
  width: 205px;
  padding: 6px;
  border: 1px solid var(--nf-line);
  border-radius: 10px;
  background: var(--nf-surface);
  box-shadow: 0 12px 28px rgba(15,31,47,.2);
}

#nofira-app .nf-profile-photo-actions-menu button {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--nf-text);
  text-align: left;
  cursor: pointer;
}

#nofira-app .nf-profile-photo-actions-menu button:hover,
#nofira-app .nf-profile-photo-actions-menu button:focus-visible {
  background: var(--nf-soft);
}

#nofira-app .nf-profile-photo-actions-menu button.danger {
  color: var(--nf-danger);
}

#nofira-app .nf-profile-photo-actions-menu svg {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
}

@media (max-width:720px) {
  #nofira-app .nf-profile-photo-actions {
    top: 13px;
    right: 13px;
  }

  #nofira-app .nf-profile-photo-actions > summary {
    width: 42px;
    height: 42px;
  }
}

#nofira-app #nf-dialog .nf-share-dialog {
  width: min(560px,100%);
}

#nofira-app #nf-dialog .nf-share-dialog > .nf-muted {
  margin: 0 0 14px;
}

html[data-nofira-theme="dark"] #nofira-app #nf-dialog,
html[data-nofira-theme="dark"] #nofira-app #nf-dialog :is(.nf-photo-side,.nf-simple-form,.nf-upload,.nf-menu-dialog,.nf-panel) {
  background: #171d24;
  color: #e8edf2;
}

html[data-nofira-theme="dark"] #nofira-app #nf-dialog :is(h1,h2,h3,strong,.nf-author-link,.nf-details summary,.nf-photo-meta) {
  color: #f5f7f9 !important;
}

html[data-nofira-theme="dark"] #nofira-app #nf-dialog .nf-dialog-head {
  background: #171d24 !important;
  border-color: #2b3540;
}

html[data-nofira-theme="dark"] #nofira-app #nf-dialog .nf-portfolio-picker label {
  background: #111820;
  border-color: #3a4652;
}

/* Native file fields receive the same surface and a secondary action. */
.nofira-community-page #nofira-app.nofira-app-root input[type="file"]:not([hidden]) {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: var(--nf-control-height);
  padding: 5px;
  border: 1px solid var(--nf-control-border);
  border-radius: var(--nf-control-radius);
  background: #fff;
  color: var(--nf-muted);
  font: inherit;
  font-size: .86rem;
}

.nofira-community-page #nofira-app.nofira-app-root input[type="file"]:not([hidden])::file-selector-button {
  min-height: 30px;
  margin-right: 10px;
  padding: 6px 11px;
  border: 1px solid #9fb7ce;
  border-radius: 999px;
  background: #fff;
  color: var(--nf-blue);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}

/* Form rhythm and action placement. */
.nofira-community-page #nofira-app.nofira-app-root form.nf-simple-form,
.nofira-community-page #nofira-app.nofira-app-root form.nf-upload {
  gap: 14px;
}

.nofira-community-page #nofira-app.nofira-app-root form.nf-simple-form {
  display: grid;
}

.nofira-community-page #nofira-app.nofira-app-root form.nf-simple-form > button.nf-btn:last-child {
  justify-self: end;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-form-actions {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 14px;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-inline-form {
  align-items: flex-end;
  gap: 9px;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-inline-form :is(input,select,textarea) {
  flex: 1 1 240px;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-inline-form textarea {
  min-height: 88px;
}

/* Only the header control is a circular close button. */
.nofira-community-page #nofira-app #nf-dialog .nf-dialog-head > button[data-close-dialog] {
  display: grid;
  flex: 0 0 36px;
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 1px solid #d5e0ea;
  border-radius: 50%;
  background: #eef4fa;
  color: var(--nf-blue);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.nofira-community-page #nofira-app #nf-dialog .nf-form-actions > button[data-close-dialog] {
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  min-width: 88px;
  height: auto;
  min-height: var(--nf-action-height);
  padding: 8px 14px;
  border: 1px solid #9fb7ce;
  border-radius: 999px;
  background: #fff;
  color: var(--nf-blue);
  font-size: .86rem;
  font-weight: 650;
  line-height: 1.1;
}

.nofira-community-page #nofira-app #nf-dialog {
  max-height: calc(100dvh - 28px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Comments: compact submit action and aligned contextual commands. */
.nofira-community-page #nofira-app #nf-dialog .nf-comment-form {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 9px;
}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-form textarea {
  min-height: 88px !important;
}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-form > button {
  width: auto;
  min-width: 82px;
  justify-self: end;
}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin-top: 9px;
}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-actions button {
  appearance: none;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 9px 15px;
  border: 1px solid #a9bed3;
  border-radius: 9px;
  background: #fff;
  color: var(--nf-blue);
  font: inherit;
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-actions button:hover {
  border-color: #7f9fbe;
  background: #f9fbfc;
}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-actions button:is([data-delete-comment],[data-report-comment]) {
  color: var(--nf-danger);
  border-color: #efc0bb;
}

.nf-comment-text-modal{width:min(560px,calc(100% - 24px));border-radius:16px;overflow:hidden}.nf-comment-text-modal::backdrop{background:rgba(7,14,22,.68)}.nf-comment-text-dialog{padding:0 18px 18px}.nf-comment-text-dialog>.nf-dialog-head{margin:0 -18px 16px}.nf-comment-reference{margin:0 0 14px;padding:12px 14px;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-soft)}.nf-comment-reference strong{display:block;margin-bottom:5px}.nf-comment-reference p{margin:0;white-space:pre-wrap}.nf-comment-text-dialog>label{display:grid;gap:7px;font-weight:650}.nf-comment-text-dialog textarea{width:100%;min-height:130px;padding:11px;border:1px solid #ccd5de;border-radius:10px;background:#fff;color:var(--nf-ink);font:inherit;resize:vertical}.nf-comment-text-dialog .nf-form-actions{justify-content:flex-end}

.nofira-community-page #nofira-app #nf-dialog .nf-comment-actions button:focus-visible {
  outline: 0;
  box-shadow: var(--nf-focus-ring);
}

/* Small icon controls used by the project sequence builder. */
.nofira-community-page #nofira-app #nf-dialog .nf-project-builder-row button {
  display: inline-grid;
  width: 34px;
  min-width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 1px solid #c5d1dc;
  border-radius: 50%;
  background: #fff;
  color: var(--nf-blue);
  font: inherit;
  cursor: pointer;
}

.nofira-community-page #nofira-app #nf-dialog .nf-project-builder-row button[data-remove] {
  border-color: #e1a49e;
  color: var(--nf-danger);
}

/* Tabs, photo actions and structural buttons keep a quieter hierarchy. */
.nofira-community-page #nofira-app.nofira-app-root :is(.nf-feed-tabs,.nf-profile-tabs) button:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root :is(.nf-nav,.nf-profile-nav) button:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root button.nf-home-notice:focus-visible,
.nofira-community-page #nofira-app.nofira-app-root button.nf-list-card:focus-visible {
  outline: 0;
  box-shadow: var(--nf-focus-ring);
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-action {
  display: inline-flex;
  min-width: 38px;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 9px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--nf-text);
  font: inherit;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-action:hover,
.nofira-community-page #nofira-app.nofira-app-root button.nf-action.active {
  background: #edf4fa;
  color: var(--nf-blue);
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-list-card {
  appearance: none;
  width: 100%;
  color: var(--nf-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-list-card:hover {
  border-color: #a8bfd5;
  background: #fbfdff;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-conversation-list > button,
.nofira-community-page #nofira-app.nofira-app-root .nf-profile-results > button {
  appearance: none;
  display: grid;
  width: 100%;
  gap: 4px;
  margin: 0 0 8px;
  padding: 12px;
  border: 1px solid var(--nf-line);
  border-radius: 10px;
  background: #fff;
  color: var(--nf-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-profile-results > .nf-search-profile {
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-search-profile .nf-avatar-img,
.nofira-community-page #nofira-app.nofira-app-root .nf-search-profile .nf-avatar {
  width: 48px;
  height: 48px;
  grid-row: 1;
  display: grid;
  place-items: center;
  font-weight: 700;
  color: var(--nf-blue);
}

.nofira-community-page #nofira-app.nofira-app-root .nf-search-profile-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nofira-community-page #nofira-app.nofira-app-root .nf-search-profile-copy small {
  color: var(--nf-muted);
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-gallery > button,
  .nf-challenge-entry > button,
  .nf-group-posts button[data-open-photo],
  .nf-collection-photo-open
) {
  appearance: none;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-gallery > button,
  .nf-challenge-entry > button,
  .nf-group-posts button[data-open-photo],
  .nf-collection-photo-open,
  .nf-conversation-list > button,
  .nf-profile-results > button
):focus-visible {
  outline: 0;
  box-shadow: var(--nf-focus-ring);
}

.nofira-community-page #nofira-app.nofira-app-root button.nf-remove-collection {
  appearance: none;
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  padding: 6px 11px;
  border: 1px solid #e1a49e;
  border-radius: 999px;
  background: #fff;
  color: var(--nf-danger);
  font: inherit;
  font-size: .8rem;
  font-weight: 650;
  cursor: pointer;
}

/* Authentication forms use the same controls outside the application shell. */
.nofira-auth-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.nofira-auth-card textarea,
.nofira-auth-card select {
  width: 100%;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid #c9d3dd;
  border-radius: 11px;
  background: #fff;
  color: var(--nf-text);
  font: inherit;
  font-weight: 400;
}

.nofira-auth-card input:is([type="checkbox"],[type="radio"]) {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  padding: 0;
  accent-color: var(--nf-blue);
  vertical-align: -3px;
}

.nofira-auth-card :is(button,input[type="submit"],.button) {
  display: inline-flex;
  width: auto;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 9px 16px;
  border: 1px solid var(--nf-blue);
  border-radius: 999px;
  background: var(--nf-blue);
  color: #fff;
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}

/* Dark theme equivalents. */
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app {
  --nf-control-border: #465361;
  --nf-control-hover: #66809a;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root button.nf-btn.secondary,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root a.nf-btn.secondary,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app #nf-dialog .nf-form-actions > button[data-close-dialog] {
  border-color: #526d87;
  background: #171d24;
  color: #b7d0e9;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root button.nf-btn.danger,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root a.nf-btn.danger,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root button.nf-remove-collection {
  border-color: #7b3d38;
  background: #221413;
  color: #ffaaa2;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root :is(
  .nf-upload,
  .nf-simple-form,
  .nf-form-stack,
  .nf-form-grid,
  .nf-inline-form,
  .nf-comment-form,
  .nf-filterbar,
  .nf-settings
) :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]),
  textarea,
  select
),
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root input[type="file"]:not([hidden]),
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root .nf-conversation-list > button,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root .nf-profile-results > button {
  border-color: #465361;
  background-color: #111820;
  color: #e8edf2;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root select[multiple] option {
  color: #e8edf2;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root select[multiple] option:checked {
  background: linear-gradient(#3c70a7,#3c70a7);
  color: #fff;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root button.nf-action:hover,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root button.nf-action.active,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app #nf-dialog .nf-comment-actions button:hover {
  background: #203349;
  color: #d7e8f8;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app #nf-dialog .nf-dialog-head > button[data-close-dialog] {
  border-color: #3b4a58;
  background: #222d38;
  color: #b7d0e9;
}

/* Keep the personal-area trigger available as soon as the right rail hides. */
@media (max-width:1160px) {
  .nofira-community-page #nofira-app.nofira-app-root .nf-top-profile {
    display: inline-flex;
  }

  .nofira-community-page #nofira-app.nofira-app-root .nf-profile-backdrop:not([hidden]) {
    position: fixed;
    z-index: 8400;
    inset: 0;
    display: block;
    background: rgba(8,13,19,.58);
  }

  .nofira-community-page #nofira-app.nofira-app-root .nf-aside.nf-profile-menu-visible {
    position: fixed;
    z-index: 8500;
    top: 12px;
    right: 12px;
    bottom: 76px;
    display: block;
    width: min(340px,calc(100vw - 24px));
    padding: 14px;
    overflow-y: auto;
    border: 1px solid var(--nf-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.32);
  }

  html[data-nofira-theme="dark"] .nofira-community-page #nofira-app.nofira-app-root .nf-aside.nf-profile-menu-visible {
    border-color: #2b3540;
    background: #111820;
    color: #e8edf2;
  }
}

@media (max-width:700px) {
  .nofira-community-page #nofira-app.nofira-app-root .nf-form-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .nofira-community-page #nofira-app.nofira-app-root .nf-form-actions > button.nf-btn,
  .nofira-community-page #nofira-app.nofira-app-root .nf-form-actions > a.nf-btn,
  .nofira-community-page #nofira-app #nf-dialog .nf-form-actions > button[data-close-dialog] {
    width: 100%;
  }

  .nofira-community-page #nofira-app.nofira-app-root select[multiple] {
    min-height: 156px !important;
  }

  .nofira-community-page #nofira-app.nofira-app-root .nf-setting-row {
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 10px;
  }
}

@media (max-width:440px) {
  .nofira-community-page #nofira-app.nofira-app-root .nf-form-actions {
    grid-template-columns: 1fr;
  }

  .nofira-community-page #nofira-app.nofira-app-root .nf-setting-row {
    grid-template-columns: 1fr auto;
  }

  .nofira-community-page #nofira-app.nofira-app-root .nf-setting-row > span {
    grid-column: 1/-1;
  }
}

/* ================================================================
   NOFIRA Theme 0.2.7 — complete smartphone adaptation
   ================================================================ */
.nf-mobile-menu-trigger,
.nf-mobile-drawer-head,
.nf-mobile-page-tools {
  display: none;
}

.nf-navigation-backdrop[hidden] {
  display: none !important;
}

@media (max-width:720px) {
  html,
  body,
  body.page-community,
  .nofira-community-page,
  .nofira-community-page #nofira-app {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .nofira-community-page #nofira-app :is(
    .nf-shell,
    .nf-main,
    #nf-content,
    .nf-feed,
    .nf-panel,
    .nf-settings,
    .nf-profile,
    .nf-search-page,
    .nf-list-cards,
    .nf-project-grid,
    .nf-editorial-grid,
    .nf-event-list,
    .nf-messages-layout,
    .nf-notifications,
    .nf-report-list
  ) {
    min-width: 0;
    max-width: 100%;
  }

  .nofira-community-page #nofira-app .nf-shell {
    display: block;
    width: 100%;
    min-height: 100dvh;
    padding: 0 0 calc(76px + env(safe-area-inset-bottom));
  }

  .nofira-community-page #nofira-app .nf-main,
  .nofira-community-page #nofira-app #nf-content {
    width: 100%;
  }

  /* The desktop navigation becomes an off-canvas menu. */
  .nofira-community-page #nofira-app #nf-navigation-sidebar {
    position: fixed;
    z-index: 8500;
    top: max(10px,env(safe-area-inset-top));
    bottom: calc(72px + env(safe-area-inset-bottom));
    left: 10px;
    display: none;
    width: min(310px,calc(100vw - 20px));
    max-width: calc(100vw - 20px);
    margin: 0;
    padding: 14px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--nf-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.32);
  }

  .nofira-community-page #nofira-app #nf-navigation-sidebar.nf-navigation-menu-visible {
    display: block;
  }

  .nofira-community-page #nofira-app .nf-mobile-drawer-head {
    display: flex;
    min-height: 40px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--nf-line);
  }

  .nofira-community-page #nofira-app .nf-mobile-drawer-head strong {
    font-size: 1rem;
  }

  .nofira-community-page #nofira-app .nf-mobile-drawer-head button {
    display: grid;
    width: 36px;
    min-width: 36px;
    height: 36px;
    place-items: center;
    padding: 0;
    border: 1px solid #d5e0ea;
    border-radius: 50%;
    background: #eef4fa;
    color: var(--nf-blue);
    font: inherit;
    font-size: 1.2rem;
    cursor: pointer;
  }

  .nofira-community-page #nofira-app #nf-navigation-sidebar .nf-brand {
    width: auto;
    padding: 2px 4px 10px;
  }

  .nofira-community-page #nofira-app #nf-navigation-sidebar .nf-brand img {
    width: 64px;
    height: 64px;
    object-fit: contain;
  }

  .nofira-community-page #nofira-app #nf-navigation-sidebar > .nf-add {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    margin: 4px 0 10px;
  }

  .nofira-community-page #nofira-app #nf-navigation-sidebar .nf-nav {
    display: grid;
    gap: 4px;
    margin: 0;
  }

  .nofira-community-page #nofira-app #nf-navigation-sidebar .nf-nav button {
    width: 100%;
    min-height: 42px;
    padding: 9px 12px 9px 16px;
    white-space: normal;
  }

  .nofira-community-page #nofira-app .nf-navigation-backdrop:not([hidden]) {
    position: fixed;
    z-index: 8400;
    inset: 0;
    display: block;
    background: rgba(8,13,19,.58);
  }

  /* Compact header: menu, current page and personal area. */
  .nofira-community-page #nofira-app .nf-topbar {
    position: sticky;
    z-index: 100;
    top: 0;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    min-height: 58px;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px 10px;
    background: rgba(245,247,250,.97);
    backdrop-filter: blur(12px);
  }

  .nofira-community-page #nofira-app .nf-topbar:not(:has(.nf-mobile-menu-trigger)) {
    grid-template-columns: minmax(0,1fr) auto;
  }

  body.admin-bar .nofira-community-page #nofira-app .nf-topbar {
    top: 46px;
  }

  body.admin-bar .nofira-community-page #nofira-app #nf-navigation-sidebar,
  body.admin-bar .nofira-community-page #nofira-app .nf-aside.nf-profile-menu-visible {
    top: 56px;
  }

  .nofira-community-page #nofira-app .nf-mobile-menu-trigger {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 9px;
    border: 1px solid var(--nf-line);
    border-radius: 9px;
    background: var(--nf-card);
    color: var(--nf-text);
    font: inherit;
    font-size: .78rem;
    font-weight: 650;
    cursor: pointer;
  }

  .nofira-community-page #nofira-app .nf-mobile-menu-trigger > span:first-child {
    font-size: 1rem;
    line-height: 1;
  }

  .nofira-community-page #nofira-app .nf-topbar .nf-view-title {
    display: block;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--nf-ink,var(--nf-text));
    font-size: .96rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .nofira-community-page #nofira-app .nf-top-profile {
    min-height: 38px;
    flex: 0 0 auto;
    padding: 6px 8px;
    white-space: nowrap;
  }

  /* Page-specific filters and actions remain visible on mobile. */
  .nofira-community-page #nofira-app .nf-mobile-page-tools {
    display: grid;
    width: 100%;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--nf-line);
    background: var(--nf-bg);
  }

  .nofira-community-page #nofira-app .nf-mobile-page-tools:empty {
    display: none;
  }

  .nofira-community-page #nofira-app .nf-mobile-page-tools > [data-nf-aside-tools] {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 9px;
    margin: 0;
    padding: 11px;
    border: 1px solid var(--nf-line);
    border-radius: 12px;
    background: #fff;
  }

  .nofira-community-page #nofira-app .nf-mobile-page-tools :is(.nf-filterbar,.nf-discover-tools) {
    grid-template-columns: minmax(0,1fr) !important;
  }

  .nofira-community-page #nofira-app .nf-mobile-page-tools :is(input,select,textarea,.nf-btn) {
    width: 100%;
    max-width: 100%;
  }

  .nofira-community-page #nofira-app .nf-mobile-page-tools .nf-discover-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px;
  }

  /* Every view gets intrinsic sizing and wrapping instead of clipping. */
  .nofira-community-page #nofira-app #nf-content :is(
    h1,h2,h3,h4,p,span,strong,small,a,button,label,td,th,dd,figcaption
  ) {
    overflow-wrap: anywhere;
  }

  .nofira-community-page #nofira-app #nf-content :is(img,video,canvas,iframe) {
    max-width: 100%;
  }

  .nofira-community-page #nofira-app .nf-section-head {
    min-width: 0;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 10px;
    margin: 12px 14px 14px;
  }

  .nofira-community-page #nofira-app :is(.nf-panel,.nf-onboarding,.nf-settings,.nf-profile,.nf-search-page) {
    width: 100%;
    padding: 16px 14px;
  }

  .nofira-community-page #nofira-app .nf-settings {
    display: grid;
    gap: 12px;
    padding: 0;
    background: transparent;
  }

  .nofira-community-page #nofira-app .nf-settings > .nf-panel {
    margin: 0;
  }

  .nofira-community-page #nofira-app :is(.nf-photo-card,.nf-share-card,.nf-project-card,.nf-list-card) {
    max-width: 100%;
  }

  .nofira-community-page #nofira-app :is(.nf-feed-tabs,.nf-profile-tabs) {
    width: 100%;
    gap: 18px;
    padding-inline: 14px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  .nofira-community-page #nofira-app :is(.nf-feed-tabs,.nf-profile-tabs)::-webkit-scrollbar {
    display: none;
  }

  .nofira-community-page #nofira-app :is(.nf-feed-tabs,.nf-profile-tabs) button {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .nofira-community-page #nofira-app .nf-actions-row {
    max-width: 100%;
    gap: 7px;
  }

  .nofira-community-page #nofira-app .nf-inline-form {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    align-items: stretch;
  }

  .nofira-community-page #nofira-app .nf-inline-form > * {
    width: 100%;
    min-width: 0;
  }

  .nofira-community-page #nofira-app .nf-dropzone {
    min-height: 180px;
    padding: 18px;
  }

  .nofira-community-page #nofira-app .nf-upload-avatar,
  .nofira-community-page #nofira-app .nf-conversation-head {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  /* Profile layout stacks cleanly on narrow displays. */
  .nofira-community-page #nofira-app .nf-cover {
    height: 150px;
  }

  .nofira-community-page #nofira-app .nf-profile {
    padding: 0;
  }

  .nofira-community-page #nofira-app .nf-profile-head {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: -42px;
  }

  .nofira-community-page #nofira-app .nf-profile-avatar {
    flex: 0 0 84px;
    width: 84px;
    height: 84px;
    margin-left: 14px;
  }

  .nofira-community-page #nofira-app .nf-profile-main {
    width: 100%;
    min-width: 0;
    padding: 0 14px 20px;
  }

  .nofira-community-page #nofira-app .nf-profile-title {
    width: 100%;
    min-width: 0;
    padding-bottom: 0;
  }

  .nofira-community-page #nofira-app .nf-profile-counts {
    width: 100%;
  }

  /* Messages, notifications, statistics and long lists. */
  .nofira-community-page #nofira-app .nf-messages-layout {
    width: 100%;
    min-height: 0;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .nofira-community-page #nofira-app .nf-conversation-list {
    max-height: 42dvh;
  }

  .nofira-community-page #nofira-app .nf-message-stream {
    min-width: 0;
    padding: 12px;
  }

  .nofira-community-page #nofira-app .nf-message {
    max-width: 92%;
  }

  .nofira-community-page #nofira-app .nf-notifications > article,
  .nofira-community-page #nofira-app .nf-report-list > article {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    gap: 10px;
    padding: 13px;
    border: 1px solid var(--nf-line);
    border-radius: 11px;
    background: #fff;
  }

  .nofira-community-page #nofira-app .nf-report-list > article {
    grid-template-columns: minmax(0,1fr);
  }

  .nofira-community-page #nofira-app .nf-table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
  }

  .nofira-community-page #nofira-app .nf-table :is(th,td) {
    padding: 8px 7px;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .nofira-community-page #nofira-app .nf-event-list > article {
    min-width: 0;
    margin-inline: 12px;
  }

  /* Dialogs become scrollable bottom sheets without horizontal overflow. */
  .nofira-community-page #nofira-app #nf-dialog {
    width: 100vw;
    max-width: 100vw;
    max-height: 100dvh;
    margin: auto 0 0;
    border-radius: 18px 18px 0 0;
  }

  .nofira-community-page #nofira-app #nf-dialog > * {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-dialog-head {
    position: sticky;
    z-index: 5;
    top: 0;
    gap: 8px;
    padding: 11px 12px;
    background: #fff;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-dialog-head > :is(div,h2) {
    min-width: 0;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-dialog-head h2 {
    font-size: 1.08rem;
    line-height: 1.25;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-dialog-head > div:last-child {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px;
  }

  .nofira-community-page #nofira-app #nf-dialog :is(.nf-upload,.nf-simple-form,.nf-photo-side) {
    max-width: 100%;
    padding: 14px;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-photo-modal {
    width: 100% !important;
    max-width: 100% !important;
    max-height: none;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-photo-modal-grid {
    grid-template-columns: minmax(0,1fr);
    min-height: 0;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-viewer {
    min-height: 220px;
    max-height: 46dvh;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-viewer img {
    max-width: 100%;
    max-height: 46dvh;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-project-builder-row {
    grid-template-columns: 58px minmax(0,1fr);
    align-items: start;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-project-builder-row img {
    width: 58px;
    height: 52px;
  }

  .nofira-community-page #nofira-app #nf-dialog .nf-project-builder-row > div:last-child {
    display: flex;
    grid-column: 1/-1;
    justify-content: flex-end;
    gap: 7px;
  }

  .nofira-community-page #nofira-app .nf-toast {
    right: 12px;
    bottom: calc(76px + env(safe-area-inset-bottom));
    left: 12px;
    max-width: none;
  }
}

/* NOFIRA 0.2.18 — avatar containment independent of WordPress body classes. */
#nofira-app .nf-profile-head > .nf-profile-avatar {
  position: relative !important;
  z-index: 2;
  display: block !important;
  flex: 0 0 106px !important;
  box-sizing: border-box;
  width: 106px !important;
  min-width: 106px !important;
  max-width: 106px !important;
  height: 106px !important;
  min-height: 106px !important;
  max-height: 106px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 5px solid #fff;
  border-radius: 50% !important;
  background: #eef2f6;
  line-height: 96px;
  text-align: center;
  isolation: isolate;
  contain: strict;
}

#nofira-app .nf-profile-head > .nf-profile-avatar > img,
#nofira-app .nf-profile-head > .nf-profile-avatar > .nf-profile-avatar-image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
}

html[data-nofira-theme="dark"] #nofira-app .nf-profile-head > .nf-profile-avatar {
  border-color: #171d24;
  background: #222d38;
}

@media (max-width:720px) {
  #nofira-app .nf-profile-head > .nf-profile-avatar {
    flex-basis: 84px !important;
    width: 84px !important;
    min-width: 84px !important;
    max-width: 84px !important;
    height: 84px !important;
    min-height: 84px !important;
    max-height: 84px !important;
    line-height: 74px;
  }
}

/* NOFIRA 0.2.14 — challenge voting and jury rankings. */
#nofira-app .nf-challenge-status,
#nofira-app .nf-ranking-summary {
  color: var(--nf-muted);
}

#nofira-app .nf-ranking-summary {
  margin: 16px 0;
  padding: 12px 14px;
  border: 1px solid var(--nf-border);
  border-radius: 10px;
  background: rgba(49, 90, 134, .06);
}

#nofira-app .nf-challenge-entry {
  align-self: start;
}

#nofira-app .nf-challenge-entry.is-voted {
  padding: 5px;
  border: 2px solid var(--nf-blue);
  border-radius: 10px;
  background: rgba(49, 90, 134, .06);
}

#nofira-app .nf-challenge-result {
  min-height: 42px;
  margin: 7px 2px;
  color: var(--nf-text);
  font-size: .86rem;
  line-height: 1.4;
}

#nofira-app .nf-vote-btn {
  width: 100%;
  margin-top: 7px;
}

#nofira-app .nf-form-help {
  margin: -5px 0 3px;
  color: var(--nf-muted);
  font-size: .82rem;
  line-height: 1.45;
}

html[data-nofira-theme="dark"] #nofira-app .nf-ranking-summary,
html[data-nofira-theme="dark"] #nofira-app .nf-challenge-entry.is-voted {
  border-color: #486b91;
  background: rgba(134, 180, 227, .08);
}

html[data-nofira-theme="dark"] #nofira-app .nf-challenge-result {
  color: #e8edf2;
}

/* NOFIRA 0.2.16 — upload preview, multi-photo projects and project feed cards. */
#nofira-app .nf-dropzone {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

#nofira-app .nf-dropzone #nf-upload-preview {
  display: block;
  width: 100%;
  max-height: 420px;
  border-radius: 10px;
  object-fit: contain;
}

#nofira-app .nf-dropzone #nf-upload-preview[hidden] {
  display: none;
}

#nofira-app .nf-dialog.nf-project-dialog {
  width: min(1040px, 94vw);
}

#nofira-app .nf-project-editor {
  width: 100%;
  max-height: 90vh;
  overflow: auto;
}

#nofira-app .nf-project-source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 16px;
}

#nofira-app .nf-project-source-grid h3 {
  margin: 0 0 9px;
  font-size: .94rem;
}

#nofira-app .nf-project-file-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid #a9bed3;
  border-radius: 9px;
  background: #fff;
  color: var(--nf-blue);
  font-weight: 700;
  cursor: pointer;
}

#nofira-app .nf-project-file-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

#nofira-app .nf-project-source-grid small,
#nofira-app .nf-project-upload-row summary small {
  display: block;
  margin-top: 6px;
  color: var(--nf-muted);
}

#nofira-app .nf-project-count {
  margin: 8px 0 12px;
  color: var(--nf-muted);
  text-align: right;
}

#nofira-app .nf-project-upload-row {
  margin-bottom: 10px;
  border: 1px solid var(--nf-line);
  border-radius: 11px;
  background: var(--nf-card, #fff);
}

#nofira-app .nf-project-upload-row summary {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px;
  cursor: pointer;
  list-style: none;
}

#nofira-app .nf-project-upload-row summary::-webkit-details-marker {
  display: none;
}

#nofira-app .nf-project-upload-row summary > img {
  width: 86px;
  height: 68px;
  border-radius: 7px;
  object-fit: cover;
}

#nofira-app .nf-project-order {
  display: flex;
  gap: 6px;
}

#nofira-app .nf-project-order button {
  min-width: 34px;
  min-height: 34px;
  border: 1px solid var(--nf-line);
  border-radius: 7px;
  background: #fff;
  cursor: pointer;
}

#nofira-app .nf-project-photo-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border-top: 1px solid var(--nf-line);
}

#nofira-app .nf-project-photo-fields .span-2 {
  grid-column: 1 / -1;
}

#nofira-app .nf-project-photo-fields label {
  display: grid;
  gap: 5px;
  font-size: .84rem;
  font-weight: 650;
}

#nofira-app .nf-project-photo-fields :is(input, textarea, select) {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid #ccd5de;
  border-radius: 8px;
  background: #fff;
  color: var(--nf-ink);
  font: inherit;
}

#nofira-app .nf-project-feed-card {
  overflow: hidden;
  margin-bottom: 16px;
  border: 1px solid var(--nf-line);
  border-radius: 12px;
  background: #fff;
}

#nofira-app .nf-project-feed-card .nf-image-button img {
  width: 100%;
  max-height: 72vh;
  object-fit: contain;
  background: #111;
}

#nofira-app .nf-project-feed-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--nf-muted);
}

html[data-nofira-theme="dark"] #nofira-app :is(.nf-project-upload-row, .nf-project-feed-card, .nf-project-file-button) {
  border-color: #3a4652;
  background: #171d24;
  color: #e8edf2;
}

html[data-nofira-theme="dark"] #nofira-app .nf-project-order button {
  border-color: #3a4652;
  background: #1b232c;
  color: #e8edf2;
}

@media (max-width:720px) {
  #nofira-app .nf-project-editor {
    width: 100%;
    max-height: 100vh;
  }

  #nofira-app .nf-dialog.nf-project-dialog {
    width: 100vw;
  }

  #nofira-app .nf-project-source-grid,
  #nofira-app .nf-project-photo-fields {
    grid-template-columns: 1fr;
  }

  #nofira-app .nf-project-photo-fields .span-2 {
    grid-column: auto;
  }

  #nofira-app .nf-project-upload-row summary {
    grid-template-columns: 68px minmax(0, 1fr);
  }

  #nofira-app .nf-project-upload-row summary > img {
    width: 68px;
    height: 58px;
  }

  #nofira-app .nf-project-order {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

/* NOFIRA 0.2.12 — Challenge A (schede fotografiche) e Gruppi C (elenco compatto). */
#nofira-app .nf-challenge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

#nofira-app button.nf-challenge-card,
#nofira-app button.nf-group-card {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--nf-line);
  border-radius: 14px;
  background: #fff;
  color: var(--nf-ink);
  box-shadow: 0 8px 22px rgba(20, 41, 62, .05);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

#nofira-app button.nf-challenge-card:hover,
#nofira-app button.nf-group-card:hover {
  border-color: var(--nf-blue);
  transform: translateY(-1px);
}

#nofira-app button.nf-challenge-card:focus-visible,
#nofira-app button.nf-group-card:focus-visible {
  outline: 3px solid rgba(49, 90, 134, .28);
  outline-offset: 2px;
}

#nofira-app .nf-challenge-cover {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #e6edf3;
}

#nofira-app :is(.nf-challenge-cover,.nf-group-cover) img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

#nofira-app .nf-challenge-body,
#nofira-app .nf-group-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
  padding: 16px;
}

#nofira-app :is(.nf-challenge-body,.nf-group-body) strong {
  color: var(--nf-ink);
  font-size: 1.1rem;
  line-height: 1.25;
}

#nofira-app :is(.nf-challenge-body,.nf-group-body) > span {
  color: var(--nf-text);
  line-height: 1.4;
}

#nofira-app :is(.nf-challenge-body,.nf-group-body) small {
  color: var(--nf-muted);
}

#nofira-app .nf-group-list {
  display: grid;
  gap: 12px;
}

#nofira-app button.nf-group-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  align-items: stretch;
}

#nofira-app .nf-group-cover {
  display: block;
  min-height: 138px;
  overflow: hidden;
  background: linear-gradient(135deg, #eaf0f5, #d7e3ee);
}

#nofira-app .nf-group-cover-empty::after {
  content: "NOFIRA";
  display: grid;
  height: 100%;
  place-items: center;
  color: var(--nf-muted);
  font-size: .75rem;
  letter-spacing: .12em;
}

html[data-nofira-theme="dark"] #nofira-app button.nf-challenge-card,
html[data-nofira-theme="dark"] #nofira-app button.nf-group-card {
  border-color: #2b3540;
  background: #171d24;
  color: #e8edf2;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}

html[data-nofira-theme="dark"] #nofira-app :is(.nf-challenge-body,.nf-group-body) strong {
  color: #f2f5f8;
}

html[data-nofira-theme="dark"] #nofira-app :is(.nf-challenge-body,.nf-group-body) > span {
  color: #d5dde5;
}

html[data-nofira-theme="dark"] #nofira-app :is(.nf-challenge-cover,.nf-group-cover) {
  background: #222d38;
}

@media (max-width:760px) {
  #nofira-app .nf-challenge-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  #nofira-app button.nf-group-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  #nofira-app .nf-group-cover {
    min-height: 150px;
  }

  #nofira-app .nf-group-body {
    padding: 13px;
  }
}

@media (max-width:420px) {
  .nofira-community-page #nofira-app .nf-topbar {
    gap: 6px;
    padding-inline: 8px;
  }

  .nofira-community-page #nofira-app :is(.nf-mobile-menu-trigger,.nf-top-profile) {
    padding-inline: 7px;
    font-size: .74rem;
  }

  .nofira-community-page #nofira-app .nf-mobile-page-tools .nf-discover-actions {
    grid-template-columns: minmax(0,1fr);
  }

  .nofira-community-page #nofira-app .nf-section-head {
    flex-direction: column;
    align-items: stretch;
  }

  .nofira-community-page #nofira-app .nf-section-head > :is(button,.nf-btn) {
    width: 100%;
  }

  .nofira-community-page #nofira-app .nf-gallery {
    gap: 5px;
  }
}

@media (max-width:600px) {
  .nofira-landing {
    min-height: 100dvh;
    padding: 36px 18px;
  }

  .nofira-landing-logo {
    width: min(132px,42vw);
  }

  .nofira-landing h1 {
    margin-top: 1.6rem;
    font-size: clamp(2.15rem,13vw,3.25rem);
  }

  .nofira-page {
    padding: 0;
  }

  .nofira-page-inner {
    width: 100%;
    min-height: 100dvh;
    padding: 22px 14px;
    border: 0;
    border-radius: 0;
  }

  .nofira-auth-card {
    width: 100%;
    max-width: 100%;
    margin: 16px 0;
    padding: 22px 16px;
  }

  .nofira-auth-card :is(input,textarea,select,button,.button) {
    max-width: 100%;
  }
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app :is(
  #nf-navigation-sidebar,
  .nf-mobile-page-tools > [data-nf-aside-tools]
) {
  border-color: #2b3540;
  background: #171d24;
  color: #e8edf2;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-mobile-page-tools {
  border-color: #2b3540;
  background: #0f141a;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app :is(
  .nf-mobile-menu-trigger,
  .nf-mobile-drawer-head button
) {
  border-color: #3b4a58;
  background: #222d38;
  color: #d7e8f8;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app #nf-dialog .nf-dialog-head,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-notifications > article,
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-report-list > article {
  border-color: #2b3540;
  background: #171d24;
  color: #e8edf2;
}

/* Profile avatars keep square uploads inside their circular frame. */
.nofira-community-page #nofira-app .nf-profile-avatar {
  display: grid;
  place-items: center;
  overflow: hidden;
}

.nofira-community-page #nofira-app .nf-profile-avatar > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: inherit;
}

/* Keep the account portrait inside the compact right sidebar profile card. */
.nofira-community-page #nofira-app .nf-mini-profile > img {
  display: block;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  max-width: 40px;
  max-height: 40px;
  border-radius: 50%;
  object-fit: cover;
}

/* NOFIRA 0.2.9 — definitive Frame Note branding. */
.nofira-landing-logo {
  display: block;
  width: 112px;
  height: 112px;
  margin: 0 auto;
  object-fit: contain;
}

.nofira-auth-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 0 1.6rem;
  text-align: center;
}

.nofira-auth-brand picture {
  display: block;
  line-height: 0;
}

.nofira-auth-logo {
  display: block;
  width: 96px;
  height: 96px;
  max-width: 100%;
  object-fit: contain;
}

.nofira-auth-payoff {
  margin: .85rem 0 0;
  color: var(--nf-text);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}

.nofira-auth-title {
  margin: 0 0 1.35rem;
  color: var(--nf-blue);
  font-size: 1.85rem;
  line-height: 1.2;
  text-align: center;
}

@media (prefers-color-scheme: dark) {
  body.page .nofira-page {
    background: #0f141a;
    color: #e8edf2;
  }

  body.page .nofira-page-inner,
  body.page .nofira-auth-card {
    border-color: #2b3540;
    background: #171d24;
    color: #e8edf2;
  }

  body.page .nofira-page :is(h1,h2,h3,strong),
  body.page .nofira-auth-payoff {
    color: #f5f7f9;
  }

  body.page .nofira-auth-card :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) {
    border-color: #465361;
    background: #111820;
    color: #e8edf2;
  }
}

@media (max-width:600px) {
  .nofira-landing-logo {
    width: 92px;
    height: 92px;
  }

  .nofira-auth-logo {
    width: 82px;
    height: 82px;
  }

  .nofira-auth-brand {
    margin-bottom: 1.3rem;
  }

  .nofira-auth-title {
    font-size: 1.55rem;
  }
}

/* NOFIRA 0.2.11 — editorial and event cover cards (solution B). */
#nofira-app .nf-cover-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

#nofira-app .nf-content-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--nf-line);
  border-radius: 14px;
  background: #fff;
  color: var(--nf-text);
  box-shadow: 0 8px 22px rgba(20, 41, 62, .05);
}

#nofira-app .nf-content-cover {
  position: relative;
  overflow: hidden;
  aspect-ratio: 2 / 1;
  background: #e6edf3;
}

#nofira-app .nf-content-cover img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

#nofira-app .nf-content-cover > span {
  position: absolute;
  top: 13px;
  left: 13px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(18, 37, 56, .86);
  color: #fff;
  font-size: .73rem;
  font-weight: 750;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
  backdrop-filter: blur(5px);
}

#nofira-app .nf-content-card-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
}

#nofira-app .nf-content-card-body > :is(h2,p,small) {
  margin: 0;
}

#nofira-app .nf-content-card-body h2 {
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 1.18;
}

#nofira-app .nf-content-title {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--nf-ink);
  font: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
}

#nofira-app .nf-content-title:hover,
#nofira-app .nf-content-title:focus-visible {
  color: var(--nf-blue);
}

#nofira-app .nf-content-title:focus-visible {
  outline: 2px solid var(--nf-blue);
  outline-offset: 4px;
  border-radius: 3px;
}

#nofira-app .nf-content-excerpt {
  color: var(--nf-text);
  line-height: 1.55;
}

#nofira-app .nf-content-meta,
#nofira-app .nf-event-organizer {
  color: var(--nf-muted);
}

#nofira-app .nf-event-date {
  color: var(--nf-blue);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .025em;
}

#nofira-app .nf-event-place {
  font-weight: 650;
}

#nofira-app .nf-content-link {
  align-self: flex-start;
  color: var(--nf-blue);
  font-weight: 700;
}

#nofira-app .nf-content-card .nf-details {
  margin-top: 4px;
}

#nofira-app .nf-content-card .nf-details summary {
  color: var(--nf-blue);
}

#nofira-app .nf-content-full {
  padding-top: 10px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

#nofira-app .nf-content-full :is(img,video,iframe) {
  max-width: 100%;
  height: auto;
}

html[data-nofira-theme="dark"] #nofira-app .nf-content-card {
  border-color: #2b3540;
  background: #171d24;
  color: #e8edf2;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}

html[data-nofira-theme="dark"] #nofira-app .nf-content-cover {
  background: #222d38;
}

html[data-nofira-theme="dark"] #nofira-app .nf-content-title,
html[data-nofira-theme="dark"] #nofira-app .nf-content-excerpt {
  color: #f2f5f8;
}

html[data-nofira-theme="dark"] #nofira-app .nf-content-title:hover,
html[data-nofira-theme="dark"] #nofira-app .nf-content-title:focus-visible,
html[data-nofira-theme="dark"] #nofira-app .nf-content-card .nf-details summary,
html[data-nofira-theme="dark"] #nofira-app .nf-content-link,
html[data-nofira-theme="dark"] #nofira-app .nf-event-date {
  color: #86b4e3;
}

@media (max-width:1100px) {
  #nofira-app .nf-cover-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width:720px) {
  #nofira-app .nf-cover-grid {
    gap: 12px;
    padding-inline: 12px;
  }

  #nofira-app .nf-content-card {
    border-radius: 12px;
  }

  #nofira-app .nf-content-cover {
    aspect-ratio: 16 / 9;
  }

  #nofira-app .nf-content-card-body {
    padding: 15px;
  }
}

/* NOFIRA 0.2.13 — stable profile portrait. */
.nofira-community-page #nofira-app .nf-profile-head > .nf-profile-avatar {
  position: relative;
  z-index: 2;
  display: block;
  flex: 0 0 106px;
  width: 106px;
  min-width: 106px;
  max-width: 106px;
  height: 106px;
  min-height: 106px;
  max-height: 106px;
  padding: 0;
  overflow: hidden;
  border: 5px solid #fff;
  border-radius: 50%;
  background: #eef2f6;
  line-height: 96px;
  text-align: center;
  contain: layout paint size;
}

.nofira-community-page #nofira-app .nf-profile-head > .nf-profile-avatar > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

#nofira-app .nf-challenge-photo {
  position: relative;
}

#nofira-app .nf-content-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-profile-head > .nf-profile-avatar {
  border-color: #171d24;
  background: #222d38;
}

@media (max-width:720px) {
  .nofira-community-page #nofira-app .nf-profile-head > .nf-profile-avatar {
    flex-basis: 84px;
    width: 84px;
    min-width: 84px;
    max-width: 84px;
    height: 84px;
    min-height: 84px;
    max-height: 84px;
    line-height: 74px;
  }
}

/* NOFIRA 0.2.19 — projects, series and albums: solution A. */
#nofira-app .nf-profile-counts {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
}

#nofira-app .nf-profile-counts > span {
  display: flex;
  min-width: 0;
  min-height: 70px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 11px 12px;
  border: 1px solid var(--nf-line);
  border-radius: 11px;
  background: var(--nf-card,#fff);
}

#nofira-app .nf-profile-counts > span strong {
  display: block;
  color: var(--nf-blue);
  font-size: 1.35rem;
  line-height: 1;
}

#nofira-app .nf-profile-counts > span small {
  margin-top: 7px;
  overflow: hidden;
  color: var(--nf-muted);
  font-size: .78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#nofira-app .nf-work-tabs {
  display: flex;
  gap: 7px;
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--nf-line);
}

#nofira-app .nf-work-tabs button {
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid var(--nf-line);
  border-radius: 999px;
  background: var(--nf-card,#fff);
  color: var(--nf-muted);
  font: inherit;
  font-weight: 650;
}

#nofira-app .nf-work-tabs button.active {
  border-color: var(--nf-blue);
  background: var(--nf-blue);
  color: #fff;
}

#nofira-app .nf-work-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

#nofira-app .nf-work-panel-head h3,
#nofira-app .nf-work-panel-head p {
  margin: 0;
}

#nofira-app .nf-work-panel-head p {
  margin-top: 4px;
  color: var(--nf-muted);
}

#nofira-app .nf-work-panel-head > span {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(49,90,134,.1);
  color: var(--nf-blue);
  font-size: .78rem;
  font-weight: 700;
}

#nofira-app .nf-project-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}

#nofira-app .nf-project-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  transition: transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}

#nofira-app .nf-project-card:hover {
  transform: translateY(-2px);
  border-color: rgba(49,90,134,.45);
  box-shadow: 0 12px 28px rgba(29,48,68,.12);
}

#nofira-app .nf-project-card > img,
#nofira-app .nf-project-card > .nf-project-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

#nofira-app .nf-project-card > .nf-project-card-body {
  display: flex;
  min-height: 150px;
  flex: 1;
  flex-direction: column;
  padding: 14px;
}

#nofira-app .nf-project-card-body p {
  display: -webkit-box;
  margin: 6px 0 12px;
  overflow: hidden;
  color: var(--nf-muted);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

#nofira-app .nf-project-card-body small {
  margin-top: auto;
  color: var(--nf-muted);
}

html[data-nofira-theme="dark"] #nofira-app .nf-profile-counts > span,
html[data-nofira-theme="dark"] #nofira-app .nf-work-tabs button {
  border-color: #34414e;
  background: #18212a;
}

html[data-nofira-theme="dark"] #nofira-app .nf-work-tabs button.active {
  border-color: var(--nf-blue);
  background: var(--nf-blue);
  color: #fff;
}

@media (max-width:1100px) {
  #nofira-app .nf-profile-counts {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
  #nofira-app .nf-project-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width:720px) {
  #nofira-app .nf-profile-counts {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
  }
  #nofira-app .nf-profile-counts > span {
    min-height: 62px;
  }
  #nofira-app .nf-work-tabs {
    overflow-x: auto;
    scrollbar-width: none;
  }
  #nofira-app .nf-work-tabs::-webkit-scrollbar {
    display: none;
  }
  #nofira-app .nf-work-panel-head {
    flex-direction: column;
  }
  #nofira-app .nf-project-grid {
    grid-template-columns: 1fr;
  }
}

/* NOFIRA 0.2.21 — profile solution B. */
#nofira-app .nf-profile-title {
  padding-bottom: 2px;
}

#nofira-app .nf-profile-counts {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 0;
  margin: 14px 0 18px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#nofira-app .nf-profile-counts > span {
  display: flex;
  min-width: 0;
  min-height: 48px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 5px 7px;
  border: 0;
  border-right: 1px solid var(--nf-line);
  border-radius: 0;
  background: transparent;
  text-align: center;
}

#nofira-app .nf-profile-counts > span:last-child {
  border-right: 0;
}

#nofira-app .nf-profile-counts > span strong {
  color: var(--nf-blue);
  font-size: 1rem;
  line-height: 1;
}

#nofira-app .nf-profile-counts > span small {
  max-width: 100%;
  margin-top: 6px;
  overflow: hidden;
  color: var(--nf-muted);
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#nofira-app .nf-profile-tabs {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 3px;
  margin: 0 24px 18px;
  padding: 5px;
  overflow: visible;
  border: 0;
  border-radius: 11px;
  background: #eef2f6;
}

#nofira-app .nf-profile-tabs button {
  width: 100%;
  min-width: 0;
  padding: 9px 5px;
  overflow: hidden;
  border: 0;
  border-radius: 8px;
  color: var(--nf-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

#nofira-app .nf-profile-tabs button.active {
  border: 0;
  background: #fff;
  color: var(--nf-blue);
  box-shadow: 0 2px 8px rgba(20,38,55,.12);
}

#nofira-app .nf-profile-info {
  margin: 0 24px 24px;
}

#nofira-app .nf-profile-edit-form {
  gap: 18px;
}

#nofira-app .nf-profile-edit-fields {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 13px;
}

#nofira-app .nf-profile-edit-fields > label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
}

#nofira-app .nf-profile-edit-fields > .span-2 {
  grid-column: 1/-1;
}

#nofira-app .nf-profile-file-field {
  justify-content: flex-end;
}

#nofira-app .nf-profile-file-field input[type="file"] {
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 7px;
  overflow: hidden;
  border: 1px solid var(--nf-line);
  border-radius: 9px;
  background: var(--nf-bg);
  color: var(--nf-muted);
}

#nofira-app .nf-profile-edit-actions {
  justify-content: flex-end;
  padding-top: 4px;
}

html[data-nofira-theme="dark"] #nofira-app .nf-profile-tabs {
  background: #111820;
}

html[data-nofira-theme="dark"] #nofira-app .nf-profile-tabs button.active {
  background: #263340;
  color: #a9c9e7;
  box-shadow: none;
}

html[data-nofira-theme="dark"] #nofira-app .nf-profile-counts > span {
  border-color: #34414e;
  background: transparent;
}

@media (max-width:900px) {
  #nofira-app .nf-profile-counts {
    grid-template-columns: repeat(3,minmax(0,1fr));
    row-gap: 8px;
  }
  #nofira-app .nf-profile-counts > span:nth-child(3) {
    border-right: 0;
  }
}

@media (max-width:720px) {
  #nofira-app .nf-profile-tabs {
    display: flex;
    margin-right: 12px;
    margin-left: 12px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  #nofira-app .nf-profile-tabs::-webkit-scrollbar {
    display: none;
  }
  #nofira-app .nf-profile-tabs button {
    flex: 0 0 auto;
    width: auto;
    min-width: 92px;
  }
  #nofira-app .nf-profile-edit-fields {
    grid-template-columns: 1fr;
  }
  #nofira-app .nf-profile-edit-fields > .span-2 {
    grid-column: auto;
  }
}

/* NOFIRA 0.2.22 — final profile layout overrides. */
.nofira-community-page #nofira-app .nf-profile > .nf-cover{position:relative;width:100%;height:auto;aspect-ratio:20/7;overflow:hidden;border-radius:12px 12px 0 0}
.nofira-community-page #nofira-app .nf-profile > .nf-cover > img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.nofira-community-page #nofira-app .nf-profile-head{display:flex;align-items:center;gap:18px;margin:0;padding:18px 24px 0}
.nofira-community-page #nofira-app .nf-profile-head > .nf-profile-avatar{margin:0;border-width:4px}
.nofira-community-page #nofira-app .nf-profile-main{min-width:0;flex:1;padding:0}
.nofira-community-page #nofira-app .nf-profile-title{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0}
.nofira-community-page #nofira-app .nf-profile-public-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.nf-cover-crop > p,.nf-cover-crop > .nf-cover-position,.nf-cover-crop > .nf-form-actions{margin-right:20px;margin-left:20px}
.nf-cover-crop > canvas{width:calc(100% - 40px);margin-right:20px;margin-left:20px}
.nf-cover-crop > .nf-form-actions{margin-bottom:20px}
@media(max-width:720px){.nofira-community-page #nofira-app .nf-profile > .nf-cover{aspect-ratio:16/7;border-radius:0}.nofira-community-page #nofira-app .nf-profile-head{align-items:flex-start;padding:14px 16px 0}.nofira-community-page #nofira-app .nf-profile-title{align-items:flex-start;flex-direction:column;gap:12px}.nofira-community-page #nofira-app .nf-profile-public-actions{justify-content:flex-start}}

/* NOFIRA 0.2.23 — definitive separation below the cover. */
#nofira-app .nf-profile > .nf-cover{position:relative!important;display:block!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;aspect-ratio:20/7;overflow:hidden!important;border-radius:12px 12px 0 0}
#nofira-app .nf-profile > .nf-cover > img{position:static!important;display:block!important;width:100%!important;height:100%!important;margin:0!important;object-fit:cover!important;object-position:center!important}
#nofira-app .nf-profile > .nf-profile-head{position:relative!important;display:flex!important;width:100%!important;align-items:flex-start!important;gap:18px!important;margin:0!important;padding:18px 24px 0!important;background:var(--nf-card,#fff)}
#nofira-app .nf-profile-head > .nf-profile-avatar{position:relative!important;z-index:1!important;margin:0!important;transform:none!important}
#nofira-app .nf-profile-head > .nf-profile-main{display:block!important;min-width:0!important;flex:1!important;margin:0!important;padding:4px 0 0!important}
#nofira-app .nf-profile-title{display:flex!important;width:100%!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;margin:0!important;padding:0!important}
#nofira-app .nf-profile-counts{width:100%!important;margin:16px 0 18px!important}
#nofira-app .nf-profile-public-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
#nofira-app .nf-profile-more{position:relative}
#nofira-app .nf-profile-more > summary{list-style:none}
#nofira-app .nf-profile-more > summary::-webkit-details-marker{display:none}
#nofira-app .nf-profile-more-menu{position:absolute;z-index:30;top:calc(100% + 7px);right:0;display:grid;width:190px;overflow:hidden;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-card,#fff);box-shadow:0 14px 30px rgba(20,34,48,.18)}
#nofira-app .nf-profile-menu-action{padding:11px 13px;border:0;border-bottom:1px solid var(--nf-line);background:transparent;color:var(--nf-text);font:inherit;text-align:left}
#nofira-app .nf-profile-menu-action:last-child{border-bottom:0}

#nofira-app #nf-dialog.nf-profile-edit-dialog{width:min(780px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-edit-form{padding:0 22px 22px}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-dialog-head{margin:0 -22px 20px;padding:16px 22px}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-file-field{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:7px 16px;padding:12px 14px;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-bg)}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-file-field > span{font-weight:650}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-file-field > input{width:100%;min-width:0;margin:0;padding:8px;border:1px solid var(--nf-line);border-radius:8px;background:var(--nf-card,#fff)}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-file-field > small{grid-column:2;color:var(--nf-muted)}
#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-edit-actions{align-items:center;justify-content:flex-end;margin-top:18px}
#nofira-app #nf-dialog.nf-profile-edit-dialog #nf-cancel-profile-edit{width:auto!important;height:auto!important;border-radius:8px!important;padding:.72rem 1rem!important}

.nf-dialog.nf-cover-crop-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 32px));max-width:760px;max-height:calc(100vh - 32px);overflow:auto}
.nf-dialog.nf-cover-crop-dialog .nf-cover-crop{box-sizing:border-box;width:100%;max-width:100%;overflow:hidden}
.nf-dialog.nf-cover-crop-dialog .nf-dialog-head{position:sticky;z-index:2;top:0;background:var(--nf-card,#fff)}
.nf-dialog.nf-cover-crop-dialog .nf-cover-crop > p{margin:16px 20px;line-height:1.45}
.nf-dialog.nf-cover-crop-dialog .nf-cover-crop > canvas{display:block;box-sizing:border-box;width:calc(100% - 40px)!important;max-width:calc(100% - 40px);height:auto!important;margin:0 20px;aspect-ratio:20/7}
.nf-dialog.nf-cover-crop-dialog .nf-cover-position{margin:16px 20px}
.nf-dialog.nf-cover-crop-dialog .nf-form-actions{margin:16px 20px 20px}

@media(max-width:720px){#nofira-app .nf-profile > .nf-cover{aspect-ratio:16/7}#nofira-app .nf-profile > .nf-profile-head{flex-direction:column!important;gap:12px!important;padding:14px!important}#nofira-app .nf-profile-head > .nf-profile-main{width:100%!important}#nofira-app .nf-profile-title{align-items:flex-start!important;flex-direction:column!important;gap:12px!important}#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-file-field{grid-template-columns:1fr}#nofira-app #nf-dialog.nf-profile-edit-dialog .nf-profile-file-field > small{grid-column:1}.nf-dialog.nf-cover-crop-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}}

/* NOFIRA 0.2.24 — profile gallery, solution A. */
#nofira-app .nf-profile-gallery-panel{margin:10px 18px 20px;padding:18px;border:1px solid var(--nf-line);border-radius:12px;background:#eef3f7}
#nofira-app .nf-profile-gallery-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;color:var(--nf-text)}
#nofira-app .nf-profile-gallery-head > strong{font-size:.95rem}
#nofira-app .nf-profile-gallery-head > span{color:var(--nf-muted);font-size:.78rem}
#nofira-app .nf-profile-gallery-panel .nf-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:15px}
#nofira-app .nf-profile-gallery-panel .nf-gallery-card{display:grid;min-width:0;overflow:hidden;padding:7px 7px 11px;border:1px solid #d5dee7;border-radius:11px;background:#fff;color:var(--nf-text);font:inherit;text-align:left;box-shadow:0 4px 14px rgba(20,34,48,.05)}
#nofira-app .nf-profile-gallery-panel .nf-gallery-card > img{display:block;width:100%;height:auto;aspect-ratio:1/1;border-radius:8px;object-fit:cover;object-position:center}
#nofira-app .nf-profile-gallery-panel .nf-gallery-card > span{display:block;min-height:2.6em;margin:9px 3px 0;overflow:hidden;font-size:.88rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
#nofira-app .nf-profile-gallery-panel .nf-gallery-card:hover{border-color:#9eb4c8;box-shadow:0 7px 18px rgba(20,34,48,.10)}
html[data-nofira-theme="dark"] #nofira-app .nf-profile-gallery-panel{border-color:#34414e;background:#111c26}
html[data-nofira-theme="dark"] #nofira-app .nf-profile-gallery-panel .nf-gallery-card{border-color:#344351;background:#18232e;color:#edf3f8}
@media(max-width:720px){#nofira-app .nf-profile-gallery-panel{margin:8px 12px 16px;padding:12px}#nofira-app .nf-profile-gallery-panel .nf-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}}

/* NOFIRA 0.2.25 — popup cancel buttons are never header close controls. */
#nofira-app #nf-dialog .nf-form-actions > button.nf-dialog-cancel,
#nofira-app #nf-dialog button[data-dialog-cancel]{display:inline-flex!important;flex:0 0 auto!important;width:auto!important;min-width:92px!important;height:40px!important;min-height:40px!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:8px 15px!important;border:1px solid #9fb7ce!important;border-radius:9px!important;background:#fff!important;color:var(--nf-blue)!important;font-size:.88rem!important;font-weight:650!important;line-height:1.2!important;white-space:nowrap!important}
#nofira-app #nf-dialog .nf-dialog-head > button[data-close-dialog]{display:grid!important;flex:0 0 36px!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;place-items:center!important;margin:0!important;padding:0!important;border-radius:50%!important;line-height:1!important}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog .nf-form-actions > button.nf-dialog-cancel,
html[data-nofira-theme="dark"] #nofira-app #nf-dialog button[data-dialog-cancel]{border-color:#526d87!important;background:#171d24!important;color:#b7d0e9!important}
@media(max-width:700px){#nofira-app #nf-dialog .nf-form-actions > button.nf-dialog-cancel,#nofira-app #nf-dialog button[data-dialog-cancel]{width:100%!important}}
.nf-dialog .nf-form-actions > button.nf-dialog-cancel{display:inline-flex!important;flex:0 0 auto!important;width:auto!important;min-width:92px!important;height:40px!important;min-height:40px!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:8px 15px!important;border-radius:9px!important;font-size:.88rem!important;line-height:1.2!important;white-space:nowrap!important}

/* NOFIRA 0.2.26 — testi formattati, griglia opere e visualizzatore fotografico */
#nofira-app #nf-dialog .nf-form-actions>button.nf-dialog-cancel,#nofira-app #nf-dialog button[data-dialog-cancel],.nf-dialog .nf-form-actions>button.nf-dialog-cancel{background:var(--nf-blue)!important;color:#fff!important;border-color:var(--nf-blue)!important;font-weight:700!important}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog .nf-form-actions>button.nf-dialog-cancel,html[data-nofira-theme="dark"] #nofira-app #nf-dialog button[data-dialog-cancel]{background:var(--nf-blue)!important;color:#fff!important;border-color:var(--nf-blue)!important}
#nofira-app :is(.nf-rich-text,.nf-text,.nf-photo-note,.nf-comment-body,.nf-project-conclusion,.nf-group-posts p,.nf-profile-info p,.nf-list-card p){white-space:pre-wrap;overflow-wrap:anywhere}
#nofira-app .nf-project-intro{margin:18px 0 22px;line-height:1.65}
#nofira-app .nf-project-sequence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
#nofira-app .nf-project-sequence figure{margin:0;min-width:0}
#nofira-app .nf-project-photo-button{display:block;width:100%;padding:0;border:0;border-radius:10px;overflow:hidden;background:#0b1016;cursor:zoom-in}
#nofira-app .nf-project-photo-button img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:0;transition:transform .2s ease}
#nofira-app .nf-project-photo-button:hover img{transform:scale(1.025)}
#nofira-app .nf-project-sequence figcaption{padding:8px 2px 0;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.nf-fullscreen-photo-dialog{position:fixed;inset:0;box-sizing:border-box;width:100vw;width:100dvw;max-width:100vw;max-width:100dvw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;margin:0;padding:0;border:0;background:#080b10;color:#fff;overflow:hidden}
.nf-fullscreen-photo-dialog::backdrop{background:rgba(0,0,0,.92)}
.nf-fullscreen-photo{box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.nf-fullscreen-photo-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:10px 18px 8px 24px;background:linear-gradient(180deg,rgba(0,0,0,.72),transparent)}
.nf-fullscreen-photo-head strong{max-width:calc(100vw - 90px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nf-fullscreen-photo-head button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(22,30,40,.82);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.nf-fullscreen-photo-stage{box-sizing:border-box;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;padding:12px 24px 24px;overflow:hidden;background:#111820}
.nf-fullscreen-photo-stage img{display:block;box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;max-width:none;max-height:none;object-fit:contain;object-position:center;border:1px solid rgba(255,255,255,.14);background:#080b10}
@media(max-width:700px){#nofira-app .nf-project-sequence{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nf-fullscreen-photo-head{min-height:58px;padding:7px 10px 7px 14px}.nf-fullscreen-photo-stage{padding:8px 10px 10px}}

/* NOFIRA 0.2.27 — testo in evidenza */
#nofira-app .nf-portfolio-picker .nf-portfolio-item textarea{display:block;width:calc(100% - 14px);min-height:58px;margin:0 7px 9px;padding:8px;border:1px solid var(--nf-line);border-radius:7px;resize:vertical;font:inherit;font-size:.8rem}
#nofira-app .nf-profile-gallery-panel .nf-gallery-card>small{display:block;margin:5px 3px 0;color:var(--nf-muted);font-size:.78rem;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}
#nofira-app .nf-project-card-body p{white-space:pre-wrap;overflow-wrap:anywhere}

/* NOFIRA 0.2.28 — popup opere, soluzione A */
#nofira-app #nf-dialog.nf-project-view-dialog{box-sizing:border-box;width:min(1180px,calc(100vw - 32px));max-width:1180px;max-height:calc(100vh - 32px);overflow:auto;border:1px solid var(--nf-line);border-radius:18px!important;background:var(--nf-bg);clip-path:inset(0 round 18px)}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-modal{box-sizing:border-box;width:100%;min-width:0;padding:0 28px 30px}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head{position:sticky;z-index:6;top:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin:0 -28px 24px;padding:16px 24px;border-bottom:1px solid var(--nf-line);background:var(--nf-card,#fff)}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head>div:first-child{min-width:0}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:nowrap}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head .nf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin:0;padding:8px 16px;border-radius:10px;white-space:nowrap}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head button[data-close-dialog]{display:grid!important;place-items:center!important;flex:0 0 40px!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0!important;border-radius:50%!important}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-intro{margin:0 0 24px;padding:20px 22px;border:1px solid var(--nf-line);border-radius:13px;background:var(--nf-card,#fff);line-height:1.65}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-sequence{margin:0;padding:18px;border:1px solid var(--nf-line);border-radius:15px;background:#eaf0f5}
#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-conclusion{margin:24px 0 0;padding:20px 22px;border:1px solid var(--nf-line);border-radius:13px;background:var(--nf-card,#fff)}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-project-view-dialog .nf-project-sequence{background:#111c26}
#nofira-app #nf-dialog .nf-form-actions>button.nf-dialog-cancel,#nofira-app #nf-dialog button[data-dialog-cancel],.nf-dialog .nf-form-actions>button.nf-dialog-cancel{display:inline-flex!important;width:auto!important;min-width:0!important;height:auto!important;min-height:40px!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:.72rem 1rem!important;border:0!important;border-radius:8px!important;background:var(--nf-blue)!important;color:#fff!important;font:inherit!important;font-weight:700!important;line-height:1.2!important;white-space:nowrap!important}
@media(max-width:700px){#nofira-app #nf-dialog.nf-project-view-dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px);margin:auto;border-radius:16px!important;clip-path:inset(0 round 16px)}#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-modal{padding:0 14px 18px}#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head{position:sticky;grid-template-columns:1fr;margin:0 -14px 18px;padding:13px 14px;gap:10px}#nofira-app #nf-dialog.nf-project-view-dialog .nf-dialog-head>div:last-child{justify-content:flex-start;flex-wrap:wrap}#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-intro{padding:15px}#nofira-app #nf-dialog.nf-project-view-dialog .nf-project-sequence{padding:10px}#nofira-app #nf-dialog .nf-form-actions>button.nf-dialog-cancel,#nofira-app #nf-dialog button[data-dialog-cancel]{width:auto!important}}

/* NOFIRA 0.2.29 — struttura coerente per tutti i popup */
#nofira-app #nf-dialog.nf-dialog,.nf-dialog.nf-cover-crop-dialog{box-sizing:border-box;max-height:calc(100dvh - 32px);padding:0!important;overflow:hidden!important;border:1px solid var(--nf-line)!important;border-radius:18px!important;background:var(--nf-card,#fff);box-shadow:0 24px 70px rgba(8,17,27,.32);clip-path:inset(0 round 18px)}
#nofira-app #nf-dialog.nf-dialog>*{box-sizing:border-box;max-width:100%;max-height:calc(100dvh - 34px);overflow:auto}
#nofira-app #nf-dialog>form.nf-upload,#nofira-app #nf-dialog>form.nf-simple-form{padding:0 22px 22px!important}
#nofira-app #nf-dialog>form.nf-upload>.nf-dialog-head,#nofira-app #nf-dialog>form.nf-simple-form>.nf-dialog-head{position:sticky!important;z-index:20!important;top:0!important;margin:0 -22px 20px!important;padding:16px 22px!important;background:var(--nf-card,#fff)!important}
#nofira-app #nf-dialog .nf-dialog-head{box-sizing:border-box;align-items:center!important}
#nofira-app #nf-dialog .nf-dialog-head>div:last-child{align-items:center!important}
#nofira-app #nf-dialog .nf-form-actions{align-items:center!important;justify-content:flex-end!important;gap:10px!important;padding-top:14px;border-top:1px solid var(--nf-line)}
#nofira-app #nf-dialog .nf-form-actions>.nf-btn{display:inline-flex!important;width:auto!important;min-width:0!important;min-height:40px!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:.72rem 1rem!important;border-radius:8px!important;font:inherit!important;font-weight:700!important;line-height:1.2!important;white-space:nowrap!important}
#nofira-app #nf-dialog .nf-form-actions>button.nf-dialog-cancel,#nofira-app #nf-dialog button[data-dialog-cancel],.nf-dialog.nf-cover-crop-dialog .nf-form-actions>button.nf-dialog-cancel{border:0!important;border-radius:8px!important;background:var(--nf-blue)!important;color:#fff!important}
#nofira-app #nf-dialog.nf-project-dialog{width:min(1040px,calc(100vw - 32px))!important;max-width:1040px!important;border-radius:18px!important}
#nofira-app #nf-dialog.nf-project-dialog>.nf-project-editor{width:100%;max-height:calc(100dvh - 34px)!important;overflow:auto!important;padding:0 22px 22px!important}
#nofira-app #nf-dialog.nf-project-dialog>.nf-project-editor>.nf-dialog-head{position:sticky!important;z-index:20!important;top:0!important;margin:0 -22px 20px!important;padding:16px 22px!important;background:var(--nf-card,#fff)!important}
.nf-dialog.nf-cover-crop-dialog .nf-cover-crop{max-height:calc(100dvh - 34px);overflow:auto;border-radius:inherit}
.nf-dialog.nf-cover-crop-dialog .nf-dialog-head{top:0!important}
@media(max-width:700px){#nofira-app #nf-dialog.nf-dialog,.nf-dialog.nf-cover-crop-dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;margin:auto!important;border-radius:16px!important;clip-path:inset(0 round 16px)}#nofira-app #nf-dialog.nf-dialog>*{max-height:calc(100dvh - 18px)}#nofira-app #nf-dialog>form.nf-upload,#nofira-app #nf-dialog>form.nf-simple-form,#nofira-app #nf-dialog.nf-project-dialog>.nf-project-editor{padding:0 14px 16px!important}#nofira-app #nf-dialog>form.nf-upload>.nf-dialog-head,#nofira-app #nf-dialog>form.nf-simple-form>.nf-dialog-head,#nofira-app #nf-dialog.nf-project-dialog>.nf-project-editor>.nf-dialog-head{margin:0 -14px 16px!important;padding:13px 14px!important}#nofira-app #nf-dialog .nf-form-actions{display:flex!important;flex-wrap:wrap!important}#nofira-app #nf-dialog .nf-form-actions>.nf-btn{width:auto!important;flex:0 0 auto!important}}

/* NOFIRA 0.2.30 — pannelli Progetti, Serie e Album nel profilo */
#nofira-app .nf-profile-work-panel .nf-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
#nofira-app .nf-profile-work-panel .nf-project-card{min-width:0}
#nofira-app .nf-profile-work-panel .nf-project-card>img,#nofira-app .nf-profile-work-panel .nf-project-card>.nf-project-placeholder{aspect-ratio:1/1;object-fit:cover}
@media(max-width:760px){#nofira-app .nf-profile-work-panel .nf-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}}

/* Modalità critica fotografica */
#nofira-app .nf-critique-chip{border-color:#8ba8c5;background:#e8f1f9;color:#244f7d;font-weight:700}
#nofira-app .nf-critique-callout{margin:4px 0 16px;padding:13px 14px;border:1px solid #b9cde0;border-left:4px solid var(--nf-blue);border-radius:10px;background:#f3f8fc}
#nofira-app .nf-critique-callout p{margin:5px 0 0;color:var(--nf-muted);line-height:1.45}
html[data-nofira-theme="dark"] #nofira-app :is(.nf-critique-callout,.nf-critique-chip){border-color:#557493;background:#172534;color:#dceaf7}

/* Ricerca — soluzione A */
#nofira-app .nf-search-page-a{padding:0;border:0;background:transparent}
#nofira-app .nf-search-form-a{padding:20px;border:1px solid var(--nf-line);border-radius:16px;background:var(--nf-card,#fff)}
#nofira-app .nf-search-form-a label{display:grid;gap:6px;min-width:0;color:var(--nf-text);font-weight:600}
#nofira-app .nf-search-form-a label>span,#nofira-app .nf-search-form-a legend{font-size:.82rem;color:var(--nf-muted);font-weight:600}
#nofira-app .nf-search-form-a :is(input,select){box-sizing:border-box;width:100%;min-width:0;height:46px;margin:0;padding:0 14px;border:1px solid var(--nf-line);border-radius:12px;background:var(--nf-card,#fff);color:var(--nf-text);font:inherit}
#nofira-app .nf-search-form-a :is(input,select):focus{outline:0;border-color:var(--nf-blue);box-shadow:var(--nf-focus-ring)}
#nofira-app .nf-search-primary-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end}
#nofira-app .nf-search-primary-row>.nf-btn{height:46px;min-width:112px;border-radius:12px}
#nofira-app .nf-search-filter-row{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) minmax(250px,1.5fr);gap:12px;align-items:end;margin-top:15px;padding-top:15px;border-top:1px solid var(--nf-line)}
#nofira-app .nf-search-filter-row fieldset{min-width:0;margin:0;padding:0;border:0}
#nofira-app .nf-search-filter-row fieldset>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#nofira-app .nf-search-results{display:grid;gap:22px;margin-top:22px}
#nofira-app .nf-search-result-section{padding:18px;border:1px solid var(--nf-line);border-radius:16px;background:var(--nf-card,#fff)}
#nofira-app .nf-search-result-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
#nofira-app .nf-search-result-head h3{margin:0}
#nofira-app .nf-search-result-head span{color:var(--nf-muted);font-size:.82rem}
#nofira-app .nf-profile-results>.nf-search-profile{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto!important;align-items:center!important;gap:13px!important;min-height:84px!important;padding:12px!important;border:1px solid #3d5871!important;border-radius:13px!important;background:#0f1d2b!important;color:#f4f8fc!important}
#nofira-app .nf-profile-results>.nf-search-profile:hover{border-color:#6685a1!important;background:#142638!important}
#nofira-app .nf-search-profile :is(.nf-avatar-img,.nf-avatar){display:grid!important;place-items:center!important;width:56px!important;height:56px!important;border-radius:50%!important;background:#29415a!important;color:#fff!important;object-fit:cover!important;font-size:1rem!important}
#nofira-app .nf-search-profile-copy{display:grid;gap:3px;min-width:0;text-align:left}
#nofira-app .nf-search-profile-copy strong{color:#fff!important;font-size:1rem;font-weight:600}
#nofira-app .nf-search-profile-copy small{color:#c4d1dd!important;font-size:.86rem}
#nofira-app .nf-search-profile-action{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid #54718c;border-radius:10px;color:#fff;background:transparent;font-weight:600;white-space:nowrap}
#nofira-app #nf-dialog .nf-comment-meta{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:10px;row-gap:3px}
#nofira-app #nf-dialog .nf-comment-meta small{display:inline-block;color:var(--nf-muted);white-space:nowrap}
#nofira-app #nf-dialog .nf-comment-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#nofira-app #nf-dialog .nf-comment-actions .nf-btn{flex:0 0 auto;margin:0}
#nofira-app .nf-challenge-entry-tools{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:18px;margin:18px 0;padding:18px;border:1px solid var(--nf-line);border-radius:14px;background:var(--nf-soft)}
#nofira-app .nf-challenge-entry-tools h3{margin:0 0 10px;font-size:1rem}
#nofira-app .nf-challenge-upload-option{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-left:18px;border-left:1px solid var(--nf-line)}
#nofira-app .nf-challenge-upload-option h3{margin-bottom:2px}
#nofira-app .nf-challenge-upload-option small{color:var(--nf-muted);line-height:1.35}
#nofira-app #nf-dialog .nf-challenge-upload-intro{margin:16px 18px 0;padding:12px 14px;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-soft)}
@media(max-width:760px){#nofira-app .nf-challenge-entry-tools{grid-template-columns:1fr;padding:14px}#nofira-app .nf-challenge-upload-option{padding:16px 0 0;border-left:0;border-top:1px solid var(--nf-line)}#nofira-app .nf-challenge-entry-tools .nf-inline-form{align-items:stretch}#nofira-app .nf-challenge-entry-tools .nf-inline-form select,#nofira-app .nf-challenge-entry-tools .nf-inline-form button{width:100%}}
#nofira-app .nofira-news-wrap{padding:22px;border:1px solid var(--nf-line);border-radius:14px;background:var(--nf-card)}
#nofira-app .nofira-news-wrap .nofira-section-head h1{font-size:1.65rem;color:var(--nf-ink)}
#nofira-app .nofira-news-wrap .nofira-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#nofira-app .nofira-news-wrap .nofira-news-card{background:var(--nf-card);border-color:var(--nf-line);box-shadow:0 4px 16px rgba(23,33,47,.04)}
#nofira-app .nofira-news-wrap .nofira-news-card h2 a{color:var(--nf-ink)}
#nofira-app .nofira-news-wrap .nofira-filter{scrollbar-width:thin}
html[data-nofira-theme="dark"] #nofira-app .nofira-news-wrap{background:#121b25;border-color:#2d3d4c}
html[data-nofira-theme="dark"] #nofira-app .nofira-news-wrap .nofira-news-card{background:#17232f;border-color:#33485b}
html[data-nofira-theme="dark"] #nofira-app .nofira-news-wrap .nofira-news-card h2 a{color:#f4f8fc}
html[data-nofira-theme="dark"] #nofira-app .nofira-news-wrap .nofira-filter a{background:#17232f;border-color:#33485b;color:#dbe7f1}
html[data-nofira-theme="dark"] #nofira-app .nofira-news-wrap .nofira-filter a.is-active{background:var(--nf-blue);border-color:var(--nf-blue);color:#fff}
@media(max-width:760px){#nofira-app .nofira-news-wrap{padding:14px;border-radius:0;border-left:0;border-right:0}#nofira-app .nofira-news-wrap .nofira-news-grid{grid-template-columns:1fr}}
html[data-nofira-theme="light"]{--nf-bg:#f5f7fa;--nf-card:#fff;--nf-text:#17212f;--nf-muted:#6b7280;--nf-line:#e5e7eb;--nf-border:#dfe4ea;--nf-surface:#f5f7fa}
html[data-nofira-theme="dark"]{--nf-bg:#0f141a;--nf-card:#171d24;--nf-text:#e8edf2;--nf-muted:#9aa7b5;--nf-line:#2b3540;--nf-border:#303b47;--nf-surface:#171d24}
@media(max-width:980px){#nofira-app .nf-search-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){#nofira-app .nf-search-form-a{padding:14px}#nofira-app .nf-search-primary-row{grid-template-columns:1fr}#nofira-app .nf-search-primary-row>.nf-btn{width:100%}#nofira-app .nf-search-filter-row{grid-template-columns:1fr}#nofira-app .nf-search-profile{grid-template-columns:48px minmax(0,1fr)!important}#nofira-app .nf-search-profile-action{display:none}#nofira-app .nf-search-result-section{padding:14px}}
/* Messaggistica — layout Chat equilibrata */
.nofira-community-page #nofira-app .nf-messages-page{width:100%;}
.nofira-community-page #nofira-app .nf-messages-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:8px 0 18px;}
.nofira-community-page #nofira-app .nf-messages-title h2{margin:0 0 5px;}
.nofira-community-page #nofira-app .nf-messages-title p{margin:0;color:var(--nf-muted);}
.nofira-community-page #nofira-app .nf-message-title-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.nofira-community-page #nofira-app .nf-messages-layout{display:grid;grid-template-columns:300px minmax(0,1fr);height:min(680px,calc(100dvh - 190px));min-height:540px;border:1px solid var(--nf-line);border-radius:18px;overflow:hidden;background:#f5f8fb;box-shadow:0 12px 34px rgba(22,48,77,.07);}
.nofira-community-page #nofira-app .nf-conversation-list{min-width:0;padding:14px;background:#fff;border-right:1px solid var(--nf-line);overflow:auto;}
.nofira-community-page #nofira-app .nf-message-search{display:flex;align-items:center;gap:8px;height:42px;margin:0 0 12px;padding:0 12px;border:1px solid var(--nf-line);border-radius:12px;color:var(--nf-muted);background:#fff;}
.nofira-community-page #nofira-app .nf-message-search input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--nf-text);font:inherit;}
.nofira-community-page #nofira-app .nf-conversation-list #nf-message-list{display:grid;gap:5px;}
.nofira-community-page #nofira-app .nf-conversation-list #nf-message-list>button{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;margin:0;padding:12px;border:0;border-radius:13px;background:transparent;color:var(--nf-text);font:inherit;text-align:left;cursor:pointer;}
.nofira-community-page #nofira-app .nf-conversation-list #nf-message-list>button:hover{background:#f5f8fb;}
.nofira-community-page #nofira-app .nf-conversation-list #nf-message-list>button.active{background:#e9f1f8;}
.nofira-community-page #nofira-app .nf-message-avatar{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%;object-fit:cover;background:#17324f;color:#fff;font-weight:700;}
.nofira-community-page #nofira-app .nf-conversation-copy{display:grid;min-width:0;gap:3px;}
.nofira-community-page #nofira-app .nf-conversation-copy strong,.nofira-community-page #nofira-app .nf-conversation-copy span,.nofira-community-page #nofira-app .nf-conversation-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nofira-community-page #nofira-app .nf-conversation-copy span{font-size:.91rem;}
.nofira-community-page #nofira-app .nf-conversation-copy small,.nofira-community-page #nofira-app .nf-conversation-list time{color:var(--nf-muted);font-size:.72rem;}
.nofira-community-page #nofira-app .nf-conversation-list time{align-self:start;padding-top:3px;white-space:nowrap;}
.nofira-community-page #nofira-app .nf-conversation-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;background:#f5f8fb;}
.nofira-community-page #nofira-app .nf-conversation-placeholder{display:grid;place-content:center;justify-items:center;gap:8px;height:100%;color:var(--nf-muted);}
.nofira-community-page #nofira-app .nf-conversation-placeholder span{font-size:2rem;}
.nofira-community-page #nofira-app .nf-conversation-head{display:flex;align-items:center;justify-content:flex-start;gap:11px;min-height:76px;padding:13px 20px;border-bottom:1px solid var(--nf-line);background:#fff;}
.nofira-community-page #nofira-app .nf-conversation-head>span:not(.nf-message-avatar){display:grid;gap:3px;min-width:0;}
.nofira-community-page #nofira-app .nf-conversation-head>span strong,.nofira-community-page #nofira-app .nf-conversation-head>span small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nofira-community-page #nofira-app .nf-conversation-head>span small{color:var(--nf-muted);font-size:.78rem;}
.nofira-community-page #nofira-app .nf-message-profile-link{margin-left:auto;padding:8px 13px;border:1px solid var(--nf-line);border-radius:10px;background:#fff;color:var(--nf-blue);font:inherit;font-weight:700;cursor:pointer;}
.nofira-community-page #nofira-app .nf-message-request-actions{display:flex;gap:7px;margin-left:8px;}
.nofira-community-page #nofira-app .nf-message-stream{display:flex;flex-direction:column;gap:9px;min-height:0;padding:22px 25px;overflow:auto;}
.nofira-community-page #nofira-app .nf-message{width:auto;max-width:min(72%,560px);margin:0;padding:12px 14px;border:1px solid var(--nf-line);border-radius:16px 16px 16px 5px;background:#fff;box-shadow:0 2px 8px rgba(24,50,78,.03);align-self:flex-start;}
.nofira-community-page #nofira-app .nf-message.mine{align-self:flex-end;border-color:#bdd3e6;border-radius:16px 16px 5px 16px;background:#e4f0f9;}
.nofira-community-page #nofira-app .nf-message.scheduled{border-style:dashed;}
.nofira-community-page #nofira-app .nf-message p{margin:0 0 7px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;}
.nofira-community-page #nofira-app .nf-message-sender{display:block;margin:0 0 5px;color:var(--nf-blue);font-size:.78rem;}
.nofira-community-page #nofira-app .nf-message time{display:block;color:var(--nf-muted);font-size:.7rem;text-align:right;}
.nofira-community-page #nofira-app .nf-message-composer{display:flex;align-items:flex-end;gap:9px;margin:0 18px 17px;padding:8px;border:1px solid var(--nf-line);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(24,50,78,.06);}
.nofira-community-page #nofira-app .nf-message-composer textarea{flex:1;min-width:0;max-height:110px;padding:10px 11px;border:0;outline:0;resize:vertical;background:transparent;color:var(--nf-text);font:inherit;}
.nofira-community-page #nofira-app .nf-message-composer .nf-btn{min-height:42px;border-radius:11px;}
.nofira-community-page #nofira-app .nf-message-empty{margin:auto;color:var(--nf-muted);text-align:center;}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-messages-layout,html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-conversation-panel{background:#0d1723;}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-conversation-list,html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-conversation-head,html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-message-search,html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-message-composer,html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-message{background:#152232;}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-conversation-list #nf-message-list>button.active{background:#20384f;}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-conversation-list #nf-message-list>button:hover{background:#1b3045;}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-message.mine{border-color:#345f85;background:#244565;}
html[data-nofira-theme="dark"] .nofira-community-page #nofira-app .nf-message-profile-link{background:#152232;color:#d9e9f7;}
@media(max-width:720px){.nofira-community-page #nofira-app .nf-messages-title{align-items:flex-start}.nofira-community-page #nofira-app .nf-messages-title p{font-size:.86rem}.nofira-community-page #nofira-app .nf-messages-layout{grid-template-columns:1fr;grid-template-rows:190px minmax(420px,1fr);height:auto;min-height:650px;border-right:0;border-left:0;border-radius:0}.nofira-community-page #nofira-app .nf-conversation-list{max-height:none;border-right:0;border-bottom:1px solid var(--nf-line)}.nofira-community-page #nofira-app .nf-message-search{display:none}.nofira-community-page #nofira-app .nf-conversation-head{padding:11px 13px}.nofira-community-page #nofira-app .nf-message-profile-link{padding:7px 9px}.nofira-community-page #nofira-app .nf-message-request-actions{width:100%;margin:5px 0 0}.nofira-community-page #nofira-app .nf-conversation-head{flex-wrap:wrap}.nofira-community-page #nofira-app .nf-message-stream{padding:15px 12px}.nofira-community-page #nofira-app .nf-message{max-width:88%}.nofira-community-page #nofira-app .nf-message-composer{margin:0 9px 10px}.nofira-community-page #nofira-app .nf-messages-title #nf-new-message{white-space:nowrap}}

#nofira-app .nf-group-chat-form{width:min(680px,100%);}
#nofira-app .nf-group-chat-form fieldset{margin:0;padding:0;border:0;}
#nofira-app .nf-group-chat-form legend{margin-bottom:8px;font-weight:700;}
#nofira-app .nf-group-chat-form legend small{font-weight:500;color:var(--nf-muted);}
#nofira-app .nf-group-chat-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;padding:3px;overflow:auto;}
#nofira-app .nf-group-chat-people label{display:grid;grid-template-columns:22px 38px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:9px;padding:9px;border:1px solid var(--nf-line);border-radius:11px;background:var(--nf-soft);}
#nofira-app .nf-group-chat-people label input{grid-row:1/3;}
#nofira-app .nf-group-chat-people label img,#nofira-app .nf-group-chat-people label>span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;object-fit:cover;background:#17324f;color:#fff;}
#nofira-app .nf-group-chat-people label strong,#nofira-app .nf-group-chat-people label small{grid-column:3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#nofira-app .nf-group-chat-people label small{color:var(--nf-muted);}
@media(max-width:600px){#nofira-app .nf-group-chat-people{grid-template-columns:1fr}.nofira-community-page #nofira-app .nf-message-title-actions{justify-content:flex-start;}}
.nofira-community-page #nofira-app .nf-conversation-members-link{display:inline-flex;width:max-content;margin:0;padding:0;border:0;border-bottom:1px dotted currentColor;background:transparent;color:var(--nf-muted);font:inherit;font-size:.78rem;cursor:pointer}
.nofira-community-page #nofira-app .nf-conversation-members-link:hover{color:var(--nf-blue)}
#nofira-app .nf-group-chat-search{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;margin:0 0 10px!important;padding:0 13px!important;height:46px;border:1px solid var(--nf-line);border-radius:12px;background:var(--nf-card,#fff)}
#nofira-app .nf-group-chat-search input{width:100%;min-width:0;padding:0!important;border:0!important;outline:0;background:transparent!important}
#nofira-app .nf-group-chat-results{min-height:92px;max-height:240px;padding:4px;overflow:auto;border:1px solid var(--nf-line);border-radius:12px;background:var(--nf-soft)}
#nofira-app .nf-group-chat-results>.nf-muted{margin:30px 12px;text-align:center}
#nofira-app .nf-group-chat-selected{margin:0 0 10px;padding:10px 12px;border:1px solid #bfd1e2;border-radius:12px;background:#eef5fb}
#nofira-app .nf-group-chat-selected>strong{display:block;margin-bottom:8px;font-size:.82rem}
#nofira-app .nf-group-chat-selected>div{display:flex;flex-wrap:wrap;gap:7px}
#nofira-app .nf-group-chat-selected button{display:flex;align-items:center;gap:7px;padding:5px 9px 5px 5px;border:1px solid #b8cde0;border-radius:999px;background:#fff;color:var(--nf-text);font:inherit;cursor:pointer}
#nofira-app .nf-group-chat-selected img,#nofira-app .nf-group-chat-selected button>span:first-child{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;object-fit:cover;background:#17324f;color:#fff;font-size:.72rem}
#nofira-app .nf-group-chat-selected button>b{color:var(--nf-muted);font-size:1rem}
#nofira-app .nf-conversation-members-dialog{width:min(520px,calc(100vw - 32px));padding:0 22px 22px}
#nofira-app .nf-conversation-members-dialog .nf-conversation-members-title{max-width:390px;margin:3px 0 0;color:var(--nf-muted);font-size:.92rem;font-weight:500;line-height:1.3;overflow-wrap:anywhere}
#nofira-app .nf-conversation-members-list{display:grid;gap:8px}
#nofira-app .nf-conversation-members-list article{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--nf-line);border-radius:12px;background:var(--nf-soft)}
#nofira-app .nf-conversation-members-list article>img,#nofira-app .nf-conversation-members-list article>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;object-fit:cover;background:#17324f;color:#fff;font-weight:700}
#nofira-app .nf-conversation-members-list article>div{display:grid;min-width:0;gap:2px}
#nofira-app .nf-conversation-members-list article small{color:var(--nf-muted)}
#nofira-app .nf-conversation-members-list article em{padding:4px 8px;border-radius:999px;background:#e4eef7;color:var(--nf-blue);font-size:.72rem;font-style:normal;font-weight:700}
html[data-nofira-theme="dark"] #nofira-app .nf-group-chat-selected{border-color:#35536e;background:#16283a}
html[data-nofira-theme="dark"] #nofira-app .nf-group-chat-selected button{border-color:#405f7b;background:#20364a}
/* Gruppi — soluzione A: popup a schede */
#nofira-app #nf-dialog.nf-group-dialog{box-sizing:border-box;width:min(1040px,calc(100vw - 32px));max-width:1040px;height:min(850px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);overflow:hidden;border-radius:18px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal{display:grid;grid-template-rows:154px 56px minmax(0,1fr);height:100%;min-height:0;background:var(--nf-bg);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-cover{position:relative;display:flex;align-items:flex-end;padding:20px 24px;background:linear-gradient(105deg,#152d47,#315a86);background-position:center;background-size:cover;color:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-close{position:absolute;z-index:2;top:15px;right:16px;display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(15,35,56,.45);color:#fff;font-size:1.35rem;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-title{display:flex;align-items:center;gap:14px;min-width:0;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-symbol{display:grid;place-items:center;width:60px;height:60px;flex:0 0 60px;border-radius:15px;background:#fff;color:var(--nf-blue);font-weight:800;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-title>div{min-width:0;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-title small{font-weight:750;letter-spacing:.08em;opacity:.82;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-title h2{margin:3px 0;font-size:1.55rem;color:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-title p{margin:0;opacity:.85;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs{display:flex;gap:6px;padding:8px 20px;border-bottom:1px solid var(--nf-line);background:#fff;overflow-x:auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs button{display:flex;align-items:center;gap:7px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:var(--nf-text);font:inherit;font-weight:700;white-space:nowrap;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs button:hover{background:var(--nf-soft);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs button.active{background:var(--nf-blue);color:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs button span{display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:rgba(49,90,134,.12);font-size:.72rem;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs button.active span{background:rgba(255,255,255,.18);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-body{min-height:0;padding:18px 22px 24px;overflow:auto;background:var(--nf-bg);}
#nofira-app #nf-dialog.nf-group-dialog [data-group-panel][hidden]{display:none;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-description{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px;padding:13px 15px;border:1px solid var(--nf-line);border-radius:12px;background:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-description>p{margin:0;line-height:1.5;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-description details{flex:0 0 auto;max-width:45%;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-description summary{color:var(--nf-blue);font-weight:700;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer{display:grid;grid-template-columns:minmax(0,1fr) 230px auto;gap:9px;margin-bottom:14px;padding:12px;border:1px solid var(--nf-line);border-radius:13px;background:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer textarea,#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer select{min-width:0;padding:10px 11px;border:1px solid #cbd5df;border-radius:9px;background:#fff;color:var(--nf-text);font:inherit;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer textarea{min-height:48px;resize:vertical;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-posts{display:grid;gap:12px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post{padding:14px 15px;border:1px solid var(--nf-line);border-radius:13px;background:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post::after{content:"";display:block;clear:both;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post.announcement{border-left:4px solid var(--nf-blue);background:#f5f9fc;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post>header{display:flex;align-items:center;gap:10px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post>header>span:not(.nf-group-person-avatar){display:grid;min-width:0;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post>header small{color:var(--nf-muted);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-actions{display:flex;align-items:center;gap:5px;margin-left:auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-actions button{padding:6px 9px;border:0;border-radius:7px;background:transparent;color:var(--nf-blue);font:inherit;font-weight:700;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-actions button[data-delete-group-post]{color:var(--nf-danger);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-actions button:hover{background:rgba(49,90,134,.09);}
.nf-group-post-edit-form textarea{min-height:170px;resize:vertical;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post>p{margin:12px 0;line-height:1.5;white-space:pre-wrap;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-person-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;object-fit:cover;background:#183450;color:#fff;font-weight:750;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-photo{float:left;display:block;width:min(46%,460px);margin:0 16px 10px 0;padding:0;border:0;border-radius:11px;overflow:hidden;background:#111;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-photo img{display:block;width:100%;max-height:340px;object-fit:contain;}

#nofira-app #nf-subdialog.nf-photo-subdialog{width:min(1180px,96vw);max-width:1180px;max-height:92vh;padding:0;overflow:hidden;border-radius:18px;}
/* The group photo uses a secondary dialog so the group can stay open behind it.
   Give that photo the same frame and controls as a photo opened from a profile. */
#nofira-app #nf-subdialog.nf-photo-subdialog{box-sizing:border-box;max-height:calc(100dvh - 32px);border:1px solid var(--nf-line);background:var(--nf-card,#fff);box-shadow:0 24px 70px rgba(8,17,27,.32);clip-path:inset(0 round 18px);color:#17212f;}
#nofira-app #nf-subdialog.nf-photo-subdialog>.nf-photo-modal{box-sizing:border-box;max-width:100%;max-height:calc(100dvh - 34px);overflow:auto;}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-photo-side{background:#fff;color:#17212f;}
#nofira-app #nf-subdialog.nf-photo-subdialog :is(h1,h2,h3,strong,.nf-author-link,.nf-details summary,.nf-photo-meta){color:#17212f!important;}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-viewer{box-sizing:border-box;padding:clamp(14px,2vw,24px);}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-viewer>img{max-width:100%;max-height:calc(78vh - 48px);}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-dialog-head>button[data-close-dialog]{display:grid!important;flex:0 0 36px!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;place-items:center!important;margin:0!important;padding:0!important;border:1px solid #d5e0ea!important;border-radius:50%!important;background:#eef4fa!important;color:var(--nf-blue)!important;font-size:1.2rem!important;font-weight:500!important;line-height:1!important;cursor:pointer;}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-comment-form{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-comment-form textarea{min-height:88px!important;}
#nofira-app #nf-subdialog.nf-photo-subdialog .nf-comment-form>button{width:auto;min-width:82px;justify-self:end;}
html[data-nofira-theme="dark"] #nofira-app #nf-subdialog.nf-photo-subdialog,html[data-nofira-theme="dark"] #nofira-app #nf-subdialog.nf-photo-subdialog .nf-photo-side{background:#171d24;color:#e8edf2;}
html[data-nofira-theme="dark"] #nofira-app #nf-subdialog.nf-photo-subdialog :is(h1,h2,h3,strong,.nf-author-link,.nf-details summary,.nf-photo-meta){color:#f5f7f9!important;}
html[data-nofira-theme="dark"] #nofira-app #nf-subdialog.nf-photo-subdialog .nf-dialog-head{background:#171d24!important;border-color:#2b3540;}
#nofira-app #nf-subdialog.nf-group-edit-subdialog{width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto;border-radius:18px;}
#nofira-app #nf-subdialog::backdrop{background:rgba(5,14,25,.38);}

@media(max-width:720px){
  #nofira-app #nf-dialog.nf-group-dialog .nf-group-post-photo{float:none;width:100%;max-width:none;margin:0 0 12px;}
  #nofira-app #nf-subdialog.nf-photo-subdialog{width:100vw;max-width:100vw;max-height:100vh;border-radius:0;}
}
@media(max-width:700px){
  #nofira-app #nf-subdialog.nf-photo-subdialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);margin:auto;border-radius:16px;clip-path:inset(0 round 16px);}
  #nofira-app #nf-subdialog.nf-photo-subdialog>.nf-photo-modal{width:100%;max-height:calc(100dvh - 18px);}
  #nofira-app #nf-subdialog.nf-photo-subdialog .nf-photo-modal-grid{grid-template-columns:minmax(0,1fr);min-height:0;}
  #nofira-app #nf-subdialog.nf-photo-subdialog .nf-viewer{min-height:220px;max-height:46dvh;}
  #nofira-app #nf-subdialog.nf-photo-subdialog .nf-viewer img{max-width:100%;max-height:46dvh;}
  #nofira-app #nf-subdialog.nf-photo-subdialog .nf-photo-side{max-width:100%;padding:14px;}
}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-grid button{display:grid;gap:0;padding:0;border:1px solid var(--nf-line);border-radius:12px;overflow:hidden;background:#fff;color:var(--nf-text);font:inherit;text-align:left;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-grid span{padding:10px 11px;font-weight:700;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-members{display:grid;gap:9px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-members>article,#nofira-app #nf-dialog.nf-group-dialog .nf-group-pending{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--nf-line);border-radius:12px;background:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-members article>span:not(.nf-group-person-avatar),#nofira-app #nf-dialog.nf-group-dialog .nf-group-pending>span:not(.nf-group-person-avatar){display:grid;min-width:0;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-members small,#nofira-app #nf-dialog.nf-group-dialog .nf-group-pending small{color:var(--nf-muted);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-members article>button,#nofira-app #nf-dialog.nf-group-dialog .nf-group-pending>button{margin-left:auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-member-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-left:auto;flex-wrap:wrap;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-member-actions .nf-btn{padding:7px 10px;white-space:nowrap;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-request-actions{display:flex;align-items:center;gap:7px;margin-left:auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-btn.danger{border:1px solid #e7aeb4;background:#fff;color:var(--nf-danger);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-management{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:15px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-management>div{padding:16px;border:1px solid var(--nf-line);border-radius:13px;background:#fff;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-management h3{margin:0 0 13px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool{display:flex;align-items:center;gap:11px;width:100%;padding:12px;border:1px solid #b9cada;border-radius:11px;background:#edf3f8;color:#10243a;font:inherit;text-align:left;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool>span:last-child{display:grid;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool strong{color:#10243a;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool small{color:#5c7188;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool:hover{border-color:var(--nf-blue);background:#e3edf6;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool+.nf-group-tool{margin-top:9px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool.danger{border-color:#e0a9ae;background:#fff4f4;color:#9b252c;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool.danger strong,#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool.danger small{color:#9b252c;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-tool.danger:hover{border-color:#c64048;background:#ffe8e9;}
#nofira-app #nf-dialog.nf-group-dialog #nf-group-broadcast{display:grid;gap:10px;margin-top:16px;padding-top:15px;border-top:1px solid var(--nf-line);}
#nofira-app #nf-dialog.nf-group-dialog #nf-group-broadcast label{display:grid;gap:7px;font-weight:700;}
#nofira-app #nf-dialog.nf-group-dialog #nf-group-broadcast textarea{min-height:110px;padding:11px;border:1px solid #cbd5df;border-radius:10px;background:#fff;color:var(--nf-text);font:inherit;resize:vertical;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-admin-message{display:grid;gap:10px;margin-top:16px;padding-top:15px;border-top:1px solid var(--nf-line);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-admin-message label{display:grid;gap:7px;font-weight:700;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-admin-message label>small{font-weight:500;color:var(--nf-muted);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-admin-message textarea{min-height:100px;padding:11px;border:1px solid #cbd5df;border-radius:10px;background:#fff;color:var(--nf-text);font:inherit;resize:vertical;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-admin-message button:disabled{opacity:.5;cursor:not-allowed;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-join-box,#nofira-app #nf-dialog.nf-group-dialog .nf-group-empty{padding:28px;border:1px dashed #bdcad7;border-radius:12px;background:#fff;color:var(--nf-muted);text-align:center;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-description,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-composer,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-post,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-grid button,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-members>article,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-pending,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-management>div,html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-empty{background:#172432;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-post.announcement{background:#1d3449;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-tool{border-color:#526a82;background:#e7eef5;color:#10243a;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog :is(.nf-group-composer textarea,.nf-group-composer select,#nf-group-broadcast textarea,.nf-group-admin-message textarea){border-color:#405064;background:#101b27;color:#eef4fb;}

#nofira-app #nf-dialog.nf-group-dialog .nf-group-post.highlighted{border-color:#6fa0cf;box-shadow:0 0 0 3px rgba(49,90,134,.24),0 10px 25px rgba(15,40,66,.16);animation:nf-group-highlight 1.5s ease-in-out 2;}
@keyframes nf-group-highlight{50%{background:#eaf4fd;}}
.nf-notification-group-detail{display:grid;gap:9px;align-items:start;}
.nf-notification-group-detail blockquote{margin:0;padding:9px 12px;border-left:3px solid var(--nf-blue);background:rgba(49,90,134,.07);line-height:1.4;white-space:pre-wrap;}
.nf-notification-group-detail .nf-btn{justify-self:start;}

/* Keep the notifications surface centered as the administrator widens the desktop shell. */
@media (min-width: 1161px) {
  .nofira-community-page #nofira-app .nf-notification-page {
    width: min(100%, 850px);
    max-width: none;
    margin-inline: auto;
  }
}
@media(max-width:720px){#nofira-app #nf-dialog.nf-group-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal{grid-template-rows:132px 54px minmax(0,1fr);}#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-cover{padding:14px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-symbol{width:48px;height:48px;flex-basis:48px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-tabs{padding-inline:9px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-modal-body{padding:12px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-description{display:block;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-description details{max-width:none;margin-top:10px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer{grid-template-columns:1fr;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));}#nofira-app #nf-dialog.nf-group-dialog .nf-group-management{grid-template-columns:1fr;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-members>article{align-items:flex-start;flex-wrap:wrap;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-member-actions{width:100%;margin-left:53px;justify-content:flex-start;}}

/* Ricerca gruppi. */
#nofira-app .nf-search-group-results{display:grid;gap:10px;}
#nofira-app .nf-search-group{display:grid;width:100%;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 14px;border:1px solid #365b7d;border-radius:13px;background:#0f1d2a;color:#f5f8fc;font:inherit;text-align:left;cursor:pointer;}
#nofira-app .nf-search-group:hover{border-color:#78a3ca;background:#14283a;}
#nofira-app .nf-search-group>img,#nofira-app .nf-search-group-symbol{width:58px;height:58px;border-radius:11px;object-fit:cover;}
#nofira-app .nf-search-group-symbol{display:grid;place-items:center;background:#315a86;color:#fff;font-weight:800;}
#nofira-app .nf-search-group>span{display:grid;min-width:0;gap:3px;}
#nofira-app .nf-search-group strong{font-size:1rem;}
#nofira-app .nf-search-group small{color:#bfd0df;}
#nofira-app .nf-search-group em{overflow:hidden;color:#e2eaf1;font-style:normal;text-overflow:ellipsis;white-space:nowrap;}
#nofira-app .nf-search-group>b{padding:8px 12px;border:1px solid #607f9b;border-radius:9px;font-size:.82rem;white-space:nowrap;}

/* Selettore multiplo e galleria dei post nei gruppi. */
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-multiple{grid-template-columns:minmax(0,1fr) auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-multiple textarea{grid-column:1/-1;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-multiple fieldset{min-width:0;margin:0;padding:10px;border:1px solid var(--nf-line);border-radius:10px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-multiple legend{padding:0 6px;font-weight:750;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-multiple legend small{font-weight:500;color:var(--nf-muted);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker{display:grid;grid-template-columns:repeat(5,minmax(88px,1fr));gap:8px;max-height:238px;overflow:auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker label{position:relative;display:grid;gap:5px;min-width:0;padding:6px;border:2px solid transparent;border-radius:9px;background:var(--nf-soft);cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker label:has(input:checked){border-color:var(--nf-blue);background:#e7f0f8;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker input{position:absolute;z-index:2;top:10px;left:10px;width:18px;height:18px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker span{overflow:hidden;font-size:.76rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0 0 12px;clear:both;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery button{min-width:0;padding:0;border:0;border-radius:9px;overflow:hidden;background:#101820;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:cover;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery.single{float:left;display:block;width:min(46%,460px);margin:0 16px 10px 0;clear:none;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery.single img{max-height:340px;aspect-ratio:auto;object-fit:contain;}
#nofira-app #nf-dialog.nf-group-dialog #nf-leave-group{flex:0 0 auto;}
#nofira-app .nf-conversation-head #nf-leave-conversation{margin-left:auto;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker label{background:#101b27;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker label:has(input:checked){background:#203d59;}
@media(max-width:720px){#nofira-app .nf-search-group{grid-template-columns:48px minmax(0,1fr);}#nofira-app .nf-search-group>b{display:none;}#nofira-app .nf-search-group>img,#nofira-app .nf-search-group-symbol{width:48px;height:48px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-photo-picker{grid-template-columns:repeat(3,minmax(76px,1fr));}#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}#nofira-app #nf-dialog.nf-group-dialog .nf-group-post-gallery.single{float:none;width:100%;margin:0 0 12px;}#nofira-app #nf-dialog.nf-group-dialog #nf-leave-group{margin-top:10px;}}

/* Compositore compatto dei post di gruppo. */
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-compact>textarea,#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos{grid-column:1/-1;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-tools{display:flex;min-width:0;align-items:center;gap:8px;flex-wrap:wrap;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-tools .nf-muted{font-size:.78rem;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-publish{min-width:104px;min-height:42px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos{display:flex;gap:8px;padding:4px 0;overflow-x:auto;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos[hidden]{display:none;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos figure{position:relative;flex:0 0 88px;margin:0;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos img{display:block;width:88px;height:72px;border-radius:8px;object-fit:cover;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos button{position:absolute;top:4px;right:4px;display:grid;width:24px;height:24px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(8,20,32,.82);color:#fff;font-size:1rem;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-selected-photos figcaption{margin-top:4px;overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap;}

/* Popup per scegliere fotografie già pubblicate. */
#nofira-app #nf-subdialog:has(.nf-group-photo-selector){width:min(940px,calc(100vw - 30px));max-height:90dvh;overflow:auto;border-radius:18px;}
#nofira-app .nf-group-photo-selector{padding:0 18px 18px;}
#nofira-app .nf-group-photo-selector>.nf-dialog-head{margin:0 -18px 14px;}
#nofira-app .nf-group-photo-search{display:grid;grid-template-columns:auto minmax(180px,360px);align-items:center;gap:10px;margin-bottom:8px;font-weight:700;}
#nofira-app .nf-group-photo-search input{padding:10px 12px;border:1px solid #bdcad7;border-radius:9px;background:#fff;color:var(--nf-text);font:inherit;}
#nofira-app .nf-group-photo-selector-count{margin:6px 0 12px;color:var(--nf-muted);font-weight:650;}
#nofira-app .nf-group-photo-selector-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;max-height:56dvh;overflow:auto;}
#nofira-app .nf-group-photo-selector-grid label{position:relative;display:grid;gap:5px;min-width:0;padding:6px;border:2px solid transparent;border-radius:10px;background:var(--nf-soft);cursor:pointer;}
#nofira-app .nf-group-photo-selector-grid label:has(input:checked){border-color:var(--nf-blue);background:#e6f0f8;}
#nofira-app .nf-group-photo-selector-grid input{position:absolute;z-index:2;top:10px;left:10px;width:20px;height:20px;}
#nofira-app .nf-group-photo-selector-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;}
#nofira-app .nf-group-photo-selector-grid span{overflow:hidden;font-size:.78rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap;}
#nofira-app #nf-subdialog.nf-upload-subdialog{width:min(1000px,calc(100vw - 30px));max-height:92dvh;overflow:auto;border-radius:18px;}
html[data-nofira-theme="dark"] #nofira-app .nf-group-photo-search input{border-color:#405064;background:#101b27;color:#eef4fb;}
html[data-nofira-theme="dark"] #nofira-app .nf-group-photo-selector-grid label{background:#101b27;}
html[data-nofira-theme="dark"] #nofira-app .nf-group-photo-selector-grid label:has(input:checked){background:#203d59;}
@media(max-width:720px){#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-compact{grid-template-columns:1fr;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-publish{width:100%;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-tools{display:grid;grid-template-columns:1fr 1fr;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-tools .nf-muted{grid-column:1/-1;}#nofira-app #nf-subdialog:has(.nf-group-photo-selector),#nofira-app #nf-subdialog.nf-upload-subdialog{width:100vw;max-width:100vw;max-height:100dvh;margin:0;border-radius:0;}#nofira-app .nf-group-photo-selector-grid{grid-template-columns:repeat(3,minmax(82px,1fr));}#nofira-app .nf-group-photo-search{grid-template-columns:1fr;} }

/* Modifica post e caricamento massivo: popup sovrapposti, miniature ordinate. */
#nofira-app #nf-subdialog:has(.nf-group-post-edit-form){width:min(760px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border-radius:18px;}
#nofira-app #nf-subdialog .nf-group-post-edit-form{display:grid;gap:14px;padding:0 20px 20px;}
#nofira-app #nf-subdialog .nf-group-post-edit-form>.nf-dialog-head{margin:0 -20px;}
#nofira-app #nf-subdialog .nf-group-post-edit-form>label{display:grid;gap:7px;}
#nofira-app #nf-subdialog .nf-group-post-edit-form textarea{width:100%;min-height:110px;box-sizing:border-box;}
#nofira-app #nf-subdialog .nf-group-post-edit-form .nf-group-selected-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:12px;max-height:310px;overflow:auto;align-content:start;}
#nofira-app #nf-subdialog .nf-group-post-edit-form .nf-group-selected-photos figure{position:relative;min-width:0;margin:0;padding:5px;border:1px solid #d8e1ea;border-radius:10px;background:#f4f7fa;}
#nofira-app #nf-subdialog .nf-group-post-edit-form .nf-group-selected-photos img{display:block;width:100%;height:86px;object-fit:cover;border-radius:6px;}
#nofira-app #nf-subdialog .nf-group-post-edit-form .nf-group-selected-photos button{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid white;border-radius:50%;background:#172b42;color:white;cursor:pointer;line-height:1;}
#nofira-app #nf-subdialog .nf-group-post-edit-form .nf-group-selected-photos figcaption{overflow:hidden;margin-top:5px;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;}
#nofira-app #nf-subdialog .nf-group-post-edit-form .nf-group-composer-tools{display:flex;gap:9px;flex-wrap:wrap;}
.nf-group-overlay{width:min(960px,calc(100vw - 30px));max-height:92dvh;box-sizing:border-box;overflow:auto;padding:0;border:1px solid #d8e1ea;border-radius:18px;background:#fff;color:#172b42;box-shadow:0 22px 70px #0b1b2e66;font:inherit;}
.nf-group-overlay::backdrop{background:rgba(7,16,28,.64);}
.nf-group-overlay .nf-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #d8e1ea;}
.nf-group-overlay .nf-dialog-head h2{margin:2px 0 0;}
.nf-group-overlay .nf-dialog-head button{width:36px;height:36px;border:0;border-radius:50%;background:#edf3f8;color:#244e79;cursor:pointer;}
.nf-group-overlay .nf-form-actions{display:flex;justify-content:flex-end;gap:9px;margin:18px 0 0;}
.nf-group-overlay .nf-btn{padding:10px 15px;border-radius:9px;cursor:pointer;}
.nf-group-overlay .nf-btn.primary{border:1px solid #315a86;background:#315a86;color:#fff;}
.nf-group-overlay .nf-btn.secondary{border:1px solid #b9cada;background:#fff;color:#315a86;}
.nf-group-overlay .nf-group-photo-selector{padding:0 20px 20px;}
.nf-group-overlay .nf-group-photo-selector>.nf-dialog-head{margin:0 -20px 16px;}
.nf-group-overlay .nf-group-photo-search{display:flex;align-items:center;gap:12px;margin:12px 0;}
.nf-group-overlay .nf-group-photo-search input{min-width:0;flex:1;padding:10px;border:1px solid #bdcad7;border-radius:9px;}
.nf-group-overlay .nf-group-photo-selector-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-height:55dvh;overflow:auto;}
.nf-group-overlay .nf-group-photo-selector-grid label{position:relative;min-width:0;padding:6px;border:2px solid transparent;border-radius:10px;background:#f1f5f9;cursor:pointer;}
.nf-group-overlay .nf-group-photo-selector-grid label:has(input:checked){border-color:#315a86;}
.nf-group-overlay .nf-group-photo-selector-grid input{position:absolute;top:10px;left:10px;width:20px;height:20px;}
.nf-group-overlay .nf-group-photo-selector-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;}
.nf-group-overlay .nf-group-photo-selector-grid span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;}
.nf-group-batch{padding:0 22px 22px;}
.nf-group-batch>.nf-dialog-head{margin:0 -22px 14px;}
.nf-group-batch>p{color:#53657a;}
.nf-group-batch-picker{display:grid;gap:8px;padding:14px;border:1px dashed #9ab5d0;border-radius:11px;background:#f1f6fa;font-weight:700;}
.nf-group-batch-picker input{max-width:100%;font:inherit;}
.nf-group-batch-list{display:grid;gap:12px;margin-top:16px;}
.nf-group-batch-card{display:grid;grid-template-columns:145px minmax(0,1fr);gap:16px;padding:13px;border:1px solid #d9e3ec;border-radius:12px;background:#fff;}
.nf-group-batch-card>img{width:145px;height:145px;object-fit:cover;border-radius:9px;position:sticky;top:10px;}
.nf-group-batch-fields{display:grid;gap:10px;min-width:0;}
.nf-group-batch-fields h3{margin:0;overflow-wrap:anywhere;font-size:1rem;}
.nf-group-batch-fields label{display:grid;gap:5px;font-weight:650;font-size:.85rem;}
.nf-group-batch-fields input:not([type=checkbox]),.nf-group-batch-fields textarea,.nf-group-batch-fields select{box-sizing:border-box;width:100%;min-width:0;padding:9px 11px;border:1px solid #c4d2df;border-radius:8px;background:white;color:#172b42;font:inherit;}
.nf-group-batch-fields select[multiple]{min-height:90px;}
.nf-group-batch-fields .nf-two,.nf-group-batch-fields .nf-three{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.nf-group-batch-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
.nf-group-batch-checks label{display:flex;align-items:center;gap:7px;font-weight:500;}
.nf-group-batch-analog summary{cursor:pointer;font-weight:650;}
.nf-group-batch-analog .nf-three{margin-top:10px;}
.nf-group-batch .nf-form-status{margin-top:8px;}
@media(max-width:680px){.nf-group-overlay{width:100vw;max-width:100vw;max-height:100dvh;margin:0;border-radius:0;}.nf-group-overlay .nf-group-photo-selector-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.nf-group-batch-card{grid-template-columns:1fr;}.nf-group-batch-card>img{position:static;width:100%;height:160px;}.nf-group-batch-checks{grid-template-columns:1fr;}#nofira-app #nf-subdialog:has(.nf-group-post-edit-form){width:100vw;max-width:100vw;max-height:100dvh;margin:0;border-radius:0;}}
/* Modifica gruppo: editor desktop in due colonne, soluzione B */
#nofira-app :is(#nf-dialog,#nf-subdialog):has(> #nf-group-edit-form){box-sizing:border-box;width:min(820px,calc(100vw - 32px));max-width:820px;max-height:calc(100dvh - 32px);overflow:hidden;border-radius:18px}
#nofira-app :is(#nf-dialog,#nf-subdialog)>#nf-group-edit-form{box-sizing:border-box;max-height:calc(100dvh - 34px);padding:0 24px 20px;overflow-y:auto;overflow-x:hidden}
#nofira-app :is(#nf-dialog,#nf-subdialog) #nf-group-edit-form>.nf-dialog-head{position:sticky;top:0;z-index:5;margin:0 -24px 0;padding:17px 24px;border-bottom:1px solid var(--nf-border,var(--nf-line));background:var(--nf-surface,var(--nf-card))}
#nofira-app #nf-group-edit-form .nf-group-edit-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,1fr);align-items:start;gap:22px;padding:22px 0}
#nofira-app #nf-group-edit-form .nf-group-edit-main,#nofira-app #nf-group-edit-form .nf-group-edit-side{display:grid;min-width:0;align-content:start;gap:16px}
#nofira-app #nf-group-edit-form .nf-group-edit-side{padding:18px;border:1px solid var(--nf-border,var(--nf-line));border-radius:13px;background:var(--nf-tint,var(--nf-bg))}
#nofira-app #nf-group-edit-form .nf-group-edit-kicker{margin:0;color:var(--nf-action,var(--nf-blue));font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
#nofira-app #nf-group-edit-form :is(label,textarea,input,select){min-width:0}
#nofira-app #nf-group-edit-form textarea{min-height:110px}
#nofira-app #nf-group-edit-form .nf-group-edit-main textarea[name="description"]{min-height:140px}
#nofira-app #nf-group-edit-form .nf-group-edit-preview{display:grid;place-items:center;height:130px;overflow:hidden;border-radius:10px;background:linear-gradient(120deg,var(--nf-action,var(--nf-blue)),var(--nf-page,var(--nf-bg)));color:var(--nf-on-action,#fff);text-align:center}
#nofira-app #nf-group-edit-form .nf-group-edit-preview img{display:block;width:100%;height:100%;object-fit:cover}
#nofira-app #nf-group-edit-form .nf-group-edit-help{margin:-9px 0 0;color:var(--nf-secondary,var(--nf-text));font-size:.78rem;line-height:1.45;font-weight:400}
#nofira-app #nf-group-edit-form input[type="file"]{max-width:100%;padding:8px;background:var(--nf-field,var(--nf-card));font-size:.82rem}
#nofira-app #nf-group-edit-form .nf-form-actions{position:sticky;bottom:0;z-index:4;justify-content:flex-end;margin:0 -24px;padding:14px 24px;border-top:1px solid var(--nf-border,var(--nf-line));background:var(--nf-surface,var(--nf-card))}
#nofira-app #nf-group-edit-form .nf-form-status:not(:empty){margin-top:8px}
@media(max-width:700px){#nofira-app #nf-group-edit-form .nf-group-edit-grid{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px 0}#nofira-app :is(#nf-dialog,#nf-subdialog)>#nf-group-edit-form{padding:0 14px 14px!important}#nofira-app :is(#nf-dialog,#nf-subdialog) #nf-group-edit-form>.nf-dialog-head{margin:0 -14px;padding:13px 14px}#nofira-app #nf-group-edit-form .nf-form-actions{margin:0 -14px;padding:12px 14px}#nofira-app #nf-group-edit-form .nf-group-edit-side{padding:15px}}

/* Valutazione segnalazioni: soluzione A. */
#nofira-app #nf-dialog:has(.nf-moderation-decision){width:min(650px,calc(100vw - 24px));max-width:650px;max-height:calc(100dvh - 24px);overflow-y:auto;}
#nofira-app .nf-moderation-decision{display:grid;gap:14px;min-width:0;}
#nofira-app .nf-moderation-decision .nf-dialog-head{margin-bottom:0;}
#nofira-app .nf-moderation-target{border:1px solid var(--nf-border,var(--nf-line));background:var(--nf-surface,var(--nf-card));border-radius:8px;padding:12px 14px;display:grid;gap:4px;}
#nofira-app .nf-moderation-target span,#nofira-app .nf-moderation-target p{margin:0;color:var(--nf-muted);}
#nofira-app .nf-moderation-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
#nofira-app .nf-moderation-decision .nf-form-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
@media(max-width:640px){#nofira-app .nf-moderation-fields{grid-template-columns:1fr;}}
/* Settings actions: keep account tools in the content column, apart from save. */
.nofira-community-page #nofira-app .nf-settings{background:transparent!important;border:0!important;padding:0!important;display:grid;gap:14px}
.nofira-community-page #nofira-app .nf-settings>.nf-panel{margin:0}
.nofira-community-page #nofira-app .nf-settings-save{display:flex;justify-content:center;padding:12px 0 20px}
.nofira-community-page #nofira-app .nf-settings-save>.nf-btn{min-width:220px}
.nofira-community-page #nofira-app .nf-settings-account{margin-top:10px}
.nofira-community-page #nofira-app .nf-settings-account>h2{font-size:1rem;margin:0 0 13px}
.nofira-community-page #nofira-app .nf-settings-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nofira-community-page #nofira-app .nf-settings-account-grid>.nf-panel{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;margin:0}
.nofira-community-page #nofira-app .nf-settings-account-grid h3{margin:0;font-size:1rem}
.nofira-community-page #nofira-app .nf-settings-account-grid p{margin:0 0 8px;line-height:1.5}
.nofira-community-page #nofira-app .nf-settings-account-grid .nf-btn{margin-top:auto}
.nofira-community-page #nofira-app .nf-settings-decisions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:24px}
.nofira-community-page #nofira-app .nf-settings-decisions h2{margin:0 0 8px;font-size:1rem}
.nofira-community-page #nofira-app .nf-settings-decisions p{margin:0}
@media(max-width:700px){.nofira-community-page #nofira-app .nf-settings-account-grid{grid-template-columns:minmax(0,1fr)}.nofira-community-page #nofira-app .nf-settings-save>.nf-btn{width:100%}.nofira-community-page #nofira-app .nf-settings-decisions>.nf-btn{width:100%}}
/* Raccolte: azione nella testata del riquadro, coerente con l'archivio personale. */
.nofira-community-page #nofira-app .nf-collections-panel{margin-top:24px;padding:20px;background:var(--nf-surface,var(--nf-card));color:var(--nf-ink,var(--nf-text));border-color:var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-collections-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-collections-panel-head h3{margin:0;color:var(--nf-ink,var(--nf-text));font-size:1.05rem}
.nofira-community-page #nofira-app .nf-collection-list{margin-top:14px}
@media(max-width:700px){.nofira-community-page #nofira-app .nf-collections-panel{padding:16px 14px}.nofira-community-page #nofira-app .nf-collections-panel-head{flex-wrap:wrap}.nofira-community-page #nofira-app .nf-collections-panel-head .nf-btn{width:100%}}
/* Gruppi: azione nella testata del riquadro, anche se l'elenco è vuoto. */
.nofira-community-page #nofira-app .nf-groups-panel{margin-top:24px;padding:20px;background:var(--nf-surface,var(--nf-card));color:var(--nf-ink,var(--nf-text));border-color:var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-groups-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-groups-panel-head h3{margin:0;color:var(--nf-ink,var(--nf-text));font-size:1.05rem}
.nofira-community-page #nofira-app .nf-groups-panel .nf-group-list{margin-top:14px}
.nofira-community-page #nofira-app .nf-groups-empty{margin:0;padding:22px 8px;color:var(--nf-secondary,var(--nf-muted));text-align:center}
@media(max-width:700px){.nofira-community-page #nofira-app .nf-groups-panel{padding:16px 14px}.nofira-community-page #nofira-app .nf-groups-panel-head{flex-wrap:wrap}.nofira-community-page #nofira-app .nf-groups-panel-head .nf-btn{width:100%}}
/* Challenge: creazione nella testata del riquadro centrale. */
.nofira-community-page #nofira-app .nf-challenges-panel{margin-top:24px;padding:20px;background:var(--nf-surface,var(--nf-card));color:var(--nf-ink,var(--nf-text));border-color:var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-challenges-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-challenges-panel-head h3{margin:0;color:var(--nf-ink,var(--nf-text));font-size:1.05rem}
.nofira-community-page #nofira-app .nf-challenges-panel .nf-challenge-grid{margin-top:14px}
.nofira-community-page #nofira-app .nf-challenges-empty{grid-column:1/-1;margin:0;padding:22px 8px;color:var(--nf-secondary,var(--nf-muted));text-align:center}
@media(max-width:700px){.nofira-community-page #nofira-app .nf-challenges-panel{padding:16px 14px}.nofira-community-page #nofira-app .nf-challenges-panel-head{flex-wrap:wrap}.nofira-community-page #nofira-app .nf-challenges-panel-head .nf-btn{width:100%}}
/* Copertina editoriale fornita per articoli senza immagine in evidenza. */
#nofira-app .nf-editorial-fallback{aspect-ratio:16/9;background:var(--nf-surface,var(--nf-card))}
#nofira-app .nf-editorial-fallback img{width:100%;height:100%;object-fit:contain}
#nofira-app .nf-editorial-fallback .nf-editorial-fallback-dark{display:none}
html[data-nofira-theme="dark"] #nofira-app .nf-editorial-fallback .nf-editorial-fallback-light{display:none}
html[data-nofira-theme="dark"] #nofira-app .nf-editorial-fallback .nf-editorial-fallback-dark{display:block}
.nofira-community-page #nofira-app .nf-profile-nav{gap:7px}
.nofira-community-page #nofira-app .nf-profile-section{min-width:0;border:1px solid var(--nf-border,var(--nf-line));border-radius:8px;background:var(--nf-surface,var(--nf-card));overflow:hidden}
.nofira-community-page #nofira-app .nf-profile-section>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;color:var(--nf-ink,var(--nf-text));font-size:.82rem;font-weight:750;line-height:1.3}
.nofira-community-page #nofira-app .nf-profile-section>summary::-webkit-details-marker{display:none}
.nofira-community-page #nofira-app .nf-profile-section>summary:after{content:'⌄';font-size:1rem;color:var(--nf-secondary,var(--nf-muted));transition:transform .15s}
.nofira-community-page #nofira-app .nf-profile-section[open]>summary:after{transform:rotate(180deg)}
.nofira-community-page #nofira-app .nf-profile-section>summary:focus-visible{outline:2px solid var(--nf-action,var(--nf-blue));outline-offset:-2px}
.nofira-community-page #nofira-app .nf-profile-section-items{padding:2px 6px 7px;border-top:1px solid var(--nf-border,var(--nf-line))}
.nofira-community-page #nofira-app .nf-profile-section-items>button{min-height:36px;padding:6px 8px;font-size:.86rem}

/* Aggiornamento schede e finestre contenuti. */
#nofira-app .nf-photo-actions,#nofira-app .nf-photo-memberships{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
#nofira-app .nf-photo-memberships:empty{display:none}
.nf-notif-avatar{width:40px;height:40px;flex:none;object-fit:cover;border-radius:50%}
#nofira-app .nf-search-linked-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;padding:15px;margin:8px 0;background:var(--nf-card,#fff);color:var(--nf-text,#15253b);border:1px solid var(--nf-line,#d4dfeb);border-radius:12px;text-align:left;cursor:pointer}
#nofira-app .nf-search-linked-card span{color:var(--nf-muted,#627389)}
#nofira-app .nf-article-dialog{width:min(850px,calc(100vw - 32px));max-height:calc(100dvh - 36px);display:flex;flex-direction:column;background:var(--nf-card,#fff);color:var(--nf-text,#15253b)}
#nofira-app .nf-article-scroll{overflow:auto;min-height:0;padding:18px 28px 30px;line-height:1.65}
#nofira-app .nf-article-scroll .nf-content-cover{max-height:370px;overflow:hidden;margin-bottom:20px}
#nofira-app .nf-article-scroll .nf-content-cover img{width:100%;height:auto;object-fit:cover}
#nofira-app .nf-article-scroll .nf-content-full{max-width:70ch;margin:20px auto;color:inherit}
.nf-project-picker-dialog{width:min(800px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #b9cbdc;border-radius:16px;background:var(--nf-card,#fff);color:var(--nf-text,#15253b)}
.nf-project-picker{padding:18px;display:flex;flex-direction:column;max-height:calc(100dvh - 24px)}
.nf-project-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;overflow:auto;padding:8px;min-height:0}
.nf-project-picker-item{display:grid;gap:5px;padding:7px;border:1px solid var(--nf-line,#d4dfeb);border-radius:10px;cursor:pointer}
.nf-project-picker-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}
.nf-project-picker-item input{justify-self:start}
.nf-project-picker-item span{overflow-wrap:anywhere;font-size:.82rem}
#nofira-app .nf-analog-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0;border:1px solid var(--nf-line,#d4dfeb);border-radius:12px;padding:14px}
#nofira-app .nf-analog-fields label{display:grid;gap:5px}
@media(max-width:720px){#nofira-app .nf-analog-fields{grid-template-columns:1fr}#nofira-app .nf-article-scroll{padding:12px 16px 22px}}
#nofira-app .nf-follow-profile-link{margin:0 14px 12px 64px}

/* 0.2.126 — allegati nella messaggistica */
.nofira-community-page #nofira-app .nf-message-attachment{display:block;max-width:min(340px,100%);margin:0 0 7px;padding:0;border:0;border-radius:12px;overflow:hidden;background:transparent;cursor:pointer}
.nofira-community-page #nofira-app .nf-message-attachment img{display:block;width:100%;max-height:340px;object-fit:contain;background:#0b1118}
.nofira-community-page #nofira-app .nf-message-composer{flex-wrap:wrap}
.nofira-community-page #nofira-app .nf-message-attach-control{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;max-width:180px;min-height:42px;padding:0 10px;border:1px solid var(--nf-line);border-radius:11px;background:var(--nf-soft);color:var(--nf-text);font-weight:650;cursor:pointer}
.nofira-community-page #nofira-app .nf-message-attach-control [data-message-file-name]{display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nofira-community-page #nofira-app .nf-message-attach-icon{font-size:1.25rem;line-height:1;color:var(--nf-blue)}
.nofira-community-page #nofira-app .nf-message-composer.has-attachment .nf-message-attach-control{border-color:var(--nf-blue);background:var(--nf-blue-050)}
.nofira-community-page #nofira-app .nf-message-request-attachment{display:grid;gap:7px;margin:12px 0;padding:12px 14px;border:1px solid var(--nf-line);border-radius:11px;background:var(--nf-soft)}
.nofira-community-page #nofira-app .nf-message-request-attachment input[type=file]{width:100%}
.nofira-community-page #nofira-app .nf-message-request-attachment small{color:var(--nf-muted);font-weight:400;overflow-wrap:anywhere}
.nf-message-image-dialog{width:min(920px,calc(100vw - 28px));padding:0 18px 18px}
.nf-message-image-dialog>.nf-dialog-head{margin:0 -18px 16px}
.nf-message-image-stage{display:grid;place-items:center;min-height:220px;max-height:82vh;border-radius:12px;overflow:hidden;background:#080d13}
.nf-message-image-stage img{display:block;max-width:100%;max-height:82vh;object-fit:contain}
@media(max-width:720px){.nofira-community-page #nofira-app .nf-message-composer{align-items:center}.nofira-community-page #nofira-app .nf-message-attach-control{max-width:126px}.nofira-community-page #nofira-app .nf-message-attach-control [data-message-file-name]{max-width:72px}.nofira-community-page #nofira-app .nf-message-attachment{max-width:86%}.nf-message-image-dialog{width:100vw;max-width:none}.nf-message-image-stage{max-height:76vh}.nf-message-image-stage img{max-height:76vh}}

/* NOFIRA 0.2.127 — evita il doppio controllo Sguardo nel caricamento singolo.
   Il plugin Sguardo continua a gestire i propri flussi, ma quando il modulo
   NOFIRA espone già submit_sguardo il riquadro aggiuntivo non viene mostrato. */
#nf-upload-form:has(input[name="submit_sguardo"]) [data-nsg-form-option="upload"] {
  display: none !important;
}

/* 0.2.128 — Desktop right rail: sticky, viewport-bounded and independently scrollable. */
@media (min-width: 1161px){
  .nofira-community-page #nofira-app.nofira-app-root .nf-aside{
    position:sticky;
    top:20px;
    align-self:start;
    max-height:calc(100vh - 40px);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:var(--nf-border) transparent;
    padding-right:4px;
  }
  body.admin-bar.nofira-community-page #nofira-app.nofira-app-root .nf-aside{
    top:52px;
    max-height:calc(100vh - 72px);
  }
  .nofira-community-page #nofira-app.nofira-app-root .nf-aside::-webkit-scrollbar{width:6px}
  .nofira-community-page #nofira-app.nofira-app-root .nf-aside::-webkit-scrollbar-track{background:transparent}
  .nofira-community-page #nofira-app.nofira-app-root .nf-aside::-webkit-scrollbar-thumb{
    background:var(--nf-border);
    border-radius:999px;
  }
  .nofira-community-page #nofira-app.nofira-app-root .nf-aside::-webkit-scrollbar-thumb:hover{background:var(--nf-muted)}
}


/* 0.2.133 — valutazione ricorso: modale completa centrata (soluzione A). */
#nofira-app #nf-dialog:has(.nf-appeal-review){box-sizing:border-box;width:min(1080px,calc(100vw - 28px));max-width:1080px;max-height:calc(100dvh - 28px);overflow:hidden;padding:0;border-radius:18px}
#nofira-app .nf-appeal-review{display:flex;flex-direction:column;max-height:calc(100dvh - 30px);min-width:0;background:var(--nf-surface,var(--nf-card));color:var(--nf-ink,var(--nf-text))}
#nofira-app .nf-appeal-head{position:sticky;top:0;z-index:7;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;margin:0!important;padding:19px 22px;border-bottom:1px solid var(--nf-border,var(--nf-line));background:var(--nf-surface,var(--nf-card))}
#nofira-app .nf-appeal-head h2{margin:3px 0 1px;font-size:1.35rem}
#nofira-app .nf-appeal-head p{margin:0;color:var(--nf-secondary,var(--nf-muted));font-size:.86rem}
#nofira-app .nf-appeal-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 11px;border-radius:999px;background:color-mix(in srgb,var(--nf-warning,#e3aa43) 18%,transparent);color:var(--nf-warning,#e3aa43);font-size:.78rem;font-weight:800;white-space:nowrap}
#nofira-app .nf-appeal-status.accepted{background:color-mix(in srgb,#47b989 18%,transparent);color:#47b989}
#nofira-app .nf-appeal-status.rejected{background:color-mix(in srgb,#e35b67 18%,transparent);color:#e35b67}
#nofira-app .nf-appeal-layout{display:grid;grid-template-columns:285px minmax(0,1fr);gap:0;min-height:0;overflow:auto}
#nofira-app .nf-appeal-subject{position:sticky;top:0;align-self:start;display:grid;align-content:start;gap:15px;min-width:0;padding:22px;border-right:1px solid var(--nf-border,var(--nf-line));background:color-mix(in srgb,var(--nf-surface,var(--nf-card)) 94%,var(--nf-page,var(--nf-bg)))}
#nofira-app .nf-appeal-subject>img,#nofira-app .nf-appeal-photo-placeholder{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--nf-border,var(--nf-line));border-radius:12px;background:var(--nf-page,var(--nf-bg))}
#nofira-app .nf-appeal-photo-placeholder{display:grid;place-items:center}
#nofira-app .nf-appeal-photo-placeholder svg{width:46px;height:46px;color:var(--nf-secondary,var(--nf-muted))}
#nofira-app .nf-appeal-subject>div:not(.nf-appeal-person):not(.nf-appeal-current-state){display:grid;gap:3px}
#nofira-app .nf-appeal-subject>div>span{color:var(--nf-secondary,var(--nf-muted));font-size:.8rem}
#nofira-app .nf-appeal-person{display:grid;gap:2px;min-width:0;padding-top:11px;border-top:1px solid var(--nf-border,var(--nf-line))}
#nofira-app .nf-appeal-person small,#nofira-app .nf-appeal-current-state small,#nofira-app .nf-appeal-summary-grid small,#nofira-app .nf-appeal-rule small{color:var(--nf-secondary,var(--nf-muted));font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}
#nofira-app .nf-appeal-person strong{overflow:hidden;text-overflow:ellipsis}
#nofira-app .nf-appeal-person span{color:var(--nf-secondary,var(--nf-muted));font-size:.78rem}
#nofira-app .nf-appeal-current-state{display:grid;gap:3px;padding:12px;border:1px solid color-mix(in srgb,#e35b67 45%,var(--nf-border,var(--nf-line)));border-radius:10px;background:color-mix(in srgb,#e35b67 8%,transparent)}
#nofira-app .nf-appeal-current-state strong{color:#e35b67}
#nofira-app .nf-appeal-history{min-width:0;padding:22px 26px 32px}
#nofira-app .nf-appeal-step{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;padding-bottom:22px}
#nofira-app .nf-appeal-step:not(:last-child):before{content:'';position:absolute;left:18px;top:34px;bottom:-2px;width:1px;background:var(--nf-border,var(--nf-line))}
#nofira-app .nf-appeal-step-marker{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--nf-border,var(--nf-line));background:var(--nf-surface,var(--nf-card));color:var(--nf-secondary,var(--nf-muted));font-size:.78rem;font-weight:850}
#nofira-app .nf-appeal-step.report .nf-appeal-step-marker{background:color-mix(in srgb,#d94f73 18%,var(--nf-surface,var(--nf-card)));color:#e96a89}
#nofira-app .nf-appeal-step.decision .nf-appeal-step-marker{background:color-mix(in srgb,#e35b67 18%,var(--nf-surface,var(--nf-card)));color:#e35b67}
#nofira-app .nf-appeal-step.appeal .nf-appeal-step-marker{background:color-mix(in srgb,#776ee9 18%,var(--nf-surface,var(--nf-card)));color:#958cff}
#nofira-app .nf-appeal-step.final .nf-appeal-step-marker{background:color-mix(in srgb,var(--nf-action,var(--nf-blue)) 18%,var(--nf-surface,var(--nf-card)));color:var(--nf-action,var(--nf-blue))}
#nofira-app .nf-appeal-step-body{min-width:0;border:1px solid var(--nf-border,var(--nf-line));border-radius:12px;padding:14px 16px;background:color-mix(in srgb,var(--nf-surface,var(--nf-card)) 96%,var(--nf-page,var(--nf-bg)))}
#nofira-app .nf-appeal-step-body>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
#nofira-app .nf-appeal-step-body>header time{color:var(--nf-secondary,var(--nf-muted));font-size:.76rem;white-space:nowrap}
#nofira-app .nf-appeal-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#nofira-app .nf-appeal-summary-grid>div{display:grid;align-content:start;gap:3px;min-width:0}
#nofira-app .nf-appeal-summary-grid .nf-appeal-person{padding-top:0;border-top:0}
#nofira-app .nf-appeal-step blockquote{margin:12px 0 0;padding:11px 13px;border-left:3px solid var(--nf-action,var(--nf-blue));border-radius:0 8px 8px 0;background:var(--nf-page,var(--nf-bg));color:var(--nf-ink,var(--nf-text));font-style:normal;white-space:pre-wrap}
#nofira-app .nf-appeal-user-text{font-size:1rem;font-weight:650}
#nofira-app .nf-appeal-rule{display:grid;gap:3px;margin:12px 0 0}
#nofira-app .nf-appeal-action-label.danger{color:#e35b67}
#nofira-app .nf-appeal-priority{display:inline-flex;width:max-content;margin-top:3px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,#e35b67 15%,transparent);color:#e35b67;font-size:.72rem;font-weight:700}
#nofira-app .nf-appeal-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:15px}
#nofira-app .nf-appeal-choice label{position:relative;display:flex;align-items:flex-start;gap:10px;min-width:0;padding:12px;border:1px solid var(--nf-border,var(--nf-line));border-radius:10px;background:var(--nf-field,var(--nf-card));cursor:pointer}
#nofira-app .nf-appeal-choice label:has(input:checked){border-color:var(--nf-action,var(--nf-blue));box-shadow:0 0 0 1px var(--nf-action,var(--nf-blue)) inset;background:color-mix(in srgb,var(--nf-action,var(--nf-blue)) 8%,var(--nf-field,var(--nf-card)))}
#nofira-app .nf-appeal-choice input{margin-top:2px;accent-color:var(--nf-action,var(--nf-blue))}
#nofira-app .nf-appeal-choice span{display:grid;gap:3px}
#nofira-app .nf-appeal-choice small{color:var(--nf-secondary,var(--nf-muted));font-weight:400;line-height:1.4}
#nofira-app .nf-appeal-resolution{position:relative;display:grid;gap:7px}
#nofira-app .nf-appeal-resolution>span{color:#e35b67}
#nofira-app .nf-appeal-resolution textarea{min-height:135px;resize:vertical}
#nofira-app .nf-appeal-resolution>small{justify-self:end;color:var(--nf-secondary,var(--nf-muted));font-size:.72rem}
#nofira-app .nf-appeal-notice{margin:10px 0 0;color:var(--nf-secondary,var(--nf-muted));font-size:.78rem;line-height:1.45}
#nofira-app .nf-appeal-final-result{display:grid;gap:8px;padding:12px;border-radius:10px;background:var(--nf-page,var(--nf-bg))}
#nofira-app .nf-appeal-final-result.accepted strong{color:#47b989}
#nofira-app .nf-appeal-final-result.rejected strong{color:#e35b67}
#nofira-app .nf-appeal-final-result p{margin:0;white-space:pre-wrap}
#nofira-app .nf-appeal-footer{position:sticky;bottom:0;z-index:7;display:flex;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--nf-border,var(--nf-line));background:var(--nf-surface,var(--nf-card))}
#nofira-app .nf-appeal-footer .nf-btn.primary{min-width:190px}
@media(max-width:820px){#nofira-app #nf-dialog:has(.nf-appeal-review){width:calc(100vw - 14px);max-height:calc(100dvh - 14px)}#nofira-app .nf-appeal-review{max-height:calc(100dvh - 16px)}#nofira-app .nf-appeal-head{grid-template-columns:minmax(0,1fr) auto;padding:14px}#nofira-app .nf-appeal-head .nf-appeal-status{grid-row:2;grid-column:1;justify-self:start}#nofira-app .nf-appeal-head>button{grid-row:1;grid-column:2}#nofira-app .nf-appeal-layout{grid-template-columns:minmax(0,1fr)}#nofira-app .nf-appeal-subject{position:relative;grid-template-columns:110px minmax(0,1fr);align-items:start;padding:14px;border-right:0;border-bottom:1px solid var(--nf-border,var(--nf-line))}#nofira-app .nf-appeal-subject>img,#nofira-app .nf-appeal-photo-placeholder{grid-row:1/4;width:110px}#nofira-app .nf-appeal-subject .nf-appeal-person{padding-top:6px}#nofira-app .nf-appeal-subject .nf-appeal-current-state,#nofira-app .nf-appeal-subject>.nf-btn{grid-column:1/-1}#nofira-app .nf-appeal-history{padding:16px 14px 24px}#nofira-app .nf-appeal-summary-grid,#nofira-app .nf-appeal-choice{grid-template-columns:minmax(0,1fr)}#nofira-app .nf-appeal-step{grid-template-columns:30px minmax(0,1fr);gap:9px}#nofira-app .nf-appeal-step-marker{width:30px;height:30px}#nofira-app .nf-appeal-step:not(:last-child):before{left:14px;top:29px}#nofira-app .nf-appeal-step-body{padding:12px}#nofira-app .nf-appeal-step-body>header{align-items:flex-start;flex-direction:column;gap:3px}#nofira-app .nf-appeal-footer{padding:11px 14px}#nofira-app .nf-appeal-footer .nf-btn{flex:1;min-width:0!important}}

/* 0.2.134 — Moderazione: dashboard a schede (soluzione A). */
#nofira-app .nf-moderation-dashboard{display:grid;gap:16px;min-width:0}
#nofira-app .nf-moderation-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
#nofira-app .nf-moderation-dashboard-head h2{margin:0 0 4px;font-size:1.35rem}
#nofira-app .nf-moderation-dashboard-head p{margin:0;color:var(--nf-secondary,var(--nf-muted))}
#nofira-app .nf-mod-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#nofira-app .nf-mod-stats article{display:grid;grid-template-columns:44px auto;grid-template-rows:auto auto;align-items:center;column-gap:12px;min-width:0;padding:15px;border:1px solid var(--nf-border,var(--nf-line));border-radius:13px;background:var(--nf-surface,var(--nf-card));box-shadow:0 4px 18px color-mix(in srgb,#000 7%,transparent)}
#nofira-app .nf-mod-stats article>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--nf-page,var(--nf-bg));font-size:1.35rem;font-weight:850}
#nofira-app .nf-mod-stats article>span .nf-ink-icon{width:24px;height:24px}
#nofira-app .nf-mod-stats article>span.coral{color:#e96a89;background:color-mix(in srgb,#e96a89 12%,var(--nf-surface,var(--nf-card)))}
#nofira-app .nf-mod-stats article>span.green{color:#47b989;background:color-mix(in srgb,#47b989 12%,var(--nf-surface,var(--nf-card)))}
#nofira-app .nf-mod-stats article>span.amber{color:#e3aa43;background:color-mix(in srgb,#e3aa43 12%,var(--nf-surface,var(--nf-card)))}
#nofira-app .nf-mod-stats article>span.violet{color:#9b7ae8;background:color-mix(in srgb,#9b7ae8 12%,var(--nf-surface,var(--nf-card)))}
#nofira-app .nf-mod-stats strong{font-size:1.55rem;line-height:1.05}
#nofira-app .nf-mod-stats small{color:var(--nf-secondary,var(--nf-muted));font-size:.78rem;line-height:1.25}
#nofira-app .nf-mod-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:5px;border:1px solid var(--nf-border,var(--nf-line));border-radius:13px;background:var(--nf-surface,var(--nf-card))}
#nofira-app .nf-mod-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:44px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--nf-secondary,var(--nf-muted));font:inherit;font-weight:750;cursor:pointer}
#nofira-app .nf-mod-tabs button .nf-ink-icon{width:20px;height:20px}
#nofira-app .nf-mod-tabs button b{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:var(--nf-page,var(--nf-bg));font-size:.72rem}
#nofira-app .nf-mod-tabs button:hover{color:var(--nf-ink,var(--nf-text));background:color-mix(in srgb,var(--nf-action,var(--nf-blue)) 5%,transparent)}
#nofira-app .nf-mod-tabs button.active{border-color:var(--nf-action,var(--nf-blue));background:color-mix(in srgb,var(--nf-action,var(--nf-blue)) 10%,var(--nf-surface,var(--nf-card)));color:var(--nf-ink,var(--nf-text));box-shadow:0 0 0 1px color-mix(in srgb,var(--nf-action,var(--nf-blue)) 35%,transparent) inset}
#nofira-app .nf-mod-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,210px) minmax(150px,190px);gap:10px;align-items:center}
#nofira-app .nf-mod-search{display:flex;align-items:center;gap:8px;min-width:0;padding:0 12px;border:1px solid var(--nf-border,var(--nf-line));border-radius:10px;background:var(--nf-field,var(--nf-card))}
#nofira-app .nf-mod-search .nf-ink-icon{flex:0 0 auto;width:19px;height:19px;color:var(--nf-secondary,var(--nf-muted))}
#nofira-app .nf-mod-search input{width:100%;min-width:0;height:42px;padding:0;border:0!important;outline:0;background:transparent!important;color:var(--nf-ink,var(--nf-text));box-shadow:none!important}
#nofira-app .nf-mod-toolbar select{box-sizing:border-box;width:100%;height:42px;margin:0;padding:0 36px 0 12px;border:1px solid var(--nf-border,var(--nf-line));border-radius:10px;background:var(--nf-field,var(--nf-card));color:var(--nf-ink,var(--nf-text))}
#nofira-app .nf-mod-case-list{display:grid;gap:10px;min-width:0}
#nofira-app .nf-mod-case{display:grid;grid-template-columns:126px minmax(0,1fr) minmax(250px,auto);gap:15px;align-items:center;min-width:0;padding:12px;border:1px solid var(--nf-border,var(--nf-line));border-radius:13px;background:var(--nf-surface,var(--nf-card));transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
#nofira-app .nf-mod-case:hover{border-color:color-mix(in srgb,var(--nf-action,var(--nf-blue)) 45%,var(--nf-border,var(--nf-line)));box-shadow:0 7px 22px color-mix(in srgb,#000 8%,transparent)}
#nofira-app .nf-mod-case.nf-moderation-attention{border-color:var(--nf-action,var(--nf-blue));box-shadow:0 0 0 2px color-mix(in srgb,var(--nf-action,var(--nf-blue)) 25%,transparent)}
#nofira-app .nf-mod-case-thumb{display:block;width:126px;height:86px;object-fit:cover;border-radius:10px;border:1px solid var(--nf-border,var(--nf-line));background:var(--nf-page,var(--nf-bg))}
#nofira-app .nf-mod-case-placeholder{display:grid;place-items:center;color:var(--nf-secondary,var(--nf-muted))}
#nofira-app .nf-mod-case-placeholder .nf-ink-icon{width:30px;height:30px}
#nofira-app .nf-mod-case-main{display:grid;gap:10px;min-width:0}
#nofira-app .nf-mod-case-title{display:grid;gap:2px;min-width:0}
#nofira-app .nf-mod-case-title strong{overflow:hidden;color:var(--nf-ink,var(--nf-text));font-size:1rem;text-overflow:ellipsis;white-space:nowrap}
#nofira-app .nf-mod-case-title small{overflow:hidden;color:var(--nf-secondary,var(--nf-muted));font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}
#nofira-app .nf-mod-case-reason{display:flex;align-items:flex-start;gap:8px;min-width:0}
#nofira-app .nf-mod-flag{flex:0 0 auto;color:#e96a89;font-size:1.05rem;line-height:1.2}
#nofira-app .nf-mod-case-reason>span:last-child{display:grid;gap:1px;min-width:0}
#nofira-app .nf-mod-case-reason small{color:var(--nf-secondary,var(--nf-muted));font-size:.68rem;text-transform:uppercase;letter-spacing:.055em}
#nofira-app .nf-mod-case-reason strong{overflow:hidden;font-size:.84rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
#nofira-app .nf-mod-case-reason em{display:inline-flex;width:max-content;margin-top:3px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,#e35b67 14%,transparent);color:#e35b67;font-size:.68rem;font-style:normal;font-weight:750}
#nofira-app .nf-mod-case-side{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:end;gap:8px 10px;min-width:0}
#nofira-app .nf-mod-case-side time{grid-column:1/3;justify-self:end;color:var(--nf-secondary,var(--nf-muted));font-size:.72rem;white-space:nowrap}
#nofira-app .nf-mod-status{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border:1px solid var(--nf-border,var(--nf-line));border-radius:999px;background:var(--nf-page,var(--nf-bg));color:var(--nf-secondary,var(--nf-muted));font-size:.7rem;font-weight:800;white-space:nowrap}
#nofira-app .nf-mod-status.open{border-color:color-mix(in srgb,#e35b67 55%,var(--nf-border));background:color-mix(in srgb,#e35b67 12%,transparent);color:#ef7781}
#nofira-app .nf-mod-status.appeal,#nofira-app .nf-mod-status.open:is(.nf-mod-appeal-case *){border-color:color-mix(in srgb,#5aa9ed 55%,var(--nf-border));background:color-mix(in srgb,#5aa9ed 12%,transparent);color:#78bcf4}
#nofira-app .nf-mod-status.resolved,#nofira-app .nf-mod-status.accepted{border-color:color-mix(in srgb,#47b989 55%,var(--nf-border));background:color-mix(in srgb,#47b989 12%,transparent);color:#5dcc9a}
#nofira-app .nf-mod-status.rejected{border-color:color-mix(in srgb,#7b8796 55%,var(--nf-border));background:color-mix(in srgb,#7b8796 12%,transparent);color:var(--nf-secondary,var(--nf-muted))}
#nofira-app .nf-mod-status.closed{border-color:color-mix(in srgb,#9b7ae8 45%,var(--nf-border));background:color-mix(in srgb,#9b7ae8 11%,transparent);color:#b19af0}
#nofira-app .nf-mod-case-actions{grid-column:1/3;display:flex;justify-content:flex-end;gap:8px}
#nofira-app .nf-mod-case-actions .nf-btn{min-height:34px;padding:7px 11px;font-size:.74rem}
#nofira-app .nf-mod-empty{padding:28px;border:1px dashed var(--nf-border,var(--nf-line));border-radius:12px;color:var(--nf-secondary,var(--nf-muted));text-align:center}
#nofira-app #nf-dialog:has(.nf-moderation-case-detail){width:min(760px,calc(100vw - 28px));max-width:760px;max-height:calc(100dvh - 28px);overflow:auto}
#nofira-app .nf-moderation-case-detail{display:grid;gap:15px;min-width:0}
#nofira-app .nf-mod-detail-hero{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center}
#nofira-app .nf-mod-detail-hero .nf-mod-case-thumb{width:150px;height:105px}
#nofira-app .nf-mod-detail-hero>div{display:grid;justify-items:start;gap:5px}
#nofira-app .nf-mod-detail-hero>div>span:not(.nf-mod-status){color:var(--nf-secondary,var(--nf-muted));font-size:.78rem}
#nofira-app .nf-mod-detail-block{display:grid;gap:12px;padding:14px;border:1px solid var(--nf-border,var(--nf-line));border-radius:11px;background:var(--nf-surface,var(--nf-card))}
#nofira-app .nf-mod-detail-block h3{margin:0;font-size:.94rem}
#nofira-app .nf-mod-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#nofira-app .nf-mod-detail-grid>div{display:grid;gap:2px;min-width:0}
#nofira-app .nf-mod-detail-grid small{color:var(--nf-secondary,var(--nf-muted));font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}
#nofira-app .nf-mod-detail-grid span{color:var(--nf-secondary,var(--nf-muted));font-size:.74rem}
#nofira-app .nf-mod-detail-block blockquote{margin:0;padding:11px 13px;border-left:3px solid var(--nf-action,var(--nf-blue));border-radius:0 8px 8px 0;background:var(--nf-page,var(--nf-bg));white-space:pre-wrap}
#nofira-app .nf-moderation-case-detail .nf-form-actions{justify-content:flex-end}
@media(max-width:980px){#nofira-app .nf-mod-stats{grid-template-columns:repeat(2,minmax(0,1fr))}#nofira-app .nf-mod-case{grid-template-columns:105px minmax(0,1fr)}#nofira-app .nf-mod-case-thumb{width:105px;height:76px}#nofira-app .nf-mod-case-side{grid-column:1/-1;grid-template-columns:1fr auto auto;justify-content:stretch;padding-top:8px;border-top:1px solid var(--nf-border,var(--nf-line))}#nofira-app .nf-mod-case-side time{grid-column:auto;justify-self:start}#nofira-app .nf-mod-case-actions{grid-column:auto;display:flex}}
@media(max-width:700px){#nofira-app .nf-mod-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}#nofira-app .nf-mod-stats article{grid-template-columns:36px auto;padding:11px;column-gap:9px}#nofira-app .nf-mod-stats article>span{width:34px;height:34px;font-size:1.05rem}#nofira-app .nf-mod-stats strong{font-size:1.2rem}#nofira-app .nf-mod-tabs{grid-template-columns:minmax(0,1fr)}#nofira-app .nf-mod-toolbar{grid-template-columns:minmax(0,1fr)}#nofira-app .nf-mod-case{grid-template-columns:82px minmax(0,1fr);gap:10px;padding:10px}#nofira-app .nf-mod-case-thumb{width:82px;height:70px}#nofira-app .nf-mod-case-side{grid-template-columns:minmax(0,1fr) auto;gap:8px}#nofira-app .nf-mod-case-side time{grid-column:1}#nofira-app .nf-mod-status{grid-column:2;grid-row:1}#nofira-app .nf-mod-case-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#nofira-app .nf-mod-case-actions .nf-btn{width:100%;min-width:0}#nofira-app .nf-mod-detail-hero{grid-template-columns:95px minmax(0,1fr)}#nofira-app .nf-mod-detail-hero .nf-mod-case-thumb{width:95px;height:75px}#nofira-app .nf-mod-detail-grid{grid-template-columns:minmax(0,1fr)}}

/* NOFIRA 0.2.145 — allegati fotografici dei Gruppi, flusso rapido come Messaggi. */
#nofira-app #nf-dialog.nf-group-dialog .nf-group-composer-status{min-height:1.2em;grid-column:1/-1;font-size:.78rem;color:var(--nf-muted);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-pending-photo{opacity:.94;}


/* Gruppi — commenti ai post */
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments{clear:both;margin-top:12px;padding-top:10px;border-top:1px solid var(--nf-line);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments-toolbar{display:flex;align-items:center;min-height:32px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments-toolbar>button{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border:0;border-radius:8px;background:transparent;color:var(--nf-blue);font:inherit;font-weight:750;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments-toolbar>button:hover{background:rgba(49,90,134,.09);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments-toolbar svg{width:18px;height:18px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments-toolbar>span{color:var(--nf-muted);font-size:.88rem;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comments-list{display:grid;gap:8px;margin-top:7px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment{padding:9px 11px;border-radius:10px;background:var(--nf-soft);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment.depth-1{margin-left:24px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment.depth-2,#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment.depth-3{margin-left:48px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-head{display:flex;align-items:center;gap:8px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-head>img,#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-head>span{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;object-fit:cover;background:#183450;color:#fff;font-size:.75rem;font-weight:750;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-head>div{display:grid;min-width:0;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-head small{color:var(--nf-muted);font-size:.78rem;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-body{margin:6px 0 4px;padding-left:38px;line-height:1.45;overflow-wrap:anywhere;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-actions{display:flex;flex-wrap:wrap;gap:4px;padding-left:32px;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-actions button{padding:4px 7px;border:0;border-radius:6px;background:transparent;color:var(--nf-blue);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-actions button:hover{background:rgba(49,90,134,.09);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-actions button.danger{color:var(--nf-danger);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-form{display:grid;gap:8px;margin-top:9px;padding:10px;border:1px solid var(--nf-line);border-radius:10px;background:var(--nf-soft);}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-form textarea{box-sizing:border-box;width:100%;min-height:70px;padding:9px 10px;border:1px solid #cbd5df;border-radius:8px;background:#fff;color:var(--nf-text);font:inherit;resize:vertical;}
#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-form>div{display:flex;justify-content:flex-end;gap:7px;}
html[data-nofira-theme="dark"] #nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-form textarea{border-color:#3b4a59;background:#1d2630;color:#f0f3f6;}
@media(max-width:600px){#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment.depth-1{margin-left:14px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment.depth-2,#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment.depth-3{margin-left:28px;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-body{padding-left:0;}#nofira-app #nf-dialog.nf-group-dialog .nf-group-comment-actions{padding-left:0;}}
