:root{
    --red:#b00020;
    --red-dark:#740014;
    --red-soft:#fff1f3;
    --text:#1d1d1f;
    --muted:#68686f;
    --line:#ececf0;
    --bg:#f6f6f8;
    --card:#ffffff;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Arial,sans-serif;
    background:var(--bg);
    color:var(--text);
}

body.admin-area{
    --red:#1677c8;
    --red-dark:#0b4f8a;
    --red-soft:#eaf5ff;
}

.container{
    max-width:620px;
    margin:auto;
    padding:16px;
}

.wide-container{
    max-width:1120px;
}

.user-bar{
    display:flex;
    align-items:center;
    gap:8px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:18px;
    padding:8px;
    margin-bottom:14px;
    box-shadow:0 6px 18px rgba(0,0,0,.05);
}

.user-avatar{
    width:52px;
    height:52px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--red);
    color:#fff;
    font-weight:900;
    font-size:20px;
    flex:0 0 auto;
    overflow:hidden;
    border:3px solid #fff;
    box-shadow:0 4px 14px rgba(176,0,32,.18);
}

.qcic-thanks{
    border-left:6px solid var(--red);
}

.qcic-info{
    margin-top:14px;
}

.qcic-category-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.qcic-category-grid span{
    display:flex;
    align-items:center;
    min-height:42px;
    padding:9px 11px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8f9fb;
    font-weight:800;
    color:var(--red-dark);
}

.qcic-category-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px;
}

.qcic-category-list span{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 10px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#f8f9fb;
    color:var(--red-dark);
    font-weight:800;
    font-size:13px;
}

.qcic-category-list a{
    color:#6b7280;
    font-size:12px;
    font-weight:800;
}

.qcic-admin-list{
    display:grid;
    gap:12px;
}

.qcic-admin-item{
    display:grid;
    grid-template-columns:170px 1fr;
    gap:14px;
    border-left:6px solid #1677c8;
}

.qcic-status-nuovo{
    border-left-color:#b8002b;
}

.qcic-status-visto{
    border-left-color:#20805a;
}

.qcic-status-scartato{
    border-left-color:#6b7280;
    opacity:.82;
}

.qcic-preview img,
.qcic-preview video{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:12px;
    border:1px solid var(--line);
    background:#f4f5f7;
}

.qcic-admin-body h3{
    margin:6px 0;
    color:#064a86;
}

.qcic-admin-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.qcic-admin-head span{
    padding:5px 9px;
    border-radius:999px;
    background:#eaf5ff;
    color:#064a86;
    font-weight:800;
    font-size:12px;
}

.qcic-actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:10px;
}

@media(max-width:620px){
    .qcic-admin-item{
        grid-template-columns:96px 1fr;
        gap:10px;
        padding:12px;
    }

    .qcic-category-grid{
        grid-template-columns:1fr;
    }

    .qcic-actions .btn-small{
        flex:1 1 42%;
        text-align:center;
    }
}

.user-avatar-photo{
    padding:0;
    border:3px solid #fff;
    cursor:pointer;
}

.user-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.profile-photo-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(0,0,0,.72);
}

.profile-photo-modal[hidden]{
    display:none;
}

.profile-photo-modal img{
    width:min(86vw,520px);
    height:min(86vw,520px);
    border-radius:28px;
    object-fit:cover;
    background:#fff;
    box-shadow:0 24px 80px rgba(0,0,0,.35);
    border:4px solid #fff;
}

.profile-photo-modal-close{
    position:fixed;
    top:18px;
    right:18px;
    width:48px;
    height:48px;
    border-radius:50%;
    border:0;
    background:#fff;
    color:var(--red);
    font-size:30px;
    line-height:1;
    display:grid;
    place-items:center;
    cursor:pointer;
}

body.profile-photo-open{
    overflow:hidden;
}

.mini-profile-avatar{
    width:34px;
    height:34px;
    border-radius:50%;
    border:2px solid #fff;
    background:var(--red-soft);
    color:var(--red);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 34px;
    font-weight:900;
    font-size:12px;
    overflow:hidden;
    box-shadow:0 6px 14px rgba(0,0,0,.10);
    padding:0;
    cursor:default;
    vertical-align:middle;
}

button.mini-profile-avatar{
    cursor:pointer;
}

.mini-profile-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.name-with-avatar{
    display:inline-flex;
    align-items:center;
    gap:9px;
    min-width:0;
}

.name-with-avatar span{
    min-width:0;
}

.mini-inline{
    margin-top:3px;
    gap:6px;
}

.mini-inline .mini-profile-avatar{
    width:24px;
    height:24px;
    flex-basis:24px;
    font-size:10px;
}

.user-info{
    flex:1;
    min-width:0;
}

.user-info span{
    display:block;
    color:var(--muted);
    font-size:12px;
}

.user-info strong{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.user-action{
    padding:8px 12px;
    border-radius:999px;
    background:var(--red-soft);
    color:var(--red);
    text-decoration:none;
    font-weight:bold;
    font-size:13px;
}

.user-icon-action{
    position:relative;
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:#fff;
    color:var(--red);
    text-decoration:none;
    font-size:16px;
    line-height:1;
    box-shadow:0 4px 12px rgba(0,0,0,.05);
    cursor:pointer;
    flex:0 0 auto;
}

.user-logout-action{
    background:var(--red-soft);
    border-color:#f3d6dc;
}

.user-admin-action{
    background:#eef7ff;
    border-color:#c9e6ff;
    color:#1677c8;
}

.user-profile-action{
    background:var(--red-soft);
    border-color:#f0c3cb;
    color:var(--red);
}

.user-profile-icon{
    width:22px;
    height:22px;
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:2.4;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.user-profile-icon circle{
    fill:currentColor;
    stroke:none;
}

button.user-icon-action{
    padding:0;
    margin:0;
}

.notification-link strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    position:absolute;
    top:-5px;
    right:-5px;
    padding:0 5px;
    border-radius:999px;
    background:var(--red);
    color:#fff;
    font-size:11px;
    line-height:18px;
}

.user-mini-link{
    color:var(--text);
    text-decoration:none;
    font-weight:bold;
    font-size:13px;
    white-space:nowrap;
}

.notification-card.unread{
    border-color:#f0c3cb;
    box-shadow:0 10px 26px rgba(176,0,32,.1);
}

.approval-summary-card{
    border-color:#d9eaff;
    background:#f7fbff;
}

.approval-summary-list{
    display:grid;
    gap:8px;
    margin-top:10px;
}

.approval-summary-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 12px;
    border:1px solid #d9eaff;
    border-radius:12px;
    background:#fff;
    color:var(--text);
    text-decoration:none;
    font-weight:700;
}

.approval-summary-row strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:28px;
    padding:0 8px;
    border-radius:999px;
    background:#1677c8;
    color:#fff;
    font-size:13px;
}

.header{
    text-align:center;
    background:linear-gradient(135deg,var(--red),var(--red-dark));
    color:#fff;
    border-radius:22px;
    padding:24px 18px;
    margin-bottom:16px;
    box-shadow:0 12px 28px rgba(176,0,32,.22);
}

.header h1{
    margin:0;
    color:#fff;
    letter-spacing:0;
}

.header p{
    margin:8px 0 0;
    color:#fff;
    opacity:.92;
}

.logo{
    width:84px;
    height:84px;
    border-radius:20px;
    background:#fff;
    padding:5px;
    margin-bottom:10px;
}

.card{
    background:var(--card);
    color:var(--text);
    border-radius:16px;
    padding:16px;
    margin-bottom:12px;
    border:1px solid var(--line);
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.card h2,
.card h3{
    margin:0 0 8px;
    color:var(--red-dark);
    letter-spacing:0;
}

.section-title{
    color:var(--red-dark);
    margin:18px 0 9px;
    font-size:20px;
}

.section-heading-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:18px 0 9px;
}

.section-heading-row .section-title{
    margin:0;
}

.home-palio-editions{
    margin:16px 0 22px;
    clear:both;
}

.home-palio-editions .section-title{
    margin-bottom:8px;
}

.home-palio-edition-list{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
    gap:10px;
}

.home-palio-edition-card{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-height:58px;
    padding:12px 14px;
    border-radius:14px;
    background:#fff;
    border:1px solid var(--line);
    color:var(--text);
    text-decoration:none;
    box-shadow:0 8px 22px rgba(0,0,0,.05);
}

.home-palio-edition-card strong{
    color:var(--red);
    font-size:15px;
}

.home-palio-edition-card small{
    color:var(--muted);
    line-height:1.25;
}

.section-heading-row a{
    color:var(--red);
    font-weight:bold;
    text-decoration:none;
    white-space:nowrap;
}

.btn,
.btn-home,
button{
    display:inline-block;
    padding:11px 14px;
    border:none;
    border-radius:12px;
    background:var(--red);
    color:#fff;
    text-decoration:none;
    font-weight:bold;
    cursor:pointer;
}

button{
    width:100%;
    font-size:16px;
}

.btn-home{
    margin-bottom:14px;
}

.btn-small{
    font-size:12px;
    padding:7px 9px;
    margin:2px;
}

.btn-delete{
    background:#3a3a3f;
}

.success,
.error{
    border-radius:14px;
    padding:12px 14px;
    margin:12px 0;
    font-weight:bold;
}

.success{
    background:#fff;
    border:1px solid #f0c3cb;
    color:var(--red-dark);
}

.error{
    background:var(--red-soft);
    border:1px solid #f0c3cb;
    color:var(--red-dark);
}

.badge-soft,
.muted-note{
    color:var(--muted);
    font-size:13px;
}

.badge-soft{
    display:inline-block;
    margin-bottom:8px;
    padding:6px 10px;
    border-radius:999px;
    background:#f1f1f4;
    font-weight:bold;
}

.badge-warning{
    display:inline-block;
    margin-bottom:8px;
    padding:6px 10px;
    border-radius:999px;
    background:var(--red-soft);
    color:var(--red-dark);
    font-size:13px;
    font-weight:bold;
}

.badge-list{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.badge-list .badge-soft{
    margin-bottom:0;
}

.menu{
    display:grid;
    gap:7px;
    margin-top:12px;
}

.home-section-groups{
    display:grid;
    gap:12px;
    margin-top:14px;
}

.home-section-group{
    display:grid;
    gap:8px;
    padding:12px;
    border-radius:16px;
    border:1px solid #f0c9d2;
    border-left:6px solid var(--red);
    background:#fff5f7;
    box-shadow:0 10px 24px rgba(120, 0, 24, .06);
}

.home-section-group h2{
    margin:0;
    color:var(--red-dark);
    font-size:18px;
    line-height:1.2;
}

.home-section-group .menu{
    margin-top:0;
}

.home-section-group:nth-child(1){
    background:#fff4f6;
    border-color:#efc4cc;
    border-left-color:#b8002b;
}

.home-section-group:nth-child(2){
    background:#f4f9ff;
    border-color:#cfe3f8;
    border-left-color:#1677c8;
}

.home-section-group:nth-child(3){
    background:#fff8ee;
    border-color:#efd9b8;
    border-left-color:#b9612e;
}

.home-section-group:nth-child(4){
    background:#f7fbf6;
    border-color:#d4e9cf;
    border-left-color:#3d8a3d;
}

.home-section-group .home-section-card{
    background:rgba(255,255,255,.88);
    border-color:rgba(120,0,24,.08);
    box-shadow:0 8px 18px rgba(0,0,0,.035);
}

.home-section-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.home-section-title strong{
    min-width:0;
}

.home-section-title em{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:26px;
    height:26px;
    padding:0 8px;
    border-radius:999px;
    background:var(--red);
    color:#fff;
    font-size:13px;
    font-style:normal;
    font-weight:800;
    line-height:1;
}

.games-menu{
    margin-top:6px;
    margin-bottom:12px;
}

.games-list-page{
    gap:10px;
}

.game-home-card{
    border-color:#f0c3cb;
    background:linear-gradient(180deg,#fff,#fff7f8);
}

.dashboard-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}

.admin-menu-groups{
    display:grid;
    gap:14px;
    margin-top:16px;
}

.admin-menu-group{
    padding:13px 12px 14px;
    border:1px solid #d9ebfb;
    border-left:6px solid #1677c8;
    border-radius:16px;
    background:#f7fbff;
    box-shadow:0 10px 26px rgba(10, 74, 134, .07);
}

.admin-menu-group summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:52px;
    cursor:pointer;
    list-style:none;
    color:#064a86;
    font-size:20px;
    line-height:1.2;
    font-weight:900;
    user-select:none;
}

.admin-menu-group summary::-webkit-details-marker{
    display:none;
}

.admin-menu-group summary::after{
    content:"+";
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border-radius:999px;
    background:#1677c8;
    color:#fff;
    font-size:24px;
    line-height:1;
    flex:0 0 auto;
    overflow:hidden;
}

.user-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.admin-menu-group[open] summary{
    margin-bottom:12px;
}

.admin-menu-group[open] summary::after{
    content:"-";
}

.admin-menu-group h2{
    margin:0 0 10px;
    color:#064a86;
    font-size:18px;
    line-height:1.2;
}

.admin-menu-group .menu{
    margin:0;
}

.admin-menu-group .admin-compact-menu{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.admin-menu-group:nth-child(1){
    background:#f4faff;
    border-color:#cfe8fb;
    border-left-color:#1677c8;
}

.admin-menu-group:nth-child(2){
    background:#f5fbf8;
    border-color:#d4efe0;
    border-left-color:#20805a;
}

.admin-menu-group:nth-child(3){
    background:#fff8f4;
    border-color:#f1ded2;
    border-left-color:#b9612e;
}

.admin-menu-group:nth-child(4){
    background:#f8f6ff;
    border-color:#e1daf7;
    border-left-color:#7357b8;
}

.admin-menu-group:nth-child(5){
    background:#f7fbff;
    border-color:#d9ebfb;
    border-left-color:#0b4f8a;
}

.admin-menu-group:nth-child(6){
    background:#f7f9fc;
    border-color:#dce3ec;
    border-left-color:#526070;
}

.admin-menu-group .card{
    border-color:rgba(6, 74, 134, .11);
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:76px;
    padding:15px 16px;
}

.admin-menu-group .card small{
    line-height:1.25;
}

@media(max-width:560px){
    .admin-menu-groups{
        gap:10px;
    }

    .admin-menu-group{
        padding:10px 11px;
        border-radius:14px;
    }

    .admin-menu-group summary{
        min-height:50px;
        font-size:18px;
    }

    .admin-menu-group .admin-compact-menu{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px !important;
    }

    .admin-menu-group .card{
        min-height:82px;
        padding:12px 11px !important;
        font-size:15px;
    }

    .admin-menu-group .card small{
        font-size:12px !important;
    }
}

@media(max-width:380px){
    .admin-menu-group .admin-compact-menu{
        grid-template-columns:1fr;
    }
}

.merchandising-stats-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.merchandising-stats-grid .stat-card span{
    min-height:0;
}

.merchandising-stats-grid .stat-card strong{
    font-size:23px;
    overflow-wrap:anywhere;
}

.stat-card{
    display:block;
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:14px;
    text-decoration:none;
    color:var(--text);
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.stat-card span{
    display:block;
    min-height:34px;
    color:var(--muted);
    font-size:13px;
    line-height:1.25;
}

.stat-card strong{
    display:block;
    margin-top:8px;
    color:var(--red);
    font-size:28px;
}

.menu .card,
.admin{
    display:block;
    text-decoration:none;
    font-weight:bold;
}

.menu .card{
    padding:12px 14px;
    margin-bottom:0;
    border-radius:14px;
    box-shadow:0 5px 14px rgba(0,0,0,.045);
}

.menu .card small,
.admin small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-weight:normal;
    line-height:1.25;
}

.info-menu{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}

.info-menu .card{
    display:block;
    min-width:0;
    margin-bottom:0;
    text-decoration:none;
    color:var(--text);
}

.info-menu .card strong,
.info-menu .card small{
    display:block;
    min-width:0;
    overflow-wrap:anywhere;
    white-space:normal;
    line-height:1.3;
}

.info-menu .card strong{
    color:var(--red-dark);
    font-size:15px;
}

.info-menu .card small{
    margin-top:4px;
    color:var(--muted);
    font-size:13px;
}

.personal-profile p{
    margin:4px 0 0;
    color:var(--muted);
}

.profile-photo-panel{
    display:grid;
    grid-template-columns:86px 1fr;
    gap:14px;
    align-items:center;
}

.profile-photo-preview{
    width:86px;
    height:86px;
    border-radius:24px;
    background:var(--red-soft);
    color:var(--red);
    display:grid;
    place-items:center;
    overflow:hidden;
    font-weight:900;
    font-size:34px;
    border:1px solid #f0c3cb;
}

.profile-photo-preview img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.profile-photo-details{
    margin-top:14px;
    border-top:1px solid var(--line);
    padding-top:12px;
}

.profile-photo-details summary{
    cursor:pointer;
    font-weight:900;
    color:var(--red-dark);
}

.profile-photo-form{
    display:grid;
    gap:10px;
    margin-top:12px;
}

.profile-photo-form input[type="file"]{
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.personal-iban-card{
    border-color:#f0c3cb;
    background:#fff;
}

.personal-iban-card h3{
    margin-bottom:8px;
}

.personal-iban-card p{
    margin:0 0 10px;
    color:var(--muted);
}

.iban-code{
    border:1px solid #f0c3cb;
    border-radius:12px;
    background:var(--red-soft);
    color:var(--red-dark);
    font-size:18px;
    font-weight:900;
    letter-spacing:.5px;
    padding:12px;
    overflow-wrap:anywhere;
    user-select:all;
}

.personal-list{
    display:grid;
    gap:8px;
    margin-bottom:16px;
}

.personal-row{
    display:block;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    color:var(--text);
    text-decoration:none;
    box-shadow:0 6px 16px rgba(0,0,0,.045);
}

.personal-row.is-unread{
    border-color:#f0c3cb;
    background:var(--red-soft);
}

.personal-row span{
    display:flex;
    justify-content:space-between;
    gap:10px;
    color:var(--muted);
    font-size:13px;
}

.personal-row strong{
    color:var(--text);
    font-size:15px;
}

.personal-row small{
    display:block;
    margin-top:5px;
    color:var(--muted);
    line-height:1.35;
}

.personal-order-statuses{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:10px;
}

.personal-order-statuses em{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:6px 10px;
    border-radius:999px;
    font-style:normal;
    font-size:12px;
    font-weight:900;
}

.personal-order-statuses .is-ok{
    background:#e8f7ef;
    color:#08723a;
    border:1px solid #a8e2bf;
}

.personal-order-statuses .is-wait{
    background:#f1f5f9;
    color:#334155;
    border:1px solid #d7dee8;
}

.personal-order-statuses .is-cancelled{
    background:#f5f5f5;
    color:#6b7280;
    border:1px solid #d8d8d8;
}

.compact-empty{
    padding:12px 14px;
    color:var(--muted);
}

input, textarea, select{
    width:100%;
    padding:12px;
    margin-top:6px;
    border-radius:12px;
    border:1px solid #d8d8de;
    background:#fff;
    color:var(--text);
    font-size:16px;
}

label{
    font-weight:bold;
}

.check{
    display:flex;
    gap:10px;
    align-items:center;
    margin:10px 0;
}

.check input{
    width:auto;
}

.access-help-link{
    margin:14px 0 0;
    text-align:center;
}

.access-help-link a{
    width:100%;
    margin:0;
}

.section-toggle-list{
    display:grid;
    gap:8px;
    margin-bottom:14px;
}

.section-toggle-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}

.section-toggle-row span{
    min-width:0;
}

.section-toggle-row strong,
.section-toggle-row small{
    display:block;
}

.section-toggle-row small{
    margin-top:2px;
    color:var(--muted);
    font-weight:normal;
}

.section-toggle-row input{
    width:22px;
    height:22px;
    margin:0;
    flex:0 0 auto;
}

.filtri,
.azioni,
.reaction-row,
.share-row{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:14px;
}

.share-row{
    margin-top:12px;
}

.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.storia-admin-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:12px;
    align-items:start;
}

.storia-admin-grid .card{
    margin-bottom:0;
}

.storia-totali{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}

.storia-totali .stat-card{
    padding:12px;
}

.storia-totali .stat-card span{
    min-height:0;
}

.storia-totali .stat-card strong{
    font-size:24px;
}

.storia-list{
    display:grid;
    gap:10px;
}

.storia-row{
    display:grid;
    grid-template-columns:120px minmax(0,1fr);
    gap:12px;
    align-items:start;
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.045);
}

.storia-thumb{
    width:120px;
    height:92px;
    object-fit:cover;
    border-radius:10px;
    background:#f1f1f4;
}

.storia-row-body{
    min-width:0;
}

.storia-row-body h3{
    margin:4px 0 8px;
    font-size:17px;
    color:var(--red-dark);
}

.storia-row-body p{
    margin:6px 0 0;
}

.compact-form-grid{
    align-items:end;
}

.compact-form-grid textarea{
    min-height:74px;
}

.turno-card form{
    margin-top:12px;
}

.turno-card{
    position:relative;
    overflow:hidden;
    border-left:6px solid #b00020;
}

.turno-card::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:6px;
    background:#b00020;
}

.turno-card-accent-1{
    border-left-color:#b00020;
}

.turno-card-accent-1::before{
    background:#b00020;
}

.turno-card-accent-2{
    border-left-color:#1677c8;
}

.turno-card-accent-2::before{
    background:#1677c8;
}

.turno-card-accent-3{
    border-left-color:#2f8f5b;
}

.turno-card-accent-3::before{
    background:#2f8f5b;
}

.turno-card-accent-4{
    border-left-color:#5f4bb6;
}

.turno-card-accent-4::before{
    background:#5f4bb6;
}

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

.turno-top h3{
    margin-bottom:7px;
}

.turno-meta-public{
    display:inline-flex;
    flex-wrap:wrap;
    align-items:center;
    gap:4px;
    padding:7px 10px;
    border-radius:12px;
    background:#f7f7f9;
    color:#273142;
    font-size:16px;
    line-height:1.25;
    font-weight:700;
}

.turno-meta-public strong{
    color:var(--red-dark);
}

.turno-note-public{
    margin:14px 0 4px;
    font-size:17px;
    line-height:1.35;
    color:#111827;
}

.slot-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:86px;
    padding:8px 10px;
    border-radius:999px;
    background:var(--red-soft);
    color:var(--red);
    font-weight:bold;
    font-size:13px;
    text-align:center;
    flex:0 0 auto;
}

.slot-badge.full{
    background:#f1f1f4;
    color:#3a3a3f;
}

.turno-list{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid var(--line);
}

.turno-persona{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid var(--line);
}

.turno-persona:last-child{
    border-bottom:none;
}

.turno-persona small{
    color:var(--muted);
}

.public-list .turno-persona{
    justify-content:flex-start;
}

.palio-rioni{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
}

.palio-rione{
    margin-bottom:0;
}

.palio-rione.home-rione{
    border-color:var(--red);
    box-shadow:0 10px 26px rgba(176,0,32,.12);
}

.palio-rione-form{
    padding:12px 0;
    border-bottom:1px solid var(--line);
}

.palio-rione-form:last-child{
    border-bottom:none;
}

.palio-cavalieri-toggle{
    padding:0;
    overflow:hidden;
}

.palio-cavalieri-toggle summary{
    list-style:none;
}

.palio-cavalieri-toggle summary::-webkit-details-marker{
    display:none;
}

.palio-cavalieri-summary{
    display:grid;
    grid-template-columns:minmax(0,1fr) 34px;
    gap:12px;
    align-items:center;
    cursor:pointer;
    padding:16px 18px;
}

.palio-cavalieri-summary::after{
    content:"+";
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:50%;
    background:#eef6ff;
    color:#0b4f8a;
    font-weight:900;
}

.palio-cavalieri-toggle[open] .palio-cavalieri-summary::after{
    content:"-";
}

.palio-cavalieri-summary strong{
    display:block;
    color:#0b4f8a;
    font-size:21px;
}

.palio-cavalieri-summary small{
    display:block;
    margin-top:5px;
    color:var(--muted);
    line-height:1.5;
}

.palio-cavalieri-toggle form{
    padding:0 18px 18px;
}

.palio-prova-row{
    display:grid;
    gap:6px;
    padding:10px 0;
    border-bottom:1px solid var(--line);
}

.palio-prova-row:last-child{
    border-bottom:none;
}

.palio-stage-card{
    display:grid;
    gap:12px;
    margin:18px 0 24px;
    padding:14px;
    border-radius:22px;
    border:1px solid var(--border);
    background:#fff;
    box-shadow:var(--shadow-soft);
}

.palio-stage-head{
    padding:16px 18px;
    border-radius:18px;
    background:linear-gradient(135deg,#0f65a8,#1677c8);
    color:#fff;
    box-shadow:0 12px 26px rgba(22,119,200,.18);
}

.palio-stage-anelli{
    border-color:#f0c7d0;
    background:#fff7f9;
}

.palio-stage-anelli .palio-stage-head{
    background:linear-gradient(135deg,#9c001c,#c6002b);
    box-shadow:0 12px 26px rgba(176,0,32,.16);
}

.palio-stage-saracino{
    border-color:#c9def3;
    background:#f7fbff;
}

.palio-stage-saracino .palio-stage-head{
    background:linear-gradient(135deg,#0f65a8,#1677c8);
    box-shadow:0 12px 26px rgba(22,119,200,.16);
}

.palio-stage-public{
    border-color:#f0c7d0;
    background:#fff;
}

.palio-stage-public .palio-stage-head{
    background:linear-gradient(135deg,#9c001c,#c6002b);
    box-shadow:0 12px 26px rgba(176,0,32,.16);
}

.palio-stage-head h2{
    margin:0 0 4px;
    color:#fff;
    font-size:24px;
    letter-spacing:0;
}

.palio-stage-head p{
    margin:0;
    opacity:.92;
}

.palio-stage-rione{
    position:relative;
    padding:0;
    scroll-margin-top:18px;
    overflow:hidden;
}

.palio-stage-rione.is-saved{
    border-color:#7fd0a0;
    background:#f1fff6;
    box-shadow:0 14px 32px rgba(13,128,66,.16);
}

.palio-stage-rione.is-saved::after{
    content:"Salvato";
    position:absolute;
    top:16px;
    right:16px;
    padding:6px 10px;
    border-radius:999px;
    background:#0b8f46;
    color:#fff;
    font-size:12px;
    font-weight:900;
}

.palio-stage-rione summary{
    list-style:none;
}

.palio-stage-rione summary::-webkit-details-marker{
    display:none;
}

.palio-stage-summary{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto 30px;
    gap:12px;
    align-items:center;
    cursor:pointer;
    padding:16px;
}

.palio-stage-summary::after{
    content:"+";
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#eef6ff;
    color:#0b4f8a;
    font-weight:900;
}

.palio-stage-rione[open] .palio-stage-summary::after{
    content:"-";
}

.palio-stage-name{
    display:grid;
    gap:3px;
}

.palio-stage-name strong{
    font-size:20px;
    color:var(--red-dark);
}

.palio-stage-name small{
    color:var(--muted);
}

.palio-stage-mini-score{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:6px;
}

.palio-stage-mini-score span,
.palio-stage-mini-score strong{
    padding:7px 9px;
    border-radius:999px;
    background:#eef6ff;
    color:#0b4f8a;
    font-size:13px;
    font-weight:900;
}

.palio-stage-mini-score strong{
    background:#e7f7ef;
    color:#0b6b35;
}

.palio-stage-mini-score strong:only-child{
    background:#fff0f3;
    color:#b00020;
}

.palio-stage-rione form{
    padding:0 16px 16px;
}

.palio-stage-number{
    width:38px;
    height:38px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#e7f2ff;
    color:#0b4f8a;
    font-weight:900;
    border:1px solid #c7dff3;
}

.palio-public-score-row,
.palio-public-detail-row{
    display:grid;
    grid-template-columns:minmax(0,170px) minmax(0,1fr);
    gap:14px;
    align-items:center;
    margin:0;
}

.palio-public-score-row.is-pedicino,
.palio-public-detail-row.is-pedicino{
    border-color:#f0b8c3;
    box-shadow:0 10px 24px rgba(176,0,32,.12);
}

.palio-public-score-row h3,
.palio-public-detail-row h3{
    margin:0 0 4px;
}

.palio-public-rione-title{
    align-self:start;
}

.palio-public-text-score{
    display:grid;
    gap:7px;
}

.palio-public-text-score p{
    margin:0;
    color:#233044;
    font-size:16px;
    line-height:1.38;
}

.palio-public-text-score strong{
    color:#0b4f8a;
    font-weight:900;
}

.palio-public-text-score .total{
    margin-top:2px;
    padding:9px 10px;
    border-radius:14px;
    background:#fff0f3;
    color:#b00020;
    font-weight:900;
}

.palio-public-text-score .total strong{
    color:#b00020;
    font-size:18px;
}

.palio-public-score-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}

.palio-public-score-grid span{
    display:grid;
    gap:3px;
    padding:9px 10px;
    border-radius:14px;
    background:#f3f6fa;
    color:#344052;
    font-size:13px;
    font-weight:800;
}

.palio-public-score-grid strong{
    color:#0b4f8a;
    font-size:16px;
}

.palio-public-score-grid .total{
    background:#fff0f3;
    color:#b00020;
}

.palio-public-score-grid .total strong{
    color:#b00020;
    font-size:18px;
}

.rione-pedicino-badge{
    display:inline-block;
    padding:3px 8px;
    border-radius:999px;
    background:#fff0f3;
    color:#b00020;
    border:1px solid #f0b8c3;
    font-weight:900;
}

.daily-message-card.palio-win-message{
    border-color:#b00020;
    background:linear-gradient(135deg,#fff,#fff0f3);
    box-shadow:0 14px 32px rgba(176,0,32,.18);
}

.daily-message-card.palio-win-message strong{
    color:#b00020;
    font-weight:900;
}

.palio-score-editor{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin:14px 0;
}

.palio-score-editor.single{
    grid-template-columns:1fr;
}

.palio-score-editor section{
    border:1px solid #d9ebfb;
    background:#f8fbff;
    border-radius:18px;
    padding:14px;
}

.palio-score-editor h4{
    margin:0 0 10px;
    color:#0b4f8a;
    font-size:18px;
}

.palio-choice-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-bottom:12px;
}

.palio-choice-grid.saracino-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.palio-choice{
    display:grid;
    gap:4px;
    place-items:center;
    min-height:86px;
    padding:10px 6px;
    border:1px solid #c7dff3;
    border-radius:16px;
    background:#fff;
    text-align:center;
    font-weight:900;
}

.palio-choice input{
    width:22px;
    height:22px;
    accent-color:#1677c8;
}

.palio-choice span{
    font-size:13px;
    color:#243246;
}

.palio-choice strong{
    font-size:22px;
    color:#0b4f8a;
}

.palio-choice.is-zero{
    border-color:#d7dce4;
    background:#f1f3f6;
}

.palio-choice.is-zero strong{
    color:#4b5563;
}

.palio-disqualified-choice{
    min-height:0;
    grid-template-columns:auto 1fr auto;
    place-items:center stretch;
    margin-bottom:12px;
    border-color:#f0b8c3;
    background:#fff0f3;
    text-align:left;
}

.palio-disqualified-choice span{
    color:#b00020;
    font-size:15px;
}

.palio-disqualified-choice strong{
    color:#b00020;
    font-size:13px;
    text-align:right;
}

.palio-score-total{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:10px;
}

.palio-score-total span,
.palio-round-total{
    display:block;
    padding:9px 10px;
    border-radius:14px;
    background:#eef6ff;
    color:#344052;
    font-size:13px;
    font-weight:800;
}

.palio-score-total strong,
.palio-round-total strong{
    color:#0b4f8a;
    font-size:18px;
}

.palio-round-total{
    margin:8px 0 12px;
    text-align:center;
    background:#e7f7ef;
    color:#0b6b35;
}

.palio-round-total strong{
    color:#0b6b35;
}

.palio-classifica-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.palio-score{
    min-width:86px;
    padding:8px 10px;
    border-radius:14px;
    background:var(--red-soft);
    color:var(--red);
    text-align:center;
    font-weight:bold;
}

.palio-score small{
    color:var(--muted);
    font-weight:normal;
}

@media(max-width:760px){
    .palio-stage-rione{
        padding:0;
    }

    .palio-stage-summary{
        grid-template-columns:32px minmax(0,1fr);
        gap:10px;
    }

    .palio-stage-summary::after{
        grid-column:2;
        grid-row:2;
        justify-self:end;
    }

    .palio-stage-mini-score{
        grid-column:1 / -1;
        justify-content:flex-start;
    }

    .palio-stage-number{
        width:32px;
        height:32px;
    }

    .palio-stage-head h2{
        font-size:20px;
    }

    .palio-public-score-row,
    .palio-public-detail-row{
        grid-template-columns:1fr;
    }

    .palio-public-score-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .palio-score-editor{
        grid-template-columns:1fr;
    }

    .palio-choice-grid,
    .palio-choice-grid.saracino-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .palio-score-total{
        grid-template-columns:1fr;
    }
}

.filtri a{
    background:var(--red-soft);
    color:var(--red);
    text-decoration:none;
    padding:9px 12px;
    border-radius:999px;
    font-weight:bold;
    font-size:14px;
}

.filtri a.active{
    background:var(--red);
    color:#fff;
}

.event-order-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.event-order-actions .btn{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 12px;
    border-radius:14px;
    color:#fff !important;
    background:var(--red) !important;
    font-size:14px;
    font-weight:900;
    line-height:1.15;
    text-align:center;
    white-space:normal;
    word-break:normal;
}

.event-order-actions .btn:hover{
    background:var(--red-dark) !important;
}

@media(min-width:680px){
    .event-order-actions{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

.media-img,
.product-img{
    width:100%;
    max-height:360px;
    object-fit:cover;
    border-radius:14px;
    margin:10px 0;
}

.product-img-admin{
    max-height:220px;
}

.product-card h3{
    margin-top:8px;
}

.product-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:12px 0;
}

.variant-stock-box{
    margin:14px 0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fafafa;
}

.variant-stock-box h4{
    margin:0 0 6px;
    color:var(--red-dark);
}

.variant-stock-row{
    display:grid;
    grid-template-columns:1fr 90px;
    gap:10px;
    align-items:center;
    margin:8px 0;
    font-weight:bold;
}

.variant-stock-row input{
    margin:0;
}

.variant-list{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:10px 0;
}

.variant-pill{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 9px;
    border-radius:999px;
    background:var(--red-soft);
    color:var(--red-dark);
    font-size:12px;
    font-weight:bold;
}

.variant-pill.sold-out{
    background:#f1f1f3;
    color:#777;
    text-decoration:line-through;
}

.admin-product-summary{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    margin:12px 0;
}

.admin-product-summary span{
    display:block;
    min-width:0;
    padding:10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}

.admin-product-summary small,
.admin-product-summary strong{
    display:block;
}

.admin-product-summary small{
    margin-bottom:4px;
    color:var(--muted);
    font-size:12px;
    font-weight:bold;
}

.admin-product-summary strong{
    color:var(--red-dark);
    font-size:14px;
    overflow-wrap:anywhere;
}

.product-quick-list{
    display:grid;
    gap:10px;
}

.product-list-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:10px;
}

.compact-check{
    width:auto;
    margin:0;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#f8fbff;
}

.product-quick-row{
    display:grid;
    grid-template-columns:68px minmax(0,1fr) auto auto auto;
    gap:12px;
    align-items:center;
    padding:10px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    color:var(--text);
    text-decoration:none;
    box-shadow:0 8px 24px rgba(10,20,30,.06);
}

.product-quick-row:hover{
    border-color:#0f74bf;
    box-shadow:0 10px 28px rgba(15,116,191,.12);
}

.product-quick-thumb{
    width:68px;
    height:58px;
    border-radius:10px;
    background:#f2f4f7;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
}

.product-quick-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.product-quick-placeholder{
    font-size:11px;
    color:var(--muted);
    text-align:center;
    line-height:1.15;
}

.product-quick-main{
    min-width:0;
}

.product-quick-main strong,
.product-quick-main small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.product-quick-main strong{
    font-size:16px;
    color:#064a86;
}

.product-quick-main small{
    margin-top:3px;
    color:var(--muted);
}

.product-quick-stock,
.product-quick-state{
    padding:7px 10px;
    border-radius:999px;
    font-weight:900;
    white-space:nowrap;
    font-size:13px;
}

.product-quick-stock{
    background:#e8f5ef;
    color:#00723f;
}

.product-quick-stock.is-empty{
    background:#f0f1f4;
    color:#6b7280;
}

.product-quick-state{
    background:#e9f3ff;
    color:#0f62a2;
}

.product-quick-state.is-archived{
    background:#f3f4f6;
    color:#6b7280;
}

.product-quick-actions{
    display:flex;
    gap:6px;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
}

.product-quick-actions .btn-mini{
    min-width:92px;
}

.btn-mini{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:7px 10px;
    border-radius:999px;
    background:#0f74bf;
    color:#fff;
    text-decoration:none;
    font-size:13px;
    font-weight:900;
    white-space:nowrap;
}

.btn-mini-outline{
    background:#fff;
    color:#0f62a2;
    border:1px solid #b7d8f4;
}

.btn-danger-soft{
    background:#eef5ff;
    color:#0b4f8a;
}

.quick-sale-card{
    border:2px solid #d9ebfb;
}

.product-admin-focus{
    display:grid;
    grid-template-columns:132px 1fr;
    align-items:center;
    gap:18px;
}

.product-admin-focus-img{
    display:block;
    overflow:hidden;
    border-radius:18px;
    background:#f1f5f9;
    border:1px solid #d7dee8;
}

.product-admin-focus-img{
    width:132px;
    height:132px;
}

.product-admin-focus-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.product-admin-focus-img span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    padding:8px;
    color:#64748b;
    font-size:12px;
    text-align:center;
}

.product-admin-focus strong{
    display:block;
    color:#064a86;
    font-size:22px;
    line-height:1.2;
}

.product-admin-focus small{
    display:block;
    margin-top:5px;
    color:#536276;
    font-weight:700;
}

.quick-sale-switches{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.toggle-card{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:54px;
    padding:12px;
    border:2px solid #d9ebfb;
    border-radius:16px;
    background:#fff;
    font-weight:900;
    color:#064a86;
}

.toggle-card input{
    width:20px;
    height:20px;
    accent-color:#0f74bf;
}

.toggle-card:has(input:checked){
    background:#e8f7ef;
    border-color:#8bd0a6;
    color:#08723a;
}

.product-admin-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:14px 0;
}

.product-admin-tab{
    min-height:72px;
    padding:14px 12px;
    border:2px solid #d9ebfb;
    border-radius:16px;
    background:#fff;
    color:#064a86;
    font-size:18px;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 8px 24px rgba(10,20,30,.06);
}

.product-admin-tab.is-active{
    background:#0f74bf;
    color:#fff;
    border-color:#0f74bf;
}

.product-admin-section{
    display:none;
}

.product-admin-section.is-active{
    display:block;
}

.quick-sale-confirm dl{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:8px 12px;
    margin:0 0 14px;
}

.quick-sale-confirm dt{
    font-weight:900;
    color:#405064;
}

.quick-sale-confirm dd{
    margin:0;
    font-weight:800;
}

.actions-inline{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}

.compact-table-scroll{
    max-height:520px;
    overflow:auto;
}

.compact-table-scroll table{
    min-width:820px;
}

.compact-table-scroll thead th{
    position:sticky;
    top:0;
    z-index:1;
}

.admin-details{
    margin-top:12px;
}

.admin-details summary{
    cursor:pointer;
    font-weight:900;
    color:#064a86;
    padding:10px 0;
}

.admin-stock-box{
    margin:12px 0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fafafa;
}

.admin-stock-title{
    margin-bottom:8px;
    color:var(--red-dark);
    font-weight:900;
}

.admin-stock-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
}

.admin-stock-chip{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:9px 10px;
    border:1px solid #f0c3cb;
    border-radius:12px;
    background:#fff;
    color:var(--text);
}

.admin-stock-chip span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:13px;
    font-weight:bold;
}

.admin-stock-chip strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:28px;
    padding:0 8px;
    border-radius:999px;
    background:var(--red);
    color:#fff;
    font-size:13px;
}

.admin-stock-chip.is-empty{
    border-color:#e2e2e6;
    background:#f5f5f7;
    color:#777;
}

.admin-stock-chip.is-empty strong{
    background:#b8b8bf;
}

.product-info-grid span{
    display:block;
    min-width:0;
    padding:10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}

.product-info-grid small,
.product-info-grid strong{
    display:block;
}

.product-info-grid small{
    margin-bottom:4px;
    color:var(--muted);
    font-size:12px;
    font-weight:bold;
}

.product-info-grid strong{
    color:var(--red-dark);
    font-size:15px;
    overflow-wrap:anywhere;
}

.calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;
    margin:12px 0 18px;
}

.calendar-grid > strong{
    padding:8px 4px;
    border-radius:10px;
    background:var(--red);
    color:#fff;
    text-align:center;
    font-size:13px;
}

.calendar-day{
    min-height:72px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    box-shadow:0 6px 16px rgba(0,0,0,.04);
}

.calendar-day.empty{
    background:transparent;
    border-color:transparent;
    box-shadow:none;
}

.calendar-day b,
.calendar-day span,
.calendar-day a{
    display:block;
}

.calendar-day b{
    margin-bottom:5px;
    color:var(--red-dark);
}

.calendar-day span,
.calendar-day a{
    margin-top:4px;
    color:var(--red);
    font-size:12px;
    font-weight:bold;
    text-decoration:none;
    overflow-wrap:anywhere;
}

.checkbox-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:8px;
    margin-bottom:12px;
}

.convocazioni-box{
    margin:14px 0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fafafa;
}

.future-event{
    border-color:#f0c3cb;
}

.market-gallery{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:10px 0;
}

.market-gallery img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:12px;
    border:1px solid var(--line);
}

.market-price{
    display:inline-block;
    margin:8px 0 10px;
    padding:8px 10px;
    border-radius:12px;
    background:var(--red-soft);
    color:var(--red-dark);
}

.marketplace-card{
    overflow:hidden;
}

.home-search-card,
.search-page-form{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:16px;
    padding:14px;
    margin:0 0 18px;
    box-shadow:0 8px 20px rgba(0,0,0,.05);
}

.home-search-card[hidden]{
    display:none;
}

.home-search-card label,
.search-page-form label{
    display:block;
    margin:0 0 8px;
    color:var(--red-dark);
    font-weight:800;
}

.search-inline{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
}

.search-inline input{
    margin:0;
}

.search-inline button{
    width:auto;
    min-width:94px;
    margin:0;
    white-space:nowrap;
}

.search-results{
    display:grid;
    gap:12px;
}

.search-result-card{
    text-decoration:none;
    color:inherit;
}

.search-result-card h3{
    margin:8px 0 2px;
}

.search-result-card small{
    display:block;
    color:var(--muted);
    margin-bottom:8px;
}

.search-result-card p{
    margin:0;
    color:var(--muted);
}

.install-app{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:18px;
    padding:18px;
    margin:0 0 18px;
    text-align:center;
}

.install-app h2{
    color:var(--red-dark);
    margin:0 0 10px;
}

.install-app p,
.manual-install{
    color:var(--muted);
}

.btn-install{
    background:var(--red);
    color:#fff;
}

.table-mobile{
    overflow-x:auto;
}

.table-wrap{
    overflow-x:auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.table-wrap table{
    width:100%;
    border-collapse:collapse;
    min-width:760px;
    font-size:13px;
}

.table-wrap th{
    background:var(--red);
    color:#fff;
    padding:10px;
    text-align:left;
}

.table-wrap td{
    border-top:1px solid var(--line);
    padding:10px;
    vertical-align:top;
}

.table-wrap small{
    color:var(--muted);
}

.table-wrap.donation-scroll-table{
    max-height:70vh;
    overflow:auto;
}

.table-wrap.donation-scroll-small{
    max-height:360px;
}

.table-wrap.donation-scroll-table th{
    position:sticky;
    top:0;
    z-index:2;
}

.table-hint{
    margin:-4px 0 10px;
    color:var(--muted);
    font-size:13px;
}

.inline-admin-form{
    margin:0 0 8px;
}

.permission-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px 10px;
}

.check-row{
    display:flex;
    align-items:center;
    gap:7px;
    margin:0;
    font-weight:normal;
}

.check-row input{
    width:auto;
    margin:0;
}

.btn.small,
button.small{
    width:auto;
    padding:8px 10px;
    font-size:13px;
    margin:3px 0;
}

.btn.secondary,
button.secondary{
    background:#3a3a3f;
}

button:disabled{
    opacity:.45;
    cursor:not-allowed;
}

.rp-loading-overlay{
    position:fixed;
    inset:0;
    z-index:9999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(255,255,255,.58);
    opacity:0;
    pointer-events:none;
    transition:opacity .16s ease;
}

.rp-loading-overlay.show{
    opacity:1;
    pointer-events:auto;
}

.rp-loading-box{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    min-width:150px;
    padding:18px 20px;
    border-radius:16px;
    background:#fff;
    color:var(--text);
    border:1px solid var(--line);
    box-shadow:0 18px 46px rgba(0,0,0,.18);
    text-align:center;
}

.rp-loading-box small{
    color:var(--muted);
}

.rp-spinner{
    width:28px;
    height:28px;
    border-radius:50%;
    border:3px solid var(--red-soft);
    border-top-color:var(--red);
    animation:rp-spin .8s linear infinite;
}

.rp-loading{
    pointer-events:none;
    opacity:.72;
}

button.rp-loading,
.btn.rp-loading,
.card.rp-loading{
    position:relative;
}

@keyframes rp-spin{
    to{
        transform:rotate(360deg);
    }
}

.rionali-table-wrap{
    border-radius:18px;
    max-height:72vh;
    overflow:auto;
}

.rionali-table{
    min-width:1120px;
    border-collapse:separate;
    border-spacing:0;
}

.rionali-table th,
.rionali-table td{
    vertical-align:middle;
}

.rionali-table thead th{
    position:sticky;
    top:0;
    z-index:5;
    box-shadow:0 2px 0 rgba(0,0,0,.08);
}

.rionali-table th:first-child,
.rionali-table td:first-child{
    min-width:170px;
}

.rionali-table th:nth-child(2),
.rionali-table td:nth-child(2){
    min-width:210px;
}

.rionali-table th:nth-child(3),
.rionali-table td:nth-child(3){
    min-width:150px;
}

.permission-head{
    width:70px;
    min-width:70px;
    text-align:center !important;
    font-size:12px;
    line-height:1.15;
}

.permission-cell{
    text-align:center;
}

.permission-cell label{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:38px;
    margin:0;
}

.permission-cell input{
    width:18px;
    height:18px;
    margin:0;
}

.permission-cell span{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
}

.status-cell{
    min-width:88px;
}

.account-status-cell{
    min-width:120px;
}

.account-status-cell strong{
    display:block;
    margin-bottom:6px;
}

.tabella-admin,
.tabella-partecipanti{
    width:100%;
    border-collapse:collapse;
    background:#fff;
    color:#000;
    font-size:13px;
}

.tabella-admin th,
.tabella-partecipanti th{
    background:var(--red);
    color:#fff;
    border:1px solid #ddd;
    padding:8px;
    text-align:left;
}

.tabella-admin td,
.tabella-partecipanti td{
    border:1px solid #ddd;
    padding:8px;
    vertical-align:top;
}

.tabella-admin tr:nth-child(even),
.tabella-partecipanti tr:nth-child(even){
    background:#fafafa;
}

.log-table-scroll{
    max-height:420px;
    overflow:auto;
    border:1px solid var(--line);
    border-radius:12px;
}

.log-table-scroll table{
    min-width:980px;
}

.log-table-scroll thead th{
    position:sticky;
    top:0;
    z-index:2;
}

.usage-chart{
    display:grid;
    grid-template-columns:repeat(14,minmax(32px,1fr));
    gap:8px;
    align-items:end;
    margin-top:14px;
    overflow-x:auto;
    padding-bottom:4px;
}

.usage-bar-item{
    min-width:34px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    text-align:center;
}

.usage-bar-wrap{
    width:100%;
    height:128px;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:4px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8fbff;
}

.usage-bar{
    width:18px;
    border-radius:999px 999px 4px 4px;
    background:linear-gradient(180deg,#1677c8,#0b4f8a);
}

.usage-bar-item strong{
    color:#1677c8;
    font-size:13px;
    line-height:1;
}

.usage-bar-item span{
    color:var(--muted);
    font-size:11px;
    white-space:nowrap;
}

.user-usage-chart{
    display:grid;
    gap:10px;
    margin-top:12px;
}

.user-usage-row{
    display:grid;
    grid-template-columns:minmax(130px,220px) 1fr 44px;
    gap:10px;
    align-items:center;
}

.user-usage-name{
    font-weight:700;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.user-usage-bar-wrap{
    height:18px;
    border-radius:999px;
    background:#edf5ff;
    overflow:hidden;
    border:1px solid #d9eaff;
}

.user-usage-bar{
    height:100%;
    border-radius:999px;
    background:linear-gradient(90deg,#1677c8,#0b4f8a);
}

.user-usage-row strong{
    text-align:right;
    color:#1677c8;
}

.game-header{
    background:linear-gradient(135deg,#b00020,#740014);
}

.game-panel{
    padding:12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.game-scorebar{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-bottom:10px;
}

.game-scorebar span{
    padding:8px;
    border-radius:12px;
    background:#f7f7f9;
    color:var(--muted);
    font-size:12px;
    text-align:center;
}

.game-scorebar strong{
    display:block;
    color:var(--red);
    font-size:20px;
}

.game-rione-badge{
    width:min(420px,100%);
    margin:0 auto 10px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    color:#1d1d1f;
    box-shadow:0 4px 12px rgba(0,0,0,.04);
}

.game-rione-badge strong{
    font-size:14px;
}

.game-rione-badge small{
    color:var(--muted);
    font-size:12px;
}

.game-rione-color{
    width:16px;
    height:16px;
    flex:0 0 auto;
    border-radius:5px;
    border:1px solid var(--line);
}

.game-rione-white{
    background:#fff;
}

.game-rione-red{
    background:#b00020;
    border-color:#b00020;
}

#palioGame{
    width:100%;
    max-width:420px;
    aspect-ratio:2 / 3;
    height:auto;
    display:block;
    margin:0 auto;
    border:2px solid var(--line);
    border-radius:18px;
    background:#f7f7f9;
    touch-action:none;
}

.tower-header{
    background:linear-gradient(135deg,#b00020,#111722);
}

.tower-game{
    padding:12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.tower-game .game-scorebar{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

#towerGame{
    width:100%;
    max-width:420px;
    aspect-ratio:9 / 14;
    height:auto;
    display:block;
    margin:0 auto;
    border:2px solid #1b2430;
    border-radius:18px;
    background:#111722;
    touch-action:none;
}

.coloring-header{
    background:linear-gradient(135deg,#b00020,#d83a56);
}

.coloring-form{
    display:grid;
    gap:14px;
}

.coloring-workspace{
    display:grid;
    gap:10px;
}

.coloring-palette{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(42px,1fr));
    gap:8px;
}

.coloring-palette button{
    min-height:42px;
    border:2px solid var(--line);
    border-radius:14px;
    background:var(--swatch);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.65);
}

.coloring-palette button.active{
    border-color:var(--red);
    box-shadow:0 0 0 3px rgba(176,0,32,.18), inset 0 0 0 2px rgba(255,255,255,.8);
}

.book-container{
    max-width:820px;
}

.book-list-header{
    background:linear-gradient(135deg,#8b001b,#c9183a);
}

.book-list{
    display:grid;
    gap:14px;
}

.book-list-card{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:14px;
    align-items:center;
    padding:12px;
    border-radius:22px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 12px 28px rgba(0,0,0,.07);
    color:inherit;
    text-decoration:none;
}

.book-list-card img{
    width:110px;
    height:145px;
    object-fit:cover;
    border-radius:16px;
    background:#fff;
    border:1px solid var(--line);
}

.book-list-card span{
    display:grid;
    gap:6px;
}

.book-list-card strong{
    color:#770018;
    font-size:22px;
}

.book-list-card small,
.book-list-card em{
    color:var(--muted);
    font-style:normal;
}

.book-cover{
    display:grid;
    grid-template-columns:1fr minmax(220px,320px);
    gap:22px;
    align-items:center;
    padding:22px;
    border-radius:26px;
    background:linear-gradient(135deg,#fff8f5,#f6eef0);
    border:1px solid rgba(176,0,32,.12);
    box-shadow:0 18px 42px rgba(85,32,42,.11);
}

.book-cover-text{
    display:grid;
    gap:14px;
}

.book-cover-text span{
    color:var(--red);
    font-weight:800;
    text-transform:uppercase;
    font-size:13px;
}

.book-cover h1{
    margin:0;
    font-size:clamp(34px,6vw,54px);
    line-height:1;
    color:#6f0016;
}

.book-cover p{
    margin:0;
    color:#5b3f45;
    font-size:18px;
}

.book-cover img{
    width:100%;
    border-radius:22px;
    border:8px solid #fff;
    box-shadow:0 16px 32px rgba(0,0,0,.14);
}

.book-cover-actions,
.book-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}

.book-primary-btn,
.book-soft-btn,
.book-icon-btn{
    min-height:46px;
    border:0;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 18px;
    font-weight:900;
    text-decoration:none;
    cursor:pointer;
}

.book-primary-btn{
    background:var(--red);
    color:#fff;
    box-shadow:0 10px 22px rgba(176,0,32,.2);
}

.book-soft-btn,
.book-icon-btn{
    background:#fff;
    color:#7b0018;
    border:1px solid rgba(176,0,32,.16);
}

.book-reader{
    display:grid;
    gap:14px;
}

.book-reader-top{
    display:grid;
    grid-template-columns:48px 1fr 48px;
    align-items:center;
    gap:10px;
}

.book-reader-top span{
    text-align:center;
    font-weight:900;
    color:#6f0016;
}

.book-icon-btn{
    width:48px;
    height:48px;
    padding:0;
    font-size:24px;
}

.book-page-card{
    display:grid;
    gap:16px;
    padding:14px;
    border-radius:24px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 14px 34px rgba(0,0,0,.07);
}

.book-page-image{
    width:100%;
    max-height:72vh;
    object-fit:contain;
    background:#fff;
    border-radius:18px;
}

.book-audio-note{
    color:#6f0016;
    font-weight:800;
    background:#fff5f6;
    border:1px solid rgba(176,0,32,.16);
    border-radius:999px;
    padding:10px 14px;
}

.book-admin-list{
    display:grid;
    gap:14px;
}

.book-admin-page{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:14px;
    align-items:start;
}

.book-admin-preview img{
    width:100%;
    max-height:170px;
    object-fit:contain;
    border-radius:12px;
    background:#fff;
    border:1px solid var(--line);
}

.book-admin-info{
    display:grid;
    gap:10px;
}

.book-admin-info h3,
.book-admin-info p{
    margin:0;
}

.book-admin-info audio{
    width:100%;
}

.book-audio-form{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
    align-items:center;
}

.book-record-panel{
    grid-column:1 / -1;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    padding:10px;
    border:1px solid #d7e6f7;
    border-radius:10px;
    background:#f7fbff;
}

.book-record-panel .btn-secondary{
    width:auto;
    padding:9px 12px;
    border-radius:999px;
    background:#0f74bf;
    color:#fff;
    border:0;
    font-weight:800;
    cursor:pointer;
}

.book-record-panel .btn-secondary:disabled{
    opacity:.45;
    cursor:not-allowed;
}

.record-status{
    color:#405064;
    font-size:13px;
    font-weight:700;
}

.coloring-canvas-wrap{
    border:1px solid var(--line);
    border-radius:18px;
    padding:8px;
    background:#f7f7f9;
}

.coloring-models{
    display:grid;
    gap:8px;
}

.coloring-models h3,
.coloring-models p{
    margin:0;
}

.coloring-model-grid,
.coloring-admin-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:10px;
}

.coloring-model{
    display:grid;
    gap:6px;
    padding:8px;
    border:2px solid var(--line);
    border-radius:14px;
    background:#fff;
    color:#1d1d1f;
    text-align:left;
}

.coloring-model.active{
    border-color:var(--red);
    box-shadow:0 0 0 3px rgba(176,0,32,.14);
}

.coloring-model img{
    width:100%;
    aspect-ratio:1;
    object-fit:contain;
    border-radius:10px;
    background:#fff;
    border:1px solid var(--line);
}

.coloring-model span{
    font-weight:800;
    font-size:13px;
}

.coloring-model small{
    color:var(--muted);
    font-size:12px;
}

.coloring-search{
    display:grid;
    gap:10px;
}

#coloringCanvas{
    width:100%;
    max-width:720px;
    height:auto;
    display:block;
    margin:0 auto;
    border-radius:14px;
    background:#fff;
    touch-action:none;
}

.coloring-gallery{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:12px;
}

.coloring-card{
    display:grid;
    gap:7px;
    padding:10px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.coloring-card img{
    width:100%;
    aspect-ratio:1;
    object-fit:cover;
    border-radius:12px;
    border:1px solid var(--line);
    background:#fff;
}

.coloring-card h3,
.coloring-card p{
    margin:0;
}

.coloring-card small{
    color:var(--muted);
}

.coloring-card strong{
    color:var(--red);
}

.coloring-vote{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:5px;
}

.coloring-vote button{
    min-height:34px;
    padding:6px;
    border-radius:999px;
    background:#1677c8;
}

.coloring-vote button:before{
    content:"\2605 ";
}

.coloring-ranking{
    display:grid;
    gap:8px;
}

.coloring-ranking-row{
    display:grid;
    grid-template-columns:34px 58px 1fr auto;
    gap:10px;
    align-items:center;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.coloring-ranking-row > strong{
    display:inline-flex;
    width:28px;
    height:28px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--red);
    color:#fff;
}

.coloring-ranking-row img{
    width:58px;
    height:58px;
    object-fit:cover;
    border-radius:12px;
    border:1px solid var(--line);
}

.coloring-ranking-row span{
    display:flex;
    flex-direction:column;
    font-weight:800;
}

.coloring-ranking-row small{
    color:var(--muted);
    font-weight:500;
}

.coloring-ranking-row em{
    color:var(--red);
    font-style:normal;
    font-weight:900;
    text-align:right;
}

.game-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:10px;
}

.game-controls button[hidden]{
    display:none;
}

.game-help{
    text-align:center;
    margin:10px 0 0;
}

.game-ranking{
    display:grid;
    gap:8px;
}

.game-ranking-row{
    display:grid;
    grid-template-columns:38px 34px 1fr auto;
    gap:10px;
    align-items:center;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.game-ranking-row strong{
    display:inline-flex;
    width:28px;
    height:28px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--red);
    color:#fff;
}

.game-ranking-row span{
    font-weight:700;
}

.game-ranking-row em{
    color:var(--red);
    font-style:normal;
    font-weight:900;
}

.pizza-header{
    background:linear-gradient(135deg,#b00020,#7a0016);
}

.pizza-game{
    padding:12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.pizza-layout{
    display:grid;
    grid-template-columns:96px 1fr 112px;
    gap:10px;
    align-items:stretch;
}

.pizza-ingredients{
    display:grid;
    gap:8px;
    align-content:start;
}

.pizza-ingredients button{
    min-height:48px;
    padding:8px 6px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#f7f7f9;
    color:#1d1d1f;
    font-size:13px;
    font-weight:800;
    box-shadow:none;
}

.pizza-ingredients button:active{
    transform:scale(.98);
}

.pizza-center{
    display:grid;
    gap:10px;
}

.pizza-ticket{
    padding:12px 12px 14px;
    border:1px dashed #b8b8bf;
    border-radius:4px;
    background:#fffef8;
    color:#1d1d1f;
}

.pizza-ticket small{
    display:block;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.06em;
    font-size:10px;
    font-weight:800;
}

.pizza-ticket h2{
    margin:3px 0 8px;
    color:var(--red);
    font-size:19px;
}

.pizza-ticket ol{
    margin:0;
    padding-left:22px;
}

.pizza-ticket li{
    padding:3px 0;
    border-bottom:1px dotted #d8d8de;
    font-size:14px;
}

.pizza-ticket li.current{
    color:var(--red);
    font-weight:900;
}

.pizza-ticket li.done{
    color:var(--muted);
    text-decoration:line-through;
}

.pizza-board{
    min-height:190px;
    display:grid;
    justify-items:center;
    align-content:center;
    gap:8px;
    padding:16px 12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#f7f7f9;
    text-align:center;
}

.pizza-board strong{
    color:#1d1d1f;
    font-size:18px;
}

.pizza-board p{
    margin:0;
    color:var(--muted);
    font-size:13px;
}

.pizza-base{
    width:122px;
    height:122px;
    position:relative;
    border-radius:50%;
    background:#f4d4a0;
    border:6px solid #d9a45d;
    box-shadow:inset 0 0 0 7px rgba(255,255,255,.28), 0 10px 20px rgba(0,0,0,.08);
    overflow:hidden;
}

.pizza-base span,
.pizza-base:before,
.pizza-base:after{
    content:"";
    position:absolute;
    border-radius:50%;
}

.pizza-base.has-pomodoro{
    background:#c5162f;
}

.pizza-base.has-mozzarella span{
    inset:16px;
    background:radial-gradient(circle at 20% 30%,#fff 0 11px,transparent 12px),
               radial-gradient(circle at 70% 35%,#fff 0 12px,transparent 13px),
               radial-gradient(circle at 52% 72%,#fff 0 13px,transparent 14px);
}

.pizza-base.has-funghi:before{
    width:78px;
    height:78px;
    left:20px;
    top:22px;
    background:radial-gradient(circle at 30% 22%,#7a5539 0 6px,transparent 7px),
               radial-gradient(circle at 72% 36%,#7a5539 0 6px,transparent 7px),
               radial-gradient(circle at 44% 72%,#7a5539 0 6px,transparent 7px);
}

.pizza-base.has-salsiccia:after,
.pizza-base.has-salamino:after{
    width:86px;
    height:86px;
    left:18px;
    top:18px;
    background:radial-gradient(circle at 28% 30%,#8a2430 0 8px,transparent 9px),
               radial-gradient(circle at 66% 44%,#8a2430 0 8px,transparent 9px),
               radial-gradient(circle at 45% 72%,#8a2430 0 8px,transparent 9px);
}

.pizza-topping{
    position:absolute;
    width:16px;
    height:16px;
    z-index:3;
    border-radius:50%;
    border:2px solid rgba(255,255,255,.65);
    box-shadow:0 2px 5px rgba(0,0,0,.18);
}

.topping-funghi{ background:#7a5539; }
.topping-salsiccia{ background:#8a2430; }
.topping-salamino{ background:#5c0010; }

.pizza-message{
    margin-top:10px;
    padding:10px 12px;
    border-radius:14px;
    background:#f7f7f9;
    color:#1d1d1f;
    font-weight:800;
    text-align:center;
}

.pizza-ranking-row span small{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-weight:500;
}

.word-game-header{
    background:linear-gradient(135deg,#b00020,#740014);
}

.word-game{
    padding:12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.055);
}

.word-clues{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:12px 0;
}

.word-clues span{
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:9px 10px;
    border:1px solid #f0c3cb;
    border-radius:14px;
    background:#fff7f8;
    color:#b00020;
    font-weight:900;
    text-align:center;
}

.word-clues span:last-child:nth-child(odd){
    grid-column:1 / -1;
}

.word-answer-form{
    display:grid;
    gap:8px;
}

.word-answer-form label{
    color:var(--muted);
    font-weight:800;
    font-size:13px;
}

.word-message{
    margin-top:10px;
    padding:11px 12px;
    border-radius:14px;
    background:#f7f7f9;
    color:#1d1d1f;
    font-weight:800;
    text-align:center;
}

.word-message.success{
    border:1px solid #f0c3cb;
    background:#fff7f8;
    color:#b00020;
}

.word-message.error{
    border:1px solid #d9d9df;
    background:#fff;
    color:#1d1d1f;
}

.word-message small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-weight:500;
    line-height:1.35;
}

.word-hurry .game-scorebar span:nth-child(2){
    border:1px solid #b00020;
    background:#fff1f3;
}

.word-hurry #wordTime{
    color:#b00020;
}

.donation-month{
    display:inline-flex;
    min-width:72px;
    align-items:center;
    justify-content:center;
    padding:6px 8px;
    border-radius:999px;
    border:1px solid var(--line);
    background:#f7f7f9;
    color:#1d1d1f;
    font-size:12px;
    font-weight:800;
    text-align:center;
    line-height:1.15;
}

.donation-month small{
    color:inherit;
    font-size:10px;
    font-weight:700;
}

.donation-coperto{
    background:#eaf8ef;
    border-color:#bde8ca;
    color:#176b35;
}

.donation-parziale{
    background:#fff7dc;
    border-color:#f1d987;
    color:#7a5a00;
}

.donation-escluso{
    background:#ededf1;
    border-color:#d7d7df;
    color:#666872;
}

.donation-non_coperto{
    background:#fff;
    border-color:#ececf0;
    color:#68686f;
}

.donation-month-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}

.donation-admin-cell{
    min-width:54px;
    vertical-align:middle;
    text-align:center;
    padding:7px 6px !important;
}

.inline-pay-form{
    margin:0;
}

.inline-pay-form .btn,
.inline-pay-form button{
    width:auto;
    min-width:42px;
    padding:6px 8px;
    font-size:12px;
}

.donation-status-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    min-height:28px;
    padding:5px 8px;
    border-radius:999px;
    border:1px solid var(--line);
    font-size:12px;
    font-weight:900;
    line-height:1;
}

.donation-ok{
    background:#16823a;
    border-color:#16823a;
    color:#fff;
    cursor:pointer;
}

.donation-no{
    background:#eef0f4;
    border-color:#cfd3dc;
    color:#424957;
    cursor:pointer;
}

.donation-partial{
    background:#fff7dc;
    border-color:#f1d987;
    color:#7a5a00;
}

.donation-muted{
    background:#ededf1;
    color:#666872;
}

.donation-total-paid{
    font-weight:900;
}

.section-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:18px;
}

.section-title-row .section-title{
    margin:0;
}

.donation-save-button{
    white-space:nowrap;
    min-width:150px;
}

.filtered-donation-card{
    margin-top:18px;
}

.filtered-donation-person{
    display:grid;
    gap:10px;
    padding:10px 0;
    border-top:1px solid var(--line);
}

.filtered-donation-person:first-of-type{
    border-top:0;
    padding-top:0;
}

.filtered-donation-person small{
    display:block;
    color:var(--muted);
    margin-top:2px;
}

.filtered-month-row{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:6px;
}

.filtered-month-pill{
    display:grid;
    gap:2px;
    justify-items:center;
    padding:7px 4px;
    border-radius:10px;
    border:1px solid var(--line);
    background:#f1f2f5;
    color:#424957;
    font-size:12px;
    line-height:1.1;
}

.filtered-month-pill em{
    font-style:normal;
    font-weight:900;
}

.filtered-month-pill.is-ok{
    background:#16823a;
    border-color:#16823a;
    color:#fff;
}

.filtered-month-pill.is-partial{
    background:#fff7dc;
    border-color:#f1d987;
    color:#7a5a00;
}

.collapsible-admin-block{
    margin-top:18px;
}

.collapsible-admin-block summary{
    cursor:pointer;
    color:var(--admin-primary, var(--primary));
    font-weight:900;
    font-size:18px;
    list-style-position:inside;
}

.collapsible-admin-block[open] summary{
    margin-bottom:12px;
}

.admin-top-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    margin-bottom:14px;
}

.print-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:16px;
}

.print-header{
    text-align:center;
    margin:0 0 18px;
}

.print-header h1,
.print-header h2{
    margin:0 0 6px;
}

.print-header p{
    margin:4px 0;
    color:var(--muted);
}

.print-bracket-table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
}

.print-bracket-table th,
.print-bracket-table td{
    border:1px solid #cfd3dc;
    padding:9px 8px;
    text-align:left;
    vertical-align:top;
}

.print-bracket-table th{
    background:var(--admin-primary, #1976c9);
    color:#fff;
}

@media print{
    body{
        background:#fff;
    }

    .no-print,
    .btn-home,
    .admin-theme-style{
        display:none !important;
    }

    .container,
    .print-container{
        width:100%;
        max-width:none;
        margin:0;
        padding:0;
    }

    .print-bracket-table{
        font-size:12px;
    }

    .print-bracket-table th{
        background:#e9edf3 !important;
        color:#000 !important;
    }
}

@media (max-width:560px){
    .section-title-row{
        align-items:stretch;
        flex-direction:column;
        gap:8px;
    }

    .donation-save-button{
        width:100%;
    }

    .filtered-month-row{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

#wordRestart{
    width:100%;
    margin-top:10px;
}

@media (max-width:560px){
    .pizza-layout{
        grid-template-columns:1fr;
    }

    .pizza-ingredients{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .pizza-right{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

.feed-meta{
    color:var(--muted);
    font-size:13px;
    line-height:1.35;
}

.reaction-row form{
    margin:0;
}

.reaction-btn,
.reaction-count{
    display:inline-block;
    width:auto;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid #f0c3cb;
    background:var(--red-soft);
    color:var(--red);
    font-size:13px;
    font-weight:bold;
}

.comment-form{
    margin-top:12px;
}

.poll-form{
    margin-top:14px;
}

.poll-choice{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:10px 12px;
    margin:8px 0;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    font-weight:normal;
}

.poll-choice input{
    width:auto;
    margin:2px 0 0;
}

.poll-results{
    margin-top:14px;
}

.poll-result-row{
    margin-top:10px;
}

.poll-result-label{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:var(--text);
    font-size:13px;
}

.poll-result-label span{
    overflow-wrap:anywhere;
}

.poll-bar{
    height:9px;
    margin-top:5px;
    border-radius:999px;
    background:#f1f1f4;
    overflow:hidden;
}

.poll-bar span{
    display:block;
    height:100%;
    border-radius:999px;
    background:var(--red);
}

.commento{
    margin-top:10px;
    padding:10px;
    border-radius:12px;
    background:#fafafa;
    border:1px solid var(--line);
}

.commento span{
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-top:2px;
}

.commento p{
    margin-bottom:0;
}

.inline-report{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
    align-items:end;
    margin-top:12px;
}

.inline-report input{
    margin-top:0;
}

.inline-report button{
    width:auto;
    margin:0;
}

.btn-light{
    background:#f1f1f4;
    color:var(--red);
}

.moderation-box{
    border:1px solid #f0c3cb;
    background:var(--red-soft);
    color:var(--text);
    border-radius:14px;
    padding:12px;
    margin:12px 0;
}

.moderation-box p{
    margin:8px 0 0;
}

.home-alert{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    margin:16px 0;
    border-radius:16px;
    background:#fff;
    color:var(--text);
    border:2px solid var(--red);
    text-decoration:none;
    box-shadow:0 8px 22px rgba(176,0,32,.12);
}

.home-alert strong,
.home-alert small{
    display:block;
}

.home-alert small{
    margin-top:3px;
    color:var(--muted);
}

.daily-message-card{
    margin:16px 0;
    padding:16px 18px;
    border:1px solid #f0c3cb;
    border-left:5px solid var(--red);
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 26px rgba(176,0,32,.08);
}

.daily-message-card span{
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-size:13px;
    font-weight:bold;
}

.daily-message-card strong{
    display:block;
    color:var(--red-dark);
    font-size:22px;
    line-height:1.2;
}

.daily-message-community{
    margin:-8px 0 18px;
    border:1px solid #ead7db;
    border-radius:0 0 18px 18px;
    background:#fff;
    box-shadow:0 12px 28px rgba(77,26,35,.08);
    overflow:hidden;
}

.daily-message-community-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:15px 18px 11px;
}

.daily-message-community-heading > div{
    display:grid;
    gap:3px;
}

.daily-message-community-heading > div > strong{
    color:var(--red-dark);
    font-size:18px;
}

.daily-message-community-heading > div > span{
    color:var(--muted);
    font-size:14px;
}

.daily-message-comment-count{
    flex:0 0 auto;
    padding:6px 10px;
    border-radius:999px;
    background:var(--red-soft);
    color:var(--red-dark);
    font-size:13px;
    font-weight:900;
}

.daily-message-feedback{
    margin:0 16px 12px;
}

.daily-message-reactions{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
    padding:0 16px 15px;
}

.daily-message-reactions form{
    margin:0;
}

.daily-message-reaction-btn{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
    width:100%;
    min-height:48px;
    padding:8px 11px;
    border:2px solid #edd6db;
    border-radius:14px;
    background:#fff8f9;
    color:#6f1022;
    text-align:left;
    cursor:pointer;
}

.daily-message-reaction-btn > span{
    font-size:21px;
}

.daily-message-reaction-btn strong{
    min-width:0;
    font-size:13px;
}

.daily-message-reaction-btn em{
    display:grid;
    min-width:25px;
    height:25px;
    place-items:center;
    padding:0 5px;
    border-radius:999px;
    background:#f0dfe3;
    color:var(--red-dark);
    font-size:12px;
    font-style:normal;
    font-weight:900;
}

.daily-message-reaction-btn:hover,
.daily-message-reaction-btn:focus-visible,
.daily-message-reaction-btn.is-selected{
    border-color:var(--red);
    background:var(--red);
    color:#fff;
}

.daily-message-reaction-btn.is-selected em{
    background:#fff;
}

.daily-message-reaction-btn.is-readonly{
    cursor:default;
}

.daily-message-comments-panel{
    border-top:1px solid #ead7db;
}

.daily-message-comments-panel > summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 18px;
    color:#6f1022;
    font-weight:900;
    cursor:pointer;
    list-style:none;
}

.daily-message-comments-panel > summary::-webkit-details-marker{
    display:none;
}

.daily-message-comments-panel > summary::after{
    content:"+";
    display:grid;
    width:30px;
    height:30px;
    place-items:center;
    border-radius:50%;
    background:var(--red);
    color:#fff;
    font-size:20px;
}

.daily-message-comments-panel[open] > summary::after{
    content:"−";
}

.daily-message-comments-panel > summary strong{
    margin-left:auto;
    color:var(--muted);
}

.daily-message-comments-body{
    padding:0 18px 18px;
}

.daily-message-comment-list{
    display:grid;
    gap:10px;
    margin-bottom:14px;
}

.daily-message-comment{
    padding:12px 14px;
    border:1px solid #e7e9ed;
    border-left:5px solid #168447;
    border-radius:13px;
    background:#fafcfa;
}

.daily-message-comment.is-pending{
    border-left-color:#db8100;
    background:#fff8eb;
}

.daily-message-comment > div{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
}

.daily-message-comment > div strong{
    color:#243244;
}

.daily-message-comment time{
    color:var(--muted);
    font-size:12px;
}

.daily-message-comment p{
    margin:7px 0 0;
    line-height:1.45;
    overflow-wrap:anywhere;
}

.daily-message-pending-note{
    display:block;
    margin-top:8px;
    color:#9b5900;
    font-size:12px;
    font-weight:800;
}

.daily-message-empty-comments,
.daily-message-login-note{
    color:var(--muted);
    text-align:center;
}

.daily-message-comment-form{
    display:grid;
    gap:8px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #e7e9ed;
}

.daily-message-comment-form label{
    color:#243244;
    font-weight:900;
}

.daily-message-comment-form textarea{
    width:100%;
    min-height:92px;
    resize:vertical;
}

.daily-message-comment-help{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    color:var(--muted);
}

.daily-message-comment-help span{
    flex:0 0 auto;
    font-weight:900;
}

.daily-message-comment-form button{
    min-height:50px;
}

.daily-message-login-btn{
    display:block;
    text-align:center;
}

/* Moderazione commenti del Messaggio del giorno */
.message-comments-admin,
.message-filter-admin{
    padding:0;
    overflow:hidden;
}

.message-comments-admin-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 22px;
    cursor:pointer;
    list-style:none;
}

.message-comments-admin-summary::-webkit-details-marker{
    display:none;
}

.message-comments-admin-summary > span{
    display:grid;
    gap:4px;
}

.message-comments-admin-summary > span strong{
    color:#0b5793;
    font-size:24px;
}

.message-comments-admin-summary > span small{
    color:#607187;
    font-size:15px;
}

.message-comments-admin-summary > em{
    flex:0 0 auto;
    padding:8px 12px;
    border-radius:999px;
    background:#e9f2fa;
    color:#0b5793;
    font-style:normal;
    font-weight:900;
}

.message-comments-pending-count.has-pending{
    background:#fff0d5;
    color:#a85d00;
}

.message-comments-admin-body{
    padding:20px 22px 24px;
    border-top:1px solid #dce8f2;
    background:#f8fbfe;
}

.message-comments-filter{
    display:grid;
    grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) auto auto;
    align-items:end;
    gap:12px;
    margin-bottom:20px;
}

.message-comments-filter label,
.message-filter-add-form label{
    display:grid;
    gap:6px;
    font-weight:900;
}

.message-comments-filter .btn{
    text-align:center;
}

.message-comments-admin-list{
    display:grid;
    gap:14px;
}

.message-comment-admin-card{
    padding:18px;
    border:2px solid #cfe5d8;
    border-left:8px solid #168447;
    border-radius:18px;
    background:#fff;
}

.message-comment-admin-card.is-pending{
    border-color:#f3d59c;
    border-left-color:#db8100;
    background:#fffbf3;
}

.message-comment-admin-card.is-rejected{
    border-color:#edc8cf;
    border-left-color:#bd1735;
    background:#fff8f9;
}

.message-comment-admin-meta{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
}

.message-comment-admin-meta > span{
    display:grid;
    gap:3px;
}

.message-comment-admin-meta strong{
    color:#18273a;
    font-size:20px;
}

.message-comment-admin-meta small{
    color:#65758a;
}

.message-comment-admin-meta em{
    padding:7px 11px;
    border-radius:999px;
    background:#168447;
    color:#fff;
    font-style:normal;
    font-weight:900;
}

.message-comment-admin-card.is-pending .message-comment-admin-meta em{background:#db8100;}
.message-comment-admin-card.is-rejected .message-comment-admin-meta em{background:#bd1735;}

.message-comment-admin-message{
    margin:13px 0 8px;
    color:#5c6d80;
}

.message-comment-admin-message small{
    font-weight:900;
}

.message-comment-admin-card blockquote{
    margin:10px 0;
    padding:14px 16px;
    border-left:5px solid #0b78c5;
    border-radius:0 12px 12px 0;
    background:#edf7ff;
    color:#18273a;
    font-size:18px;
    font-weight:700;
    line-height:1.45;
}

.message-comment-admin-reason{
    color:#7b4b00;
}

.message-comment-admin-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
}

.message-comment-admin-actions form{
    margin:0;
}

.message-comment-approve{
    background:#168447;
}

.message-comment-block-form{
    display:flex;
    align-items:center;
    gap:8px;
}

.message-comment-block-form select{
    min-width:120px;
}

.message-filter-explanation{
    margin-bottom:18px;
    padding:15px;
    border-left:6px solid #0b78c5;
    border-radius:12px;
    background:#eaf6ff;
}

.message-filter-explanation p{
    margin:5px 0 0;
}

.message-filter-add-form{
    display:grid;
    grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) auto;
    align-items:end;
    gap:12px;
}

.message-filter-word-list{
    display:grid;
    gap:9px;
}

.message-filter-word-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    border:1px solid #dce5ee;
    border-radius:13px;
    background:#fff;
}

.message-filter-word-row.is-disabled{
    opacity:.55;
}

.message-filter-word-row > span{
    display:grid;
    gap:3px;
}

.message-filter-word-row small{
    color:#65758a;
}

.message-filter-word-row form{
    margin:0;
}

@media (max-width:760px){
    .daily-message-community-heading{
        align-items:flex-start;
    }
    .daily-message-reactions{
        grid-template-columns:1fr;
    }
    .daily-message-reaction-btn{
        min-height:52px;
    }
    .daily-message-comment > div{
        align-items:flex-start;
        flex-direction:column;
        gap:2px;
    }
    .daily-message-comment-help{
        flex-direction:column;
        gap:5px;
    }
    .message-comments-admin-summary{
        align-items:flex-start;
        flex-direction:column;
    }
    .message-comments-admin-summary > em{
        align-self:stretch;
        text-align:center;
    }
    .message-comments-filter,
    .message-filter-add-form{
        grid-template-columns:1fr;
    }
    .message-comment-admin-meta,
    .message-filter-word-row{
        align-items:flex-start;
        flex-direction:column;
    }
    .message-comment-admin-actions,
    .message-comment-admin-actions form,
    .message-comment-admin-actions .btn,
    .message-comment-block-form,
    .message-comment-block-form select,
    .message-filter-word-row form,
    .message-filter-word-row .btn{
        width:100%;
    }
    .message-comment-block-form{
        flex-direction:column;
    }
}

.manual-intro-card .btn{
    margin-top:8px;
}

.manual-index-card{
    margin-top:14px;
}

.manual-index-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.manual-index-list a{
    display:block;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    color:var(--red-dark);
    background:#fff;
    text-decoration:none;
    font-weight:800;
}

.manual-page{
    margin-top:14px;
}

.manual-section{
    padding:18px;
    margin-bottom:14px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(0,0,0,.05);
}

.manual-section h2{
    margin:0 0 12px;
    color:var(--red-dark);
    font-size:22px;
}

.manual-section h3{
    margin:16px 0 6px;
    color:var(--text);
    font-size:17px;
}

.manual-section p,
.manual-section li{
    color:var(--text);
    line-height:1.5;
}

.manual-section ul,
.manual-section ol{
    padding-left:20px;
}

.manual-section code{
    padding:2px 5px;
    border-radius:6px;
    background:#f2f2f4;
    color:#333;
    font-size:.94em;
}

.home-rionali{
    margin-top:18px;
}

.rionali-mini-list{
    display:grid;
    gap:8px;
}

.rionale-mini-row{
    display:grid;
    grid-template-columns:minmax(0,190px) minmax(0,1fr);
    gap:12px;
    align-items:start;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 22px rgba(0,0,0,.045);
}

.rionale-mini-row strong,
.rionale-mini-row small,
.rionale-mini-row span{
    display:block;
}

.rionale-mini-row small,
.rionale-mini-row span{
    color:var(--muted);
    font-size:13px;
    line-height:1.35;
}

.home-alert-bell{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--red);
    color:#fff;
    font-size:22px;
    flex:0 0 auto;
    animation:alertPulse 1.2s ease-in-out infinite;
}

@keyframes alertPulse{
    0%,100%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(176,0,32,.28);
    }
    50%{
        transform:scale(1.08);
        box-shadow:0 0 0 8px rgba(176,0,32,0);
    }
}

.riga-annullata{
    opacity:.55;
    text-decoration:line-through;
}

.badge-annullato{
    display:inline-block;
    padding:6px 8px;
    border-radius:999px;
    background:var(--red-soft);
    color:var(--red);
    font-size:12px;
    font-weight:bold;
}

.porta-row{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:10px;
    align-items:center;
    margin-bottom:12px;
}

.porta-row .check-item{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    padding:10px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
}

.porta-row .check-item input{
    width:auto;
    margin:0;
}

.porta-row input[type="text"]{
    margin-top:0;
}

body.app-standalone .install-app,
.install-app.hidden{
    display:none !important;
}

.approval-list{
    display:grid;
    gap:12px;
    margin-top:14px;
}

.approval-card{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    padding:14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--shadow);
}

.approval-card h3{
    margin:0 0 6px;
    font-size:18px;
}

.approval-card p{
    margin:0;
    color:var(--muted);
    line-height:1.45;
}

.approval-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
}

.approval-actions form{
    margin:0;
}

.rionali-search-card h3{
    margin-top:0;
}

.rionali-result-list{
    display:grid;
    gap:8px;
    margin-top:12px;
}

.rionali-result-row{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:12px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    box-shadow:var(--shadow-soft);
}

.rionali-result-row:hover{
    border-color:#1677c8;
}

.rionali-result-avatar{
    width:46px;
    height:46px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:#eaf4ff;
    color:#0f5f9e;
    font-weight:900;
}

.rionali-result-row strong,
.rionali-result-row small{
    display:block;
}

.rionali-result-row small{
    margin-top:2px;
    color:var(--muted);
    line-height:1.35;
}

.rionali-result-row em{
    font-style:normal;
    padding:8px 12px;
    border-radius:999px;
    background:#1677c8;
    color:#fff;
    font-weight:900;
    font-size:13px;
}

.search-row{
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:8px;
    align-items:center;
}

.search-row input[type="search"]{
    margin:0;
}

.rionali-mobile-list{
    display:grid;
    gap:14px;
}

.rionale-edit-card{
    padding:14px;
}

.rionale-edit-head{
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:flex-start;
    margin-bottom:12px;
}

.rionale-edit-head h3{
    margin:0 0 4px;
}

.rionale-edit-head p{
    margin:0;
    color:var(--muted);
}

.rionale-vertical-form label{
    font-weight:700;
}

.rionale-switches{
    display:grid;
    gap:8px;
    margin:12px 0;
}

.rionale-edit-card h4{
    margin:16px 0 8px;
}

.vertical-permissions{
    display:grid;
    gap:8px;
    margin-bottom:14px;
}

.vertical-permission-row{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    cursor:pointer;
}

.vertical-permission-row input{
    width:auto;
    margin:0;
    flex:0 0 auto;
}

.vertical-permission-row span{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.vertical-permission-row small{
    color:var(--muted);
    font-weight:400;
}

.sticky-actions{
    position:sticky;
    bottom:0;
    z-index:20;
    margin:16px 0 0;
    padding:12px 0;
    background:linear-gradient(180deg, rgba(245,245,247,0), var(--bg) 24%);
}

.sticky-actions button{
    width:100%;
}

.compact-adhesion-list{
    display:grid;
    gap:6px;
}

.adhesion-bulk-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:10px 0 12px;
}

.adhesion-bulk-actions button{
    min-height:42px;
}

.compact-adhesion-row{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) auto 34px;
    align-items:center;
    gap:8px;
    padding:7px 8px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}

.compact-adhesion-row input{
    width:22px;
    height:22px;
    margin:0;
    justify-self:end;
}

.adhesion-name{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:1px;
    line-height:1.1;
}

.adhesion-name strong,
.adhesion-name small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.adhesion-name small,
.adhesion-phone{
    color:var(--muted);
    font-size:12px;
}

.adhesion-phone{
    white-space:nowrap;
    font-weight:700;
}

.rionale-account-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding-top:12px;
    margin-top:12px;
    border-top:1px solid var(--line);
}

.rionale-account-actions form{
    margin:0;
}

@media(max-width:620px){
    .merchandising-stats-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .product-admin-focus{
        grid-template-columns:112px 1fr;
        gap:12px;
    }

    .product-admin-focus-img{
        width:112px;
        height:112px;
    }

    .product-admin-focus strong{
        font-size:19px;
    }

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

    .product-quick-row{
        grid-template-columns:54px minmax(0,1fr) auto;
        gap:9px;
    }

    .product-quick-thumb{
        width:54px;
        height:50px;
    }

    .product-quick-state{
        display:none;
    }

    .product-quick-actions{
        grid-column:1 / -1;
        justify-content:stretch;
    }

    .product-quick-actions .btn-mini{
        flex:1;
    }

    .product-quick-stock{
        padding:7px 8px;
        font-size:12px;
    }

    .product-admin-actions{
        gap:9px;
    }

    .product-admin-tab{
        min-height:64px;
        padding:12px 8px;
        font-size:16px;
    }

    .quick-sale-confirm dl{
        grid-template-columns:1fr;
        gap:3px;
    }

    .manual-index-list{
        grid-template-columns:1fr;
    }

    .rionale-mini-row{
        grid-template-columns:1fr;
        gap:6px;
    }

    .storia-row{
        grid-template-columns:1fr;
    }

    .storia-thumb{
        width:100%;
        height:180px;
    }

    .compact-form-grid{
        grid-template-columns:1fr;
    }

    .approval-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .approval-actions{
        justify-content:flex-start;
        width:100%;
    }

    .search-row{
        grid-template-columns:1fr;
    }

    .search-row .btn{
        width:100%;
        text-align:center;
    }

    .info-menu{
        grid-template-columns:1fr;
    }

    .rionale-edit-head{
        flex-direction:column;
    }

    .rionali-result-row{
        grid-template-columns:42px minmax(0,1fr);
    }

    .rionali-result-row em{
        grid-column:1 / -1;
        text-align:center;
    }

    .book-cover{
        grid-template-columns:1fr;
        padding:16px;
    }

    .book-list-card{
        grid-template-columns:84px 1fr;
    }

    .book-list-card img{
        width:84px;
        height:112px;
    }

    .book-cover img{
        max-height:62vh;
        object-fit:contain;
    }

    .book-actions .book-primary-btn,
    .book-actions .book-soft-btn{
        flex:1 1 140px;
    }

    .book-admin-page,
    .book-audio-form{
        grid-template-columns:1fr;
    }

.book-admin-preview img{
    max-height:220px;
}

.danger-zone{
    border:2px solid #b00020;
    background:#fff7f8;
}

.danger-zone h2{
    color:#8b0018;
}

.danger-zone p{
    color:#4b5563;
}

.danger-confirm{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:12px 0;
    font-weight:700;
}

.danger-confirm input{
    width:auto;
    margin-top:3px;
}

.btn-danger{
    background:#8b0018;
    color:#fff;
    border:0;
    border-radius:12px;
    padding:13px 18px;
    font-weight:800;
    cursor:pointer;
}

.btn-danger:hover{
    background:#650012;
}

.db-table-card summary{
    cursor:pointer;
    font-size:20px;
    font-weight:800;
    color:var(--primary);
}

.db-scroll{
    max-height:420px;
}

.merch-search{
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:10px;
    align-items:end;
}

.merch-public-list{
    display:grid;
    gap:12px;
}

.merch-public-item{
    display:grid;
    grid-template-columns:132px 1fr;
    gap:14px;
    align-items:center;
    margin:0;
    padding:14px;
}

.merch-public-thumb{
    width:132px;
    height:132px;
    border-radius:14px;
    object-fit:cover;
    background:#f3f4f6;
    border:1px solid var(--border);
}

.merch-gallery-link{
    display:block;
    width:100%;
    height:100%;
    color:inherit;
    text-decoration:none;
}

.merch-public-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--primary);
    font-weight:800;
}

.merch-public-main{
    min-width:0;
}

.merch-public-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}

.merch-public-title-row h3{
    margin:0;
    font-size:20px;
}

.merch-public-price{
    flex:0 0 auto;
    color:var(--primary);
    font-size:19px;
    white-space:nowrap;
}

.merch-public-desc{
    margin:7px 0;
    color:#374151;
    line-height:1.35;
}

.merch-public-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:8px 0;
}

.merch-public-meta span{
    border:1px solid var(--border);
    border-radius:999px;
    padding:5px 9px;
    color:#4b5563;
    background:#fff;
    font-size:13px;
    font-weight:700;
}

.merch-public-actions{
    margin-top:10px;
}

.merch-public-actions .btn{
    min-width:120px;
    text-align:center;
}

.merch-gallery{
    position:relative;
    width:132px;
    height:132px;
    overflow:hidden;
    border-radius:14px;
}

.merch-gallery .merch-gallery-img{
    position:absolute;
    inset:0;
    display:none;
    opacity:1;
    pointer-events:none;
    transition:opacity .18s ease;
}

.merch-gallery .merch-gallery-img.is-active{
    display:block;
    opacity:1;
    pointer-events:auto;
}

.merch-gallery-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:30px;
    height:30px;
    border-radius:999px;
    border:0;
    background:rgba(0,0,0,.62);
    color:#fff;
    font-size:24px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    z-index:2;
}

.merch-gallery-prev{
    left:6px;
}

.merch-gallery-next{
    right:6px;
}

.merch-gallery-count{
    position:absolute;
    right:7px;
    bottom:7px;
    z-index:2;
    background:rgba(0,0,0,.66);
    color:#fff;
    border-radius:999px;
    padding:3px 7px;
    font-size:12px;
    font-weight:800;
}

.order-product-gallery{
    width:100%;
    max-width:680px;
    height:auto;
    aspect-ratio:3/4;
    margin:0 auto 22px;
    border:1px solid var(--border);
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.10);
}

.order-product-gallery .merch-public-thumb{
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    object-fit:contain;
    background:#fff;
    border:0;
}

.product-img{
    display:block;
    width:100%;
    max-width:680px;
    max-height:760px;
    object-fit:contain;
    margin:0 auto 16px;
    border-radius:14px;
    background:#fff;
}

.product-gallery-admin{
    border:1px solid var(--border);
    border-radius:14px;
    padding:12px;
    margin:14px 0;
    background:#fff;
}

.product-gallery-admin h4{
    margin:0 0 4px;
}

.product-gallery-admin-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(96px,96px));
    gap:10px;
    align-items:start;
}

.product-gallery-admin-item{
    border:1px solid var(--border);
    border-radius:12px;
    padding:8px;
    background:#f9fafb;
    width:96px;
    max-width:96px;
    overflow:hidden;
}

.product-gallery-admin-item img{
    width:80px;
    height:80px;
    max-width:80px;
    max-height:80px;
    aspect-ratio:1;
    object-fit:cover;
    border-radius:10px;
    display:block;
    margin-bottom:6px;
}

.product-gallery-admin-item button{
    width:100%;
    padding:8px;
    border-radius:9px;
    font-size:12px;
    line-height:1.1;
}
}

@media(max-width:480px){
    .container{
        padding:12px;
    }

    .user-bar{
        gap:7px;
        padding:8px;
        border-radius:16px;
    }

    .user-info{
        flex:1 1 auto;
        min-width:74px;
    }

    .user-info span{
        font-size:11px;
    }

    .user-info strong{
        font-size:15px;
    }

    .user-icon-action{
        width:36px;
        height:36px;
    }

    .user-avatar{
        width:48px;
        height:48px;
        font-size:18px;
    }

    .user-action{
        padding:8px 10px;
        font-size:12px;
    }

    .profile-photo-panel{
        grid-template-columns:64px 1fr;
        gap:10px;
    }

    .profile-photo-preview{
        width:64px;
        height:64px;
        border-radius:18px;
        font-size:26px;
    }

    .product-info-grid{
        grid-template-columns:1fr;
    }

    .porta-row{
        grid-template-columns:1fr;
        gap:6px;
    }

    .tower-game .game-scorebar{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

.merch-search{
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:10px;
    align-items:end;
}

.merch-public-list{
    display:grid;
    gap:12px;
}

.merch-public-item{
    display:grid;
    grid-template-columns:132px 1fr;
    gap:14px;
    align-items:center;
    margin:0;
    padding:14px;
}

.merch-public-thumb{
    width:132px;
    height:132px;
    border-radius:14px;
    object-fit:cover;
    background:#f3f4f6;
    border:1px solid var(--border);
}

.merch-public-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--primary);
    font-weight:800;
}

.merch-public-main{
    min-width:0;
}

.merch-public-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}

.merch-public-title-row h3{
    margin:0;
    font-size:20px;
}

.merch-public-price{
    flex:0 0 auto;
    color:var(--primary);
    font-size:19px;
    white-space:nowrap;
}

.merch-public-desc{
    margin:7px 0;
    color:#374151;
    line-height:1.35;
}

.merch-public-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:8px 0;
}

.merch-public-meta span{
    border:1px solid var(--border);
    border-radius:999px;
    padding:5px 9px;
    color:#4b5563;
    background:#fff;
    font-size:13px;
    font-weight:700;
}

.merch-public-actions{
    margin-top:10px;
}

.merch-public-actions .btn{
    min-width:120px;
    text-align:center;
}

@media(max-width:768px){
    .merch-search{
        grid-template-columns:1fr;
    }

    .merch-public-item{
        grid-template-columns:106px 1fr;
        gap:10px;
        padding:12px;
    }

    .merch-public-thumb{
        width:106px;
        height:106px;
    }

    .merch-gallery{
        width:106px;
        height:106px;
    }

    .merch-public-title-row{
        display:block;
    }

    .merch-public-title-row h3{
        font-size:17px;
        margin-bottom:4px;
    }

    .merch-public-price{
        font-size:17px;
    }

    .merch-public-desc{
        font-size:14px;
    }
}

@media(max-width:480px){
    .merch-public-item{
        grid-template-columns:92px 1fr;
    }

    .merch-public-thumb{
        width:92px;
        height:92px;
    }

    .merch-gallery{
        width:92px;
        height:92px;
    }

}

.merch-public-item .merch-gallery,
.order-product-gallery{
    display:block !important;
    position:relative !important;
    overflow:hidden !important;
    flex:0 0 auto;
}

.merch-public-item .merch-gallery > img.merch-gallery-img,
.order-product-gallery > img.merch-gallery-img{
    position:absolute !important;
    inset:0 !important;
    display:none !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    opacity:1 !important;
    pointer-events:none !important;
    object-fit:cover !important;
}

.merch-public-item .merch-gallery > img.merch-gallery-img.is-active,
.order-product-gallery > img.merch-gallery-img.is-active{
    display:block !important;
    opacity:1 !important;
    pointer-events:auto !important;
}

.order-product-gallery > img.merch-gallery-img{
    object-fit:contain !important;
}

.merch-public-item .merch-gallery > button.merch-gallery-btn,
.order-product-gallery > button.merch-gallery-btn{
    position:absolute !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    padding:0 !important;
    border-radius:999px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    z-index:3 !important;
}

.merch-public-item .merch-gallery > button.merch-gallery-prev,
.order-product-gallery > button.merch-gallery-prev{
    left:6px !important;
}

.merch-public-item .merch-gallery > button.merch-gallery-next,
.order-product-gallery > button.merch-gallery-next{
    right:6px !important;
}

.merch-public-item .merch-gallery > .merch-gallery-count,
.order-product-gallery > .merch-gallery-count{
    position:absolute !important;
    right:7px !important;
    bottom:7px !important;
    z-index:3 !important;
}

.merch-public-item .merch-gallery > img.merch-gallery-main,
.order-product-gallery > img.merch-gallery-main{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    opacity:1 !important;
    pointer-events:auto !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:cover !important;
}

.order-product-gallery > img.merch-gallery-main{
    object-fit:contain !important;
}

.order-product-gallery > button.merch-gallery-btn{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    font-size:34px !important;
    background:rgba(186,0,37,.92) !important;
    box-shadow:0 8px 18px rgba(0,0,0,.20) !important;
}

.order-product-gallery > button.merch-gallery-prev{
    left:12px !important;
}

.order-product-gallery > button.merch-gallery-next{
    right:12px !important;
}

.order-product-gallery > .merch-gallery-count{
    right:12px !important;
    bottom:12px !important;
    font-size:14px !important;
    padding:5px 10px !important;
}

.order-product-gallery{
    display:block !important;
    position:relative !important;
    overflow:hidden !important;
    width:100% !important;
    max-width:680px !important;
    height:auto !important;
    aspect-ratio:3/4 !important;
    margin:0 auto 22px !important;
    border-radius:16px !important;
    background:#fff !important;
}

.order-product-gallery > img.order-gallery-main{
    display:block !important;
    position:relative !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    object-fit:contain !important;
    border:0 !important;
    background:#fff !important;
}

.torneo-table-wrap{
    max-height:560px;
    overflow:auto;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
}

.torneo-admin-table{
    min-width:760px;
    border-collapse:separate;
    border-spacing:0;
}

.torneo-admin-table th{
    position:sticky;
    top:0;
    z-index:1;
    background:#1678c8;
    color:#fff;
    padding:12px 10px;
    white-space:nowrap;
}

.torneo-admin-table td{
    vertical-align:top;
    padding:12px 10px;
    border-bottom:1px solid #e5e7eb;
}

.torneo-admin-table tbody tr:nth-child(even){
    background:#f8fafc;
}

.torneo-admin-table tbody tr:hover{
    background:#eef6ff;
}

.torneo-num{
    width:44px;
    text-align:center;
    font-weight:800;
    color:#0f5f9f;
}

.torneo-team-cell{
    min-width:180px;
}

.torneo-team-cell strong{
    display:block;
    color:#0f172a;
    font-size:16px;
    margin-bottom:5px;
}

.torneo-team-cell span{
    display:block;
    color:#4b5563;
    line-height:1.25;
}

.torneo-pay-cell{
    min-width:125px;
}

.torneo-pay-cell span,
.torneo-pay-cell strong{
    display:block;
    margin-bottom:5px;
}

.torneo-pay-method{
    color:#4b5563;
    font-weight:700;
}

.torneo-badge{
    display:inline-flex !important;
    width:max-content;
    align-items:center;
    border-radius:999px;
    padding:5px 9px;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
}

.torneo-badge-ok{
    background:#dcfce7;
    color:#047857;
    border:1px solid #86efac;
}

.torneo-badge-no{
    background:#e0f2fe;
    color:#075985;
    border:1px solid #7dd3fc;
}

.torneo-notes{
    max-width:180px;
    color:#4b5563;
}

.torneo-notes span{
    color:#9ca3af;
}

.torneo-actions{
    min-width:190px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
}

.torneo-actions .btn,
.torneo-actions .btn-small{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    width:100%;
    padding:8px 9px;
    font-size:13px;
    line-height:1.15;
    text-align:center;
}

@media(max-width:640px){
    .torneo-table-wrap{
        max-height:620px;
        border:0;
        background:transparent;
    }

    .torneo-admin-table{
        min-width:0;
        width:100%;
        border-collapse:separate;
        border-spacing:0 10px;
    }

    .torneo-admin-table thead{
        display:none;
    }

    .torneo-admin-table,
    .torneo-admin-table tbody,
    .torneo-admin-table tr,
    .torneo-admin-table td{
        display:block;
    }

    .torneo-admin-table tr{
        border:1px solid var(--border);
        border-radius:14px;
        background:#fff !important;
        padding:10px;
        box-shadow:0 8px 18px rgba(15,23,42,.06);
    }

    .torneo-admin-table td{
        border:0;
        padding:5px 0;
    }

    .torneo-num{
        width:auto;
        text-align:left;
        font-size:13px;
    }

    .torneo-num::before{
        content:"Coppia #";
    }

    .torneo-team-cell{
        min-width:0;
    }

    .torneo-pay-cell{
        min-width:0;
        display:flex;
        flex-wrap:wrap;
        align-items:center;
        gap:6px;
    }

    .torneo-pay-cell span,
    .torneo-pay-cell strong{
        margin:0;
    }

    .torneo-notes{
        max-width:none;
    }

    .torneo-actions{
        min-width:0;
        grid-template-columns:1fr 1fr;
        margin-top:8px;
    }
}

.personal-donations-wrap{
    display:grid;
    gap:12px;
    margin-bottom:16px;
}

.personal-donation-year{
    padding:14px;
}

.personal-donation-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
}

.personal-donation-head h3{
    margin:0;
    color:var(--primary);
}

.personal-donation-head a{
    font-weight:800;
    color:var(--primary);
}

.personal-donation-stats{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:10px;
}

.personal-donation-stats span{
    border:1px solid var(--line);
    border-radius:12px;
    padding:9px;
    background:#fff;
}

.personal-donation-stats small,
.personal-donation-stats strong{
    display:block;
}

.personal-donation-stats small{
    color:var(--muted);
    margin-bottom:3px;
}

.personal-donation-stats strong{
    color:var(--primary);
    font-size:18px;
}

.personal-donation-months{
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:6px;
}

.personal-donation-months .donation-month{
    min-width:0;
    padding:6px 4px;
    font-size:12px;
}

.personal-donation-payments{
    display:grid;
    gap:6px;
    margin-top:10px;
}

.personal-donation-payments div{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:8px 10px;
    border-radius:10px;
    background:#f9fafb;
}

.personal-donation-archive div{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
}

@media(max-width:480px){
    .personal-donation-months{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .personal-donation-stats{
        grid-template-columns:1fr;
    }
}

.voluntary-donation-card,
.voluntary-info-card,
.voluntary-join-card{
    border-color:#f0c3cb;
}

.voluntary-donation-card p,
.voluntary-info-card li,
.voluntary-join-card p{
    color:var(--muted);
    line-height:1.5;
}

.voluntary-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:12px;
}

.voluntary-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.voluntary-choice-grid > div{
    border:1px solid var(--line);
    border-radius:14px;
    padding:14px;
    background:#fff;
}

.donation-paypal-qr{
    display:block;
    width:min(260px,100%);
    margin:10px auto 14px;
    border-radius:16px;
    border:1px solid var(--line);
}

.voluntary-paypal-form{
    margin-top:14px;
    border-top:1px solid var(--line);
    padding-top:12px;
}

.voluntary-signal-form{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid var(--line);
}

.voluntary-signal-form h4{
    margin:0 0 8px;
    color:var(--red-dark);
}

@media(max-width:700px){
    .voluntary-choice-grid{
        grid-template-columns:1fr;
    }
}

.admin-highlight-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.admin-today-entry,
.admin-stats-entry{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:16px 18px;
    min-height:104px;
    border-radius:18px;
    background:linear-gradient(135deg,#0f6fb8,#0b4f8a);
    color:#fff;
    text-decoration:none;
    box-shadow:0 18px 38px rgba(15,111,184,.22);
}

.admin-stats-entry{
    background:linear-gradient(135deg,#2388d6,#125f9e);
}

.admin-today-entry strong,
.admin-stats-entry strong{
    display:block;
    font-size:20px;
    line-height:1.1;
}

.admin-today-entry span,
.admin-stats-entry span{
    display:block;
    max-width:520px;
    color:rgba(255,255,255,.9);
    font-size:14px;
    line-height:1.35;
    text-align:right;
}

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

.admin-stat-card{
    display:flex;
    flex-direction:column;
    gap:8px;
    min-height:118px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    color:#1f2937;
    text-decoration:none;
    box-shadow:0 14px 34px rgba(15,23,42,.07);
}

.admin-stat-card span{
    color:#1f2937;
    font-size:14px;
    font-weight:800;
    line-height:1.2;
}

.admin-stat-card strong{
    color:#1677c8;
    font-size:26px;
    line-height:1;
    font-weight:900;
}

.admin-stat-card small{
    color:var(--muted);
    font-size:12px;
    line-height:1.3;
}

.today-summary{
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px;
    margin-bottom:16px;
    border-radius:18px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 14px 34px rgba(15,23,42,.08);
}

.today-summary strong{
    display:grid;
    place-items:center;
    min-width:58px;
    height:58px;
    border-radius:18px;
    background:#1677c8;
    color:#fff;
    font-size:28px;
    font-weight:900;
}

.today-summary.has-work strong{
    background:#b00020;
}

.today-summary span{
    color:var(--primary);
    font-size:19px;
    font-weight:900;
}

.today-all-clear{
    border-color:#c8e6d3;
}

.today-all-clear h2{
    margin-top:0;
    color:#0b7a3b;
}

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

.today-card{
    padding:16px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.08);
}

.today-card.has-items{
    border-color:#c5d9ef;
}

.today-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.today-card-head h2{
    margin:0;
    color:var(--primary);
    font-size:19px;
    line-height:1.15;
}

.today-card-head strong{
    display:grid;
    place-items:center;
    min-width:42px;
    height:42px;
    padding:0 8px;
    border-radius:999px;
    background:#1677c8;
    color:#fff;
    font-size:19px;
    font-weight:900;
}

.today-card.has-items .today-card-head strong{
    background:#b00020;
}

.today-card > p{
    color:var(--muted);
    margin:8px 0 12px;
    line-height:1.45;
}

.today-list{
    display:grid;
    gap:8px;
    max-height:178px;
    overflow:auto;
    padding:0;
    margin:0 0 12px;
    list-style:none;
}

.today-list li{
    padding:10px 12px;
    border:1px solid #eef1f5;
    border-radius:12px;
    background:#f8fafc;
}

.today-list strong,
.today-list span{
    display:block;
}

.today-list strong{
    color:#111827;
    font-size:14px;
}

.today-list span{
    margin-top:2px;
    color:var(--muted);
    font-size:13px;
}

.today-empty{
    padding:10px 12px;
    border-radius:12px;
    background:#f7f8fa;
    color:var(--muted);
}

.today-open{
    width:100%;
    margin-top:auto;
    text-align:center;
}

.turno-admin-add{
    margin:14px 0 10px;
    border:1px solid #d9e8f7;
    border-radius:14px;
    background:#f7fbff;
    overflow:hidden;
}

.turno-admin-add summary{
    cursor:pointer;
    padding:12px 14px;
    color:#0f5f9e;
    font-weight:900;
    list-style:none;
}

.turno-admin-add summary::-webkit-details-marker{
    display:none;
}

.turno-admin-add summary::after{
    content:"+";
    float:right;
    font-weight:900;
}

.turno-admin-add[open] summary::after{
    content:"-";
}

.turno-add-form{
    padding:0 14px 14px;
}

.turno-add-choice{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:4px 0 12px;
}

.turno-add-choice label{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:56px;
    padding:10px 12px;
    border:1px solid #cfe2f4;
    border-radius:12px;
    background:#fff;
    color:#0b4f8a;
    font-size:16px;
    font-weight:900;
    text-align:center;
    cursor:pointer;
    transition:.15s ease;
}

.turno-add-choice label input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.turno-add-choice label span{
    display:block;
    line-height:1.15;
}

.turno-add-choice label.is-active{
    background:#1677c8;
    border-color:#1677c8;
    color:#fff;
    box-shadow:0 8px 18px rgba(22,119,200,.22);
}

.turno-person-field[hidden]{
    display:none !important;
}

.turno-add-form p{
    margin-bottom:10px;
}

.turno-full-note{
    margin:0;
    padding:0 14px 14px;
    color:var(--muted);
}

.admin-orders-list{
    display:grid;
    gap:10px;
}

.merch-admin-tabs{
    position:sticky;
    z-index:40;
    top:8px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:10px 0 16px;
    padding:9px;
    border:2px solid #b9d7f0;
    border-radius:18px;
    background:rgba(244,250,255,.96);
    box-shadow:0 10px 24px rgba(15,95,158,.14);
    backdrop-filter:blur(8px);
}

.merch-admin-tabs a{
    flex:1 1 120px;
    padding:11px 14px;
    border:1px solid #b9d7f0;
    border-radius:12px;
    color:#0b4f8a;
    background:#fff;
    font-weight:900;
    text-align:center;
    text-decoration:none;
}

.merch-admin-tabs a.is-active{
    border-color:#1677c8;
    color:#fff;
    background:#1677c8;
    box-shadow:0 6px 14px rgba(22,119,200,.24);
}

.orders-filter-card h3{
    margin:0;
    color:#0b4f8a;
    font-size:24px;
}

.orders-filter-card{
    border:2px solid #b9d7f0;
    background:linear-gradient(145deg,#fff,#eef8ff);
}

.orders-filter-help{
    margin:5px 0 14px;
    color:#475569;
    font-size:15px;
}

.merch-filter-sticky{
    position:sticky;
    z-index:30;
    top:82px;
}

.orders-filter-grid{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));
    gap:10px;
    align-items:end;
}

.orders-filter-grid label{
    min-width:0;
    color:#1e293b;
    font-weight:900;
}

.orders-filter-grid input,
.orders-filter-grid select{
    width:100%;
    min-width:0;
    margin-top:6px;
}

.orders-filter-actions{
    display:flex;
    gap:8px;
    margin-top:12px;
}

.admin-order-card{
    display:grid;
    gap:10px;
    padding:14px;
    border:3px solid #d6e5f1;
    border-left-width:12px;
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow-soft);
}

.admin-order-card.status-payment-due{
    border-color:#c8102e;
    background:#fff3f5;
    box-shadow:0 10px 24px rgba(200,16,46,.18);
}

.admin-order-card.status-delivery-due{
    border-color:#e87500;
    background:#fff8ec;
    box-shadow:0 10px 24px rgba(232,117,0,.18);
}

.admin-order-card.status-complete{
    border-color:#168447;
    background:#f1fff6;
    box-shadow:0 10px 24px rgba(22,132,71,.16);
}

.admin-order-card:hover{
    transform:translateY(-1px);
    filter:saturate(1.08);
}

.admin-order-card.is-cancelled{
    opacity:.62;
    border-color:#94a3b8;
    background:#f1f5f9;
}

.admin-order-main{
    display:grid;
    grid-template-columns:76px minmax(0,1.4fr) minmax(130px,.8fr) minmax(95px,.45fr);
    gap:12px;
    align-items:center;
    color:inherit;
    text-decoration:none;
}

.admin-order-photo,
.order-detail-photo{
    width:76px;
    height:76px;
    border-radius:14px;
    overflow:hidden;
    display:grid;
    place-items:center;
    background:#eef4fb;
    color:#1677c8;
    font-weight:900;
}

.admin-order-photo img,
.order-detail-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.admin-order-info strong,
.admin-order-client strong,
.admin-order-total strong{
    display:block;
    color:#111827;
    line-height:1.2;
}

.admin-order-info em,
.admin-order-info small,
.admin-order-client small,
.admin-order-total small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-style:normal;
    font-size:13px;
    line-height:1.25;
}

.admin-order-total{
    text-align:right;
}

.admin-order-total strong{
    color:#0f5f9e;
    font-size:18px;
}

.admin-order-statuses{
    display:flex !important;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:5px;
}

.admin-order-statuses span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 12px;
    border:2px solid transparent;
    border-radius:999px;
    color:#fff;
    font-size:13px;
    font-weight:900;
    line-height:1.15;
    letter-spacing:.01em;
    box-shadow:0 3px 8px rgba(15,23,42,.16);
}

.admin-order-statuses span::before{
    content:"";
    width:9px;
    height:9px;
    flex:0 0 9px;
    border-radius:50%;
    background:currentColor;
    box-shadow:0 0 0 3px rgba(255,255,255,.35);
}

.admin-order-statuses .is-ok{
    border-color:#0d6b38;
    color:#fff;
    background:#168447;
}

.admin-order-statuses .is-payment-due{
    border-color:#970d25;
    color:#fff;
    background:#c8102e;
}

.admin-order-statuses .is-delivery-due{
    border-color:#b95d00;
    color:#fff;
    background:#e87500;
}

.merch-status-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:112px;
    padding:8px 12px;
    border:2px solid transparent;
    border-radius:999px;
    color:#fff;
    font-size:13px;
    font-weight:950;
    line-height:1.1;
    text-align:center;
    box-shadow:0 3px 8px rgba(15,23,42,.16);
}

.merch-status-pill.is-ok{
    border-color:#0d6b38;
    background:#168447;
}

.merch-status-pill.is-payment-due{
    border-color:#970d25;
    background:#c8102e;
}

.merch-status-pill.is-delivery-due{
    border-color:#b95d00;
    background:#e87500;
}

.admin-order-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    padding-top:8px;
    border-top:1px solid #eef1f5;
}

.inline-action-form{
    display:inline-flex;
    margin:0;
}

.inline-action-form button{
    margin:0;
}

.form-honeypot{
    position:absolute !important;
    left:-10000px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}

.quick-sale-edit summary{
    cursor:pointer;
    color:#0f5f9e;
    font-weight:900;
}

.quick-sale-edit-form{
    display:grid;
    gap:7px;
    min-width:220px;
    padding:10px 0;
}

.quick-sale-edit-form input[type="text"]{
    min-width:200px;
}

.movement-filter-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:16px 0;
    padding:8px;
    border:2px solid #b9d7f0;
    border-radius:16px;
    background:#eef8ff;
}

.movement-filter-tab{
    flex:1 1 145px;
    min-height:48px;
    margin:0;
    padding:10px 14px;
    border:2px solid #1677c8;
    border-radius:12px;
    background:#fff;
    color:#0b4f8a;
    font-size:15px;
    font-weight:950;
    box-shadow:none;
}

.movement-filter-tab.is-active{
    color:#fff;
    background:#1677c8;
    box-shadow:0 6px 14px rgba(22,119,200,.25);
}

.inventory-movement-list{
    display:grid;
    gap:12px;
}

.inventory-movement-card{
    overflow:hidden;
    padding:16px;
    border:2px solid #cbd5e1;
    border-left-width:8px;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 20px rgba(15,23,42,.08);
}

.inventory-movement-card.movement-ordine{ border-left-color:#1677c8; }
.inventory-movement-card.movement-vendita{ border-left-color:#9f1239; }
.inventory-movement-card.movement-inventario{ border-left-color:#7c3aed; }
.inventory-movement-card.movement-annullamento{ border-left-color:#64748b; }

.inventory-movement-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

.inventory-movement-head time{
    color:#475569;
    font-size:14px;
    font-weight:850;
}

.movement-type-pill{
    display:inline-flex;
    align-items:center;
    min-height:36px;
    padding:7px 13px;
    border-radius:999px;
    color:#fff;
    font-size:14px;
    font-weight:950;
}

.movement-type-pill.is-ordine{ background:#1677c8; }
.movement-type-pill.is-vendita{ background:#9f1239; }
.movement-type-pill.is-inventario{ background:#7c3aed; }
.movement-type-pill.is-annullamento{ background:#64748b; }

.inventory-movement-statuses{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0 0 12px;
}

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

.inventory-movement-grid p{
    min-width:0;
    margin:0;
    padding:11px 12px;
    border:1px solid #dbe7f2;
    border-radius:12px;
    background:#f8fbff;
}

.inventory-movement-grid span,
.inventory-movement-grid strong{
    display:block;
}

.inventory-movement-grid span{
    margin-bottom:3px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
    text-transform:uppercase;
}

.inventory-movement-grid strong{
    overflow-wrap:anywhere;
    color:#172033;
    font-size:16px;
    line-height:1.2;
}

.inventory-movement-note{
    margin-top:10px;
    padding:11px 13px;
    border-radius:12px;
    background:#fff7df;
    color:#593a00;
    font-weight:750;
    line-height:1.35;
}

.inventory-movement-admin{
    margin-top:9px;
    color:#64748b;
    font-size:13px;
}

.inventory-movement-card[hidden]{
    display:none !important;
}

.sales-view-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:18px 0 12px;
    padding:9px;
    border:2px solid #b9d7f0;
    border-radius:18px;
    background:#eef8ff;
}

.merch-collapsible-filters{
    padding:0;
    overflow:hidden;
    border:2px solid #b9d7f0;
    background:#f7fbff;
}

.merch-collapsible-filters summary{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:68px;
    padding:14px 58px 14px 18px;
    color:#0b4f8a;
    cursor:pointer;
    list-style:none;
}

.merch-collapsible-filters summary::-webkit-details-marker{
    display:none;
}

.merch-collapsible-filters summary::after{
    content:"+";
    position:absolute;
    right:18px;
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:999px;
    background:#1677c8;
    color:#fff;
    font-size:24px;
    font-weight:900;
}

.merch-collapsible-filters[open] summary::after{
    content:"−";
}

.merch-collapsible-filters summary span{
    font-size:20px;
    font-weight:950;
}

.merch-collapsible-filters summary small{
    color:#64748b;
    font-size:13px;
    font-weight:750;
    text-align:right;
}

.merch-collapsible-filters form{
    margin:0;
    padding:16px 18px 18px;
    border-top:1px solid #cfe2f4;
    background:#fff;
}

.merch-collapsible-stats .stats-grid{
    margin:0;
    padding:16px 18px 18px;
    border-top:1px solid #cfe2f4;
    background:#f3f7fb;
}

.merch-collapsible-stats .stat-card{
    margin:0;
}

.orders-summary-content{
    padding:16px 18px 18px;
    border-top:1px solid #cfe2f4;
    background:#fff;
}

.orders-summary-content p{
    margin:0 0 14px;
}

.orders-summary-content p:last-child{
    margin-bottom:0;
}

.orders-filters-collapsible[open]{
    overflow:visible;
}

.orders-filters-collapsible form{
    border-radius:0 0 18px 18px;
}

.merch-collapsible-danger{
    border-color:#e4a9b3;
    background:#fff7f8;
}

.merch-collapsible-danger summary{
    color:#8b0018;
}

.merch-collapsible-danger summary::after{
    background:#a20b25;
}

.merch-collapsible-danger summary small{
    color:#76545a;
}

.merch-danger-intro{
    padding:16px 18px 0;
    border-top:1px solid #efcbd1;
    background:#fff;
}

.merch-danger-intro p{
    margin:0;
    color:#4b5563;
}

.merch-collapsible-danger form{
    border-top:0;
}

.sales-view-tab{
    min-height:64px;
    margin:0;
    padding:12px 16px;
    border:2px solid #1677c8;
    border-radius:14px;
    background:#fff;
    color:#0b4f8a;
    font-size:18px;
    font-weight:950;
    box-shadow:none;
}

.sales-view-tab span{
    display:inline-grid;
    place-items:center;
    min-width:30px;
    min-height:30px;
    margin-left:6px;
    padding:0 7px;
    border-radius:999px;
    background:#dceeff;
    color:#0b4f8a;
    font-size:14px;
}

.sales-view-tab.is-active{
    border-color:#1677c8;
    background:#1677c8;
    color:#fff;
    box-shadow:0 7px 16px rgba(22,119,200,.28);
}

.sales-view-tab.is-active span{
    background:#fff;
    color:#0b4f8a;
}

.sales-view-section[hidden]{
    display:none !important;
}

.sales-entry-list{
    display:grid;
    gap:12px;
}

.sales-entry-card{
    padding:16px;
    border:2px solid #cbd5e1;
    border-left:8px solid #1677c8;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 20px rgba(15,23,42,.08);
}

.sales-entry-card.is-quick-sale{
    border-left-color:#9f1239;
}

.sales-entry-card.is-cancelled{
    border-left-color:#64748b;
    background:#f8fafc;
}

.sales-entry-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

.sales-entry-head time{
    color:#475569;
    font-size:14px;
    font-weight:850;
}

.sales-entry-grid{
    display:grid;
    grid-template-columns:2fr repeat(3,minmax(100px,1fr));
    gap:8px;
}

.sales-entry-grid p{
    min-width:0;
    margin:0;
    padding:11px 12px;
    border:1px solid #dbe7f2;
    border-radius:12px;
    background:#f8fbff;
}

.sales-entry-grid span,
.sales-entry-grid strong{
    display:block;
}

.sales-entry-grid span{
    margin-bottom:3px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
    text-transform:uppercase;
}

.sales-entry-grid strong{
    overflow-wrap:anywhere;
    color:#172033;
    font-size:16px;
    line-height:1.2;
}

.sales-entry-customer{
    margin-top:10px;
    padding:11px 13px;
    border-radius:12px;
    background:#eef8ff;
    color:#0b4f8a;
}

.sales-entry-admin{
    margin-top:8px;
    color:#64748b;
    font-size:13px;
}

.sales-entry-action{
    display:block;
    margin-top:10px;
    text-align:center;
}

.sales-entry-edit{
    margin-top:12px;
    padding:12px;
    border:2px solid #b9d7f0;
    border-radius:14px;
    background:#f8fbff;
}

.sales-entry-edit summary{
    min-height:34px;
    line-height:34px;
}

@media(max-width:760px){
    .movement-filter-tab{
        flex:1 1 calc(50% - 8px);
        min-height:46px;
        padding:9px 8px;
        font-size:14px;
    }

    .inventory-movement-card{
        padding:13px;
    }

    .inventory-movement-head{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

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

    .inventory-movement-statuses .merch-status-pill{
        flex:1 1 calc(50% - 7px);
    }

    .sales-view-tab{
        min-height:56px;
        padding:10px 8px;
        font-size:15px;
    }

    .merch-collapsible-filters summary{
        align-items:flex-start;
        flex-direction:column;
        min-height:64px;
        padding-right:58px;
    }

    .merch-collapsible-filters summary small{
        text-align:left;
    }

    .sales-entry-card{
        padding:13px;
    }

    .sales-entry-head{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

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

@media(max-width:430px){
    .inventory-movement-grid{
        grid-template-columns:1fr;
    }

    .sales-view-tabs,
    .sales-entry-grid{
        grid-template-columns:1fr;
    }
}

.product-quick-stock.is-low{
    color:#8a3f00;
    background:#ffedd5;
    border:2px solid #f97316;
    font-weight:950;
}

.product-quick-stock.is-ok{
    color:#08703a;
    background:#dcfce7;
    border:2px solid #22c55e;
    font-weight:900;
}

.product-quick-stock.is-empty{
    color:#fff;
    background:#b00020;
    border:2px solid #7f0017;
    font-weight:950;
}

.order-detail-products{
    display:grid;
    gap:10px;
}

.order-detail-product-card{
    overflow:hidden;
    border:2px solid #b9d7f0;
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 18px rgba(15,95,158,.09);
}

.order-detail-product{
    display:grid;
    grid-template-columns:84px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:12px;
}

.order-detail-photo{
    width:84px;
    height:84px;
}

.order-detail-product strong,
.order-detail-product small{
    display:block;
}

.order-detail-product small{
    margin-top:3px;
    color:var(--muted);
}

.order-detail-money{
    text-align:right;
}

.order-detail-money strong{
    color:#0f5f9e;
    font-size:18px;
}

.order-item-state{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:10px 12px;
    border-top:1px solid #e5edf4;
    background:#f8fbfe;
}

.order-item-status-form{
    display:grid;
    grid-template-columns:minmax(130px,.7fr) minmax(150px,1fr) minmax(150px,.9fr) auto;
    align-items:end;
    gap:10px;
    padding:12px;
    border-top:1px solid #e5e7eb;
    background:#edf7ff;
}

.order-item-status-form label{
    margin:0;
}

.order-item-status-form .order-status-check{
    min-height:48px;
    margin:0;
    padding:10px;
    background:#fff;
}

.order-item-status-form .btn{
    min-height:48px;
    margin:0;
}

.order-readable-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr));
    gap:10px;
}

.order-readable-grid p{
    min-width:0;
    margin:0;
    padding:12px;
    border:1px solid #d6e5f1;
    border-radius:14px;
    background:#f8fbfe;
}

.order-readable-grid span,
.order-readable-grid strong{
    display:block;
}

.order-readable-grid span{
    margin-bottom:4px;
    color:#64748b;
    font-size:12px;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
}

.order-readable-grid strong{
    overflow-wrap:anywhere;
    color:#172033;
    font-size:17px;
}

.order-summary-grid{
    grid-template-columns:repeat(3,minmax(160px,1fr));
}

.order-state-ok{
    color:#047857 !important;
}

.order-state-wait{
    color:#b45309 !important;
}

.order-status-form{
    display:grid;
    gap:12px;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #eef1f5;
}

.order-status-check{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#f8fafc;
    font-weight:900;
}

.order-status-check input{
    width:22px;
    height:22px;
}

@media(max-width:760px){
    .merch-admin-tabs{
        position:static;
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .merch-admin-tabs a{
        min-width:0;
    }

    .merch-filter-sticky{
        position:static;
    }

    .admin-highlight-row,
    .admin-stats-grid{
        grid-template-columns:1fr;
    }

    .admin-today-entry{
        align-items:flex-start;
        flex-direction:column;
    }

    .admin-stats-entry{
        align-items:flex-start;
        flex-direction:column;
    }

    .admin-today-entry span,
    .admin-stats-entry span{
        max-width:none;
        text-align:left;
    }

    .today-grid{
        grid-template-columns:1fr;
    }

    .turno-add-choice{
        grid-template-columns:1fr;
    }

    .turno-card{
        border-left-width:5px;
    }

    .turno-meta-public{
        font-size:17px;
        width:100%;
    }

    .turno-note-public{
        font-size:18px;
    }

    .admin-order-main{
        grid-template-columns:72px minmax(0,1fr);
    }

    .orders-filter-grid{
        grid-template-columns:1fr;
    }

    .order-readable-grid,
    .order-summary-grid{
        grid-template-columns:1fr;
    }

    .orders-filter-actions{
        flex-direction:column;
    }

    .orders-filter-actions .btn{
        width:100%;
        text-align:center;
    }

    .admin-order-client,
    .admin-order-total{
        grid-column:1 / -1;
        text-align:left;
    }

    .admin-order-statuses{
        justify-content:flex-start;
    }

    .admin-order-actions{
        justify-content:stretch;
    }

    .admin-order-actions .btn,
    .admin-order-actions .badge-annullato{
        flex:1;
        text-align:center;
    }

    .order-detail-product{
        grid-template-columns:78px minmax(0,1fr);
    }

    .order-detail-money{
        grid-column:1 / -1;
        text-align:left;
        padding-top:8px;
        border-top:1px solid #eef1f5;
    }

    .order-item-status-form{
        grid-template-columns:1fr;
    }

    .order-item-status-form .btn{
        width:100%;
    }
}

.akinator-header{
    background:linear-gradient(135deg,#9f001f,#c9002b);
}

.akinator-angelo-box{
    display:grid;
    grid-template-columns:150px 1fr;
    align-items:center;
    gap:16px;
    margin:16px 0;
    padding:14px;
    border-radius:22px;
    background:#fff;
    border:1px solid #eadde0;
    box-shadow:0 14px 34px rgba(70,20,30,.10);
}

.akinator-angelo-box img{
    width:150px;
    height:170px;
    object-fit:cover;
    object-position:center top;
    border-radius:18px;
    background:#f7f7f8;
    display:block;
}

.akinator-angelo-box strong{
    display:block;
    color:#8a001a;
    font-size:20px;
    margin-bottom:6px;
}

.akinator-angelo-box p{
    margin:0;
    color:#344052;
    line-height:1.4;
}

.akinator-angelo-box.is-ride{
    border-color:#f0c3cb;
    background:#fff7f8;
}

.akinator-angelo-box.is-dispiaciuto{
    border-color:#d9ebfb;
    background:#f7fbff;
}

.akinator-start,
.akinator-question,
.akinator-guess{
    text-align:center;
}

.akinator-play-card .akinator-angelo-box{
    margin:0 0 14px;
    grid-template-columns:110px minmax(0,1fr);
    text-align:left;
    box-shadow:none;
}

.akinator-play-card .akinator-angelo-box img{
    width:110px;
    height:118px;
    border-radius:16px;
}

.akinator-play-card .akinator-angelo-box strong{
    font-size:18px;
}

.akinator-play-card .akinator-angelo-box p{
    font-size:15px;
}

.akinator-progress{
    color:var(--muted);
    font-weight:800;
    margin:0 0 8px;
}

.akinator-answer-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}

.akinator-answer-grid button,
.akinator-actions button{
    min-height:54px;
    border:0;
    border-radius:14px;
    background:var(--red);
    color:#fff;
    font-weight:900;
    font-size:15px;
}

.akinator-answer-grid button:nth-child(6){
    grid-column:1 / -1;
    background:#333747;
}

.akinator-person{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:16px;
    align-items:center;
    text-align:left;
    margin:18px 0;
}

.akinator-person img,
.akinator-person > span{
    width:120px;
    height:120px;
    border-radius:18px;
    object-fit:cover;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--red-soft);
    color:var(--red);
    font-weight:900;
    font-size:34px;
}

.akinator-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.akinator-learn-check{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px;
    border:1px solid #d7eadf;
    background:#f3fff7;
    border-radius:14px;
    font-weight:900;
    color:#0b6b35;
}

.akinator-learn-check input{
    width:22px;
    height:22px;
}

.akinator-learn-box{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fafbfe;
}

.akinator-learn-box h3{
    margin:0;
    color:var(--red);
}

.akinator-learn-box p{
    margin:0;
    color:var(--muted);
}

.akinator-admin-list{
    display:grid;
    gap:8px;
}

.akinator-admin-person{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:12px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:14px;
    box-shadow:var(--shadow-soft);
}

.akinator-admin-person small{
    display:block;
    color:var(--muted);
    margin-top:3px;
}

.akinator-admin-avatar{
    width:46px;
    height:46px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--red-soft);
    color:var(--red);
    font-weight:900;
}

.akinator-admin-avatar img{
    width:100%;
    height:100%;
    border-radius:14px;
    object-fit:cover;
    display:block;
}

.akinator-photo-editor{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:130px minmax(0,1fr);
    gap:16px;
    align-items:center;
    padding:14px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#f8fafc;
}

.akinator-photo-editor img,
.akinator-photo-editor > span{
    width:130px;
    height:130px;
    border-radius:18px;
    object-fit:cover;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--red-soft);
    color:var(--red);
    font-size:38px;
    font-weight:900;
}

.akinator-photo-editor small{
    display:block;
    color:var(--muted);
    margin:4px 0 10px;
}

.akinator-question-admin-list{
    display:grid;
    gap:8px;
    margin-bottom:12px;
}

.akinator-question-admin-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:10px;
    align-items:center;
    padding:12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
}

.akinator-question-admin-row small{
    display:block;
    color:var(--muted);
    margin-top:2px;
}

.akinator-question-list{
    display:grid;
    gap:10px;
}

.akinator-question-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) 118px;
    gap:12px;
    align-items:center;
    padding:14px 16px;
    background:#fff;
    border:1px solid var(--border);
    border-left:5px solid #1677c8;
    border-radius:16px;
    box-shadow:var(--shadow-soft);
}

.akinator-question-card.is-off{
    opacity:.72;
    border-left-color:#a4adba;
    background:#f8fafc;
}

.akinator-question-main strong{
    display:block;
    color:#063f73;
    font-size:18px;
    line-height:1.22;
}

.akinator-question-main small{
    display:block;
    margin-top:5px;
    color:var(--muted);
    font-size:13px;
    line-height:1.35;
}

.akinator-question-action{
    display:flex;
    justify-content:flex-end;
}

.akinator-question-action .btn-mini{
    width:100%;
    min-height:42px;
    border-radius:999px;
}

.admin-toggle-card summary{
    cursor:pointer;
    font-size:18px;
    font-weight:900;
    color:var(--red-dark);
    list-style:none;
}

.admin-toggle-card summary::-webkit-details-marker{
    display:none;
}

.admin-toggle-card summary::after{
    content:"+";
    float:right;
}

.admin-toggle-card[open] summary::after{
    content:"-";
}

.admin-action-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:12px;
}

@media(max-width:760px){
    .akinator-angelo-box{
        grid-template-columns:1fr;
        text-align:center;
    }

    .akinator-angelo-box img{
        width:min(220px, 100%);
        height:220px;
        margin:0 auto;
    }

    .akinator-angelo-box strong{
        font-size:18px;
    }

    .akinator-play-card{
        padding:14px;
    }

    .akinator-play-card .akinator-angelo-box{
        grid-template-columns:86px minmax(0,1fr);
        gap:10px;
        padding:10px;
        text-align:left;
        border-radius:18px;
    }

    .akinator-play-card .akinator-angelo-box img{
        width:86px;
        height:96px;
        margin:0;
        border-radius:14px;
    }

    .akinator-play-card .akinator-angelo-box strong{
        font-size:16px;
        margin-bottom:3px;
    }

    .akinator-play-card .akinator-angelo-box p{
        font-size:13px;
        line-height:1.28;
    }

    .akinator-question h2,
    .akinator-guess h2{
        font-size:22px;
        margin:6px 0 12px;
    }

    .akinator-progress{
        margin-bottom:4px;
    }

    .akinator-answer-grid,
    .akinator-actions,
    .admin-action-grid{
        grid-template-columns:1fr;
    }

    .akinator-person{
        grid-template-columns:1fr;
        text-align:center;
    }

    .akinator-person img,
    .akinator-person > span{
        margin:0 auto;
    }

    .akinator-admin-person{
        grid-template-columns:42px minmax(0,1fr);
    }

    .akinator-admin-person .btn-mini,
    .akinator-admin-person form{
        grid-column:1 / -1;
    }

    .akinator-question-admin-row{
        grid-template-columns:1fr;
    }

    .akinator-question-card{
        grid-template-columns:1fr;
        gap:10px;
        padding:14px;
    }

    .akinator-question-main strong{
        font-size:17px;
    }

    .akinator-question-action{
        justify-content:stretch;
    }

    .akinator-question-action .btn-mini{
        width:100%;
    }

    .akinator-photo-editor{
        grid-template-columns:1fr;
        text-align:center;
    }

    .akinator-photo-editor img,
    .akinator-photo-editor > span{
        margin:0 auto;
    }
}
.merch-mail-recipient-list{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.merch-mail-recipient-list span{
    padding:10px 14px;
    border-radius:999px;
    background:#eaf5ff;
    color:#0b4f8a;
    font-weight:800;
}
.merch-mail-form{
    display:grid;
    gap:18px;
}
.merch-mail-check{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:16px;
    border:2px solid #cbe3f7;
    border-radius:18px;
    background:#f7fbff;
}
.merch-mail-check input{
    width:26px;
    height:26px;
    flex:0 0 auto;
}
.merch-mail-check span{
    display:grid;
    gap:4px;
}
.merch-mail-check small{
    color:#52667b;
    font-weight:600;
}
.merch-mail-admin-fieldset{
    margin:0;
    padding:22px;
    border:3px solid #9bc9ee;
    border-radius:22px;
    background:linear-gradient(180deg,#f7fbff,#eef7ff);
}
.merch-mail-admin-fieldset legend{
    padding:0 12px;
    color:#0b5793;
    font-size:24px;
    font-weight:900;
}
.merch-mail-admin-toolbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px 18px;
    margin-bottom:18px;
}
.merch-mail-admin-toolbar p{
    margin:0;
    color:#52667b;
    font-size:17px;
    font-weight:700;
}
.merch-mail-admin-toolbar > strong{
    padding:8px 13px;
    border-radius:999px;
    background:#dff5e8;
    color:#08783e;
    white-space:nowrap;
}
.merch-mail-admin-toolbar > div{
    grid-column:1 / -1;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.merch-mail-admin-toolbar .btn{
    width:auto;
    min-height:42px;
}
.merch-mail-admin-list{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
}
.merch-mail-admin-choice{
    display:grid;
    grid-template-columns:30px 48px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-width:0;
    min-height:86px;
    padding:14px 16px;
    border:2px solid #d4e7f7;
    border-radius:18px;
    background:#fff;
    cursor:pointer;
    box-shadow:0 5px 14px rgba(11,79,138,.06);
}
.merch-mail-admin-choice:has(input:checked){
    border-color:#168447;
    background:#effbf4;
    box-shadow:0 0 0 4px rgba(22,132,71,.11),0 7px 17px rgba(22,132,71,.09);
}
.merch-mail-admin-choice input{
    width:29px;
    height:29px;
    flex:0 0 auto;
    accent-color:#168447;
}
.merch-mail-admin-choice .merch-mail-admin-avatar{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border-radius:999px;
    background:#dceeff;
    color:#0b5793;
    font-size:21px;
    font-weight:950;
}
.merch-mail-admin-choice:has(input:checked) .merch-mail-admin-avatar{
    background:#168447;
    color:#fff;
}
.merch-mail-admin-choice > span:last-child{
    display:grid;
    min-width:0;
    gap:3px;
}
.merch-mail-admin-choice strong,
.merch-mail-admin-choice small{
    overflow-wrap:anywhere;
}
.merch-mail-admin-choice small{
    color:#52667b;
    font-weight:700;
}
.merch-mail-actions > div{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
}
.merch-mail-actions form,
.merch-mail-actions button{
    width:100%;
}
.merch-mail-log{
    display:grid;
    gap:10px;
}
.merch-mail-log article{
    display:grid;
    gap:4px;
    padding:14px 16px;
    border-left:8px solid #168447;
    border-radius:14px;
    background:#effbf4;
}
.merch-mail-log article.is-error{
    border-left-color:#c9002b;
    background:#fff0f3;
}
.merch-mail-history > summary{
    min-height:82px;
}
.merch-mail-history-filters{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.merch-mail-history-filters label{
    margin:0;
}
.merch-mail-history-address{
    grid-column:span 2;
}
.merch-mail-history-actions{
    grid-column:span 2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:end;
    gap:12px;
}
.merch-mail-history-actions .btn{
    display:grid;
    place-items:center;
    min-height:52px;
    text-align:center;
}
.merch-mail-history-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin:0 18px 14px;
    padding:13px 16px;
    border-radius:14px;
    background:#eaf5ff;
    color:#0b4f8a;
}
.merch-mail-history .merch-mail-log,
.merch-mail-history > .muted-note{
    margin:0;
    padding:0 18px 18px;
}
.merch-mail-history-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:2px 18px 20px;
}
.merch-mail-history-pagination .btn{
    width:auto;
}
@media (max-width:700px){
    .merch-mail-actions > div{grid-template-columns:1fr;}
    .merch-mail-admin-list{grid-template-columns:1fr;}
    .merch-mail-admin-toolbar{grid-template-columns:1fr;}
    .merch-mail-admin-toolbar > div{grid-column:auto;}
    .merch-mail-admin-toolbar .btn{flex:1 1 180px;}
    .merch-mail-history-filters{grid-template-columns:1fr;}
    .merch-mail-history-address,
    .merch-mail-history-actions{grid-column:auto;}
    .merch-mail-history-actions{grid-template-columns:1fr;}
    .merch-mail-history-summary{
        align-items:flex-start;
        flex-direction:column;
    }
    .merch-mail-history-pagination{
        flex-wrap:wrap;
    }
}

/* Vendita diretta dal lato pubblico */
.direct-sale-public-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    border-left:9px solid #168447;
    background:#effbf4;
}
.direct-sale-public-link > div{
    display:grid;
    gap:5px;
}
.direct-sale-public-link strong{
    color:#0c6536;
    font-size:24px;
}
.direct-sale-public-link small{
    color:#405b4c;
    font-size:17px;
    font-weight:700;
}
.direct-sale-page{
    padding-bottom:55px;
}
.direct-sale-header{
    background:linear-gradient(135deg,#0d6fb8,#07518d);
}
.direct-sale-operator{
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    gap:4px 16px;
    border-left:9px solid #168447;
    background:#effbf4;
}
.direct-sale-operator span{
    grid-row:1 / 3;
    padding:12px 16px;
    border-radius:14px;
    background:#168447;
    color:#fff;
    font-weight:900;
}
.direct-sale-operator strong{
    color:#0c6536;
    font-size:25px;
}
.direct-sale-operator small{
    color:#405b4c;
    font-size:16px;
    font-weight:700;
}
.direct-sale-selected-product{
    display:grid;
    grid-template-columns:140px minmax(0,1fr) auto;
    align-items:center;
    gap:22px;
}
.direct-sale-selected-product img,
.direct-sale-placeholder{
    width:140px;
    height:140px;
    border:3px solid #d9ae46;
    border-radius:20px;
    background:#fff8e6;
    object-fit:contain;
}
.direct-sale-placeholder{
    display:grid;
    place-items:center;
    color:#8b660e;
    font-size:22px;
    font-weight:900;
}
.direct-sale-selected-product h2{
    margin:5px 0;
    color:#0b5793;
}
.direct-sale-selected-product strong{
    color:#168447;
    font-size:27px;
}
.direct-sale-product-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.direct-sale-product-card{
    display:grid;
    grid-template-columns:105px minmax(0,1fr);
    align-items:center;
    gap:16px;
    min-width:0;
    color:#14213d;
    text-decoration:none;
    transition:transform .15s ease,box-shadow .15s ease;
}
.direct-sale-product-card:hover,
.direct-sale-product-card:focus-visible{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(11,87,147,.2);
    outline:4px solid rgba(20,126,205,.2);
}
.direct-sale-product-card img,
.direct-sale-product-card .direct-sale-placeholder{
    width:105px;
    height:105px;
    object-fit:contain;
    border:2px solid #d9ae46;
    border-radius:16px;
    background:#fff8e6;
}
.direct-sale-product-card > span:last-child{
    display:grid;
    min-width:0;
    gap:5px;
}
.direct-sale-product-card strong{
    color:#0b5793;
    font-size:20px;
    overflow-wrap:anywhere;
}
.direct-sale-product-card small{
    color:#58697c;
    font-weight:700;
}
.direct-sale-product-card em{
    color:#168447;
    font-style:normal;
    font-weight:900;
}
.direct-sale-confirm dl{
    max-width:760px;
}
.direct-sale-modal-open{
    overflow:hidden;
}
.direct-sale-confirm-overlay{
    position:fixed;
    z-index:10000;
    inset:0;
    display:grid;
    place-items:center;
    padding:22px;
    background:rgba(7,22,38,.76);
    backdrop-filter:blur(5px);
}
.direct-sale-confirm-overlay[hidden]{
    display:none;
}
.direct-sale-confirm-modal{
    width:min(680px,100%);
    max-height:calc(100dvh - 44px);
    overflow:auto;
    padding:28px;
    border:4px solid #d9ae46;
    border-radius:26px;
    background:#fff;
    box-shadow:0 28px 80px rgba(0,0,0,.45);
}
.direct-sale-confirm-heading{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:20px;
}
.direct-sale-confirm-heading > span{
    display:grid;
    flex:0 0 60px;
    width:60px;
    height:60px;
    place-items:center;
    border-radius:50%;
    background:#168447;
    color:#fff;
    font-size:34px;
    font-weight:900;
}
.direct-sale-confirm-heading h2{
    margin:0 0 4px;
    color:#0b5793;
    font-size:30px;
}
.direct-sale-confirm-heading p{
    margin:0;
    color:#53657a;
    font-size:18px;
    font-weight:700;
}
.direct-sale-confirm-modal dl{
    max-width:none;
    margin-bottom:18px;
    padding:18px;
    border-radius:18px;
    background:#f4f8fc;
}
.direct-sale-confirm-total{
    color:#0b5793;
    font-size:24px;
}
.direct-sale-confirm-status{
    display:inline-flex;
    padding:5px 12px;
    border-radius:999px;
    color:#fff;
    font-weight:900;
}
.direct-sale-confirm-status.is-ok{background:#168447;}
.direct-sale-confirm-status.is-pending{background:#c40027;}
.direct-sale-confirm-note{
    margin:0 0 18px;
    color:#53657a;
    font-weight:700;
    text-align:center;
}
.direct-sale-confirm-actions{
    position:sticky;
    bottom:-28px;
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:12px;
    margin:0 -28px -28px;
    padding:18px 28px 28px;
    background:#fff;
    box-shadow:0 -12px 24px rgba(255,255,255,.95);
}
.direct-sale-confirm-actions button{
    min-height:62px;
    border:0;
    border-radius:16px;
    font-size:19px;
    font-weight:900;
    cursor:pointer;
}
.direct-sale-confirm-submit{
    background:#168447;
    color:#fff;
    box-shadow:0 6px 0 #0b5c30;
}
.direct-sale-confirm-submit:focus-visible{
    outline:4px solid rgba(22,132,71,.3);
    outline-offset:3px;
}
.direct-sale-confirm-cancel{
    background:#e5e9ee;
    color:#27384b;
    box-shadow:0 6px 0 #bbc4ce;
}
.direct-sale-confirm-cancel:focus-visible{
    outline:4px solid rgba(39,56,75,.22);
    outline-offset:3px;
}
@media (max-width:900px){
    .direct-sale-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
    .direct-sale-public-link{
        align-items:stretch;
        flex-direction:column;
    }
    .direct-sale-public-link .btn{text-align:center;}
    .direct-sale-selected-product{
        grid-template-columns:92px minmax(0,1fr);
        gap:14px;
    }
    .direct-sale-selected-product img,
    .direct-sale-selected-product .direct-sale-placeholder{
        width:92px;
        height:92px;
    }
    .direct-sale-selected-product .btn{
        grid-column:1 / -1;
        text-align:center;
    }
    .direct-sale-product-grid{grid-template-columns:1fr;}
    .direct-sale-operator{grid-template-columns:1fr;}
    .direct-sale-operator span{grid-row:auto;}
    .direct-sale-confirm-overlay{padding:10px;}
    .direct-sale-confirm-modal{
        max-height:calc(100dvh - 20px);
        padding:20px;
        border-radius:20px;
    }
    .direct-sale-confirm-heading{
        gap:12px;
        margin-bottom:14px;
    }
    .direct-sale-confirm-heading > span{
        flex-basis:48px;
        width:48px;
        height:48px;
        font-size:27px;
    }
    .direct-sale-confirm-heading h2{font-size:24px;}
    .direct-sale-confirm-heading p{font-size:15px;}
    .direct-sale-confirm-modal dl{
        padding:14px;
        font-size:15px;
    }
    .direct-sale-confirm-actions{
        bottom:-20px;
        grid-template-columns:1fr;
        margin:0 -20px -20px;
        padding:14px 20px 20px;
    }
    .direct-sale-confirm-actions button{
        min-height:56px;
        font-size:17px;
    }
}
