:root {
	--primary: #0071e3;
	--primary-hover: #0077ed;
	--primary-alpha: rgba(0,113,227,.08);
	--text: #1d1d1f;
	--text-hover: #ffffff;
	--text-muted: #6e6e73;
	--text-muted2: #98989d;
	--text-error: #cf1322;
	--text-success: #389e0d;
	--bg: #f5f5f7;
	--bg-card: #ffffff;
	--bg-product: #ffffff;
	--bg-hover: #fafafa;
	--bg-error: #fff2f0;
	--bg-success: #f6ffed;
	--border: #e8e8ed;
	--border-input: #d2d2d7;
	--border-error: #ffccc7;
	--border-success: #b7eb8f;
	--danger: #ff3b30;
	--danger-hover: #d63031;
	--success: #30d158;
	--whatsapp: #25d366;
	--categoria-bg: #e8e8ed;
	--bg-thead: #f5f5f7;
	--radius-xs: 6px;
	--radius-sm: 8px;
	--radius-md: 10px;
	--radius-lg: 12px;
	--radius-round: 50%;
	--fs-xs: .75rem;
	--fs-sm: .8rem;
	--fs-base: .875rem;
	--fs-md: 1rem;
	--fs-lg: 1.1rem;
	--fs-xl: 1.25rem;
	--fs-2xl: 1.5rem;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;
}

body{font-family:Montserrat,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text)}
body,.card,.product-card,.navbar,.site-header,footer,.filters select,.filters input,.form-input{transition:background-color .3s ease,color .3s ease,border-color .3s ease}
.navbar{border-bottom:1px solid var(--border)}
.navbar h1{font-size:var(--fs-xl)}
.navbar a{color:var(--text)}
.navbar .cart-link{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--primary);border-radius:var(--radius-sm)}
.navbar .cart-link:hover{background:var(--primary-alpha)}
.cart-badge{background:var(--primary);color:var(--bg-card);font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:var(--radius-md)}
.card{background:var(--bg-card);border-radius:var(--radius-lg)}
.catalogo-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold)}
.catalogo-header .subtitle{font-size:var(--fs-base);font-weight:400;color:var(--text-muted)}
.filters select,.filters input{border:1px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--fs-base);background:var(--bg-card)}
.filters select option{background:var(--bg-card);color:var(--text)}
.filters button,.btn{background:var(--primary);color:var(--bg-card);border:none;border-radius:var(--radius-sm);font-size:var(--fs-base)}
.filters button:hover,.btn:hover{color:var(--text-hover);background:var(--primary-hover)}
.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}
.btn-outline:hover{background:var(--primary);color:var(--text-hover)}
.btn-danger{background:var(--danger);color:var(--bg-card);border:1px solid var(--danger)}
.btn-danger:hover{background:var(--danger-hover)}
table{font-size:var(--fs-base);border-collapse:collapse}
thead{background:var(--bg-thead);border-radius:var(--radius-sm)}
th,td{border-bottom:1px solid var(--border)}
th{font-weight:var(--fw-semibold);color:var(--text)}
tr:hover{background:var(--bg-hover)}
.prezzo{font-variant-numeric:tabular-nums}
.thumb{border-radius:var(--radius-sm)}
.categoria-badge{background:var(--categoria-bg);border-radius:var(--radius-xs);font-size:var(--fs-xs);font-weight:var(--fw-medium)}
.dettaglio .img-col img{border-radius:var(--radius-lg)}
.dettaglio h2{font-size:var(--fs-2xl)}
.dettaglio .meta{color:var(--text-muted)}
.dettaglio dt{font-weight:var(--fw-semibold);color:var(--text-muted)}
.cart-item{border-bottom:1px solid var(--border)}
.cart-item:last-child{border-bottom:none}
.cart-item-info h3{font-size:var(--fs-md)}
.cart-item-info .meta{font-size:var(--fs-sm);color:var(--text-muted)}
.cart-qty span{font-weight:var(--fw-semibold)}
.cart-total{border-top:2px solid var(--border)}
.cart-total .total-label{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}
.cart-total .total-amount{font-size:var(--fs-2xl);font-weight:var(--fw-bold)}
.empty{color:var(--text-muted)}
.msg{background:var(--success);color:var(--bg-card);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:var(--fw-medium)}
.text-xs{font-size:var(--fs-xs)}
.text-sm{font-size:var(--fs-sm)}
.fw-500{font-weight:var(--fw-medium)}
.fw-600{font-weight:var(--fw-semibold)}
.text-muted{color:var(--text-muted)}
.text-muted2{color:var(--text-muted2)}
.text-blue{color:var(--primary)}
.inherit{color:inherit}

/* -- Nav -- */
.nav-wrap{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.navbar-inner{border:none}
.nav-home{color:var(--text-muted)}
.nav-home:hover{color:var(--primary)}
.btn-fontsize{background:none;border:1px solid var(--border-input);border-radius:var(--radius-xs);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted)}
.btn-fontsize:hover{color:var(--primary);border-color:var(--primary)}
html[data-size="small"] body{font-size:var(--fs-sm)}
html[data-size="large"] body{font-size:1.125rem}
.nav-user{font-size:var(--fs-sm);color:var(--text-muted)}
.nav-link{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text);border-radius:var(--radius-sm)}
.nav-link:hover{background:var(--primary-alpha);color:var(--primary)}
.nav-link-accedi{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--primary);border-radius:var(--radius-sm)}
.nav-link-accedi:hover{background:var(--primary-alpha)}

/* -- Form -- */
.form-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted)}
.form-input{border:1px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--fs-base)}
.form-error{background:var(--bg-error);border:1px solid var(--border-error);border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--text-error)}
.btn-block{font-size:var(--fs-md)}
.field-note{font-weight:400;color:var(--text-muted2)}
.success-msg{font-size:var(--fs-lg)}
.success-sub{color:var(--text-muted)}

/* -- Catalog -- */
.tbl-link{color:var(--primary);font-weight:var(--fw-medium)}
.tbl-link-inherit{color:inherit;font-weight:var(--fw-medium)}
.btn-outline-danger{color:var(--danger);border-color:var(--danger)}
.btn-outline-danger:hover{background:var(--danger);color:var(--bg-card)}

/* -- Floating buttons -- */
.fab{border-radius:var(--radius-round)}
.fab-whatsapp{background:var(--whatsapp)}
.fab-phone{background:var(--primary)}
.pagination-info{font-size:var(--fs-base);color:var(--text-muted)}

/* -- Header -- */
.site-header{background:var(--bg-card);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.site-logo{color:var(--text)}
.logo-icon{color:var(--primary)}
.logo-text{font-size:var(--fs-2xl);font-weight:var(--fw-bold)}
.logo-phone{color:var(--primary)}
.site-header h1{font-size:inherit;font-weight:inherit}
.site-tagline{font-size:var(--fs-base);color:var(--text-muted)}

footer{border-radius:var(--radius-lg);font-size:var(--fs-sm);color:var(--text-muted)}

/* -- Admin -- */
.admin-nav{border-radius:var(--radius-lg)}
.admin-nav .navbar{border:none}
.admin-nav-link{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-muted);border-radius:var(--radius-sm)}
.admin-nav-link:hover{background:var(--primary-alpha);color:var(--primary)}
.admin-nav-link.is-active{background:var(--primary);color:var(--bg-card)}
.admin-section-title{font-size:var(--fs-lg)}
.admin-success{background:var(--bg-success);border:1px solid var(--border-success);border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--text-success)}
.admin-error{background:var(--bg-error);border:1px solid var(--border-error);border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--text-error)}
.admin-footer{border-radius:var(--radius-lg);font-size:var(--fs-sm);color:var(--text-muted)}

@media(max-width:640px){.logo-text{font-size:var(--fs-xl)}}

@media(prefers-color-scheme:dark){
:root:not([data-theme="light"]){--bg:#1c1c1e;--bg-card:#2c2c2e;--bg-product:#2c2c2e;--bg-thead:#3a3a3c;--text:#f5f5f7;--bg-hover:#3a3a3c;--border:#3a3a3c;--border-input:#48484a;--categoria-bg:#3a3a3c;--text-muted:#98989d}
}
html[data-theme="dark"]{--bg:#1c1c1e;--bg-card:#2c2c2e;--bg-product:#2c2c2e;--bg-thead:#3a3a3c;--text:#f5f5f7;--bg-hover:#3a3a3c;--border:#3a3a3c;--border-input:#48484a;--categoria-bg:#3a3a3c;--text-muted:#98989d}

.btn-icon-sun,.btn-icon-moon{display:none;vertical-align:middle}
html[data-theme="dark"] .btn-icon-sun{display:block}
html[data-theme="light"] .btn-icon-moon{display:block}
