/* /Components/Account/AuthCard.razor.rz.scp.css */
.auth[b-caxs6zb98d] {
    min-height: 100vh; min-height: 100dvh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: calc(24px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));
    perspective: 1400px;
}
.auth-card[b-caxs6zb98d] {
    width: min(420px, 100%);
    padding: 34px 28px 28px;
    text-align: center;
    border-radius: var(--radius-xl);
    background: linear-gradient(160deg, rgba(255,255,255,.1), rgba(255,255,255,.03));
    box-shadow: 0 50px 100px -30px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.06), inset 0 1px 0 rgba(255,255,255,.14);
    animation: auth-in-b-caxs6zb98d 1s var(--ease-spring) backwards;
}
@keyframes auth-in-b-caxs6zb98d { from { opacity: 0; transform: rotateX(28deg) translateY(60px) scale(.9); } }

.auth-logo-wrap[b-caxs6zb98d] { display: flex; justify-content: center; margin-top: -76px; margin-bottom: 18px; }
.auth-logo[b-caxs6zb98d] {
    width: 92px; height: 92px; border-radius: 30px; display: grid; place-items: center;
    background: radial-gradient(120% 90% at 30% 10%, rgba(255,255,255,.45), transparent 45%), linear-gradient(135deg, #7c3aed, #22d3ee);
    box-shadow: inset 0 2px 1px rgba(255,255,255,.55), inset 0 -10px 22px rgba(0,0,0,.25), 0 26px 50px -14px rgba(124,58,237,.9);
    animation: logo-float-b-caxs6zb98d 5s ease-in-out infinite, logo-in-b-caxs6zb98d 1.1s var(--ease-spring) backwards .15s;
}
@keyframes logo-float-b-caxs6zb98d { 0%, 100% { transform: translateY(0) rotateY(-10deg); } 50% { transform: translateY(-8px) rotateY(10deg); } }
@keyframes logo-in-b-caxs6zb98d { from { transform: rotateY(-180deg) scale(.3); opacity: 0; } }

.auth-title[b-caxs6zb98d] { font-size: 1.9rem; margin-bottom: 6px; }
.auth-sub[b-caxs6zb98d] { color: var(--text-2); margin: 0 0 22px; }
.auth-foot[b-caxs6zb98d] { margin-top: 22px; color: var(--text-2); text-align: center; animation: fade-in .8s ease .5s backwards; }
.auth-foot[b-caxs6zb98d]  a { color: white; font-weight: 700; border-bottom: 2px solid color-mix(in oklab, var(--accent-2) 70%, transparent); }

.auth-card[b-caxs6zb98d]  form { display: flex; flex-direction: column; gap: 14px; text-align: left; }
.auth-card[b-caxs6zb98d]  .field { animation: field-in-b-caxs6zb98d .7s var(--ease-out) backwards; animation-delay: calc(250ms + var(--i, 0) * 70ms); }
@keyframes field-in-b-caxs6zb98d { from { opacity: 0; transform: translateY(14px); } }
.auth-card[b-caxs6zb98d]  .auth-error {
    padding: 10px 14px; border-radius: 14px; font-size: .9rem;
    background: color-mix(in oklab, var(--danger) 18%, transparent); border: 1px solid color-mix(in oklab, var(--danger) 40%, transparent); color: #ffe4e6;
    animation: shake-b-caxs6zb98d .45s ease;
}
.auth-card[b-caxs6zb98d]  .auth-ok {
    padding: 10px 14px; border-radius: 14px; font-size: .9rem;
    background: color-mix(in oklab, var(--success) 18%, transparent); border: 1px solid color-mix(in oklab, var(--success) 40%, transparent); color: #d1fae5;
}
@keyframes shake-b-caxs6zb98d { 20%, 60% { transform: translateX(-7px); } 40%, 80% { transform: translateX(7px); } }
.auth-card[b-caxs6zb98d]  .pw-wrap { position: relative; }
.auth-card[b-caxs6zb98d]  .pw-wrap .input { padding-right: 48px; }
.auth-card[b-caxs6zb98d]  .pw-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Stili del layout definiti in wwwroot/app.css */
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-lfjs4ouduq],
.components-reconnect-repeated-attempt-visible[b-lfjs4ouduq],
.components-reconnect-failed-visible[b-lfjs4ouduq],
.components-pause-visible[b-lfjs4ouduq],
.components-resume-failed-visible[b-lfjs4ouduq],
.components-rejoining-animation[b-lfjs4ouduq] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-retrying[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-failed[b-lfjs4ouduq],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-lfjs4ouduq] {
    display: block;
}


#components-reconnect-modal[b-lfjs4ouduq] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-lfjs4ouduq 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-lfjs4ouduq 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-lfjs4ouduq 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-lfjs4ouduq]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-lfjs4ouduq 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-lfjs4ouduq {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-lfjs4ouduq {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-lfjs4ouduq {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-lfjs4ouduq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-lfjs4ouduq] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-lfjs4ouduq] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-lfjs4ouduq] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-lfjs4ouduq] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-lfjs4ouduq] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-lfjs4ouduq] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-lfjs4ouduq 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-lfjs4ouduq] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-lfjs4ouduq {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Calcolatrice/Calcolatrice.razor.rz.scp.css */
/* =====================================================================
   Calcolatrice — dispositivo di vetro 3D, display animato, tasti a molla
   Gli elementi creati da calc.js (cifre, cursore, ripple, chip di stato)
   non hanno l'attributo di scope: si stilano con ::deep.
   ===================================================================== */

@property --ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

.calc-page[b-x1y4h8lk4e] { --kh: 62px; --kgap: 10px; }
.calc-page[b-x1y4h8lk4e]  .module { padding-bottom: calc(28px + var(--safe-bottom)); }

/* ---------- barra superiore ---------- */
.mode-seg button[b-x1y4h8lk4e] { min-width: 0; }
.hist-btn[b-x1y4h8lk4e] { position: relative; }
.hist-count[b-x1y4h8lk4e] {
    position: absolute; top: 3px; right: 3px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 9px;
    display: grid; place-items: center; font-size: .6rem; font-weight: 800; line-height: 1;
    background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: white;
}

/* ---------- impaginazione ---------- */
.calc-layout[b-x1y4h8lk4e] {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 24px;
    padding-top: 6px;
}
.calc-wrap[b-x1y4h8lk4e] { width: min(100%, 440px); transition: width .75s var(--ease-out); animation: calc-in-b-x1y4h8lk4e 1s var(--ease-spring) backwards; perspective: 1800px; }
.sci-on .calc-wrap[b-x1y4h8lk4e] { width: min(100%, 900px); }
@keyframes calc-in-b-x1y4h8lk4e { from { opacity: 0; transform: perspective(1400px) translateY(60px) rotateX(24deg) scale(.9); } }

.hist-panel[b-x1y4h8lk4e] { display: none; }

/* sfere di luce in parallasse dietro al dispositivo */
.calc-orbs[b-x1y4h8lk4e] { position: absolute; inset: -40px 0 0; pointer-events: none; z-index: -1; }
.orb-wrap[b-x1y4h8lk4e] { position: absolute; }
.orb-wrap.w1[b-x1y4h8lk4e] { left: 8%; top: 0; }
.orb-wrap.w2[b-x1y4h8lk4e] { right: 6%; top: 42%; }
.orb[b-x1y4h8lk4e] { display: block; border-radius: 50%; filter: blur(50px); opacity: .55; animation: orb-float-b-x1y4h8lk4e 12s ease-in-out infinite alternate; }
.o1[b-x1y4h8lk4e] { width: 300px; height: 300px; background: radial-gradient(circle, var(--accent), transparent 70%); }
.o2[b-x1y4h8lk4e] { width: 360px; height: 360px; background: radial-gradient(circle, var(--accent-2), transparent 70%); animation-delay: -6s; }
@keyframes orb-float-b-x1y4h8lk4e { to { transform: translate3d(40px, -30px, 0) scale(1.15); } }

/* ---------- dispositivo ---------- */
.calc[b-x1y4h8lk4e] {
    position: relative; isolation: isolate;
    padding: 18px; border-radius: 38px;
    background:
        radial-gradient(120% 60% at 50% -10%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%),
        linear-gradient(165deg, rgba(255,255,255,.10), rgba(255,255,255,.025) 45%, rgba(255,255,255,.05));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.4),
        0 50px 100px -30px rgba(0,0,0,.85),
        0 30px 80px -40px color-mix(in oklab, var(--accent) 70%, transparent);
    backdrop-filter: saturate(160%) blur(26px); -webkit-backdrop-filter: saturate(160%) blur(26px);
    touch-action: manipulation;
}
/* bordo luminoso rotante */
.calc[b-x1y4h8lk4e]::before {
    content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1.5px; pointer-events: none; z-index: -1;
    background: conic-gradient(from var(--ang), var(--accent), transparent 22%, transparent 45%, var(--accent-2) 60%, transparent 78%, var(--accent));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    animation: ring-b-x1y4h8lk4e 9s linear infinite; opacity: .75;
}
@keyframes ring-b-x1y4h8lk4e { to { --ang: 360deg; } }

@media (pointer: fine) {
    .calc[b-x1y4h8lk4e] {
        transform: rotateX(calc(var(--my) * -2.2deg)) rotateY(calc(var(--mx) * 3deg));
        transition: transform .3s linear;
    }
}

/* ---------- display ---------- */
.display[b-x1y4h8lk4e] {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; justify-content: flex-end; gap: 2px;
    min-height: 168px; padding: 12px 18px 14px; border-radius: 26px;
    background:
        radial-gradient(90% 90% at 100% 110%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%),
        radial-gradient(70% 80% at 0% -20%, color-mix(in oklab, var(--accent-2) 16%, transparent), transparent 60%),
        linear-gradient(180deg, rgba(2,4,16,.82), rgba(8,10,34,.66));
    box-shadow: inset 0 3px 16px rgba(0,0,0,.65), inset 0 0 0 1px rgba(255,255,255,.06), 0 1px 0 rgba(255,255,255,.1);
    transform: translateZ(14px);
    transition: min-height .5s var(--ease-out);
}
/* riflesso del vetro */
.display[b-x1y4h8lk4e]::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 2; border-radius: inherit;
    background: linear-gradient(115deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.02) 32%, transparent 33%, transparent 100%);
}
/* griglia a puntini molto tenue */
.display[b-x1y4h8lk4e]::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .35;
    background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 14px 14px;
    mask-image: linear-gradient(to top, black, transparent 80%);
}

.d-top[b-x1y4h8lk4e] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: auto; position: relative; z-index: 3; }
.d-status[b-x1y4h8lk4e] { display: flex; gap: 6px; min-height: 22px; align-items: center; }
.d-status[b-x1y4h8lk4e]  .st {
    display: inline-grid; place-items: center; height: 20px; padding: 0 8px; border-radius: 7px;
    font: 700 .64rem/1 var(--font); letter-spacing: .12em; color: var(--text-2);
    background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.08);
    animation: st-in-b-x1y4h8lk4e .35s var(--ease-spring);
}
.d-status[b-x1y4h8lk4e]  .st-2 { color: white; background: color-mix(in oklab, var(--accent) 45%, transparent); border-color: transparent; }
.d-status[b-x1y4h8lk4e]  .st-m { color: white; background: color-mix(in oklab, var(--accent-2) 50%, transparent); border-color: transparent; }
@keyframes st-in-b-x1y4h8lk4e { from { transform: scale(.5); opacity: 0; } }

.d-actions[b-x1y4h8lk4e] { display: flex; gap: 6px; }
.d-act[b-x1y4h8lk4e] {
    display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border-radius: 10px;
    border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.06); color: var(--text-2);
    font: 600 .76rem var(--font); cursor: pointer; transition: all .25s var(--ease-out);
}
.d-act:hover[b-x1y4h8lk4e] { color: white; background: rgba(255,255,255,.12); }
.d-act:active[b-x1y4h8lk4e] { transform: scale(.94); }
.d-act.spesa[b-x1y4h8lk4e] { color: #fde7ef; background: color-mix(in oklab, var(--expense) 20%, transparent); border-color: color-mix(in oklab, var(--expense) 35%, transparent); }
.d-act.spesa:hover[b-x1y4h8lk4e] { background: color-mix(in oklab, var(--expense) 34%, transparent); }
.calc:not([data-filled]) .d-act[b-x1y4h8lk4e] { opacity: .45; }

.d-recall[b-x1y4h8lk4e] {
    min-height: 1.35em; font: 500 1rem/1.35 var(--font-display); color: var(--text-3);
    text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; direction: ltr;
}

.d-expr[b-x1y4h8lk4e] {
    --fs: 3.1rem;
    position: relative; font: 500 calc(var(--fs) * var(--k, 1)) / 1.18 var(--font-display);
    letter-spacing: -.01em; color: var(--text);
    text-align: right; white-space: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
    min-height: 1.2em; cursor: text; perspective: 600px;
    transition: font-size .2s var(--ease-out), color .3s;
    font-variant-numeric: tabular-nums;
}
.d-expr[b-x1y4h8lk4e]::-webkit-scrollbar { display: none; }
.calc[data-just] .d-expr[b-x1y4h8lk4e] {
    color: #fff;
    text-shadow: 0 0 26px color-mix(in oklab, var(--accent) 70%, transparent), 0 0 2px color-mix(in oklab, var(--accent-2) 60%, transparent);
}
.calc[data-error] .d-expr[b-x1y4h8lk4e] { color: color-mix(in oklab, var(--danger) 55%, var(--text)); }

.d-expr[b-x1y4h8lk4e]  .u { display: inline-block; white-space: pre; }
.d-expr[b-x1y4h8lk4e]  .u.o { color: color-mix(in oklab, var(--accent) 75%, white); margin: 0 .07em; }
.d-expr[b-x1y4h8lk4e]  .u.f { color: color-mix(in oklab, var(--accent-2) 70%, white); font-size: .82em; }
.d-expr[b-x1y4h8lk4e]  .u.c { color: #fcd34d; }
.d-expr[b-x1y4h8lk4e]  .u.x { color: color-mix(in oklab, var(--accent) 60%, white); }
.d-expr[b-x1y4h8lk4e]  .u.p { color: var(--text-2); font-weight: 400; }
.d-expr[b-x1y4h8lk4e]  .u.gh { opacity: .28; }
.d-expr[b-x1y4h8lk4e]  .u.ph { color: var(--text-3); }
.d-expr[b-x1y4h8lk4e]  .gs { font-style: normal; opacity: .5; }
.calc[data-just] .d-expr[b-x1y4h8lk4e]  .u { color: inherit; }
.d-expr[b-x1y4h8lk4e]  .caret {
    display: inline-block; width: 2.5px; height: .92em; margin: 0 -1.25px; vertical-align: -.1em; border-radius: 2px;
    background: linear-gradient(var(--accent), var(--accent-2));
    box-shadow: 0 0 12px var(--accent);
    animation: blink-b-x1y4h8lk4e 1.05s steps(1) infinite;
}
.calc[data-just] .d-expr[b-x1y4h8lk4e]  .caret { opacity: 0; animation: none; }
@keyframes blink-b-x1y4h8lk4e { 50% { opacity: 0; } }

/* cifra appena digitata: molla */
.d-expr[b-x1y4h8lk4e]  .u.nw { animation: pop-b-x1y4h8lk4e .34s var(--ease-spring) both; }
@keyframes pop-b-x1y4h8lk4e { from { opacity: 0; transform: translateY(.4em) scale(.5); } }
/* risultato: cifre che "rotolano" come un contatore */
.d-expr[b-x1y4h8lk4e]  .u.rl { animation: roll-b-x1y4h8lk4e .62s var(--ease-spring) both; animation-delay: calc(var(--d, 0) * 26ms); transform-origin: 50% 100%; }
@keyframes roll-b-x1y4h8lk4e { from { opacity: 0; transform: translateY(85%) rotateX(-85deg); filter: blur(4px); } }

.d-result[b-x1y4h8lk4e] {
    --fs: 1.55rem;
    min-height: 1.45em; font: 500 calc(var(--fs) * var(--k, 1)) / 1.35 var(--font-display);
    color: var(--text-2); text-align: right; white-space: nowrap; overflow: hidden; cursor: copy;
    transition: font-size .2s var(--ease-out);
    font-variant-numeric: tabular-nums;
}
.d-result[b-x1y4h8lk4e]  .eqs { color: var(--text-3); margin-right: .3em; }
.d-result[b-x1y4h8lk4e]  .pc { display: inline-block; white-space: pre; }
.d-result[b-x1y4h8lk4e]  .pc.tk { animation: tick-b-x1y4h8lk4e .28s var(--ease-out) both; }
@keyframes tick-b-x1y4h8lk4e { from { opacity: 0; transform: translateY(-55%); } }
.d-result[b-x1y4h8lk4e]  .err { color: var(--danger); font: 600 1rem var(--font); animation: pop-b-x1y4h8lk4e .4s var(--ease-spring) both; }
.d-result[b-x1y4h8lk4e]  .soft-err { color: color-mix(in oklab, var(--danger) 55%, var(--text-3)); font: 500 .9rem var(--font); }

/* ---------- pad dei tasti ---------- */
.pads[b-x1y4h8lk4e] {
    display: grid; grid-template-columns: minmax(0, 0fr) minmax(0, 1fr); gap: 0;
    margin-top: 16px; transition: grid-template-columns .75s var(--ease-out), gap .75s var(--ease-out);
}
.sci-on .pads[b-x1y4h8lk4e] { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; }

.pad-num[b-x1y4h8lk4e], .pad-sci-inner[b-x1y4h8lk4e] { display: grid; gap: var(--kgap); grid-auto-rows: var(--kh); }
.pad-num[b-x1y4h8lk4e] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.pad-sci[b-x1y4h8lk4e] { min-width: 0; overflow: hidden; margin: -6px; padding: 6px 6px 10px; perspective: 1200px; }
.pad-sci-inner[b-x1y4h8lk4e] {
    grid-template-columns: repeat(6, minmax(0, 1fr)); min-width: 420px;
    transform-origin: 100% 50%; transform: rotateY(-80deg) translateZ(-60px); opacity: 0; visibility: hidden;
    transition: transform .75s var(--ease-out), opacity .45s var(--ease-out), visibility 0s .75s;
}
.sci-on .pad-sci-inner[b-x1y4h8lk4e] { transform: none; opacity: 1; visibility: visible; transition: transform .85s var(--ease-spring), opacity .5s var(--ease-out), visibility 0s; }

/* ---------- tasto 3D di vetro ---------- */
.key[b-x1y4h8lk4e] {
    --kc: rgba(255,255,255,.11); --kc2: rgba(255,255,255,.035); --ks: rgba(0,0,0,.5); --kt: var(--text);
    position: relative; isolation: isolate; overflow: hidden;
    min-width: 0; padding: 0; border: 0; border-radius: 20px; cursor: pointer; color: var(--kt);
    font: 500 1.5rem/1 var(--font-display);
    background: linear-gradient(180deg, var(--kc), var(--kc2));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.3), inset 0 -2px 0 rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.07),
        0 5px 0 -1px var(--ks), 0 16px 24px -12px rgba(0,0,0,.75);
    transform: translateY(0);
    transition: transform .55s var(--ease-spring), box-shadow .55s var(--ease-spring), filter .25s, background .3s, color .3s;
    user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
/* lucentezza del vetro nella metà superiore */
.key[b-x1y4h8lk4e]::before {
    content: ""; position: absolute; inset: 1px 1px 52% 1px; border-radius: 19px 19px 40% 40% / 19px 19px 14px 14px; z-index: -1; pointer-events: none;
    background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,0));
}
.key:focus-visible[b-x1y4h8lk4e] { outline: 2px solid var(--accent-2); outline-offset: 2px; }
@media (hover: hover) {
    .key:hover[b-x1y4h8lk4e] { filter: brightness(1.18); transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.34), inset 0 -2px 0 rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.1), 0 7px 0 -1px var(--ks), 0 22px 30px -12px rgba(0,0,0,.8); }
}
.key[data-down][b-x1y4h8lk4e], .key.const:active[b-x1y4h8lk4e] {
    transform: translateY(4px) scale(.965); filter: brightness(1.35);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 2px 8px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.1),
        0 1px 0 -1px var(--ks), 0 4px 10px -6px rgba(0,0,0,.8);
    transition-duration: .06s;
}
.kf[b-x1y4h8lk4e] { position: relative; z-index: 1; display: grid; place-items: center; height: 100%; pointer-events: none; }
.calc[b-x1y4h8lk4e]  .kr {
    position: absolute; border-radius: 50%; pointer-events: none; z-index: 0;
    background: radial-gradient(circle, rgba(255,255,255,.5), rgba(255,255,255,0) 65%);
    transform: scale(0); animation: kr-b-x1y4h8lk4e .6s var(--ease-out) forwards;
}
@keyframes kr-b-x1y4h8lk4e { to { transform: scale(1.6); opacity: 0; } }

.key.op[b-x1y4h8lk4e] {
    --kc: color-mix(in oklab, var(--accent) 55%, transparent); --kc2: color-mix(in oklab, var(--accent) 22%, transparent);
    --ks: color-mix(in oklab, var(--accent) 35%, #000); --kt: #fff; font-size: 1.75rem;
}
.key.op2[b-x1y4h8lk4e] { --kc: color-mix(in oklab, var(--accent) 26%, rgba(255,255,255,.08)); --kc2: color-mix(in oklab, var(--accent) 8%, transparent); --kt: color-mix(in oklab, var(--accent) 45%, white); }
.key.util[b-x1y4h8lk4e] { --kc: color-mix(in oklab, var(--accent-2) 30%, rgba(255,255,255,.08)); --kc2: color-mix(in oklab, var(--accent-2) 10%, transparent); --ks: color-mix(in oklab, var(--accent-2) 25%, #000); --kt: #f3e8ff; font-size: 1.25rem; font-weight: 600; }
.key.par[b-x1y4h8lk4e] { --kc: rgba(255,255,255,.075); --kt: var(--text-2); font-size: 1.35rem; }
.key.eq[b-x1y4h8lk4e] {
    --ks: color-mix(in oklab, var(--accent-2) 40%, #000); --kt: #fff; font-size: 2.1rem; font-weight: 600;
    background: linear-gradient(160deg, var(--accent), color-mix(in oklab, var(--accent) 45%, var(--accent-2)) 55%, var(--accent-2));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.45), inset 0 -2px 0 rgba(0,0,0,.2),
        0 5px 0 -1px var(--ks), 0 20px 40px -14px color-mix(in oklab, var(--accent) 85%, transparent);
}
.key.eq[b-x1y4h8lk4e]::after {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.35) 48%, transparent 62%);
    transform: translateX(-120%); animation: sheen-b-x1y4h8lk4e 5s var(--ease-out) infinite 1.5s;
}
@keyframes sheen-b-x1y4h8lk4e { 0%, 70% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }

/* tasti scientifici */
.key.fn[b-x1y4h8lk4e] {
    --kc: rgba(255,255,255,.07); --kc2: rgba(255,255,255,.02); --kt: var(--text-2);
    border-radius: 15px; font: 600 .98rem/1 var(--font);
}
.key.fn[b-x1y4h8lk4e]::before { border-radius: 14px 14px 40% 40% / 14px 14px 10px 10px; }
.key.fn[b-x1y4h8lk4e]  sup, .key.fn[b-x1y4h8lk4e]  sub { font-size: .66em; line-height: 0; }
.key.fn.acc[b-x1y4h8lk4e] { --kt: color-mix(in oklab, var(--accent) 55%, white); font-size: .84rem; letter-spacing: .06em; }
.key.fn.mem[b-x1y4h8lk4e] { --kt: color-mix(in oklab, var(--accent-2) 55%, white); font-size: .86rem; }
.key.fn.cst[b-x1y4h8lk4e] { --kt: #fcd34d; font-size: 1.12rem; }
.key.fn.const[b-x1y4h8lk4e] { --kt: var(--text); font-size: .86rem; --kc: color-mix(in oklab, var(--accent-2) 16%, rgba(255,255,255,.06)); }
.key.fn.const small[b-x1y4h8lk4e] { opacity: .6; margin-left: 4px; }
.l2[b-x1y4h8lk4e] { display: none; }
.calc[data-second] .l1[b-x1y4h8lk4e] { display: none; }
.calc[data-second] .l2[b-x1y4h8lk4e] { display: inline; color: color-mix(in oklab, var(--accent) 45%, white); }
.calc[data-second] .key.second[b-x1y4h8lk4e] { --kc: var(--accent); --kc2: color-mix(in oklab, var(--accent) 60%, var(--accent-2)); --kt: #fff; }
.calc[b-x1y4h8lk4e]  .lab-rad { display: none; }
.calc[data-angle="rad"][b-x1y4h8lk4e]  .lab-rad { display: inline; }
.calc[data-angle="rad"][b-x1y4h8lk4e]  .lab-deg { display: none; }

.kbd-hint[b-x1y4h8lk4e] { margin: 16px auto 0; max-width: 560px; text-align: center; font-size: .74rem; color: var(--text-3); line-height: 2; }
.kbd-hint kbd[b-x1y4h8lk4e] {
    display: inline-block; min-width: 20px; padding: 1px 6px; margin: 0 1px; border-radius: 6px;
    font: 600 .7rem var(--font); color: var(--text-2);
    background: rgba(255,255,255,.06); border: 1px solid var(--border); border-bottom-width: 2px;
}

/* ---------- storico ---------- */
.hist-head[b-x1y4h8lk4e] { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 16px 8px; }
.hist-head h2[b-x1y4h8lk4e] { font-size: 1.05rem; }
.hist-scroll[b-x1y4h8lk4e] { overflow-y: auto; overscroll-behavior: contain; padding: 0 8px 14px; flex: 1; min-height: 0; scrollbar-width: thin; }
.hist-day[b-x1y4h8lk4e] { position: sticky; top: 0; z-index: 1; padding: 10px 10px 6px; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); background: linear-gradient(var(--surface-solid) 60%, transparent); }
.calc-page[b-x1y4h8lk4e]  .sheet .hist-day { background: linear-gradient(rgba(22,20,58,.98) 60%, transparent); }
.hist-item[b-x1y4h8lk4e] {
    display: grid; gap: 2px; padding: 10px 12px; border-radius: 16px; text-align: right;
    transition: background .25s;
    animation: h-in-b-x1y4h8lk4e .55s var(--ease-spring) backwards; animation-delay: calc(var(--i, 0) * 35ms);
}
.hist-item:hover[b-x1y4h8lk4e] { background: rgba(255,255,255,.05); }
@keyframes h-in-b-x1y4h8lk4e { from { opacity: 0; transform: perspective(600px) translateY(-14px) rotateX(-30deg) scale(.96); } }
.h-expr[b-x1y4h8lk4e], .h-res[b-x1y4h8lk4e] { background: none; border: 0; padding: 2px 0; color: inherit; cursor: pointer; text-align: right; font: inherit; border-radius: 8px; }
.h-expr[b-x1y4h8lk4e] { color: var(--text-3); font-size: .86rem; word-break: break-all; transition: color .2s; }
.h-expr:hover[b-x1y4h8lk4e] { color: var(--text); }
.h-row[b-x1y4h8lk4e] { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.h-time[b-x1y4h8lk4e] { font-size: .7rem; color: var(--text-3); opacity: .7; }
.h-res[b-x1y4h8lk4e] { font: 600 1.25rem var(--font-display); color: var(--text); word-break: break-all; transition: color .2s, transform .3s var(--ease-spring); }
.h-res:hover[b-x1y4h8lk4e] { color: color-mix(in oklab, var(--accent) 45%, white); transform: translateX(-3px); }

/* ---------- costanti ---------- */
.const-list[b-x1y4h8lk4e] { display: grid; gap: 8px; }
.const-item[b-x1y4h8lk4e] {
    display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px 14px; border-radius: 16px; text-align: left;
    background: var(--surface); border: 1px solid var(--border); color: var(--text); cursor: pointer; font: inherit;
    transition: background .25s, transform .3s var(--ease-spring), border-color .25s;
    animation: h-in-b-x1y4h8lk4e .5s var(--ease-spring) backwards; animation-delay: calc(var(--i, 0) * 25ms);
}
.const-item:hover[b-x1y4h8lk4e] { background: var(--surface-2); border-color: var(--border-strong); transform: translateX(4px); }
.const-item:active[b-x1y4h8lk4e] { transform: scale(.98); }
.c-sym[b-x1y4h8lk4e] {
    flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center;
    font: 700 1.1rem var(--font-display); color: white;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 70%, transparent), color-mix(in oklab, var(--accent-2) 60%, transparent));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 8px 18px -8px var(--accent);
}
.c-body[b-x1y4h8lk4e] { display: grid; gap: 2px; min-width: 0; flex: 1; }
.c-name[b-x1y4h8lk4e] { font-weight: 600; font-size: .9rem; }
.c-val[b-x1y4h8lk4e] { font-size: .82rem; color: var(--text-2); }
.c-add[b-x1y4h8lk4e] { color: var(--text-3); font-size: 1.2rem; }

/* =====================================================================
   Responsive
   ===================================================================== */

/* Desktop largo: storico affiancato */
@media (min-width: 1100px) {
    .calc-layout[b-x1y4h8lk4e] { grid-template-columns: auto 330px; justify-content: center; align-items: start; justify-items: stretch; }
    .calc-wrap[b-x1y4h8lk4e] { width: 440px; }
    .sci-on .calc-wrap[b-x1y4h8lk4e] { width: 850px; }
    .hist-btn[b-x1y4h8lk4e] { display: none; }
    .hist-panel[b-x1y4h8lk4e] {
        display: flex; flex-direction: column; position: sticky; top: 76px; height: 640px; max-height: calc(100vh - 100px);
        border-radius: 30px; border: 1px solid var(--border);
        background: linear-gradient(170deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
        backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
        box-shadow: var(--shadow-2);
        animation: calc-in-b-x1y4h8lk4e 1s var(--ease-spring) backwards .12s;
    }
}

/* Telefono in verticale: il dispositivo riempie lo schermo, tasti comodi per il pollice */
@media (max-width: 699px) {
    .calc-page[b-x1y4h8lk4e]  .module { padding: calc(6px + var(--safe-top)) 12px calc(10px + var(--safe-bottom)); }
    .calc-page[b-x1y4h8lk4e]  .module-top { padding: 6px 0; }
    .calc-layout[b-x1y4h8lk4e] { padding-top: 0; }
    .calc-orbs[b-x1y4h8lk4e] { display: none; }
    .calc-wrap[b-x1y4h8lk4e], .sci-on .calc-wrap[b-x1y4h8lk4e] { width: 100%; }
    .calc[b-x1y4h8lk4e] {
        display: flex; flex-direction: column;
        height: calc(100dvh - 72px - var(--safe-top) - var(--safe-bottom)); min-height: 470px;
        padding: 10px; border-radius: 30px;
    }
    .display[b-x1y4h8lk4e] { flex: none; min-height: 150px; padding: 10px 14px 12px; border-radius: 22px; }
    .d-expr[b-x1y4h8lk4e] { --fs: clamp(2.3rem, 11.5vw, 3rem); }
    .d-act.spesa span:last-child[b-x1y4h8lk4e] { display: none; }
    .d-act.spesa[b-x1y4h8lk4e] { padding: 0 9px; }

    .pads[b-x1y4h8lk4e] {
        flex: 1; min-height: 0; margin-top: 10px;
        grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 0fr) minmax(0, 1fr);
        transition: grid-template-rows .7s var(--ease-out), gap .7s var(--ease-out);
    }
    .sci-on .pads[b-x1y4h8lk4e] { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, .78fr) minmax(0, 1fr); gap: 8px; }
    .pad-num[b-x1y4h8lk4e] { grid-auto-rows: auto; grid-template-rows: repeat(6, minmax(0, 1fr)); gap: 9px; }
    .pad-sci[b-x1y4h8lk4e] { margin: -4px; padding: 4px 4px 7px; min-height: 0; }
    .pad-sci-inner[b-x1y4h8lk4e] {
        min-width: 0; height: 100%; gap: 6px;
        grid-auto-rows: auto; grid-template-rows: repeat(6, minmax(0, 1fr));
        transform-origin: 50% 100%; transform: rotateX(80deg) translateZ(-40px);
    }
    .sci-on .display[b-x1y4h8lk4e] { min-height: 118px; }
    .sci-on .d-expr[b-x1y4h8lk4e] { --fs: clamp(1.9rem, 9vw, 2.4rem); }
    .sci-on .d-recall[b-x1y4h8lk4e] { font-size: .88rem; }
    .sci-on .pad-num[b-x1y4h8lk4e] { gap: 7px; }
    .sci-on .key:not(.fn)[b-x1y4h8lk4e] { font-size: 1.3rem; border-radius: 16px; }
    .sci-on .key.eq[b-x1y4h8lk4e] { font-size: 1.7rem; }

    .key[b-x1y4h8lk4e] { border-radius: 22px; font-size: 1.65rem; }
    .key.op[b-x1y4h8lk4e] { font-size: 1.9rem; }
    .key.fn[b-x1y4h8lk4e] { border-radius: 11px; font-size: .8rem; }
    .key.fn.acc[b-x1y4h8lk4e], .key.fn.mem[b-x1y4h8lk4e] { font-size: .7rem; letter-spacing: .02em; }
    .key.fn.cst[b-x1y4h8lk4e] { font-size: .95rem; }
    .key.fn.const[b-x1y4h8lk4e] { font-size: .72rem; }
    .key.fn[b-x1y4h8lk4e]::before { border-radius: 10px 10px 40% 40% / 10px 10px 8px 8px; }
}
@media (max-width: 699px) and (max-height: 700px) {
    .display[b-x1y4h8lk4e] { min-height: 124px; }
    .sci-on .display[b-x1y4h8lk4e] { min-height: 100px; }
    .sci-on .d-recall[b-x1y4h8lk4e] { display: none; }
}

/* Telefono in orizzontale: pannello scientifico sempre affiancato */
@media (orientation: landscape) and (max-height: 540px) {
    .calc-page[b-x1y4h8lk4e]  .module { padding: calc(4px + var(--safe-top)) max(12px, env(safe-area-inset-right)) calc(8px + var(--safe-bottom)) max(12px, env(safe-area-inset-left)); }
    .calc-page[b-x1y4h8lk4e]  .module-top { padding: 4px 0; }
    .mode-seg[b-x1y4h8lk4e], .kbd-hint[b-x1y4h8lk4e], .calc-orbs[b-x1y4h8lk4e] { display: none; }
    .calc-layout[b-x1y4h8lk4e] { padding-top: 0; }
    .calc-wrap[b-x1y4h8lk4e], .sci-on .calc-wrap[b-x1y4h8lk4e] { width: 100%; }
    .calc[b-x1y4h8lk4e] {
        display: flex; flex-direction: column; height: calc(100dvh - 68px - var(--safe-top) - var(--safe-bottom)); min-height: 280px;
        padding: 8px; border-radius: 24px; transform: none;
    }
    .display[b-x1y4h8lk4e], .sci-on .display[b-x1y4h8lk4e] { flex: none; min-height: 0; padding: 6px 14px 8px; border-radius: 18px; }
    .d-top[b-x1y4h8lk4e] { position: absolute; top: 6px; left: 12px; right: auto; }
    .d-actions[b-x1y4h8lk4e] { display: none; }
    .d-recall[b-x1y4h8lk4e], .sci-on .d-recall[b-x1y4h8lk4e] { display: block; font-size: .78rem; min-height: 1.2em; padding-left: 90px; }
    .d-expr[b-x1y4h8lk4e], .sci-on .d-expr[b-x1y4h8lk4e] { --fs: 1.8rem; }
    .d-result[b-x1y4h8lk4e] { --fs: 1.05rem; min-height: 1.3em; }
    .pads[b-x1y4h8lk4e], .sci-on .pads[b-x1y4h8lk4e] {
        flex: 1; min-height: 0; margin-top: 8px; gap: 10px;
        grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr);
    }
    .pad-sci[b-x1y4h8lk4e] { margin: -3px; padding: 3px 3px 6px; }
    .pad-sci-inner[b-x1y4h8lk4e], .sci-on .pad-sci-inner[b-x1y4h8lk4e] {
        min-width: 0; height: 100%; gap: 5px; grid-auto-rows: auto; grid-template-rows: repeat(6, minmax(0, 1fr));
        transform: none; opacity: 1; visibility: visible;
    }
    .pad-num[b-x1y4h8lk4e] { grid-auto-rows: auto; grid-template-rows: repeat(6, minmax(0, 1fr)); gap: 5px; }
    .key[b-x1y4h8lk4e], .sci-on .key:not(.fn)[b-x1y4h8lk4e] { border-radius: 12px; font-size: 1.1rem; }
    .key.op[b-x1y4h8lk4e] { font-size: 1.3rem; }
    .key.eq[b-x1y4h8lk4e], .sci-on .key.eq[b-x1y4h8lk4e] { font-size: 1.4rem; }
    .key.fn[b-x1y4h8lk4e] { border-radius: 10px; font-size: .74rem; }
    .key.fn.acc[b-x1y4h8lk4e], .key.fn.mem[b-x1y4h8lk4e], .key.fn.const[b-x1y4h8lk4e] { font-size: .64rem; }
    .key[b-x1y4h8lk4e]::before, .key.fn[b-x1y4h8lk4e]::before { border-radius: 9px 9px 40% 40% / 9px 9px 6px 6px; }
}

@media (prefers-reduced-motion: reduce) {
    .calc[b-x1y4h8lk4e]::before, .key.eq[b-x1y4h8lk4e]::after, .orb[b-x1y4h8lk4e] { animation: none; }
    .calc[b-x1y4h8lk4e] { transform: none !important; }
    .pad-sci-inner[b-x1y4h8lk4e] { transition: opacity .2s, visibility 0s; }
}
/* /Components/Pages/Calendario/BooksPanel.razor.rz.scp.css */
.books-panel[b-da9zcien22] { padding: 16px; border-radius: 24px; }
.bk-list[b-da9zcien22] { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.bk[b-da9zcien22] { width: 100%; display: flex; align-items: center; gap: 10px; padding: 7px 8px; border: 0; border-radius: 12px; background: none; cursor: pointer; text-align: left; color: var(--text-2); font-weight: 600; transition: background .2s, color .2s; }
.bk:hover[b-da9zcien22] { background: rgba(255,255,255,.05); color: var(--text); }
.bk.on[b-da9zcien22] { color: var(--text); }
.bk-box[b-da9zcien22] { width: 20px; height: 20px; border-radius: 7px; display: grid; place-items: center; font-size: .7rem; font-weight: 900; color: #fff; flex: none;
    border: 2px solid var(--c); transition: background .25s, transform .3s var(--ease-spring); }
.bk.on .bk-box[b-da9zcien22] { background: var(--c); box-shadow: 0 0 12px -2px var(--c); }
.bk:active .bk-box[b-da9zcien22] { transform: scale(.8); }
/* /Components/Pages/Calendario/BooksSheet.razor.rz.scp.css */
.bs[b-4p1k6htz2e] { display: flex; flex-direction: column; gap: 10px; }
.bs-row[b-4p1k6htz2e] { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 16px; background: color-mix(in oklab, var(--c) 10%, rgba(255,255,255,.03)); border: 1px solid color-mix(in oklab, var(--c) 30%, var(--border)); animation: bs-in-b-4p1k6htz2e .45s var(--ease-spring) backwards; }
@keyframes bs-in-b-4p1k6htz2e { from { opacity: 0; transform: translateY(8px); } }
.bs-name[b-4p1k6htz2e] { flex: 1; min-width: 0; }
.bs-color[b-4p1k6htz2e] { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 12px; background: none; cursor: pointer; flex: none; }
.bs-color[b-4p1k6htz2e]::-webkit-color-swatch-wrapper { padding: 0; }
.bs-color[b-4p1k6htz2e]::-webkit-color-swatch { border: 0; border-radius: 12px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.2); }
.bs-vis[b-4p1k6htz2e] { display: flex; align-items: center; }
.bs-new[b-4p1k6htz2e] { display: flex; gap: 10px; align-items: center; margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--border); }
.bs-new .input[b-4p1k6htz2e] { flex: 1; min-width: 0; }
@media (max-width: 640px) { .bs-new[b-4p1k6htz2e] { flex-wrap: wrap; } .bs-new .btn[b-4p1k6htz2e] { width: 100%; } }
/* /Components/Pages/Calendario/CalAgenda.razor.rz.scp.css */
.ag-stage[b-gd7ps24d9t] { perspective: 1600px; }
.turn-next[b-gd7ps24d9t] { animation: ag-next-b-gd7ps24d9t .6s var(--ease-out) both; }
.turn-prev[b-gd7ps24d9t] { animation: ag-prev-b-gd7ps24d9t .6s var(--ease-out) both; }
.turn-none[b-gd7ps24d9t] { animation: ag-none-b-gd7ps24d9t .6s var(--ease-out) both; }
@keyframes ag-next-b-gd7ps24d9t { from { opacity: 0; transform: translateY(40px) rotateX(-12deg); } }
@keyframes ag-prev-b-gd7ps24d9t { from { opacity: 0; transform: translateY(-40px) rotateX(12deg); } }
@keyframes ag-none-b-gd7ps24d9t { from { opacity: 0; transform: translateY(20px); } }

.ag-list[b-gd7ps24d9t] { position: relative; max-width: 860px; margin: 0 auto; }
.ag-list[b-gd7ps24d9t]::before { content: ""; position: absolute; left: 31px; top: 40px; bottom: 10px; width: 2px; border-radius: 2px; background: linear-gradient(180deg, var(--accent), var(--accent-2), transparent); opacity: .35; }
.ag-month[b-gd7ps24d9t] { font-size: 1.05rem; margin: 18px 0 10px 76px; color: var(--text-2); }
.ag-month:first-child[b-gd7ps24d9t] { margin-top: 0; }

.ag-day[b-gd7ps24d9t] { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; margin-bottom: 12px; }
.ag-day.past[b-gd7ps24d9t] { opacity: .7; }
.ag-date[b-gd7ps24d9t] { position: sticky; top: 150px; align-self: start; width: 64px; height: 64px; border-radius: 20px; border: 1px solid var(--border); cursor: pointer; color: var(--text);
    display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05;
    background: linear-gradient(160deg, rgba(40,40,100,.9), rgba(14,14,40,.95)); box-shadow: 0 12px 24px -14px rgba(0,0,0,.9); transition: transform .3s var(--ease-spring); }
.ag-date:hover[b-gd7ps24d9t] { transform: scale(1.06) rotate(-3deg); }
.ag-wd[b-gd7ps24d9t] { font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--text-2); }
.ag-num[b-gd7ps24d9t] { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; }
.ag-day.today .ag-date[b-gd7ps24d9t] { background: linear-gradient(145deg, var(--accent), var(--accent-2)); border-color: transparent; box-shadow: 0 16px 30px -12px var(--accent); }
.ag-day.today .ag-wd[b-gd7ps24d9t] { color: #fff; }

.ag-items[b-gd7ps24d9t] { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding-top: 4px; }
.ag-hol[b-gd7ps24d9t] { font-size: .82rem; font-weight: 650; color: #fbcfe8; padding: 8px 12px; border-radius: 12px; background: color-mix(in oklab, #EC4899 14%, transparent); }
.ag-ev[b-gd7ps24d9t] { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: 18px; cursor: pointer; text-align: left; color: var(--text);
    border: 1px solid color-mix(in oklab, var(--c) 30%, var(--border));
    background: linear-gradient(150deg, color-mix(in oklab, var(--c) 16%, rgba(255,255,255,.04)), rgba(255,255,255,.02));
    box-shadow: 0 14px 28px -20px var(--c); transition: transform .35s var(--ease-spring), box-shadow .3s; }
.ag-ev:hover[b-gd7ps24d9t] { transform: translateX(4px) translateY(-2px); box-shadow: 0 22px 36px -18px var(--c); }
.ag-ev.note[b-gd7ps24d9t] { border-style: dashed; }
.ag-dot[b-gd7ps24d9t] { width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; flex: none; background: var(--c); box-shadow: 0 0 12px var(--c); }
.ag-time[b-gd7ps24d9t] { width: 96px; flex: none; font-size: .8rem; font-weight: 700; color: var(--text-2); padding-top: 1px; }
.ag-body[b-gd7ps24d9t] { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.ag-title[b-gd7ps24d9t] { font-weight: 700; }
.ag-sub[b-gd7ps24d9t] { display: flex; flex-wrap: wrap; gap: 4px 10px; }
.ag-notes[b-gd7ps24d9t] { font-size: .84rem; color: var(--text-2); white-space: pre-line; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.ag-photos[b-gd7ps24d9t] { display: flex; flex: none; }
.ag-photos img[b-gd7ps24d9t] { width: 46px; height: 46px; border-radius: 12px; object-fit: cover; border: 2px solid #0b0a1f; margin-left: -14px; box-shadow: 0 6px 12px rgba(0,0,0,.5); transition: transform .3s var(--ease-spring); }
.ag-photos img:first-child[b-gd7ps24d9t] { margin-left: 0; }
.ag-ev:hover .ag-photos img[b-gd7ps24d9t] { transform: rotate(-4deg); }
.ag-ev:hover .ag-photos img:nth-child(2)[b-gd7ps24d9t] { transform: rotate(3deg) translateY(-3px); }
.ag-more[b-gd7ps24d9t] { display: flex; justify-content: center; margin: 18px 0 8px; }

@media (max-width: 700px) {
    .ag-list[b-gd7ps24d9t]::before { left: 23px; }
    .ag-month[b-gd7ps24d9t] { margin-left: 60px; }
    .ag-day[b-gd7ps24d9t] { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
    .ag-date[b-gd7ps24d9t] { width: 48px; height: 52px; border-radius: 16px; top: 140px; }
    .ag-num[b-gd7ps24d9t] { font-size: 1.25rem; }
    .ag-ev[b-gd7ps24d9t] { flex-wrap: wrap; gap: 6px 10px; padding: 10px 12px; }
    .ag-time[b-gd7ps24d9t] { width: auto; }
    .ag-body[b-gd7ps24d9t] { flex-basis: 100%; }
    .ag-photos img[b-gd7ps24d9t] { width: 38px; height: 38px; }
}
/* /Components/Pages/Calendario/CalDay.razor.rz.scp.css */
.d-stage[b-98kk0z8vmm] { perspective: 1800px; }
.d-page[b-98kk0z8vmm] { transform-style: preserve-3d; }
.turn-next[b-98kk0z8vmm] { animation: d-next-b-98kk0z8vmm .6s var(--ease-out) both; }
.turn-prev[b-98kk0z8vmm] { animation: d-prev-b-98kk0z8vmm .6s var(--ease-out) both; }
.turn-none[b-98kk0z8vmm] { animation: d-none-b-98kk0z8vmm .6s var(--ease-out) both; }
@keyframes d-next-b-98kk0z8vmm { from { opacity: 0; transform: translateX(14%) rotateY(-26deg) translateZ(-80px); } }
@keyframes d-prev-b-98kk0z8vmm { from { opacity: 0; transform: translateX(-14%) rotateY(26deg) translateZ(-80px); } }
@keyframes d-none-b-98kk0z8vmm { from { opacity: 0; transform: translateY(20px) scale(.97); } }

.d-grid[b-98kk0z8vmm] { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 20px; align-items: start; }
.d-left[b-98kk0z8vmm] { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 150px; }
@media (max-width: 1000px) { .d-grid[b-98kk0z8vmm] { grid-template-columns: minmax(0, 1fr); } .d-left[b-98kk0z8vmm] { position: static; } }

.d-hero[b-98kk0z8vmm] { position: relative; overflow: hidden; padding: 20px; border-radius: 28px; }
.d-orb[b-98kk0z8vmm] { position: absolute; width: 240px; height: 240px; right: -80px; top: -90px; border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle at 35% 35%, color-mix(in oklab, var(--accent-2) 80%, white), var(--accent) 55%, transparent 72%); opacity: .55; filter: blur(4px);
    animation: orb-b-98kk0z8vmm 9s ease-in-out infinite alternate; }
@keyframes orb-b-98kk0z8vmm { to { transform: translate(-30px, 20px) scale(1.12); } }
.d-date[b-98kk0z8vmm] { position: relative; display: flex; align-items: center; gap: 16px; }
.d-num[b-98kk0z8vmm] { font-family: var(--font-display); font-size: 4.2rem; font-weight: 700; line-height: .9; background: linear-gradient(160deg, #fff 30%, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 10px 20px rgba(0,0,0,.4)); }
.d-meta[b-98kk0z8vmm] { display: flex; flex-direction: column; line-height: 1.3; }
.d-wd[b-98kk0z8vmm] { font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; }
.d-rel[b-98kk0z8vmm] { font-size: .74rem; font-weight: 800; color: var(--accent-2); text-transform: uppercase; letter-spacing: .08em; margin-top: 2px; }
.d-hol[b-98kk0z8vmm] { position: relative; margin-top: 12px; font-weight: 650; font-size: .88rem; color: #fbcfe8; padding: 8px 12px; border-radius: 12px; background: color-mix(in oklab, #EC4899 16%, transparent); }
.d-stats[b-98kk0z8vmm] { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 16px 0; }
.d-stats div[b-98kk0z8vmm] { display: flex; flex-direction: column; align-items: center; padding: 8px; border-radius: 14px; background: rgba(0,0,0,.2); }
.d-stats b[b-98kk0z8vmm] { font-family: var(--font-display); font-size: 1.35rem; }
.d-stats span[b-98kk0z8vmm] { font-size: .7rem; color: var(--text-2); }
.d-actions[b-98kk0z8vmm] { position: relative; display: flex; gap: 8px; }
.d-actions .btn[b-98kk0z8vmm] { flex: 1; }

.d-note[b-98kk0z8vmm] { padding: 14px; border-radius: 22px; border-color: color-mix(in oklab, var(--c) 35%, var(--border));
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 14%, rgba(255,255,255,.04)), rgba(255,255,255,.02));
    animation: dn-in-b-98kk0z8vmm .6s var(--ease-spring) backwards; animation-delay: calc(var(--i, 0) * 70ms + 150ms); }
@keyframes dn-in-b-98kk0z8vmm { from { opacity: 0; transform: perspective(700px) rotateY(-30deg) translateX(-20px); } }
.dn-head[b-98kk0z8vmm] { width: 100%; display: flex; align-items: center; gap: 8px; border: 0; background: none; padding: 0; cursor: pointer; color: var(--text); text-align: left; }
.dn-ico[b-98kk0z8vmm] { font-size: 1.1rem; }
.dn-title[b-98kk0z8vmm] { flex: 1; min-width: 0; font-weight: 700; }
.dn-text[b-98kk0z8vmm] { margin: 8px 0 0; white-space: pre-line; color: var(--text-2); font-size: .9rem; max-height: 220px; overflow: auto; }
.dn-photos[b-98kk0z8vmm] { display: grid; gap: 6px; margin-top: 10px; }
.dn-photos.c1[b-98kk0z8vmm] { grid-template-columns: 1fr; }
.dn-photos.c2[b-98kk0z8vmm] { grid-template-columns: 1fr 1fr; }
.dn-photos.c3[b-98kk0z8vmm], .dn-photos.c4[b-98kk0z8vmm] { grid-template-columns: repeat(3, 1fr); }
.dn-photos.c1 .dn-ph[b-98kk0z8vmm] { aspect-ratio: 16 / 10; }
.dn-ph[b-98kk0z8vmm] { aspect-ratio: 1; padding: 0; border: 0; border-radius: 12px; overflow: hidden; cursor: zoom-in; background: rgba(255,255,255,.05); box-shadow: 0 10px 18px -12px rgba(0,0,0,.9); transition: transform .35s var(--ease-spring); }
.dn-ph img[b-98kk0z8vmm] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
.dn-ph:hover[b-98kk0z8vmm] { transform: translateY(-3px) rotateX(6deg); }
.dn-ph:hover img[b-98kk0z8vmm] { transform: scale(1.08); }
/* /Components/Pages/Calendario/CalendarioPage.razor.rz.scp.css */
/* ---------- Hero: pagina di calendario 3D con la data di oggi ---------- */
.hero-flip[b-evut39l3hb] { perspective: 700px; margin-left: auto; }
.flip-card[b-evut39l3hb] {
    position: relative; width: 118px; height: 132px; border-radius: 24px; padding: 14px 10px 10px; text-align: center;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 0;
    background: linear-gradient(180deg, color-mix(in oklab, var(--accent) 85%, #000) 0 34%, rgba(255,255,255,.96) 34% 100%);
    box-shadow: 0 30px 60px -22px color-mix(in oklab, var(--accent) 90%, transparent), 0 2px 0 rgba(255,255,255,.4) inset, 0 -10px 20px rgba(0,0,0,.08) inset;
    transform: rotateX(calc(var(--my) * -10deg + 8deg)) rotateY(calc(var(--mx) * 14deg - 12deg));
    transform-style: preserve-3d; animation: flip-in-b-evut39l3hb 1.1s var(--ease-spring) both .2s;
}
@keyframes flip-in-b-evut39l3hb { from { opacity: 0; transform: rotateX(-110deg) translateY(-30px); } }
.flip-card[b-evut39l3hb]::after { /* pagina che "si stacca" */
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 66%; border-radius: 0 0 24px 24px; pointer-events: none;
    background: linear-gradient(180deg, rgba(0,0,0,.08), transparent 30%);
}
.flip-ring[b-evut39l3hb] { position: absolute; top: -8px; left: 30px; width: 10px; height: 22px; border-radius: 6px; background: linear-gradient(90deg, #cbd5e1, #fff, #94a3b8); box-shadow: 0 3px 6px rgba(0,0,0,.4); }
.flip-ring.r2[b-evut39l3hb] { left: auto; right: 30px; }
.flip-month[b-evut39l3hb] { position: absolute; top: 12px; left: 0; right: 0; font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #fff; }
.flip-day[b-evut39l3hb] { font-family: var(--font-display); font-size: 3.4rem; font-weight: 700; line-height: .95; color: #111827; transform: translateZ(18px); }
.flip-wd[b-evut39l3hb] { font-size: .74rem; font-weight: 700; color: #4b5563; text-transform: capitalize; }

/* ---------- Barra strumenti ---------- */
.toolbar[b-evut39l3hb] {
    position: sticky; top: calc(64px + var(--safe-top)); z-index: 20;
    display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px;
    padding: 8px; margin-bottom: 18px; border-radius: 20px;
    background: linear-gradient(145deg, rgba(20,22,64,.8), rgba(8,12,34,.72));
    box-shadow: 0 20px 40px -24px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.08);
    animation: tb-in-b-evut39l3hb .7s var(--ease-spring) backwards .1s;
}
@keyframes tb-in-b-evut39l3hb { from { opacity: 0; transform: perspective(800px) rotateX(-40deg) translateY(-10px); } }
.tb-nav[b-evut39l3hb] { display: flex; align-items: center; justify-content: center; gap: 4px; min-width: 0; perspective: 600px; }
.tb-nav .btn[b-evut39l3hb] { font-size: 1.5rem; font-weight: 400; }
.tb-title[b-evut39l3hb] { font-size: 1.12rem; font-weight: 700; text-align: center; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: title-flip-b-evut39l3hb .5s var(--ease-out) both; }
.tb-title span[b-evut39l3hb] { background: linear-gradient(120deg, #fff 20%, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
@keyframes title-flip-b-evut39l3hb { from { opacity: 0; transform: rotateX(80deg) translateY(-6px); } to { opacity: 1; transform: none; } }
.tb-extra[b-evut39l3hb] { display: flex; align-items: center; gap: 6px; justify-content: flex-end; }
.tb-extra .is-today[b-evut39l3hb] { opacity: .55; }
.tb-date[b-evut39l3hb] { width: 150px; height: 34px; border-radius: 11px; font-size: .86rem; padding: 0 10px; }

@media (max-width: 1100px) {
    .toolbar[b-evut39l3hb] { grid-template-columns: 1fr auto; }
    .tb-views[b-evut39l3hb] { grid-column: 1 / -1; display: flex; }
    .tb-views > *[b-evut39l3hb] { flex: 1; }
    .tb-nav[b-evut39l3hb] { justify-content: flex-start; }
}
@media (max-width: 700px) {
    .toolbar[b-evut39l3hb] { top: calc(60px + var(--safe-top)); grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 6px; }
    .tb-nav[b-evut39l3hb] { justify-content: space-between; }
    .tb-title[b-evut39l3hb] { font-size: 1rem; }
    .tb-extra[b-evut39l3hb] { justify-content: stretch; }
    .tb-extra > *[b-evut39l3hb] { flex: 1 1 auto; }
    .tb-date[b-evut39l3hb] { width: auto; min-width: 0; }
    .tb-views button[b-evut39l3hb] { padding: 7px 2px; font-size: .74rem; }
}

/* ---------- Layout ---------- */
.cal-root[b-evut39l3hb] { position: relative; touch-action: pan-y; }
.cal-split[b-evut39l3hb] { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.cal-side[b-evut39l3hb] { position: sticky; top: 150px; display: flex; flex-direction: column; gap: 16px; }
.cal-hint[b-evut39l3hb] { margin: 12px 2px 0; text-align: center; }
@media (max-width: 1100px) {
    .cal-split[b-evut39l3hb] { grid-template-columns: minmax(0, 1fr); }
    .cal-side[b-evut39l3hb] { position: static; }
}
/* /Components/Pages/Calendario/CalMonth.razor.rz.scp.css */
/* ---------- Palcoscenico 3D e transizione "a pagina" tra i mesi ---------- */
.m-stage[b-gw1ziudb4n] { perspective: 1800px; perspective-origin: 50% 30%; }
.m-page[b-gw1ziudb4n] { transform-style: preserve-3d; will-change: transform; }
.turn-next[b-gw1ziudb4n] { transform-origin: 0% 50%; animation: turn-next-b-gw1ziudb4n .75s var(--ease-out) both; }
.turn-prev[b-gw1ziudb4n] { transform-origin: 100% 50%; animation: turn-prev-b-gw1ziudb4n .75s var(--ease-out) both; }
.turn-none[b-gw1ziudb4n] { animation: turn-none-b-gw1ziudb4n .7s var(--ease-out) both; }
@keyframes turn-next-b-gw1ziudb4n { from { opacity: 0; transform: translateX(28%) rotateY(-62deg) translateZ(-120px); filter: blur(4px); } 60% { opacity: 1; filter: none; } to { opacity: 1; transform: none; } }
@keyframes turn-prev-b-gw1ziudb4n { from { opacity: 0; transform: translateX(-28%) rotateY(62deg) translateZ(-120px); filter: blur(4px); } 60% { opacity: 1; filter: none; } to { opacity: 1; transform: none; } }
@keyframes turn-none-b-gw1ziudb4n { from { opacity: 0; transform: rotateX(18deg) translateZ(-140px); } to { opacity: 1; transform: none; } }

.m-wd[b-gw1ziudb4n] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; text-align: center; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.m-wd .we[b-gw1ziudb4n] { color: var(--text-3); }
.m-grid[b-gw1ziudb4n] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; transform-style: preserve-3d; }

/* ---------- Cella ---------- */
.cell[b-gw1ziudb4n] {
    position: relative; min-width: 0; min-height: 118px; padding: 8px 6px 6px; border-radius: 18px; cursor: pointer; overflow: hidden;
    display: flex; flex-direction: column; gap: 4px; outline: none;
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
    border: 1px solid var(--border);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 24px -18px rgba(0,0,0,.8);
    transform-style: preserve-3d;
    transition: transform .45s var(--ease-spring), box-shadow .35s var(--ease-out), border-color .3s, background .3s;
    animation: cell-in-b-gw1ziudb4n .55s var(--ease-out) backwards; animation-delay: calc(100ms + var(--i) * 10ms);
}
@keyframes cell-in-b-gw1ziudb4n { from { opacity: 0; transform: translateZ(-60px) rotateX(-35deg) translateY(14px); } to { opacity: 1; transform: none; } }
.cell:hover[b-gw1ziudb4n] { transform: translateY(-4px) translateZ(22px) rotateX(7deg); border-color: var(--border-strong); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 26px 40px -18px rgba(0,0,0,.9); z-index: 2; }
.cell:focus-visible[b-gw1ziudb4n] { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.cell.weekend[b-gw1ziudb4n] { background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 6px, transparent 6px 12px), rgba(0,0,0,.16); }
.cell.weekend .c-num[b-gw1ziudb4n] { color: var(--text-2); }
.cell.out[b-gw1ziudb4n] { opacity: .38; }
.cell.out:hover[b-gw1ziudb4n] { opacity: .85; }
.cell.past:not(.today) .c-num[b-gw1ziudb4n] { color: var(--text-3); }
.cell.holiday[b-gw1ziudb4n] { border-color: color-mix(in oklab, #EC4899 40%, var(--border)); background: linear-gradient(160deg, color-mix(in oklab, #EC4899 14%, transparent), transparent 70%); }
.cell.selected[b-gw1ziudb4n] { border-color: color-mix(in oklab, var(--accent-2) 70%, transparent); background: linear-gradient(160deg, color-mix(in oklab, var(--accent) 30%, transparent), color-mix(in oklab, var(--accent-2) 8%, transparent)); box-shadow: 0 0 0 1px color-mix(in oklab, var(--accent-2) 60%, transparent), 0 18px 36px -18px var(--accent); }
.cell.over[b-gw1ziudb4n] { transform: translateZ(26px) scale(1.03); border-color: #fff; box-shadow: 0 0 0 2px var(--accent-2), 0 0 30px -4px var(--accent-2); }

.cell.today .c-num[b-gw1ziudb4n] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; width: 28px; height: 28px; border-radius: 10px; display: grid; place-items: center; box-shadow: 0 6px 14px -4px var(--accent); }
.cell.today[b-gw1ziudb4n]::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; border: 2px solid var(--accent-2); animation: today-pulse-b-gw1ziudb4n 2.4s ease-out infinite; }
@keyframes today-pulse-b-gw1ziudb4n { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(1.12); } }

/* Foto di sfondo del giorno (prima foto degli eventi) */
.c-photo[b-gw1ziudb4n] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .22; filter: saturate(1.2); pointer-events: none; transition: opacity .4s, transform .8s var(--ease-out);
    mask-image: linear-gradient(180deg, rgba(0,0,0,.2), #000 60%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.2), #000 60%); }
.cell:hover .c-photo[b-gw1ziudb4n] { opacity: .4; transform: scale(1.06); }

.c-top[b-gw1ziudb4n] { position: relative; display: flex; align-items: center; gap: 4px; min-height: 28px; padding: 0 2px; transform: translateZ(14px); }
.c-num[b-gw1ziudb4n] { font-weight: 700; font-size: .98rem; line-height: 1; flex: none; }
.c-hol[b-gw1ziudb4n] { flex: 1; min-width: 0; font-size: .62rem; font-weight: 700; color: #fbcfe8; text-transform: uppercase; letter-spacing: .03em; }
.c-add[b-gw1ziudb4n] { margin-left: auto; width: 24px; height: 24px; border-radius: 8px; border: 0; cursor: pointer; font-weight: 700; color: #fff; flex: none;
    background: linear-gradient(135deg, var(--accent), var(--accent-2)); opacity: 0; transform: scale(.5) rotate(-90deg); transition: all .3s var(--ease-spring); }
.cell:hover .c-add[b-gw1ziudb4n], .c-add:focus-visible[b-gw1ziudb4n] { opacity: 1; transform: none; }

.c-events[b-gw1ziudb4n] { position: relative; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.chip-ev[b-gw1ziudb4n] {
    --c: var(--accent);
    display: flex; align-items: center; gap: 4px; min-width: 0; height: 22px; padding: 0 6px; border-radius: 7px; cursor: pointer; text-align: left;
    font-size: .72rem; font-weight: 600; color: var(--text); border: 0;
    background: color-mix(in oklab, var(--c) 20%, transparent);
    box-shadow: inset 3px 0 0 var(--c);
    transition: transform .25s var(--ease-spring), background .2s, box-shadow .25s;
    animation: chip-in-b-gw1ziudb4n .45s var(--ease-spring) backwards; animation-delay: calc(260ms + var(--i) * 10ms);
}
@keyframes chip-in-b-gw1ziudb4n { from { opacity: 0; transform: translateX(-8px) scale(.9); } }
.chip-ev:hover[b-gw1ziudb4n] { background: color-mix(in oklab, var(--c) 38%, transparent); transform: translateX(2px) translateZ(10px); box-shadow: inset 3px 0 0 var(--c), 0 8px 16px -8px var(--c); }
.chip-ev.solid[b-gw1ziudb4n] { background: linear-gradient(135deg, color-mix(in oklab, var(--c) 78%, #000), color-mix(in oklab, var(--c) 55%, #000)); color: #fff; box-shadow: 0 4px 10px -6px var(--c), inset 0 1px 0 rgba(255,255,255,.2); }
.chip-ev.note[b-gw1ziudb4n] { background: color-mix(in oklab, var(--c) 14%, rgba(255,255,255,.04)); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--c) 45%, transparent); color: var(--text); }
.chip-ev.multi[b-gw1ziudb4n] { border-radius: 7px; }
.chip-ev.cont-l[b-gw1ziudb4n] { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -8px; padding-left: 12px; }
.chip-ev.cont-r[b-gw1ziudb4n] { border-top-right-radius: 0; border-bottom-right-radius: 0; margin-right: -8px; }
.chip-ev.done[b-gw1ziudb4n] { opacity: .6; }
.chip-ev[draggable="true"][b-gw1ziudb4n] { cursor: grab; }
.ce-time[b-gw1ziudb4n] { font-size: .66rem; font-weight: 700; opacity: .85; flex: none; }
.ce-ico[b-gw1ziudb4n], .ce-ph[b-gw1ziudb4n] { flex: none; font-size: .7rem; }
.ce-title[b-gw1ziudb4n] { min-width: 0; flex: 1; }
.ce-more[b-gw1ziudb4n] { font-size: .66rem; font-weight: 700; color: var(--text-2); padding-left: 6px; }

.c-dots[b-gw1ziudb4n] { display: flex; justify-content: center; gap: 3px; margin-top: auto; }
.c-dots i[b-gw1ziudb4n] { width: 6px; height: 6px; border-radius: 50%; background: var(--c); box-shadow: 0 0 8px var(--c); }
.c-dots i.note[b-gw1ziudb4n] { background: transparent; box-shadow: inset 0 0 0 1.5px var(--c); }

/* ---------- Mobile ---------- */
@media (max-width: 700px) {
    .m-wd[b-gw1ziudb4n], .m-grid[b-gw1ziudb4n] { gap: 4px; }
    .cell[b-gw1ziudb4n] { min-height: 58px; padding: 6px 3px 5px; border-radius: 13px; align-items: center; }
    .c-top[b-gw1ziudb4n] { justify-content: center; min-height: 24px; }
    .c-num[b-gw1ziudb4n] { font-size: .86rem; }
    .cell.today .c-num[b-gw1ziudb4n] { width: 24px; height: 24px; border-radius: 8px; }
    .cell:hover[b-gw1ziudb4n] { transform: none; }
    .c-dots[b-gw1ziudb4n] { display: flex !important; }
}
/* /Components/Pages/Calendario/CalWeek.razor.rz.scp.css */
.w-stage[b-y5bmcwd1l2] { perspective: 1800px; }
.w-page[b-y5bmcwd1l2] { transform-style: preserve-3d; }
.turn-next[b-y5bmcwd1l2] { animation: w-next-b-y5bmcwd1l2 .65s var(--ease-out) both; }
.turn-prev[b-y5bmcwd1l2] { animation: w-prev-b-y5bmcwd1l2 .65s var(--ease-out) both; }
.turn-none[b-y5bmcwd1l2] { animation: w-none-b-y5bmcwd1l2 .6s var(--ease-out) both; }
@keyframes w-next-b-y5bmcwd1l2 { from { opacity: 0; transform: translateX(16%) rotateY(-30deg) translateZ(-100px); } }
@keyframes w-prev-b-y5bmcwd1l2 { from { opacity: 0; transform: translateX(-16%) rotateY(30deg) translateZ(-100px); } }
@keyframes w-none-b-y5bmcwd1l2 { from { opacity: 0; transform: rotateX(14deg) translateZ(-100px); } }

.only-mobile-block[b-y5bmcwd1l2] { display: none; }
@media (max-width: 700px) { .only-mobile-block[b-y5bmcwd1l2] { display: block; } }

.wl-day[b-y5bmcwd1l2] { margin-bottom: 10px; padding: 10px; border-radius: 20px; border: 1px solid var(--border); background: linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
    animation: wl-in-b-y5bmcwd1l2 .55s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 50ms); transform-origin: 50% 0; }
@keyframes wl-in-b-y5bmcwd1l2 { from { opacity: 0; transform: rotateX(-50deg) translateY(-10px); } }
.wl-day.today[b-y5bmcwd1l2] { border-color: color-mix(in oklab, var(--accent-2) 60%, transparent); box-shadow: 0 0 0 1px color-mix(in oklab, var(--accent-2) 40%, transparent), 0 16px 30px -18px var(--accent); }
.wl-day.we[b-y5bmcwd1l2] { background: rgba(0,0,0,.14); }
.wl-head[b-y5bmcwd1l2] { width: 100%; display: flex; align-items: center; gap: 10px; border: 0; background: none; padding: 0; color: var(--text); cursor: pointer; text-align: left; }
.wl-num[b-y5bmcwd1l2] { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; background: rgba(255,255,255,.08); flex: none; }
.wl-day.today .wl-num[b-y5bmcwd1l2] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; }
.wl-name[b-y5bmcwd1l2] { flex: 1; min-width: 0; font-weight: 650; font-size: .92rem; }
.wl-count[b-y5bmcwd1l2] { font-size: .72rem; font-weight: 800; color: var(--accent-2); }
.wl-items[b-y5bmcwd1l2] { display: flex; flex-direction: column; gap: 5px; margin-top: 8px; }
.wl-ev[b-y5bmcwd1l2] { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; border: 0; cursor: pointer; text-align: left; color: var(--text);
    background: color-mix(in oklab, var(--c) 18%, rgba(255,255,255,.03)); box-shadow: inset 3px 0 0 var(--c); }
.wl-ev.note[b-y5bmcwd1l2] { box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--c) 45%, transparent); }
.wl-time[b-y5bmcwd1l2] { font-size: .72rem; font-weight: 700; color: var(--text-2); flex: none; }
.wl-title[b-y5bmcwd1l2] { flex: 1; min-width: 0; font-weight: 650; font-size: .88rem; }
.wl-ph[b-y5bmcwd1l2] { width: 30px; height: 30px; border-radius: 8px; object-fit: cover; flex: none; }
.wl-add[b-y5bmcwd1l2] { margin-top: 6px; border: 1px dashed var(--border-strong); background: none; border-radius: 10px; padding: 6px 10px; color: var(--text-3); font-size: .78rem; cursor: pointer; }
/* /Components/Pages/Calendario/CalYear.razor.rz.scp.css */
.y-stage[b-w2hj6ryr8e] { perspective: 2000px; }
.y-page[b-w2hj6ryr8e] { transform-style: preserve-3d; }
.turn-next[b-w2hj6ryr8e] { animation: y-next-b-w2hj6ryr8e .7s var(--ease-out) both; }
.turn-prev[b-w2hj6ryr8e] { animation: y-prev-b-w2hj6ryr8e .7s var(--ease-out) both; }
.turn-none[b-w2hj6ryr8e] { animation: y-none-b-w2hj6ryr8e .6s var(--ease-out) both; }
@keyframes y-next-b-w2hj6ryr8e { from { opacity: 0; transform: translateX(12%) rotateY(-24deg) translateZ(-160px); } to { opacity: 1; transform: none; } }
@keyframes y-prev-b-w2hj6ryr8e { from { opacity: 0; transform: translateX(-12%) rotateY(24deg) translateZ(-160px); } to { opacity: 1; transform: none; } }
@keyframes y-none-b-w2hj6ryr8e { from { opacity: 0; transform: translateZ(-120px); } to { opacity: 1; transform: none; } }

.y-summary[b-w2hj6ryr8e] { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.ys[b-w2hj6ryr8e] { display: flex; align-items: baseline; gap: 8px; padding: 10px 16px; border-radius: 16px; background: rgba(255,255,255,.05); border: 1px solid var(--border); animation: ys-in-b-w2hj6ryr8e .6s var(--ease-spring) both; }
.ys:nth-child(2)[b-w2hj6ryr8e] { animation-delay: .08s; } .ys:nth-child(3)[b-w2hj6ryr8e] { animation-delay: .16s; }
@keyframes ys-in-b-w2hj6ryr8e { from { opacity: 0; transform: translateY(12px) scale(.9); } }
.ys b[b-w2hj6ryr8e] { font-family: var(--font-display); font-size: 1.3rem; background: linear-gradient(120deg, #fff, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ys span[b-w2hj6ryr8e] { font-size: .8rem; color: var(--text-2); }

.y-grid[b-w2hj6ryr8e] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; perspective: 1400px; }
@media (max-width: 1100px) { .y-grid[b-w2hj6ryr8e] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .y-grid[b-w2hj6ryr8e] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

.y-cell[b-w2hj6ryr8e] { animation: mini-in-b-w2hj6ryr8e .8s var(--ease-spring) both; animation-delay: calc(var(--i) * 55ms); transform-origin: 50% 0; }
@keyframes mini-in-b-w2hj6ryr8e { from { opacity: 0; transform: rotateX(-75deg) translateY(-30px) translateZ(-120px); } to { opacity: 1; transform: none; } }

.mini[b-w2hj6ryr8e] { padding: 14px 14px 12px; border-radius: 22px; }
.mini.current[b-w2hj6ryr8e] { border-color: color-mix(in oklab, var(--accent-2) 55%, var(--border)); box-shadow: var(--shadow-glow); }
.mini-head[b-w2hj6ryr8e] { width: 100%; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; border: 0; background: none; padding: 0 2px 8px; cursor: pointer; color: var(--text); text-align: left; }
.mini-head:hover .mini-name[b-w2hj6ryr8e] { background: linear-gradient(120deg, #fff, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mini-name[b-w2hj6ryr8e] { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; }
.mini-count[b-w2hj6ryr8e] { font-size: .74rem; font-weight: 800; color: #fff; min-width: 22px; text-align: center; padding: 1px 6px; border-radius: 99px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); }
.mini-count:empty[b-w2hj6ryr8e] { display: none; }
.mini-wd[b-w2hj6ryr8e], .mini-grid[b-w2hj6ryr8e] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.mini-wd[b-w2hj6ryr8e] { font-size: .58rem; font-weight: 700; color: var(--text-3); text-align: center; margin-bottom: 3px; }

.hm[b-w2hj6ryr8e] {
    position: relative; aspect-ratio: 1; min-width: 0; border-radius: 6px; padding: 0; cursor: pointer;
    display: grid; place-items: center; font-size: .6rem; font-weight: 600; color: var(--text-3);
    background: rgba(255,255,255,.05); border: 1px solid transparent;
    transition: transform .3s var(--ease-spring), box-shadow .3s, background .3s;
    animation: hm-in-b-w2hj6ryr8e .5s var(--ease-out) backwards; animation-delay: calc(var(--i) * 55ms + var(--j) * 9ms + 200ms);
}
@keyframes hm-in-b-w2hj6ryr8e { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: none; } }
.hm.blank[b-w2hj6ryr8e] { background: transparent; pointer-events: none; animation: none; }
.hm.we[b-w2hj6ryr8e] { background: rgba(0,0,0,.25); }
.hm.hol[b-w2hj6ryr8e] { border-color: color-mix(in oklab, #EC4899 70%, transparent); color: #fbcfe8; }
.hm.on[b-w2hj6ryr8e] { background: radial-gradient(circle at 35% 30%, color-mix(in oklab, var(--c) 55%, white), var(--c)); opacity: calc(.35 + var(--a) * .65); color: #fff; box-shadow: 0 0 10px -1px var(--c), inset 0 1px 0 rgba(255,255,255,.35); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.hm.today[b-w2hj6ryr8e] { outline: 2px solid #fff; outline-offset: 1px; z-index: 1; animation: hm-in-b-w2hj6ryr8e .5s var(--ease-out) backwards, hm-today-b-w2hj6ryr8e 2s ease-in-out infinite 1.5s; }
@keyframes hm-today-b-w2hj6ryr8e { 50% { box-shadow: 0 0 16px 2px var(--accent-2); } }
.hm:hover[b-w2hj6ryr8e] { transform: scale(1.5) translateZ(20px); z-index: 3; opacity: 1; box-shadow: 0 8px 20px -4px rgba(0,0,0,.8), 0 0 14px var(--c); }

@media (max-width: 760px) {
    .mini[b-w2hj6ryr8e] { padding: 10px 10px 9px; border-radius: 18px; }
    .mini-name[b-w2hj6ryr8e] { font-size: .92rem; }
    .hm[b-w2hj6ryr8e] { border-radius: 4px; font-size: .56rem; font-weight: 700; animation: none; }
    .hm.today[b-w2hj6ryr8e] { animation: hm-today-b-w2hj6ryr8e 2s ease-in-out infinite 1.5s; }
    .hm:hover[b-w2hj6ryr8e] { transform: none; }
}
/* /Components/Pages/Calendario/DayPanel.razor.rz.scp.css */
.day-panel[b-ob44ial4nk] { padding: 16px; border-radius: 24px; animation: dp-in-b-ob44ial4nk .6s var(--ease-spring) both; transform-origin: 50% 0; scroll-margin-top: 150px; }
@keyframes dp-in-b-ob44ial4nk { from { opacity: 0; transform: perspective(900px) rotateX(-28deg) translateY(-10px); } }
.dp-head[b-ob44ial4nk] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.dp-date[b-ob44ial4nk] { display: flex; align-items: center; gap: 12px; min-width: 0; }
.dp-num[b-ob44ial4nk] { width: 48px; height: 52px; border-radius: 16px; display: grid; place-items: center; font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; color: #fff;
    background: linear-gradient(145deg, var(--accent), var(--accent-2)); box-shadow: 0 14px 26px -12px var(--accent), inset 0 1px 0 rgba(255,255,255,.3); flex: none; }
.dp-meta[b-ob44ial4nk] { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.dp-meta b[b-ob44ial4nk] { font-family: var(--font-display); font-size: 1.05rem; }
.dp-hol[b-ob44ial4nk] { font-size: .8rem; font-weight: 650; color: #fbcfe8; padding: 6px 10px; border-radius: 10px; background: color-mix(in oklab, #EC4899 16%, transparent); margin-bottom: 8px; }
.dp-empty[b-ob44ial4nk] { margin: 6px 2px 12px; }

.dp-list[b-ob44ial4nk] { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.dp-list li[b-ob44ial4nk] { animation: dp-item-b-ob44ial4nk .5s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 50ms + 80ms); }
@keyframes dp-item-b-ob44ial4nk { from { opacity: 0; transform: translateX(16px) rotateY(-20deg); } }
.dp-item[b-ob44ial4nk] { width: 100%; display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 0; border-radius: 14px; border: 1px solid transparent; cursor: pointer; text-align: left;
    background: color-mix(in oklab, var(--c) 10%, rgba(255,255,255,.03)); transition: transform .3s var(--ease-spring), background .2s, border-color .2s; }
.dp-item:hover[b-ob44ial4nk] { transform: translateX(3px); background: color-mix(in oklab, var(--c) 20%, rgba(255,255,255,.04)); border-color: color-mix(in oklab, var(--c) 40%, transparent); }
.dp-bar[b-ob44ial4nk] { width: 4px; align-self: stretch; border-radius: 0 4px 4px 0; background: var(--c); box-shadow: 0 0 10px var(--c); flex: none; }
.dp-item.note .dp-bar[b-ob44ial4nk] { background: repeating-linear-gradient(180deg, var(--c) 0 4px, transparent 4px 7px); box-shadow: none; }
.dp-time[b-ob44ial4nk] { width: 42px; font-size: .78rem; font-weight: 700; color: var(--text-2); flex: none; text-align: center; }
.dp-body[b-ob44ial4nk] { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.dp-title[b-ob44ial4nk] { font-weight: 650; font-size: .9rem; }
.dp-ph[b-ob44ial4nk] { position: relative; width: 38px; height: 38px; border-radius: 10px; overflow: hidden; flex: none; box-shadow: 0 6px 12px -6px rgba(0,0,0,.8); }
.dp-ph img[b-ob44ial4nk] { width: 100%; height: 100%; object-fit: cover; }
.dp-ph b[b-ob44ial4nk] { position: absolute; inset: 0; display: grid; place-items: center; font-size: .7rem; background: rgba(0,0,0,.45); color: #fff; }
.dp-actions[b-ob44ial4nk] { display: flex; gap: 8px; }
.dp-actions .btn[b-ob44ial4nk] { flex: 1; }
/* /Components/Pages/Calendario/EventSheet.razor.rz.scp.css */
.es[b-g7wk1khzfr] { display: flex; flex-direction: column; gap: 16px; }
.es-kind[b-g7wk1khzfr] { align-self: flex-start; }
.es-series[b-g7wk1khzfr] { font-size: .82rem; padding: 8px 12px; border-radius: 12px; background: color-mix(in oklab, var(--c) 16%, transparent); border: 1px solid color-mix(in oklab, var(--c) 40%, transparent); }
.es-title[b-g7wk1khzfr] { font-family: var(--font-display); font-weight: 700; border-color: color-mix(in oklab, var(--c) 45%, var(--border)); box-shadow: 0 0 0 0 transparent; transition: box-shadow .3s, border-color .3s; }
.es-title:focus[b-g7wk1khzfr] { box-shadow: 0 0 0 4px color-mix(in oklab, var(--c) 25%, transparent); }

.es-books[b-g7wk1khzfr] { gap: 8px; }
.es-books .chip[b-g7wk1khzfr] { --bc: var(--accent); }
.es-books .chip.active[b-g7wk1khzfr] { background: color-mix(in oklab, var(--bc) 32%, transparent); border-color: color-mix(in oklab, var(--bc) 70%, transparent); }
.es-dot[b-g7wk1khzfr] { width: 10px; height: 10px; border-radius: 50%; background: var(--bc); box-shadow: 0 0 8px var(--bc); display: inline-block; }

.es-when[b-g7wk1khzfr] { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 20px; }
.es-allday[b-g7wk1khzfr] { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-weight: 650; cursor: pointer; }
.es-row[b-g7wk1khzfr] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.es-row > .label[b-g7wk1khzfr] { width: 64px; flex: none; }
.es-row > .input[type=date][b-g7wk1khzfr] { flex: 1 1 150px; min-width: 0; }
.es-row > .select[b-g7wk1khzfr] { flex: 1 1 170px; min-width: 0; }
.es-time[b-g7wk1khzfr] { width: 118px; flex: none; }
.es-dur[b-g7wk1khzfr] { padding-left: 72px; margin-top: -4px; }
.es-every[b-g7wk1khzfr] { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; color: var(--text-2); }
.es-num[b-g7wk1khzfr] { width: 64px; text-align: center; padding: 0 6px; }
.es-rule[b-g7wk1khzfr] { padding-left: 72px; }

.es-loc[b-g7wk1khzfr] { display: flex; gap: 8px; align-items: center; }
.es-loc .input[b-g7wk1khzfr] { flex: 1; min-width: 0; }
.es-notes[b-g7wk1khzfr] { min-height: 110px; field-sizing: content; max-height: 50vh; resize: vertical; }

.es-colors[b-g7wk1khzfr] { display: flex; flex-wrap: wrap; gap: 8px; }
.es-color[b-g7wk1khzfr] { width: 30px; height: 30px; border-radius: 50%; border: 0; cursor: pointer; background: var(--sw); color: #fff; font-size: .7rem; font-weight: 800;
    box-shadow: 0 4px 10px -4px var(--sw), inset 0 0 0 2px rgba(255,255,255,.15); transition: transform .3s var(--ease-spring), box-shadow .2s; }
.es-color:hover[b-g7wk1khzfr] { transform: scale(1.15); }
.es-color.on[b-g7wk1khzfr] { transform: scale(1.12); box-shadow: 0 0 0 3px #0b0a1f, 0 0 0 5px var(--sw), 0 6px 16px -4px var(--sw); }
.es-color.auto[b-g7wk1khzfr] { background: conic-gradient(from 90deg, var(--sw), color-mix(in oklab, var(--sw) 40%, #000), var(--sw)); }

.es-confirm[b-g7wk1khzfr] { padding: 14px; border-radius: 18px; background: color-mix(in oklab, var(--danger) 12%, transparent); border: 1px solid color-mix(in oklab, var(--danger) 45%, transparent); animation: es-shake-b-g7wk1khzfr .45s var(--ease-out); }
.es-confirm p[b-g7wk1khzfr] { margin: 0 0 10px; }
.es-confirm-actions[b-g7wk1khzfr] { display: flex; flex-wrap: wrap; gap: 8px; }
@keyframes es-shake-b-g7wk1khzfr { 20% { transform: translateX(-6px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(2px); } }

@media (max-width: 640px) {
    .es-row > .label[b-g7wk1khzfr] { width: 100%; }
    .es-dur[b-g7wk1khzfr], .es-rule[b-g7wk1khzfr] { padding-left: 0; }
    .es-time[b-g7wk1khzfr] { flex: 1 1 100px; width: auto; }
    .es-kind[b-g7wk1khzfr] { align-self: stretch; display: flex; }
    .es-kind > *[b-g7wk1khzfr] { flex: 1; }
}
/* /Components/Pages/Calendario/TimeGrid.razor.rz.scp.css */
.tg[b-m06npvd5gg] { --hour-h: 52px; --lbl-w: 56px; border-radius: 24px; overflow: hidden; border: 1px solid var(--border);
    background: linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.015)); box-shadow: var(--shadow-2); }
.tg.detailed[b-m06npvd5gg] { --hour-h: 64px; }

/* Intestazione giorni */
.tg-head[b-m06npvd5gg] { display: grid; grid-template-columns: var(--lbl-w) repeat(var(--days), minmax(0, 1fr)); border-bottom: 1px solid var(--border); }
.tg-corner[b-m06npvd5gg] { display: grid; place-items: center; font-size: .7rem; font-weight: 800; color: var(--text-3); }
.tg-day[b-m06npvd5gg] { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px; border: 0; background: none; cursor: pointer; color: var(--text); position: relative; transition: background .2s; }
.tg-day:hover[b-m06npvd5gg] { background: rgba(255,255,255,.05); }
.tgd-name[b-m06npvd5gg] { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.tgd-num[b-m06npvd5gg] { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 13px; transition: transform .3s var(--ease-spring); }
.tg-day:hover .tgd-num[b-m06npvd5gg] { transform: translateY(-2px) scale(1.06); }
.tg-day.today .tgd-num[b-m06npvd5gg] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; box-shadow: 0 10px 20px -8px var(--accent); }
.tg-day.we .tgd-name[b-m06npvd5gg] { color: var(--text-3); }
.tgd-hol[b-m06npvd5gg] { position: absolute; top: 6px; right: 8px; font-size: .75rem; }

/* Riga "tutto il giorno" */
.tg-allday[b-m06npvd5gg] { display: grid; grid-template-columns: var(--lbl-w) repeat(var(--days), minmax(0, 1fr)); border-bottom: 1px solid var(--border); background: rgba(0,0,0,.12); }
.tg-lbl[b-m06npvd5gg] { font-size: .6rem; line-height: 1.15; color: var(--text-3); text-align: right; padding: 8px 8px 0 0; text-transform: uppercase; font-weight: 700; letter-spacing: .04em; }
.ad-col[b-m06npvd5gg] { display: flex; flex-direction: column; gap: 3px; padding: 5px 4px; min-height: 36px; min-width: 0; border-left: 1px solid rgba(255,255,255,.05); transition: background .2s; }
.ad-col.over[b-m06npvd5gg] { background: color-mix(in oklab, var(--accent-2) 16%, transparent); }
.ad-hol[b-m06npvd5gg] { font-size: .7rem; font-weight: 650; color: #fbcfe8; padding: 3px 6px; }
.ad-ev[b-m06npvd5gg] { display: flex; align-items: center; gap: 4px; min-width: 0; height: 24px; padding: 0 8px; border-radius: 8px; border: 0; cursor: pointer; text-align: left;
    font-size: .74rem; font-weight: 650; color: #fff; background: linear-gradient(135deg, color-mix(in oklab, var(--c) 78%, #000), color-mix(in oklab, var(--c) 55%, #000));
    box-shadow: 0 4px 10px -6px var(--c); transition: transform .25s var(--ease-spring); animation: ad-in-b-m06npvd5gg .45s var(--ease-spring) backwards .2s; }
@keyframes ad-in-b-m06npvd5gg { from { opacity: 0; transform: scaleX(.6); } }
.ad-ev:hover[b-m06npvd5gg] { transform: translateY(-1px) scale(1.02); }
.ad-ev.note[b-m06npvd5gg] { background: color-mix(in oklab, var(--c) 16%, rgba(255,255,255,.04)); color: var(--text); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--c) 50%, transparent); }
.ad-ph[b-m06npvd5gg] { margin-left: auto; font-size: .66rem; }

/* Corpo scorrevole */
.tg-scroll[b-m06npvd5gg] { max-height: min(68vh, 720px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.tg-body[b-m06npvd5gg] { position: relative; display: grid; grid-template-columns: var(--lbl-w) repeat(var(--days), minmax(0, 1fr)); height: calc(var(--hour-h) * 24); }
.tg-hours[b-m06npvd5gg] { position: relative; }
.tg-hours span[b-m06npvd5gg] { display: block; height: var(--hour-h); font-size: .66rem; font-weight: 600; color: var(--text-3); text-align: right; padding-right: 8px; transform: translateY(-.55em); }

.tg-col[b-m06npvd5gg] { position: relative; border-left: 1px solid rgba(255,255,255,.05);
    background-image: repeating-linear-gradient(180deg, rgba(255,255,255,.06) 0 1px, transparent 1px calc(var(--hour-h) / 2), rgba(255,255,255,.025) calc(var(--hour-h) / 2) calc(var(--hour-h) / 2 + 1px), transparent calc(var(--hour-h) / 2 + 1px) var(--hour-h)); }
.tg-col.we[b-m06npvd5gg] { background-color: rgba(0,0,0,.12); }
.tg-col.today[b-m06npvd5gg] { background-color: color-mix(in oklab, var(--accent) 7%, transparent); }
.tg-col.over[b-m06npvd5gg] { background-color: color-mix(in oklab, var(--accent-2) 12%, transparent); }
.slot[b-m06npvd5gg] { display: block; width: 100%; height: var(--hour-h); border: 0; padding: 0; background: none; cursor: copy; position: relative; }
.slot:hover[b-m06npvd5gg] { background: linear-gradient(180deg, color-mix(in oklab, var(--accent) 16%, transparent), transparent); }
.slot:hover[b-m06npvd5gg]::after { content: "+"; position: absolute; top: 4px; left: 8px; font-weight: 800; color: var(--accent-2); }

/* Eventi con orario */
.ev[b-m06npvd5gg] { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: 1px; min-height: 20px; padding: 4px 7px; border-radius: 10px; overflow: hidden; cursor: pointer; text-align: left;
    color: #fff; border: 0; border-left: 3px solid color-mix(in oklab, var(--c) 60%, white);
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 72%, #0b0a1f), color-mix(in oklab, var(--c) 45%, #0b0a1f));
    box-shadow: 0 10px 22px -12px var(--c), inset 0 1px 0 rgba(255,255,255,.16);
    transition: transform .3s var(--ease-spring), box-shadow .3s, z-index 0s;
    animation: ev-in-b-m06npvd5gg .55s var(--ease-spring) backwards .25s; transform-origin: 50% 0; }
@keyframes ev-in-b-m06npvd5gg { from { opacity: 0; transform: rotateX(-60deg) scale(.9); } }
.ev:hover[b-m06npvd5gg] { transform: translateX(2px) scale(1.02); z-index: 5; box-shadow: 0 20px 30px -12px var(--c), inset 0 1px 0 rgba(255,255,255,.2); }
.ev.past[b-m06npvd5gg] { opacity: .62; }
.ev.short[b-m06npvd5gg] { flex-direction: row; align-items: center; gap: 6px; padding-top: 1px; padding-bottom: 1px; }
.ev-title[b-m06npvd5gg] { font-size: .76rem; font-weight: 700; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ev.short .ev-title[b-m06npvd5gg] { -webkit-line-clamp: 1; flex: 1; min-width: 0; }
.ev-time[b-m06npvd5gg] { font-size: .66rem; opacity: .85; font-weight: 600; flex: none; }
.ev-loc[b-m06npvd5gg] { font-size: .7rem; opacity: .9; }
.ev-notes[b-m06npvd5gg] { font-size: .7rem; opacity: .8; white-space: pre-line; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.ev-ph[b-m06npvd5gg] { position: absolute; right: 5px; bottom: 5px; width: 30px; height: 30px; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.ev-ph img[b-m06npvd5gg] { width: 100%; height: 100%; object-fit: cover; }
.tg:not(.detailed) .ev-ph[b-m06npvd5gg] { display: none; }

/* Linea dell'ora attuale */
.now[b-m06npvd5gg] { position: absolute; left: -4px; right: 0; height: 2px; z-index: 4; pointer-events: none; background: #fb7185; box-shadow: 0 0 10px #fb7185; }
.now i[b-m06npvd5gg] { position: absolute; left: -2px; top: -5px; width: 12px; height: 12px; border-radius: 50%; background: #fb7185; box-shadow: 0 0 0 4px rgba(251,113,133,.25); animation: now-pulse-b-m06npvd5gg 2s ease-in-out infinite; }
.now span[b-m06npvd5gg] { position: absolute; right: 4px; top: -18px; font-size: .64rem; font-weight: 800; color: #fecdd3; }
@keyframes now-pulse-b-m06npvd5gg { 50% { box-shadow: 0 0 0 8px rgba(251,113,133,0); } }

@media (max-width: 700px) {
    .tg[b-m06npvd5gg] { --lbl-w: 44px; --hour-h: 48px; border-radius: 18px; }
    .tg-scroll[b-m06npvd5gg] { max-height: 64vh; }
    .slot:hover[b-m06npvd5gg]::after { display: none; }
}
/* /Components/Pages/Calendario/UpcomingPanel.razor.rz.scp.css */
.up-panel[b-m24dhxe5np] { padding: 16px; border-radius: 24px; }
.up-list[b-m24dhxe5np] { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.up-list li[b-m24dhxe5np] { animation: up-in-b-m24dhxe5np .5s var(--ease-out) backwards; animation-delay: calc(var(--i) * 45ms + 150ms); }
@keyframes up-in-b-m24dhxe5np { from { opacity: 0; transform: translateY(10px); } }
.up-item[b-m24dhxe5np] { width: 100%; display: flex; align-items: center; gap: 12px; padding: 7px 8px; border: 0; border-radius: 14px; background: none; cursor: pointer; text-align: left; transition: background .2s; }
.up-item:hover[b-m24dhxe5np] { background: rgba(255,255,255,.05); }
.up-when[b-m24dhxe5np] { width: 50px; height: 46px; border-radius: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; line-height: 1.1;
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 45%, transparent), color-mix(in oklab, var(--c) 12%, transparent));
    border: 1px solid color-mix(in oklab, var(--c) 45%, transparent); }
.up-when b[b-m24dhxe5np] { font-size: .95rem; }
.up-when span[b-m24dhxe5np] { font-size: .64rem; color: var(--text-2); text-transform: uppercase; font-weight: 700; }
.up-body[b-m24dhxe5np] { display: flex; flex-direction: column; min-width: 0; }
.up-title[b-m24dhxe5np] { font-weight: 650; font-size: .9rem; }
/* /Components/Pages/Contratti/ContractEditor.razor.rz.scp.css */
.ce[b-yk2yupykoj] { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 26px; align-items: start; }

/* ---------- Anteprima: fascicolo ---------- */
.ce-preview[b-yk2yupykoj] { position: sticky; top: 0; display: flex; flex-direction: column; gap: 14px; perspective: 900px; }
.ce-folder[b-yk2yupykoj] { position: relative; height: 170px; margin-top: 18px; transform-style: preserve-3d; animation: ce-in-b-yk2yupykoj .8s var(--ease-spring) backwards; }
.ce-tab[b-yk2yupykoj] {
    position: absolute; top: -20px; left: 12px; height: 26px; padding: 0 12px; border-radius: 10px 10px 0 0;
    display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; font-weight: 700; color: #2a1605;
    background: linear-gradient(180deg, color-mix(in oklab, var(--cc) 80%, white), var(--cc));
    max-width: calc(100% - 24px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ce-paper[b-yk2yupykoj] {
    position: absolute; inset: 6px 10px 10px; border-radius: 6px; transform: translateY(-14px) rotate(-2deg);
    background: repeating-linear-gradient(180deg, #fbf5e8 0 17px, #e9dfc8 17px 18px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .3);
    transition: transform .6s var(--ease-spring);
}
.ce-folder:hover .ce-paper[b-yk2yupykoj] { transform: translateY(-34px) rotate(-4deg); }
.ce-cover[b-yk2yupykoj] {
    position: absolute; inset: 0; border-radius: 4px 16px 16px 16px; padding: 22px 16px 14px;
    display: flex; flex-direction: column; gap: 4px; justify-content: flex-end;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, .18), transparent 40%),
        linear-gradient(145deg, color-mix(in oklab, var(--cc) 62%, #3b1d04), color-mix(in oklab, var(--cc) 30%, #1c0e02));
    border: 1px solid color-mix(in oklab, var(--cc) 50%, transparent);
    box-shadow: 0 26px 50px -20px color-mix(in oklab, var(--cc) 70%, black), inset 0 1px 0 rgba(255, 255, 255, .25);
    transform-origin: bottom center; transform: rotateX(8deg);
    transition: transform .6s var(--ease-spring);
}
.ce-folder:hover .ce-cover[b-yk2yupykoj] { transform: rotateX(22deg); }
.ce-cover strong[b-yk2yupykoj] { font-family: var(--font-display); font-size: 1.1rem; }
.ce-cover .badge[b-yk2yupykoj] { align-self: flex-start; margin-top: 4px; }
@keyframes ce-in-b-yk2yupykoj { from { transform: rotateY(-40deg) translateZ(-80px); opacity: 0; } to { transform: none; opacity: 1; } }

.ce-facts[b-yk2yupykoj] { display: grid; gap: 8px; }
.ce-facts > div[b-yk2yupykoj] { display: flex; flex-direction: column; padding: 10px 12px; border-radius: 14px; background: rgba(0, 0, 0, .22); border: 1px solid var(--border); }
.ce-facts strong[b-yk2yupykoj] { font-size: 1rem; }

/* ---------- Form ---------- */
.ce-form[b-yk2yupykoj] { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ce-cats[b-yk2yupykoj] { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.ce-cat[b-yk2yupykoj] {
    display: flex; align-items: center; gap: 8px; min-width: 0; min-height: 42px; padding: 6px 10px; border-radius: 13px; cursor: pointer; text-align: left;
    background: var(--surface); border: 1px solid var(--border); color: var(--text-2); font-size: .8rem; font-weight: 600;
    transition: transform .3s var(--ease-spring), background .2s, border-color .2s, color .2s;
}
.ce-cat:hover[b-yk2yupykoj] { transform: translateY(-2px); color: var(--text); }
.ce-cat.active[b-yk2yupykoj] { color: #fff; background: linear-gradient(135deg, color-mix(in oklab, var(--c) 38%, transparent), color-mix(in oklab, var(--c) 12%, transparent)); border-color: color-mix(in oklab, var(--c) 70%, transparent); box-shadow: 0 8px 20px -10px var(--c); }
.ce-cat-ico[b-yk2yupykoj] { font-size: 1.1rem; flex: none; }
.ce-cat-lbl[b-yk2yupykoj] { line-height: 1.15; min-width: 0; overflow-wrap: anywhere; } /* "Internet/Telefono" non deve uscire dal bottone */

.ce-block[b-yk2yupykoj] { padding: 14px; border-radius: 20px; background: rgba(0, 0, 0, .2); border: 1px solid var(--border); }
.ce-quick[b-yk2yupykoj] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }
.ce-quick .chip[b-yk2yupykoj] { height: 30px; padding: 0 11px; font-size: .8rem; }
.ce-mini[b-yk2yupykoj] { width: 92px; flex: none; }
.ce-toggle[b-yk2yupykoj] { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--border); cursor: pointer; margin-top: 12px; }
.ce-form > .ce-toggle[b-yk2yupykoj] { margin-top: 0; }
.ce-hint[b-yk2yupykoj] { display: block; margin-top: 10px; font-size: .84rem; color: var(--text-2); padding: 8px 12px; border-radius: 12px; background: color-mix(in oklab, var(--accent) 12%, transparent); }
.ce-hint.soon[b-yk2yupykoj] { background: color-mix(in oklab, var(--warning) 16%, transparent); color: #fde68a; }
.ce-hint.late[b-yk2yupykoj] { background: color-mix(in oklab, var(--danger) 16%, transparent); color: #fecdd3; }

@media (max-width: 700px) {
    .ce[b-yk2yupykoj] { grid-template-columns: 1fr; gap: 16px; }
    .ce-preview[b-yk2yupykoj] { position: relative; display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 12px; align-items: end; }
    .ce-folder[b-yk2yupykoj] { height: 120px; }
    .ce-cover[b-yk2yupykoj] { padding: 16px 10px 10px; }
    .ce-cover strong[b-yk2yupykoj] { font-size: .92rem; }
    .ce-cover .dim[b-yk2yupykoj] { display: none; }
    .ce-facts > div[b-yk2yupykoj] { padding: 6px 10px; }
    .ce-facts strong[b-yk2yupykoj] { font-size: .88rem; }
    .ce-cats[b-yk2yupykoj] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* /Components/Pages/Contratti/ContractFolder.razor.rz.scp.css */
/* Fascicolo: la linguetta sporge in alto, i fogli si alzano e la copertina si inclina al passaggio */
.fold[b-2zddaf6v7r] {
    position: relative; margin-top: 22px; min-height: 212px; border-radius: 6px 20px 20px 20px;
    transform-style: preserve-3d;
}
.fold-tab[b-2zddaf6v7r] {
    position: absolute; top: -22px; left: 0; z-index: 1; height: 28px; max-width: 70%;
    padding: 0 14px; border-radius: 12px 14px 0 0; display: inline-flex; align-items: center; gap: 6px;
    font-size: .74rem; font-weight: 800; letter-spacing: .02em; color: #2a1605;
    background: linear-gradient(180deg, color-mix(in oklab, var(--cc) 75%, white), color-mix(in oklab, var(--cc) 88%, #7a3d06));
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5);
}
.fold-back[b-2zddaf6v7r] {
    position: absolute; inset: 0; border-radius: inherit;
    background: linear-gradient(180deg, color-mix(in oklab, var(--cc) 70%, #4a2406), color-mix(in oklab, var(--cc) 35%, #1a0c02));
    box-shadow: 0 30px 60px -28px color-mix(in oklab, var(--cc) 70%, black);
}
.fold-papers[b-2zddaf6v7r] { position: absolute; inset: 0; pointer-events: none; transform-style: preserve-3d; }
.paper[b-2zddaf6v7r] {
    position: absolute; left: calc(10px + var(--k) * 8px); right: calc(16px - var(--k) * 4px); top: 10px; height: 70%;
    border-radius: 5px; transform: translateY(calc(var(--k) * 3px)) rotate(calc(var(--k) * 1.6deg - 1.5deg)) translateZ(2px);
    background:
        linear-gradient(90deg, transparent 18px, rgba(220, 80, 60, .35) 18px 19px, transparent 19px),
        repeating-linear-gradient(180deg, #fbf6ea 0 15px, #e7dcc4 15px 16px);
    box-shadow: 0 3px 10px rgba(0, 0, 0, .3);
    transition: transform .6s var(--ease-spring);
    transition-delay: calc(var(--k) * 50ms);
}
.fold-photo[b-2zddaf6v7r] {
    position: absolute; right: 18px; top: 2px; width: 64px; height: 64px; padding: 4px 4px 12px; background: #fff; border-radius: 3px;
    transform: rotate(6deg) translateZ(4px); box-shadow: 0 6px 16px rgba(0, 0, 0, .4);
    transition: transform .6s var(--ease-spring);
}
.fold-photo[b-2zddaf6v7r]::before { content: ""; position: absolute; top: -8px; left: 22px; width: 10px; height: 22px; border: 2px solid #cbd5e1; border-radius: 6px; border-bottom-color: transparent; }
.fold-photo img[b-2zddaf6v7r] { width: 100%; height: 100%; object-fit: cover; border-radius: 1px; }

.fold-cover[b-2zddaf6v7r] {
    position: relative; z-index: 2; margin-top: 44px; min-height: 168px; padding: 16px 16px 14px;
    border-radius: 4px 18px 18px 18px; display: flex; flex-direction: column; gap: 4px;
    background:
        radial-gradient(120% 90% at 0% 0%, rgba(255, 255, 255, .16), transparent 55%),
        linear-gradient(160deg, color-mix(in oklab, var(--cc) 30%, rgba(40, 24, 8, .92)), rgba(22, 13, 5, .94));
    border: 1px solid color-mix(in oklab, var(--cc) 40%, rgba(255, 255, 255, .1));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 -6px 18px -8px rgba(0, 0, 0, .5);
    transform-origin: bottom center; transform: translateZ(8px);
    transition: transform .6s var(--ease-spring), box-shadow .4s;
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.fold:hover .fold-cover[b-2zddaf6v7r], .fold:focus-within .fold-cover[b-2zddaf6v7r] { transform: translateZ(8px) rotateX(-16deg); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 18px 30px -10px rgba(0, 0, 0, .6); }
.fold:hover .paper[b-2zddaf6v7r], .fold:focus-within .paper[b-2zddaf6v7r] { transform: translateY(calc(-26px - var(--k) * 8px)) rotate(calc(var(--k) * 3deg - 3deg)) translateZ(2px); }
.fold:hover .fold-photo[b-2zddaf6v7r] { transform: rotate(-4deg) translateY(-22px) translateZ(4px); }

.fold-head[b-2zddaf6v7r] { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fold-status[b-2zddaf6v7r] { display: inline-flex; align-items: center; gap: 6px; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--sc); }
.sdot[b-2zddaf6v7r] { width: 8px; height: 8px; border-radius: 50%; background: var(--sc); box-shadow: 0 0 10px var(--sc); display: inline-block; }
.fold-files[b-2zddaf6v7r] { font-size: .74rem; font-weight: 700; color: var(--text-2); padding: 2px 8px; border-radius: 99px; background: rgba(0, 0, 0, .3); margin-right: 34px; }
.fold-title[b-2zddaf6v7r] { font-size: 1.12rem; margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fold-prov[b-2zddaf6v7r] { color: var(--text-2); font-size: .84rem; }
.fold-meta[b-2zddaf6v7r] { display: flex; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 10px; border-top: 1px dashed rgba(255, 255, 255, .14); }
.fold-meta > div[b-2zddaf6v7r] { display: flex; flex-direction: column; min-width: 0; }
.fold-meta .right[b-2zddaf6v7r] { text-align: right; }
.fm-lbl[b-2zddaf6v7r] { font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-3); font-weight: 700; }
.fm-val[b-2zddaf6v7r] { font-weight: 700; font-size: .95rem; white-space: nowrap; }
.fm-val small[b-2zddaf6v7r] { font-size: .7rem; color: var(--text-3); font-weight: 600; }
.fold-alert[b-2zddaf6v7r], .fold-renew[b-2zddaf6v7r] { margin-top: 8px; font-size: .74rem; font-weight: 700; padding: 5px 10px; border-radius: 10px; }
.fold-alert.danger[b-2zddaf6v7r] { background: color-mix(in oklab, var(--danger) 22%, transparent); color: #fecdd3; animation: pulse-a-b-2zddaf6v7r 2s ease-in-out infinite; }
.fold-alert.warning[b-2zddaf6v7r] { background: color-mix(in oklab, var(--warning) 20%, transparent); color: #fde68a; }
.fold-alert.info[b-2zddaf6v7r] { background: color-mix(in oklab, var(--info) 18%, transparent); color: #bfdbfe; }
.fold-renew[b-2zddaf6v7r] { background: rgba(0, 0, 0, .25); color: var(--text-2); font-weight: 600; }
@keyframes pulse-a-b-2zddaf6v7r { 50% { box-shadow: 0 0 0 4px color-mix(in oklab, var(--danger) 18%, transparent); } }

.fold-link[b-2zddaf6v7r] { position: absolute; inset: -22px 0 0 0; z-index: 5; border-radius: inherit; }
.fold-link:focus-visible[b-2zddaf6v7r] { outline: 2px solid var(--accent-2); outline-offset: 4px; }
.fold-fav[b-2zddaf6v7r] {
    position: absolute; right: 12px; top: 56px; z-index: 6; width: 32px; height: 32px; border-radius: 50%; cursor: pointer;
    border: 1px solid rgba(255, 255, 255, .18); background: rgba(0, 0, 0, .35); color: rgba(255, 255, 255, .45); font-size: .95rem; line-height: 1;
    transform: translateZ(20px); transition: transform .35s var(--ease-spring), color .2s, background .2s;
}
.fold-fav:hover[b-2zddaf6v7r] { color: #fff; transform: translateZ(20px) scale(1.12); }
.fold-fav.on[b-2zddaf6v7r] { color: #3b1d04; background: linear-gradient(135deg, #FDE68A, var(--accent-2)); border-color: transparent; box-shadow: 0 6px 16px -4px var(--accent-2); }

.fold.off[b-2zddaf6v7r] { filter: grayscale(.75) brightness(.8); }
.fold.off:hover[b-2zddaf6v7r] { filter: none; }

@media (hover: none) {
    .paper[b-2zddaf6v7r] { transform: translateY(calc(-10px - var(--k) * 5px)) rotate(calc(var(--k) * 2deg - 2deg)) translateZ(2px); }
}
/* /Components/Pages/Contratti/ContrattiArchivio.razor.rz.scp.css */
/* =====================================================================
   Contratti · Archivio — filtri e griglia di fascicoli
   ===================================================================== */
.filters[b-ad8gdoh35m] { display: flex; flex-direction: column; gap: 12px; padding: 14px; margin-bottom: 18px; border-radius: 24px; }
.f-row[b-ad8gdoh35m] { display: flex; gap: 8px; align-items: center; }
.f-search[b-ad8gdoh35m] {
    flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px;
    border-radius: 14px; background: rgba(0, 0, 0, .28); border: 1px solid var(--border); color: var(--text-2);
    transition: border-color .2s, box-shadow .2s;
}
.f-search:focus-within[b-ad8gdoh35m] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 25%, transparent); }
.f-search input[b-ad8gdoh35m] { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; outline: none; }
.f-sort[b-ad8gdoh35m] { width: auto; flex: none; max-width: 42vw; height: 44px; }
.fav-chip[b-ad8gdoh35m] { height: 44px; flex: none; }
.fav-chip.active[b-ad8gdoh35m] { background: color-mix(in oklab, var(--accent-2) 35%, transparent); }
.f-scroll[b-ad8gdoh35m] { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 2px 14px; align-items: center; }
.f-scroll[b-ad8gdoh35m]::-webkit-scrollbar { display: none; }
.f-scroll > *[b-ad8gdoh35m] { flex: none; }
.f-status button[b-ad8gdoh35m] { display: inline-flex; align-items: center; gap: 6px; }
.f-status .cnt[b-ad8gdoh35m] { font-size: .72rem; opacity: .6; font-variant-numeric: tabular-nums; }
.sdot[b-ad8gdoh35m] { width: 8px; height: 8px; border-radius: 50%; background: var(--sc, var(--accent)); box-shadow: 0 0 8px var(--sc, var(--accent)); flex: none; display: inline-block; }
.cat-chip.active[b-ad8gdoh35m] { background: color-mix(in oklab, var(--c) 32%, transparent); border-color: color-mix(in oklab, var(--c) 70%, transparent); }
.tag-chip[b-ad8gdoh35m] { height: 30px; font-size: .8rem; }

.lib-head[b-ad8gdoh35m] { margin: 6px 0 4px; }
.lib-title[b-ad8gdoh35m] { font-size: 1.3rem; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.lib-cost[b-ad8gdoh35m] { font-size: .8rem; font-weight: 700; padding: 3px 10px; border-radius: 99px; background: var(--accent-soft); color: #fde68a; }

.fold-grid[b-ad8gdoh35m] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 8px 18px; perspective: 1400px; }
@media (max-width: 560px) {
    .fold-grid[b-ad8gdoh35m] { grid-template-columns: minmax(0, 1fr); }
    .f-row[b-ad8gdoh35m] { flex-wrap: wrap; }
    .f-search[b-ad8gdoh35m] { flex-basis: 100%; }
    .f-sort[b-ad8gdoh35m] { flex: 1 1 auto; max-width: none; }
}
/* /Components/Pages/Contratti/ContrattiDashboard.razor.rz.scp.css */
/* =====================================================================
   Contratti · Panoramica — timbro, KPI, cassettiera 3D, ciambella, timeline
   ===================================================================== */

/* ---------- Timbro nell'hero ---------- */
.hero-stamp[b-ih6nrubtko] { flex: none; }
.st-inner[b-ih6nrubtko] {
    display: flex; flex-direction: column; align-items: center; gap: 0; padding: 10px 20px;
    border: 3px double color-mix(in oklab, var(--accent-2) 80%, white); border-radius: 14px;
    color: color-mix(in oklab, var(--accent-2) 85%, white);
    transform: rotate(-8deg); text-transform: uppercase;
    background: radial-gradient(circle at 30% 30%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 70%);
    box-shadow: 0 0 30px -8px color-mix(in oklab, var(--accent-2) 60%, transparent);
    animation: stamp-b-ih6nrubtko 0.9s var(--ease-spring) backwards .25s;
}
.st-label[b-ih6nrubtko] { font-size: .62rem; font-weight: 800; letter-spacing: .24em; }
.st-value[b-ih6nrubtko] { font-size: 1.9rem; font-weight: 700; line-height: 1.05; text-transform: none; }
.st-sub[b-ih6nrubtko] { font-size: .66rem; font-weight: 700; letter-spacing: .14em; opacity: .8; }
@keyframes stamp-b-ih6nrubtko { 0% { transform: rotate(-30deg) scale(2.4); opacity: 0; } 60% { transform: rotate(-6deg) scale(.92); opacity: 1; } 100% { transform: rotate(-8deg) scale(1); } }

.empty-card[b-ih6nrubtko] { margin-top: 10px; }

/* ---------- KPI ---------- */
.kpis[b-ih6nrubtko] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.kpi-card[b-ih6nrubtko] { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px; overflow: hidden; transition: border-color .3s; }
.kpi-card:hover[b-ih6nrubtko] { border-color: color-mix(in oklab, var(--accent) 45%, var(--border)); }
.kpi-card.hot[b-ih6nrubtko] { border-color: color-mix(in oklab, var(--danger) 45%, var(--border)); }
.kpi-ico[b-ih6nrubtko] { position: absolute; right: -6px; top: -10px; font-size: 3.4rem; opacity: .13; transform: rotate(-12deg); pointer-events: none; }
.kpi-label[b-ih6nrubtko] { font-size: .72rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.kpi-value[b-ih6nrubtko] { font-size: 1.75rem; font-weight: 700; line-height: 1.15; white-space: nowrap; }
.kpi-sub[b-ih6nrubtko] { font-size: .76rem; }
@media (max-width: 860px) { .kpis[b-ih6nrubtko] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .kpi-value[b-ih6nrubtko] { font-size: 1.4rem; } }

/* ---------- Duo: cassettiera + grafico ---------- */
.duo[b-ih6nrubtko] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; }
@media (max-width: 860px) { .duo[b-ih6nrubtko] { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Cassettiera 3D ---------- */
.cab-card[b-ih6nrubtko] { overflow: hidden; }
.cab-scene[b-ih6nrubtko] { position: relative; perspective: 1100px; perspective-origin: 50% 20%; padding: 44px 8px 30px; display: grid; place-items: center; }
.cabinet[b-ih6nrubtko] {
    --depth: 90px;
    position: relative; width: min(330px, 86%); padding: 14px 14px 10px; border-radius: 12px 12px 6px 6px;
    transform-style: preserve-3d;
    transform: rotateX(calc(14deg + var(--my) * -3deg)) rotateY(calc(-20deg + var(--mx) * 8deg));
    transition: transform .8s var(--ease-out);
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .06), transparent 30%, rgba(0, 0, 0, .15)),
        repeating-linear-gradient(92deg, rgba(0, 0, 0, .06) 0 3px, transparent 3px 11px),
        linear-gradient(180deg, #7a4215, #4d260a);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -2px 0 rgba(0, 0, 0, .4);
}
/* fianco destro */
.cabinet[b-ih6nrubtko]::before {
    content: ""; position: absolute; top: 0; bottom: 0; left: 100%; width: var(--depth);
    transform-origin: left center; transform: rotateY(90deg);
    background: linear-gradient(90deg, #3a1c06, #25120404), linear-gradient(180deg, #5a2e0c, #2c1504);
    border-radius: 0 6px 6px 0;
}
.cab-top[b-ih6nrubtko] {
    position: absolute; left: 0; right: 0; bottom: 100%; height: var(--depth);
    transform-origin: bottom center; transform: rotateX(90deg);
    background: linear-gradient(0deg, #a0602a, #6b3710);
    border-radius: 10px 10px 0 0;
    box-shadow: inset 0 0 30px rgba(0, 0, 0, .35);
}
.cab-base[b-ih6nrubtko] { height: 10px; margin: 8px -14px -10px; border-radius: 0 0 6px 6px; background: linear-gradient(180deg, #2e1604, #1a0c02); }
.cab-shadow[b-ih6nrubtko] { position: absolute; left: 18%; right: 18%; bottom: 14px; height: 36px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0, 0, 0, .6), transparent); filter: blur(8px); z-index: -1; }

.drawer[b-ih6nrubtko] { display: block; position: relative; height: 56px; margin-bottom: 9px; transform-style: preserve-3d; outline: none; }
.dr-body[b-ih6nrubtko] {
    position: absolute; inset: 0; transform-style: preserve-3d;
    transition: transform .7s var(--ease-spring);
    animation: dr-peek-b-ih6nrubtko 1.8s var(--ease-out) backwards;
    animation-delay: calc(.5s + var(--i) * .16s);
}
.drawer:hover .dr-body[b-ih6nrubtko], .drawer:focus-visible .dr-body[b-ih6nrubtko] { transform: translateZ(74px); }
@keyframes dr-peek-b-ih6nrubtko { 0% { transform: translateZ(0); } 35%, 55% { transform: translateZ(52px); } 100% { transform: translateZ(0); } }

.dr-front[b-ih6nrubtko] {
    position: absolute; inset: 0; display: flex; align-items: center; gap: 10px; padding: 0 12px;
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .14), transparent 45%, rgba(0, 0, 0, .18)),
        linear-gradient(90deg, color-mix(in oklab, var(--cc) 22%, #8a4b1a), color-mix(in oklab, var(--cc) 10%, #6a3510));
    border: 1px solid rgba(0, 0, 0, .35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 3px 0 rgba(0, 0, 0, .35);
    color: #fff4e0;
}
.drawer:focus-visible .dr-front[b-ih6nrubtko] { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.dr-ico[b-ih6nrubtko] { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: rgba(0, 0, 0, .25); flex: none; font-size: 1rem; }
.dr-label[b-ih6nrubtko] {
    flex: 1 1 auto; min-width: 0; font-size: .8rem; font-weight: 700; padding: 3px 8px; border-radius: 4px;
    background: #f7eedb; color: #3b2107; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25), 0 1px 0 rgba(255, 255, 255, .2);
    font-family: var(--font-display);
}
.dr-handle[b-ih6nrubtko] {
    width: 46px; height: 12px; border-radius: 8px; flex: none;
    background: linear-gradient(180deg, #f5f5f4, #a8a29e 60%, #57534e);
    box-shadow: 0 3px 6px rgba(0, 0, 0, .5), inset 0 1px 0 #fff;
}
.dr-count[b-ih6nrubtko] { min-width: 26px; text-align: right; font-weight: 800; font-size: 1rem; color: color-mix(in oklab, var(--cc) 60%, white); text-shadow: 0 0 10px color-mix(in oklab, var(--cc) 70%, transparent); }

/* interno del cassetto: piano orizzontale che parte dal bordo superiore e va indietro */
.dr-inside[b-ih6nrubtko] {
    position: absolute; left: 4%; right: 4%; top: 0; height: 82px;
    transform-origin: top center; transform: rotateX(-90deg);
    background: linear-gradient(180deg, #2a1405, #140902);
    border-radius: 0 0 6px 6px; overflow: hidden;
    box-shadow: inset 0 0 18px rgba(0, 0, 0, .8);
}
.dr-file[b-ih6nrubtko] {
    position: absolute; left: 6%; right: 6%; top: calc(6px + var(--k) * 12px); height: 9px; border-radius: 2px;
    background: linear-gradient(90deg, color-mix(in oklab, var(--cc) 75%, #f8e7c4), color-mix(in oklab, var(--cc) 45%, #c79a5a));
    box-shadow: 0 2px 3px rgba(0, 0, 0, .5);
}
.dr-file[b-ih6nrubtko]::after { content: ""; position: absolute; top: -4px; left: calc(12% + var(--k) * 13%); width: 22%; height: 5px; border-radius: 3px 3px 0 0; background: inherit; }

@media (max-width: 560px) {
    .cab-scene[b-ih6nrubtko] { padding: 34px 0 20px; }
    .cabinet[b-ih6nrubtko] { --depth: 60px; width: 92%; transform: rotateX(10deg) rotateY(-12deg); }
    .drawer:hover .dr-body[b-ih6nrubtko] { transform: translateZ(48px); }
}

/* ---------- Ciambella ---------- */
.chart-card[b-ih6nrubtko] { display: flex; flex-direction: column; }
.donut[b-ih6nrubtko] { position: relative; height: 250px; }
.donut canvas[b-ih6nrubtko] { position: absolute; inset: 0; }
.donut-center[b-ih6nrubtko] { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; }
.donut-center strong[b-ih6nrubtko] { font-size: 1.6rem; line-height: 1.1; }
.legend[b-ih6nrubtko] { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.legend li[b-ih6nrubtko] { display: flex; flex-direction: column; gap: 4px; animation: lg-in-b-ih6nrubtko .6s var(--ease-out) backwards; animation-delay: calc(var(--i) * 60ms + .3s); }
.legend a[b-ih6nrubtko] { display: flex; align-items: center; gap: 8px; font-size: .86rem; padding: 2px 2px; border-radius: 8px; }
.legend a:hover[b-ih6nrubtko] { background: var(--surface); }
.lg-ico[b-ih6nrubtko] { width: 24px; text-align: center; }
.lg-bar[b-ih6nrubtko] { height: 4px; border-radius: 9px; background: rgba(255, 255, 255, .07); overflow: hidden; margin-left: 32px; }
.lg-bar > span[b-ih6nrubtko] { display: block; height: 100%; width: var(--v); border-radius: inherit; background: var(--c); box-shadow: 0 0 10px var(--c); transition: width 1s var(--ease-out); }
@keyframes lg-in-b-ih6nrubtko { from { opacity: 0; transform: translateX(16px); } }

/* ---------- Timeline scroll-driven ---------- */
.tl-legend[b-ih6nrubtko] { display: flex; gap: 14px; }
.tl-legend span[b-ih6nrubtko] { display: inline-flex; align-items: center; gap: 6px; }
.lg[b-ih6nrubtko] { width: 14px; height: 0; border-top: 3px solid var(--accent-2); display: inline-block; }
.lg.cb[b-ih6nrubtko] { border-top-style: dashed; border-color: var(--danger); }

.timeline[b-ih6nrubtko] { --p: 0; position: relative; list-style: none; margin: 10px 0 0; padding: 4px 0 10px; }
.timeline[b-ih6nrubtko]::before, .timeline[b-ih6nrubtko]::after {
    content: ""; position: absolute; left: 27px; top: 10px; bottom: 10px; width: 3px; border-radius: 3px;
}
.timeline[b-ih6nrubtko]::before { background: rgba(255, 255, 255, .08); }
.timeline[b-ih6nrubtko]::after {
    background: linear-gradient(180deg, var(--accent-2), var(--accent));
    box-shadow: 0 0 14px color-mix(in oklab, var(--accent-2) 70%, transparent);
    transform-origin: top; transform: scaleY(var(--p));
}
.tl-now[b-ih6nrubtko], .tl-month[b-ih6nrubtko] { position: relative; z-index: 1; padding-left: 56px; }
.tl-now span[b-ih6nrubtko] {
    display: inline-flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em;
    padding: 4px 10px; border-radius: 99px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #2a1605;
}
.tl-now[b-ih6nrubtko]::before { content: ""; position: absolute; left: 20px; top: 6px; width: 17px; height: 17px; border-radius: 50%; background: var(--accent-2); box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent-2) 25%, transparent); }
.tl-month[b-ih6nrubtko] { position: sticky; top: 64px; z-index: 3; margin: 16px 0 4px; pointer-events: none; }
.tl-month span[b-ih6nrubtko] {
    display: inline-block; font-family: var(--font-display); font-weight: 700; font-size: .9rem; padding: 4px 12px; border-radius: 12px;
    background: rgba(20, 12, 4, .8); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--border);
    color: color-mix(in oklab, var(--accent-2) 80%, white);
}

.tl-item[b-ih6nrubtko] { position: relative; padding-left: 56px; margin: 10px 0; }
.tl-dot[b-ih6nrubtko] {
    position: absolute; left: 20px; top: calc(50% - 9px); width: 17px; height: 17px; border-radius: 50%; z-index: 2;
    background: #2a2016; border: 3px solid rgba(255, 255, 255, .25);
    transition: background .4s, border-color .4s, transform .5s var(--ease-spring), box-shadow .4s;
}
.tl-item.passed .tl-dot[b-ih6nrubtko] { transform: scale(1.25); border-color: #fff; background: var(--dc, var(--info)); box-shadow: 0 0 0 6px color-mix(in oklab, var(--dc, var(--info)) 25%, transparent), 0 0 16px var(--dc, var(--info)); }
.tl-item.danger[b-ih6nrubtko] { --dc: var(--danger); }
.tl-item.warning[b-ih6nrubtko] { --dc: var(--warning); }
.tl-item.info[b-ih6nrubtko] { --dc: var(--info); }

.tl-card[b-ih6nrubtko] {
    display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 12px; align-items: center;
    padding: 10px 14px 10px 10px; border-radius: 18px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--cc) 12%, rgba(255, 255, 255, .05)), rgba(255, 255, 255, .02));
    border: 1px solid var(--border); border-left: 3px solid var(--cc);
    transition: transform .45s var(--ease-spring), border-color .3s, background .3s;
}
.tl-item.cb .tl-card[b-ih6nrubtko] { border-left-style: dashed; border-left-color: color-mix(in oklab, var(--dc) 80%, white); }
.tl-card:hover[b-ih6nrubtko] { transform: translateX(6px); border-color: var(--border-strong); }
.tl-date[b-ih6nrubtko] {
    display: flex; flex-direction: column; align-items: center; justify-content: center; height: 58px; border-radius: 14px;
    background: linear-gradient(180deg, #fdf6e9 0 34%, #f3e7cf 34%); color: #3b2107; overflow: hidden; position: relative;
    box-shadow: 0 6px 14px -6px rgba(0, 0, 0, .6);
}
.tl-date[b-ih6nrubtko]::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); }
.tl-date strong[b-ih6nrubtko] { font-size: 1.35rem; line-height: 1; margin-top: 12px; }
.tl-date span[b-ih6nrubtko] { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.tl-body[b-ih6nrubtko] { display: flex; flex-direction: column; min-width: 0; }
.tl-kind[b-ih6nrubtko] { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--text-3); }
.tl-item.cb .tl-kind[b-ih6nrubtko] { color: color-mix(in oklab, var(--dc) 70%, white); }
.tl-side[b-ih6nrubtko] { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.tl-when[b-ih6nrubtko] { font-size: .8rem; font-weight: 700; white-space: nowrap; color: var(--text-2); }
.tl-item.danger .badge[b-ih6nrubtko] { animation: pulse-b-b-ih6nrubtko 1.8s ease-in-out infinite; }
@keyframes pulse-b-b-ih6nrubtko { 50% { box-shadow: 0 0 0 5px color-mix(in oklab, var(--danger) 20%, transparent); } }

@media (max-width: 560px) {
    .timeline[b-ih6nrubtko]::before, .timeline[b-ih6nrubtko]::after { left: 13px; }
    .tl-item[b-ih6nrubtko], .tl-now[b-ih6nrubtko], .tl-month[b-ih6nrubtko] { padding-left: 34px; }
    .tl-dot[b-ih6nrubtko] { left: 6px; }
    .tl-now[b-ih6nrubtko]::before { left: 6px; }
    .tl-card[b-ih6nrubtko] { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
    .tl-date[b-ih6nrubtko] { height: 50px; }
    .tl-date strong[b-ih6nrubtko] { font-size: 1.15rem; }
    .tl-side[b-ih6nrubtko] { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ---------- Scaduti ---------- */
.sec-title[b-ih6nrubtko] { font-size: 1.25rem; }
.fold-grid[b-ih6nrubtko] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 8px 18px; perspective: 1400px; }
@media (max-width: 560px) { .fold-grid[b-ih6nrubtko] { grid-template-columns: minmax(0, 1fr); } }

@media (prefers-reduced-motion: reduce) {
    .dr-body[b-ih6nrubtko], .st-inner[b-ih6nrubtko] { animation: none; }
    .cabinet[b-ih6nrubtko] { transform: rotateX(12deg) rotateY(-16deg); }
}
/* /Components/Pages/Contratti/ContrattoDetail.razor.rz.scp.css */
/* =====================================================================
   Contratti · Dettaglio — fascicolo che si apre, foglio, allegati
   ===================================================================== */
.d-fav.on[b-9w71h3y3j6] { color: #3b1d04; background: linear-gradient(135deg, #FDE68A, var(--accent-2)); border-color: transparent; }

/* ---------- Fascicolo ---------- */
.dz-wrap[b-9w71h3y3j6] { overflow-x: clip; padding: 30px 8px 12px; margin: 0 -8px 14px; }
.dossier[b-9w71h3y3j6] {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    perspective: 2400px; transform-style: preserve-3d; min-height: 380px;
}
.dossier[b-9w71h3y3j6]::before {
    /* linguetta del fascicolo, dietro la pagina destra */
    content: ""; position: absolute; top: -20px; right: 12%; width: 120px; height: 30px; border-radius: 12px 12px 0 0;
    background: linear-gradient(180deg, color-mix(in oklab, var(--cc) 70%, #f6d8a8), color-mix(in oklab, var(--cc) 55%, #7a4412));
}

.dz-left[b-9w71h3y3j6] {
    position: relative; padding: 26px 24px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start;
    color: #fff3e0;
    animation: dz-fade-b-9w71h3y3j6 .7s var(--ease-out) backwards 1.25s;
}
@keyframes dz-fade-b-9w71h3y3j6 { from { opacity: 0; transform: translateX(20px); } }
.dz-cat[b-9w71h3y3j6] { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; }
.dz-cat-ico[b-9w71h3y3j6] { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 1.5rem; background: color-mix(in oklab, var(--cc) 35%, rgba(0, 0, 0, .3)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 10px 20px -8px var(--cc); }
.dz-stamp[b-9w71h3y3j6] {
    position: absolute; top: 22px; right: 20px; padding: 6px 14px; border: 3px solid var(--sc); border-radius: 10px;
    color: var(--sc); font-family: var(--font-display); font-weight: 800; font-size: .95rem; text-transform: uppercase; letter-spacing: .12em;
    transform: rotate(-12deg); mix-blend-mode: screen; opacity: .92;
    box-shadow: inset 0 0 0 2px color-mix(in oklab, var(--sc) 30%, transparent);
    animation: stamp-in-b-9w71h3y3j6 .6s var(--ease-spring) backwards 1.9s;
}
@keyframes stamp-in-b-9w71h3y3j6 { from { transform: rotate(-30deg) scale(2.6); opacity: 0; } }

.dz-ring[b-9w71h3y3j6] { position: relative; width: 128px; height: 128px; align-self: center; }
.dz-ring svg[b-9w71h3y3j6] { width: 100%; height: 100%; transform: rotate(-90deg); }
.rg-track[b-9w71h3y3j6] { fill: none; stroke: rgba(0, 0, 0, .3); stroke-width: 10; }
.rg-val[b-9w71h3y3j6] {
    fill: none; stroke: var(--sc); stroke-width: 10; stroke-linecap: round;
    stroke-dasharray: calc(var(--v) * 100) 100;
    filter: drop-shadow(0 0 6px var(--sc));
    animation: ring-b-9w71h3y3j6 1.6s var(--ease-out) backwards 1.4s;
}
@keyframes ring-b-9w71h3y3j6 { from { stroke-dasharray: 0 100; } }
.rg-center[b-9w71h3y3j6] { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rg-center strong[b-9w71h3y3j6] { font-size: 2rem; line-height: 1; }
.dz-big[b-9w71h3y3j6] { display: flex; flex-direction: column; gap: 2px; }
.dz-big strong[b-9w71h3y3j6] { font-size: 1.5rem; font-family: var(--font-display); }
.dz-cancel[b-9w71h3y3j6] {
    display: flex; gap: 12px; align-items: center; width: 100%; padding: 12px 14px; border-radius: 16px;
    background: rgba(0, 0, 0, .28); border: 1px solid rgba(255, 255, 255, .12);
}
.dz-cancel .grow[b-9w71h3y3j6] { display: flex; flex-direction: column; }
.dz-cancel strong[b-9w71h3y3j6] { font-size: 1.1rem; }
.dz-c-ico[b-9w71h3y3j6] { font-size: 1.5rem; }
.dz-cancel.danger[b-9w71h3y3j6], .dz-cancel.late[b-9w71h3y3j6] { border-color: color-mix(in oklab, var(--danger) 60%, transparent); background: color-mix(in oklab, var(--danger) 18%, rgba(0, 0, 0, .3)); }
.dz-cancel.warning[b-9w71h3y3j6] { border-color: color-mix(in oklab, var(--warning) 60%, transparent); background: color-mix(in oklab, var(--warning) 14%, rgba(0, 0, 0, .3)); }
.dz-cancel.danger[b-9w71h3y3j6] { animation: pulse-c-b-9w71h3y3j6 2s ease-in-out infinite 2.4s; }
@keyframes pulse-c-b-9w71h3y3j6 { 50% { box-shadow: 0 0 0 6px color-mix(in oklab, var(--danger) 18%, transparent); } }

.dz-right[b-9w71h3y3j6] {
    position: relative; padding: 22px 22px 26px; border-radius: 4px 22px 22px 4px;
    background:
        radial-gradient(90% 60% at 100% 0%, rgba(255, 255, 255, .12), transparent 60%),
        linear-gradient(160deg, color-mix(in oklab, var(--cc) 34%, #6b3c12), color-mix(in oklab, var(--cc) 18%, #2a1606));
    box-shadow: 0 40px 80px -40px color-mix(in oklab, var(--cc) 70%, black), inset 0 1px 0 rgba(255, 255, 255, .15);
}
.paper-sheet[b-9w71h3y3j6] {
    position: relative; padding: 24px 22px 20px; border-radius: 6px; color: #2b1a0b;
    background:
        linear-gradient(90deg, transparent 26px, rgba(220, 80, 60, .3) 26px 27px, transparent 27px),
        repeating-linear-gradient(180deg, #fdf8ee 0 27px, #efe4cd 27px 28px);
    box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .7), 0 1px 0 rgba(255, 255, 255, .8) inset;
    transform: rotate(.6deg);
    animation: sheet-slide-b-9w71h3y3j6 .9s var(--ease-spring) backwards 1s;
}
@keyframes sheet-slide-b-9w71h3y3j6 { from { transform: translateY(40px) rotate(-3deg); opacity: 0; } }
.clip[b-9w71h3y3j6] {
    position: absolute; top: -14px; right: 40px; width: 16px; height: 46px; border: 3px solid #cbd5e1; border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .3);
}
.clip[b-9w71h3y3j6]::after { content: ""; position: absolute; left: 2px; right: 2px; top: 8px; bottom: -3px; border: 3px solid #cbd5e1; border-top: 0; border-radius: 0 0 8px 8px; }
.ps-title[b-9w71h3y3j6] { font-size: 1.45rem; padding-left: 18px; color: #1f1206; }
.ps-prov[b-9w71h3y3j6] { padding-left: 18px; color: #7a5a3a; font-weight: 600; }
.ps-grid[b-9w71h3y3j6] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin: 16px 0 0; padding-left: 18px; }
.ps-grid > div[b-9w71h3y3j6] { min-width: 0; }
.ps-grid .wide[b-9w71h3y3j6] { grid-column: 1 / -1; }
.ps-grid dt[b-9w71h3y3j6] { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: #9a7a58; }
.ps-grid dd[b-9w71h3y3j6] { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.ps-tags[b-9w71h3y3j6] { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0 18px; }
.ps-tag[b-9w71h3y3j6] { font-size: .78rem; font-weight: 700; padding: 3px 10px; border-radius: 99px; background: color-mix(in oklab, var(--cc) 30%, #f3e3c4); color: #4a2a0a; }
.ps-tag:hover[b-9w71h3y3j6] { background: color-mix(in oklab, var(--cc) 50%, #f3e3c4); }
.ps-notes[b-9w71h3y3j6] { margin: 14px 0 0 18px; white-space: pre-wrap; font-family: "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive; color: #1e3a8a; line-height: 28px; overflow-wrap: anywhere; }

/* copertina: parte chiusa sopra la pagina destra e si apre ruotando attorno al dorso */
.dz-cover[b-9w71h3y3j6] {
    position: absolute; top: 0; bottom: 0; left: 50%; right: 0; z-index: 3;
    transform-style: preserve-3d; transform-origin: left center; pointer-events: none;
    animation: cv-open-b-9w71h3y3j6 1.6s cubic-bezier(.65, 0, .25, 1) forwards .35s;
    transform: rotateY(0deg) translateZ(1px);
}
@keyframes cv-open-b-9w71h3y3j6 { to { transform: rotateY(-180deg) translateZ(1px); } }
.cv-face[b-9w71h3y3j6] { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 4px 22px 22px 4px; }
.cv-front[b-9w71h3y3j6] {
    display: flex; align-items: center; justify-content: center; padding: 30px;
    background:
        radial-gradient(120% 80% at 0% 0%, rgba(255, 255, 255, .18), transparent 50%),
        repeating-linear-gradient(95deg, rgba(0, 0, 0, .04) 0 2px, transparent 2px 7px),
        linear-gradient(150deg, color-mix(in oklab, var(--cc) 55%, #a0662a), color-mix(in oklab, var(--cc) 30%, #4b2708));
    box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .3), inset 6px 0 12px -6px rgba(0, 0, 0, .5);
}
.cv-tab[b-9w71h3y3j6] {
    position: absolute; top: 18px; left: 18px; font-size: .78rem; font-weight: 800; padding: 4px 12px; border-radius: 8px;
    background: rgba(0, 0, 0, .25); color: #fff3e0;
}
.cv-label[b-9w71h3y3j6] {
    max-width: 80%; padding: 14px 18px; border-radius: 6px; background: #f8f0dd; color: #3b2107; text-align: center;
    font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; box-shadow: 0 2px 0 rgba(0, 0, 0, .2), inset 0 0 0 1px rgba(0, 0, 0, .12);
    transform: rotate(-2deg);
}
.cv-string[b-9w71h3y3j6] { position: absolute; right: 22px; top: 0; bottom: 0; width: 6px; background: linear-gradient(90deg, #7f1d1d, #dc2626, #7f1d1d); box-shadow: 0 0 6px rgba(0, 0, 0, .5); }
.cv-back[b-9w71h3y3j6] {
    transform: rotateY(180deg);
    border-radius: 22px 4px 4px 22px;
    background:
        radial-gradient(80% 60% at 0% 100%, color-mix(in oklab, var(--cc) 25%, transparent), transparent 70%),
        linear-gradient(200deg, color-mix(in oklab, var(--cc) 30%, #5b3510), #2a1604);
    box-shadow: inset -8px 0 14px -8px rgba(0, 0, 0, .6);
}

@media (max-width: 760px) {
    .dossier[b-9w71h3y3j6] { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .dz-left[b-9w71h3y3j6] {
        border-radius: 22px 22px 4px 4px;
        background: linear-gradient(200deg, color-mix(in oklab, var(--cc) 30%, #5b3510), #2a1604);
        padding: 22px 18px; animation-delay: .9s;
    }
    .dz-right[b-9w71h3y3j6] { border-radius: 4px 4px 22px 22px; padding: 16px 12px 20px; }
    .paper-sheet[b-9w71h3y3j6] { padding: 20px 14px 16px; animation-delay: .7s; }
    .ps-grid[b-9w71h3y3j6] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 10px; padding-left: 16px; }
    .ps-title[b-9w71h3y3j6], .ps-prov[b-9w71h3y3j6] { padding-left: 16px; }
    .dz-ring[b-9w71h3y3j6] { width: 104px; height: 104px; }
    .rg-center strong[b-9w71h3y3j6] { font-size: 1.6rem; }
    .dz-cover[b-9w71h3y3j6] { left: 0; transform-origin: center top; animation: cv-up-b-9w71h3y3j6 1.2s cubic-bezier(.65, 0, .25, 1) forwards .3s; transform: none; }
    .cv-face[b-9w71h3y3j6] { border-radius: 22px; }
    .dossier[b-9w71h3y3j6]::before { right: 16px; }
    @keyframes cv-up-b-9w71h3y3j6 { 70% { transform: rotateX(80deg); opacity: 1; } 100% { transform: rotateX(96deg); opacity: 0; visibility: hidden; } }
}
@media (max-width: 380px) { .ps-grid[b-9w71h3y3j6] { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Azioni rapide ---------- */
.quick[b-9w71h3y3j6] { display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 10px; margin-bottom: 18px; }
.q-btn[b-9w71h3y3j6] {
    display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; padding: 12px 14px; border-radius: 18px; cursor: pointer;
    background: linear-gradient(145deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02)); border: 1px solid var(--border); color: var(--text); text-align: left;
    transition: transform .35s var(--ease-spring), border-color .2s, background .2s;
}
.q-btn:hover[b-9w71h3y3j6] { transform: translateY(-3px); border-color: color-mix(in oklab, var(--accent) 50%, var(--border)); }
.q-btn span[b-9w71h3y3j6] { font-size: 1.3rem; }
.q-btn b[b-9w71h3y3j6] { font-size: .9rem; }
.q-btn small[b-9w71h3y3j6] { color: var(--text-3); font-size: .74rem; max-width: 100%; }
.q-btn.danger:hover[b-9w71h3y3j6] { border-color: color-mix(in oklab, var(--danger) 60%, transparent); background: color-mix(in oklab, var(--danger) 12%, transparent); }

/* ---------- Allegati ---------- */
.files[b-9w71h3y3j6] { margin-bottom: 20px; }
.dropzone[b-9w71h3y3j6] {
    position: relative; display: flex; align-items: center; gap: 18px; padding: 20px; border-radius: 20px;
    border: 2px dashed color-mix(in oklab, var(--accent-2) 45%, var(--border)); background: rgba(0, 0, 0, .2);
    transition: border-color .25s, background .25s, transform .4s var(--ease-spring), box-shadow .3s;
}
.dropzone:hover[b-9w71h3y3j6], .dropzone:focus-within[b-9w71h3y3j6] { border-color: var(--accent-2); background: color-mix(in oklab, var(--accent) 10%, rgba(0, 0, 0, .2)); }
.dropzone.dragging[b-9w71h3y3j6] { transform: scale(1.02); border-style: solid; border-color: var(--accent-2); background: color-mix(in oklab, var(--accent) 22%, rgba(0, 0, 0, .2)); box-shadow: 0 0 0 6px color-mix(in oklab, var(--accent-2) 20%, transparent), 0 20px 50px -20px var(--accent); }
.dropzone.dropped[b-9w71h3y3j6] { animation: dz-pop-b-9w71h3y3j6 .6s var(--ease-spring); }
@keyframes dz-pop-b-9w71h3y3j6 { 40% { transform: scale(.97); } }
.dropzone.busy[b-9w71h3y3j6] { border-style: solid; }
[b-9w71h3y3j6] .dz-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; font-size: 0; }
.dropzone.busy[b-9w71h3y3j6]  .dz-input { cursor: progress; }
.dz-art[b-9w71h3y3j6] { position: relative; width: 64px; height: 70px; flex: none; perspective: 400px; }
.dz-sheet[b-9w71h3y3j6] {
    position: absolute; inset: 6px 10px; border-radius: 5px; background: repeating-linear-gradient(180deg, #fdf8ee 0 9px, #e8dcc2 9px 10px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, .4); transition: transform .5s var(--ease-spring);
}
.dz-sheet.s1[b-9w71h3y3j6] { transform: rotate(-12deg) translateX(-6px); background: linear-gradient(180deg, #fecaca 0 22%, #fdf8ee 22%); }
.dz-sheet.s2[b-9w71h3y3j6] { transform: rotate(6deg) translateX(6px); }
.dz-sheet.s3[b-9w71h3y3j6] { transform: rotate(-2deg); }
.dropzone:hover .dz-sheet.s1[b-9w71h3y3j6], .dropzone.dragging .dz-sheet.s1[b-9w71h3y3j6] { transform: rotate(-22deg) translate(-14px, -6px); }
.dropzone:hover .dz-sheet.s2[b-9w71h3y3j6], .dropzone.dragging .dz-sheet.s2[b-9w71h3y3j6] { transform: rotate(16deg) translate(14px, -4px); }
.dropzone:hover .dz-sheet.s3[b-9w71h3y3j6], .dropzone.dragging .dz-sheet.s3[b-9w71h3y3j6] { transform: translateY(-12px); }
.dropzone.busy .dz-sheet.s3[b-9w71h3y3j6] { animation: dz-fly-b-9w71h3y3j6 1s ease-in-out infinite; }
@keyframes dz-fly-b-9w71h3y3j6 { 50% { transform: translateY(-18px) rotate(4deg); } }
.dz-text[b-9w71h3y3j6] { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.dz-text u[b-9w71h3y3j6] { text-decoration-color: var(--accent-2); text-underline-offset: 3px; }
.dz-text .progress[b-9w71h3y3j6] { margin-top: 6px; height: 8px; }

.cam-btn[b-9w71h3y3j6] { display: none; margin-top: 10px; position: relative; }
.cam-btn.disabled[b-9w71h3y3j6] { opacity: .5; pointer-events: none; }
@media (pointer: coarse) { .cam-btn[b-9w71h3y3j6] { display: inline-flex; } }

.att-grid[b-9w71h3y3j6] { display: grid; grid-template-columns: repeat(auto-fill, minmax(156px, 1fr)); gap: 14px; margin-top: 16px; }
.att[b-9w71h3y3j6] { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 18px; background: var(--surface); border: 1px solid var(--border); min-width: 0; }
.att-thumb[b-9w71h3y3j6] {
    position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; border: 0; padding: 0; cursor: zoom-in;
    display: grid; place-items: center; background: linear-gradient(160deg, #fdf8ee, #e9dcc0); color: #3b2107;
    transition: transform .45s var(--ease-spring), box-shadow .3s;
}
.att-thumb:hover[b-9w71h3y3j6] { transform: translateY(-4px) rotate(-1deg); box-shadow: 0 18px 30px -14px rgba(0, 0, 0, .8); }
.att-thumb img[b-9w71h3y3j6] { width: 100%; height: 100%; object-fit: cover; }
.att-thumb.pdf[b-9w71h3y3j6] { background: linear-gradient(180deg, #dc2626 0 26%, #fdf8ee 26%); }
.att-ico[b-9w71h3y3j6] { font-size: 2.2rem; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .3)); }
.att-ext[b-9w71h3y3j6] { position: absolute; bottom: 8px; right: 8px; font-size: .66rem; font-weight: 800; padding: 2px 6px; border-radius: 6px; background: rgba(0, 0, 0, .75); color: #fff; }
.att-meta[b-9w71h3y3j6] { display: flex; flex-direction: column; min-width: 0; padding: 0 2px; }
.att-name[b-9w71h3y3j6] { font-weight: 600; font-size: .85rem; }
.att-actions[b-9w71h3y3j6] { display: flex; gap: 2px; justify-content: flex-end; }

/* ---------- Anteprima ---------- */
.pv[b-9w71h3y3j6] { position: relative; display: grid; place-items: center; }
.pv-frame[b-9w71h3y3j6] { width: 100%; height: min(72vh, 900px); border: 0; border-radius: 12px; background: #fff; }
.pv-img[b-9w71h3y3j6] { max-width: 100%; max-height: 72vh; object-fit: contain; border-radius: 12px; box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .8); animation: pv-in-b-9w71h3y3j6 .5s var(--ease-spring); }
@keyframes pv-in-b-9w71h3y3j6 { from { transform: scale(.9) rotateX(10deg); opacity: 0; } }
.pv-nav[b-9w71h3y3j6] {
    position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; border-radius: 50%; cursor: pointer;
    border: 1px solid var(--border-strong); background: rgba(10, 6, 2, .65); color: #fff; font-size: 1.6rem; line-height: 1;
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.pv-nav.prev[b-9w71h3y3j6] { left: 8px; }
.pv-nav.next[b-9w71h3y3j6] { right: 8px; }
.pv.pdf .pv-nav[b-9w71h3y3j6] { top: auto; bottom: 12px; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .dz-cover[b-9w71h3y3j6] { display: none; }
    .dz-left[b-9w71h3y3j6] { border-radius: 22px 4px 4px 22px; background: linear-gradient(200deg, color-mix(in oklab, var(--cc) 30%, #5b3510), #2a1604); }
}
/* /Components/Pages/Diario/DiarioPage.razor.rz.scp.css */
/* ---------- Hero: libro 3D con le pagine che si sfogliano ---------- */
.hero-book[b-zurpjbxw7r] { perspective: 900px; margin-left: auto; }
.book[b-zurpjbxw7r] { position: relative; width: 108px; height: 140px; transform-style: preserve-3d;
    transform: rotateY(calc(-24deg + var(--mx) * 16deg)) rotateX(calc(10deg + var(--my) * -8deg)); animation: book-in-b-zurpjbxw7r 1.1s var(--ease-spring) both .2s; }
@keyframes book-in-b-zurpjbxw7r { from { opacity: 0; transform: rotateY(-120deg) translateZ(-80px); } }
.bk-cover[b-zurpjbxw7r] { position: absolute; inset: 0; border-radius: 6px 16px 16px 6px; transform: translateZ(-10px);
    background: linear-gradient(135deg, var(--accent), color-mix(in oklab, var(--accent) 50%, #3b0a2a) 60%, var(--accent-2));
    box-shadow: 0 30px 60px -20px color-mix(in oklab, var(--accent) 90%, transparent), inset 6px 0 0 rgba(0,0,0,.25); }
.bk-page[b-zurpjbxw7r] { position: absolute; inset: 5px 6px 5px 4px; border-radius: 3px 12px 12px 3px; transform-origin: 0 50%;
    background: linear-gradient(90deg, #e9e3d6, #fffaf0 12%, #fffdf7); box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
    background-image: repeating-linear-gradient(180deg, transparent 0 11px, rgba(99, 102, 241, .18) 11px 12px), linear-gradient(90deg, #e9e3d6, #fffaf0 12%, #fffdf7); }
.bk-page.p1[b-zurpjbxw7r] { animation: page-flip-b-zurpjbxw7r 6s var(--ease-out) infinite; }
.bk-page.p2[b-zurpjbxw7r] { animation: page-flip-b-zurpjbxw7r 6s var(--ease-out) infinite 2s; }
.bk-page.p3[b-zurpjbxw7r] { animation: page-flip-b-zurpjbxw7r 6s var(--ease-out) infinite 4s; }
@keyframes page-flip-b-zurpjbxw7r { 0%, 20% { transform: rotateY(0); } 45%, 100% { transform: rotateY(-170deg); opacity: .15; } }
.bk-label[b-zurpjbxw7r] { position: absolute; left: 50%; bottom: -26px; transform: translateX(-50%); font-family: var(--font-display); font-weight: 700; color: var(--text-2); font-size: .85rem; }

/* ---------- Oggi + statistiche ---------- */
.dr-today[b-zurpjbxw7r] { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; }
@media (max-width: 900px) { .dr-today[b-zurpjbxw7r] { grid-template-columns: minmax(0, 1fr); } }
.today-card[b-zurpjbxw7r] {
    position: relative; overflow: hidden; display: flex; align-items: center; gap: 18px; padding: 20px; min-height: 140px; border-radius: 28px; cursor: pointer; text-align: left; color: #fff;
    border: 1px solid color-mix(in oklab, var(--accent) 45%, var(--border));
    background: radial-gradient(120% 140% at 0% 0%, color-mix(in oklab, var(--accent) 55%, transparent), transparent 60%), linear-gradient(150deg, rgba(60,20,60,.9), rgba(20,10,30,.92));
    box-shadow: 0 30px 60px -30px var(--accent), inset 0 1px 0 rgba(255,255,255,.14);
    transition: transform .45s var(--ease-spring), box-shadow .4s;
}
.today-card:hover[b-zurpjbxw7r] { transform: translateY(-4px) rotateX(4deg); box-shadow: 0 40px 70px -30px var(--accent), inset 0 1px 0 rgba(255,255,255,.2); }
.today-card.empty[b-zurpjbxw7r]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.12) 50%, transparent 70%); background-size: 250% 100%; animation: tc-shine-b-zurpjbxw7r 3.5s ease-in-out infinite; }
@keyframes tc-shine-b-zurpjbxw7r { from { background-position: 150% 0; } to { background-position: -100% 0; } }
.tc-bg[b-zurpjbxw7r] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; filter: saturate(1.2); transition: transform 1.2s var(--ease-out);
    mask-image: linear-gradient(90deg, transparent, #000 60%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); }
.today-card:hover .tc-bg[b-zurpjbxw7r] { transform: scale(1.06); }
.tc-date[b-zurpjbxw7r] { position: relative; display: flex; align-items: center; gap: 10px; flex: none; }
.tc-date b[b-zurpjbxw7r] { font-family: var(--font-display); font-size: 3.4rem; line-height: .9; background: linear-gradient(160deg, #fff 30%, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tc-date span[b-zurpjbxw7r] { font-size: .8rem; font-weight: 700; text-transform: capitalize; color: var(--text-2); line-height: 1.3; }
.tc-body[b-zurpjbxw7r] { position: relative; display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.tc-title[b-zurpjbxw7r] { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; }
.tc-text[b-zurpjbxw7r] { color: var(--text-2); font-size: .9rem; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.tc-cta[b-zurpjbxw7r] { position: relative; flex: none; padding: 10px 16px; border-radius: 14px; font-weight: 700; background: linear-gradient(135deg, var(--accent), var(--accent-2)); box-shadow: 0 12px 24px -10px var(--accent); }
@media (max-width: 560px) {
    .today-card[b-zurpjbxw7r] { flex-wrap: wrap; gap: 12px; padding: 16px; }
    .tc-body[b-zurpjbxw7r] { flex-basis: 100%; order: 3; }
    .tc-cta[b-zurpjbxw7r] { margin-left: auto; }
}

.dr-stats[b-zurpjbxw7r] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.st[b-zurpjbxw7r] { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 0; padding: 12px 14px; border-radius: 20px; border: 1px solid var(--border);
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02)); animation: st-in-b-zurpjbxw7r .6s var(--ease-spring) backwards; }
.st:nth-child(2)[b-zurpjbxw7r] { animation-delay: .06s; } .st:nth-child(3)[b-zurpjbxw7r] { animation-delay: .12s; } .st:nth-child(4)[b-zurpjbxw7r] { animation-delay: .18s; }
@keyframes st-in-b-zurpjbxw7r { from { opacity: 0; transform: translateY(14px) rotateX(-30deg); } }
.st-ico[b-zurpjbxw7r] { position: absolute; top: 10px; right: 12px; font-size: 1.3rem; filter: drop-shadow(0 4px 8px rgba(0,0,0,.4)); }
.st b[b-zurpjbxw7r] { font-family: var(--font-display); font-size: 1.6rem; line-height: 1.1; }
.st span:last-child[b-zurpjbxw7r] { font-size: .74rem; color: var(--text-2); }

/* ---------- Accadde oggi ---------- */
.otd[b-zurpjbxw7r] { margin-bottom: 18px; }
.otd-title[b-zurpjbxw7r] { font-size: 1rem; margin-bottom: 10px; }
.otd-card[b-zurpjbxw7r] { position: relative; width: 220px; height: 130px; border-radius: 20px; overflow: hidden; border: 1px solid var(--border); cursor: pointer; text-align: left; color: #fff; padding: 12px;
    display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; background: linear-gradient(160deg, rgba(80,30,80,.8), rgba(20,10,30,.9)); transition: transform .4s var(--ease-spring); }
.otd-card:hover[b-zurpjbxw7r] { transform: translateY(-4px) rotate(-1deg); }
.otd-card img[b-zurpjbxw7r] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.otd-card[b-zurpjbxw7r]::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.8)); }
.otd-year[b-zurpjbxw7r], .otd-text[b-zurpjbxw7r] { position: relative; z-index: 1; }
.otd-year[b-zurpjbxw7r] { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--accent-2); }
.otd-text[b-zurpjbxw7r] { font-size: .84rem; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* ---------- Filtri ---------- */
.dfilters[b-zurpjbxw7r] { position: sticky; top: calc(64px + var(--safe-top)); z-index: 20; padding: 10px; border-radius: 22px; margin-bottom: 18px;
    background: linear-gradient(145deg, rgba(50,18,50,.82), rgba(18,10,30,.78)); box-shadow: 0 20px 40px -24px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.08); }
.df-top[b-zurpjbxw7r] { display: flex; gap: 8px; align-items: center; }
.df-search[b-zurpjbxw7r] { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; }
.df-search > span[b-zurpjbxw7r] { position: absolute; left: 12px; font-size: .9rem; pointer-events: none; }
.df-search .input[b-zurpjbxw7r] { width: 100%; padding-left: 36px; height: 38px; }
.df-date[b-zurpjbxw7r] { width: 150px; height: 38px; }
.df-chips[b-zurpjbxw7r] { margin-top: 8px; gap: 6px; }
.df-chips .chip[b-zurpjbxw7r] { height: 32px; padding: 0 12px; }
.mood-chip[b-zurpjbxw7r] { font-size: 1.05rem; padding: 0 10px !important; }
.tag-chip i[b-zurpjbxw7r] { width: 9px; height: 9px; border-radius: 50%; background: var(--tc); box-shadow: 0 0 8px var(--tc); }
.tag-chip.active[b-zurpjbxw7r] { background: color-mix(in oklab, var(--tc) 32%, transparent); border-color: color-mix(in oklab, var(--tc) 70%, transparent); }
.df-clear[b-zurpjbxw7r] { color: var(--danger) !important; }
.df-count[b-zurpjbxw7r] { margin: 8px 4px 0; }
@media (max-width: 700px) {
    .dfilters[b-zurpjbxw7r] { top: calc(60px + var(--safe-top)); padding: 8px; }
    .df-top[b-zurpjbxw7r] { flex-wrap: wrap; }
    .df-view[b-zurpjbxw7r] { order: 3; flex: 1 1 100%; display: flex; }
    .df-view > *[b-zurpjbxw7r] { flex: 1; }
    .df-date[b-zurpjbxw7r] { width: 44px; padding: 0 10px; flex: none; color: transparent; }
    .df-date[b-zurpjbxw7r]::-webkit-datetime-edit { display: none; }
}

/* ---------- Mesi ---------- */
.dmonths[b-zurpjbxw7r] { display: flex; flex-direction: column; gap: 22px; }
.dm-sentinel[b-zurpjbxw7r] { height: 160px; }
.dm-sentinel .skeleton[b-zurpjbxw7r] { display: block; height: 100%; border-radius: 24px; }
.dm-end[b-zurpjbxw7r] { text-align: center; padding: 30px 10px 10px; color: var(--text-2); }
.dm-end span[b-zurpjbxw7r] { font-size: 2.2rem; }
.dm-end p[b-zurpjbxw7r] { margin: 8px 0 12px; }
/* /Components/Pages/Diario/DiaryList.razor.rz.scp.css */
.dl[b-tf3c9kcfca] { max-width: 900px; margin: 0 auto; position: relative; }
.dl[b-tf3c9kcfca]::before { content: ""; position: absolute; left: 33px; top: 30px; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--accent), var(--accent-2), transparent); opacity: .35; border-radius: 2px; }
.dl-month[b-tf3c9kcfca] { margin: 22px 0 12px 80px; font-size: 1.05rem; color: var(--text-2); }
.dl-month:first-child[b-tf3c9kcfca] { margin-top: 0; }
.dl-card[b-tf3c9kcfca] { margin-bottom: 12px; }
.dl-open[b-tf3c9kcfca] { width: 100%; display: flex; align-items: stretch; gap: 14px; padding: 0; border: 0; background: none; cursor: pointer; text-align: left; color: var(--text); }
.dl-date[b-tf3c9kcfca] { position: relative; z-index: 1; width: 68px; height: 68px; flex: none; border-radius: 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05;
    background: linear-gradient(150deg, color-mix(in oklab, var(--mc) 60%, #1a0f2a), #140c22); border: 1px solid color-mix(in oklab, var(--mc) 50%, transparent);
    box-shadow: 0 14px 26px -14px var(--mc); transition: transform .4s var(--ease-spring); }
.dl-date b[b-tf3c9kcfca] { font-family: var(--font-display); font-size: 1.7rem; }
.dl-date span[b-tf3c9kcfca] { font-size: .66rem; font-weight: 800; text-transform: uppercase; color: var(--text-2); }
.dl-open:hover .dl-date[b-tf3c9kcfca] { transform: rotate(-6deg) scale(1.06); }
.dl-body[b-tf3c9kcfca] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: 22px; border: 1px solid var(--border);
    background: linear-gradient(160deg, color-mix(in oklab, var(--mc) 12%, rgba(255,255,255,.05)), rgba(255,255,255,.02));
    transition: transform .4s var(--ease-spring), box-shadow .35s, border-color .3s; }
.dl-open:hover .dl-body[b-tf3c9kcfca] { transform: translateX(4px); border-color: color-mix(in oklab, var(--mc) 45%, var(--border)); box-shadow: 0 20px 40px -24px var(--mc); }
.dl-top[b-tf3c9kcfca] { display: flex; align-items: center; gap: 8px; }
.dl-mood[b-tf3c9kcfca] { font-size: 1.3rem; }
.dl-title[b-tf3c9kcfca] { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; }
.dl-text[b-tf3c9kcfca] { color: var(--text-2); font-size: .92rem; white-space: pre-line; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.dl-tags[b-tf3c9kcfca] { display: flex; flex-wrap: wrap; gap: 6px; }
.dl-tag[b-tf3c9kcfca] { font-size: .74rem; font-weight: 700; padding: 2px 9px; border-radius: 99px; color: color-mix(in oklab, var(--tc) 55%, white); background: color-mix(in oklab, var(--tc) 18%, transparent); border: 1px solid color-mix(in oklab, var(--tc) 40%, transparent); }
.dl-photos[b-tf3c9kcfca] { position: relative; flex: none; width: 150px; display: grid; gap: 4px; border-radius: 20px; overflow: hidden; }
.dl-photos.c1[b-tf3c9kcfca] { grid-template-columns: 1fr; }
.dl-photos.c2[b-tf3c9kcfca] { grid-template-columns: 1fr 1fr; }
.dl-photos.c3[b-tf3c9kcfca] { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.dl-photos.c3 img:first-child[b-tf3c9kcfca] { grid-row: span 2; }
.dl-photos img[b-tf3c9kcfca] { width: 100%; height: 100%; min-height: 60px; object-fit: cover; transition: transform .7s var(--ease-out); }
.dl-open:hover .dl-photos img[b-tf3c9kcfca] { transform: scale(1.08); }
.dl-photos b[b-tf3c9kcfca] { position: absolute; right: 6px; bottom: 6px; padding: 2px 7px; border-radius: 8px; font-size: .72rem; background: rgba(0,0,0,.6); color: #fff; }

@media (max-width: 700px) {
    .dl[b-tf3c9kcfca]::before { left: 23px; }
    .dl-month[b-tf3c9kcfca] { margin-left: 60px; }
    .dl-open[b-tf3c9kcfca] { flex-wrap: wrap; gap: 10px; }
    .dl-date[b-tf3c9kcfca] { width: 48px; height: 52px; border-radius: 16px; }
    .dl-date b[b-tf3c9kcfca] { font-size: 1.25rem; }
    .dl-body[b-tf3c9kcfca] { flex: 1 1 calc(100% - 60px); }
    .dl-photos[b-tf3c9kcfca] { width: auto; height: 150px; margin-left: 58px; flex: 1 1 calc(100% - 58px); min-width: 0; }
}
/* /Components/Pages/Diario/DiaryMonth.razor.rz.scp.css */
.dm[b-f62zn7fx34] { position: relative; padding: 18px; border-radius: 30px; border: 1px solid var(--border); scroll-margin-top: 170px;
    background: linear-gradient(165deg, rgba(255,255,255,.06), rgba(255,255,255,.015));
    box-shadow: var(--shadow-2); perspective: 1400px;
    animation: dm-in-b-f62zn7fx34 .9s var(--ease-spring) backwards; animation-delay: calc(var(--k) * 70ms);
    /* comparsa guidata dallo scroll (dove supportata) */
    animation-timeline: view(); animation-range: entry 0% entry 40%; }
@keyframes dm-in-b-f62zn7fx34 { from { opacity: 0; transform: perspective(1200px) rotateX(-22deg) translateY(50px) scale(.96); } }
@supports not (animation-timeline: view()) { .dm[b-f62zn7fx34] { animation-timeline: auto; animation-range: normal; } }
.dm.no-match[b-f62zn7fx34] { opacity: .45; }

.dm-head[b-f62zn7fx34] { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 4px 16px; margin-bottom: 14px; }
.dm-title[b-f62zn7fx34] { display: flex; align-items: baseline; gap: 10px; }
.dm-name[b-f62zn7fx34] { font-size: clamp(1.4rem, 3.4vw, 2rem); font-weight: 700; background: linear-gradient(120deg, #fff 30%, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.dm-year[b-f62zn7fx34] { font-family: var(--font-display); font-weight: 600; color: var(--text-3); font-size: 1.1rem; }
.dm-meta[b-f62zn7fx34] { justify-self: end; display: flex; gap: 6px; font-size: .85rem; color: var(--text-2); }
.dm-moods[b-f62zn7fx34] { grid-column: 1 / -1; display: flex; align-items: flex-end; gap: 2px; height: 22px; margin-top: 6px; }
.dm-moods i[b-f62zn7fx34] { flex: 1; height: calc(var(--h) * 20%); min-height: 2px; border-radius: 3px 3px 1px 1px; background: var(--mc); box-shadow: 0 0 8px var(--mc); opacity: .85;
    transform-origin: bottom; animation: mood-grow-b-f62zn7fx34 .8s var(--ease-spring) backwards .3s; }
@keyframes mood-grow-b-f62zn7fx34 { from { transform: scaleY(0); } }

.dm-wd[b-f62zn7fx34], .dm-grid[b-f62zn7fx34] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.dm-wd[b-f62zn7fx34] { font-size: .7rem; font-weight: 700; color: var(--text-3); text-align: center; margin-bottom: 6px; letter-spacing: .1em; }

/* ---------- Giorno ---------- */
.dd[b-f62zn7fx34] { position: relative; aspect-ratio: 4 / 3; min-width: 0; padding: 8px; border-radius: 18px; overflow: hidden; cursor: pointer; text-align: left; color: var(--text);
    display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
    border: 1px solid var(--border); background: rgba(255,255,255,.035);
    transition: transform .45s var(--ease-spring), box-shadow .35s, opacity .35s, filter .35s, border-color .3s;
    animation: dd-in-b-f62zn7fx34 .6s var(--ease-out) backwards; animation-delay: calc(var(--k) * 70ms + var(--j) * 12ms + 120ms); }
@keyframes dd-in-b-f62zn7fx34 { from { opacity: 0; transform: translateZ(-80px) rotateX(-40deg); } }
.dd.blank[b-f62zn7fx34] { background: transparent; border: 0; pointer-events: none; animation: none; }
.dd.we:not(.on)[b-f62zn7fx34] { background: rgba(0,0,0,.18); }
.dd:not(.future):hover[b-f62zn7fx34] { transform: translateY(-5px) translateZ(30px) rotateX(8deg); z-index: 2; border-color: var(--border-strong); box-shadow: 0 26px 40px -18px rgba(0,0,0,.9), 0 0 0 1px color-mix(in oklab, var(--mc) 50%, transparent); }
.dd:focus-visible[b-f62zn7fx34] { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.dd.future[b-f62zn7fx34] { opacity: .3; cursor: default; }

.dd.on[b-f62zn7fx34] { background: linear-gradient(160deg, color-mix(in oklab, var(--mc) 32%, rgba(255,255,255,.05)), color-mix(in oklab, var(--mc) 8%, transparent));
    border-color: color-mix(in oklab, var(--mc) 40%, var(--border)); }
.dd.on:not(.photo)[b-f62zn7fx34]::before { content: ""; position: absolute; inset: auto -30% -50% -30%; height: 90%; border-radius: 50%; pointer-events: none;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--accent) 45%, transparent), transparent); opacity: .5; }
.dd.photo[b-f62zn7fx34] { border-color: rgba(255,255,255,.18); color: #fff; }
.dd-img[b-f62zn7fx34] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out), filter .4s; }
.dd.photo[b-f62zn7fx34]::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.45), transparent 35%, transparent 60%, rgba(0,0,0,.6)); }
.dd.photo:hover .dd-img[b-f62zn7fx34] { transform: scale(1.1); }

.dd-num[b-f62zn7fx34] { position: relative; z-index: 1; font-weight: 800; font-size: .95rem; line-height: 1; text-shadow: 0 1px 3px rgba(0,0,0,.5); }
.dd.today .dd-num[b-f62zn7fx34] { width: 26px; height: 26px; border-radius: 9px; display: grid; place-items: center; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; box-shadow: 0 6px 14px -4px var(--accent); }
.dd.today[b-f62zn7fx34] { box-shadow: 0 0 0 2px var(--accent-2), 0 0 26px -6px var(--accent-2); }
.dd-mood[b-f62zn7fx34] { position: absolute; z-index: 1; top: 6px; right: 7px; font-size: 1.15rem; line-height: 1; filter: drop-shadow(0 3px 6px rgba(0,0,0,.5)); transition: transform .4s var(--ease-spring); }
.dd:hover .dd-mood[b-f62zn7fx34] { transform: scale(1.3) rotate(-10deg); }
.dd-text[b-f62zn7fx34] { position: relative; z-index: 1; font-size: .68rem; line-height: 1.3; color: var(--text-2); margin-top: 4px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.dd-foot[b-f62zn7fx34] { position: relative; z-index: 2; margin-top: auto; width: 100%; display: flex; align-items: center; gap: 3px; }
.dd-tag[b-f62zn7fx34] { width: 8px; height: 8px; border-radius: 50%; background: var(--tc); box-shadow: 0 0 6px var(--tc), 0 0 0 1.5px rgba(0,0,0,.35); }
.dd-count[b-f62zn7fx34] { margin-left: auto; font-size: .62rem; font-weight: 800; padding: 1px 5px; border-radius: 7px; background: rgba(0,0,0,.5); color: #fff; }
.dd-plus[b-f62zn7fx34] { position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.3rem; color: var(--accent-2); opacity: 0; transform: scale(.5); transition: all .3s var(--ease-spring); }
.dd:not(.future):hover .dd-plus[b-f62zn7fx34] { opacity: .9; transform: none; }

/* Filtro attivo */
.dd.dim[b-f62zn7fx34] { opacity: .18; filter: grayscale(1); }
.dd.dim:hover[b-f62zn7fx34] { opacity: .6; filter: none; }
.dd.match[b-f62zn7fx34] { box-shadow: 0 0 0 2px var(--accent-2), 0 14px 30px -12px var(--accent); animation: dd-in-b-f62zn7fx34 .6s var(--ease-out) backwards, match-pulse-b-f62zn7fx34 2.4s ease-in-out infinite 1s; }
@keyframes match-pulse-b-f62zn7fx34 { 50% { box-shadow: 0 0 0 2px var(--accent-2), 0 0 26px -2px var(--accent-2); } }

@media (max-width: 700px) {
    .dm[b-f62zn7fx34] { padding: 12px; border-radius: 22px; }
    .dm-head[b-f62zn7fx34] { grid-template-columns: 1fr; }
    .dm-meta[b-f62zn7fx34] { justify-self: start; }
    .dm-wd[b-f62zn7fx34], .dm-grid[b-f62zn7fx34] { gap: 4px; }
    .dd[b-f62zn7fx34] { padding: 4px 5px; border-radius: 11px; aspect-ratio: 1 / 1.15; }
    .dd-num[b-f62zn7fx34] { font-size: .78rem; }
    .dd.today .dd-num[b-f62zn7fx34] { width: 20px; height: 20px; border-radius: 7px; }
    .dd-mood[b-f62zn7fx34] { top: auto; bottom: 3px; right: 3px; font-size: .8rem; }
    .dd-tag[b-f62zn7fx34] { width: 5px; height: 5px; }
    .dd-count[b-f62zn7fx34] { display: none; }
    .dd:not(.future):hover[b-f62zn7fx34] { transform: none; }
}
/* /Components/Pages/Diario/DiarySheet.razor.rz.scp.css */
.ds[b-xk0p4ohl8e] { display: flex; flex-direction: column; gap: 16px; animation: ds-in-b-xk0p4ohl8e .5s var(--ease-out) both; }
@keyframes ds-in-b-xk0p4ohl8e { from { opacity: 0; transform: translateY(12px); } }
.ds-when[b-xk0p4ohl8e] { margin-top: -6px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--accent-2); }

.ds-moods[b-xk0p4ohl8e] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ds-mood[b-xk0p4ohl8e] { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px 8px; border-radius: 18px; cursor: pointer; color: var(--text-2);
    border: 1px solid var(--border); background: rgba(255,255,255,.04); transition: transform .4s var(--ease-spring), background .3s, border-color .3s, box-shadow .3s; }
.dsm-emoji[b-xk0p4ohl8e] { font-size: 1.8rem; line-height: 1; filter: grayscale(.6); transition: transform .45s var(--ease-spring), filter .3s; }
.dsm-label[b-xk0p4ohl8e] { font-size: .68rem; font-weight: 700; }
.ds-mood:hover[b-xk0p4ohl8e] { transform: translateY(-3px); }
.ds-mood:hover .dsm-emoji[b-xk0p4ohl8e] { filter: none; transform: scale(1.15) rotate(-8deg); }
.ds-mood.on[b-xk0p4ohl8e] { color: #fff; border-color: color-mix(in oklab, var(--c) 70%, transparent);
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 45%, transparent), color-mix(in oklab, var(--c) 12%, transparent)); box-shadow: 0 14px 28px -14px var(--c); }
.ds-mood.on .dsm-emoji[b-xk0p4ohl8e] { filter: none; transform: scale(1.25); animation: mood-pop-b-xk0p4ohl8e .6s var(--ease-spring); }
@keyframes mood-pop-b-xk0p4ohl8e { 0% { transform: scale(.6) rotate(-20deg); } 60% { transform: scale(1.4) rotate(8deg); } 100% { transform: scale(1.25); } }

.ds-title[b-xk0p4ohl8e] { font-family: var(--font-display); font-weight: 700; }

/* Carta a righe per il testo */
.ds-paper[b-xk0p4ohl8e] { position: relative; border-radius: 22px; padding: 4px; background: linear-gradient(160deg, color-mix(in oklab, var(--mc) 30%, transparent), transparent 60%); }
.ds-text[b-xk0p4ohl8e] { width: 100%; min-height: 220px; max-height: 55vh; field-sizing: content; resize: vertical; border-radius: 18px; line-height: 28px; padding: 14px 16px 26px;
    background: repeating-linear-gradient(180deg, transparent 0 27px, rgba(255,255,255,.06) 27px 28px), rgba(10,8,24,.75); background-attachment: local; background-position: 0 13px; }
.ds-words[b-xk0p4ohl8e] { position: absolute; right: 16px; bottom: 10px; pointer-events: none; }

.ds-tags[b-xk0p4ohl8e] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ds-tag i[b-xk0p4ohl8e] { width: 9px; height: 9px; border-radius: 50%; background: var(--tc); box-shadow: 0 0 8px var(--tc); }
.ds-tag.active[b-xk0p4ohl8e] { background: color-mix(in oklab, var(--tc) 32%, transparent); border-color: color-mix(in oklab, var(--tc) 70%, transparent); color: #fff; animation: tag-pop-b-xk0p4ohl8e .4s var(--ease-spring); }
@keyframes tag-pop-b-xk0p4ohl8e { 50% { transform: scale(1.1); } }
.ds-newtag .input[b-xk0p4ohl8e] { height: 34px; width: 170px; border-radius: 99px; font-size: .85rem; padding: 0 14px; }

.ds-confirm[b-xk0p4ohl8e] { padding: 14px; border-radius: 18px; background: color-mix(in oklab, var(--danger) 12%, transparent); border: 1px solid color-mix(in oklab, var(--danger) 45%, transparent); }
.ds-confirm p[b-xk0p4ohl8e] { margin: 0 0 10px; }

@media (max-width: 640px) {
    .ds-moods[b-xk0p4ohl8e] { gap: 5px; }
    .ds-mood[b-xk0p4ohl8e] { padding: 8px 2px 6px; border-radius: 14px; }
    .dsm-emoji[b-xk0p4ohl8e] { font-size: 1.5rem; }
    .dsm-label[b-xk0p4ohl8e] { font-size: .58rem; }
    .ds-text[b-xk0p4ohl8e] { min-height: 180px; }
    .ds-newtag[b-xk0p4ohl8e] { flex: 1 1 100%; }
    .ds-newtag .input[b-xk0p4ohl8e] { width: 100%; }
}
/* /Components/Pages/Diario/TagsSheet.razor.rz.scp.css */
.ts[b-mnk12g3jwt] { display: flex; flex-direction: column; gap: 10px; }
.ts-row[b-mnk12g3jwt] { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 16px; background: color-mix(in oklab, var(--c) 10%, rgba(255,255,255,.03)); border: 1px solid color-mix(in oklab, var(--c) 30%, var(--border)); animation: ts-in-b-mnk12g3jwt .45s var(--ease-spring) backwards; }
@keyframes ts-in-b-mnk12g3jwt { from { opacity: 0; transform: translateY(8px); } }
.ts-name[b-mnk12g3jwt] { flex: 1; min-width: 0; }
.ts-use[b-mnk12g3jwt] { flex: none; }
.ts-color[b-mnk12g3jwt] { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 12px; background: none; cursor: pointer; flex: none; }
.ts-color[b-mnk12g3jwt]::-webkit-color-swatch-wrapper { padding: 0; }
.ts-color[b-mnk12g3jwt]::-webkit-color-swatch { border: 0; border-radius: 12px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.2); }
.ts-new[b-mnk12g3jwt] { display: flex; gap: 10px; align-items: center; margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--border); }
.ts-new .input[b-mnk12g3jwt] { flex: 1; min-width: 0; }
@media (max-width: 640px) { .ts-new[b-mnk12g3jwt] { flex-wrap: wrap; } .ts-new .btn[b-mnk12g3jwt] { width: 100%; } }
/* /Components/Pages/Dispensa/BarcodeScanner.razor.rz.scp.css */
.bs-cam[b-yqibxu7ivw] { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3; background: #000; box-shadow: inset 0 0 0 1px var(--border-strong), 0 30px 60px -30px rgba(0,0,0,.9); }
.bs-cam video[b-yqibxu7ivw] { width: 100%; height: 100%; object-fit: cover; display: block; }
.bs-frame[b-yqibxu7ivw] { position: absolute; inset: 18% 12%; pointer-events: none; }
.bs-frame i[b-yqibxu7ivw] { position: absolute; width: 34px; height: 34px; border: 4px solid var(--accent-2); filter: drop-shadow(0 0 8px var(--accent)); }
.bs-frame i:nth-child(1)[b-yqibxu7ivw] { left: 0; top: 0; border-right: 0; border-bottom: 0; border-radius: 14px 0 0 0; }
.bs-frame i:nth-child(2)[b-yqibxu7ivw] { right: 0; top: 0; border-left: 0; border-bottom: 0; border-radius: 0 14px 0 0; }
.bs-frame i:nth-child(3)[b-yqibxu7ivw] { left: 0; bottom: 0; border-right: 0; border-top: 0; border-radius: 0 0 0 14px; }
.bs-frame i:nth-child(4)[b-yqibxu7ivw] { right: 0; bottom: 0; border-left: 0; border-top: 0; border-radius: 0 0 14px 0; }
.bs-laser[b-yqibxu7ivw] {
    position: absolute; left: 6%; right: 6%; height: 3px; top: 50%; border-radius: 3px;
    background: linear-gradient(90deg, transparent, var(--accent), var(--accent-2), var(--accent), transparent);
    box-shadow: 0 0 18px 3px color-mix(in oklab, var(--accent) 70%, transparent);
    animation: laser-b-yqibxu7ivw 1.8s ease-in-out infinite alternate;
}
@keyframes laser-b-yqibxu7ivw { from { top: 8%; } to { top: 92%; } }
.bs-hint[b-yqibxu7ivw] { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); padding: 6px 14px; border-radius: 99px; background: rgba(0,0,0,.6); backdrop-filter: blur(8px); font-size: .85rem; font-weight: 600; white-space: nowrap; }
.bs-fallback[b-yqibxu7ivw] { text-align: center; padding: 14px 8px 4px; }
.bs-big[b-yqibxu7ivw] { font-size: 64px; animation: bs-float-b-yqibxu7ivw 4s ease-in-out infinite; filter: drop-shadow(0 18px 18px rgba(0,0,0,.5)); }
@keyframes bs-float-b-yqibxu7ivw { 50% { transform: translateY(-10px) rotate(6deg); } }
/* /Components/Pages/Dispensa/CatalogPicker.razor.rz.scp.css */
.cp-tools[b-4x6e2ga5oy] { position: sticky; top: -8px; z-index: 2; display: flex; flex-direction: column; gap: 10px; padding: 8px 0 12px; margin-top: -8px; background: linear-gradient(to bottom, rgba(20,17,50,.98) 75%, transparent); }
.cp-cats[b-4x6e2ga5oy] { padding-bottom: 2px; }

.cp-grid[b-4x6e2ga5oy] { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 10px; perspective: 1000px; }
.cp-tile[b-4x6e2ga5oy] {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 6px 10px; border-radius: 20px;
    border: 1px solid var(--border); background: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); color: var(--text);
    cursor: pointer; transform-style: preserve-3d;
    transition: transform .35s var(--ease-spring), border-color .2s, background .25s, box-shadow .3s;
    animation: cp-in-b-4x6e2ga5oy .45s var(--ease-out) both; animation-delay: calc(var(--i, 0) * 18ms);
    touch-action: manipulation;
}
@keyframes cp-in-b-4x6e2ga5oy { from { opacity: 0; transform: rotateX(-40deg) translateY(16px); } to { opacity: 1; transform: none; } }
.cp-tile:hover[b-4x6e2ga5oy] { transform: translateY(-3px); border-color: var(--border-strong); }
.cp-tile:active[b-4x6e2ga5oy] { transform: scale(.94); }
.cp-emo[b-4x6e2ga5oy] { font-size: 34px; line-height: 1; filter: drop-shadow(0 8px 8px rgba(0,0,0,.45)); transition: transform .4s var(--ease-spring); }
.cp-name[b-4x6e2ga5oy] { font-size: .78rem; font-weight: 600; text-align: center; line-height: 1.2; }
.cp-has[b-4x6e2ga5oy] { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-3); }
.cp-check[b-4x6e2ga5oy] {
    position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
    font-size: .75rem; font-weight: 900; color: #1c0f00; background: linear-gradient(135deg, var(--accent), var(--accent-2));
    transform: scale(0); transition: transform .35s var(--ease-spring);
}
.cp-tile.sel[b-4x6e2ga5oy] {
    border-color: color-mix(in oklab, var(--accent) 70%, transparent);
    background: linear-gradient(160deg, color-mix(in oklab, var(--accent) 32%, transparent), color-mix(in oklab, var(--accent-2) 10%, transparent));
    box-shadow: 0 14px 30px -14px color-mix(in oklab, var(--accent) 90%, transparent);
    transform: translateY(-4px) rotateX(8deg);
}
.cp-tile.sel .cp-check[b-4x6e2ga5oy] { transform: scale(1); }
.cp-tile.sel .cp-emo[b-4x6e2ga5oy] { transform: scale(1.18) translateZ(20px); }

@media (max-width: 560px) {
    .cp-grid[b-4x6e2ga5oy] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .cp-tools[b-4x6e2ga5oy] { top: -8px; }
}
/* /Components/Pages/Dispensa/Inventario.razor.rz.scp.css */
/* =====================================================================
   Dispensa — inventario a scaffali 3D
   ===================================================================== */

@property --n { syntax: '<integer>'; initial-value: 0; inherits: false; }

/* ---------- Carrello nella barra superiore ---------- */
.inv-cart[b-63e0w4v3a3] { position: relative; overflow: visible; }
.inv-cart-n[b-63e0w4v3a3] {
    position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px;
    display: grid; place-items: center; font-size: .7rem; font-weight: 800; color: #052e16;
    background: linear-gradient(135deg, #22c55e, #14b8a6); box-shadow: 0 4px 12px -2px rgba(34,197,94,.7);
    animation: cart-n-b-63e0w4v3a3 .5s var(--ease-spring) both;
}
@keyframes cart-n-b-63e0w4v3a3 { from { transform: scale(0); } 60% { transform: scale(1.35); } to { transform: none; } }

/* ---------- Mini-visual 3D dell'hero: barattoli in orbita ---------- */
.orbit[b-63e0w4v3a3] { position: relative; width: 150px; height: 120px; flex: none; perspective: 700px; }
.orbit-core[b-63e0w4v3a3] {
    position: absolute; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 20px;
    display: grid; place-items: center; font-size: 30px;
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.35), transparent 60%), linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 0 40px color-mix(in oklab, var(--accent) 70%, transparent), inset 0 -6px 14px rgba(0,0,0,.25);
    animation: core-b-63e0w4v3a3 6s ease-in-out infinite;
}
@keyframes core-b-63e0w4v3a3 { 50% { transform: translateY(-6px) rotate(6deg) scale(1.05); } }
.orbit-ring[b-63e0w4v3a3] {
    position: absolute; inset: 0; transform-style: preserve-3d;
    animation: orbit-b-63e0w4v3a3 18s linear infinite;
}
@keyframes orbit-b-63e0w4v3a3 { from { transform: rotateX(-18deg) rotateY(0deg); } to { transform: rotateX(-18deg) rotateY(360deg); } }
.orbit-ring span[b-63e0w4v3a3] {
    position: absolute; left: 50%; top: 50%; width: 36px; height: 36px; margin: -18px 0 0 -18px; font-size: 26px; line-height: 36px; text-align: center;
    transform: rotateY(calc(var(--k) * 360deg / var(--t))) translateZ(68px);
    filter: drop-shadow(0 8px 6px rgba(0,0,0,.5));
}

/* ---------- Statistiche con numeri animati ---------- */
.inv-stats[b-63e0w4v3a3] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; perspective: 1200px; }
.stat-wrap[b-63e0w4v3a3] { min-width: 0; }
.stat[b-63e0w4v3a3] {
    --c: var(--accent);
    position: relative; width: 100%; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center;
    padding: 16px 18px; border-radius: 24px; text-align: left; cursor: pointer; color: var(--text); overflow: hidden;
    background: radial-gradient(90% 120% at 100% 0%, color-mix(in oklab, var(--c) 22%, transparent), transparent 60%), linear-gradient(150deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
    border: 1px solid color-mix(in oklab, var(--c) 18%, var(--border));
    box-shadow: 0 1px 0 rgba(255,255,255,.08) inset, 0 24px 40px -26px rgba(0,0,0,.9);
    transform-style: preserve-3d;
}
.stat.on[b-63e0w4v3a3] { border-color: color-mix(in oklab, var(--c) 70%, transparent); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c) 25%, transparent), 0 24px 40px -20px color-mix(in oklab, var(--c) 60%, transparent); }
.stat-ico[b-63e0w4v3a3] {
    grid-row: span 2; width: 50px; height: 50px; border-radius: 16px; display: grid; place-items: center; font-size: 26px;
    background: color-mix(in oklab, var(--c) 18%, rgba(0,0,0,.2)); box-shadow: inset 0 1px 0 rgba(255,255,255,.15);
    transform: translateZ(26px);
}
.stat.alert .stat-ico[b-63e0w4v3a3] { animation: stat-alert-b-63e0w4v3a3 2.6s ease-in-out infinite; }
@keyframes stat-alert-b-63e0w4v3a3 { 0%, 100% { transform: translateZ(26px); } 10% { transform: translateZ(26px) rotate(-10deg); } 20% { transform: translateZ(26px) rotate(8deg); } 30% { transform: translateZ(26px); } }
.stat-n[b-63e0w4v3a3] {
    font-size: 2rem; font-weight: 700; line-height: 1.05; transform: translateZ(18px);
    counter-reset: n var(--n);
    transition: --n 1s var(--ease-out);
    animation: count-b-63e0w4v3a3 1.6s var(--ease-out) backwards .15s;
}
.stat-n[b-63e0w4v3a3]::after { content: counter(n); }
@keyframes count-b-63e0w4v3a3 { from { --n: 0; } }
.stat-l[b-63e0w4v3a3] { font-size: .74rem; color: var(--text-2); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.stat-glow[b-63e0w4v3a3] {
    position: absolute; right: -30px; bottom: -40px; width: 110px; height: 110px; border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, color-mix(in oklab, var(--c) 45%, transparent), transparent 70%);
    filter: blur(10px); opacity: .6; transform: translate3d(calc(var(--mx) * 12px), calc(var(--my) * 12px), 0);
}

/* ---------- Barra di ricerca/aggiunta (sticky) + filtri ---------- */
.inv-bar[b-63e0w4v3a3] {
    position: sticky; top: calc(62px + var(--safe-top)); z-index: 25; display: flex; flex-direction: column; gap: 10px;
    padding: 6px 0 10px; margin: 0 0 6px;
}
.inv-multi[b-63e0w4v3a3] { flex: none; }
.inv-filters[b-63e0w4v3a3] { gap: 8px; padding: 2px 2px 4px; }
.inv-filters .chip[b-63e0w4v3a3] { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); background: rgba(15,12,30,.55); }
.inv-filters .chip.active[b-63e0w4v3a3] { background: color-mix(in oklab, var(--accent) 38%, rgba(15,12,30,.6)); }
.chip-n[b-63e0w4v3a3] {
    min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; display: inline-grid; place-items: center;
    font-size: .7rem; font-weight: 800; background: rgba(255,255,255,.14); color: white;
}

/* ---------- Luoghi (tab 3D) ---------- */
.inv-locs-row[b-63e0w4v3a3] { display: flex; align-items: center; gap: 10px; margin: 6px 0 22px; }
.inv-locs[b-63e0w4v3a3] {
    flex: 1; min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 10px 4px 12px; perspective: 700px;
    scroll-snap-type: x proximity;
}
.inv-locs[b-63e0w4v3a3]::-webkit-scrollbar { display: none; }
.loc[b-63e0w4v3a3] {
    position: relative; flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 78px; padding: 10px 12px 9px;
    border-radius: 20px; border: 1px solid var(--border); cursor: pointer; color: var(--text-2); scroll-snap-align: start;
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.015));
    transform-style: preserve-3d; transform-origin: bottom center;
    transition: transform .45s var(--ease-spring), color .2s, background .3s, border-color .3s, box-shadow .3s;
}
.loc:hover[b-63e0w4v3a3] { color: var(--text); transform: translateY(-3px); }
.loc.active[b-63e0w4v3a3] {
    color: white; border-color: color-mix(in oklab, var(--accent) 60%, transparent);
    background: linear-gradient(160deg, color-mix(in oklab, var(--accent) 45%, transparent), color-mix(in oklab, var(--accent-2) 18%, transparent));
    box-shadow: 0 18px 30px -16px color-mix(in oklab, var(--accent) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.25);
    transform: translateY(-4px) rotateX(10deg) scale(1.04);
}
.loc-e[b-63e0w4v3a3] { font-size: 1.55rem; line-height: 1.1; transition: transform .45s var(--ease-spring); filter: drop-shadow(0 6px 6px rgba(0,0,0,.4)); }
.loc.active .loc-e[b-63e0w4v3a3] { transform: translateZ(22px) scale(1.18); animation: loc-hop-b-63e0w4v3a3 .6s var(--ease-spring); }
@keyframes loc-hop-b-63e0w4v3a3 { 0% { transform: translateZ(0) scale(1); } 40% { transform: translateZ(22px) translateY(-8px) scale(1.25); } 100% { transform: translateZ(22px) scale(1.18); } }
.loc-n[b-63e0w4v3a3] { font-size: .8rem; font-weight: 700; }
.loc-c[b-63e0w4v3a3] { font-size: .7rem; font-weight: 700; color: var(--text-3); }
.loc.active .loc-c[b-63e0w4v3a3] { color: rgba(255,255,255,.8); }
.loc-alert[b-63e0w4v3a3] { position: absolute; top: 7px; right: 9px; width: 8px; height: 8px; border-radius: 50%; background: #fb7185; box-shadow: 0 0 0 3px rgba(251,113,133,.25); animation: alert-ping-b-63e0w4v3a3 2s ease-out infinite; }
@keyframes alert-ping-b-63e0w4v3a3 { 0% { box-shadow: 0 0 0 0 rgba(251,113,133,.6); } 100% { box-shadow: 0 0 0 9px rgba(251,113,133,0); } }
.inv-group[b-63e0w4v3a3] { flex: none; }

/* ---------- Scaffali ---------- */
.shelves[b-63e0w4v3a3] { display: flex; flex-direction: column; gap: 30px; perspective: 1600px; transform-origin: 50% 0; animation: shelves-in-b-63e0w4v3a3 .75s var(--ease-out) both; }
@keyframes shelves-in-b-63e0w4v3a3 {
    from { opacity: 0; transform: perspective(1600px) translateX(calc(var(--dir, 1) * 60px)) rotateY(calc(var(--dir, 1) * -16deg)) translateZ(-120px); }
    to { opacity: 1; transform: none; }
}
.shelf[b-63e0w4v3a3] { position: relative; }
.shelf-head[b-63e0w4v3a3] { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; min-width: 0; }
.shelf-head h3[b-63e0w4v3a3] { font-size: 1.15rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shelf-emo[b-63e0w4v3a3] {
    width: 40px; height: 40px; border-radius: 14px; display: grid; place-items: center; font-size: 22px; flex: none;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 35%, transparent), color-mix(in oklab, var(--accent-2) 15%, transparent));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 10px 20px -10px color-mix(in oklab, var(--accent) 80%, transparent);
}
.shelf-line[b-63e0w4v3a3] { flex: 1; height: 1px; min-width: 20px; background: linear-gradient(90deg, var(--border-strong), transparent); }
.shelf-grid[b-63e0w4v3a3] {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(164px, 1fr)); column-gap: 18px; row-gap: 14px;
    padding: 0 9px; perspective: 1100px;
}

@supports (animation-timeline: view()) {
    .shelf[b-63e0w4v3a3] { animation: shelf-scroll-b-63e0w4v3a3 linear both; animation-timeline: view(); animation-range: entry 0% cover 25%; }
    @keyframes shelf-scroll-b-63e0w4v3a3 { from { opacity: .2; transform: perspective(1400px) rotateX(18deg) translateY(50px) scale(.96); } to { opacity: 1; transform: none; } }
}

.inv-none[b-63e0w4v3a3] { text-align: center; padding: 40px 20px; border-radius: 28px; border: 1px dashed var(--border-strong); background: rgba(255,255,255,.02); color: var(--text-2); }
.inv-none-e[b-63e0w4v3a3] { font-size: 52px; margin-bottom: 8px; animation: none-float-b-63e0w4v3a3 4s ease-in-out infinite; }
@keyframes none-float-b-63e0w4v3a3 { 50% { transform: translateY(-10px) rotate(6deg); } }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .inv-stats[b-63e0w4v3a3] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .inv-stats[b-63e0w4v3a3] { gap: 10px; }
    .stat[b-63e0w4v3a3] { padding: 12px; column-gap: 10px; border-radius: 20px; }
    .stat-ico[b-63e0w4v3a3] { width: 40px; height: 40px; font-size: 21px; border-radius: 13px; }
    .stat-n[b-63e0w4v3a3] { font-size: 1.55rem; }
    .stat-l[b-63e0w4v3a3] { font-size: .66rem; letter-spacing: .03em; }
    .inv-bar[b-63e0w4v3a3] { top: calc(60px + var(--safe-top)); }
    .shelf-grid[b-63e0w4v3a3] { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
    .loc[b-63e0w4v3a3] { min-width: 68px; padding: 8px 10px 7px; }
    .shelves[b-63e0w4v3a3] { gap: 24px; }
}
/* /Components/Pages/Dispensa/ListaSpesa.razor.rz.scp.css */
/* =====================================================================
   Lista della spesa
   ===================================================================== */

@property --n { syntax: '<integer>'; initial-value: 0; inherits: false; }

.ls-shopbtn[b-zqq8gt9un0] { gap: 6px; }

/* ---------- Anello 3D nell'hero ---------- */
.ring3d[b-zqq8gt9un0] { position: relative; width: 120px; height: 120px; flex: none; perspective: 600px; }
.ring3d-disc[b-zqq8gt9un0] {
    position: absolute; inset: 0; border-radius: 50%;
    background: conic-gradient(from 0deg, var(--accent) calc(var(--p) * 1%), rgba(255,255,255,.08) 0);
    -webkit-mask: radial-gradient(circle, transparent 54%, #000 56%); mask: radial-gradient(circle, transparent 54%, #000 56%);
    transform: rotateX(58deg); box-shadow: 0 0 40px color-mix(in oklab, var(--accent) 50%, transparent);
    animation: disc-spin-b-zqq8gt9un0 14s linear infinite;
}
@keyframes disc-spin-b-zqq8gt9un0 { from { transform: rotateX(58deg) rotateZ(0deg); } to { transform: rotateX(58deg) rotateZ(360deg); } }
.ring3d-cart[b-zqq8gt9un0] { position: absolute; inset: 0; display: grid; place-items: center; font-size: 46px; filter: drop-shadow(0 16px 12px rgba(0,0,0,.55)); animation: cart-ride-b-zqq8gt9un0 3.2s ease-in-out infinite; }
@keyframes cart-ride-b-zqq8gt9un0 { 0%, 100% { transform: translateY(-6px) rotate(-6deg); } 50% { transform: translateY(-16px) rotate(6deg); } }

/* ---------- Progresso + suggerimenti ---------- */
.ls-top[b-zqq8gt9un0] { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; align-items: stretch; }
.ls-progress-wrap[b-zqq8gt9un0], .ls-sug-wrap[b-zqq8gt9un0] { min-width: 0; }
.ls-progress[b-zqq8gt9un0] { display: flex; align-items: center; gap: 20px; height: 100%; }
.ls-ring[b-zqq8gt9un0] { position: relative; width: 112px; height: 112px; flex: none; transform: translateZ(30px); }
.ls-ring svg[b-zqq8gt9un0] { width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; }
.ls-ring circle[b-zqq8gt9un0] { fill: none; stroke-width: 11; }
.ls-ring .trk[b-zqq8gt9un0] { stroke: rgba(255,255,255,.08); }
.ls-ring .val[b-zqq8gt9un0] {
    stroke: var(--accent); stroke-linecap: round; stroke-dasharray: 314.16;
    filter: drop-shadow(0 0 8px color-mix(in oklab, var(--accent) 80%, transparent));
    transition: stroke-dashoffset 1s var(--ease-spring);
}
.ls-ring-n[b-zqq8gt9un0] { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); }
.cnt[b-zqq8gt9un0] { font-size: 2rem; font-weight: 700; counter-reset: n var(--n); transition: --n .8s var(--ease-out); animation: count-b-zqq8gt9un0 1.2s var(--ease-out) backwards; }
.cnt[b-zqq8gt9un0]::after { content: counter(n); }
@keyframes count-b-zqq8gt9un0 { from { --n: 0; } }
.ls-ring-n small[b-zqq8gt9un0] { color: var(--text-3); font-weight: 600; font-size: .95rem; }
.ls-big[b-zqq8gt9un0] { font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; }
.ls-checkout[b-zqq8gt9un0] { animation: checkout-in-b-zqq8gt9un0 .5s var(--ease-spring) both; }
@keyframes checkout-in-b-zqq8gt9un0 { from { transform: scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }

.ls-sug[b-zqq8gt9un0] { height: 100%; }
.ls-sug-list[b-zqq8gt9un0] { display: flex; flex-wrap: wrap; gap: 8px; max-height: 188px; overflow-y: auto; padding: 2px; }
.sug[b-zqq8gt9un0] {
    --c: #facc15;
    display: inline-flex; align-items: center; gap: 8px; padding: 6px 8px 6px 6px; border-radius: 16px; cursor: pointer; color: var(--text); max-width: 100%;
    border: 1px solid color-mix(in oklab, var(--c) 30%, var(--border)); background: color-mix(in oklab, var(--c) 8%, rgba(255,255,255,.04));
    transition: transform .3s var(--ease-spring), background .2s;
    animation: sug-in-b-zqq8gt9un0 .45s var(--ease-spring) both; animation-delay: calc(var(--i, 0) * 35ms);
}
.sug.out[b-zqq8gt9un0] { --c: #fb7185; }
@keyframes sug-in-b-zqq8gt9un0 { from { opacity: 0; transform: scale(.7) rotateX(40deg); } to { opacity: 1; transform: none; } }
.sug:hover[b-zqq8gt9un0] { transform: translateY(-2px); background: color-mix(in oklab, var(--c) 16%, rgba(255,255,255,.05)); }
.sug:active[b-zqq8gt9un0] { transform: scale(.94); }
.sug-e[b-zqq8gt9un0] { width: 32px; height: 32px; border-radius: 11px; display: grid; place-items: center; font-size: 19px; background: rgba(0,0,0,.25); flex: none; }
.sug-t[b-zqq8gt9un0] { display: flex; flex-direction: column; min-width: 0; text-align: left; line-height: 1.15; font-weight: 600; font-size: .86rem; }
.sug-t small[b-zqq8gt9un0] { font-weight: 600; font-size: .68rem; color: color-mix(in oklab, var(--c) 60%, white); }
.sug-plus[b-zqq8gt9un0] { width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; font-weight: 900; color: #052e16; background: linear-gradient(135deg, var(--accent), var(--accent-2)); flex: none; }

/* ---------- Barra aggiunta ---------- */
.ls-bar[b-zqq8gt9un0] { position: sticky; top: calc(62px + var(--safe-top)); z-index: 25; padding: 4px 0 12px; }
.ls-hint[b-zqq8gt9un0] { margin: 2px 4px 12px; }

/* ---------- Gruppi per reparto ---------- */
.ls-list[b-zqq8gt9un0] { display: flex; flex-direction: column; gap: 22px; }
.ls-group-h[b-zqq8gt9un0] { display: flex; align-items: center; gap: 10px; margin: 0 2px 10px; }
.ls-group-h h3[b-zqq8gt9un0] { font-size: 1.02rem; font-weight: 700; }
.ls-group-e[b-zqq8gt9un0] {
    width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; font-size: 18px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 35%, transparent), color-mix(in oklab, var(--accent-2) 15%, transparent));
}
.ls-rows[b-zqq8gt9un0] { display: flex; flex-direction: column; gap: 8px; perspective: 1000px; }

@supports (animation-timeline: view()) {
    .ls-group[b-zqq8gt9un0] { animation: grp-rise-b-zqq8gt9un0 linear both; animation-timeline: view(); animation-range: entry 0% cover 22%; }
    @keyframes grp-rise-b-zqq8gt9un0 { from { opacity: .3; transform: perspective(1000px) rotateX(16deg) translateY(30px); } to { opacity: 1; transform: none; } }
}

/* ---------- Riga con swipe ---------- */
.srow[b-zqq8gt9un0] {
    position: relative; border-radius: 20px; touch-action: pan-y; user-select: none; -webkit-user-select: none;
    animation: row-in-b-zqq8gt9un0 .5s var(--ease-out) both; animation-delay: calc(var(--i, 0) * 35ms);
}
@keyframes row-in-b-zqq8gt9un0 { from { opacity: 0; transform: rotateX(-35deg) translateY(-10px); transform-origin: top; } to { opacity: 1; transform: none; } }
.swipe-bg[b-zqq8gt9un0] {
    position: absolute; inset: 0; border-radius: inherit; display: flex; align-items: center; justify-content: space-between; padding: 0 20px;
    font-weight: 800; font-size: .9rem; opacity: 0; transition: opacity .2s;
}
.srow.swiping .swipe-bg[b-zqq8gt9un0] { opacity: 1; }
.srow[data-dir="right"] .swipe-bg[b-zqq8gt9un0] { background: linear-gradient(90deg, color-mix(in oklab, #22c55e calc(30% + var(--p, 0) * 50%), transparent), transparent 80%); }
.srow[data-dir="left"] .swipe-bg[b-zqq8gt9un0] { background: linear-gradient(270deg, color-mix(in oklab, #f43f5e calc(30% + var(--p, 0) * 50%), transparent), transparent 80%); }
.srow[data-dir="right"] .sb-del[b-zqq8gt9un0], .srow[data-dir="left"] .sb-check[b-zqq8gt9un0] { opacity: 0; }
.sb[b-zqq8gt9un0] { transform: scale(calc(.8 + var(--p, 0) * .3)); transition: transform .2s var(--ease-spring); }
.srow.armed .sb[b-zqq8gt9un0] { transform: scale(1.2); }

.swipe-fg[b-zqq8gt9un0] {
    position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 12px; border-radius: inherit; cursor: pointer;
    background: linear-gradient(150deg, rgba(34,30,60,.92), rgba(20,18,40,.92));
    border: 1px solid var(--border); box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 14px 26px -20px rgba(0,0,0,.9);
    transition: transform .35s var(--ease-out), background .3s, border-color .3s, opacity .3s;
    will-change: transform; outline: none;
}
.swipe-fg:hover[b-zqq8gt9un0] { border-color: var(--border-strong); }
.swipe-fg:focus-visible[b-zqq8gt9un0] { outline: 2px solid var(--accent-2); outline-offset: 2px; }

.check[b-zqq8gt9un0] {
    width: 30px; height: 30px; border-radius: 10px; flex: none; display: grid; place-items: center; color: transparent;
    border: 2px solid var(--border-strong); background: rgba(0,0,0,.25);
    transition: background .3s, border-color .3s, color .2s, transform .45s var(--ease-spring);
}
.check svg path[b-zqq8gt9un0] { stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset .4s var(--ease-out) .08s; }
.srow.done .check[b-zqq8gt9un0], .srow.just .check[b-zqq8gt9un0] {
    color: #052e16; border-color: transparent; background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 6px 16px -4px color-mix(in oklab, var(--accent) 80%, transparent);
}
.srow.done .check svg path[b-zqq8gt9un0], .srow.just .check svg path[b-zqq8gt9un0] { stroke-dashoffset: 0; }
.srow.just .check[b-zqq8gt9un0] { animation: check-pop-b-zqq8gt9un0 .55s var(--ease-spring); }
@keyframes check-pop-b-zqq8gt9un0 { 0% { transform: scale(.6) rotate(-20deg); } 60% { transform: scale(1.25) rotate(6deg); } 100% { transform: none; } }

.s-emo[b-zqq8gt9un0] { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; font-size: 24px; flex: none; background: rgba(255,255,255,.06); transition: transform .45s var(--ease-spring), filter .3s; }
.srow.just .s-emo[b-zqq8gt9un0] { animation: emo-toss-b-zqq8gt9un0 .7s var(--ease-spring); }
@keyframes emo-toss-b-zqq8gt9un0 { 40% { transform: translateY(-10px) rotate(-14deg) scale(1.15); } 100% { transform: none; } }
.s-body[b-zqq8gt9un0] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.s-name[b-zqq8gt9un0] {
    position: relative; font-weight: 600; width: fit-content; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    background: linear-gradient(currentColor, currentColor) no-repeat 0 55% / 0% 2px;
    transition: background-size .45s var(--ease-out), color .3s;
}
.srow.done .s-name[b-zqq8gt9un0], .srow.just .s-name[b-zqq8gt9un0] { background-size: 100% 2px; color: var(--text-3); }
.s-sub[b-zqq8gt9un0] { font-size: .74rem; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srow.done .swipe-fg[b-zqq8gt9un0] { opacity: .62; background: linear-gradient(150deg, rgba(24,22,44,.8), rgba(16,14,32,.8)); }
.srow.done .s-emo[b-zqq8gt9un0] { filter: grayscale(.7); }

.s-qty[b-zqq8gt9un0] { display: flex; align-items: center; gap: 2px; padding: 3px; border-radius: 14px; background: rgba(0,0,0,.25); flex: none; }
.s-btn[b-zqq8gt9un0] { width: 34px; height: 34px; border-radius: 11px; border: 0; background: var(--surface-2); color: var(--text); font-weight: 800; font-size: 1.1rem; cursor: pointer; transition: transform .25s var(--ease-spring); touch-action: manipulation; }
.s-btn:active[b-zqq8gt9un0] { transform: scale(.82); }
.s-btn[disabled][b-zqq8gt9un0] { opacity: .3; }
.s-btn.del[b-zqq8gt9un0] { background: transparent; color: var(--text-3); font-size: .9rem; }
.s-q[b-zqq8gt9un0] { min-width: 52px; text-align: center; font-weight: 700; font-size: .88rem; white-space: nowrap; animation: q-pop-b-zqq8gt9un0 .35s var(--ease-spring); }
@keyframes q-pop-b-zqq8gt9un0 { from { transform: scale(.6); opacity: .3; } to { transform: none; opacity: 1; } }

.ls-done .ls-group-h[b-zqq8gt9un0] { opacity: .85; }
.ls-alldone[b-zqq8gt9un0] { text-align: center; padding: 36px 20px; border-radius: 28px; border: 1px solid color-mix(in oklab, var(--accent) 40%, var(--border)); background: radial-gradient(100% 100% at 50% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 70%); }
.ls-alldone-e[b-zqq8gt9un0] { font-size: 60px; animation: party-b-zqq8gt9un0 1.8s var(--ease-spring) infinite; display: inline-block; }
@keyframes party-b-zqq8gt9un0 { 0%, 100% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.12); } }
.ls-alldone h3[b-zqq8gt9un0] { font-size: 1.4rem; margin: 6px 0; }
.ls-alldone p[b-zqq8gt9un0] { margin: 0 auto 16px; max-width: 380px; }

/* ---------- Modalità negozio (schermo intero) ---------- */
.shop[b-zqq8gt9un0] {
    position: fixed; inset: 0; z-index: 150; display: flex; flex-direction: column;
    background: radial-gradient(120% 60% at 50% 0%, color-mix(in oklab, var(--accent) 22%, #05040f), #05040f 70%);
    animation: shop-in-b-zqq8gt9un0 .5s var(--ease-out) both;
}
@keyframes shop-in-b-zqq8gt9un0 { from { opacity: 0; transform: perspective(1200px) translateZ(-200px) rotateX(10deg); } to { opacity: 1; transform: none; } }
.shop-head[b-zqq8gt9un0] { display: flex; align-items: center; gap: 14px; padding: calc(14px + var(--safe-top)) 18px 14px; border-bottom: 1px solid var(--border); background: rgba(5,4,15,.6); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.shop-title[b-zqq8gt9un0] { font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; margin-bottom: 8px; }
.shop-count[b-zqq8gt9un0] { font-size: 1.1rem; color: var(--text-2); }
.shop-count b[b-zqq8gt9un0] { font-size: 2rem; color: var(--text); }
.shop-body[b-zqq8gt9un0] { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 8px 16px 24px; max-width: 760px; width: 100%; margin: 0 auto; }
.shop-cat[b-zqq8gt9un0] { position: sticky; top: 0; z-index: 2; margin: 14px -16px 8px; padding: 8px 16px; font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-2); background: linear-gradient(to bottom, rgba(5,4,15,.95), rgba(5,4,15,.7)); backdrop-filter: blur(8px); }
.shop-item[b-zqq8gt9un0] {
    width: 100%; display: flex; align-items: center; gap: 16px; min-height: 76px; padding: 12px 16px; margin-bottom: 10px; border-radius: 22px; cursor: pointer; text-align: left; color: var(--text);
    border: 1px solid var(--border-strong); background: linear-gradient(150deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
    transition: transform .3s var(--ease-spring), opacity .4s, background .3s; touch-action: manipulation;
}
.shop-item:active[b-zqq8gt9un0] { transform: scale(.97); }
.shop-check[b-zqq8gt9un0] { width: 44px; height: 44px; border-radius: 14px; flex: none; display: grid; place-items: center; color: transparent; border: 3px solid var(--border-strong); transition: all .35s var(--ease-spring); }
.shop-item.done .shop-check[b-zqq8gt9un0] { color: #052e16; border-color: transparent; background: linear-gradient(135deg, var(--accent), var(--accent-2)); transform: scale(1.1) rotate(-6deg); }
.shop-emo[b-zqq8gt9un0] { font-size: 36px; flex: none; }
.shop-name[b-zqq8gt9un0] { flex: 1; min-width: 0; font-size: 1.25rem; font-weight: 700; background: linear-gradient(currentColor, currentColor) no-repeat 0 55% / 0% 3px; transition: background-size .45s var(--ease-out), color .3s; }
.shop-item.done .shop-name[b-zqq8gt9un0] { background-size: 100% 3px; color: var(--text-3); }
.shop-item.done[b-zqq8gt9un0] { opacity: .7; }
.shop-qty[b-zqq8gt9un0] { font-size: 1.05rem; font-weight: 700; color: var(--text-2); white-space: nowrap; }
.shop-done[b-zqq8gt9un0] { display: flex; flex-wrap: wrap; gap: 8px; }
.shop-chip[b-zqq8gt9un0] { padding: 8px 12px; border-radius: 99px; border: 1px solid var(--border); background: var(--surface); color: var(--text-3); text-decoration: line-through; cursor: pointer; font-size: .9rem; }
.done-h[b-zqq8gt9un0] { opacity: .8; }
.shop-win[b-zqq8gt9un0] { text-align: center; padding: 40px 10px 10px; }
.shop-win-e[b-zqq8gt9un0] { font-size: 80px; display: inline-block; animation: party-b-zqq8gt9un0 1.6s var(--ease-spring) infinite; }
.shop-win h2[b-zqq8gt9un0] { font-size: 1.8rem; margin-top: 8px; }
.shop-foot[b-zqq8gt9un0] { padding: 12px 16px calc(14px + var(--safe-bottom)); border-top: 1px solid var(--border); background: rgba(5,4,15,.75); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.shop-foot .btn[b-zqq8gt9un0] { max-width: 760px; margin: 0 auto; display: flex; height: 58px; font-size: 1.05rem; }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
    .ls-top[b-zqq8gt9un0] { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
    .ls-progress[b-zqq8gt9un0] { gap: 14px; padding: 16px; }
    .ls-ring[b-zqq8gt9un0] { width: 88px; height: 88px; }
    .cnt[b-zqq8gt9un0] { font-size: 1.6rem; }
    .ls-big[b-zqq8gt9un0] { font-size: 1.1rem; }
    .ls-bar[b-zqq8gt9un0] { top: calc(60px + var(--safe-top)); }
    .swipe-fg[b-zqq8gt9un0] { gap: 10px; padding: 9px 8px 9px 10px; }
    .s-emo[b-zqq8gt9un0] { width: 38px; height: 38px; font-size: 21px; }
    .s-btn[b-zqq8gt9un0] { width: 32px; height: 32px; }
    .s-q[b-zqq8gt9un0] { min-width: 44px; font-size: .82rem; }
    .shop-name[b-zqq8gt9un0] { font-size: 1.1rem; }
}
/* /Components/Pages/Dispensa/PantryItemSheet.razor.rz.scp.css */
.ed[b-jqux41mti4] { display: flex; flex-direction: column; gap: 16px; }
.ed-head[b-jqux41mti4] { display: flex; gap: 14px; align-items: flex-start; }
.ed-emoji[b-jqux41mti4] {
    width: 84px; height: 84px; flex: none; border-radius: 26px; border: 1px solid var(--border-strong); cursor: pointer; font-size: 46px;
    display: grid; place-items: center;
    background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.22), rgba(255,255,255,.04) 65%), linear-gradient(135deg, color-mix(in oklab, var(--accent) 35%, transparent), color-mix(in oklab, var(--accent-2) 15%, transparent));
    box-shadow: 0 20px 36px -18px color-mix(in oklab, var(--accent) 80%, black), inset 0 2px 0 rgba(255,255,255,.2);
    transition: transform .4s var(--ease-spring);
}
.ed-emoji:hover[b-jqux41mti4] { transform: rotate(-6deg) scale(1.05); }
.ed-emoji.open[b-jqux41mti4] { transform: rotateY(180deg) scale(.95); }
.ed-emoji.open span[b-jqux41mti4] { transform: rotateY(180deg); }
.ed-emoji span[b-jqux41mti4] { display: block; filter: drop-shadow(0 10px 10px rgba(0,0,0,.45)); animation: ed-emo-b-jqux41mti4 .6s var(--ease-spring) both; }
@keyframes ed-emo-b-jqux41mti4 { from { transform: scale(.3) rotate(-30deg); } to { transform: none; } }
.ed-matches .chip[b-jqux41mti4] { height: 30px; font-size: .8rem; }

.ed-picker[b-jqux41mti4] {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(44px, 1fr)); gap: 4px; max-height: 210px; overflow-y: auto; padding: 8px;
    border-radius: 20px; background: rgba(0,0,0,.28); border: 1px solid var(--border);
    animation: ed-picker-b-jqux41mti4 .4s var(--ease-out) both; transform-origin: top left;
}
@keyframes ed-picker-b-jqux41mti4 { from { opacity: 0; transform: perspective(800px) rotateX(-20deg) scale(.96); } to { opacity: 1; transform: none; } }
.ed-picker button[b-jqux41mti4] { height: 44px; border: 0; border-radius: 12px; background: transparent; font-size: 26px; cursor: pointer; transition: transform .25s var(--ease-spring), background .2s; }
.ed-picker button:hover[b-jqux41mti4] { background: var(--surface-2); transform: scale(1.2); }
.ed-picker button.on[b-jqux41mti4] { background: color-mix(in oklab, var(--accent) 35%, transparent); }

.ed-loc[b-jqux41mti4] { overflow-x: auto; scrollbar-width: none; }
.ed-loc[b-jqux41mti4]::-webkit-scrollbar { display: none; }
.ed-loc button[b-jqux41mti4] { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 6px; min-width: 64px; }
.ed-loc-e[b-jqux41mti4] { font-size: 1.3rem; line-height: 1; transition: transform .35s var(--ease-spring); }
.ed-loc button.active .ed-loc-e[b-jqux41mti4] { transform: scale(1.25) translateY(-2px); }

.ed-grid[b-jqux41mti4] { gap: 14px; }
.ed-step[b-jqux41mti4] { display: flex; align-items: center; gap: 6px; }
.ed-step .input[b-jqux41mti4] { text-align: center; font-weight: 700; font-size: 1.1rem; padding: 0 6px; -moz-appearance: textfield; }
.ed-step .input[b-jqux41mti4]::-webkit-outer-spin-button, .ed-step .input[b-jqux41mti4]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ed-step .btn[b-jqux41mti4] { flex: none; font-size: 1.2rem; }

.ed-exp[b-jqux41mti4] { display: flex; flex-direction: column; gap: 8px; }
.ed-exp .chip[b-jqux41mti4] { height: 32px; font-size: .8rem; }

.ed-fav[b-jqux41mti4] { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--border); cursor: pointer; align-self: end; min-height: 46px; }

@media (max-width: 560px) {
    .ed-emoji[b-jqux41mti4] { width: 70px; height: 70px; font-size: 38px; border-radius: 22px; }
    .ed-grid.cols-2[b-jqux41mti4] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ed-grid.cols-2 > .field:has(.row)[b-jqux41mti4], .ed-grid.cols-2 > .ed-fav[b-jqux41mti4] { grid-column: 1 / -1; }
}
/* /Components/Pages/Dispensa/ProductAutocomplete.razor.rz.scp.css */
.pa[b-dyl0vi4lo1] { position: relative; z-index: 20; }
.pa.open[b-dyl0vi4lo1] { z-index: 35; }

.pa-field[b-dyl0vi4lo1] {
    display: flex; align-items: center; gap: 8px; height: 60px; padding: 0 8px 0 16px; border-radius: 20px;
    background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.03));
    backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--border-strong);
    box-shadow: 0 18px 40px -18px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.1);
    transition: box-shadow .3s var(--ease-out), border-color .3s, transform .4s var(--ease-spring);
    cursor: text;
}
.pa-field:focus-within[b-dyl0vi4lo1] {
    border-color: color-mix(in oklab, var(--accent) 70%, white);
    box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent), 0 24px 50px -18px color-mix(in oklab, var(--accent) 60%, transparent);
    transform: translateY(-2px);
}
.pa-ico[b-dyl0vi4lo1] { width: 30px; height: 30px; display: grid; place-items: center; color: var(--text-2); flex: none; }
.pa-plus[b-dyl0vi4lo1] {
    width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; font-weight: 800; font-size: 1.2rem; color: #1a0d00;
    background: linear-gradient(135deg, var(--accent), var(--accent-2)); animation: pa-pop-b-dyl0vi4lo1 .4s var(--ease-spring) both;
}
@keyframes pa-pop-b-dyl0vi4lo1 { from { transform: scale(0) rotate(-90deg); } to { transform: none; } }

.pa-input[b-dyl0vi4lo1] { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 1.08rem; font-weight: 500; outline: none; }
.pa-input[b-dyl0vi4lo1]::placeholder { color: var(--text-3); font-weight: 400; }

.pa-drop[b-dyl0vi4lo1] {
    position: absolute; left: 0; right: 0; top: calc(100% + 8px); padding: 6px; border-radius: 22px;
    max-height: min(60vh, 440px); overflow-y: auto; overscroll-behavior: contain;
    background: linear-gradient(160deg, rgba(40,28,24,.97), rgba(18,14,34,.98));
    border: 1px solid var(--border-strong);
    box-shadow: 0 40px 80px -20px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.1);
    transform-origin: top center; animation: pa-drop-b-dyl0vi4lo1 .35s var(--ease-out) both;
}
@keyframes pa-drop-b-dyl0vi4lo1 { from { opacity: 0; transform: perspective(900px) rotateX(-14deg) translateY(-8px); } to { opacity: 1; transform: none; } }

.pa-opt[b-dyl0vi4lo1] {
    width: 100%; display: flex; align-items: center; gap: 12px; padding: 9px 10px; border: 0; border-radius: 15px;
    background: transparent; text-align: left; cursor: pointer; color: var(--text);
    animation: pa-opt-in-b-dyl0vi4lo1 .35s var(--ease-out) both; animation-delay: calc(var(--i, 0) * 25ms);
    transition: background .15s, transform .25s var(--ease-spring);
}
@keyframes pa-opt-in-b-dyl0vi4lo1 { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: none; } }
.pa-opt:hover[b-dyl0vi4lo1], .pa-opt.sel[b-dyl0vi4lo1] { background: color-mix(in oklab, var(--accent) 18%, transparent); }
.pa-opt:active[b-dyl0vi4lo1] { transform: scale(.98); }
.pa-emo[b-dyl0vi4lo1] {
    width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; font-size: 24px; flex: none;
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.18), rgba(255,255,255,.04));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 6px 14px -8px rgba(0,0,0,.8);
}
.pa-opt .grow[b-dyl0vi4lo1] { display: flex; flex-direction: column; min-width: 0; }
.pa-name[b-dyl0vi4lo1] { font-weight: 600; }
.pa-sub[b-dyl0vi4lo1] { font-size: .78rem; color: var(--text-3); }
.pa-act[b-dyl0vi4lo1] {
    flex: none; font-size: .78rem; font-weight: 700; padding: 5px 10px; border-radius: 99px;
    background: color-mix(in oklab, var(--accent) 26%, transparent); color: white;
}
.pa-opt.existing .pa-act[b-dyl0vi4lo1] { background: rgba(255,255,255,.1); }
.pa-opt.custom .pa-name[b-dyl0vi4lo1] { color: var(--text-2); }
.pa-opt.many[b-dyl0vi4lo1] { background: color-mix(in oklab, var(--accent) 16%, transparent); }

@media (max-width: 560px) {
    .pa-field[b-dyl0vi4lo1] { height: 54px; border-radius: 18px; padding-left: 12px; }
    .pa-input[b-dyl0vi4lo1] { font-size: 16px; }
}
/* /Components/Pages/Dispensa/ProductCard.razor.rz.scp.css */
/* ---------- Slot sullo scaffale: la mensola è composta dai segmenti sotto ogni card ---------- */
.slot[b-bpwaqwd17d] { position: relative; padding-bottom: 20px; min-width: 0; }
.slot[b-bpwaqwd17d]::before {
    content: ""; position: absolute; left: -9px; right: -9px; bottom: 9px; height: 34px; z-index: 0; pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,.02), color-mix(in oklab, var(--accent) 16%, rgba(255,255,255,.1)));
    transform: perspective(500px) rotateX(64deg); transform-origin: bottom center;
    border-radius: 6px 6px 0 0;
}
.slot[b-bpwaqwd17d]::after {
    content: ""; position: absolute; left: -9px; right: -9px; bottom: 0; height: 10px; z-index: 0; pointer-events: none;
    background: linear-gradient(to bottom, color-mix(in oklab, var(--accent) 45%, #5a3a22), color-mix(in oklab, var(--accent) 20%, #1d130c));
    box-shadow: 0 16px 22px -8px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.28);
}

/* ---------- Card ---------- */
.pcard[b-bpwaqwd17d] {
    --st: #34d399;
    position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 4px;
    padding: 12px 10px 10px; border-radius: 22px; cursor: pointer; outline: none;
    background:
        radial-gradient(120% 70% at 50% 0%, color-mix(in oklab, var(--st) 14%, transparent), transparent 70%),
        linear-gradient(165deg, rgba(255,255,255,.1), rgba(255,255,255,.025));
    border: 1px solid color-mix(in oklab, var(--st) 22%, var(--border));
    box-shadow: 0 1px 0 rgba(255,255,255,.08) inset, 0 22px 30px -22px rgba(0,0,0,.95);
    transform-style: preserve-3d;
    transition: border-color .3s, box-shadow .3s;
}
.pcard:hover[b-bpwaqwd17d] { border-color: color-mix(in oklab, var(--st) 45%, var(--border-strong)); }
.pcard:focus-visible[b-bpwaqwd17d] { outline: 2px solid var(--accent-2); outline-offset: 3px; }
.pcard.st-low[b-bpwaqwd17d] { --st: #facc15; }
.pcard.st-expiring[b-bpwaqwd17d] { --st: #fb923c; }
.pcard.st-expired[b-bpwaqwd17d] { --st: #ef4444; }
.pcard.st-out[b-bpwaqwd17d] { --st: #94a3b8; border-style: dashed; background: linear-gradient(165deg, rgba(255,255,255,.05), rgba(255,255,255,.01)); }
.pcard.fresh[b-bpwaqwd17d] { animation: fresh-b-bpwaqwd17d 1.6s var(--ease-out) both; }
@keyframes fresh-b-bpwaqwd17d {
    0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 90%, transparent), 0 22px 30px -22px rgba(0,0,0,.95); }
    100% { box-shadow: 0 0 0 18px transparent, 0 22px 30px -22px rgba(0,0,0,.95); }
}

.pc-top[b-bpwaqwd17d] { position: relative; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 4px; min-height: 24px; transform: translateZ(18px); }
.pc-fav[b-bpwaqwd17d] {
    width: 28px; height: 28px; border-radius: 10px; border: 0; background: transparent; cursor: pointer; font-size: 17px; line-height: 1;
    color: var(--text-3); transition: transform .35s var(--ease-spring), color .2s;
}
.pc-fav:hover[b-bpwaqwd17d] { transform: scale(1.2); color: var(--text); }
.pc-fav.on[b-bpwaqwd17d] { color: #facc15; text-shadow: 0 0 12px rgba(250,204,21,.7); animation: fav-pop-b-bpwaqwd17d .5s var(--ease-spring); }
@keyframes fav-pop-b-bpwaqwd17d { 0% { transform: scale(.4) rotate(-40deg); } 100% { transform: none; } }
.pc-badge[b-bpwaqwd17d] {
    font-size: .64rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; padding: 3px 8px; border-radius: 99px;
    background: color-mix(in oklab, var(--st) 26%, transparent); color: color-mix(in oklab, var(--st) 60%, white);
    border: 1px solid color-mix(in oklab, var(--st) 40%, transparent); white-space: nowrap;
}
.st-out .pc-badge[b-bpwaqwd17d] { background: color-mix(in oklab, #fb7185 22%, transparent); color: #fecdd3; border-color: color-mix(in oklab, #fb7185 45%, transparent); }
.pc-badge.list[b-bpwaqwd17d] { --st: #22c55e; }
.st-expired .pc-badge[b-bpwaqwd17d], .st-out .pc-badge[b-bpwaqwd17d] { animation: badge-pulse-b-bpwaqwd17d 2.4s ease-in-out infinite; }
@keyframes badge-pulse-b-bpwaqwd17d { 50% { box-shadow: 0 0 0 4px color-mix(in oklab, var(--st) 18%, transparent); } }

/* ---------- Barattolo ---------- */
.pc-jar[b-bpwaqwd17d] {
    position: relative; width: 84px; height: 84px; margin: 2px 0 4px; border-radius: 24px 24px 30px 30px; overflow: hidden;
    background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.16), rgba(255,255,255,.03) 60%), rgba(0,0,0,.22);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: inset 0 -12px 22px rgba(0,0,0,.28), inset 0 2px 0 rgba(255,255,255,.12), 0 18px 26px -16px rgba(0,0,0,.95);
    transform: translateZ(30px);
}
.pc-liquid[b-bpwaqwd17d] {
    position: absolute; left: -4px; right: -4px; bottom: 0; height: calc(var(--fill, 0) * 100%);
    background: linear-gradient(to top, color-mix(in oklab, var(--st) 70%, transparent), color-mix(in oklab, var(--st) 26%, transparent));
    border-radius: 45% 55% 0 0 / 10px 14px 0 0;
    transition: height .9s var(--ease-spring), background .4s;
    animation: slosh-b-bpwaqwd17d 4.5s ease-in-out infinite;
}
.pcard:not(.st-out):not(.st-low):not(.st-expiring):not(.st-expired) .pc-liquid[b-bpwaqwd17d] {
    background: linear-gradient(to top, color-mix(in oklab, var(--accent) 65%, transparent), color-mix(in oklab, var(--accent-2) 30%, transparent));
}
.pc-liquid span[b-bpwaqwd17d] {
    position: absolute; left: 0; right: 0; top: 0; height: 6px; border-radius: inherit;
    background: linear-gradient(to bottom, rgba(255,255,255,.35), transparent);
}
@keyframes slosh-b-bpwaqwd17d {
    0%, 100% { border-radius: 45% 55% 0 0 / 10px 14px 0 0; }
    50% { border-radius: 55% 45% 0 0 / 14px 9px 0 0; }
}
.pc-float[b-bpwaqwd17d] { position: absolute; inset: 0; display: grid; place-items: center; animation: bob-b-bpwaqwd17d 5s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -370ms); }
@keyframes bob-b-bpwaqwd17d { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(3deg); } }
.pc-emoji[b-bpwaqwd17d] {
    font-size: 46px; line-height: 1; display: block;
    filter: drop-shadow(0 10px 8px rgba(0,0,0,.45));
    animation: jump-b-bpwaqwd17d .7s var(--ease-spring) both;
}
@keyframes jump-b-bpwaqwd17d {
    0% { transform: translateY(0) scale(1, 1); }
    18% { transform: translateY(2px) scale(1.18, .8); }
    45% { transform: translateY(-20px) scale(.92, 1.12) rotate(-8deg); }
    70% { transform: translateY(0) scale(1.08, .92); }
    100% { transform: none; }
}
.st-out .pc-emoji[b-bpwaqwd17d] { filter: grayscale(.9) opacity(.5) drop-shadow(0 10px 8px rgba(0,0,0,.45)); }
.pc-glare[b-bpwaqwd17d] {
    position: absolute; top: 6px; left: 12px; width: 14px; height: 52px; border-radius: 99px; pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,.35), rgba(255,255,255,0)); transform: rotate(14deg);
}

.pc-name[b-bpwaqwd17d] { width: 100%; text-align: center; font-weight: 700; font-size: .95rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transform: translateZ(14px); }
.pc-meta[b-bpwaqwd17d] { width: 100%; text-align: center; font-size: .72rem; color: var(--text-3); min-height: 1.1em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-exp[b-bpwaqwd17d] { color: color-mix(in oklab, var(--st) 55%, white); font-weight: 600; }
.st-ok .pc-exp[b-bpwaqwd17d], .st-low .pc-exp[b-bpwaqwd17d] { color: var(--text-2); font-weight: 500; }

/* ---------- Stepper ---------- */
.pc-step[b-bpwaqwd17d] {
    width: 100%; margin-top: 6px; display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 3px;
    border-radius: 16px; background: rgba(0,0,0,.28); border: 1px solid var(--border); transform: translateZ(22px);
}
.pc-btn[b-bpwaqwd17d] {
    width: 38px; height: 38px; border-radius: 13px; border: 0; cursor: pointer; font-size: 1.3rem; font-weight: 700; line-height: 1; flex: none;
    background: var(--surface-2); color: var(--text);
    transition: transform .25s var(--ease-spring), background .2s;
    touch-action: manipulation;
}
.pc-btn:hover[b-bpwaqwd17d] { background: var(--surface-3); }
.pc-btn:active[b-bpwaqwd17d] { transform: scale(.82); }
.pc-btn.plus[b-bpwaqwd17d] { background: linear-gradient(135deg, var(--accent), color-mix(in oklab, var(--accent) 50%, var(--accent-2))); color: #1c0f00; box-shadow: 0 8px 16px -8px color-mix(in oklab, var(--accent) 90%, transparent); }
.pc-btn[disabled][b-bpwaqwd17d] { opacity: .3; cursor: default; }
.pc-qty[b-bpwaqwd17d] { flex: 1; min-width: 0; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: qty-pop-b-bpwaqwd17d .45s var(--ease-spring) both; }
.pc-qty b[b-bpwaqwd17d] { font-size: 1.05rem; }
.pc-qty small[b-bpwaqwd17d] { color: var(--text-3); font-size: .72rem; font-weight: 600; }
@keyframes qty-pop-b-bpwaqwd17d { 0% { transform: scale(.6) translateY(6px); opacity: .2; } 100% { transform: none; opacity: 1; } }

.pc-cart[b-bpwaqwd17d] {
    position: absolute; top: 44px; right: 8px; width: 38px; height: 38px; border-radius: 14px; border: 1px solid color-mix(in oklab, #22c55e 50%, transparent);
    background: color-mix(in oklab, #22c55e 22%, rgba(10,10,20,.6)); cursor: pointer; font-size: 17px; display: grid; place-items: center;
    transform: translateZ(40px); transition: transform .3s var(--ease-spring); animation: cart-in-b-bpwaqwd17d .5s var(--ease-spring) both .2s;
}
.pc-cart span[b-bpwaqwd17d] { position: absolute; right: 3px; top: 1px; font-size: .7rem; font-weight: 900; color: #bbf7d0; }
.pc-cart:hover[b-bpwaqwd17d] { transform: translateZ(40px) scale(1.12) rotate(-6deg); }
.pc-cart:active[b-bpwaqwd17d] { transform: translateZ(40px) scale(.9); }
@keyframes cart-in-b-bpwaqwd17d { from { opacity: 0; transform: translateZ(40px) scale(0) rotate(-45deg); } to { opacity: 1; transform: translateZ(40px); } }

@media (max-width: 560px) {
    .pc-jar[b-bpwaqwd17d] { width: 74px; height: 74px; }
    .pc-emoji[b-bpwaqwd17d] { font-size: 40px; }
    .pc-btn[b-bpwaqwd17d] { width: 36px; height: 36px; }
    .pc-cart[b-bpwaqwd17d] { top: 40px; right: 6px; width: 34px; height: 34px; }
}
/* /Components/Pages/Home.razor.rz.scp.css */
.os[b-sxykq583md] {
    position: relative;
    min-height: 100vh; min-height: 100dvh;
    max-width: 1080px; margin: 0 auto;
    padding: calc(24px + var(--safe-top)) 22px calc(130px + var(--safe-bottom));
    /* Dimensioni della griglia: --icon per larghezza dello schermo, --fit (0.72..1) calcolato da dock.js
       perché tutte le app stiano sopra il dock. */
    --icon: 78px; --fit: 1;
    display: flex; flex-direction: column; align-items: center;
    perspective: 1400px;
}

/* ---------- Orologio ---------- */
.os-top[b-sxykq583md] { text-align: center; margin-top: 1.5vh; animation: top-in-b-sxykq583md 1.1s var(--ease-out) both; }
.clock[b-sxykq583md] {
    font-size: clamp(3.6rem, 11vw, 6.4rem); font-weight: 700; line-height: 1; letter-spacing: -0.06em;
    background: linear-gradient(180deg, #fff 30%, rgba(255,255,255,.45));
    -webkit-background-clip: text; background-clip: text; color: transparent;
    filter: drop-shadow(0 12px 40px rgba(139, 92, 246, .45));
}
.date[b-sxykq583md] { margin-top: 8px; font-weight: 600; color: var(--text-2); letter-spacing: .02em; }
@keyframes top-in-b-sxykq583md { from { opacity: 0; transform: translateY(-40px) translateZ(-200px) rotateX(40deg); filter: blur(10px); } to { opacity: 1; transform: none; filter: none; } }

/* ---------- Ricerca ---------- */
.search-wrap[b-sxykq583md] { position: relative; width: min(640px, 100%); margin: 26px 0 34px; z-index: 20; animation: search-in-b-sxykq583md 1s var(--ease-spring) both .15s; }
@keyframes search-in-b-sxykq583md { from { opacity: 0; transform: scale(.8) translateY(20px); } to { opacity: 1; transform: none; } }
.search[b-sxykq583md] {
    display: flex; align-items: center; gap: 12px; height: 62px; padding: 0 12px 0 20px; border-radius: 22px;
    color: var(--text-2); cursor: text;
    transition: box-shadow .4s var(--ease-out), transform .4s var(--ease-spring), border-color .3s;
}
.search.focused[b-sxykq583md] {
    transform: translateY(-3px) scale(1.02);
    border-color: color-mix(in oklab, var(--accent) 60%, transparent);
    box-shadow: 0 0 0 6px color-mix(in oklab, var(--accent) 18%, transparent), 0 30px 70px -20px color-mix(in oklab, var(--accent) 70%, transparent);
    color: var(--text);
}
.search input[b-sxykq583md] { flex: 1; min-width: 0; height: 100%; background: transparent; border: 0; outline: none; color: var(--text); font-size: 17px; font-weight: 500; }
.search input[b-sxykq583md]::placeholder { color: var(--text-3); }
.search input[b-sxykq583md]::-webkit-search-cancel-button { display: none; }
kbd[b-sxykq583md] { font-family: var(--font); font-size: .72rem; padding: 4px 8px; border-radius: 8px; background: var(--surface-2); border: 1px solid var(--border); color: var(--text-3); }

.results[b-sxykq583md] {
    position: absolute; left: 0; right: 0; top: calc(100% + 10px); padding: 8px; border-radius: 22px;
    max-height: 60vh; overflow-y: auto; background: rgba(18, 15, 48, .9);
    box-shadow: 0 40px 80px -20px rgba(0,0,0,.8);
    animation: res-in-b-sxykq583md .35s var(--ease-out) both; transform-origin: top center;
}
@keyframes res-in-b-sxykq583md { from { opacity: 0; transform: rotateX(-25deg) translateY(-10px); } to { opacity: 1; transform: none; } }
.result[b-sxykq583md] { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; transition: background .2s; animation: fade-up-b-sxykq583md .4s var(--ease-out) both; animation-delay: calc(var(--i) * 30ms); }
.result:hover[b-sxykq583md], .result.sel[b-sxykq583md] { background: var(--surface-2); }
@keyframes fade-up-b-sxykq583md { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---------- Griglia app ---------- */
.grid-apps[b-sxykq583md] {
    width: 100%;
    display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: calc(26px * var(--fit)) 6px; justify-items: center;
    transform-style: preserve-3d;
    transform: rotateX(calc(var(--my) * -2deg)) rotateY(calc(var(--mx) * 2.5deg));
    transition: transform .4s var(--ease-out);
}
@media (min-width: 1400px) { .os[b-sxykq583md] { max-width: 1180px; } .grid-apps[b-sxykq583md] { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
@media (max-width: 1000px) { .os[b-sxykq583md] { --icon: 72px; } .grid-apps[b-sxykq583md] { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .os[b-sxykq583md] { --icon: clamp(52px, 15.5vw, 64px); padding-left: 16px; padding-right: 16px; }
    .grid-apps[b-sxykq583md] { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(20px * var(--fit)) 4px; }
    .search-wrap[b-sxykq583md] { margin: 20px 0 26px; }
    .search[b-sxykq583md] { height: 54px; }
}
/* Schermi bassi (portatili, telefoni piccoli): orologio e spazi più compatti */
@media (max-height: 760px) {
    .clock[b-sxykq583md] { font-size: clamp(3rem, 9vw, 4.6rem); }
    .os-top[b-sxykq583md] { margin-top: 0; }
    .search-wrap[b-sxykq583md] { margin: 16px 0 22px; }
}
/* Trascinamento: griglia ferma (niente inclinazione) e icone che scivolano nei nuovi posti */
.dock-dragging .grid-apps[b-sxykq583md] { transform: none; transition: none; }
.grid-apps.reordering .app[b-sxykq583md] { transition: transform .32s var(--ease-out); }
.grid-apps.settled .app[b-sxykq583md] { animation: none; }

.app[b-sxykq583md] {
    display: flex; flex-direction: column; align-items: center; gap: 10px; background: none; border: 0; padding: 0; cursor: pointer;
    width: 100%; max-width: calc(var(--icon) * var(--fit) + 30px); gap: calc(8px * var(--fit));
    animation: app-in-b-sxykq583md .9s var(--ease-spring) both; animation-delay: calc(200ms + var(--i) * 45ms);
    transform-style: preserve-3d;
}
@keyframes app-in-b-sxykq583md {
    from { opacity: 0; transform: translateZ(-400px) translateY(80px) rotateX(70deg) scale(.5); }
    to { opacity: 1; transform: none; }
}

.app-icon[b-sxykq583md] {
    position: relative; display: grid; place-items: center;
    width: calc(var(--icon) * var(--fit)); aspect-ratio: 1; border-radius: 27%;
    background:
        radial-gradient(120% 90% at 30% 10%, rgba(255,255,255,.45), transparent 45%),
        linear-gradient(145deg, var(--a), var(--b));
    box-shadow:
        inset 0 2px 1px rgba(255,255,255,.55),
        inset 0 -10px 22px rgba(0,0,0,.28),
        0 2px 0 color-mix(in oklab, var(--b) 60%, black),
        0 18px 30px -10px color-mix(in oklab, var(--a) 75%, transparent),
        0 30px 60px -25px rgba(0,0,0,.9);
    transform-style: preserve-3d;
    transition: transform .5s var(--ease-spring), box-shadow .4s;
    overflow: hidden;
}
.app-icon.small[b-sxykq583md] { width: 56px; }
.app-glyph[b-sxykq583md] {
    font-size: calc(var(--icon) * var(--fit) * .5); line-height: 1;
    filter: drop-shadow(0 6px 8px rgba(0,0,0,.35));
    transform: translateZ(30px);
    transition: transform .5s var(--ease-spring);
}
.app-icon.small .app-glyph[b-sxykq583md] { font-size: 28px; }
.app-shine[b-sxykq583md] {
    position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.45) 45%, transparent 60%);
    transform: translateX(-120%);
}
.app:hover .app-shine[b-sxykq583md], .dock-app:hover .app-shine[b-sxykq583md] { animation: shine-b-sxykq583md 1s var(--ease-out); }
@keyframes shine-b-sxykq583md { to { transform: translateX(120%); } }
.app:hover .app-glyph[b-sxykq583md] { transform: translateZ(30px) scale(1.12) rotate(-6deg); }
.app:active .app-icon[b-sxykq583md] { transform: scale(.9); }
.app:focus-visible .app-icon[b-sxykq583md] { outline: 3px solid white; outline-offset: 4px; }

.app-name[b-sxykq583md] {
    font-size: calc(.8rem * max(var(--fit), .85)); font-weight: 600; color: var(--text); text-align: center;
    text-shadow: 0 2px 10px rgba(0,0,0,.8); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}

/* Riflesso sotto l'icona (pavimento lucido) */
.app[b-sxykq583md]::after {
    content: ""; width: 60%; height: 10px; margin-top: -6px; border-radius: 50%;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--a) 60%, transparent), transparent);
    filter: blur(4px); opacity: .7; order: 1;
}
.app-name[b-sxykq583md] { order: 2; }

/* ---------- Dock ---------- */
.dock[b-sxykq583md] {
    position: fixed; left: 50%; bottom: calc(18px + var(--safe-bottom)); transform: translateX(-50%); z-index: 30;
    display: flex; gap: 14px; padding: 12px 16px; border-radius: 30px;
    background: rgba(255,255,255,.08);
    animation: dock-in-b-sxykq583md 1s var(--ease-spring) both .7s;
}
@keyframes dock-in-b-sxykq583md { from { opacity: 0; transform: translate(-50%, 120%); } to { opacity: 1; transform: translateX(-50%); } }
.dock-app[b-sxykq583md] { background: none; border: 0; padding: 0; cursor: pointer; transition: transform .35s var(--ease-spring); transform-origin: bottom center; }
.dock-app:hover[b-sxykq583md] { transform: translateY(-12px) scale(1.25); }
.dock-app:hover + .dock-app[b-sxykq583md], .dock-app:has(+ .dock-app:hover)[b-sxykq583md] { transform: translateY(-5px) scale(1.1); }
.dock-app:active[b-sxykq583md] { transform: scale(.9); }

/* ---------- Menu utente ---------- */
.user-menu[b-sxykq583md] { position: absolute; top: calc(16px + var(--safe-top)); right: 16px; z-index: 40; animation: fade-in .8s ease .4s backwards; }
.user-chip[b-sxykq583md] { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 14px 0 5px; border-radius: 99px; cursor: pointer; color: var(--text); font-weight: 600; transition: transform .3s var(--ease-spring); }
.user-chip:hover[b-sxykq583md] { transform: translateY(-2px); }
.user-avatar[b-sxykq583md] { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .85rem; background: linear-gradient(135deg, var(--accent), var(--accent-2)); box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }
.user-pop[b-sxykq583md] { position: absolute; right: 0; top: calc(100% + 10px); width: 240px; padding: 8px; border-radius: 20px; background: rgba(18, 15, 48, .92); box-shadow: 0 30px 60px -15px rgba(0,0,0,.8); animation: res-in-b-sxykq583md .3s var(--ease-out) both; transform-origin: top right; }
.user-pop-head[b-sxykq583md] { display: flex; flex-direction: column; padding: 8px 10px 10px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.user-pop[b-sxykq583md]  .user-pop-item, .user-pop-item[b-sxykq583md] { display: flex; width: 100%; align-items: center; gap: 10px; padding: 10px; border-radius: 12px; border: 0; background: none; color: var(--text); font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.user-pop[b-sxykq583md]  .user-pop-item:hover, .user-pop-item:hover[b-sxykq583md] { background: var(--surface-2); }
.user-pop[b-sxykq583md]  .user-pop-item.danger { color: #fecdd3; }

/* ---------- Dock personalizzabile ---------- */
.dock-wrap[b-sxykq583md] { position: fixed; left: 50%; bottom: calc(18px + var(--safe-bottom)); transform: translateX(-50%); z-index: 30; display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: calc(100vw - 24px); }
.dock-wrap .dock[b-sxykq583md] { position: static; transform: none; animation: dock-in2-b-sxykq583md 1s var(--ease-spring) backwards .7s; transition: box-shadow .3s, background .3s, transform .35s var(--ease-spring); align-items: center; min-height: 80px; }
@keyframes dock-in2-b-sxykq583md { from { opacity: 0; transform: translateY(120%); } to { opacity: 1; transform: none; } }
.dock.empty[b-sxykq583md] { padding-left: 22px; }
.dock-empty[b-sxykq583md] { color: var(--text-3); font-size: .85rem; white-space: nowrap; }
.dock-app[b-sxykq583md] { position: relative; touch-action: manipulation; }
/* Le icone stanno 1px davanti al piano della griglia: nello stesso contesto 3D, a pari profondità il browser
   a volte assegnava il tocco alla griglia invece che all'icona (tocchi persi). */
.app[b-sxykq583md] { position: relative; translate: 0 0 1px; }
.dock-app[b-sxykq583md], .app[b-sxykq583md] { -webkit-touch-callout: none; user-select: none; -webkit-user-select: none; }
.dock-edit[b-sxykq583md] { width: 34px; height: 34px; margin-left: 2px; border-radius: 50%; border: 1px dashed var(--border-strong); background: transparent; color: var(--text-2); cursor: pointer; font-size: .95rem; flex: none; transition: all .25s; }
.dock-edit:hover[b-sxykq583md], .dock-edit[aria-pressed="true"][b-sxykq583md] { color: white; border-style: solid; background: var(--surface-2); }
.dock-hint[b-sxykq583md] { display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 16px; border-radius: 18px; font-size: .82rem; color: var(--text-2); animation: fade-up-b-sxykq583md .35s var(--ease-out) both; flex-wrap: wrap; justify-content: center; }

/* Trascinamento */
.dock.drop-target[b-sxykq583md] { background: color-mix(in oklab, var(--accent) 22%, rgba(255,255,255,.08)); box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent) 70%, transparent), 0 20px 50px -10px color-mix(in oklab, var(--accent) 60%, transparent); transform: scale(1.06); }
.dock.drop-full[b-sxykq583md] { box-shadow: 0 0 0 2px var(--danger); animation: shake-x-b-sxykq583md .4s; }
@keyframes shake-x-b-sxykq583md { 25%, 75% { translate: -6px 0; } 50% { translate: 6px 0; } }
.dock-dragging .dock-app[b-sxykq583md] { transition: transform .25s var(--ease-out); }
.drag-src[b-sxykq583md] { opacity: .35; }
.dock-app.drag-remove[b-sxykq583md] { opacity: .15; filter: grayscale(1); }
.dock-ghost[b-sxykq583md] { border-radius: 27%; filter: drop-shadow(0 24px 30px rgba(0,0,0,.6)); }
.os.dock-dragging[b-sxykq583md] { cursor: grabbing; }

/* Modalità modifica: icone che "tremano" come su un telefono */
.dock-editing .grid-apps .app:not(.in-dock) .app-icon[b-sxykq583md], .dock-editing .dock-app .app-icon[b-sxykq583md] { animation: jiggle-b-sxykq583md .35s ease-in-out infinite alternate; }
.dock-editing .grid-apps .app:nth-child(2n) .app-icon[b-sxykq583md] { animation-delay: -.17s; }
@keyframes jiggle-b-sxykq583md { from { rotate: -2.5deg; } to { rotate: 2.5deg; } }
.dock-editing .grid-apps .app.in-dock[b-sxykq583md] { opacity: .45; }
.dock-badge[b-sxykq583md] { position: absolute; top: -6px; right: calc(50% - 44px); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; font-weight: 800; color: white; box-shadow: 0 4px 10px rgba(0,0,0,.5); z-index: 2; animation: badge-in-b-sxykq583md .3s var(--ease-spring) both; }
.dock-app .dock-badge[b-sxykq583md] { right: -6px; }
.dock-badge.add[b-sxykq583md] { background: var(--success); color: #052e1f; }
.dock-badge.remove[b-sxykq583md] { background: var(--danger); }
@keyframes badge-in-b-sxykq583md { from { scale: 0; } }
.grid-apps .dock-badge[b-sxykq583md] { right: calc(50% - var(--icon) * var(--fit) / 2 - 8px); }

/* La home compare subito, senza animazioni d'ingresso: tornando dalle app sembrava che ricaricasse tutto.
   (Restano gli effetti al passaggio del mouse, il dock e il trascinamento.) */
.os-top[b-sxykq583md], .search-wrap[b-sxykq583md], .app[b-sxykq583md], .dock-wrap .dock[b-sxykq583md], .user-menu[b-sxykq583md] { animation: none !important; }
/* /Components/Pages/Lavoro/Attivita.razor.rz.scp.css */
/* ---------- KPI ---------- */
.a-kpis[b-l7idkkhawc] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 14px; margin-bottom: 18px; align-items: stretch; }
.a-kpis > div[b-l7idkkhawc] { min-width: 0; }
.a-kpi[b-l7idkkhawc] {
    width: 100%; height: 100%; display: flex; align-items: center; gap: 14px; text-align: left; cursor: pointer; color: var(--text); font: inherit; overflow: hidden;
    background: linear-gradient(150deg, color-mix(in oklab, var(--c) 22%, transparent), rgba(255,255,255,.02));
}
.a-kpi[b-l7idkkhawc]::before { content: ""; position: absolute; right: -30px; bottom: -40px; width: 120px; height: 120px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in oklab, var(--c) 45%, transparent), transparent); pointer-events: none; }
.a-kpi.active[b-l7idkkhawc] { border-color: var(--c); box-shadow: 0 0 0 1px var(--c), 0 20px 40px -20px var(--c); }
.a-kpi-ico[b-l7idkkhawc] { width: 46px; height: 46px; flex: none; border-radius: 15px; display: grid; place-items: center; font-size: 1.4rem; background: linear-gradient(135deg, color-mix(in oklab, var(--c) 60%, transparent), color-mix(in oklab, var(--c) 20%, transparent)); box-shadow: 0 10px 20px -10px var(--c), inset 0 1px 0 rgba(255,255,255,.25); transform: translateZ(30px); }
.a-ring[b-l7idkkhawc] { height: 100%; display: grid; place-items: center; padding: 12px 18px; }
@media (max-width: 1000px) { .a-kpis[b-l7idkkhawc] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .a-ring-wrap[b-l7idkkhawc] { grid-column: 1 / -1; } .a-ring[b-l7idkkhawc] { display: flex; justify-content: center; } }
@media (max-width: 480px) { .a-kpi[b-l7idkkhawc] { padding: 14px; gap: 10px; } .a-kpi-ico[b-l7idkkhawc] { width: 38px; height: 38px; font-size: 1.1rem; } .a-kpi .kpi-value[b-l7idkkhawc] { font-size: 1.5rem; } }

/* ---------- Barra filtri ---------- */
.a-toolbar[b-l7idkkhawc] { position: sticky; top: calc(64px + var(--safe-top)); z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px; border-radius: 20px; margin-bottom: 20px; background: linear-gradient(145deg, rgba(40,28,40,.8), rgba(16,12,30,.75)); }
.a-search[b-l7idkkhawc] { flex: 1 1 240px; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 13px; background: rgba(0,0,0,.28); border: 1px solid var(--border); color: var(--text-2); }
.a-search:focus-within[b-l7idkkhawc] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent); }
.a-search input[b-l7idkkhawc] { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; }
.a-filters[b-l7idkkhawc] { flex: 1 1 auto; padding-bottom: 0; }
.a-filters .chip[b-l7idkkhawc] { height: 34px; }
.a-selects[b-l7idkkhawc] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.a-sel[b-l7idkkhawc] { height: 38px; width: auto; min-width: 150px; font-size: .88rem; border-radius: 12px; }
@media (max-width: 700px) {
    .a-toolbar[b-l7idkkhawc] { top: calc(60px + var(--safe-top)); }
    .a-search[b-l7idkkhawc], .a-filters[b-l7idkkhawc] { flex-basis: 100%; }
    .a-selects[b-l7idkkhawc] { width: 100%; }
    .a-sel[b-l7idkkhawc] { flex: 1; min-width: 0; }
}

/* ---------- Elenco raggruppato ---------- */
.a-groups[b-l7idkkhawc] { display: flex; flex-direction: column; gap: 22px; }
.a-ghead[b-l7idkkhawc] { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; padding: 0 4px; }
.a-gdate[b-l7idkkhawc] { width: 48px; height: 52px; flex: none; border-radius: 15px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; background: rgba(255,255,255,.06); border: 1px solid var(--border); box-shadow: var(--shadow-1); }
.a-gdate .num[b-l7idkkhawc] { font-size: 1.3rem; font-weight: 700; }
.a-gdate span:last-child[b-l7idkkhawc] { font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-2); font-weight: 700; }
.a-ghead.today .a-gdate[b-l7idkkhawc] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: transparent; box-shadow: 0 10px 24px -10px var(--accent); }
.a-ghead.today .a-gdate span:last-child[b-l7idkkhawc] { color: #fff; }
.a-ghead.late .a-gdate[b-l7idkkhawc] { border-color: color-mix(in oklab, var(--danger) 60%, transparent); box-shadow: 0 0 20px -6px var(--danger); }

.a-list[b-l7idkkhawc] { display: flex; flex-direction: column; gap: 8px; perspective: 1200px; }
.a-item[b-l7idkkhawc] {
    position: relative; display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 18px; border-radius: 18px; cursor: pointer; overflow: hidden;
    background: linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
    border: 1px solid var(--border); box-shadow: var(--shadow-1);
    backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
    transition: transform .4s var(--ease-spring), box-shadow .3s, border-color .3s, opacity .4s, background .3s;
    animation: item-in-b-l7idkkhawc .55s var(--ease-out) backwards; animation-delay: calc(min(var(--i), 12) * 40ms);
}
@keyframes item-in-b-l7idkkhawc { from { opacity: 0; transform: rotateX(-35deg) translateY(16px); } }
.a-item[b-l7idkkhawc]::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 4px; border-radius: 0 4px 4px 0; background: var(--tc); box-shadow: 0 0 14px var(--tc); }
.a-item:hover[b-l7idkkhawc] { transform: translateY(-2px) translateZ(12px) rotateX(3deg); border-color: color-mix(in oklab, var(--tc) 45%, var(--border)); box-shadow: 0 22px 40px -22px var(--tc), var(--shadow-1); }
.a-item.done[b-l7idkkhawc] { opacity: .6; background: rgba(255,255,255,.025); }
.a-item.done .a-title[b-l7idkkhawc] { text-decoration: line-through; text-decoration-color: color-mix(in oklab, var(--tc) 80%, white); }
.a-item.leaving[b-l7idkkhawc] { animation: item-out-b-l7idkkhawc .6s var(--ease-out) .35s forwards; }
@keyframes item-out-b-l7idkkhawc { to { opacity: 0; transform: translateX(60px) rotateY(-25deg) scale(.95); } }
.a-main[b-l7idkkhawc] { min-width: 0; }
.a-title[b-l7idkkhawc] { font-weight: 650; font-size: 1rem; overflow-wrap: anywhere; }
.a-meta[b-l7idkkhawc] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 3px; font-size: .78rem; color: var(--text-2); }
.a-prio[b-l7idkkhawc] { color: color-mix(in oklab, var(--pc) 55%, white); font-weight: 650; }
.a-proj[b-l7idkkhawc] { display: inline-flex; padding: 1px 9px; border-radius: 99px; font-size: .72rem; font-weight: 650; background: color-mix(in oklab, var(--tc, var(--accent)) 22%, transparent); color: #fff; }
.a-desc[b-l7idkkhawc] { margin-top: 4px; font-size: .82rem; color: var(--text-3); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.a-actions[b-l7idkkhawc] { display: flex; gap: 6px; flex: none; opacity: 0; transform: translateX(10px); transition: opacity .25s, transform .35s var(--ease-spring); }
.a-item:hover .a-actions[b-l7idkkhawc], .a-item:focus-within .a-actions[b-l7idkkhawc] { opacity: 1; transform: none; }
.a-actions .btn[b-l7idkkhawc] { height: 30px; padding: 0 10px; font-size: .78rem; }
.a-actions .btn-icon[b-l7idkkhawc] { width: 30px; padding: 0; }
@media (hover: none), (max-width: 700px) {
    .a-item[b-l7idkkhawc] { flex-wrap: wrap; padding: 12px 12px 10px 16px; }
    .a-main[b-l7idkkhawc] { flex: 1 1 calc(100% - 50px); }
    .a-actions[b-l7idkkhawc] { opacity: 1; transform: none; width: 100%; padding-left: 44px; }
    .a-actions .btn[b-l7idkkhawc] { flex: 1; }
    .a-actions .btn-icon[b-l7idkkhawc] { flex: 0 0 34px; }
}

/* ---------- Kanban ---------- */
.kanban[b-l7idkkhawc] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; align-items: start; perspective: 1400px; }
.kb-col[b-l7idkkhawc] {
    border-radius: 22px; padding: 12px; min-height: 260px;
    background: linear-gradient(180deg, color-mix(in oklab, var(--pc) 16%, rgba(255,255,255,.04)), rgba(255,255,255,.015));
    border: 1px solid color-mix(in oklab, var(--pc) 30%, var(--border));
    box-shadow: var(--shadow-1); transition: box-shadow .25s, transform .35s var(--ease-spring);
}
.kb-col.over[b-l7idkkhawc] { transform: translateZ(20px) scale(1.01); box-shadow: 0 0 0 2px var(--pc), 0 30px 50px -25px var(--pc); }
.kb-head[b-l7idkkhawc] { display: flex; align-items: center; gap: 8px; padding: 4px 4px 12px; }
.kb-head strong[b-l7idkkhawc] { flex: 1; font-family: var(--font-display); }
.kb-ico[b-l7idkkhawc] { width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in oklab, var(--pc) 35%, transparent); box-shadow: 0 6px 14px -6px var(--pc); }
.kb-list[b-l7idkkhawc] { display: flex; flex-direction: column; gap: 8px; }
.kb-card[b-l7idkkhawc] {
    padding: 12px; border-radius: 16px; cursor: grab; position: relative;
    background: linear-gradient(145deg, rgba(20,18,50,.85), rgba(12,10,32,.85)); border: 1px solid var(--border);
    border-top: 3px solid var(--tc); box-shadow: 0 12px 24px -16px rgba(0,0,0,.9);
    transition: transform .35s var(--ease-spring), box-shadow .3s;
}
.kb-card:hover[b-l7idkkhawc] { transform: translateY(-3px) rotateX(6deg) translateZ(10px); box-shadow: 0 22px 34px -16px var(--tc); }
.kb-card:active[b-l7idkkhawc] { cursor: grabbing; }
.kb-card.done[b-l7idkkhawc] { opacity: .55; }
.kb-card.done .kb-title[b-l7idkkhawc] { text-decoration: line-through; }
.kb-card.late[b-l7idkkhawc] { box-shadow: 0 0 0 1px color-mix(in oklab, var(--danger) 50%, transparent), 0 12px 24px -16px var(--danger); }
.kb-title[b-l7idkkhawc] { font-weight: 650; font-size: .92rem; overflow-wrap: anywhere; }
.kb-meta[b-l7idkkhawc] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; font-size: .74rem; color: var(--text-2); align-items: center; }
.kb-empty[b-l7idkkhawc] { padding: 26px 8px; text-align: center; font-size: .8rem; color: var(--text-3); border: 1.5px dashed var(--border); border-radius: 14px; }
@media (max-width: 1100px) { .kanban[b-l7idkkhawc] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* /Components/Pages/Lavoro/DaySheet.razor.rz.scp.css */
.ds-meta[b-69dmpa6vgq] { display: flex; flex-wrap: wrap; gap: 6px; }

.status-grid[b-69dmpa6vgq] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; perspective: 900px; }
@media (max-width: 560px) { .status-grid[b-69dmpa6vgq] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.st-btn[b-69dmpa6vgq] {
    position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    min-height: 88px; padding: 12px 8px; border-radius: 20px; cursor: pointer; color: var(--text);
    border: 1px solid color-mix(in oklab, var(--c) 35%, var(--border));
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 26%, transparent), color-mix(in oklab, var(--c) 6%, transparent));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 30px -18px var(--c);
    transform-style: preserve-3d;
    transition: transform .4s var(--ease-spring), box-shadow .3s, border-color .3s;
    animation: st-in-b-69dmpa6vgq .6s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 40ms);
}
.st-btn[b-69dmpa6vgq]::before { content: ""; position: absolute; inset: -40% -10% auto; height: 80%; background: radial-gradient(closest-side, color-mix(in oklab, var(--c) 45%, transparent), transparent); opacity: .5; transition: opacity .3s; pointer-events: none; }
.st-btn:hover[b-69dmpa6vgq] { transform: translateY(-4px) rotateX(10deg) translateZ(10px); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 22px 40px -16px var(--c); border-color: var(--c); }
.st-btn:active[b-69dmpa6vgq] { transform: scale(.94); }
.st-btn.active[b-69dmpa6vgq] { border-color: var(--c); background: linear-gradient(160deg, color-mix(in oklab, var(--c) 60%, transparent), color-mix(in oklab, var(--c) 22%, transparent)); box-shadow: 0 0 0 2px color-mix(in oklab, var(--c) 60%, transparent), 0 20px 40px -14px var(--c); }
.st-btn.active[b-69dmpa6vgq]::after { content: "✓"; position: absolute; top: 8px; right: 10px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-size: .7rem; font-weight: 800; background: #fff; color: #0b0a1f; }
.st-ico[b-69dmpa6vgq] { font-size: 1.9rem; line-height: 1; filter: drop-shadow(0 6px 10px rgba(0,0,0,.4)); transform: translateZ(20px); }
.st-lbl[b-69dmpa6vgq] { font-weight: 650; font-size: .86rem; text-align: center; }
@keyframes st-in-b-69dmpa6vgq { from { opacity: 0; transform: rotateX(-50deg) translateY(20px) scale(.9); } to { opacity: 1; transform: none; } }

.punch[b-69dmpa6vgq] { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.punch .btn[b-69dmpa6vgq] { min-width: 180px; }
.dim-inv[b-69dmpa6vgq] { opacity: .75; font-variant-numeric: tabular-nums; }

.ds-times[b-69dmpa6vgq] { margin-top: 10px; }
@media (max-width: 560px) { .ds-times[b-69dmpa6vgq] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px; } .ds-times .input[b-69dmpa6vgq] { padding: 0 8px; } }

.ds-hours[b-69dmpa6vgq] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding: 12px 16px; border-radius: 16px; background: rgba(0,0,0,.22); border: 1px solid var(--border); }
.ds-hours-val[b-69dmpa6vgq] { font-size: 1.5rem; font-weight: 700; background: linear-gradient(120deg, #fff, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
/* /Components/Pages/Lavoro/DayView.razor.rz.scp.css */
.d-stage[b-26tuvkdsld] { perspective: 1600px; }
.d-page[b-26tuvkdsld] { transform-style: preserve-3d; }
.turn-next[b-26tuvkdsld] { transform-origin: 0 50%; animation: d-next-b-26tuvkdsld .65s var(--ease-out) both; }
.turn-prev[b-26tuvkdsld] { transform-origin: 100% 50%; animation: d-prev-b-26tuvkdsld .65s var(--ease-out) both; }
.turn-none[b-26tuvkdsld] { animation: d-none-b-26tuvkdsld .6s var(--ease-out) both; }
@keyframes d-next-b-26tuvkdsld { from { opacity: 0; transform: translateX(18%) rotateY(-40deg); } to { opacity: 1; transform: none; } }
@keyframes d-prev-b-26tuvkdsld { from { opacity: 0; transform: translateX(-18%) rotateY(40deg); } to { opacity: 1; transform: none; } }
@keyframes d-none-b-26tuvkdsld { from { opacity: 0; transform: translateZ(-120px); } to { opacity: 1; transform: none; } }

.d-grid[b-26tuvkdsld] { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.d-left[b-26tuvkdsld] { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
@media (max-width: 900px) { .d-grid[b-26tuvkdsld] { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Scheda presenza ---------- */
.d-hero[b-26tuvkdsld] { overflow: hidden; padding: 22px; background: linear-gradient(150deg, color-mix(in oklab, var(--c) 34%, transparent), color-mix(in oklab, var(--c) 6%, transparent) 70%); border-color: color-mix(in oklab, var(--c) 40%, var(--border)); box-shadow: 0 30px 60px -30px var(--c), var(--shadow-1); }
.d-orb[b-26tuvkdsld] { position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at 35% 35%, color-mix(in oklab, var(--c) 70%, white), var(--c) 40%, transparent 70%); opacity: .45; filter: blur(6px); animation: orb-b-26tuvkdsld 9s ease-in-out infinite alternate; }
@keyframes orb-b-26tuvkdsld { to { transform: translate(-30px, 20px) scale(1.15); } }
.d-date[b-26tuvkdsld] { position: relative; display: flex; align-items: center; gap: 16px; transform: translateZ(40px); }
.d-num[b-26tuvkdsld] { font-size: clamp(3.6rem, 9vw, 5.2rem); font-weight: 700; line-height: .9; background: linear-gradient(180deg, #fff 30%, color-mix(in oklab, var(--c) 60%, white)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 14px 24px color-mix(in oklab, var(--c) 60%, transparent)); }
.d-meta[b-26tuvkdsld] { display: flex; flex-direction: column; }
.d-wd[b-26tuvkdsld] { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; }
.d-hol[b-26tuvkdsld] { position: relative; margin-top: 10px; display: inline-block; font-weight: 700; font-size: .85rem; color: #fbcfe8; padding: 4px 12px; border-radius: 99px; background: color-mix(in oklab, #EC4899 25%, transparent); }
.d-status[b-26tuvkdsld] { position: relative; width: 100%; margin-top: 16px; display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 18px; border: 1px solid var(--border-strong); background: rgba(0,0,0,.25); color: var(--text); cursor: pointer; text-align: left; transform: translateZ(25px); transition: transform .35s var(--ease-spring), background .2s; }
.d-status:hover[b-26tuvkdsld] { background: rgba(0,0,0,.35); transform: translateZ(35px) translateY(-2px); }
.d-status .grow[b-26tuvkdsld] { display: flex; flex-direction: column; }
.d-st-ico[b-26tuvkdsld] { font-size: 2rem; filter: drop-shadow(0 8px 12px rgba(0,0,0,.4)); }
.d-st-lbl[b-26tuvkdsld] { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; }
.d-times[b-26tuvkdsld] { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 14px; transform: translateZ(15px); }
.d-times > div[b-26tuvkdsld] { display: flex; flex-direction: column; gap: 2px; padding: 10px; border-radius: 14px; background: rgba(0,0,0,.2); border: 1px solid var(--border); min-width: 0; }
.d-times .label[b-26tuvkdsld] { font-size: .62rem; }
.d-times b[b-26tuvkdsld] { font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 420px) { .d-times[b-26tuvkdsld] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.d-progress[b-26tuvkdsld] { position: relative; display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.d-note[b-26tuvkdsld] { position: relative; margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(0,0,0,.2); border-left: 3px solid var(--c); }
.d-note p[b-26tuvkdsld] { margin: 4px 0 0; white-space: pre-wrap; color: var(--text); }

/* ---------- Attività ---------- */
.d-task[b-26tuvkdsld] { border-left: 3px solid var(--tc); }
.d-task-title[b-26tuvkdsld] { display: block; font-weight: 600; }
.d-task.done .d-task-title[b-26tuvkdsld] { text-decoration: line-through; opacity: .6; }

/* ---------- Timeline con parallasse ---------- */
.d-timeline[b-26tuvkdsld] { overflow: hidden; }
.tl-bg[b-26tuvkdsld] { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.tl-glow[b-26tuvkdsld] { position: absolute; left: 30%; top: 10%; width: 70%; height: 60vh; max-height: 500px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in oklab, var(--c) 35%, transparent), transparent); filter: blur(20px); }
.d-timeline > h3[b-26tuvkdsld], .tl[b-26tuvkdsld], .d-timeline > p[b-26tuvkdsld] { position: relative; z-index: 1; }
.tl[b-26tuvkdsld] { --hour: 46px; display: grid; grid-template-columns: 52px minmax(0, 1fr); max-height: 70vh; overflow-y: auto; overscroll-behavior: contain; border-radius: 14px; }
.tl-hours[b-26tuvkdsld] { display: grid; grid-template-rows: repeat(var(--hours), var(--hour)); }
.tl-hours span[b-26tuvkdsld] { font-size: .7rem; color: var(--text-3); padding-right: 8px; text-align: right; transform: translateY(-7px); font-variant-numeric: tabular-nums; }
.tl-hours span:first-child[b-26tuvkdsld] { transform: none; }
.tl-col[b-26tuvkdsld] { position: relative; height: calc(var(--hours) * var(--hour)); border-left: 1px solid var(--border); background-image: repeating-linear-gradient(to bottom, transparent 0 calc(var(--hour) - 1px), rgba(255,255,255,.06) calc(var(--hour) - 1px) var(--hour)); }
.tl-band[b-26tuvkdsld] { position: absolute; left: 0; right: 0; border-left: 3px solid var(--c); background: linear-gradient(90deg, color-mix(in oklab, var(--c) 24%, transparent), transparent); padding: 6px 10px; animation: band-grow-b-26tuvkdsld 1s var(--ease-out) backwards .2s; transform-origin: top; }
.tl-band span[b-26tuvkdsld] { font-size: .72rem; font-weight: 700; color: color-mix(in oklab, var(--c) 40%, white); }
@keyframes band-grow-b-26tuvkdsld { from { transform: scaleY(0); opacity: 0; } to { transform: none; opacity: 1; } }
.tl-ev[b-26tuvkdsld] { position: absolute; left: 24%; right: 8px; z-index: 2; min-height: 30px; padding: 6px 10px; border-radius: 12px; cursor: pointer; display: flex; flex-direction: column; overflow: hidden;
    background: linear-gradient(150deg, color-mix(in oklab, var(--tc) 70%, #0b0a1f), color-mix(in oklab, var(--tc) 40%, #0b0a1f)); border: 1px solid color-mix(in oklab, var(--tc) 70%, white 10%);
    box-shadow: 0 14px 28px -14px var(--tc), inset 0 1px 0 rgba(255,255,255,.25);
    transition: transform .35s var(--ease-spring); animation: tl-ev-in-b-26tuvkdsld .6s var(--ease-spring) backwards; animation-delay: calc(300ms + var(--i) * 80ms); }
@keyframes tl-ev-in-b-26tuvkdsld { from { opacity: 0; transform: translateX(40px) rotateY(-30deg); } to { opacity: 1; transform: none; } }
.tl-ev:hover[b-26tuvkdsld] { transform: translateX(-4px) scale(1.02); }
.tl-ev.done[b-26tuvkdsld] { opacity: .55; }
.tl-ev.done .tl-ev-title[b-26tuvkdsld] { text-decoration: line-through; }
.tl-ev-time[b-26tuvkdsld] { font-size: .68rem; font-weight: 700; opacity: .85; }
.tl-ev-title[b-26tuvkdsld] { font-weight: 650; font-size: .86rem; }
.tl-now[b-26tuvkdsld] { position: absolute; left: 0; right: 0; height: 2px; background: #ff4d6d; box-shadow: 0 0 10px #ff4d6d; z-index: 3; pointer-events: none; }
.tl-now i[b-26tuvkdsld] { position: absolute; left: -6px; top: -5px; width: 12px; height: 12px; border-radius: 50%; background: #ff4d6d; animation: now-p-b-26tuvkdsld 1.8s ease-in-out infinite; }
.tl-now span[b-26tuvkdsld] { position: absolute; right: 4px; top: -18px; font-size: .66rem; font-weight: 700; color: #ff8fa3; }
@keyframes now-p-b-26tuvkdsld { 50% { box-shadow: 0 0 0 8px rgba(255,77,109,0); } 0%, 100% { box-shadow: 0 0 0 0 rgba(255,77,109,.5); } }
/* /Components/Pages/Lavoro/Lavoro.razor.rz.scp.css */
/* ---------- Barra strumenti del calendario ---------- */
.toolbar[b-df5ggrp09x] {
    position: sticky; top: calc(64px + var(--safe-top)); z-index: 20;
    display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px;
    padding: 8px; margin-bottom: 18px; border-radius: 20px;
    background: linear-gradient(145deg, rgba(20,24,60,.78), rgba(10,12,34,.7));
    box-shadow: 0 20px 40px -24px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.08);
    animation: tb-in-b-df5ggrp09x .7s var(--ease-spring) backwards .1s;
}
@keyframes tb-in-b-df5ggrp09x { from { opacity: 0; transform: perspective(800px) rotateX(-40deg) translateY(-10px); } }
.tb-nav[b-df5ggrp09x] { display: flex; align-items: center; justify-content: center; gap: 4px; min-width: 0; perspective: 600px; }
.tb-nav .btn[b-df5ggrp09x] { font-size: 1.5rem; font-weight: 400; }
.tb-title[b-df5ggrp09x] { font-size: 1.12rem; font-weight: 700; text-align: center; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: title-flip-b-df5ggrp09x .5s var(--ease-out) both; }
.tb-title span[b-df5ggrp09x] { background: linear-gradient(120deg, #fff 20%, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
@keyframes title-flip-b-df5ggrp09x { from { opacity: 0; transform: rotateX(80deg) translateY(-6px); } to { opacity: 1; transform: none; } }
.tb-extra[b-df5ggrp09x] { display: flex; align-items: center; gap: 6px; justify-content: flex-end; }
.tb-date[b-df5ggrp09x] { width: 150px; height: 34px; border-radius: 11px; font-size: .86rem; padding: 0 10px; }

@media (max-width: 1000px) {
    .toolbar[b-df5ggrp09x] { grid-template-columns: 1fr auto; }
    .tb-views[b-df5ggrp09x] { grid-column: 1 / -1; display: flex; }
    .tb-views > *[b-df5ggrp09x] { flex: 1; }
    .tb-nav[b-df5ggrp09x] { justify-content: flex-start; }
}
@media (max-width: 700px) {
    .toolbar[b-df5ggrp09x] { top: calc(60px + var(--safe-top)); grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 6px; }
    .tb-nav[b-df5ggrp09x] { justify-content: space-between; }
    .tb-title[b-df5ggrp09x] { font-size: 1rem; }
    .tb-extra[b-df5ggrp09x] { justify-content: stretch; flex-wrap: wrap; }
    .tb-extra > *[b-df5ggrp09x] { flex: 1 1 auto; }
    .tb-date[b-df5ggrp09x] { width: auto; min-width: 130px; }
    .tb-views button[b-df5ggrp09x] { padding: 7px 6px; font-size: .8rem; }
}

/* ---------- Layout viste ---------- */
.cal[b-df5ggrp09x] { position: relative; touch-action: pan-y; }
.cal-split[b-df5ggrp09x] { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.cal-side[b-df5ggrp09x] { position: sticky; top: 150px; }
.cal-gap[b-df5ggrp09x] { height: 20px; }
.cal-hint[b-df5ggrp09x] { margin: 12px 2px 0; text-align: center; }
@media (max-width: 1100px) { .cal-split[b-df5ggrp09x] { grid-template-columns: minmax(0, 1fr); } .cal-side[b-df5ggrp09x] { position: static; } }

/* ---------- Barra di marcatura multipla ---------- */
.selbar[b-df5ggrp09x] {
    position: fixed; z-index: 60; left: 50%; bottom: calc(16px + var(--safe-bottom)); transform: translateX(-50%);
    width: min(760px, calc(100vw - 24px)); padding: 12px; border-radius: 24px;
    background: linear-gradient(150deg, rgba(30,34,80,.94), rgba(12,14,40,.96));
    box-shadow: 0 30px 70px -20px rgba(0,0,0,.9), 0 0 0 1px color-mix(in oklab, var(--accent) 40%, transparent);
    animation: sel-in-b-df5ggrp09x .5s var(--ease-spring) both;
}
@keyframes sel-in-b-df5ggrp09x { from { opacity: 0; transform: translateX(-50%) translateY(60px) rotateX(40deg); } to { opacity: 1; transform: translateX(-50%); } }
.selbar-head[b-df5ggrp09x] { display: flex; align-items: center; gap: 8px; padding: 0 4px 10px; flex-wrap: wrap; }
.selbar-head strong[b-df5ggrp09x] { font-size: 1.3rem; }
.selbar-st[b-df5ggrp09x] { gap: 8px; }
.sel-st[b-df5ggrp09x] {
    display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 84px; padding: 10px 8px; border-radius: 16px; cursor: pointer; color: var(--text);
    border: 1px solid color-mix(in oklab, var(--c) 40%, var(--border));
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 30%, transparent), color-mix(in oklab, var(--c) 8%, transparent));
    font-size: .74rem; font-weight: 650; transition: transform .3s var(--ease-spring), box-shadow .3s;
}
.sel-st span:first-child[b-df5ggrp09x] { font-size: 1.4rem; }
.sel-st:hover[b-df5ggrp09x] { transform: translateY(-3px); box-shadow: 0 14px 26px -12px var(--c); }
.sel-st[disabled][b-df5ggrp09x] { opacity: .4; pointer-events: none; }
/* /Components/Pages/Lavoro/MonthView.razor.rz.scp.css */
/* ---------- Palcoscenico 3D e transizione tra mesi ---------- */
.m-stage[b-icvp92sthg] { perspective: 1800px; perspective-origin: 50% 30%; }
.m-page[b-icvp92sthg] { transform-style: preserve-3d; will-change: transform; }
.turn-next[b-icvp92sthg] { transform-origin: 0% 50%; animation: turn-next-b-icvp92sthg .75s var(--ease-out) both; }
.turn-prev[b-icvp92sthg] { transform-origin: 100% 50%; animation: turn-prev-b-icvp92sthg .75s var(--ease-out) both; }
.turn-none[b-icvp92sthg] { animation: turn-none-b-icvp92sthg .7s var(--ease-out) both; }
@keyframes turn-next-b-icvp92sthg { from { opacity: 0; transform: translateX(28%) rotateY(-62deg) translateZ(-120px); filter: blur(4px); } 60% { opacity: 1; filter: none; } to { opacity: 1; transform: none; } }
@keyframes turn-prev-b-icvp92sthg { from { opacity: 0; transform: translateX(-28%) rotateY(62deg) translateZ(-120px); filter: blur(4px); } 60% { opacity: 1; filter: none; } to { opacity: 1; transform: none; } }
@keyframes turn-none-b-icvp92sthg { from { opacity: 0; transform: rotateX(18deg) translateZ(-140px); } to { opacity: 1; transform: none; } }

.m-wd[b-icvp92sthg] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; text-align: center; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.m-wd .we[b-icvp92sthg] { color: var(--text-3); }

.m-grid[b-icvp92sthg] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; transform-style: preserve-3d; }

/* ---------- Cella ---------- */
.cell[b-icvp92sthg] {
    --c: transparent;
    position: relative; min-width: 0; min-height: 104px; padding: 9px 9px 8px; border-radius: 18px; text-align: left;
    display: flex; flex-direction: column; align-items: stretch; gap: 3px; cursor: pointer; color: var(--text); overflow: hidden;
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
    border: 1px solid var(--border);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 24px -18px rgba(0,0,0,.8);
    transform-style: preserve-3d;
    transition: transform .45s var(--ease-spring), box-shadow .35s var(--ease-out), border-color .3s, background .3s;
    animation: cell-in-b-icvp92sthg .55s var(--ease-out) backwards; animation-delay: calc(120ms + var(--i) * 11ms);
}
@keyframes cell-in-b-icvp92sthg { from { opacity: 0; transform: translateZ(-60px) rotateX(-35deg) translateY(14px); } to { opacity: 1; transform: none; } }
.cell[b-icvp92sthg]::before { /* bagliore di stato */
    content: ""; position: absolute; inset: auto -20% -60% -20%; height: 110%; border-radius: 50%; pointer-events: none;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--c) 55%, transparent), transparent);
    opacity: 0; transition: opacity .35s;
}
.cell:hover[b-icvp92sthg] { transform: translateY(-5px) translateZ(28px) rotateX(9deg); border-color: var(--border-strong); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 26px 40px -18px rgba(0,0,0,.9), 0 0 0 1px color-mix(in oklab, var(--c) 40%, transparent); z-index: 2; }
.cell:active[b-icvp92sthg] { transform: scale(.95); transition-duration: .12s; }
.cell:focus-visible[b-icvp92sthg] { outline: 2px solid var(--accent-2); outline-offset: 2px; }

.cell.marked[b-icvp92sthg] { background: linear-gradient(160deg, color-mix(in oklab, var(--c) 38%, transparent), color-mix(in oklab, var(--c) 9%, transparent)); border-color: color-mix(in oklab, var(--c) 45%, var(--border)); }
.cell.marked[b-icvp92sthg]::before, .cell.holiday[b-icvp92sthg]::before { opacity: .55; }
.cell.weekend:not(.marked)[b-icvp92sthg] { background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 6px, transparent 6px 12px), rgba(0,0,0,.18); }
.cell.weekend .c-num[b-icvp92sthg] { color: var(--text-3); }
.cell.holiday:not(.marked)[b-icvp92sthg] { border-color: color-mix(in oklab, #EC4899 45%, var(--border)); background: linear-gradient(160deg, color-mix(in oklab, #EC4899 16%, transparent), transparent); }
.cell.out[b-icvp92sthg] { opacity: .38; }
.cell.out:hover[b-icvp92sthg] { opacity: .8; }
.cell.future:not(.marked) .c-num[b-icvp92sthg] { color: var(--text-2); }

.cell.today[b-icvp92sthg] { border-color: transparent; box-shadow: 0 0 0 2px var(--accent-2), 0 0 30px -4px color-mix(in oklab, var(--accent-2) 70%, transparent), inset 0 1px 0 rgba(255,255,255,.14); }
.cell.today[b-icvp92sthg]::after { content: ""; position: absolute; inset: -2px; border-radius: inherit; pointer-events: none; border: 2px solid var(--accent-2); animation: today-pulse-b-icvp92sthg 2.4s ease-out infinite; }
@keyframes today-pulse-b-icvp92sthg { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(1.12); } }
.cell.today .c-num[b-icvp92sthg] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; width: 28px; height: 28px; border-radius: 10px; display: grid; place-items: center; box-shadow: 0 6px 14px -4px var(--accent); }

.m-grid.selecting .cell[b-icvp92sthg] { cursor: copy; }
.cell.selected[b-icvp92sthg] { transform: translateZ(18px) scale(.97); border-color: #fff; box-shadow: 0 0 0 2px #fff, 0 0 30px -6px var(--accent-2); }
.c-check[b-icvp92sthg] { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; font-weight: 800; background: #fff; color: #0b0a1f; animation: pop-b-icvp92sthg .35s var(--ease-spring) both; }
@keyframes pop-b-icvp92sthg { from { transform: scale(0); } to { transform: none; } }

.c-top[b-icvp92sthg] { display: flex; align-items: center; justify-content: space-between; gap: 4px; transform: translateZ(14px); }
.c-num[b-icvp92sthg] { font-weight: 700; font-size: 1rem; line-height: 1; }
.c-ico[b-icvp92sthg] { font-size: 1.05rem; line-height: 1; filter: drop-shadow(0 4px 6px rgba(0,0,0,.45)); }
.c-hol[b-icvp92sthg] { font-size: .66rem; font-weight: 700; color: #fbcfe8; text-transform: uppercase; letter-spacing: .03em; }
.c-status[b-icvp92sthg] { font-size: .72rem; font-weight: 600; color: color-mix(in oklab, var(--c) 45%, white); }
.c-hours[b-icvp92sthg] { font-size: .95rem; font-weight: 700; margin-top: auto; transform: translateZ(10px); }
.c-hours small[b-icvp92sthg] { font-size: .7em; margin-left: 1px; color: var(--text-2); font-weight: 600; }
.c-note[b-icvp92sthg] { display: flex; align-items: center; gap: 4px; font-size: .7rem; color: var(--text-2); min-width: 0; }
.c-note-text[b-icvp92sthg] { min-width: 0; }
.c-dots[b-icvp92sthg] { display: flex; align-items: center; gap: 3px; flex-wrap: wrap; }
.c-dots i[b-icvp92sthg] { width: 7px; height: 7px; border-radius: 50%; background: var(--tc); box-shadow: 0 0 8px var(--tc); }
.c-dots i.done[b-icvp92sthg] { background: transparent; box-shadow: inset 0 0 0 1.5px var(--tc); opacity: .7; }
.c-dots b[b-icvp92sthg] { font-size: .62rem; color: var(--text-2); }

/* ---------- Mobile ---------- */
@media (max-width: 700px) {
    .m-wd[b-icvp92sthg], .m-grid[b-icvp92sthg] { gap: 4px; }
    .cell[b-icvp92sthg] { min-height: 64px; padding: 6px 5px 5px; border-radius: 12px; gap: 2px; align-items: center; text-align: center; }
    .c-top[b-icvp92sthg] { flex-direction: column; gap: 2px; }
    .c-num[b-icvp92sthg] { font-size: .86rem; }
    .cell.today .c-num[b-icvp92sthg] { width: 22px; height: 22px; border-radius: 8px; }
    .c-ico[b-icvp92sthg] { font-size: .9rem; }
    .c-hol[b-icvp92sthg] { display: none; }
    .c-hours[b-icvp92sthg] { font-size: .7rem; margin-top: 0; }
    .c-note[b-icvp92sthg] { position: absolute; top: 3px; right: 4px; font-size: .55rem; }
    .c-dots[b-icvp92sthg] { justify-content: center; gap: 2px; }
    .c-dots i[b-icvp92sthg] { width: 5px; height: 5px; }
    .c-dots b[b-icvp92sthg] { display: none; }
    .cell:hover[b-icvp92sthg] { transform: none; }
}
/* /Components/Pages/Lavoro/PeriodStats.razor.rz.scp.css */
.ps[b-m6t3tii6g4] { display: flex; flex-direction: column; gap: 14px; }
.ps-rings[b-m6t3tii6g4] { overflow: hidden; }
.ps-rings[b-m6t3tii6g4]::before { content: ""; position: absolute; inset: -30% -30% auto auto; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in oklab, var(--accent-2) 30%, transparent), transparent); pointer-events: none; }
.rings[b-m6t3tii6g4] { display: flex; justify-content: space-around; gap: 10px; flex-wrap: wrap; }

.ps-kpis[b-m6t3tii6g4] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ps-kpi[b-m6t3tii6g4] { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 20px; overflow: hidden; }
.ps-kpi[b-m6t3tii6g4]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--c); box-shadow: 0 0 14px var(--c); }
.ps-kpi-ico[b-m6t3tii6g4] { width: 38px; height: 38px; flex: none; border-radius: 12px; display: grid; place-items: center; font-size: 1.15rem; background: color-mix(in oklab, var(--c) 22%, transparent); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); transform: translateZ(20px); }
.ps-kpi .kpi[b-m6t3tii6g4] { min-width: 0; gap: 1px; }
.ps-kpi .kpi-label[b-m6t3tii6g4] { font-size: .64rem; }
.ps-val[b-m6t3tii6g4] { font-size: 1.35rem !important; white-space: nowrap; }

.dist-bar[b-m6t3tii6g4] { display: flex; gap: 3px; height: 14px; border-radius: 99px; overflow: hidden; background: rgba(0,0,0,.3); }
.dist-bar i[b-m6t3tii6g4] { background: linear-gradient(180deg, color-mix(in oklab, var(--c) 70%, white), var(--c)); box-shadow: 0 0 12px var(--c); transform-origin: left; animation: dist-grow-b-m6t3tii6g4 1.2s var(--ease-out) backwards .4s; }
@keyframes dist-grow-b-m6t3tii6g4 { from { transform: scaleX(0); } }
.dist-legend[b-m6t3tii6g4] { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; font-size: .78rem; color: var(--text-2); }
.dist-legend span[b-m6t3tii6g4] { display: inline-flex; align-items: center; gap: 5px; }
.dist-legend i[b-m6t3tii6g4] { width: 9px; height: 9px; border-radius: 3px; background: var(--c); }
.dist-legend b[b-m6t3tii6g4] { color: var(--text); }

@media (max-width: 1100px) and (min-width: 701px) { .ps-kpis[b-m6t3tii6g4] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* /Components/Pages/Lavoro/StatRing.razor.rz.scp.css */
.ring[b-ybqp8bzyw3] { position: relative; width: var(--size); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ring svg[b-ybqp8bzyw3] { width: var(--size); height: var(--size); transform: rotate(-90deg); overflow: visible; filter: drop-shadow(0 0 10px color-mix(in oklab, var(--c1) 55%, transparent)); }
.track[b-ybqp8bzyw3] { fill: none; stroke: rgba(255,255,255,.08); stroke-width: 9; }
.val[b-ybqp8bzyw3] { fill: none; stroke-width: 9; stroke-linecap: round; stroke-dasharray: 263.89; stroke-dashoffset: var(--off); transition: stroke-dashoffset 1.2s var(--ease-out); animation: ring-in-b-ybqp8bzyw3 1.6s var(--ease-out) both; }
@keyframes ring-in-b-ybqp8bzyw3 { from { stroke-dashoffset: 263.89; } }
.ring-center[b-ybqp8bzyw3] { position: absolute; top: 0; left: 0; width: var(--size); height: var(--size); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; transform: translateZ(30px); }
.ring-value[b-ybqp8bzyw3] { font-size: calc(var(--size) * .2); font-weight: 700; }
.ring-sub[b-ybqp8bzyw3] { font-size: .7rem; color: var(--text-3); margin-top: 2px; }
.ring-label[b-ybqp8bzyw3] { font-size: .74rem; font-weight: 600; color: var(--text-2); text-transform: uppercase; letter-spacing: .06em; text-align: center; }
/* /Components/Pages/Lavoro/TaskCheck.razor.rz.scp.css */
.tcheck[b-h84frnx6c1] { position: relative; width: 30px; height: 30px; flex: none; padding: 0; border: 0; background: none; cursor: pointer; border-radius: 50%; transition: transform .35s var(--ease-spring); }
.tcheck:hover[b-h84frnx6c1] { transform: scale(1.12); }
.tcheck:active[b-h84frnx6c1] { transform: scale(.85); }
.tcheck svg[b-h84frnx6c1] { width: 100%; height: 100%; overflow: visible; }
.tc-ring[b-h84frnx6c1] { fill: rgba(0,0,0,.2); stroke: color-mix(in oklab, var(--c) 75%, white); stroke-width: 2; transition: fill .35s, stroke .35s; }
.tc-mark[b-h84frnx6c1] { fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 16; stroke-dashoffset: 16; transition: stroke-dashoffset .4s var(--ease-out) .08s; }
.tcheck.done .tc-ring[b-h84frnx6c1] { fill: var(--c); stroke: var(--c); }
.tcheck.done .tc-mark[b-h84frnx6c1] { stroke-dashoffset: 0; }
.tcheck.done[b-h84frnx6c1] { animation: tc-pop-b-h84frnx6c1 .5s var(--ease-spring); }
.tc-burst[b-h84frnx6c1] { position: absolute; inset: -6px; border-radius: 50%; pointer-events: none; border: 2px solid var(--c); opacity: 0; }
.tcheck.done .tc-burst[b-h84frnx6c1] { animation: tc-burst-b-h84frnx6c1 .6s ease-out; }
@keyframes tc-pop-b-h84frnx6c1 { 0% { transform: scale(.7); } 60% { transform: scale(1.2); } 100% { transform: none; } }
@keyframes tc-burst-b-h84frnx6c1 { from { opacity: .9; transform: scale(.6); } to { opacity: 0; transform: scale(1.6); } }
/* /Components/Pages/Lavoro/TaskSheet.razor.rz.scp.css */
.ts[b-cnw7a143k2] { position: relative; }
.ts[b-cnw7a143k2]::before { content: ""; position: absolute; left: -22px; top: -8px; bottom: 0; width: 4px; border-radius: 0 4px 4px 0; background: linear-gradient(var(--c), transparent); box-shadow: 0 0 18px var(--c); opacity: .85; }

.prio-grid[b-cnw7a143k2] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 480px) { .prio-grid[b-cnw7a143k2] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.prio[b-cnw7a143k2] {
    height: 46px; border-radius: 14px; cursor: pointer; font-weight: 650; font-size: .88rem; color: var(--text-2);
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    background: rgba(0,0,0,.22); border: 1px solid var(--border);
    transition: transform .35s var(--ease-spring), background .25s, color .25s, box-shadow .25s, border-color .25s;
}
.prio:hover[b-cnw7a143k2] { transform: translateY(-2px); color: var(--text); border-color: color-mix(in oklab, var(--pc) 50%, var(--border)); }
.prio.active[b-cnw7a143k2] { color: #fff; border-color: var(--pc); background: linear-gradient(150deg, color-mix(in oklab, var(--pc) 55%, transparent), color-mix(in oklab, var(--pc) 18%, transparent)); box-shadow: 0 12px 26px -12px var(--pc); transform: translateY(-2px) scale(1.03); }

.swatches[b-cnw7a143k2] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; min-height: 46px; }
.sw[b-cnw7a143k2] { width: 32px; height: 32px; border-radius: 50%; border: 2px solid transparent; cursor: pointer; background: radial-gradient(circle at 35% 30%, color-mix(in oklab, var(--sc) 60%, white), var(--sc)); box-shadow: 0 6px 14px -6px var(--sc); transition: transform .35s var(--ease-spring), border-color .2s; }
.sw:hover[b-cnw7a143k2] { transform: scale(1.15) translateY(-2px); }
.sw.active[b-cnw7a143k2] { border-color: #fff; transform: scale(1.18); box-shadow: 0 0 0 3px color-mix(in oklab, var(--sc) 50%, transparent), 0 8px 18px -6px var(--sc); }
/* /Components/Pages/Lavoro/TodayCard.razor.rz.scp.css */
.today[b-x974qffv83] {
    display: flex; align-items: center; gap: 24px; padding: 22px 24px; margin-bottom: 18px; overflow: hidden;
    background: linear-gradient(135deg, color-mix(in oklab, var(--c) 30%, transparent), color-mix(in oklab, var(--accent-2) 10%, transparent) 60%, rgba(255,255,255,.02));
    border-color: color-mix(in oklab, var(--c) 35%, var(--border));
    box-shadow: 0 30px 70px -35px var(--c), var(--shadow-1);
}
.t-deco[b-x974qffv83] { position: absolute; inset: 0; pointer-events: none; }
.t-blob[b-x974qffv83] { position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle at 40% 40%, color-mix(in oklab, var(--accent-2) 55%, transparent), transparent 65%); filter: blur(10px); opacity: .6; }

/* Quadrante: anello conico che si riempie con le ore lavorate */
.t-dial[b-x974qffv83] { position: relative; width: 118px; height: 118px; flex: none; transform: translateZ(40px); }
.t-dial-ring[b-x974qffv83] {
    position: absolute; inset: 0; border-radius: 50%;
    background: conic-gradient(from -90deg, var(--accent-2), var(--c) var(--p), rgba(255,255,255,.08) var(--p) 360deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 11px), #000 calc(100% - 10px));
            mask: radial-gradient(farthest-side, transparent calc(100% - 11px), #000 calc(100% - 10px));
    filter: drop-shadow(0 0 12px color-mix(in oklab, var(--accent-2) 60%, transparent));
    animation: dial-in-b-x974qffv83 1.4s var(--ease-out) both;
}
@keyframes dial-in-b-x974qffv83 { from { transform: rotate(-200deg) scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }
.running .t-dial-ring[b-x974qffv83]::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid color-mix(in oklab, var(--accent-2) 60%, transparent); animation: dial-pulse-b-x974qffv83 2.2s ease-out infinite; }
@keyframes dial-pulse-b-x974qffv83 { from { transform: scale(.92); opacity: .9; } to { transform: scale(1.18); opacity: 0; } }
.t-dial-core[b-x974qffv83] { position: absolute; inset: 16px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.14), rgba(0,0,0,.35)); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 10px 20px -8px rgba(0,0,0,.6); }
.t-dial-ico[b-x974qffv83] { font-size: 1.6rem; line-height: 1; animation: t-float-b-x974qffv83 5s ease-in-out infinite; }
@keyframes t-float-b-x974qffv83 { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-5px) rotate(6deg); } }
.t-dial-val[b-x974qffv83] { font-size: .95rem; font-weight: 700; margin-top: 2px; }

.t-body[b-x974qffv83] { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; transform: translateZ(20px); }
.t-kicker[b-x974qffv83] { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--text-2); }
.t-title[b-x974qffv83] { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; font-family: var(--font-display); font-size: clamp(1.4rem, 3.2vw, 1.9rem); font-weight: 700; line-height: 1.1; }
.t-sub[b-x974qffv83] { font-size: 1rem; color: var(--text-2); font-family: var(--font); font-weight: 600; }
.t-live[b-x974qffv83] { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font); font-size: .86rem; font-weight: 600; color: #a7f3d0; }
.t-live i[b-x974qffv83] { width: 9px; height: 9px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 0 rgba(52,211,153,.6); animation: live-b-x974qffv83 1.6s ease-out infinite; }
@keyframes live-b-x974qffv83 { to { box-shadow: 0 0 0 10px rgba(52,211,153,0); } }
.t-chips[b-x974qffv83] { display: flex; flex-wrap: wrap; gap: 6px; }
.t-chips a:hover[b-x974qffv83] { filter: brightness(1.2); }
.t-actions[b-x974qffv83] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.t-now[b-x974qffv83] { opacity: .75; font-size: .82rem; }

@media (max-width: 560px) {
    .today[b-x974qffv83] { flex-direction: column; align-items: stretch; gap: 16px; padding: 18px; }
    .t-dial[b-x974qffv83] { width: 96px; height: 96px; align-self: center; }
    .t-body[b-x974qffv83] { align-items: center; text-align: center; }
    .t-title[b-x974qffv83], .t-chips[b-x974qffv83] { justify-content: center; }
    .t-actions[b-x974qffv83] { width: 100%; }
    .t-actions .btn[b-x974qffv83] { flex: 1; padding: 0 10px; }
}
/* /Components/Pages/Lavoro/WeekView.razor.rz.scp.css */
.w-stage[b-nhf9z9pi97] { perspective: 1800px; }
.w-page[b-nhf9z9pi97] { transform-style: preserve-3d; }
.turn-next[b-nhf9z9pi97] { transform-origin: 0 50%; animation: w-next-b-nhf9z9pi97 .7s var(--ease-out) both; }
.turn-prev[b-nhf9z9pi97] { transform-origin: 100% 50%; animation: w-prev-b-nhf9z9pi97 .7s var(--ease-out) both; }
.turn-none[b-nhf9z9pi97] { animation: w-none-b-nhf9z9pi97 .6s var(--ease-out) both; }
@keyframes w-next-b-nhf9z9pi97 { from { opacity: 0; transform: translateX(22%) rotateY(-45deg) translateZ(-100px); } to { opacity: 1; transform: none; } }
@keyframes w-prev-b-nhf9z9pi97 { from { opacity: 0; transform: translateX(-22%) rotateY(45deg) translateZ(-100px); } to { opacity: 1; transform: none; } }
@keyframes w-none-b-nhf9z9pi97 { from { opacity: 0; transform: translateY(24px) rotateX(10deg); } to { opacity: 1; transform: none; } }

.only-mobile-block[b-nhf9z9pi97] { display: none; }
@media (max-width: 700px) { .only-mobile-block[b-nhf9z9pi97] { display: block; } }

/* ================= Desktop ================= */
.wk[b-nhf9z9pi97] {
    --hour: 52px;
    border-radius: var(--radius-l); overflow: hidden;
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.015));
    border: 1px solid var(--border); box-shadow: var(--shadow-2);
    backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
}
.wk-head[b-nhf9z9pi97], .wk-allday[b-nhf9z9pi97], .wk-body[b-nhf9z9pi97] { display: grid; grid-template-columns: 62px repeat(7, minmax(0, 1fr)); }
.wk-head[b-nhf9z9pi97] { border-bottom: 1px solid var(--border); background: rgba(0,0,0,.18); }
.wk-corner[b-nhf9z9pi97] { display: grid; place-items: center; font-size: .78rem; font-weight: 700; color: var(--accent-2); }

.wk-day[b-nhf9z9pi97] {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px 10px;
    border: 0; border-left: 1px solid var(--border); background: transparent; color: var(--text); cursor: pointer;
    transition: background .25s, transform .35s var(--ease-spring);
}
.wk-day[b-nhf9z9pi97]::after { content: ""; position: absolute; left: 14%; right: 14%; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--c); box-shadow: 0 0 12px var(--c); }
.wk-day:hover[b-nhf9z9pi97] { background: var(--surface); }
.wk-day:hover .wd-num[b-nhf9z9pi97] { transform: translateY(-2px) scale(1.08); }
.wd-name[b-nhf9z9pi97] { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; color: var(--text-2); }
.wd-num[b-nhf9z9pi97] { font-size: 1.5rem; font-weight: 700; line-height: 1.1; transition: transform .35s var(--ease-spring); }
.wd-st[b-nhf9z9pi97] { font-size: .74rem; font-weight: 600; color: var(--text-2); display: inline-flex; gap: 4px; align-items: center; }
.wd-st.empty[b-nhf9z9pi97] { color: var(--text-3); opacity: 0; transition: opacity .2s; }
.wk-day:hover .wd-st.empty[b-nhf9z9pi97] { opacity: 1; }
.wk-day.we .wd-name[b-nhf9z9pi97], .wk-day.we .wd-num[b-nhf9z9pi97] { color: var(--text-3); }
.wk-day.today .wd-num[b-nhf9z9pi97] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; padding: 0 10px; border-radius: 12px; box-shadow: 0 8px 20px -6px var(--accent); }

.wk-allday[b-nhf9z9pi97] { border-bottom: 1px solid var(--border); min-height: 46px; }
.wk-lbl[b-nhf9z9pi97] { font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-3); display: grid; place-items: center; }
.ad-col[b-nhf9z9pi97] { position: relative; border-left: 1px solid var(--border); padding: 6px 6px 22px; display: flex; flex-direction: column; gap: 4px; min-width: 0; transition: background .2s; }
.ad-col.over[b-nhf9z9pi97], .wk-col.over[b-nhf9z9pi97] { background: color-mix(in oklab, var(--accent-2) 14%, transparent); box-shadow: inset 0 0 0 2px color-mix(in oklab, var(--accent-2) 50%, transparent); }
.ad-hol[b-nhf9z9pi97] { font-size: .68rem; font-weight: 700; color: #fbcfe8; padding: 3px 7px; border-radius: 8px; background: color-mix(in oklab, #EC4899 22%, transparent); }
.ad-note[b-nhf9z9pi97] { display: flex; gap: 4px; align-items: center; font-size: .7rem; color: var(--text-2); border: 0; background: rgba(0,0,0,.2); border-radius: 8px; padding: 3px 7px; cursor: pointer; min-width: 0; text-align: left; }
.ad-task[b-nhf9z9pi97] { display: flex; align-items: center; gap: 6px; font-size: .76rem; font-weight: 600; padding: 3px 7px 3px 4px; border-radius: 10px; cursor: grab; min-width: 0;
    background: linear-gradient(135deg, color-mix(in oklab, var(--tc) 35%, transparent), color-mix(in oklab, var(--tc) 12%, transparent)); border: 1px solid color-mix(in oklab, var(--tc) 45%, transparent);
    transition: transform .3s var(--ease-spring), box-shadow .3s; }
.ad-task:hover[b-nhf9z9pi97] { transform: translateY(-2px); box-shadow: 0 10px 20px -10px var(--tc); }
.ad-task[b-nhf9z9pi97]  .tcheck { width: 20px; height: 20px; }
.ad-task.done[b-nhf9z9pi97] { opacity: .55; text-decoration: line-through; }
.ad-add[b-nhf9z9pi97] { position: absolute; right: 6px; bottom: 3px; width: 20px; height: 18px; border: 0; border-radius: 6px; background: transparent; color: var(--text-3); cursor: pointer; font-weight: 700; opacity: 0; transition: opacity .2s, background .2s; }
.ad-col:hover .ad-add[b-nhf9z9pi97] { opacity: 1; }
.ad-add:hover[b-nhf9z9pi97] { background: var(--surface-2); color: var(--text); }

.wk-body[b-nhf9z9pi97] { position: relative; max-height: min(68vh, 760px); overflow-y: auto; overscroll-behavior: contain; }
.wk-hours[b-nhf9z9pi97] { display: grid; grid-template-rows: repeat(var(--hours), var(--hour)); }
.wk-hours span[b-nhf9z9pi97] { font-size: .68rem; color: var(--text-3); text-align: right; padding: 0 8px; transform: translateY(-7px); font-variant-numeric: tabular-nums; }
.wk-hours span:first-child[b-nhf9z9pi97] { transform: none; }
.wk-col[b-nhf9z9pi97] {
    position: relative; height: calc(var(--hours) * var(--hour)); border-left: 1px solid var(--border);
    background-image: repeating-linear-gradient(to bottom, transparent 0 calc(var(--hour) - 1px), rgba(255,255,255,.06) calc(var(--hour) - 1px) var(--hour));
    transition: background-color .2s;
}
.wk-col.we[b-nhf9z9pi97] { background-color: rgba(0,0,0,.16); }
.wk-col.today[b-nhf9z9pi97] { background-color: color-mix(in oklab, var(--accent) 8%, transparent); }

.band[b-nhf9z9pi97] {
    position: absolute; left: 3px; right: 3px; border: 0; padding: 6px 7px; border-radius: 12px; cursor: pointer; color: var(--text);
    display: flex; flex-direction: column; justify-content: space-between; text-align: left;
    background: linear-gradient(180deg, color-mix(in oklab, var(--c) 26%, transparent), color-mix(in oklab, var(--c) 10%, transparent));
    border-left: 3px solid var(--c); box-shadow: inset 0 0 30px -12px var(--c);
    animation: band-in-b-nhf9z9pi97 .9s var(--ease-out) backwards .15s; transform-origin: top;
}
@keyframes band-in-b-nhf9z9pi97 { from { transform: scaleY(0); opacity: 0; } to { transform: none; opacity: 1; } }
.band-lbl[b-nhf9z9pi97] { font-size: .66rem; font-weight: 700; color: color-mix(in oklab, var(--c) 40%, white); opacity: .9; }
.band-lbl.end[b-nhf9z9pi97] { align-self: flex-start; }
.absent[b-nhf9z9pi97] { position: absolute; inset: 8px 4px auto; padding: 10px 6px; border-radius: 12px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: .72rem; font-weight: 700; color: color-mix(in oklab, var(--c) 40%, white);
    background: repeating-linear-gradient(135deg, color-mix(in oklab, var(--c) 18%, transparent) 0 8px, transparent 8px 16px); border: 1px dashed color-mix(in oklab, var(--c) 50%, transparent); }
.absent span:first-child[b-nhf9z9pi97] { font-size: 1.3rem; }

.ev[b-nhf9z9pi97] {
    position: absolute; z-index: 2; min-height: 26px; padding: 4px 6px; border-radius: 10px; cursor: grab; overflow: hidden;
    display: flex; flex-direction: column; gap: 1px;
    background: linear-gradient(150deg, color-mix(in oklab, var(--tc) 70%, #0b0a1f), color-mix(in oklab, var(--tc) 40%, #0b0a1f));
    border: 1px solid color-mix(in oklab, var(--tc) 70%, white 10%);
    box-shadow: 0 10px 22px -12px var(--tc), inset 0 1px 0 rgba(255,255,255,.25);
    transition: transform .35s var(--ease-spring), box-shadow .3s, z-index 0s;
    animation: ev-in-b-nhf9z9pi97 .55s var(--ease-spring) backwards .3s;
}
@keyframes ev-in-b-nhf9z9pi97 { from { opacity: 0; transform: translateZ(-40px) scale(.8); } to { opacity: 1; transform: none; } }
.ev:hover[b-nhf9z9pi97] { transform: translateY(-2px) scale(1.03); z-index: 5; box-shadow: 0 18px 30px -12px var(--tc), inset 0 1px 0 rgba(255,255,255,.3); }
.ev:active[b-nhf9z9pi97] { cursor: grabbing; }
.ev.done[b-nhf9z9pi97] { opacity: .55; }
.ev.done .ev-title[b-nhf9z9pi97] { text-decoration: line-through; }
.ev-top[b-nhf9z9pi97] { display: flex; align-items: center; gap: 5px; }
.ev-top[b-nhf9z9pi97]  .tcheck { width: 18px; height: 18px; }
.ev-time[b-nhf9z9pi97] { font-size: .66rem; font-weight: 700; opacity: .9; }
.ev-title[b-nhf9z9pi97] { font-size: .76rem; font-weight: 650; line-height: 1.2; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.ev-proj[b-nhf9z9pi97] { font-size: .64rem; opacity: .75; }

.now[b-nhf9z9pi97] { position: absolute; left: 0; right: 0; height: 2px; background: #ff4d6d; box-shadow: 0 0 10px #ff4d6d; z-index: 4; pointer-events: none; }
.now i[b-nhf9z9pi97] { position: absolute; left: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: #ff4d6d; box-shadow: 0 0 0 4px rgba(255,77,109,.25); animation: now-pulse-b-nhf9z9pi97 1.8s ease-in-out infinite; }
@keyframes now-pulse-b-nhf9z9pi97 { 50% { box-shadow: 0 0 0 8px rgba(255,77,109,0); } }

/* ================= Mobile: lista ================= */
.wl[b-nhf9z9pi97] { display: flex; flex-direction: column; gap: 10px; perspective: 1000px; }
.wl-day[b-nhf9z9pi97] {
    position: relative; border-radius: 20px; padding: 4px 4px 8px; overflow: hidden;
    background: linear-gradient(150deg, color-mix(in oklab, var(--c) 18%, rgba(255,255,255,.05)), rgba(255,255,255,.02));
    border: 1px solid var(--border); box-shadow: var(--shadow-1);
    animation: wl-in-b-nhf9z9pi97 .6s var(--ease-out) backwards; animation-delay: calc(var(--i) * 60ms);
}
@keyframes wl-in-b-nhf9z9pi97 { from { opacity: 0; transform: rotateX(-40deg) translateY(20px); } to { opacity: 1; transform: none; } }
.wl-day[b-nhf9z9pi97]::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 4px; border-radius: 0 4px 4px 0; background: var(--c); box-shadow: 0 0 12px var(--c); }
.wl-day.we[b-nhf9z9pi97] { opacity: .8; }
.wl-day.today[b-nhf9z9pi97] { border-color: color-mix(in oklab, var(--accent-2) 60%, transparent); box-shadow: 0 0 0 1px color-mix(in oklab, var(--accent-2) 40%, transparent), 0 18px 40px -20px var(--accent-2); }
.wl-head[b-nhf9z9pi97] { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 0; background: none; color: var(--text); text-align: left; cursor: pointer; }
.wl-date[b-nhf9z9pi97] { width: 46px; height: 50px; border-radius: 14px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(0,0,0,.25); border: 1px solid var(--border); }
.wl-day.today .wl-date[b-nhf9z9pi97] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: transparent; }
.wl-num[b-nhf9z9pi97] { font-size: 1.25rem; font-weight: 700; line-height: 1; }
.wl-name[b-nhf9z9pi97] { font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--text-2); }
.wl-day.today .wl-name[b-nhf9z9pi97] { color: #fff; }
.wl-status[b-nhf9z9pi97] { display: flex; gap: 8px; flex-wrap: wrap; font-weight: 600; font-size: .9rem; }
.wl-hol[b-nhf9z9pi97] { display: block; font-size: .72rem; color: #fbcfe8; font-weight: 700; margin-top: 2px; }
.wl-hours[b-nhf9z9pi97] { font-size: 1.1rem; font-weight: 700; color: color-mix(in oklab, var(--c) 40%, white); }
.wl-note[b-nhf9z9pi97] { margin: 0 12px 6px 70px; font-size: .8rem; color: var(--text-2); }
.wl-tasks[b-nhf9z9pi97] { display: flex; flex-direction: column; gap: 4px; margin: 0 8px 4px 62px; }
.wl-task[b-nhf9z9pi97] { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 12px; background: rgba(0,0,0,.2); border-left: 3px solid var(--tc); cursor: pointer; font-size: .86rem; }
.wl-task[b-nhf9z9pi97]  .tcheck { width: 24px; height: 24px; }
.wl-task.done .grow[b-nhf9z9pi97] { text-decoration: line-through; opacity: .6; }
.wl-add[b-nhf9z9pi97] { margin-left: 62px; border: 0; background: none; color: var(--text-3); font-weight: 600; font-size: .8rem; padding: 4px 8px; cursor: pointer; border-radius: 8px; }
.wl-add:hover[b-nhf9z9pi97] { color: var(--text); background: var(--surface); }
/* /Components/Pages/Lavoro/YearStats.razor.rz.scp.css */
.ys[b-8m72ttd53e] { display: flex; flex-direction: column; gap: 16px; }
.ys-hero[b-8m72ttd53e] { display: flex; align-items: center; gap: 24px; justify-content: space-between; flex-wrap: wrap; }
.ys-kpis[b-8m72ttd53e] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; flex: 1 1 480px; }
.ys-kpis .kpi-value[b-8m72ttd53e] { font-size: clamp(1.5rem, 3.4vw, 2.2rem); }
@media (max-width: 700px) { .ys-kpis[b-8m72ttd53e] { grid-template-columns: repeat(2, minmax(0, 1fr)); flex-basis: 100%; } .ys-hero[b-8m72ttd53e] { justify-content: center; } }

.ys-row[b-8m72ttd53e] { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 900px) { .ys-row[b-8m72ttd53e] { grid-template-columns: minmax(0, 1fr); } }

/* Barre 3D */
.bars[b-8m72ttd53e] { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; height: 220px; align-items: end; perspective: 700px; }
.bar-col[b-8m72ttd53e] { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; border: 0; background: none; color: var(--text); cursor: pointer; padding: 0; min-width: 0; }
.bar[b-8m72ttd53e] { position: relative; width: 70%; max-width: 34px; height: calc(var(--h) * .8); min-height: 3px; transform-style: preserve-3d; transform: rotateX(12deg) rotateY(-14deg); transition: transform .4s var(--ease-spring); transform-origin: bottom; animation: bar-up-b-8m72ttd53e 1s var(--ease-out) backwards; animation-delay: calc(200ms + var(--i) * 60ms); }
@keyframes bar-up-b-8m72ttd53e { from { transform: rotateX(12deg) rotateY(-14deg) scaleY(0); } }
.bar-face[b-8m72ttd53e] { position: absolute; inset: 0; border-radius: 8px 8px 3px 3px; background: linear-gradient(180deg, var(--accent-2), var(--accent)); box-shadow: 0 0 18px -2px color-mix(in oklab, var(--accent-2) 70%, transparent), inset 0 1px 0 rgba(255,255,255,.4); }
.bar[b-8m72ttd53e]::after { content: ""; position: absolute; top: 0; right: -6px; width: 6px; height: 100%; background: color-mix(in oklab, var(--accent) 60%, black); transform: skewY(-40deg); transform-origin: left top; border-radius: 0 4px 2px 0; }
.bar-col:hover .bar[b-8m72ttd53e] { transform: rotateX(12deg) rotateY(-14deg) scaleY(1.04) translateZ(10px); }
.bar-col.cur .bar-face[b-8m72ttd53e] { background: linear-gradient(180deg, #fff, var(--accent-2)); }
.bar-val[b-8m72ttd53e] { font-size: .62rem; font-weight: 700; color: var(--text-2); white-space: nowrap; }
.bar-lbl[b-8m72ttd53e] { font-size: .66rem; color: var(--text-3); text-transform: capitalize; }
@media (max-width: 500px) { .bar-val[b-8m72ttd53e] { display: none; } .bars[b-8m72ttd53e] { gap: 3px; height: 170px; } }

.st-row[b-8m72ttd53e] { display: grid; grid-template-columns: 130px minmax(0, 1fr) 32px; align-items: center; gap: 10px; font-size: .86rem; }
.st-name[b-8m72ttd53e] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-2); }
.st-row b[b-8m72ttd53e] { text-align: right; }
.st-track[b-8m72ttd53e] { height: 10px; border-radius: 99px; background: rgba(0,0,0,.3); overflow: hidden; }
.st-track span[b-8m72ttd53e] { display: block; height: 100%; width: var(--v); border-radius: inherit; background: linear-gradient(90deg, color-mix(in oklab, var(--c) 60%, transparent), var(--c)); box-shadow: 0 0 12px var(--c); transform-origin: left; animation: dist-grow-b-8m72ttd53e 1.1s var(--ease-out) backwards; animation-delay: calc(300ms + var(--i) * 70ms); }
@keyframes dist-grow-b-8m72ttd53e { from { transform: scaleX(0); } }
/* /Components/Pages/Lavoro/YearView.razor.rz.scp.css */
.y-stage[b-t7e8nxau7t] { perspective: 2000px; }
.y-page[b-t7e8nxau7t] { transform-style: preserve-3d; }
.turn-next[b-t7e8nxau7t] { animation: y-next-b-t7e8nxau7t .7s var(--ease-out) both; }
.turn-prev[b-t7e8nxau7t] { animation: y-prev-b-t7e8nxau7t .7s var(--ease-out) both; }
@keyframes y-next-b-t7e8nxau7t { from { opacity: 0; transform: translateX(12%) rotateY(-24deg) translateZ(-160px); } to { opacity: 1; transform: none; } }
@keyframes y-prev-b-t7e8nxau7t { from { opacity: 0; transform: translateX(-12%) rotateY(24deg) translateZ(-160px); } to { opacity: 1; transform: none; } }

.y-grid[b-t7e8nxau7t] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; perspective: 1400px; }
@media (max-width: 1100px) { .y-grid[b-t7e8nxau7t] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .y-grid[b-t7e8nxau7t] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

/* Cascata 3D: ogni mini-mese cade in posizione ruotando */
.y-cell[b-t7e8nxau7t] { animation: mini-in-b-t7e8nxau7t .8s var(--ease-spring) both; animation-delay: calc(var(--i) * 55ms); transform-origin: 50% 0; }
@keyframes mini-in-b-t7e8nxau7t { from { opacity: 0; transform: rotateX(-75deg) translateY(-30px) translateZ(-120px); } to { opacity: 1; transform: none; } }

.mini[b-t7e8nxau7t] { padding: 14px 14px 12px; border-radius: 22px; }
.mini.current[b-t7e8nxau7t] { border-color: color-mix(in oklab, var(--accent-2) 55%, var(--border)); box-shadow: var(--shadow-glow); }
.mini-head[b-t7e8nxau7t] { width: 100%; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; border: 0; background: none; padding: 0 2px 8px; cursor: pointer; color: var(--text); text-align: left; }
.mini-head:hover .mini-name[b-t7e8nxau7t] { background: linear-gradient(120deg, #fff, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mini-name[b-t7e8nxau7t] { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; transition: color .2s; }
.mini-hours[b-t7e8nxau7t] { font-size: .78rem; font-weight: 700; color: var(--accent-2); }
.mini-wd[b-t7e8nxau7t], .mini-grid[b-t7e8nxau7t] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.mini-wd[b-t7e8nxau7t] { font-size: .58rem; font-weight: 700; color: var(--text-3); text-align: center; margin-bottom: 3px; }

.hm[b-t7e8nxau7t] {
    position: relative; aspect-ratio: 1; min-width: 0; border-radius: 6px; padding: 0; cursor: pointer;
    display: grid; place-items: center; font-size: .6rem; font-weight: 600; color: var(--text-3);
    background: rgba(255,255,255,.05); border: 1px solid transparent;
    transition: transform .3s var(--ease-spring), box-shadow .3s, background .3s;
    animation: hm-in-b-t7e8nxau7t .5s var(--ease-out) backwards; animation-delay: calc(var(--i) * 55ms + var(--j) * 9ms + 200ms);
}
@keyframes hm-in-b-t7e8nxau7t { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: none; } }
.hm.blank[b-t7e8nxau7t] { background: transparent; pointer-events: none; animation: none; }
.hm.we[b-t7e8nxau7t] { background: rgba(0,0,0,.25); color: color-mix(in oklab, var(--text-3) 70%, transparent); }
.hm.hol[b-t7e8nxau7t] { border-color: color-mix(in oklab, #EC4899 70%, transparent); color: #fbcfe8; }
.hm.on[b-t7e8nxau7t] { background: radial-gradient(circle at 35% 30%, color-mix(in oklab, var(--c) 55%, white), var(--c)); color: #fff; box-shadow: 0 0 10px -1px var(--c), inset 0 1px 0 rgba(255,255,255,.35); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.hm.note[b-t7e8nxau7t]::after { content: ""; position: absolute; top: 1px; right: 1px; width: 4px; height: 4px; border-radius: 50%; background: #fff; box-shadow: 0 0 4px #fff; }
.hm.today[b-t7e8nxau7t] { outline: 2px solid #fff; outline-offset: 1px; z-index: 1; animation: hm-in-b-t7e8nxau7t .5s var(--ease-out) backwards, hm-today-b-t7e8nxau7t 2s ease-in-out infinite 1.5s; }
@keyframes hm-today-b-t7e8nxau7t { 50% { box-shadow: 0 0 16px 2px var(--accent-2); } }
.hm:hover[b-t7e8nxau7t] { transform: scale(1.5) translateZ(20px); z-index: 3; box-shadow: 0 8px 20px -4px rgba(0,0,0,.8), 0 0 14px var(--c); }

.mini-bar[b-t7e8nxau7t] { display: flex; gap: 2px; height: 5px; margin-top: 10px; border-radius: 9px; overflow: hidden; background: rgba(255,255,255,.05); }
.mini-bar i[b-t7e8nxau7t] { background: var(--c); box-shadow: 0 0 8px var(--c); transform-origin: left; animation: bar-grow-b-t7e8nxau7t 1s var(--ease-out) both; animation-delay: calc(var(--i, 0) * 55ms + 500ms); }
@keyframes bar-grow-b-t7e8nxau7t { from { transform: scaleX(0); } to { transform: none; } }

.y-legend[b-t7e8nxau7t] { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 18px; font-size: .78rem; color: var(--text-2); }
.lg[b-t7e8nxau7t] { display: inline-flex; align-items: center; gap: 6px; }
.lg i[b-t7e8nxau7t] { width: 11px; height: 11px; border-radius: 4px; background: var(--c); box-shadow: 0 0 8px var(--c); }
.lg i.hol[b-t7e8nxau7t] { background: transparent; border: 1.5px solid #EC4899; box-shadow: none; }

@media (max-width: 760px) {
    .mini[b-t7e8nxau7t] { padding: 10px 10px 9px; border-radius: 18px; }
    .mini-name[b-t7e8nxau7t] { font-size: .92rem; }
    .hm[b-t7e8nxau7t] { border-radius: 4px; font-size: .56rem; font-weight: 700; animation: none; }
    .hm.today[b-t7e8nxau7t] { animation: hm-today-b-t7e8nxau7t 2s ease-in-out infinite 1.5s; }
    .hm:hover[b-t7e8nxau7t] { transform: none; }
}
/* /Components/Pages/Link/CollectionEditor.razor.rz.scp.css */
.ce[b-wtnd1y58ta] { display: flex; flex-direction: column; gap: 16px; }

.ce-preview[b-wtnd1y58ta] {
    display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 12px 16px; border-radius: 24px;
    background: radial-gradient(90% 120% at 50% 0%, color-mix(in oklab, var(--cc) 30%, transparent), transparent 70%), var(--surface);
    border: 1px solid var(--border); perspective: 600px;
}
.ce-name[b-wtnd1y58ta] { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; max-width: 100%; }

/* Cartella 3D: retro + emoji + fronte inclinato */
.folder[b-wtnd1y58ta] { position: relative; width: 96px; height: 76px; transform-style: preserve-3d; animation: folder-float-b-wtnd1y58ta 4s ease-in-out infinite; }
.folder-back[b-wtnd1y58ta] {
    position: absolute; inset: 8px 0 0 0; border-radius: 12px 16px 16px 16px;
    background: linear-gradient(160deg, color-mix(in oklab, var(--cc) 75%, white), color-mix(in oklab, var(--cc) 80%, black));
}
.folder-back[b-wtnd1y58ta]::before { content: ""; position: absolute; top: -8px; left: 0; width: 40%; height: 14px; border-radius: 10px 10px 0 0; background: color-mix(in oklab, var(--cc) 70%, white); }
.folder-emoji[b-wtnd1y58ta] { position: absolute; left: 50%; top: 4px; font-size: 34px; transform: translateX(-50%) translateZ(8px); filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .35)); transition: transform .4s var(--ease-spring); }
.folder-front[b-wtnd1y58ta] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 58%; border-radius: 12px; transform-origin: bottom; transform: rotateX(-18deg) translateZ(14px);
    background: linear-gradient(170deg, color-mix(in oklab, var(--cc) 55%, white), var(--cc));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 16px 28px -12px color-mix(in oklab, var(--cc) 90%, black);
}
.ce-preview:hover .folder-emoji[b-wtnd1y58ta] { transform: translateX(-50%) translateZ(8px) translateY(-10px) rotate(-8deg); }
@keyframes folder-float-b-wtnd1y58ta { 50% { transform: translateY(-6px) rotateY(10deg); } }

.emoji-grid[b-wtnd1y58ta] { display: grid; grid-template-columns: repeat(auto-fill, minmax(44px, 1fr)); gap: 6px; }
.emo[b-wtnd1y58ta] { height: 44px; border-radius: 12px; border: 1px solid transparent; background: var(--surface); font-size: 1.3rem; cursor: pointer; transition: transform .25s var(--ease-spring), background .2s; }
.emo:hover[b-wtnd1y58ta] { transform: scale(1.12); background: var(--surface-2); }
.emo.on[b-wtnd1y58ta] { background: color-mix(in oklab, var(--accent) 35%, transparent); border-color: color-mix(in oklab, var(--accent) 70%, transparent); }
.emo-custom[b-wtnd1y58ta] { height: 44px; text-align: center; padding: 0 6px; grid-column: span 2; }

.swatches[b-wtnd1y58ta] { display: flex; flex-wrap: wrap; gap: 10px; }
.sw[b-wtnd1y58ta] {
    width: 36px; height: 36px; border-radius: 50%; border: 2px solid transparent; cursor: pointer;
    background: radial-gradient(circle at 30% 30%, color-mix(in oklab, var(--c) 60%, white), var(--c));
    box-shadow: 0 6px 14px -6px var(--c); transition: transform .25s var(--ease-spring);
}
.sw:hover[b-wtnd1y58ta] { transform: scale(1.12); }
.sw.on[b-wtnd1y58ta] { border-color: #fff; transform: scale(1.12); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c) 50%, transparent), 0 6px 14px -6px var(--c); }

@media (prefers-reduced-motion: reduce) { .folder[b-wtnd1y58ta] { animation: none; } }
/* /Components/Pages/Link/LinkEditor.razor.rz.scp.css */
.ed[b-udqzqg3e92] { display: flex; flex-direction: column; gap: 16px; }

.ed-preview[b-udqzqg3e92] {
    position: relative; display: flex; align-items: center; gap: 18px; padding: 18px; border-radius: 24px; overflow: hidden;
    background:
        radial-gradient(120% 140% at 0% 0%, color-mix(in oklab, var(--pc) 34%, transparent), transparent 60%),
        linear-gradient(160deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .015));
    border: 1px solid var(--border);
    perspective: 700px;
}
.ed-icon[b-udqzqg3e92] { transform-style: preserve-3d; animation: ed-icon-in-b-udqzqg3e92 .7s var(--ease-spring) both; }
.ed-icon[b-udqzqg3e92]  .licon { --s: 72px; }
.ed-icon.loading[b-udqzqg3e92]  .licon { animation: ed-spin-b-udqzqg3e92 1.4s var(--ease-out) infinite; }
@keyframes ed-icon-in-b-udqzqg3e92 { from { transform: rotateY(-90deg) scale(.6); opacity: 0; } }
@keyframes ed-spin-b-udqzqg3e92 { 0% { transform: rotateY(0); } 60%, 100% { transform: rotateY(360deg); } }
.ed-pv-text[b-udqzqg3e92] { min-width: 0; flex: 1; }
.ed-pv-title[b-udqzqg3e92] { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; }
.ed-pv-domain[b-udqzqg3e92] { color: var(--text-2); font-size: .85rem; }
.ed-pv-note[b-udqzqg3e92] { font-size: .78rem; margin-top: 6px; display: flex; align-items: center; gap: 8px; }
.spin[b-udqzqg3e92] { width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .2); border-top-color: var(--accent-2); animation: spin-b-udqzqg3e92 .8s linear infinite; flex: none; }
@keyframes spin-b-udqzqg3e92 { to { transform: rotate(360deg); } }

.ed-url-row[b-udqzqg3e92] { display: flex; gap: 8px; }
.ed-url-row .input[b-udqzqg3e92] { flex: 1; min-width: 0; }
.ed-dup[b-udqzqg3e92] { font-size: .8rem; color: #fde68a; }

.tags-box[b-udqzqg3e92] {
    display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-height: 46px; padding: 6px 10px; border-radius: 14px;
    background: rgba(0, 0, 0, .25); border: 1px solid var(--border); transition: border-color .2s, box-shadow .2s;
}
.tags-box:focus-within[b-udqzqg3e92] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 25%, transparent); }
.tag-chip[b-udqzqg3e92] {
    display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 6px 0 10px; border-radius: 99px; font-size: .82rem; font-weight: 600;
    background: color-mix(in oklab, var(--accent) 30%, transparent); border: 1px solid color-mix(in oklab, var(--accent) 50%, transparent);
    animation: chip-in-b-udqzqg3e92 .35s var(--ease-spring);
}
.tag-chip button[b-udqzqg3e92] { border: 0; background: transparent; color: var(--text-2); cursor: pointer; width: 20px; height: 20px; border-radius: 50%; font-size: .7rem; }
.tag-chip button:hover[b-udqzqg3e92] { background: rgba(255, 255, 255, .15); color: #fff; }
@keyframes chip-in-b-udqzqg3e92 { from { transform: scale(.5); opacity: 0; } }
.tag-input[b-udqzqg3e92] { flex: 1; min-width: 120px; height: 32px; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; outline: none; }
.tag-sugg[b-udqzqg3e92] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.tag-sugg .chip[b-udqzqg3e92] { height: 28px; font-size: .78rem; }

.ed-pin[b-udqzqg3e92] { padding: 12px 14px; border-radius: 16px; background: var(--surface); cursor: pointer; }

.ed-stats[b-udqzqg3e92] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ed-stats > div[b-udqzqg3e92] { display: flex; flex-direction: column; gap: 2px; padding: 12px; border-radius: 16px; background: var(--surface); min-width: 0; }
.ed-stats strong[b-udqzqg3e92] { font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ed-stats .kpi-label[b-udqzqg3e92] { font-size: .66rem; color: var(--text-3); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }

.ed-check[b-udqzqg3e92] {
    display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 16px;
    background: color-mix(in oklab, var(--sc) 10%, transparent); border: 1px solid color-mix(in oklab, var(--sc) 30%, transparent);
}
.ed-check .sdot[b-udqzqg3e92] { width: 10px; height: 10px; border-radius: 50%; background: var(--sc); box-shadow: 0 0 10px var(--sc); margin-top: 6px; flex: none; }
.ed-check-actions[b-udqzqg3e92] { display: flex; flex-direction: column; gap: 6px; flex: none; }
.ed-break[b-udqzqg3e92] { word-break: break-all; }

@media (max-width: 560px) {
    .ed-stats[b-udqzqg3e92] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ed-stats > div:last-child[b-udqzqg3e92] { grid-column: span 2; }
    .ed-check[b-udqzqg3e92] { flex-wrap: wrap; }
    .ed-check-actions[b-udqzqg3e92] { flex-direction: row; width: 100%; }
    .ed-check-actions .btn[b-udqzqg3e92] { flex: 1; }
}
/* /Components/Pages/Link/LinkIcon.razor.rz.scp.css */
.licon[b-ojtn6b850b] {
    --s: 76px;
    position: relative; flex: none; display: grid; place-items: center; overflow: hidden;
    width: var(--s); height: var(--s); border-radius: calc(var(--s) * .28);
    transform-style: preserve-3d;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .45) inset,
        0 -6px 14px rgba(0, 0, 0, .18) inset,
        0 18px 30px -14px hsl(var(--h1) 80% 45% / .75),
        0 6px 12px -6px rgba(0, 0, 0, .6);
}
.licon.md[b-ojtn6b850b] { --s: 48px; }
.licon.sm[b-ojtn6b850b] { --s: 36px; }

.licon.gen[b-ojtn6b850b] { background: linear-gradient(145deg, hsl(var(--h1) 78% 58%), hsl(var(--h2) 82% 42%)); }
.licon.img[b-ojtn6b850b] { background: linear-gradient(160deg, #ffffff, hsl(var(--h1) 30% 88%)); }

.licon img[b-ojtn6b850b] {
    width: 58%; height: 58%; object-fit: contain; image-rendering: auto;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .18));
}
.licon-letter[b-ojtn6b850b] {
    font-family: var(--font-display); font-weight: 700; color: #fff;
    font-size: calc(var(--s) * .46); line-height: 1; letter-spacing: -.03em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .28);
}
/* Riflesso vetro in alto, come le icone di un OS */
.licon-gloss[b-ojtn6b850b] {
    position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
    background:
        radial-gradient(120% 70% at 30% -10%, rgba(255, 255, 255, .55), transparent 55%),
        linear-gradient(to bottom, rgba(255, 255, 255, .12), transparent 45%);
    mix-blend-mode: soft-light;
}
/* /Components/Pages/Link/LinkPreferiti.razor.rz.scp.css */
/* =========================================================
   Link preferiti — speed dial 3D
   ========================================================= */

/* ---------- Hero: ventaglio di icone ---------- */
.hero-stack[b-lznzk11t0k] { position: relative; width: 150px; height: 84px; perspective: 600px; flex: none; }
.hs-item[b-lznzk11t0k] {
    position: absolute; top: 10px; left: calc(var(--k) * 34px);
    transform: rotateY(calc(28deg - var(--k) * 14deg)) rotateZ(calc(-10deg + var(--k) * 10deg)) translateZ(calc(var(--k) * 12px));
    animation: hs-in-b-lznzk11t0k .9s var(--ease-spring) both; animation-delay: calc(var(--k) * 120ms + 200ms);
    transition: transform .5s var(--ease-spring);
}
.hero-stack:hover .hs-item[b-lznzk11t0k] { transform: rotateY(0) rotateZ(calc(-6deg + var(--k) * 6deg)) translateY(-6px) translateZ(calc(var(--k) * 16px)); }
@keyframes hs-in-b-lznzk11t0k { from { opacity: 0; transform: translateY(40px) rotateX(60deg); } }
.hs-count[b-lznzk11t0k] {
    position: absolute; right: -6px; bottom: -4px; z-index: 3; min-width: 38px; height: 30px; padding: 0 10px; border-radius: 99px;
    display: grid; place-items: center; font-weight: 700; font-size: .95rem;
    background: linear-gradient(135deg, var(--accent), var(--accent-2)); box-shadow: 0 10px 24px -8px var(--accent);
    border: 2px solid rgba(8, 6, 24, .8);
}

/* ---------- Omnibox di aggiunta rapida ---------- */
.omni[b-lznzk11t0k] {
    padding: 10px; border-radius: 26px; margin-bottom: 18px;
    background:
        radial-gradient(80% 140% at 0% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%),
        linear-gradient(145deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .02));
    transition: box-shadow .4s var(--ease-out), border-color .3s;
}
.omni:focus-within[b-lznzk11t0k], .omni.open[b-lznzk11t0k] { border-color: color-mix(in oklab, var(--accent) 55%, var(--border)); box-shadow: var(--shadow-glow); }
.omni-row[b-lznzk11t0k] { display: flex; align-items: center; gap: 8px; }
.omni-ico[b-lznzk11t0k] { width: 40px; height: 40px; flex: none; display: grid; place-items: center; font-size: 1.3rem; border-radius: 13px; background: rgba(0, 0, 0, .25); }
.omni-input[b-lznzk11t0k] {
    flex: 1; min-width: 0; height: 48px; border: 0; background: transparent; outline: none;
    color: var(--text); font: inherit; font-size: 16px; font-weight: 500;
}
.omni-input[b-lznzk11t0k]::placeholder { color: var(--text-3); }
.omni-add[b-lznzk11t0k] { height: 44px; flex: none; }
.omni-paste[b-lznzk11t0k] { flex: none; gap: 6px; }
.omni-hint[b-lznzk11t0k] { padding: 6px 12px 2px 56px; }
.omni-preview[b-lznzk11t0k] { display: flex; flex-direction: column; gap: 8px; padding: 10px 4px 2px 52px; animation: omni-open-b-lznzk11t0k .45s var(--ease-out); }
@keyframes omni-open-b-lznzk11t0k { from { opacity: 0; transform: translateY(-8px); } }
.omni-title[b-lznzk11t0k] { height: 42px; font-weight: 600; }
.omni-meta[b-lznzk11t0k] { display: flex; flex-wrap: wrap; gap: 4px; }
.omni-dup[b-lznzk11t0k] { color: #fde68a; }
.omni-cols[b-lznzk11t0k] { margin: 0 -4px; padding: 2px 4px; }
.omni-cols .chip[b-lznzk11t0k] { height: 30px; font-size: .8rem; }
@media (max-width: 560px) {
    .omni-preview[b-lznzk11t0k], .omni-hint[b-lznzk11t0k] { padding-left: 4px; }
    .omni-add[b-lznzk11t0k] { padding: 0 14px; }
}

/* ---------- Filtri ---------- */
.filters[b-lznzk11t0k] { display: flex; flex-direction: column; gap: 12px; padding: 14px; margin-bottom: 18px; border-radius: 24px; }
.f-row[b-lznzk11t0k] { display: flex; gap: 8px; align-items: center; }
.f-search[b-lznzk11t0k] {
    flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px;
    border-radius: 14px; background: rgba(0, 0, 0, .28); border: 1px solid var(--border); color: var(--text-2);
    transition: border-color .2s, box-shadow .2s;
}
.f-search:focus-within[b-lznzk11t0k] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 25%, transparent); }
.f-search input[b-lznzk11t0k] { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; outline: none; }
.view-seg[b-lznzk11t0k] { flex: none; }
.view-seg button[b-lznzk11t0k] { display: grid; place-items: center; padding: 7px 11px; }
.edit-chip[b-lznzk11t0k] { height: 44px; flex: none; font-weight: 600; }
.f-scroll[b-lznzk11t0k] { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 2px 14px; align-items: center; }
.f-scroll[b-lznzk11t0k]::-webkit-scrollbar { display: none; }
.f-scroll > *[b-lznzk11t0k] { flex: none; }
.f-sep[b-lznzk11t0k] { width: 1px; height: 22px; background: var(--border-strong); margin: 0 4px; }
.cnt[b-lznzk11t0k] { font-size: .72rem; opacity: .6; font-variant-numeric: tabular-nums; }
.col-chip[b-lznzk11t0k]::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cc); box-shadow: 0 0 8px var(--cc); }
.col-chip.active[b-lznzk11t0k] { background: color-mix(in oklab, var(--cc) 38%, transparent); border-color: color-mix(in oklab, var(--cc) 70%, transparent); }
.add-chip[b-lznzk11t0k] { border-style: dashed; }
.broken-chip.active[b-lznzk11t0k] { background: color-mix(in oklab, var(--danger) 30%, transparent); border-color: color-mix(in oklab, var(--danger) 60%, transparent); }
.tag-chip-f[b-lznzk11t0k] { height: 30px; font-size: .8rem; }
@media (max-width: 560px) {
    .f-row[b-lznzk11t0k] { flex-wrap: wrap; }
    .f-search[b-lznzk11t0k] { flex-basis: 100%; }
    .view-seg[b-lznzk11t0k] { flex: 1; } .view-seg button[b-lznzk11t0k] { flex: 1; }
    .edit-chip[b-lznzk11t0k] { flex: 1; justify-content: center; }
}

.edit-banner[b-lznzk11t0k] {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 18px; border-radius: 18px;
    background: linear-gradient(120deg, color-mix(in oklab, var(--accent) 30%, transparent), color-mix(in oklab, var(--accent-2) 18%, transparent));
    border: 1px solid color-mix(in oklab, var(--accent) 50%, transparent); font-size: .88rem;
}
.eb-ico[b-lznzk11t0k] { font-size: 1.3rem; animation: eb-wiggle-b-lznzk11t0k 1.2s ease-in-out infinite; }
@keyframes eb-wiggle-b-lznzk11t0k { 25% { transform: rotate(-12deg); } 75% { transform: rotate(12deg); } }

/* ---------- Sezioni ---------- */
.dial-root[b-lznzk11t0k] { display: flex; flex-direction: column; gap: 22px; }
.sect[b-lznzk11t0k] { position: relative; }
.sect-head[b-lznzk11t0k] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 2px 10px; min-width: 0; }
.sect-head h2[b-lznzk11t0k] { font-size: 1.2rem; display: flex; align-items: center; gap: 8px; min-width: 0; }
.sect-emoji[b-lznzk11t0k] { filter: drop-shadow(0 4px 10px rgba(249, 115, 22, .6)); }
.sort-sel[b-lznzk11t0k] { height: 36px; width: auto; font-size: .85rem; border-radius: 11px; padding-left: 10px; }

.col-sect[b-lznzk11t0k] {
    padding: 14px 12px 16px; border-radius: var(--radius-xl);
    background:
        radial-gradient(70% 90% at 0% 0%, color-mix(in oklab, var(--cc) 20%, transparent), transparent 65%),
        linear-gradient(170deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .012));
    border: 1px solid var(--border);
    transition: border-color .3s, box-shadow .3s, background .3s;
}
.col-sect[b-lznzk11t0k]::after {
    /* "pavimento" della galleria: linea di luce del colore della raccolta */
    content: ""; position: absolute; left: 10%; right: 10%; bottom: -1px; height: 2px; border-radius: 2px; pointer-events: none;
    background: linear-gradient(90deg, transparent, var(--cc), transparent); opacity: .55; filter: blur(.5px);
}
.col-sect[data-over][b-lznzk11t0k] { border-color: color-mix(in oklab, var(--cc) 70%, transparent); box-shadow: 0 0 0 3px color-mix(in oklab, var(--cc) 25%, transparent), 0 30px 60px -30px var(--cc); }
.col-title[b-lznzk11t0k] {
    display: flex; align-items: center; gap: 10px; min-width: 0; padding: 4px 6px 4px 4px; border: 0; border-radius: 14px;
    background: transparent; color: inherit; cursor: pointer; text-align: left;
}
.col-title.static[b-lznzk11t0k] { cursor: default; }
.col-title:hover:not(.static)[b-lznzk11t0k] { background: var(--surface); }
.col-emoji[b-lznzk11t0k] {
    width: 38px; height: 38px; flex: none; display: grid; place-items: center; font-size: 1.2rem; border-radius: 12px;
    background: linear-gradient(145deg, color-mix(in oklab, var(--cc) 80%, white), color-mix(in oklab, var(--cc) 75%, black));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4), 0 10px 20px -8px var(--cc);
}
.col-title h2[b-lznzk11t0k] { font-size: 1.1rem; }
.cnt-pill[b-lznzk11t0k] { font-size: .72rem; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: var(--surface-2); color: var(--text-2); flex: none; }
.chev[b-lznzk11t0k] { color: var(--text-3); transition: transform .35s var(--ease-spring); flex: none; }
.collapsed .chev[b-lznzk11t0k] { transform: rotate(-90deg); }
.collapsed[b-lznzk11t0k] { padding-bottom: 12px; }
.collapsed .sect-head[b-lznzk11t0k] { margin-bottom: 0; }
.col-empty[b-lznzk11t0k] { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; padding: 22px; border: 1px dashed var(--border-strong); border-radius: 20px; }
.loose[b-lznzk11t0k] { --cc: #64748b; }

/* ---------- Griglia speed dial ---------- */
.dial-grid[b-lznzk11t0k] {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px 6px;
    perspective: 1200px; perspective-origin: 50% 0%;
}
@media (max-width: 560px) { .dial-grid[b-lznzk11t0k] { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px 2px; } }
@media (max-width: 360px) { .dial-grid[b-lznzk11t0k] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.add-tile[b-lznzk11t0k] {
    display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 6px 12px; border: 0; background: transparent; color: inherit; cursor: pointer;
    border-radius: 26px; transition: background .3s;
}
.add-tile:hover[b-lznzk11t0k] { background: var(--surface); }
.add-ico[b-lznzk11t0k] {
    width: clamp(58px, 15vw, 80px); height: clamp(58px, 15vw, 80px); border-radius: 28%; display: grid; place-items: center; font-size: 1.8rem;
    border: 2px dashed var(--border-strong); color: var(--text-2); margin-bottom: 20px;
    transition: transform .4s var(--ease-spring), border-color .3s, color .3s;
}
.add-tile:hover .add-ico[b-lznzk11t0k] { transform: rotate(90deg) scale(1.06); border-color: var(--cc, var(--accent)); color: #fff; }

.sk-tile[b-lznzk11t0k] { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 16px 6px; }
.sk-icon[b-lznzk11t0k] { width: 72px; height: 72px; border-radius: 22px; }
.sk-line[b-lznzk11t0k] { width: 70%; height: 12px; }

/* ---------- Dock dei fissati ---------- */
.dock-wrap[b-lznzk11t0k] { position: relative; display: flex; flex-direction: column; align-items: center; perspective: 900px; padding-top: 6px; }
.dock-label[b-lznzk11t0k] { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--text-2); margin-bottom: 8px; display: flex; gap: 6px; }
.dock[b-lznzk11t0k] {
    position: relative; display: flex; align-items: flex-end; gap: 10px; max-width: 100%; padding: 12px 16px 14px;
    overflow-x: auto; overflow-y: visible; scrollbar-width: none;
    border-radius: 30px; border: 1px solid var(--border-strong);
    background: linear-gradient(180deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .04));
    backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 30px 60px -24px rgba(0, 0, 0, .8), 0 0 60px -20px var(--accent);
    transform: rotateX(14deg); transform-origin: 50% 100%;
}
.dock[b-lznzk11t0k]::-webkit-scrollbar { display: none; }
.dock-item[b-lznzk11t0k] { position: relative; flex: none; transform-origin: 50% 100%; transition: transform .35s var(--ease-spring), margin .35s var(--ease-spring); }
.dock-item[b-lznzk11t0k]  .licon { --s: 64px; -webkit-box-reflect: below 3px linear-gradient(transparent 70%, rgba(255, 255, 255, .2)); }
@media (hover: hover) {
    .dock[b-lznzk11t0k] { overflow: visible; flex-wrap: wrap; justify-content: center; }
    .dock-item:hover[b-lznzk11t0k] { transform: translateY(-14px) scale(1.35); margin: 0 12px; z-index: 2; }
    .dock-item:hover + .dock-item[b-lznzk11t0k], .dock-item:has(+ .dock-item:hover)[b-lznzk11t0k] { transform: translateY(-6px) scale(1.15); margin: 0 4px; }
}
.dock-item:active[b-lznzk11t0k] { transform: scale(.9); }
.dock-tip[b-lznzk11t0k] {
    position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%) translateY(6px) scale(.8); white-space: nowrap;
    padding: 4px 10px; border-radius: 9px; font-size: .72rem; font-weight: 600; pointer-events: none; opacity: 0;
    background: rgba(14, 12, 40, .95); border: 1px solid var(--border-strong); transition: opacity .2s, transform .3s var(--ease-spring);
}
.dock-item:hover .dock-tip[b-lznzk11t0k], .dock-item:focus-visible .dock-tip[b-lznzk11t0k] { opacity: 1; transform: translateX(-50%) translateY(0) scale(.74); }
.dock-floor[b-lznzk11t0k] {
    width: min(620px, 90%); height: 30px; margin-top: -8px; pointer-events: none;
    background: radial-gradient(50% 50% at 50% 50%, color-mix(in oklab, var(--accent) 55%, transparent), transparent 70%); filter: blur(12px); opacity: .6;
}
@media (max-width: 560px) {
    .dock[b-lznzk11t0k] { gap: 8px; padding: 10px 12px 12px; transform: none; width: 100%; }
    .dock-item[b-lznzk11t0k]  .licon { --s: 52px; }
    .dock-tip[b-lznzk11t0k] { display: none; }
}

/* ---------- Vista lista ---------- */
.lrows[b-lznzk11t0k] { display: flex; flex-direction: column; gap: 6px; }
.lrow[b-lznzk11t0k] {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px;
    padding: 6px 8px 6px 6px; border-radius: 16px; background: var(--surface); border: 1px solid transparent;
    transition: background .2s, border-color .2s, transform .35s var(--ease-spring);
}
.lrow:hover[b-lznzk11t0k] { background: var(--surface-2); border-color: var(--border); transform: translateX(3px); }
.lrow-main[b-lznzk11t0k] { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 4px; border-radius: 12px; }
.lrow-main:focus-visible[b-lznzk11t0k] { outline: 2px solid var(--accent-2); }
.lrow-text[b-lznzk11t0k] { display: flex; flex-direction: column; min-width: 0; }
.lrow-title[b-lznzk11t0k] { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lrow-url[b-lznzk11t0k] { font-size: .76rem; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lrow-meta[b-lznzk11t0k] { display: flex; align-items: center; gap: 4px; flex-wrap: nowrap; overflow: hidden; max-width: 34vw; }
.col-badge[b-lznzk11t0k] { background: color-mix(in oklab, var(--cc) 25%, transparent); color: #fff; }
.lrow-stats[b-lznzk11t0k] { white-space: nowrap; text-align: right; }
.lrow-actions[b-lznzk11t0k] { display: flex; gap: 2px; }
.pin-btn[b-lznzk11t0k] { filter: grayscale(1); opacity: .45; }
.pin-btn.on[b-lznzk11t0k] { filter: none; opacity: 1; }
.sdot[b-lznzk11t0k] { width: 8px; height: 8px; border-radius: 50%; background: var(--sc); box-shadow: 0 0 8px var(--sc); display: inline-block; flex: none; }
@media (max-width: 700px) {
    .lrow[b-lznzk11t0k] { grid-template-columns: minmax(0, 1fr) auto auto; }
    .lrow-meta[b-lznzk11t0k] { display: none; }
}

/* ---------- Job in corso ---------- */
.job-pill[b-lznzk11t0k] {
    position: fixed; left: 50%; bottom: calc(100px + var(--safe-bottom)); transform: translateX(-50%); z-index: 45;
    width: min(420px, calc(100vw - 32px)); display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 18px;
    animation: job-in-b-lznzk11t0k .5s var(--ease-spring);
}
.job-pill .progress[b-lznzk11t0k] { height: 6px; margin-top: 4px; }
@keyframes job-in-b-lznzk11t0k { from { opacity: 0; transform: translateX(-50%) translateY(30px) scale(.9); } }
.spin[b-lznzk11t0k] { width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .2); border-top-color: var(--accent-2); animation: spin-b-lznzk11t0k .8s linear infinite; flex: none; }
@keyframes spin-b-lznzk11t0k { to { transform: rotate(360deg); } }

/* ---------- Strumenti ---------- */
.tools[b-lznzk11t0k] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tool[b-lznzk11t0k] { display: flex; gap: 14px; padding: 16px; border-radius: 22px; }
.tool h3[b-lznzk11t0k] { font-size: 1rem; margin-bottom: 4px; }
.tool p[b-lznzk11t0k] { margin: 0 0 12px; }
.tool-ico[b-lznzk11t0k] {
    width: 44px; height: 44px; flex: none; display: grid; place-items: center; font-size: 1.3rem; border-radius: 14px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 60%, transparent), color-mix(in oklab, var(--accent-2) 40%, transparent));
}
.file-btn[b-lznzk11t0k] { position: relative; cursor: pointer; }
.file-btn[b-lznzk11t0k]  input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.file-btn.busy[b-lznzk11t0k] { opacity: .6; pointer-events: none; }
.import-res[b-lznzk11t0k] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
@media (max-width: 640px) { .tools[b-lznzk11t0k] { grid-template-columns: minmax(0, 1fr); } }

.empty-card[b-lznzk11t0k] { padding: 10px; }

@media (prefers-reduced-motion: reduce) {
    .eb-ico[b-lznzk11t0k], .hs-item[b-lznzk11t0k] { animation: none; }
}

/* Modalità disposizione su mobile: 3 colonne per far stare i pulsanti ◀ 📌 ▶ */
@media (max-width: 560px) { .dial-grid.editing[b-lznzk11t0k] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 6px; } }
/* /Components/Pages/Link/LinkTile.razor.rz.scp.css */
.cell[b-7hcpoyysls] { position: relative; display: flex; flex-direction: column; align-items: stretch; min-width: 0; }

.dial[b-7hcpoyysls] {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px;
    width: 100%; padding: 16px 6px 12px; border-radius: 26px; text-align: center; color: inherit;
    transform-style: preserve-3d; border: 1px solid transparent; cursor: pointer;
    transition: transform .5s var(--ease-out), background .35s, border-color .35s, box-shadow .35s;
    -webkit-user-select: none; user-select: none;
}
.dial:hover[b-7hcpoyysls], .dial:focus-visible[b-7hcpoyysls] {
    background: linear-gradient(160deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .015));
    border-color: var(--border);
    box-shadow: 0 30px 50px -30px color-mix(in oklab, var(--accent) 70%, transparent);
}
.dial:focus-visible[b-7hcpoyysls] { outline: 2px solid var(--accent-2); outline-offset: 2px; }

.dial-stage[b-7hcpoyysls] { position: relative; transform: translateZ(34px); transform-style: preserve-3d; margin-bottom: 20px; }
.dial-stage[b-7hcpoyysls]  .licon {
    --s: clamp(58px, 15vw, 80px);
    -webkit-box-reflect: below 5px linear-gradient(transparent 58%, rgba(255, 255, 255, .22));
    transition: transform .5s var(--ease-spring), box-shadow .4s;
}
.dial:hover .dial-stage[b-7hcpoyysls]  .licon { transform: translateY(-5px) scale(1.07); }
.dial:active .dial-stage[b-7hcpoyysls]  .licon { transform: scale(.94); transition-duration: .12s; }

.dial-title[b-7hcpoyysls] {
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-weight: 600; font-size: .88rem; line-height: 1.25; transform: translateZ(20px);
    text-shadow: 0 2px 10px rgba(0, 0, 0, .55);
}
.dial-domain[b-7hcpoyysls] {
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: .72rem; color: var(--text-3); transform: translateZ(12px);
}

.dial-pin[b-7hcpoyysls] { position: absolute; top: -9px; left: -9px; font-size: .95rem; transform: translateZ(22px) rotate(-18deg); filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .5)); }
.dial-count[b-7hcpoyysls], .dial-warn[b-7hcpoyysls] {
    position: absolute; top: -7px; right: -9px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px;
    display: grid; place-items: center; font-size: .7rem; font-weight: 800; color: #fff; transform: translateZ(24px);
    border: 2px solid rgba(8, 6, 24, .9);
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 6px 14px -4px color-mix(in oklab, var(--accent) 80%, transparent);
}
.dial-warn[b-7hcpoyysls] { background: linear-gradient(135deg, #fb7185, #e11d48); box-shadow: 0 6px 14px -4px rgba(225, 29, 72, .8); animation: warn-pulse-b-7hcpoyysls 2s ease-in-out infinite; }
@keyframes warn-pulse-b-7hcpoyysls { 50% { box-shadow: 0 0 0 6px rgba(225, 29, 72, .15), 0 6px 14px -4px rgba(225, 29, 72, .8); } }

.dial-more[b-7hcpoyysls] {
    position: absolute; top: 6px; right: 6px; z-index: 3; width: 30px; height: 30px; border-radius: 50%;
    display: grid; place-items: center; font-size: 1rem; line-height: 1; cursor: pointer;
    border: 1px solid var(--border); color: var(--text); background: rgba(10, 8, 30, .7);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    opacity: 0; transform: scale(.8); transition: opacity .2s, transform .3s var(--ease-spring);
}
.cell:hover .dial-more[b-7hcpoyysls], .dial-more:focus-visible[b-7hcpoyysls] { opacity: 1; transform: none; }
@media (hover: none) {
    .dial-more[b-7hcpoyysls] { opacity: .8; transform: none; top: 2px; right: 0; width: 28px; height: 28px; }
}

/* ---- Modalità modifica ("jiggle" come la home di un telefono) ---- */
.editing .dial[b-7hcpoyysls] { cursor: pointer; background: rgba(255, 255, 255, .03); border-color: var(--border); border-style: dashed; }
.editing[draggable="true"] .dial[b-7hcpoyysls] { cursor: grab; }
.jiggle .dial-stage[b-7hcpoyysls]  .licon { animation: jiggle-b-7hcpoyysls .3s ease-in-out infinite alternate; animation-delay: calc(var(--d, 0) * -60ms); }
@keyframes jiggle-b-7hcpoyysls { from { transform: rotate(-2.4deg); } to { transform: rotate(2.4deg); } }
.dial-steps[b-7hcpoyysls] { display: flex; gap: 3px; justify-content: center; margin-top: 6px; }
.step[b-7hcpoyysls] {
    width: min(32px, 30%); height: 30px; border-radius: 10px; border: 1px solid var(--border); cursor: pointer; flex: 0 1 auto;
    background: var(--surface-2); color: var(--text-2); font-size: .72rem; display: grid; place-items: center;
    transition: background .2s, transform .25s var(--ease-spring);
}
.step:hover[b-7hcpoyysls] { background: var(--surface-3); color: var(--text); }
.step:active[b-7hcpoyysls] { transform: scale(.9); }
.step[disabled][b-7hcpoyysls] { opacity: .3; pointer-events: none; }
.step.pin[b-7hcpoyysls] { filter: grayscale(1); opacity: .6; }
.step.pin.on[b-7hcpoyysls] { filter: none; opacity: 1; background: color-mix(in oklab, var(--accent) 35%, transparent); }

/* Indicatori drag & drop (attributi impostati da links.js) */
.cell[data-dragging][b-7hcpoyysls] { opacity: .35; transform: scale(.92); }
.cell[data-drop][b-7hcpoyysls]::before {
    content: ""; position: absolute; top: 10%; bottom: 28%; width: 4px; border-radius: 4px; z-index: 4;
    background: linear-gradient(var(--accent), var(--accent-2)); box-shadow: 0 0 16px var(--accent);
    animation: drop-in-b-7hcpoyysls .25s var(--ease-spring);
}
.cell[data-drop="before"][b-7hcpoyysls]::before { left: -7px; }
.cell[data-drop="after"][b-7hcpoyysls]::before { right: -7px; }
@keyframes drop-in-b-7hcpoyysls { from { transform: scaleY(0); } }

@media (prefers-reduced-motion: reduce) {
    .jiggle .dial-stage[b-7hcpoyysls]  .licon, .dial-warn[b-7hcpoyysls] { animation: none; }
}
/* /Components/Pages/Media/MediaDetail.razor.rz.scp.css */
/* =====================================================================
   Dettaglio titolo — hero immersivo, posizione, avanzamento, timeline
   ===================================================================== */

/* ---------- Sfondo sfocato con parallasse ---------- */
.d-backdrop[b-s7pu6nqotz] {
    /* La fill dell'animazione "module-in" rende .module il blocco contenitore dei fixed: si allarga a tutta la viewport. */
    position: fixed; top: 0; bottom: 0; left: calc(50% - 50vw); width: 100vw; min-height: 100vh; z-index: -1; pointer-events: none; overflow: hidden;
    animation: bd-in-b-s7pu6nqotz 1.4s var(--ease-out) .65s backwards;
}
.d-bd-move[b-s7pu6nqotz] { position: absolute; inset: 0; }
.d-bd-inner[b-s7pu6nqotz] {
    position: absolute; left: 50%; top: -12vh; width: max(125vw, 90vh);
    transform: translate3d(-50%, calc(var(--scroll-y, 0px) * -0.22), 0) scale(1.05);
    filter: blur(60px) saturate(1.6) brightness(.85);
    opacity: .6;
}
.d-bd-inner[b-s7pu6nqotz]  .poster { border-radius: 0; box-shadow: none; }
.d-bd-inner[b-s7pu6nqotz]  .pg-title, .d-bd-inner[b-s7pu6nqotz]  .pg-type, .d-bd-inner[b-s7pu6nqotz]  .pg-meta { visibility: hidden; }
.d-bd-shade[b-s7pu6nqotz] {
    position: absolute; inset: 0;
    background:
        radial-gradient(120% 80% at 50% 0%, transparent 30%, rgba(5, 4, 15, .75) 80%),
        linear-gradient(to bottom, rgba(5, 4, 15, .15) 0%, rgba(5, 4, 15, .55) 45%, rgba(5, 4, 15, .92) 100%);
}
@keyframes bd-in-b-s7pu6nqotz { from { opacity: 0; } }
@supports (animation-timeline: scroll()) {
    .d-bd-move[b-s7pu6nqotz] { animation: bd-scroll-b-s7pu6nqotz linear both; animation-timeline: scroll(root); animation-range: 0 80vh; }
    @keyframes bd-scroll-b-s7pu6nqotz { to { opacity: .45; transform: scale(1.12); } }
}

/* ---------- Hero ---------- */
.d-hero[b-s7pu6nqotz] {
    position: relative; display: grid; grid-template-columns: minmax(200px, 280px) minmax(0, 1fr); gap: clamp(20px, 4vw, 48px);
    align-items: center; padding: 18px 0 64px;
}
.d-poster-col[b-s7pu6nqotz] { position: relative; perspective: 1000px; }
.d-poster-in[b-s7pu6nqotz] { animation: poster-in-b-s7pu6nqotz 1.2s var(--ease-spring) backwards .1s; transform-style: preserve-3d; }
@keyframes poster-in-b-s7pu6nqotz { from { opacity: 0; transform: rotateY(-70deg) rotateX(10deg) translateZ(-200px) scale(.8); } }
.d-poster[b-s7pu6nqotz] {
    position: relative; border-radius: 18px;
    -webkit-box-reflect: below 12px linear-gradient(transparent 80%, rgba(0, 0, 0, .24));
}
.d-poster[b-s7pu6nqotz]  .poster { border-radius: 18px; box-shadow: 0 0 0 1px rgba(255,255,255,.12) inset, 0 40px 90px -25px color-mix(in oklab, var(--pc) 80%, black), 0 0 70px -20px color-mix(in oklab, var(--pc) 70%, transparent); }
.d-poster-floor[b-s7pu6nqotz] {
    position: absolute; left: 6%; right: 6%; bottom: -30px; height: 40px; border-radius: 50%; z-index: -1;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--pc) 70%, transparent), transparent);
    filter: blur(14px);
}

.d-info[b-s7pu6nqotz] { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.d-chips[b-s7pu6nqotz] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.d-title[b-s7pu6nqotz] {
    font-size: clamp(2.1rem, 6.4vw, 4.4rem); font-weight: 700; line-height: .98; letter-spacing: -.035em;
    background: linear-gradient(120deg, #fff 20%, color-mix(in oklab, var(--pc) 45%, white) 60%, var(--accent-2));
    -webkit-background-clip: text; background-clip: text; color: transparent;
    text-wrap: balance; overflow-wrap: anywhere;
    filter: drop-shadow(0 10px 30px rgba(0, 0, 0, .5));
}
.d-rating[b-s7pu6nqotz] { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.d-rating-v[b-s7pu6nqotz] { font-size: 1.5rem; font-weight: 700; color: #FDE68A; }
.d-rating-v small[b-s7pu6nqotz] { font-size: .85rem; color: var(--text-3); }
.d-status-wrap[b-s7pu6nqotz] { overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.d-status-wrap[b-s7pu6nqotz]::-webkit-scrollbar { display: none; }
.d-status button[b-s7pu6nqotz] { display: inline-flex; align-items: center; gap: 6px; }
.d-status .active[b-s7pu6nqotz] { background: color-mix(in oklab, var(--sc) 32%, rgba(255,255,255,.08)); }
.sdot[b-s7pu6nqotz] { width: 8px; height: 8px; border-radius: 50%; background: var(--sc); box-shadow: 0 0 8px var(--sc); flex: none; display: inline-block; }
.d-fav.on[b-s7pu6nqotz] { color: #fff; background: linear-gradient(135deg, var(--accent), #F472B6); border-color: transparent; }

@media (max-width: 700px) {
    .d-hero[b-s7pu6nqotz] { grid-template-columns: 1fr; justify-items: center; text-align: center; padding-top: 8px; }
    .d-poster-col[b-s7pu6nqotz] { width: min(230px, 60vw); margin-bottom: 44px; }
    .d-info[b-s7pu6nqotz] { align-items: center; width: 100%; }
    .d-chips[b-s7pu6nqotz], .d-rating[b-s7pu6nqotz] { justify-content: center; }
}

/* ---------- Griglia schede ---------- */
.d-grid[b-s7pu6nqotz] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.d-notes[b-s7pu6nqotz] { grid-column: 1 / -1; }
@media (max-width: 820px) { .d-grid[b-s7pu6nqotz] { grid-template-columns: minmax(0, 1fr); } }

/* Dove sei arrivato */
.d-now[b-s7pu6nqotz] { overflow: hidden; }
.d-now[b-s7pu6nqotz]::before {
    content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, color-mix(in oklab, var(--pc) 45%, transparent), transparent 70%);
}
.d-now-body[b-s7pu6nqotz] { display: flex; align-items: center; gap: clamp(14px, 4vw, 28px); flex-wrap: wrap; }
.ring[b-s7pu6nqotz] { position: relative; width: 132px; height: 132px; flex: none; }
.ring svg[b-s7pu6nqotz] { width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; }
.ring-bg[b-s7pu6nqotz] { fill: none; stroke: rgba(0, 0, 0, .3); stroke-width: 11; }
.ring-fg[b-s7pu6nqotz] {
    fill: none; stroke-width: 11; stroke-linecap: round;
    stroke-dasharray: 326.73; stroke-dashoffset: calc(326.73 * (1 - var(--p)));
    filter: drop-shadow(0 0 8px rgba(225, 29, 72, .7));
    transition: stroke-dashoffset 1.2s var(--ease-out);
    animation: ring-in-b-s7pu6nqotz 1.6s var(--ease-out) .3s backwards;
}
@keyframes ring-in-b-s7pu6nqotz { from { stroke-dashoffset: 326.73; } }
.ring-c[b-s7pu6nqotz] { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ring-min[b-s7pu6nqotz] { font-size: 1.9rem; font-weight: 700; line-height: 1; }
.ring-dur[b-s7pu6nqotz] { font-size: .78rem; }
.d-now-where[b-s7pu6nqotz] { flex: 1 1 180px; min-width: 0; }
.big-sxe[b-s7pu6nqotz] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; perspective: 600px; }
.bx[b-s7pu6nqotz] { display: flex; flex-direction: column; align-items: flex-start; padding: 12px 14px; border-radius: 18px; background: rgba(0, 0, 0, .25); border: 1px solid rgba(255, 255, 255, .1); }
.bx-l[b-s7pu6nqotz] { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: rgba(255, 255, 255, .7); }
.bx-v[b-s7pu6nqotz] { font-size: clamp(2.4rem, 8vw, 3.2rem); font-weight: 700; line-height: 1.05; animation: flip-in-b-s7pu6nqotz .6s var(--ease-spring); display: inline-block; }
.bx-s[b-s7pu6nqotz] { font-size: .75rem; color: rgba(255, 255, 255, .6); }
@keyframes flip-in-b-s7pu6nqotz { from { transform: rotateX(-90deg); opacity: 0; } }
.film-where[b-s7pu6nqotz] { display: flex; flex-direction: column; }
.d-now-actions[b-s7pu6nqotz] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.d-now-actions .btn[b-s7pu6nqotz] { flex: 1 1 160px; }

/* Avanzamento */
.d-prog-head[b-s7pu6nqotz] { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.d-prog-pct[b-s7pu6nqotz] { font-size: 2.6rem; font-weight: 700; line-height: 1; }
.d-prog-pct small[b-s7pu6nqotz] { font-size: 1.1rem; color: var(--text-2); }
.seasons[b-s7pu6nqotz] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.season[b-s7pu6nqotz] {
    position: relative; overflow: hidden; width: 54px; height: 34px; border-radius: 11px;
    background: rgba(0, 0, 0, .3); border: 1px solid var(--border);
    display: grid; place-items: center;
    animation: season-in-b-s7pu6nqotz .6s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 45ms);
}
.season-fill[b-s7pu6nqotz] { position: absolute; left: 0; top: 0; bottom: 0; width: var(--f); background: linear-gradient(90deg, var(--accent), var(--accent-2)); opacity: .75; transition: width 1s var(--ease-out); }
.season.done .season-fill[b-s7pu6nqotz] { background: linear-gradient(90deg, #10b981, #34d399); opacity: .6; }
.season.cur[b-s7pu6nqotz] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 25%, transparent), 0 0 18px -2px var(--accent); }
.season-n[b-s7pu6nqotz] { position: relative; font-size: .78rem; font-weight: 800; }
@keyframes season-in-b-s7pu6nqotz { from { opacity: 0; transform: perspective(300px) rotateY(80deg); } }
.d-mini[b-s7pu6nqotz] { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 10px; margin-top: 18px; }
.d-mini > div[b-s7pu6nqotz] { display: flex; flex-direction: column; padding: 10px 12px; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); }
.dm-v[b-s7pu6nqotz] { font-size: 1.35rem; font-weight: 700; }
.dm-l[b-s7pu6nqotz] { font-size: .72rem; color: var(--text-3); }

.d-notes-text[b-s7pu6nqotz] { margin: 0; white-space: pre-wrap; color: var(--text-2); line-height: 1.6; }

/* ---------- Timeline ---------- */
.d-timeline[b-s7pu6nqotz] { margin-bottom: 18px; }
.tl-wrap[b-s7pu6nqotz] { position: relative; view-timeline: --tl block; }
.tl-line[b-s7pu6nqotz] { position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.tl-line-fill[b-s7pu6nqotz] { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--accent), var(--accent-2)); transform-origin: top; box-shadow: 0 0 12px var(--accent); }
@supports (animation-timeline: view()) {
    .tl-line-fill[b-s7pu6nqotz] { animation: tl-fill-b-s7pu6nqotz linear both; animation-timeline: --tl; animation-range: cover 5% cover 75%; }
    @keyframes tl-fill-b-s7pu6nqotz { from { transform: scaleY(0); } to { transform: scaleY(1); } }
}
.tl[b-s7pu6nqotz] { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tl-item[b-s7pu6nqotz] { position: relative; padding-left: 36px; }
.tl-dot[b-s7pu6nqotz] {
    position: absolute; left: 5px; top: 16px; width: 14px; height: 14px; border-radius: 50%;
    background: var(--bg-1); border: 2px solid color-mix(in oklab, var(--accent) 80%, white);
    box-shadow: 0 0 0 4px rgba(5, 4, 15, .8), 0 0 12px var(--accent);
}
.tl-dot.first[b-s7pu6nqotz] { background: var(--accent); animation: live-b-s7pu6nqotz 2s infinite; }
@keyframes live-b-s7pu6nqotz { 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); } 100% { box-shadow: 0 0 0 12px transparent; } }
.tl-card[b-s7pu6nqotz] {
    position: relative; display: flex; flex-direction: column; gap: 4px; padding: 10px 44px 10px 14px; border-radius: 16px;
    background: var(--surface); border: 1px solid var(--border); transition: background .2s, border-color .2s, transform .35s var(--ease-spring);
}
.tl-card:hover[b-s7pu6nqotz] { background: var(--surface-2); border-color: var(--border-strong); transform: translateX(4px); }
.tl-when[b-s7pu6nqotz] { font-size: .75rem; color: var(--text-3); font-weight: 600; }
.tl-what[b-s7pu6nqotz] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tl-sxe[b-s7pu6nqotz] { font-weight: 700; }
.tl-min[b-s7pu6nqotz] { font-size: .82rem; padding: 1px 8px; border-radius: 99px; background: var(--accent-soft); font-weight: 700; }
.tl-note[b-s7pu6nqotz] { color: var(--text-2); font-size: .88rem; overflow-wrap: anywhere; }
.tl-del[b-s7pu6nqotz] { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); opacity: .45; }
.tl-card:hover .tl-del[b-s7pu6nqotz], .tl-del:focus-visible[b-s7pu6nqotz] { opacity: 1; }
@media (hover: none) { .tl-del[b-s7pu6nqotz] { opacity: .7; } }

.d-danger[b-s7pu6nqotz] { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }

@media (prefers-reduced-motion: reduce) {
    .d-bd-inner[b-s7pu6nqotz] { transform: translate3d(-50%, 0, 0) scale(1.05); }
}
/* /Components/Pages/Media/MediaEditor.razor.rz.scp.css */
.ed[b-jgwqzo6ero] { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 26px; align-items: start; }

.ed-preview[b-jgwqzo6ero] { position: sticky; top: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; perspective: 900px; }
.ed-poster[b-jgwqzo6ero] { position: relative; width: 100%; border-radius: 16px; animation: ed-in-b-jgwqzo6ero .8s var(--ease-spring) backwards; }
.ed-poster[b-jgwqzo6ero]  .poster { box-shadow: 0 30px 60px -20px color-mix(in oklab, var(--pc) 70%, black), 0 0 0 1px rgba(255, 255, 255, .1) inset; }
.ed-reflect[b-jgwqzo6ero] {
    width: 86%; height: 26px; margin-top: -4px; border-radius: 50%;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--pc) 60%, transparent), transparent);
    filter: blur(6px); opacity: .8;
}
.ed-prev-meta[b-jgwqzo6ero] { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
@keyframes ed-in-b-jgwqzo6ero { from { transform: rotateY(-40deg) translateZ(-80px); opacity: 0; } to { transform: none; opacity: 1; } }

.ed-form[b-jgwqzo6ero] { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ed-choices[b-jgwqzo6ero] { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-choices .chip[b-jgwqzo6ero] { height: 32px; padding: 0 12px; }
.chip.st .st-dot[b-jgwqzo6ero] { width: 8px; height: 8px; border-radius: 50%; background: var(--sc); box-shadow: 0 0 8px var(--sc); }
.chip.st.active[b-jgwqzo6ero] { background: color-mix(in oklab, var(--sc) 28%, transparent); border-color: color-mix(in oklab, var(--sc) 60%, transparent); }
.pf-chip .pf-dot[b-jgwqzo6ero] { width: 10px; height: 10px; border-radius: 50%; background: linear-gradient(135deg, var(--pa), var(--pb)); box-shadow: 0 0 8px color-mix(in oklab, var(--pa) 70%, transparent); }
.pf-chip.active[b-jgwqzo6ero] { background: linear-gradient(135deg, color-mix(in oklab, var(--pa) 45%, transparent), color-mix(in oklab, var(--pb) 30%, transparent)); border-color: color-mix(in oklab, var(--pa) 70%, transparent); }

.ed-block[b-jgwqzo6ero] { padding: 14px; border-radius: 20px; background: rgba(0, 0, 0, .2); border: 1px solid var(--border); }

.ed-swatches[b-jgwqzo6ero] { display: flex; flex-wrap: wrap; gap: 8px; }
.sw[b-jgwqzo6ero] {
    width: 32px; height: 32px; border-radius: 11px; border: 2px solid transparent; cursor: pointer; padding: 0;
    background: linear-gradient(135deg, var(--c), color-mix(in oklab, var(--c) 50%, black));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3);
    transition: transform .25s var(--ease-spring), border-color .2s;
}
.sw:hover[b-jgwqzo6ero] { transform: translateY(-2px) scale(1.08); }
.sw.on[b-jgwqzo6ero] { border-color: #fff; transform: scale(1.12); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c) 50%, transparent); }
.sw.custom[b-jgwqzo6ero] { position: relative; overflow: hidden; background: conic-gradient(red, yellow, lime, cyan, blue, magenta, red); }
.sw.custom input[b-jgwqzo6ero] { position: absolute; inset: -6px; width: calc(100% + 12px); height: calc(100% + 12px); opacity: 0; cursor: pointer; }

.ed-fav[b-jgwqzo6ero] { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--border); cursor: pointer; }

@media (max-width: 700px) {
    .ed[b-jgwqzo6ero] { grid-template-columns: 1fr; gap: 16px; }
    .ed-preview[b-jgwqzo6ero] { position: relative; flex-direction: row; justify-content: flex-start; gap: 14px; }
    .ed-poster[b-jgwqzo6ero] { width: 96px; flex: none; }
    .ed-reflect[b-jgwqzo6ero] { display: none; }
    .ed-prev-meta[b-jgwqzo6ero] { flex-direction: column; align-items: flex-start; }
}
/* /Components/Pages/Media/MediaLibrary.razor.rz.scp.css */
/* =====================================================================
   Libreria Film & Serie — sala cinema, coverflow 3D, griglia poster
   ===================================================================== */

/* ---------- Biglietto nell'hero ---------- */
.hero-ticket[b-1knun5km55] { flex: none; }
.tk-inner[b-1knun5km55] {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px;
    padding: 12px 26px; border-radius: 14px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 55%, #1a0610), color-mix(in oklab, var(--accent-2) 45%, #0c0620));
    box-shadow: 0 18px 40px -16px color-mix(in oklab, var(--accent) 80%, transparent), inset 0 1px 0 rgba(255,255,255,.25);
    -webkit-mask: radial-gradient(circle 9px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat;
    mask: radial-gradient(circle 9px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat;
    transform: rotate(-4deg);
    animation: tk-in-b-1knun5km55 1s var(--ease-spring) backwards .2s;
}
.tk-inner[b-1knun5km55]::before { content: ""; position: absolute; left: 14px; right: 14px; top: 50%; border-top: 1px dashed rgba(255,255,255,.25); pointer-events: none; opacity: 0; }
.tk-label[b-1knun5km55] { font-size: .66rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.tk-value[b-1knun5km55] { font-size: 2.2rem; font-weight: 700; line-height: 1; }
.tk-sub[b-1knun5km55] { font-size: .72rem; color: rgba(255,255,255,.7); }
@keyframes tk-in-b-1knun5km55 { from { transform: rotate(-30deg) translateY(-40px) scale(.6); opacity: 0; } }

.empty-card[b-1knun5km55] { margin-top: 10px; }

/* ---------- Sala cinema ---------- */
.theatre[b-1knun5km55] {
    position: relative; overflow: hidden; isolation: isolate;
    border-radius: 34px; padding: 18px 0 14px;
    background:
        radial-gradient(80% 60% at 50% 105%, color-mix(in oklab, var(--accent) 38%, transparent), transparent 70%),
        radial-gradient(60% 50% at 50% -10%, rgba(255, 236, 214, .10), transparent 70%),
        linear-gradient(180deg, rgba(8, 4, 18, .92), rgba(16, 5, 22, .88));
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 40px 90px -40px color-mix(in oklab, var(--accent) 70%, transparent), inset 0 1px 0 rgba(255,255,255,.06);
    margin-bottom: 22px;
}
.th-lights[b-1knun5km55] { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.spot[b-1knun5km55] {
    position: absolute; top: -8%; width: 46%; height: 115%;
    clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
    background: linear-gradient(to bottom, rgba(255, 240, 225, .30), rgba(255, 240, 225, .06) 60%, transparent 85%);
    filter: blur(14px); transform-origin: 50% 0; mix-blend-mode: screen;
    animation: spot-sway-b-1knun5km55 9s ease-in-out infinite alternate;
}
.spot.s1[b-1knun5km55] { left: -4%; background: linear-gradient(to bottom, color-mix(in oklab, var(--accent) 55%, transparent), transparent 80%); --rot: 18deg; }
.spot.s2[b-1knun5km55] { left: 27%; --rot: -4deg; animation-duration: 12s; opacity: .8; }
.spot.s3[b-1knun5km55] { right: -4%; background: linear-gradient(to bottom, color-mix(in oklab, var(--accent-2) 60%, transparent), transparent 80%); --rot: -18deg; animation-delay: -4s; }
@keyframes spot-sway-b-1knun5km55 { from { transform: rotate(var(--rot, 0deg)); } to { transform: rotate(calc(var(--rot, 0deg) * -0.6)); } }
.curtain[b-1knun5km55] {
    position: absolute; top: 0; bottom: 0; width: 7%;
    background:
        linear-gradient(90deg, rgba(0,0,0,.55), transparent 40%, rgba(0,0,0,.3)),
        repeating-linear-gradient(90deg, #3b0513 0, #8a1233 14px, #520a1d 26px, #3b0513 34px);
    box-shadow: 0 0 40px rgba(0,0,0,.6);
    animation: curtain-b-1knun5km55 7s ease-in-out infinite alternate;
    opacity: .9;
}
.curtain.l[b-1knun5km55] { left: 0; border-radius: 0 0 60% 0; transform-origin: left top; }
.curtain.r[b-1knun5km55] { right: 0; border-radius: 0 0 0 60%; transform-origin: right top; animation-delay: -3s; }
@keyframes curtain-b-1knun5km55 { from { transform: scaleX(1); } to { transform: scaleX(.82); } }

.th-head[b-1knun5km55] { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 16px; text-align: center; }
.th-head h2[b-1knun5km55] { font-size: clamp(1.25rem, 3.6vw, 1.7rem); display: flex; align-items: center; gap: 10px; text-shadow: 0 0 30px color-mix(in oklab, var(--accent) 70%, transparent); }
.th-live[b-1knun5km55] { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0 var(--accent); animation: live-b-1knun5km55 1.8s infinite; }
@keyframes live-b-1knun5km55 { 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); } 100% { box-shadow: 0 0 0 12px transparent; } }
.marquee[b-1knun5km55] { display: flex; gap: clamp(8px, 2.4vw, 16px); margin-bottom: 6px; }
.marquee span[b-1knun5km55] {
    width: 7px; height: 7px; border-radius: 50%; background: #ffd9a0;
    box-shadow: 0 0 8px 2px rgba(255, 200, 120, .7);
    animation: bulb-b-1knun5km55 1.8s ease-in-out infinite; animation-delay: calc(var(--b) * -.1s);
}
@keyframes bulb-b-1knun5km55 { 0%, 100% { opacity: 1; } 50% { opacity: .25; box-shadow: none; } }
@media (max-width: 520px) { .marquee span:nth-child(n+13)[b-1knun5km55] { display: none; } }

/* ---------- Coverflow ---------- */
.cf-stage[b-1knun5km55] {
    --cw: clamp(172px, 48vw, 244px);
    position: relative;
    height: calc(var(--cw) * 1.5 + 118px);
    perspective: 1100px; perspective-origin: 50% 35%;
    touch-action: pan-y; cursor: grab; outline: none;
    -webkit-user-select: none; user-select: none;
    margin-top: 6px;
}
.cf-stage:focus-visible[b-1knun5km55] { box-shadow: inset 0 0 0 2px color-mix(in oklab, var(--accent-2) 60%, transparent); border-radius: 24px; }
.cf-stage.cf-grabbing[b-1knun5km55] { cursor: grabbing; }
.cf-track[b-1knun5km55] { position: absolute; inset: 0; transform-style: preserve-3d; }
.cf-stage:not([data-ready]) .cf-item:not(:first-child)[b-1knun5km55] { opacity: 0; }
.cf-item[b-1knun5km55] {
    position: absolute; left: 50%; top: 16px; width: var(--cw); transform: translateX(-50%);
    transform-style: preserve-3d; will-change: transform, opacity;
    filter: brightness(calc(1 - min(var(--off, 0), 2) * .3)) saturate(calc(1 - min(var(--off, 0), 2) * .2));
}
.cf-card[b-1knun5km55] {
    position: relative; border-radius: 18px; container-type: inline-size;
    -webkit-box-reflect: below 10px linear-gradient(transparent 72%, rgba(0, 0, 0, .26));
    transition: box-shadow .5s var(--ease-out);
}
.cf-item[data-active] .cf-card[b-1knun5km55] { box-shadow: 0 0 0 1px color-mix(in oklab, var(--pc) 60%, transparent), 0 30px 80px -20px color-mix(in oklab, var(--pc) 85%, transparent); }
.cf-poster[b-1knun5km55] { display: block; border-radius: 18px; -webkit-user-drag: none; }
.cf-card[b-1knun5km55]  .poster { border-radius: 18px; }
.cf-card[b-1knun5km55]  .poster.in-cf .pg-type,
.cf-card[b-1knun5km55]  .poster.in-cf .pg-meta { display: none; }
.cf-card[b-1knun5km55]  .poster.in-cf .pg-title { bottom: auto; top: 17%; font-size: clamp(12px, 11cqi, 40px); }

.cf-top[b-1knun5km55] { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; justify-content: space-between; align-items: center; gap: 6px; pointer-events: none; z-index: 4; }
.cf-ago[b-1knun5km55] { font-size: .68rem; font-weight: 700; padding: 3px 8px; border-radius: 99px; background: rgba(0, 0, 0, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); white-space: nowrap; }

.cf-info[b-1knun5km55] {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
    padding: 34px 12px 12px; border-radius: 0 0 18px 18px;
    background: linear-gradient(to top, rgba(6, 3, 14, .96) 35%, rgba(6, 3, 14, .7) 70%, transparent);
    display: flex; flex-direction: column; gap: 6px;
}
.cf-title[b-1knun5km55] { font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
.cf-where[b-1knun5km55] { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.cf-sxe[b-1knun5km55] { font-weight: 700; font-size: 1.1rem; color: #fff; }
.cf-sxe i[b-1knun5km55] { font-style: normal; color: var(--accent); margin: 0 3px; }
.cf-min[b-1knun5km55] { font-size: .9rem; font-weight: 700; }
.cf-min .dim[b-1knun5km55] { font-weight: 500; }
.cf-prog[b-1knun5km55] { height: 6px; }
.cf-prog > span[b-1knun5km55] { background: linear-gradient(90deg, var(--pc), var(--accent)); }
.cf-actions[b-1knun5km55] { display: grid; grid-template-columns: 1fr auto; gap: 6px; margin-top: 4px; transition: opacity .35s var(--ease-out), transform .45s var(--ease-spring); }
.cf-actions .btn[b-1knun5km55] { height: 36px; padding: 0 10px; }
.cf-item:not([data-active]) .cf-actions[b-1knun5km55] { opacity: 0; transform: translateY(10px); pointer-events: none; }
@container (max-width: 210px) { .cf-actions .btn span[b-1knun5km55] { display: none; } .cf-title[b-1knun5km55] { font-size: .9rem; } }

.cf-nav[b-1knun5km55] {
    position: absolute; top: calc(16px + var(--cw) * .75); transform: translateY(-50%); z-index: 1100;
    width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--border-strong); cursor: pointer;
    background: rgba(10, 6, 24, .6); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    font-size: 1.8rem; line-height: 1; color: #fff; transition: transform .3s var(--ease-spring), background .2s;
}
.cf-nav:hover[b-1knun5km55] { background: color-mix(in oklab, var(--accent) 45%, rgba(10, 6, 24, .6)); transform: translateY(-50%) scale(1.1); }
.cf-nav.prev[b-1knun5km55] { left: max(9%, 20px); }
.cf-nav.next[b-1knun5km55] { right: max(9%, 20px); }

.cf-floor[b-1knun5km55] {
    position: absolute; left: 0; right: 0; bottom: 0; height: 120px; pointer-events: none; z-index: -1;
    background:
        radial-gradient(50% 70% at 50% 0%, color-mix(in oklab, var(--accent) 35%, transparent), transparent 75%),
        repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 60px);
    -webkit-mask: linear-gradient(to bottom, #000, transparent);
    mask: linear-gradient(to bottom, #000, transparent);
    transform: perspective(300px) rotateX(55deg); transform-origin: top;
}
.cf-dots[b-1knun5km55] { position: absolute; left: 0; right: 0; bottom: 6px; display: flex; justify-content: center; gap: 6px; z-index: 1100; flex-wrap: wrap; padding: 0 20px; }
.cf-dot[b-1knun5km55] { width: 8px; height: 8px; padding: 0; border-radius: 99px; border: 0; background: rgba(255, 255, 255, .25); cursor: pointer; transition: width .4s var(--ease-spring), background .3s; }
.cf-dot[data-on][b-1knun5km55] { width: 26px; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }

/* ---------- KPI ---------- */
.kpis[b-1knun5km55] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.kpi-card[b-1knun5km55] { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px; overflow: hidden; transition: border-color .3s, transform .4s var(--ease-spring); }
.kpi-card:hover[b-1knun5km55] { border-color: color-mix(in oklab, var(--accent) 45%, var(--border)); }
.kpi-ico[b-1knun5km55] { position: absolute; right: -6px; top: -10px; font-size: 3.4rem; opacity: .13; transform: rotate(-12deg); pointer-events: none; }
.kpi-label[b-1knun5km55] { font-size: .72rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.kpi-value[b-1knun5km55] { font-size: 1.9rem; font-weight: 700; line-height: 1.15; }
.kpi-value small[b-1knun5km55] { font-size: .9rem; color: var(--text-2); }
.kpi-pf[b-1knun5km55] { display: flex; align-items: center; min-height: 2.2rem; font-size: 1rem; }
@media (max-width: 760px) { .kpis[b-1knun5km55] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .kpi-value[b-1knun5km55] { font-size: 1.55rem; } }

/* ---------- Filtri ---------- */
.filters[b-1knun5km55] { display: flex; flex-direction: column; gap: 12px; padding: 14px; margin-bottom: 18px; border-radius: 24px; }
.f-row[b-1knun5km55] { display: flex; gap: 8px; align-items: center; }
.f-search[b-1knun5km55] {
    flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px;
    border-radius: 14px; background: rgba(0, 0, 0, .28); border: 1px solid var(--border); color: var(--text-2);
    transition: border-color .2s, box-shadow .2s;
}
.f-search:focus-within[b-1knun5km55] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 25%, transparent); }
.f-search input[b-1knun5km55] { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; outline: none; }
.f-sort[b-1knun5km55] { width: auto; flex: none; max-width: 42vw; height: 44px; }
.fav-chip[b-1knun5km55] { height: 44px; flex: none; }
.fav-chip.active[b-1knun5km55] { background: color-mix(in oklab, var(--accent) 40%, transparent); }
.f-scroll[b-1knun5km55] { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 2px 14px; align-items: center; }
.f-scroll[b-1knun5km55]::-webkit-scrollbar { display: none; }
.f-scroll > *[b-1knun5km55] { flex: none; }
.f-status button[b-1knun5km55] { display: inline-flex; align-items: center; gap: 6px; }
.f-status .cnt[b-1knun5km55] { font-size: .72rem; opacity: .6; font-variant-numeric: tabular-nums; }
.sdot[b-1knun5km55] { width: 8px; height: 8px; border-radius: 50%; background: var(--sc, var(--accent)); box-shadow: 0 0 8px var(--sc, var(--accent)); flex: none; display: inline-block; }
.f-sep[b-1knun5km55] { width: 1px; height: 22px; background: var(--border-strong); margin: 0 4px; }
.pf-chip .pf-dot[b-1knun5km55] { width: 10px; height: 10px; border-radius: 50%; background: linear-gradient(135deg, var(--pa), var(--pb)); box-shadow: 0 0 8px color-mix(in oklab, var(--pa) 70%, transparent); }
.pf-chip.active[b-1knun5km55] { background: linear-gradient(135deg, color-mix(in oklab, var(--pa) 45%, transparent), color-mix(in oklab, var(--pb) 30%, transparent)); border-color: color-mix(in oklab, var(--pa) 70%, transparent); }

/* ---------- Griglia ---------- */
.lib-head[b-1knun5km55] { margin: 6px 0 14px; }
.lib-title[b-1knun5km55] { font-size: 1.3rem; }
.lib-grid[b-1knun5km55] { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 26px 18px; perspective: 1400px; }
@media (max-width: 560px) { .lib-grid[b-1knun5km55] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; } }

.tile[b-1knun5km55] { position: relative; border-radius: 18px; transform-style: preserve-3d; }
.tile-poster[b-1knun5km55] { position: relative; transform-style: preserve-3d; border-radius: 16px; transition: box-shadow .5s var(--ease-out); }
.tile-poster[b-1knun5km55]  .poster { transition: box-shadow .5s var(--ease-out); }
.tile:hover .tile-poster[b-1knun5km55]  .poster { box-shadow: 0 0 0 1px color-mix(in oklab, var(--pc) 60%, transparent) inset, 0 30px 60px -18px color-mix(in oklab, var(--pc) 80%, black); }
.tile-poster[b-1knun5km55]::after {
    content: ""; position: absolute; left: 10%; right: 10%; bottom: -14px; height: 24px; border-radius: 50%; z-index: -1;
    background: color-mix(in oklab, var(--pc) 70%, transparent); filter: blur(16px); opacity: .45; transition: opacity .4s;
}
.tile:hover .tile-poster[b-1knun5km55]::after { opacity: .9; }
.tile-top[b-1knun5km55] { position: absolute; top: 8px; left: 8px; transform: translateZ(34px); pointer-events: none; }
.tile-progress[b-1knun5km55] {
    position: absolute; left: 8px; right: 8px; bottom: 8px; transform: translateZ(26px);
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 6px;
    padding: 7px 9px 8px; border-radius: 12px;
    background: rgba(6, 3, 14, .72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, .1);
    pointer-events: none;
}
.tile-sxe[b-1knun5km55] { font-weight: 700; font-size: .8rem; }
.tile-min[b-1knun5km55] { font-size: .75rem; color: var(--text-2); font-weight: 600; }
.tile-bar[b-1knun5km55] { flex-basis: 100%; height: 4px; border-radius: 9px; background: rgba(255, 255, 255, .15); overflow: hidden; }
.tile-bar span[b-1knun5km55] { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--pc), var(--accent)); box-shadow: 0 0 10px var(--accent); }
.tile-done[b-1knun5km55] {
    position: absolute; right: 10px; bottom: 10px; width: 30px; height: 30px; border-radius: 50%; transform: translateZ(30px);
    display: grid; place-items: center; font-weight: 800; color: #052e1f; background: var(--success);
    box-shadow: 0 6px 16px -4px rgba(52, 211, 153, .7); pointer-events: none;
}
.tile-meta[b-1knun5km55] { padding: 12px 4px 0; display: flex; flex-direction: column; gap: 3px; }
.tile-title[b-1knun5km55] { font-weight: 700; font-family: var(--font-display); }
.tile-sub[b-1knun5km55] { font-size: .78rem; color: var(--text-2); display: flex; align-items: center; gap: 6px; }
.tile-rating[b-1knun5km55] { font-size: .8rem; font-weight: 700; color: #FDE68A; }
.tile-rating .star[b-1knun5km55] { filter: drop-shadow(0 0 6px rgba(251, 191, 36, .7)); }
.tile-link[b-1knun5km55] { position: absolute; inset: 0; z-index: 5; border-radius: inherit; }
.tile-link:focus-visible[b-1knun5km55] { outline: 2px solid var(--accent-2); outline-offset: 4px; }
.tile-fav[b-1knun5km55] {
    position: absolute; top: 8px; right: 8px; z-index: 6; transform: translateZ(40px);
    width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); cursor: pointer;
    background: rgba(6, 3, 14, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    color: rgba(255, 255, 255, .55); font-size: 1rem; line-height: 1;
    transition: transform .35s var(--ease-spring), color .2s, background .2s;
}
.tile-fav:hover[b-1knun5km55] { color: #fff; transform: translateZ(40px) scale(1.12); }
.tile-fav.on[b-1knun5km55] { color: #fff; background: linear-gradient(135deg, var(--accent), #F472B6); border-color: transparent; box-shadow: 0 6px 18px -4px var(--accent); animation: heart-b-1knun5km55 .5s var(--ease-spring); }
@keyframes heart-b-1knun5km55 { 0% { transform: translateZ(40px) scale(.6); } 60% { transform: translateZ(40px) scale(1.3); } 100% { transform: translateZ(40px) scale(1); } }

@media (prefers-reduced-motion: reduce) {
    .spot[b-1knun5km55], .curtain[b-1knun5km55], .marquee span[b-1knun5km55], .th-live[b-1knun5km55] { animation: none; }
}

/* Info della card coverflow: fuori da .cf-card così il riflesso mostra solo il poster */
.cf-item > .cf-info[b-1knun5km55] { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; container-type: inline-size; }

/* Tile: il tipo generato si sposta accanto al badge piattaforma, il titolo sopra la barra di avanzamento */
.tile-poster[b-1knun5km55]  .poster.has-pf .pg-type { padding-left: 26px; }
.tile-poster[b-1knun5km55]  .poster.has-prog .pg-title { bottom: 30%; }
.tile-poster[b-1knun5km55]  .poster.has-prog .pg-meta { display: none; }

@media (max-width: 560px) {
    .f-row[b-1knun5km55] { flex-wrap: wrap; }
    .f-search[b-1knun5km55] { flex-basis: 100%; }
    .f-sort[b-1knun5km55] { flex: 1 1 auto; max-width: none; }
}
/* /Components/Pages/Media/MediaStatsPage.razor.rz.scp.css */
.st-kpis[b-ikh8zff4sy] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; perspective: 1200px; }
@media (max-width: 820px) { .st-kpis[b-ikh8zff4sy] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.st-kpi[b-ikh8zff4sy] { display: flex; flex-direction: column; gap: 2px; overflow: hidden; padding: 16px 18px; height: 100%; }
.st-kpi-ico[b-ikh8zff4sy] { position: absolute; right: -4px; top: -12px; font-size: 3.6rem; opacity: .12; transform: rotate(-12deg) translateZ(30px); pointer-events: none; }
.st-kpi-l[b-ikh8zff4sy] { font-size: .72rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.st-kpi-v[b-ikh8zff4sy] { font-size: clamp(1.6rem, 4.2vw, 2.3rem); font-weight: 700; line-height: 1.15; transform: translateZ(24px); }
.st-kpi-v small[b-ikh8zff4sy] { font-size: .9rem; color: var(--text-2); margin-left: 2px; }

.st-grid[b-ikh8zff4sy] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 820px) { .st-grid[b-ikh8zff4sy] { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Barre 3D ---------- */
.bars3d[b-ikh8zff4sy] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: end; height: 230px; padding-top: 10px; }
.b3[b-ikh8zff4sy] { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 6px; min-width: 0; }
.b3-n[b-ikh8zff4sy] { font-weight: 700; font-size: 1.1rem; }
.b3-col[b-ikh8zff4sy] {
    --d: 12px;
    position: relative; width: min(46px, 70%); height: max(6px, calc(var(--h) * .72));
    transform-origin: bottom; animation: b3-grow-b-ikh8zff4sy 1.2s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 90ms + .2s);
}
.b3-front[b-ikh8zff4sy] { position: absolute; inset: 0; border-radius: 6px 6px 3px 3px; background: linear-gradient(180deg, color-mix(in oklab, var(--c) 90%, white), color-mix(in oklab, var(--c) 60%, black)); box-shadow: 0 0 24px -4px var(--c); }
.b3-top[b-ikh8zff4sy] { position: absolute; left: 0; right: 0; top: 0; height: var(--d); transform-origin: bottom; transform: translateY(-100%) skewX(-45deg) translateX(calc(var(--d) / 2)); background: color-mix(in oklab, var(--c) 60%, white); border-radius: 4px 4px 0 0; opacity: .9; }
.b3-side[b-ikh8zff4sy] { position: absolute; top: 0; bottom: 0; right: 0; width: var(--d); transform-origin: left; transform: translateX(100%) skewY(-45deg) translateY(calc(var(--d) / -2)); background: color-mix(in oklab, var(--c) 45%, black); }
.b3-l[b-ikh8zff4sy] { font-size: .7rem; color: var(--text-2); text-align: center; line-height: 1.2; overflow-wrap: anywhere; }
@keyframes b3-grow-b-ikh8zff4sy { from { transform: scaleY(0); } }

/* ---------- Piattaforme ---------- */
.pf-wrap[b-ikh8zff4sy] { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 18px; align-items: center; }
@media (max-width: 480px) { .pf-wrap[b-ikh8zff4sy] { grid-template-columns: 1fr; justify-items: center; } .pf-list[b-ikh8zff4sy] { width: 100%; } }
.donut[b-ikh8zff4sy] { position: relative; width: 190px; height: 190px; }
.donut canvas[b-ikh8zff4sy] { width: 100% !important; height: 100% !important; }
.donut-c[b-ikh8zff4sy] { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; pointer-events: none; }
.pf-list[b-ikh8zff4sy] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pf-list li[b-ikh8zff4sy] { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--surface); }
.pf-sw[b-ikh8zff4sy] { width: 12px; height: 12px; border-radius: 4px; background: var(--pa); box-shadow: 0 0 10px var(--pa); flex: none; }

/* ---------- Attività ---------- */
.act[b-ikh8zff4sy] { display: grid; grid-template-columns: repeat(30, minmax(0, 1fr)); gap: 3px; align-items: end; height: 110px; }
.act-col[b-ikh8zff4sy] { height: 100%; display: flex; align-items: flex-end; }
.act-col span[b-ikh8zff4sy] {
    display: block; width: 100%; height: max(4px, var(--h)); border-radius: 4px 4px 2px 2px;
    background: rgba(255, 255, 255, .08); transform-origin: bottom;
    animation: b3-grow-b-ikh8zff4sy .9s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 25ms + .2s);
}
.act-col.on span[b-ikh8zff4sy] { background: linear-gradient(180deg, var(--accent-2), var(--accent)); box-shadow: 0 0 12px -2px var(--accent); }
.b3.zero .b3-top[b-ikh8zff4sy], .b3.zero .b3-side[b-ikh8zff4sy] { display: none; }
.b3.zero .b3-front[b-ikh8zff4sy] { opacity: .35; box-shadow: none; }
/* /Components/Pages/Media/PlatformBadge.razor.rz.scp.css */
.pf[b-05pfenq8sa] {
    display: inline-flex; align-items: center; gap: 6px; max-width: 100%;
    height: 24px; padding: 0 9px 0 3px; border-radius: 99px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--pa) 38%, rgba(10, 8, 30, .7)), rgba(10, 8, 30, .72));
    border: 1px solid color-mix(in oklab, var(--pa) 55%, transparent);
    box-shadow: 0 4px 14px -6px color-mix(in oklab, var(--pa) 80%, transparent);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    font-size: .72rem; font-weight: 700; color: #fff; white-space: nowrap;
}
.pf.compact[b-05pfenq8sa] { padding: 0 3px; }
.pf-logo[b-05pfenq8sa] {
    min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px;
    display: grid; place-items: center;
    background: linear-gradient(135deg, var(--pa), var(--pb)); color: var(--pf);
    font-family: var(--font-display); font-size: .62rem; font-weight: 800; letter-spacing: -.01em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}
.pf-name[b-05pfenq8sa] { overflow: hidden; text-overflow: ellipsis; }
/* /Components/Pages/Media/Poster.razor.rz.scp.css */
/* Poster 2:3 — reale o generato. La dimensione la decide il contenitore. */
.poster[b-nlvfmzmthk] {
    --pc: #E11D48;
    --pc-2: color-mix(in oklch, var(--pc) 55%, #7C3AED);
    --pc-dark: color-mix(in oklab, var(--pc) 22%, #05040f);
    position: relative;
    aspect-ratio: 2 / 3;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    isolation: isolate;
    container-type: inline-size;
    background: var(--pc-dark);
    box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 0 0 1px rgba(255,255,255,.08) inset, 0 24px 50px -18px rgba(0,0,0,.85);
    user-select: none;
    -webkit-user-select: none;
}

/* L'immagine copre il poster generato; se è rotta resta trasparente (alt vuoto, niente testo). */
.poster img[b-nlvfmzmthk] { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; color: transparent; font-size: 0; }

/* ---------- Generato ---------- */
.pg-bg[b-nlvfmzmthk] {
    position: absolute; inset: 0; z-index: -2;
    background:
        radial-gradient(120% 70% at 20% 0%, color-mix(in oklab, var(--pc) 85%, white 5%) 0%, transparent 60%),
        radial-gradient(90% 60% at 100% 100%, var(--pc-2) 0%, transparent 70%),
        linear-gradient(170deg, color-mix(in oklab, var(--pc) 70%, black) 0%, var(--pc-dark) 70%, #05040f 100%);
}
.pg-art[b-nlvfmzmthk] { position: absolute; inset: 0; z-index: -1; overflow: hidden; }

/* v0: sole retrò con linee */
.pg-sun[b-nlvfmzmthk] {
    position: absolute; left: 50%; top: 22%; width: 78%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%;
    background: linear-gradient(180deg, #ffd6a5 0%, color-mix(in oklab, var(--pc) 70%, #ffb86b) 45%, var(--pc) 100%);
    box-shadow: 0 0 60px 10px color-mix(in oklab, var(--pc) 60%, transparent);
    -webkit-mask: linear-gradient(180deg, #000 0 58%, transparent 58% 62%, #000 62% 70%, transparent 70% 76%, #000 76% 82%, transparent 82% 90%, #000 90% 94%, transparent 94%);
    mask: linear-gradient(180deg, #000 0 58%, transparent 58% 62%, #000 62% 70%, transparent 70% 76%, #000 76% 82%, transparent 82% 90%, #000 90% 94%, transparent 94%);
}
.pg-lines[b-nlvfmzmthk] {
    position: absolute; left: -10%; right: -10%; bottom: 0; height: 42%;
    background:
        repeating-linear-gradient(90deg, color-mix(in oklab, var(--pc) 55%, transparent) 0 1px, transparent 1px 12%),
        repeating-linear-gradient(180deg, color-mix(in oklab, var(--pc) 55%, transparent) 0 1px, transparent 1px 16%);
    transform: perspective(160px) rotateX(58deg); transform-origin: bottom;
    -webkit-mask: linear-gradient(to top, #000 40%, transparent);
    mask: linear-gradient(to top, #000 40%, transparent);
    opacity: .8;
}

/* v1: iniziale gigante */
.pg-letter[b-nlvfmzmthk] {
    position: absolute; right: -8%; top: -8%;
    font-family: var(--font-display); font-weight: 700; font-size: 118cqi; line-height: .9;
    color: transparent;
    -webkit-text-stroke: 1.5px color-mix(in oklab, var(--pc) 45%, white);
    background: linear-gradient(160deg, color-mix(in oklab, var(--pc) 80%, white) 0%, transparent 70%);
    -webkit-background-clip: text; background-clip: text;
    opacity: .75;
}

/* v2: raggi + sfera */
.pg-rays[b-nlvfmzmthk] {
    position: absolute; left: 50%; bottom: -30%; width: 220%; aspect-ratio: 1; transform: translateX(-50%);
    background: repeating-conic-gradient(from 0deg, color-mix(in oklab, var(--pc) 45%, transparent) 0 4deg, transparent 4deg 12deg);
    -webkit-mask: radial-gradient(closest-side, #000 20%, transparent 75%);
    mask: radial-gradient(closest-side, #000 20%, transparent 75%);
    animation: pg-spin-b-nlvfmzmthk 60s linear infinite;
}
.pg-orb[b-nlvfmzmthk] {
    position: absolute; left: 50%; top: 38%; width: 44%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fff 0%, color-mix(in oklab, var(--pc) 60%, white) 18%, var(--pc) 55%, var(--pc-dark) 100%);
    box-shadow: 0 0 50px color-mix(in oklab, var(--pc) 70%, transparent), inset -8px -12px 24px rgba(0,0,0,.45);
}
@keyframes pg-spin-b-nlvfmzmthk { to { transform: translateX(-50%) rotate(360deg); } }

/* v3: bande diagonali + cornice */
.pg-bands[b-nlvfmzmthk] {
    position: absolute; inset: -20%;
    background: repeating-linear-gradient(125deg, transparent 0 14%, color-mix(in oklab, var(--pc) 50%, transparent) 14% 17%, transparent 17% 24%, color-mix(in oklab, var(--pc-2) 40%, transparent) 24% 25%);
}
.pg-frame[b-nlvfmzmthk] { position: absolute; inset: 7%; border: 1px solid rgba(255,255,255,.35); border-radius: 6px; box-shadow: inset 0 0 40px rgba(0,0,0,.35); }

.pg-type[b-nlvfmzmthk] {
    position: absolute; top: 7%; left: 8%; right: 8%;
    font-size: max(8px, 5.2cqi); font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
    color: rgba(255,255,255,.8);
}
.pg-title[b-nlvfmzmthk] {
    position: absolute; left: 8%; right: 8%; bottom: 13%;
    font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
    font-size: clamp(12px, 12.5cqi, 64px); line-height: .95; letter-spacing: -.01em;
    color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.55), 0 0 1px rgba(0,0,0,.6);
    display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
    overflow-wrap: anywhere;
}
.pg-meta[b-nlvfmzmthk] {
    position: absolute; left: 8%; right: 8%; bottom: 5.5%; display: flex; gap: 8px; flex-wrap: nowrap; overflow: hidden;
    font-size: max(8px, 4.6cqi); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); white-space: nowrap;
}
.pg-meta span + span[b-nlvfmzmthk]::before { content: "·"; margin-right: 8px; }

.pg-grain[b-nlvfmzmthk] {
    position: absolute; inset: 0; pointer-events: none; mix-blend-mode: overlay; opacity: .45;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* Luce che scorre sul poster (sheen) */
.poster-sheen[b-nlvfmzmthk] {
    position: absolute; inset: 0; pointer-events: none; z-index: 2;
    background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.22) 45%, rgba(255,255,255,.05) 52%, transparent 60%);
    background-size: 250% 100%; background-position: 130% 0;
    transition: background-position 1.1s var(--ease-out);
    mix-blend-mode: screen;
}
.poster[b-nlvfmzmthk]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 3; box-shadow: inset 0 0 0 1px rgba(255,255,255,.1), inset 0 -40px 60px -30px rgba(0,0,0,.6); }
:hover > .poster .poster-sheen[b-nlvfmzmthk], .poster:hover .poster-sheen[b-nlvfmzmthk] { background-position: -30% 0; }

@media (prefers-reduced-motion: reduce) { .pg-rays[b-nlvfmzmthk] { animation: none; } }
/* /Components/Pages/Media/ProgressEditor.razor.rz.scp.css */
.pe[b-b5jia0j85l] { display: flex; flex-direction: column; gap: 18px; }

.pe-head[b-b5jia0j85l] { display: flex; align-items: center; gap: 14px; }
.pe-mini[b-b5jia0j85l] { width: 54px; flex: none; transform: perspective(600px) rotateY(-14deg); filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .6)); }
.pe-mini[b-b5jia0j85l]  .poster { border-radius: 9px; }
.pe-title[b-b5jia0j85l] { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; }

/* Stepper giganti */
.pe-steppers[b-b5jia0j85l] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.stepper[b-b5jia0j85l] {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 14px 8px 10px; border-radius: 22px;
    background: radial-gradient(120% 90% at 50% 0%, color-mix(in oklab, var(--pc, var(--accent)) 26%, transparent), rgba(0, 0, 0, .25));
    border: 1px solid var(--border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}
.st-label[b-b5jia0j85l] { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); }
.st-sub[b-b5jia0j85l] { font-size: .75rem; color: var(--text-3); }
.st-row[b-b5jia0j85l] { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; }
.st-val[b-b5jia0j85l] {
    min-width: 2ch; text-align: center; font-size: clamp(2.4rem, 11vw, 3.2rem); font-weight: 700; line-height: 1;
    background: linear-gradient(180deg, #fff 30%, color-mix(in oklab, var(--accent) 60%, white));
    -webkit-background-clip: text; background-clip: text; color: transparent;
    animation: st-pop-b-b5jia0j85l .45s var(--ease-spring);
}
@keyframes st-pop-b-b5jia0j85l { from { transform: perspective(300px) rotateX(-70deg) translateY(-8px); opacity: 0; } to { transform: none; opacity: 1; } }
.st-btn[b-b5jia0j85l] {
    width: 48px; height: 48px; flex: none; border-radius: 16px; border: 1px solid var(--border-strong);
    background: linear-gradient(160deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .03));
    font-size: 1.6rem; font-weight: 600; line-height: 1; cursor: pointer; color: var(--text);
    transition: transform .25s var(--ease-spring), background .2s;
    touch-action: manipulation;
}
.st-btn:hover[b-b5jia0j85l] { background: color-mix(in oklab, var(--accent) 35%, transparent); }
.st-btn:active[b-b5jia0j85l] { transform: scale(.88); }
.st-btn[disabled][b-b5jia0j85l] { opacity: .35; pointer-events: none; }
.stepper[b-b5jia0j85l] { min-width: 0; }
@media (max-width: 480px) {
    .stepper[b-b5jia0j85l] { padding: 12px 6px 8px; }
    .st-row[b-b5jia0j85l] { gap: 2px; justify-content: space-between; }
    .st-btn[b-b5jia0j85l] { width: 40px; height: 40px; border-radius: 13px; font-size: 1.35rem; }
    .st-val[b-b5jia0j85l] { font-size: clamp(2rem, 9vw, 2.6rem); }
}

/* Minuto */
.pe-minute[b-b5jia0j85l] { display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: 22px; background: rgba(0, 0, 0, .22); border: 1px solid var(--border); }
.pe-clock[b-b5jia0j85l] { font-size: 1.05rem; }
.pe-clock strong[b-b5jia0j85l] { font-size: 1.6rem; }
.pe-range[b-b5jia0j85l] {
    -webkit-appearance: none; appearance: none; width: 100%; height: 36px; background: transparent; cursor: pointer; margin: 0;
    touch-action: pan-y;
}
.pe-range[b-b5jia0j85l]::-webkit-slider-runnable-track {
    height: 12px; border-radius: 99px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2)) 0 0 / var(--v) 100% no-repeat, rgba(255, 255, 255, .1);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .5);
}
.pe-range[b-b5jia0j85l]::-moz-range-track { height: 12px; border-radius: 99px; background: rgba(255, 255, 255, .1); }
.pe-range[b-b5jia0j85l]::-moz-range-progress { height: 12px; border-radius: 99px; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
.pe-range[b-b5jia0j85l]::-webkit-slider-thumb {
    -webkit-appearance: none; width: 30px; height: 30px; margin-top: -9px; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fff, #ffe4ec 40%, var(--accent));
    box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent) 35%, transparent), 0 8px 20px rgba(0, 0, 0, .5);
    transition: transform .2s var(--ease-spring);
}
.pe-range:active[b-b5jia0j85l]::-webkit-slider-thumb { transform: scale(1.18); }
.pe-range[b-b5jia0j85l]::-moz-range-thumb { width: 28px; height: 28px; border: 0; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, var(--accent)); box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent) 35%, transparent); }
.pe-bumps[b-b5jia0j85l] { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.pe-bumps .btn[b-b5jia0j85l] { padding: 0; font-variant-numeric: tabular-nums; }

.pe-finish[b-b5jia0j85l] { font-size: 1rem; box-shadow: 0 14px 30px -14px color-mix(in oklab, var(--success) 80%, transparent); }
/* /Components/Pages/Media/RatingStars.razor.rz.scp.css */
.stars[b-eygdkao789] {
    --s: clamp(22px, 7.2vw, 30px);
    --gap: 3px;
    display: inline-flex;
    flex-direction: row-reverse; /* il DOM va da 10 a 0.5 → i selettori "~" colorano le stelle a sinistra */
    align-items: center;
    max-width: 100%;
}
.stars.sm[b-eygdkao789] { --s: 15px; --gap: 1px; }
.seg[b-eygdkao789] {
    width: calc(var(--s) / 2);
    height: var(--s);
    padding: 0; border: 0; margin: 0;
    background: rgba(255, 255, 255, .16);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.2l2.95 6.28 6.85.8-5.07 4.7 1.36 6.77L12 17.3l-6.09 3.45 1.36-6.77L2.2 9.28l6.85-.8z'/></svg>") no-repeat;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.2l2.95 6.28 6.85.8-5.07 4.7 1.36 6.77L12 17.3l-6.09 3.45 1.36-6.77L2.2 9.28l6.85-.8z'/></svg>") no-repeat;
    -webkit-mask-size: var(--s) var(--s);
    mask-size: var(--s) var(--s);
    transition: background .25s, transform .3s var(--ease-spring);
    cursor: pointer;
}
.seg.l[b-eygdkao789] { -webkit-mask-position: 0 0; mask-position: 0 0; margin-left: var(--gap); }
.seg.r[b-eygdkao789] { -webkit-mask-position: 100% 0; mask-position: 100% 0; }
.stars.ro .seg[b-eygdkao789] { cursor: default; }
.seg.on[b-eygdkao789] { background: linear-gradient(180deg, #FDE68A, #F59E0B 60%, #E11D48); filter: drop-shadow(0 0 6px rgba(251, 191, 36, .6)); }

@media (hover: hover) {
    .stars:not(.ro):hover .seg[b-eygdkao789] { background: rgba(255, 255, 255, .16); filter: none; }
    .stars:not(.ro) .seg:hover[b-eygdkao789],
    .stars:not(.ro) .seg:hover ~ .seg[b-eygdkao789] { background: linear-gradient(180deg, #fff, #FBBF24); filter: drop-shadow(0 0 8px rgba(251, 191, 36, .7)); }
}
.stars:not(.ro) .seg:active[b-eygdkao789] { transform: scale(1.25); }
.seg:focus-visible[b-eygdkao789] { outline: 2px solid var(--accent-2); outline-offset: 1px; }
/* /Components/Pages/Note/NoteCard.razor.rz.scp.css */
/* =========================================================
   Note — foglietto nella bacheca
   ========================================================= */
.note-card[b-crz64pgosx] {
    --n-a: #2b2860; --n-b: #171538; --n-ink: #f4f3ff; --n-link: #1d4ed8; --n-soft: rgba(0, 0, 0, .09);
    position: relative; display: block; overflow: hidden;
    padding: 14px 14px 12px; border-radius: 20px;
    color: var(--n-ink);
    background:
        radial-gradient(120% 60% at 0% 0%, rgba(255, 255, 255, .35), transparent 55%),
        linear-gradient(160deg, var(--n-a), var(--n-b));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 1px 2px rgba(0, 0, 0, .3), 0 18px 34px -18px rgba(0, 0, 0, .9);
    cursor: pointer; outline: none;
    user-select: none; -webkit-user-select: none; -webkit-touch-callout: none;
    transform: perspective(900px) rotate(var(--rot, 0deg)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateZ(var(--lift, 0px));
    transition: transform .5s var(--ease-spring), box-shadow .35s var(--ease-out);
    contain: layout paint;
}
.note-card.is-tilting[b-crz64pgosx] { --rot: 0deg; transition: transform .08s linear, box-shadow .3s; }
.note-card:hover[b-crz64pgosx] { --rot: 0deg; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 2px 4px rgba(0, 0, 0, .3), 0 30px 50px -20px rgba(0, 0, 0, .95); }
.note-card:focus-visible[b-crz64pgosx] { box-shadow: 0 0 0 3px var(--accent-2), 0 18px 34px -18px rgba(0, 0, 0, .9); }
.note-card:active[b-crz64pgosx] { transform: perspective(900px) scale(.975); }
.note-card.is-pressed[b-crz64pgosx] { transform: perspective(900px) scale(.95) translateZ(-10px); transition-duration: .15s; }

/* Vetro scuro predefinito */
.note-card.is-default[b-crz64pgosx] {
    --n-link: #93c5fd; --n-soft: rgba(255, 255, 255, .09);
    background: linear-gradient(160deg, rgba(62, 56, 130, .78), rgba(22, 19, 56, .86));
    border: 1px solid var(--border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 18px 34px -18px rgba(0, 0, 0, .9);
}

/* Angolo piegato della carta */
.note-card.is-paper[b-crz64pgosx]::before {
    content: ""; position: absolute; right: 0; bottom: 0; width: 20px; height: 20px; z-index: 2; pointer-events: none;
    background: linear-gradient(135deg, rgba(0, 0, 0, .16) 0 50%, rgba(255, 255, 255, .7) 50% 100%);
    border-top-left-radius: 7px; box-shadow: -2px -2px 5px rgba(0, 0, 0, .08);
}

/* ---------- Foto ---------- */
.nc-photos[b-crz64pgosx] { display: grid; gap: 2px; margin: -14px -14px 10px; grid-template-columns: 1fr 1fr; }
.nc-photos.n1[b-crz64pgosx] { grid-template-columns: 1fr; }
.nc-photos img[b-crz64pgosx] { width: 100%; height: 100%; object-fit: cover; background: rgba(0, 0, 0, .15); max-height: 260px; }
.nc-photos.n3 img:first-child[b-crz64pgosx] { grid-column: span 2; aspect-ratio: 2 / 1 !important; }
.nc-more-photos[b-crz64pgosx] {
    position: absolute; right: 8px; top: 8px; z-index: 1; padding: 2px 9px; border-radius: 99px;
    background: rgba(0, 0, 0, .55); color: white; font-size: .75rem; font-weight: 700;
}

/* ---------- Pulsanti ---------- */
.nc-pin[b-crz64pgosx], .nc-more[b-crz64pgosx] {
    position: absolute; z-index: 3; display: grid; place-items: center;
    border: 0; border-radius: 12px; cursor: pointer; color: inherit;
    background: var(--n-soft); backdrop-filter: blur(6px);
    opacity: 0; transition: opacity .2s, transform .3s var(--ease-spring), background .2s;
}
.nc-pin[b-crz64pgosx] { top: 8px; right: 8px; width: 30px; height: 30px; font-size: .9rem; }
.nc-pin span[b-crz64pgosx] { filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.nc-pin.on[b-crz64pgosx] { opacity: 1; background: transparent; }
.nc-pin.on span[b-crz64pgosx] { filter: none; opacity: 1; }
.nc-more[b-crz64pgosx] { right: 6px; bottom: 6px; width: 32px; height: 28px; }
.note-card:hover .nc-pin[b-crz64pgosx], .note-card:hover .nc-more[b-crz64pgosx], .note-card:focus-within .nc-pin[b-crz64pgosx], .note-card:focus-within .nc-more[b-crz64pgosx] { opacity: 1; }
.nc-pin:hover[b-crz64pgosx], .nc-more:hover[b-crz64pgosx] { transform: scale(1.12); background: color-mix(in oklab, var(--n-ink) 16%, transparent); }
@media (hover: none) { .nc-more[b-crz64pgosx] { display: none; } }

/* ---------- Contenuto ---------- */
.nc-content[b-crz64pgosx] { position: relative; }
.nc-title[b-crz64pgosx] { font-family: var(--font-display); font-size: 1.02rem; font-weight: 700; line-height: 1.25; margin: 0 26px 6px 0; overflow-wrap: anywhere; }
.nc-body[b-crz64pgosx] { font-size: .9rem; line-height: 1.45; overflow-wrap: anywhere; opacity: .93; }
.nc-empty[b-crz64pgosx] { margin: 0; font-style: italic; opacity: .55; font-size: .88rem; }

.md[b-crz64pgosx]  p { margin: 0 0 6px; }
.md[b-crz64pgosx]  p:last-child { margin-bottom: 0; }
.md[b-crz64pgosx]  ul, .md[b-crz64pgosx]  ol { margin: 0 0 6px; padding-left: 20px; }
.md[b-crz64pgosx]  li { margin: 1px 0; }
.md[b-crz64pgosx]  .md-h1 { font-family: var(--font-display); font-size: 1rem; font-weight: 700; margin: 4px 0 4px; }
.md[b-crz64pgosx]  .md-h2 { font-family: var(--font-display); font-size: .92rem; font-weight: 700; margin: 4px 0 3px; opacity: .9; }
.md[b-crz64pgosx]  a { color: var(--n-link); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.md[b-crz64pgosx]  code { font-family: ui-monospace, "Cascadia Code", monospace; font-size: .85em; padding: 1px 5px; border-radius: 5px; background: var(--n-soft); }
.md[b-crz64pgosx]  blockquote { margin: 0 0 6px; padding-left: 10px; border-left: 3px solid color-mix(in oklab, var(--n-ink) 35%, transparent); opacity: .85; }
.md[b-crz64pgosx]  hr { border: 0; border-top: 1px dashed color-mix(in oklab, var(--n-ink) 35%, transparent); margin: 8px 0; }
.md[b-crz64pgosx]  .md-more { opacity: .5; }

/* ---------- Checklist ---------- */
.nc-items[b-crz64pgosx] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; font-size: .9rem; }
.nc-items li[b-crz64pgosx] { display: flex; align-items: flex-start; gap: 8px; overflow-wrap: anywhere; line-height: 1.35; }
.nc-check[b-crz64pgosx] {
    flex: none; width: 17px; height: 17px; margin-top: 1px; padding: 0; cursor: pointer;
    border: 2px solid currentColor; border-radius: 6px; background: transparent; opacity: .6;
    transition: transform .25s var(--ease-spring), opacity .2s, background .2s;
}
.nc-check:hover[b-crz64pgosx] { opacity: 1; transform: scale(1.15); background: var(--n-soft); }
.nc-items-more[b-crz64pgosx] { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; font-size: .78rem; opacity: .65; font-weight: 600; }
.nc-progress[b-crz64pgosx] { height: 4px; border-radius: 99px; background: var(--n-soft); overflow: hidden; margin-top: 10px; }
.nc-progress span[b-crz64pgosx] { display: block; height: 100%; width: var(--v); background: currentColor; opacity: .55; border-radius: inherit; transition: width .6s var(--ease-out); }

/* ---------- Etichette e cestino ---------- */
.nc-labels[b-crz64pgosx] { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.nc-label[b-crz64pgosx] { padding: 2px 9px; border-radius: 99px; background: var(--n-soft); font-size: .72rem; font-weight: 600; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nc-trash[b-crz64pgosx] { margin-top: 10px; font-size: .74rem; font-weight: 600; opacity: .7; }

@media (max-width: 560px) {
    .note-card[b-crz64pgosx] { padding: 12px 12px 10px; border-radius: 18px; }
    .nc-photos[b-crz64pgosx] { margin: -12px -12px 8px; }
    .nc-title[b-crz64pgosx] { font-size: .95rem; }
    .nc-body[b-crz64pgosx], .nc-items[b-crz64pgosx] { font-size: .84rem; }
}
/* /Components/Pages/Note/NoteEditor.razor.rz.scp.css */
/* =========================================================
   Note — editor (sheet grande / schermo intero su mobile)
   ========================================================= */
.ne-backdrop[b-xe93yqt1qy] {
    position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 24px;
    background: rgba(3, 2, 12, .62); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    animation: ne-fade-b-xe93yqt1qy .25s ease both; perspective: 1400px;
}
@keyframes ne-fade-b-xe93yqt1qy { from { opacity: 0; } }

.ne[b-xe93yqt1qy] {
    --n-a: #2b2860; --n-b: #171538; --n-ink: #f4f3ff; --n-link: #1d4ed8; --n-soft: rgba(0, 0, 0, .08); --n-line: rgba(0, 0, 0, .12);
    position: relative; display: flex; flex-direction: column; overflow: hidden;
    width: min(760px, 100%); height: min(86vh, 920px); border-radius: 28px;
    color: var(--n-ink);
    background: radial-gradient(120% 50% at 0% 0%, rgba(255, 255, 255, .35), transparent 55%), linear-gradient(160deg, var(--n-a), var(--n-b));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 60px 120px -30px rgba(0, 0, 0, .9);
    animation: ne-in-b-xe93yqt1qy .45s var(--ease-spring) both;
}
.ne.flip[b-xe93yqt1qy] { animation: none; }
.ne.is-default[b-xe93yqt1qy] {
    --n-link: #93c5fd; --n-soft: rgba(255, 255, 255, .08); --n-line: rgba(255, 255, 255, .1);
    background: radial-gradient(90% 40% at 0% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%), linear-gradient(160deg, rgba(40, 35, 95, .98), rgba(14, 12, 40, .99));
    border: 1px solid var(--border-strong);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 60px 120px -30px rgba(0, 0, 0, .9);
}
@keyframes ne-in-b-xe93yqt1qy { from { opacity: 0; transform: rotateX(-12deg) translateY(50px) scale(.94); } }

/* ---------- Testata ---------- */
.ne-head[b-xe93yqt1qy] { display: flex; align-items: center; gap: 4px; padding: 10px 12px 2px; }
.ne-btn[b-xe93yqt1qy] { color: inherit; font-size: 1.05rem; }
.ne-btn:hover[b-xe93yqt1qy] { background: var(--n-soft); }
.ne-btn.on[b-xe93yqt1qy] { background: var(--n-soft); box-shadow: inset 0 0 0 1px var(--n-line); }
.ne-status[b-xe93yqt1qy] { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 600; opacity: .7; min-height: 24px; padding-left: 4px; }
.ne-status .dot[b-xe93yqt1qy] { width: 7px; height: 7px; border-radius: 50%; background: currentColor; animation: ne-pulse-b-xe93yqt1qy 1s ease-in-out infinite; }
.ne-status.s-saved svg[b-xe93yqt1qy] { animation: ne-check-b-xe93yqt1qy .45s var(--ease-spring); }
@keyframes ne-pulse-b-xe93yqt1qy { 50% { opacity: .25; transform: scale(.7); } }
@keyframes ne-check-b-xe93yqt1qy { from { transform: scale(0) rotate(-40deg); } }
.ne-retry[b-xe93yqt1qy] { border: 0; background: rgba(220, 38, 38, .2); color: inherit; padding: 4px 10px; border-radius: 99px; font: inherit; font-weight: 700; cursor: pointer; }
.dim-ink[b-xe93yqt1qy] { opacity: .6; }

.ne-trash[b-xe93yqt1qy] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 14px 0; padding: 10px 14px; border-radius: 16px; background: var(--n-soft); font-size: .88rem; font-weight: 600; }
.ne-trash span[b-xe93yqt1qy] { flex: 1 1 200px; }

/* ---------- Corpo ---------- */
.ne-body[b-xe93yqt1qy] { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 24px 22px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.ne-title[b-xe93yqt1qy] {
    width: 100%; border: 0; background: transparent; color: inherit; outline: none; padding: 10px 0 6px;
    font-family: var(--font-display); font-size: 1.55rem; font-weight: 700; letter-spacing: -.02em;
}
.ne-title[b-xe93yqt1qy]::placeholder, .ne-textarea[b-xe93yqt1qy]::placeholder, .ck-text[b-xe93yqt1qy]::placeholder { color: inherit; opacity: .45; }
.ne-textarea[b-xe93yqt1qy] {
    display: block; width: 100%; min-height: 32vh; resize: none; border: 0; background: transparent; color: inherit; outline: none;
    font: inherit; font-size: 1.04rem; line-height: 1.62; padding: 4px 0; field-sizing: content; overflow: hidden;
}
.ne-md[b-xe93yqt1qy] { font-size: 1.04rem; line-height: 1.62; min-height: 32vh; overflow-wrap: anywhere; padding: 4px 0; animation: ne-fade-b-xe93yqt1qy .2s; }
.md[b-xe93yqt1qy]  p { margin: 0 0 10px; }
.md[b-xe93yqt1qy]  ul, .md[b-xe93yqt1qy]  ol { margin: 0 0 10px; padding-left: 22px; }
.md[b-xe93yqt1qy]  .md-h1 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; margin: 10px 0 6px; }
.md[b-xe93yqt1qy]  .md-h2 { font-family: var(--font-display); font-size: 1.08rem; font-weight: 700; margin: 8px 0 4px; }
.md[b-xe93yqt1qy]  a { color: var(--n-link); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.md[b-xe93yqt1qy]  code { font-family: ui-monospace, "Cascadia Code", monospace; font-size: .9em; padding: 1px 6px; border-radius: 6px; background: var(--n-soft); }
.md[b-xe93yqt1qy]  blockquote { margin: 0 0 10px; padding-left: 12px; border-left: 3px solid var(--n-line); opacity: .85; }
.md[b-xe93yqt1qy]  hr { border: 0; border-top: 1px dashed var(--n-line); margin: 12px 0; }

/* ---------- Foto ---------- */
.ne-photos[b-xe93yqt1qy] { display: grid; gap: 6px; margin: 6px 0 6px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ne-photos.n1[b-xe93yqt1qy] { grid-template-columns: minmax(0, 1fr); }
.ne-photos.n2[b-xe93yqt1qy] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ne-photos.n3[b-xe93yqt1qy] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ne-photo[b-xe93yqt1qy] {
    position: relative; padding: 0; border: 0; border-radius: 14px; overflow: hidden; cursor: zoom-in; aspect-ratio: 4 / 3;
    background: var(--n-soft); color: inherit; transition: transform .3s var(--ease-spring), box-shadow .3s;
    box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .8); animation: ne-photo-in-b-xe93yqt1qy .45s var(--ease-spring) both;
}
.ne-photos.n1 .ne-photo[b-xe93yqt1qy] { aspect-ratio: 16 / 9; }
.ne-photo:hover[b-xe93yqt1qy] { transform: translateY(-2px) scale(1.02); }
.ne-photo img[b-xe93yqt1qy] { width: 100%; height: 100%; object-fit: cover; }
.ne-photo.busy[b-xe93yqt1qy] { display: grid; place-items: center; cursor: default; }
.ne-photo.busy small[b-xe93yqt1qy] { position: absolute; bottom: 6px; right: 8px; font-weight: 700; opacity: .6; }
@keyframes ne-photo-in-b-xe93yqt1qy { from { opacity: 0; transform: scale(.8) rotate(-3deg); } }
.spin[b-xe93yqt1qy] { width: 24px; height: 24px; border-radius: 50%; border: 3px solid currentColor; border-top-color: transparent; opacity: .6; animation: ne-spin-b-xe93yqt1qy .8s linear infinite; }
@keyframes ne-spin-b-xe93yqt1qy { to { transform: rotate(360deg); } }

/* ---------- Checklist ---------- */
.ck[b-xe93yqt1qy] { margin-top: 4px; }
.ck-list[b-xe93yqt1qy] { display: flex; flex-direction: column; position: relative; }
.ck-row[b-xe93yqt1qy] {
    position: relative; display: flex; align-items: center; gap: 6px; padding: 1px 2px; border-radius: 12px;
    background: transparent; transition: transform .22s var(--ease-out), background .2s, box-shadow .2s;
}
.ck-list.no-anim .ck-row[b-xe93yqt1qy] { transition: none !important; }
.ck-row.is-dragging[b-xe93yqt1qy] { z-index: 5; background: var(--n-soft); box-shadow: 0 16px 34px -12px rgba(0, 0, 0, .55); transition: box-shadow .2s, background .2s; backdrop-filter: blur(4px); }
.drag-handle[b-xe93yqt1qy] {
    flex: none; width: 22px; height: 36px; display: grid; place-items: center; opacity: .35; cursor: grab; touch-action: none;
    transition: opacity .2s;
}
.ck-row.is-dragging .drag-handle[b-xe93yqt1qy] { cursor: grabbing; opacity: .8; }
@media (hover: hover) and (pointer: fine) {
    .drag-handle[b-xe93yqt1qy] { opacity: 0; }
    .ck-row:hover .drag-handle[b-xe93yqt1qy] { opacity: .45; }
    .ck-row[b-xe93yqt1qy] { cursor: grab; }
    .ck-row .ck-text[b-xe93yqt1qy], .ck-row button[b-xe93yqt1qy] { cursor: auto; }
}
.ck-box[b-xe93yqt1qy] {
    flex: none; width: 24px; height: 24px; padding: 0; display: grid; place-items: center; cursor: pointer !important;
    border: 2px solid currentColor; border-radius: 8px; background: transparent; color: inherit; opacity: .7;
    transition: transform .3s var(--ease-spring), background .2s, opacity .2s;
}
.ck-box:hover[b-xe93yqt1qy] { opacity: 1; transform: scale(1.08); }
.ck-box:active[b-xe93yqt1qy] { transform: scale(.82); }
.ck-box svg[b-xe93yqt1qy] { width: 16px; height: 16px; fill: none; stroke: var(--n-b); stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset .32s var(--ease-out) .05s; }
.ck-box.on[b-xe93yqt1qy] { background: currentColor; opacity: 1; animation: ck-pop-b-xe93yqt1qy .45s var(--ease-spring); }
.ck-box.on svg[b-xe93yqt1qy] { stroke-dashoffset: 0; }
.ck-box[disabled][b-xe93yqt1qy] { pointer-events: none; }
@keyframes ck-pop-b-xe93yqt1qy { 40% { transform: scale(1.28) rotate(-6deg); } }
.ck-text[b-xe93yqt1qy] {
    flex: 1; min-width: 0; height: 40px; border: 0; border-bottom: 1px solid transparent; background: transparent; color: inherit;
    font: inherit; font-size: 1rem; padding: 0 4px; outline: none; transition: border-color .2s;
}
.ck-text:focus[b-xe93yqt1qy] { border-bottom-color: var(--n-line); }
.ck-row.is-leaving[b-xe93yqt1qy] { animation: ck-leave-b-xe93yqt1qy .45s ease-in forwards; }
.ck-row.is-leaving .ck-text[b-xe93yqt1qy] { text-decoration: line-through; opacity: .55; }
@keyframes ck-leave-b-xe93yqt1qy { 55% { opacity: 1; transform: none; } to { opacity: 0; transform: translateX(18px) scale(.97); } }
.ck-del[b-xe93yqt1qy] {
    flex: none; width: 32px; height: 32px; border: 0; border-radius: 10px; background: transparent; color: inherit; cursor: pointer;
    opacity: 0; transition: opacity .2s, background .2s;
}
.ck-del:hover[b-xe93yqt1qy] { background: var(--n-soft); opacity: .9 !important; }
.ck-row:hover .ck-del[b-xe93yqt1qy], .ck-row:focus-within .ck-del[b-xe93yqt1qy] { opacity: .55; }
@media (hover: none) { .ck-del[b-xe93yqt1qy] { opacity: .35; } }
.ck-add[b-xe93yqt1qy] { display: flex; align-items: center; gap: 6px; padding: 0 2px 0 30px; }
.ck-plus[b-xe93yqt1qy] { width: 24px; text-align: center; opacity: .5; font-size: 1.1rem; flex: none; }
.ck-add-btn[b-xe93yqt1qy] { flex: none; background: var(--n-soft); color: inherit; border-color: transparent; }
.ck-done-head[b-xe93yqt1qy] { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--n-line); }
.ck-done-head .btn[b-xe93yqt1qy] { color: inherit; }
.ck-done-toggle[b-xe93yqt1qy] { border: 0; background: transparent; color: inherit; font: inherit; font-weight: 700; font-size: .88rem; opacity: .7; cursor: pointer; padding: 6px 4px; display: inline-flex; gap: 8px; align-items: center; }
.chev[b-xe93yqt1qy] { display: inline-block; transition: transform .25s var(--ease-out); }
.chev.open[b-xe93yqt1qy] { transform: rotate(90deg); }
.ck-list.done[b-xe93yqt1qy] { animation: ne-fade-b-xe93yqt1qy .3s; }
.ck-row.is-done[b-xe93yqt1qy] { padding-left: 30px; }
.ck-row.is-done .ck-box[b-xe93yqt1qy] { opacity: .55; }
.ck-done-text[b-xe93yqt1qy] { flex: 1; min-width: 0; padding: 9px 4px; text-decoration: line-through; opacity: .55; overflow-wrap: anywhere; }

/* ---------- Etichette e meta ---------- */
.ne-labels[b-xe93yqt1qy] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.ne-label[b-xe93yqt1qy] { border: 0; border-radius: 99px; padding: 4px 11px; background: var(--n-soft); color: inherit; font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; }
.ne-meta[b-xe93yqt1qy] { margin-top: 16px; font-size: .74rem; opacity: .55; }

/* ---------- Barra strumenti ---------- */
.ne-foot[b-xe93yqt1qy] { position: relative; padding: 6px 10px calc(8px + var(--safe-bottom)); border-top: 1px solid var(--n-line); }
.ne-tools[b-xe93yqt1qy] { display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.ne-tools[b-xe93yqt1qy]::-webkit-scrollbar { display: none; }
.ne-tool[b-xe93yqt1qy] {
    flex: none; width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 12px; cursor: pointer;
    background: transparent; color: inherit; font: inherit; font-size: 1.1rem; transition: background .2s, transform .25s var(--ease-spring);
}
.ne-tool:hover[b-xe93yqt1qy], .ne-tool.on[b-xe93yqt1qy] { background: var(--n-soft); }
.ne-tool.on[b-xe93yqt1qy] { box-shadow: inset 0 0 0 1px var(--n-line); }
.ne-tool:active[b-xe93yqt1qy] { transform: scale(.88); }
.ne-tool.fmt[b-xe93yqt1qy] { font-size: .98rem; }
.ne-sep[b-xe93yqt1qy] { flex: none; width: 1px; height: 22px; background: currentColor; opacity: .18; margin: 0 4px; }
.ne-tools .grow[b-xe93yqt1qy] { flex: 1; }
.ne-done[b-xe93yqt1qy] { flex: none; margin-left: 4px; color: inherit; background: var(--n-soft); border-color: var(--n-line); font-weight: 700; }

/* Popover (colori, etichette, altro) */
.ne-pop[b-xe93yqt1qy] {
    position: absolute; left: 10px; bottom: calc(100% + 6px); z-index: 4; width: min(420px, calc(100% - 20px)); max-height: 50vh; overflow: auto;
    padding: 12px; border-radius: 18px; color: var(--text);
    background: rgba(22, 19, 54, .97); border: 1px solid var(--border-strong); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .85);
    animation: ne-pop-b-xe93yqt1qy .28s var(--ease-spring) both; transform-origin: bottom left;
}
.ne-pop.pop-menu[b-xe93yqt1qy] { left: auto; right: 10px; width: 250px; padding: 6px; transform-origin: bottom right; }
@keyframes ne-pop-b-xe93yqt1qy { from { opacity: 0; transform: translateY(10px) scale(.94); } }
.pop-title[b-xe93yqt1qy] { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--text-2); margin-bottom: 8px; }
.pop-colors[b-xe93yqt1qy] { display: flex; flex-wrap: wrap; gap: 9px; }
.pop-labels[b-xe93yqt1qy] { display: flex; flex-wrap: wrap; gap: 6px; }
.pop-new[b-xe93yqt1qy] { display: flex; gap: 8px; margin-top: 10px; }
.pop-new .input[b-xe93yqt1qy] { height: 38px; }
.swatch[b-xe93yqt1qy] {
    width: 34px; height: 34px; border-radius: 50%; cursor: pointer; padding: 0;
    background: linear-gradient(135deg, var(--sw-a), var(--sw-b)); border: 2px solid rgba(255, 255, 255, .22);
    transition: transform .25s var(--ease-spring), box-shadow .2s;
}
.swatch:hover[b-xe93yqt1qy] { transform: scale(1.12); }
.swatch.on[b-xe93yqt1qy] { box-shadow: 0 0 0 3px #16133a, 0 0 0 5px var(--accent); transform: scale(1.08); }
.qa-item[b-xe93yqt1qy] {
    display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; border: 0; border-radius: 12px;
    background: transparent; color: var(--text); font: inherit; font-weight: 500; text-align: left; cursor: pointer; transition: background .2s;
}
.qa-item:hover[b-xe93yqt1qy] { background: var(--surface-2); }
.qa-item span[b-xe93yqt1qy] { width: 22px; text-align: center; }
.qa-item.danger[b-xe93yqt1qy] { color: #fda4af; }

/* ---------- Visore foto ---------- */
.ne-lightbox[b-xe93yqt1qy] {
    position: absolute; inset: 0; z-index: 10; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
    padding: 16px 16px calc(16px + var(--safe-bottom)); background: rgba(4, 3, 12, .94); color: #fff; animation: ne-fade-b-xe93yqt1qy .2s;
}
.ne-lightbox img[b-xe93yqt1qy] { max-width: 100%; max-height: calc(100% - 70px); object-fit: contain; border-radius: 14px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .9); animation: ne-zoom-b-xe93yqt1qy .35s var(--ease-spring); }
@keyframes ne-zoom-b-xe93yqt1qy { from { transform: scale(.9); opacity: 0; } }
.lb-bar[b-xe93yqt1qy] { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.lb-count[b-xe93yqt1qy] { min-width: 56px; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }

@media (max-width: 640px) {
    .ne-backdrop[b-xe93yqt1qy] { padding: 0; align-items: stretch; }
    .ne[b-xe93yqt1qy], .ne.is-default[b-xe93yqt1qy] { width: 100%; height: 100%; border-radius: 0; border: 0; padding-top: var(--safe-top); animation-name: ne-up-b-xe93yqt1qy; animation-duration: .38s; animation-timing-function: var(--ease-out); }
    .ne-body[b-xe93yqt1qy] { padding: 2px 16px 20px; }
    .ne-title[b-xe93yqt1qy] { font-size: 1.35rem; }
    .ne-tool[b-xe93yqt1qy] { width: 38px; height: 40px; }
    @keyframes ne-up-b-xe93yqt1qy { from { transform: translateY(40px); opacity: 0; } }
}
/* /Components/Pages/Note/NotesPage.razor.rz.scp.css */
/* =========================================================
   Note — bacheca
   ========================================================= */
kbd[b-vrasv8hpdk] {
    font: 600 .7rem var(--font); padding: 2px 7px; border-radius: 7px; flex: none;
    border: 1px solid var(--border-strong); color: var(--text-3); background: rgba(0, 0, 0, .25);
}

/* ---------- Hero: blocchetto di foglietti 3D ---------- */
.hero-pad[b-vrasv8hpdk] { position: relative; width: 160px; height: 104px; perspective: 700px; transform-style: preserve-3d; flex: none; }
.hp[b-vrasv8hpdk] {
    position: absolute; width: 84px; height: 84px; border-radius: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), 0 20px 30px -14px rgba(0, 0, 0, .8);
    animation: hp-in-b-vrasv8hpdk .9s var(--ease-spring) both, hp-float-b-vrasv8hpdk 6s ease-in-out infinite;
}
.hp1[b-vrasv8hpdk] { left: 0; top: 14px; background: linear-gradient(160deg, #fff3a3, #fcd34d); transform: rotate(-11deg) rotateY(20deg); animation-delay: .15s, 0s; }
.hp2[b-vrasv8hpdk] { left: 36px; top: 0; background: linear-gradient(160deg, #fdd5ec, #f9a8d4); transform: rotate(4deg) translateZ(20px); animation-delay: .3s, -2s; }
.hp3[b-vrasv8hpdk] {
    left: 70px; top: 16px; background: linear-gradient(160deg, #c3f6fb, #67e8f9); transform: rotate(12deg) rotateY(-18deg) translateZ(40px);
    animation-delay: .45s, -4s; padding: 18px 12px; display: flex; flex-direction: column; gap: 8px;
}
.hp3 i[b-vrasv8hpdk] { display: block; height: 5px; border-radius: 3px; background: rgba(8, 51, 68, .35); }
.hp3 i:nth-child(2)[b-vrasv8hpdk] { width: 72%; }
.hp3 i:nth-child(3)[b-vrasv8hpdk] { width: 48%; }
@keyframes hp-in-b-vrasv8hpdk { from { opacity: 0; translate: 0 40px; } }
@keyframes hp-float-b-vrasv8hpdk { 50% { translate: 0 -8px; } }

/* ---------- Composer ---------- */
.composer[b-vrasv8hpdk] {
    display: flex; align-items: center; gap: 4px; max-width: 660px; margin: 0 auto 18px; padding: 6px;
    border-radius: 22px; border: 1px solid var(--border);
    background: radial-gradient(90% 160% at 0% 0%, color-mix(in oklab, var(--accent) 20%, transparent), transparent 60%), linear-gradient(145deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .025));
    box-shadow: var(--shadow-1);
    transition: box-shadow .35s var(--ease-out), border-color .3s;
}
.composer:hover[b-vrasv8hpdk], .composer:focus-within[b-vrasv8hpdk] { border-color: color-mix(in oklab, var(--accent) 50%, var(--border)); box-shadow: var(--shadow-glow); }
.composer-main[b-vrasv8hpdk] {
    flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; height: 50px; padding: 0 10px;
    border: 0; border-radius: 16px; background: transparent; color: var(--text-2); font: inherit; font-size: 1rem; text-align: left; cursor: text;
}
.composer-main:hover[b-vrasv8hpdk] { color: var(--text); }
.composer-ico[b-vrasv8hpdk] { font-size: 1.25rem; }
.composer-ph[b-vrasv8hpdk] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.composer-act[b-vrasv8hpdk] { font-size: 1.2rem; flex: none; }

/* ---------- Toolbar ---------- */
.toolbar[b-vrasv8hpdk] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.n-search[b-vrasv8hpdk] {
    flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 12px 0 14px;
    border-radius: 15px; background: rgba(0, 0, 0, .28); border: 1px solid var(--border); color: var(--text-2);
    transition: border-color .2s, box-shadow .2s;
}
.n-search:focus-within[b-vrasv8hpdk] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 25%, transparent); }
.n-search input[b-vrasv8hpdk] { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; outline: none; }
.n-search input[b-vrasv8hpdk]::-webkit-search-cancel-button { display: none; }
.n-search-x[b-vrasv8hpdk] { border: 0; background: var(--surface-2); color: var(--text); width: 28px; height: 28px; border-radius: 9px; cursor: pointer; flex: none; }
.tb-right[b-vrasv8hpdk] { display: flex; gap: 8px; align-items: center; flex: none; }
.n-sort[b-vrasv8hpdk] { width: auto; height: 46px; font-size: .9rem; }
.view-seg button[b-vrasv8hpdk] { display: grid; place-items: center; padding: 8px 11px; }

/* ---------- Filtri ---------- */
.filters[b-vrasv8hpdk] { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -20px 18px; padding: 2px 20px 4px; align-items: center; }
.filters[b-vrasv8hpdk]::-webkit-scrollbar { display: none; }
.filters > *[b-vrasv8hpdk] { flex: none; }
.f-sep[b-vrasv8hpdk] { width: 1px; height: 22px; background: var(--border-strong); margin: 0 4px; }
.cnt[b-vrasv8hpdk] { font-size: .72rem; opacity: .6; font-variant-numeric: tabular-nums; }
.add-chip[b-vrasv8hpdk] { border-style: dashed; }

/* ---------- Sezioni e griglia masonry ---------- */
.n-section[b-vrasv8hpdk] { display: flex; align-items: center; gap: 8px; margin: 4px 4px 12px; font-family: var(--font); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-3); }
.n-grid[b-vrasv8hpdk] { --gap: 16px; display: grid; grid-template-columns: repeat(auto-fill, minmax(228px, 1fr)); grid-auto-rows: 4px; column-gap: var(--gap); align-items: start; margin-bottom: 26px; }
.n-grid.is-list[b-vrasv8hpdk] { grid-template-columns: minmax(0, 1fr); max-width: 760px; margin-inline: auto; }
.n-grid.skel[b-vrasv8hpdk] { grid-auto-rows: auto; row-gap: 16px; }
.n-cell[b-vrasv8hpdk] { min-width: 0; grid-row-end: span 40; }
.n-cell[data-reveal][b-vrasv8hpdk] { transition-duration: .45s, .55s; transition-delay: calc(var(--i, 0) * 32ms); }
@media (max-width: 560px) {
    .n-grid[b-vrasv8hpdk] { --gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .n-grid.is-list[b-vrasv8hpdk] { grid-template-columns: minmax(0, 1fr); }
    .n-grid.skel[b-vrasv8hpdk] { row-gap: 10px; }
}

.empty-card[b-vrasv8hpdk] { padding: 0; }
.trash-bar[b-vrasv8hpdk] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; margin-bottom: 16px; border-radius: 18px; font-size: .88rem; color: var(--text-2); }

/* ---------- FAB ---------- */
.n-fabs[b-vrasv8hpdk] { position: fixed; z-index: 40; right: max(20px, env(safe-area-inset-right)); bottom: calc(24px + var(--safe-bottom)); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.n-fabs .fab[b-vrasv8hpdk] { position: static; }
.n-fab[b-vrasv8hpdk] { font-size: 34px; font-weight: 300; width: 64px; height: 64px; }
.n-fab-2[b-vrasv8hpdk] {
    width: 48px; height: 48px; border-radius: 16px; font-size: 20px; animation-delay: .45s;
    background: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .06)); backdrop-filter: blur(14px);
    border: 1px solid var(--border-strong); box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .7);
}
.n-fab-2:hover[b-vrasv8hpdk] { transform: translateY(-3px) scale(1.06); }

/* ---------- Azioni rapide (Sheet) ---------- */
.qa-colors[b-vrasv8hpdk] { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 14px; }
.qa-labels[b-vrasv8hpdk] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.qa-list[b-vrasv8hpdk] { display: flex; flex-direction: column; gap: 2px; }
.qa-item[b-vrasv8hpdk] {
    display: flex; align-items: center; gap: 12px; width: 100%; padding: 13px 14px; border: 0; border-radius: 14px;
    background: transparent; color: var(--text); font: inherit; font-weight: 500; text-align: left; cursor: pointer; transition: background .2s;
}
.qa-item:hover[b-vrasv8hpdk] { background: var(--surface-2); }
.qa-item span[b-vrasv8hpdk] { width: 24px; text-align: center; font-size: 1.1rem; }
.qa-item.danger[b-vrasv8hpdk] { color: #fda4af; }
.swatch[b-vrasv8hpdk] {
    width: 36px; height: 36px; border-radius: 50%; cursor: pointer; padding: 0;
    background: linear-gradient(135deg, var(--sw-a), var(--sw-b)); border: 2px solid rgba(255, 255, 255, .22);
    transition: transform .25s var(--ease-spring), box-shadow .2s;
}
.swatch:hover[b-vrasv8hpdk] { transform: scale(1.1); }
.swatch.on[b-vrasv8hpdk] { box-shadow: 0 0 0 3px var(--bg-1), 0 0 0 5px var(--accent); transform: scale(1.08); }

/* ---------- Gestione etichette ---------- */
.lbl-new[b-vrasv8hpdk] { display: flex; gap: 8px; }
.lbl-list[b-vrasv8hpdk] { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.lbl-row[b-vrasv8hpdk] { display: flex; align-items: center; gap: 10px; }
.lbl-row .input[b-vrasv8hpdk] { flex: 1; height: 42px; }

@media (max-width: 700px) {
    .toolbar[b-vrasv8hpdk] { flex-wrap: wrap; }
    .n-search[b-vrasv8hpdk] { flex-basis: 100%; }
    .tb-right[b-vrasv8hpdk] { flex: 1; }
    .n-sort[b-vrasv8hpdk] { flex: 1; min-width: 0; }
}
/* /Components/Pages/Promemoria/Bell3D.razor.rz.scp.css */
.bell3d[b-q70bfgp8v3] { position: relative; width: var(--size); height: var(--size); perspective: 600px; flex: none; }
.bell-float[b-q70bfgp8v3] { position: absolute; inset: 0; transform-style: preserve-3d; animation: bell-float-b-q70bfgp8v3 5s ease-in-out infinite; }
.bell-swing[b-q70bfgp8v3] { position: absolute; inset: 8% 14% 6%; transform-origin: 50% 4%; transform-style: preserve-3d; animation: bell-swing-b-q70bfgp8v3 3.2s ease-in-out infinite; }
.ringing .bell-swing[b-q70bfgp8v3] { animation: bell-ring-b-q70bfgp8v3 .9s ease-in-out infinite; }
.bell-knob[b-q70bfgp8v3] { position: absolute; left: 50%; top: 0; width: 18%; height: 14%; transform: translateX(-50%); border-radius: 50% 50% 30% 30%;
    background: radial-gradient(circle at 35% 30%, #fff8, transparent 45%), linear-gradient(135deg, var(--b1), color-mix(in oklab, var(--b1) 50%, #7c2d12)); box-shadow: inset 0 -3px 5px rgba(0,0,0,.35); }
.bell-body[b-q70bfgp8v3] { position: absolute; left: 6%; right: 6%; top: 10%; bottom: 14%; border-radius: 48% 48% 14% 14% / 62% 62% 12% 12%;
    background:
        radial-gradient(120% 90% at 30% 20%, rgba(255,255,255,.75), transparent 38%),
        linear-gradient(100deg, color-mix(in oklab, var(--b1) 60%, #7c2d12) 0%, var(--b1) 28%, color-mix(in oklab, var(--b1) 70%, white) 45%, var(--b1) 62%, var(--b2) 100%);
    box-shadow: inset -10px -12px 22px rgba(0,0,0,.35), inset 8px 6px 14px rgba(255,255,255,.25), 0 18px 30px -12px color-mix(in oklab, var(--b2) 80%, transparent);
    transform: translateZ(10px); }
.bell-shine[b-q70bfgp8v3] { position: absolute; left: 18%; top: 16%; width: 16%; height: 52%; border-radius: 50%; background: linear-gradient(180deg, rgba(255,255,255,.8), transparent); filter: blur(1px); transform: rotate(12deg); }
.bell-lip[b-q70bfgp8v3] { position: absolute; left: 0; right: 0; bottom: 8%; height: 14%; border-radius: 50%;
    background: linear-gradient(180deg, color-mix(in oklab, var(--b1) 70%, white), color-mix(in oklab, var(--b2) 70%, #450a0a)); box-shadow: 0 6px 10px -4px rgba(0,0,0,.6); transform: translateZ(12px); }
.bell-clapper[b-q70bfgp8v3] { position: absolute; left: 50%; bottom: -2%; width: 16%; height: 16%; margin-left: -8%; border-radius: 50%; transform-origin: 50% -250%;
    background: radial-gradient(circle at 35% 30%, #fff, color-mix(in oklab, var(--b1) 80%, #7c2d12) 60%); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bell-clap-b-q70bfgp8v3 3.2s ease-in-out infinite; }
.ringing .bell-clapper[b-q70bfgp8v3] { animation: bell-clap-b-q70bfgp8v3 .9s ease-in-out infinite; }
.bell-wave[b-q70bfgp8v3] { position: absolute; left: 50%; top: 45%; width: 70%; height: 70%; border-radius: 50%; border: 2px solid color-mix(in oklab, var(--b1) 70%, transparent); transform: translate(-50%, -50%) scale(.6); opacity: 0; pointer-events: none; }
.ringing .bell-wave[b-q70bfgp8v3], .bell3d:hover .bell-wave[b-q70bfgp8v3] { animation: bell-wave-b-q70bfgp8v3 1.8s ease-out infinite; }
.bell-wave.w2[b-q70bfgp8v3] { animation-delay: .6s !important; }
.bell-wave.w3[b-q70bfgp8v3] { animation-delay: 1.2s !important; }
.bell-shadow[b-q70bfgp8v3] { position: absolute; left: 22%; right: 22%; bottom: -4%; height: 8%; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,0,0,.55), transparent); filter: blur(3px); animation: bell-shadow-b-q70bfgp8v3 5s ease-in-out infinite; }
@keyframes bell-float-b-q70bfgp8v3 { 0%, 100% { transform: translateY(0) rotateY(-18deg); } 50% { transform: translateY(-6%) rotateY(18deg); } }
@keyframes bell-swing-b-q70bfgp8v3 { 0%, 100% { transform: rotate(0); } 10% { transform: rotate(14deg); } 20% { transform: rotate(-11deg); } 30% { transform: rotate(7deg); } 40% { transform: rotate(-4deg); } 50% { transform: rotate(0); } }
@keyframes bell-ring-b-q70bfgp8v3 { 0%, 100% { transform: rotate(-22deg); } 50% { transform: rotate(22deg); } }
@keyframes bell-clap-b-q70bfgp8v3 { 0%, 100% { transform: rotate(0); } 10% { transform: rotate(-18deg); } 20% { transform: rotate(14deg); } 30% { transform: rotate(-9deg); } 40% { transform: rotate(5deg); } 50% { transform: rotate(0); } }
@keyframes bell-wave-b-q70bfgp8v3 { from { opacity: .9; transform: translate(-50%, -50%) scale(.6); } to { opacity: 0; transform: translate(-50%, -50%) scale(1.8); } }
@keyframes bell-shadow-b-q70bfgp8v3 { 0%, 100% { transform: scaleX(1); opacity: .9; } 50% { transform: scaleX(.8); opacity: .6; } }
/* /Components/Pages/Promemoria/Clock3D.razor.rz.scp.css */
.clk[b-s4yep37pdv] { position: relative; width: var(--size); height: var(--size); flex: none; border-radius: 50%; transform-style: preserve-3d; }
.clk-float[b-s4yep37pdv] { position: absolute; inset: 0; transform-style: preserve-3d; animation: clk-float-b-s4yep37pdv 7s ease-in-out infinite; }
.clk-layer[b-s4yep37pdv] { position: absolute; inset: 0; border-radius: 50%; transform: translateZ(var(--z));
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 70%, #1e0a14), color-mix(in oklab, var(--accent-2) 55%, #14061a)); filter: brightness(calc(1 - var(--l))); }
.clk-face[b-s4yep37pdv] { position: absolute; inset: 0; border-radius: 50%; transform: translateZ(2px);
    background: radial-gradient(circle at 50% 45%, rgba(40,20,50,.94), rgba(12,8,26,.97) 70%);
    border: 5px solid color-mix(in oklab, var(--accent) 65%, white);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.08), inset 0 10px 30px rgba(0,0,0,.6), 0 30px 60px -20px color-mix(in oklab, var(--accent) 80%, transparent), 0 0 40px -10px var(--accent-2); }
.clk-tick[b-s4yep37pdv] { position: absolute; left: 50%; top: 6%; width: 2px; height: 7%; margin-left: -1px; background: rgba(255,255,255,.4); border-radius: 2px; transform-origin: 50% calc((var(--size) - 10px) * .44); transform: rotate(var(--a)); }
.clk-tick.big[b-s4yep37pdv] { width: 4px; margin-left: -2px; height: 10%; background: #fff; box-shadow: 0 0 8px var(--accent-2); }
.clk-hand[b-s4yep37pdv] { position: absolute; left: 50%; bottom: 50%; transform-origin: 50% 100%; border-radius: 4px; translate: -50% 0; }
.clk-hand.h[b-s4yep37pdv] { width: 6px; height: 24%; background: linear-gradient(#fff, #f5d0fe); animation: clk-spin-b-s4yep37pdv 43200s linear infinite; animation-delay: calc(var(--hs) * -1s); box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.clk-hand.m[b-s4yep37pdv] { width: 4px; height: 34%; background: linear-gradient(#fff, #fecdd3); animation: clk-spin-b-s4yep37pdv 3600s linear infinite; animation-delay: calc(var(--ms) * -1s); box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.clk-hand.s[b-s4yep37pdv] { width: 2px; height: 40%; background: var(--accent-2); animation: clk-spin-b-s4yep37pdv 60s steps(60) infinite; animation-delay: calc(var(--ss) * -1s); box-shadow: 0 0 8px var(--accent-2); }
.clk-pin[b-s4yep37pdv] { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, var(--accent)); box-shadow: 0 0 10px var(--accent); }
.clk-glass[b-s4yep37pdv] { position: absolute; inset: 0; border-radius: 50%; background: linear-gradient(140deg, rgba(255,255,255,.28), transparent 38%, transparent 70%, rgba(255,255,255,.08)); pointer-events: none; }
@keyframes clk-spin-b-s4yep37pdv { from { rotate: 0deg; } to { rotate: 360deg; } }
@keyframes clk-float-b-s4yep37pdv { 0%, 100% { transform: rotateX(8deg) rotateY(-16deg); } 50% { transform: rotateX(-6deg) rotateY(16deg) translateY(-4px); } }
/* /Components/Pages/Promemoria/MiniCalendar.razor.rz.scp.css */
.mc[b-gq2pl2tadd] { padding: 14px; }
.mc-head[b-gq2pl2tadd] { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; text-align: center; font-family: var(--font-display); }
.mc-grid[b-gq2pl2tadd] { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.mc-dow[b-gq2pl2tadd] { text-align: center; font-size: .68rem; font-weight: 700; color: var(--text-3); letter-spacing: .06em; padding-bottom: 2px; }
.mc-day[b-gq2pl2tadd] {
    position: relative; aspect-ratio: 1; min-height: 34px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    border: 1px solid transparent; border-radius: 11px; background: rgba(255,255,255,.03); color: var(--text); cursor: pointer; padding: 0; font-size: .86rem;
    transition: transform .3s var(--ease-spring), background .2s, border-color .2s;
    animation: mc-in-b-gq2pl2tadd .5s var(--ease-out) backwards; animation-delay: calc(var(--i) * 12ms);
}
.mc-day:hover[b-gq2pl2tadd] { background: var(--surface-2); transform: translateY(-2px) scale(1.06); }
.mc-day.past[b-gq2pl2tadd] { color: var(--text-3); }
.mc-day.has[b-gq2pl2tadd] { background: rgba(255,255,255,.07); }
.mc-day.today[b-gq2pl2tadd] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 16px -4px var(--accent); }
.mc-day.sel[b-gq2pl2tadd] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; border-color: transparent; transform: scale(1.06); }
.mc-dots[b-gq2pl2tadd] { display: flex; gap: 2px; height: 5px; }
.mc-dots i[b-gq2pl2tadd] { width: 5px; height: 5px; border-radius: 50%; background: var(--dc); box-shadow: 0 0 6px var(--dc); }
.mc-day.sel .mc-dots i[b-gq2pl2tadd] { background: #fff; }
@keyframes mc-in-b-gq2pl2tadd { from { opacity: 0; transform: rotateX(-50deg) scale(.8); } }
/* /Components/Pages/Promemoria/PromemoriaPage.razor.rz.scp.css */
/* ---------- Contatori animati (CSS @property: il numero sale da 0 al valore) ---------- */
@property --n { syntax: '<integer>'; initial-value: 0; inherits: false; }
.pm-count[b-1vkwxpydih] { counter-reset: n var(--n); transition: --n 1s var(--ease-out); animation: pm-count-b-1vkwxpydih 1.2s var(--ease-out) backwards .2s; }
.pm-count[b-1vkwxpydih]::after { content: counter(n); }
@keyframes pm-count-b-1vkwxpydih { from { --n: 0; } }

.pm-hero-bell[b-1vkwxpydih] { margin-right: 8px; }

/* ---------- Testata: orologio + KPI ---------- */
.pm-top[b-1vkwxpydih] { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; }
.pm-now[b-1vkwxpydih] { display: flex; align-items: center; gap: 22px; height: 100%; padding: 22px; overflow: visible;
    background: linear-gradient(140deg, color-mix(in oklab, var(--accent) 26%, transparent), color-mix(in oklab, var(--accent-2) 10%, transparent) 60%, rgba(255,255,255,.02)); }
.pm-now-text[b-1vkwxpydih] { min-width: 0; }
.pm-now-time[b-1vkwxpydih] { font-size: clamp(2.4rem, 6vw, 3.4rem); font-weight: 700; line-height: 1; letter-spacing: -.04em;
    background: linear-gradient(120deg, #fff, color-mix(in oklab, var(--accent-2) 70%, white)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pm-next[b-1vkwxpydih] { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; width: 100%; margin-top: 12px; padding: 10px 12px; border-radius: 14px; cursor: pointer; text-align: left; color: var(--text); font: inherit;
    background: rgba(0,0,0,.25); border: 1px solid color-mix(in oklab, var(--c) 40%, var(--border)); transition: transform .3s var(--ease-spring), background .2s; }
.pm-next:hover[b-1vkwxpydih] { transform: translateY(-2px); background: rgba(0,0,0,.35); }
.pm-next strong[b-1vkwxpydih] { max-width: 100%; }
.pm-next-rel[b-1vkwxpydih] { font-size: .8rem; font-weight: 700; color: color-mix(in oklab, var(--c) 60%, white); }

.pm-kpis[b-1vkwxpydih] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pm-kpis > div[b-1vkwxpydih] { min-width: 0; }
.pm-kpi[b-1vkwxpydih] { width: 100%; height: 100%; display: flex; align-items: center; gap: 12px; text-align: left; cursor: pointer; color: var(--text); font: inherit; padding: 16px;
    background: linear-gradient(150deg, color-mix(in oklab, var(--c) 24%, transparent), rgba(255,255,255,.02)); }
.pm-kpi.active[b-1vkwxpydih] { border-color: var(--c); box-shadow: 0 0 0 1px var(--c), 0 20px 40px -20px var(--c); }
.pm-kpi .kpi[b-1vkwxpydih] { min-width: 0; }
.pm-kpi .kpi-label[b-1vkwxpydih] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pm-kpi-ico[b-1vkwxpydih] { width: 44px; height: 44px; flex: none; border-radius: 14px; display: grid; place-items: center; font-size: 1.35rem; transform: translateZ(30px);
    background: linear-gradient(135deg, color-mix(in oklab, var(--c) 60%, transparent), color-mix(in oklab, var(--c) 20%, transparent)); box-shadow: 0 10px 20px -10px var(--c), inset 0 1px 0 rgba(255,255,255,.25); }

/* ---------- Inserimento rapido ---------- */
.pm-quick[b-1vkwxpydih] { display: flex; align-items: center; gap: 8px; padding: 8px 8px 8px 14px; border-radius: 22px; margin-bottom: 10px; position: relative; }
.pm-quick:focus-within[b-1vkwxpydih] { border-color: color-mix(in oklab, var(--accent) 70%, white); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent), 0 24px 50px -24px var(--accent); }
.pm-q-ico[b-1vkwxpydih] { font-size: 1.3rem; animation: pm-spark-b-1vkwxpydih 3s ease-in-out infinite; }
.pm-q-input[b-1vkwxpydih] { flex: 1; min-width: 0; height: 46px; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; }
.pm-q-input[b-1vkwxpydih]::placeholder { color: var(--text-3); }
@keyframes pm-spark-b-1vkwxpydih { 0%, 100% { transform: rotate(0) scale(1); } 50% { transform: rotate(18deg) scale(1.15); } }
.pm-preview[b-1vkwxpydih] { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 4px 16px; perspective: 700px; }
.pm-pv[b-1vkwxpydih] { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 99px; font-size: .82rem; font-weight: 600; max-width: 100%; overflow-wrap: anywhere;
    background: color-mix(in oklab, var(--accent) 18%, rgba(255,255,255,.04)); border: 1px solid color-mix(in oklab, var(--accent) 35%, transparent); animation: pm-pv-in-b-1vkwxpydih .4s var(--ease-spring) both; }
.pm-pv-title[b-1vkwxpydih] { background: rgba(255,255,255,.08); border-color: var(--border); }
@keyframes pm-pv-in-b-1vkwxpydih { from { opacity: 0; transform: rotateX(-70deg) translateY(-6px); } }

/* ---------- Tab viste ---------- */
.pm-views[b-1vkwxpydih] { scroll-snap-type: none; margin-bottom: 18px; padding: 4px; border-radius: 18px; background: rgba(0,0,0,.25); border: 1px solid var(--border); width: fit-content; max-width: 100%; gap: 4px; }
.pm-tab[b-1vkwxpydih] { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 13px; border: 0; background: transparent; color: var(--text-2); font-weight: 600; font-size: .88rem; cursor: pointer; white-space: nowrap; transition: all .3s var(--ease-out); }
.pm-tab:hover[b-1vkwxpydih] { color: var(--text); background: var(--surface); }
.pm-tab.active[b-1vkwxpydih] { color: #fff; background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 70%, transparent), color-mix(in oklab, var(--accent-2) 40%, transparent)); box-shadow: 0 8px 20px -8px var(--accent); }
.pm-tab-n[b-1vkwxpydih] { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: rgba(255,255,255,.14); font-size: .72rem; display: inline-grid; place-items: center; }
.pm-tab.alert .pm-tab-n[b-1vkwxpydih] { background: var(--danger); color: #3f0612; animation: pm-pulse-b-1vkwxpydih 1.8s ease-in-out infinite; }
@keyframes pm-pulse-b-1vkwxpydih { 50% { box-shadow: 0 0 0 5px color-mix(in oklab, var(--danger) 25%, transparent); } }

/* ---------- Layout ---------- */
.pm-layout[b-1vkwxpydih] { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; }
.pm-side[b-1vkwxpydih] { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(70px + var(--safe-top)); }
.pm-main[b-1vkwxpydih] { min-width: 0; }
.pm-dayhead[b-1vkwxpydih] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; font-family: var(--font-display); font-size: 1.1rem; }
.pm-banner[b-1vkwxpydih] { width: 100%; display: flex; align-items: center; gap: 12px; padding: 12px 16px; margin-bottom: 16px; border-radius: 18px; cursor: pointer; text-align: left; color: var(--text); font: inherit;
    background: linear-gradient(135deg, color-mix(in oklab, var(--danger) 26%, transparent), rgba(255,255,255,.02)); border: 1px solid color-mix(in oklab, var(--danger) 45%, transparent); animation: pm-pv-in-b-1vkwxpydih .5s var(--ease-spring) both; }
.pm-banner-ico[b-1vkwxpydih] { font-size: 1.5rem; animation: pm-spark-b-1vkwxpydih 2s ease-in-out infinite; }

/* ---------- Timeline scroll-driven ---------- */
.pm-tl[b-1vkwxpydih] { position: relative; display: flex; flex-direction: column; gap: 24px; }
.pm-tl[b-1vkwxpydih]::before { content: ""; position: absolute; left: 14px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: linear-gradient(var(--border-strong), transparent); }
.pm-group[b-1vkwxpydih] { position: relative; display: flex; flex-direction: column; gap: 10px; }
.pm-group[b-1vkwxpydih]::before { content: ""; position: absolute; left: 14px; top: 30px; bottom: 0; width: 2px; border-radius: 2px; transform-origin: top;
    background: linear-gradient(var(--accent), var(--accent-2)); box-shadow: 0 0 12px var(--accent); }
@supports (animation-timeline: view()) {
    .pm-group[b-1vkwxpydih]::before { animation: pm-line-b-1vkwxpydih linear both; animation-timeline: view(); animation-range: entry 20% cover 60%; }
    @keyframes pm-line-b-1vkwxpydih { from { transform: scaleY(0); } to { transform: scaleY(1); } }
}
.pm-ghead[b-1vkwxpydih] { display: flex; align-items: center; gap: 12px; position: relative; z-index: 1; }
.pm-gdate[b-1vkwxpydih] { width: 30px; height: 36px; flex: none; border-radius: 11px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
    background: rgba(18,14,40,.95); border: 1px solid var(--border-strong); box-shadow: var(--shadow-1); }
.pm-gdate .num[b-1vkwxpydih] { font-size: 1rem; font-weight: 700; }
.pm-gdate span:last-child:not(:first-child)[b-1vkwxpydih] { font-size: .52rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-2); font-weight: 700; }
.pm-ghead.today .pm-gdate[b-1vkwxpydih] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: transparent; box-shadow: 0 8px 22px -8px var(--accent); }
.pm-ghead.today .pm-gdate span[b-1vkwxpydih] { color: #fff !important; }
.pm-ghead.late .pm-gdate[b-1vkwxpydih] { border-color: var(--danger); box-shadow: 0 0 18px -4px var(--danger); }

/* ---------- Fatti ---------- */
.pm-done[b-1vkwxpydih] { display: flex; align-items: center; gap: 12px; margin-left: 34px; padding: 10px 12px; border-radius: 16px; background: rgba(255,255,255,.04); border: 1px solid var(--border);
    animation: pm-done-in-b-1vkwxpydih .5s var(--ease-out) backwards; animation-delay: calc(min(var(--i), 14) * 40ms); }
.pm-done-check[b-1vkwxpydih] { width: 28px; height: 28px; flex: none; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #052e1f; background: var(--c); box-shadow: 0 0 12px -2px var(--c); }
.pm-done-title[b-1vkwxpydih] { font-weight: 600; text-decoration: line-through; text-decoration-color: color-mix(in oklab, var(--c) 70%, transparent); overflow-wrap: anywhere; }
@keyframes pm-done-in-b-1vkwxpydih { from { opacity: 0; transform: translateY(12px) rotateX(-30deg); } }

/* ---------- Colonna laterale ---------- */
.pm-bdays[b-1vkwxpydih] { padding: 16px; }
.pm-blist[b-1vkwxpydih] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pm-blist li[b-1vkwxpydih] { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 12px; cursor: pointer; transition: background .2s, transform .3s var(--ease-spring); }
.pm-blist li:hover[b-1vkwxpydih] { background: var(--surface-2); transform: translateX(3px); }
.pm-bico[b-1vkwxpydih] { width: 34px; height: 34px; flex: none; border-radius: 11px; display: grid; place-items: center; background: color-mix(in oklab, #EC4899 30%, transparent); font-size: 1.1rem; }
.pm-tips[b-1vkwxpydih] { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.pm-tip[b-1vkwxpydih] { text-align: left; border: 1px dashed var(--border-strong); background: transparent; color: var(--text-2); padding: 8px 10px; border-radius: 12px; cursor: pointer; font: inherit; font-size: .85rem; transition: all .25s var(--ease-out); }
.pm-tip:hover[b-1vkwxpydih] { color: var(--text); border-color: var(--accent); background: color-mix(in oklab, var(--accent) 12%, transparent); }

@media (max-width: 1000px) {
    .pm-top[b-1vkwxpydih] { grid-template-columns: minmax(0, 1fr); }
    .pm-layout[b-1vkwxpydih] { grid-template-columns: minmax(0, 1fr); }
    .pm-side[b-1vkwxpydih] { position: static; }
}
@media (max-width: 560px) {
    .pm-now[b-1vkwxpydih] { gap: 14px; padding: 16px; }
    .pm-now[b-1vkwxpydih]  .clk { --size: 96px !important; }
    .pm-kpi[b-1vkwxpydih] { padding: 12px; gap: 8px; }
    .pm-kpi-ico[b-1vkwxpydih] { width: 36px; height: 36px; font-size: 1.1rem; border-radius: 12px; }
    .pm-kpi .kpi-value[b-1vkwxpydih] { font-size: 1.5rem; }
    .pm-kpi .kpi-label[b-1vkwxpydih] { font-size: .66rem; }
    .pm-q-add[b-1vkwxpydih] { padding: 0 12px; }
    .pm-done[b-1vkwxpydih] { margin-left: 26px; }
    .pm-tl[b-1vkwxpydih]::before, .pm-group[b-1vkwxpydih]::before { left: 10px; }
}
/* /Components/Pages/Promemoria/ReminderAlertHost.razor.rz.scp.css */
.rah-backdrop[b-5qviwpsbf4] { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: 16px; perspective: 1400px;
    background: radial-gradient(circle at 50% 40%, color-mix(in oklab, #EF4444 22%, transparent), rgba(3,2,12,.78) 70%); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    animation: rah-fade-b-5qviwpsbf4 .35s ease both; }
.rah-card[b-5qviwpsbf4] { position: relative; width: min(460px, 100%); max-height: calc(100dvh - 32px); overflow-y: auto; text-align: center; padding: 26px 22px 20px; border-radius: 32px;
    background: linear-gradient(160deg, rgba(60,20,50,.96), rgba(18,10,36,.98)); border: 1px solid color-mix(in oklab, var(--c) 55%, rgba(255,255,255,.2));
    box-shadow: 0 60px 120px -30px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.05), 0 0 80px -20px var(--c), inset 0 1px 0 rgba(255,255,255,.14);
    animation: rah-in-b-5qviwpsbf4 .7s cubic-bezier(.34, 1.56, .64, 1) both, rah-glow-b-5qviwpsbf4 2.4s ease-in-out infinite .7s; }
.rah-card[b-5qviwpsbf4]::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; padding: 2px;
    background: conic-gradient(from var(--rah-a, 0deg), transparent, var(--c), #EC4899, transparent 40%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
    animation: rah-spin-b-5qviwpsbf4 3s linear infinite; }
.rah-close[b-5qviwpsbf4] { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border-radius: 12px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); color: #fff; cursor: pointer; }
.rah-bell[b-5qviwpsbf4] { display: flex; justify-content: center; margin: 0 auto 6px; }
.rah-kicker[b-5qviwpsbf4] { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; color: color-mix(in oklab, var(--c) 60%, white); }
.rah-title[b-5qviwpsbf4] { margin: 6px 0 4px; font-size: clamp(1.4rem, 5vw, 1.9rem); overflow-wrap: anywhere; }
.rah-when[b-5qviwpsbf4] { color: #d6d3f0; font-size: .92rem; }
.rah-notes[b-5qviwpsbf4] { margin: 12px 0 0; padding: 10px 12px; border-radius: 14px; background: rgba(0,0,0,.25); color: #c9c6e6; font-size: .9rem; white-space: pre-line; text-align: left; }
.rah-actions[b-5qviwpsbf4] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.rah-actions .rah-done[b-5qviwpsbf4] { grid-column: 1 / -1; color: #052e1f; border: 0; background: linear-gradient(135deg, #34d399, #a3e635); box-shadow: 0 16px 36px -14px #34d399; font-size: 1.05rem; }
.rah-more[b-5qviwpsbf4] { margin-top: 10px; font-size: .8rem; color: #a8a4cc; }
@property --rah-a { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes rah-spin-b-5qviwpsbf4 { to { --rah-a: 360deg; } }
@keyframes rah-fade-b-5qviwpsbf4 { from { opacity: 0; } }
@keyframes rah-in-b-5qviwpsbf4 { from { opacity: 0; transform: rotateX(-40deg) translateY(60px) scale(.8); } }
@keyframes rah-glow-b-5qviwpsbf4 { 50% { box-shadow: 0 60px 120px -30px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.05), 0 0 120px -10px var(--c), inset 0 1px 0 rgba(255,255,255,.14); } }
@media (max-width: 480px) {
    .rah-backdrop[b-5qviwpsbf4] { align-items: flex-end; padding: 10px; }
    .rah-actions[b-5qviwpsbf4] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Promemoria/ReminderCard.razor.rz.scp.css */
/* Elemento della timeline: il wrapper anima l'ingresso, la card interna ha il tilt 3D. */
.rc-item[b-vrqli4pb7c] { position: relative; padding-left: 34px; perspective: 1100px; animation: rc-in-b-vrqli4pb7c .6s var(--ease-out) backwards; animation-delay: calc(min(var(--i), 14) * 45ms); }
@keyframes rc-in-b-vrqli4pb7c { from { opacity: 0; transform: translateX(-24px) rotateY(-22deg); } }
.rc-dot[b-vrqli4pb7c] { position: absolute; left: 7px; top: 26px; width: 16px; height: 16px; border-radius: 50%; background: var(--c); border: 3px solid rgba(10,8,24,.95);
    box-shadow: 0 0 0 2px color-mix(in oklab, var(--c) 60%, transparent), 0 0 16px var(--c); z-index: 1; }
.rc-item.preview .rc-dot[b-vrqli4pb7c] { background: transparent; box-shadow: 0 0 0 2px color-mix(in oklab, var(--c) 50%, transparent); }

.rc-card[b-vrqli4pb7c] { display: flex; align-items: flex-start; gap: 12px; padding: 14px 14px 14px 16px; cursor: pointer; border-radius: 20px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--c) 16%, rgba(255,255,255,.06)), rgba(255,255,255,.02));
    border-color: color-mix(in oklab, var(--c) 22%, var(--border)); }
.rc-card[b-vrqli4pb7c]::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 4px; border-radius: 0 4px 4px 0; background: var(--c); box-shadow: 0 0 14px var(--c); }
.rc-card:hover[b-vrqli4pb7c] { border-color: color-mix(in oklab, var(--c) 50%, var(--border)); box-shadow: 0 24px 44px -24px var(--c), var(--shadow-1); }
.rc-card.late[b-vrqli4pb7c] { border-color: color-mix(in oklab, var(--danger) 55%, transparent); box-shadow: 0 0 0 1px color-mix(in oklab, var(--danger) 30%, transparent), 0 16px 40px -22px var(--danger); }
.rc-card.late[b-vrqli4pb7c]::before { background: var(--danger); animation: rc-blink-b-vrqli4pb7c 1.6s ease-in-out infinite; }
.rc-card.hot .rc-emo[b-vrqli4pb7c] { animation: rc-wiggle-b-vrqli4pb7c 2.6s ease-in-out infinite; }
.rc-emo[b-vrqli4pb7c] { width: 40px; height: 40px; flex: none; border-radius: 13px; display: grid; place-items: center; font-size: 1.3rem;
    background: linear-gradient(135deg, color-mix(in oklab, var(--c) 55%, transparent), color-mix(in oklab, var(--c) 15%, transparent));
    box-shadow: 0 10px 20px -10px var(--c), inset 0 1px 0 rgba(255,255,255,.25); transform: translateZ(26px); }
.rc-ghost[b-vrqli4pb7c] { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 2px dashed color-mix(in oklab, var(--c) 60%, transparent); color: var(--text-2); }
.rc-main[b-vrqli4pb7c] { min-width: 0; padding-top: 1px; }
.rc-title[b-vrqli4pb7c] { font-weight: 650; font-size: 1rem; overflow-wrap: anywhere; line-height: 1.3; }
.rc-meta[b-vrqli4pb7c] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 4px; font-size: .78rem; color: var(--text-2); }
.rc-time[b-vrqli4pb7c] { font-weight: 700; color: var(--text); }
.rc-rel[b-vrqli4pb7c] { color: color-mix(in oklab, var(--c) 60%, white); font-weight: 600; }
.rc-prio[b-vrqli4pb7c] { color: color-mix(in oklab, var(--pc) 60%, white); font-weight: 650; }
.rc-notes[b-vrqli4pb7c] { margin-top: 6px; font-size: .82rem; color: var(--text-3); display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-line; }
.rc-actions[b-vrqli4pb7c] { display: flex; gap: 4px; flex: none; align-self: center; }
.rc-item.preview .rc-card[b-vrqli4pb7c] { opacity: .62; border-style: dashed; }
.rc-item.preview .rc-card:hover[b-vrqli4pb7c] { opacity: .9; }
.rc-item.leaving[b-vrqli4pb7c] { animation: rc-out-b-vrqli4pb7c .7s var(--ease-out) .45s forwards; }
.rc-item.leaving .rc-title[b-vrqli4pb7c] { text-decoration: line-through; text-decoration-color: var(--c); }
@keyframes rc-out-b-vrqli4pb7c { to { opacity: 0; transform: translateX(70px) rotateY(-30deg) scale(.94); height: 0; } }
@keyframes rc-blink-b-vrqli4pb7c { 50% { opacity: .35; } }
@keyframes rc-wiggle-b-vrqli4pb7c { 0%, 80%, 100% { rotate: 0deg; } 85% { rotate: -12deg; } 90% { rotate: 10deg; } 95% { rotate: -6deg; } }
@media (max-width: 560px) {
    .rc-item[b-vrqli4pb7c] { padding-left: 26px; }
    .rc-dot[b-vrqli4pb7c] { left: 3px; }
    .rc-card[b-vrqli4pb7c] { gap: 10px; padding: 12px 10px 12px 14px; }
    .rc-emo[b-vrqli4pb7c] { width: 34px; height: 34px; font-size: 1.1rem; border-radius: 11px; }
    .rc-actions[b-vrqli4pb7c] { flex-direction: column; }
}
/* /Components/Pages/Promemoria/ReminderCheck.razor.rz.scp.css */
.rcheck[b-729djlb6yd] { position: relative; width: 32px; height: 32px; flex: none; padding: 0; border: 0; background: none; cursor: pointer; border-radius: 50%; transition: transform .35s var(--ease-spring); }
.rcheck:hover[b-729djlb6yd] { transform: scale(1.12); }
.rcheck:active[b-729djlb6yd] { transform: scale(.85); }
.rcheck svg[b-729djlb6yd] { width: 100%; height: 100%; overflow: visible; }
.rc-ring[b-729djlb6yd] { fill: rgba(0,0,0,.22); stroke: color-mix(in oklab, var(--c) 75%, white); stroke-width: 2; transition: fill .35s, stroke .35s; }
.rcheck:hover .rc-ring[b-729djlb6yd] { fill: color-mix(in oklab, var(--c) 25%, transparent); }
.rc-mark[b-729djlb6yd] { fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 16; stroke-dashoffset: 16; transition: stroke-dashoffset .4s var(--ease-out) .08s; }
.rcheck.done .rc-ring[b-729djlb6yd] { fill: var(--c); stroke: var(--c); }
.rcheck.done .rc-mark[b-729djlb6yd] { stroke-dashoffset: 0; }
.rcheck.done[b-729djlb6yd] { animation: rc-pop-b-729djlb6yd .5s var(--ease-spring); }
.rc-burst[b-729djlb6yd] { position: absolute; inset: -6px; border-radius: 50%; pointer-events: none; border: 2px solid var(--c); opacity: 0; }
.rcheck.done .rc-burst[b-729djlb6yd] { animation: rc-burst-b-729djlb6yd .6s ease-out; }
.rcheck.done .rc-burst.b2[b-729djlb6yd] { animation: rc-burst-b-729djlb6yd .8s ease-out .12s; border-style: dashed; }
@keyframes rc-pop-b-729djlb6yd { 0% { transform: scale(.7); } 60% { transform: scale(1.22); } 100% { transform: none; } }
@keyframes rc-burst-b-729djlb6yd { from { opacity: .9; transform: scale(.6) rotate(0); } to { opacity: 0; transform: scale(1.8) rotate(40deg); } }
/* /Components/Pages/Promemoria/ReminderSheet.razor.rz.scp.css */
.rs-kind button[b-h0mz8g2p6e] { padding: 8px 6px; font-size: .84rem; }
.rs-emojis[b-h0mz8g2p6e] { margin-top: 12px; padding: 4px 2px 8px; }
.rs-emo[b-h0mz8g2p6e] { width: 42px; height: 42px; border-radius: 13px; border: 1px solid var(--border); background: var(--surface); font-size: 1.25rem; cursor: pointer; transition: transform .3s var(--ease-spring), background .2s, border-color .2s; }
.rs-emo:hover[b-h0mz8g2p6e] { transform: translateY(-3px) scale(1.08); }
.rs-emo.active[b-h0mz8g2p6e] { background: color-mix(in oklab, var(--c) 35%, transparent); border-color: var(--c); transform: scale(1.1); box-shadow: 0 8px 20px -8px var(--c); }
.rs-when[b-h0mz8g2p6e] { margin-top: 14px; }
.rs-allday[b-h0mz8g2p6e] { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; white-space: nowrap; }
.rs-days[b-h0mz8g2p6e] { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.rs-day[b-h0mz8g2p6e] { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--text-2); font-weight: 700; cursor: pointer; transition: all .25s var(--ease-spring); }
.rs-day.active[b-h0mz8g2p6e] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; border-color: transparent; transform: scale(1.08); box-shadow: 0 8px 18px -8px var(--accent); }
.rs-n[b-h0mz8g2p6e] { width: 90px; }
.rs-hint[b-h0mz8g2p6e] { margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: color-mix(in oklab, var(--c) 12%, transparent); border: 1px solid color-mix(in oklab, var(--c) 30%, transparent); font-size: .86rem; }
.rs-swatches[b-h0mz8g2p6e] { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-sw[b-h0mz8g2p6e] { width: 30px; height: 30px; border-radius: 50%; border: 2px solid transparent; background: var(--sc); cursor: pointer; box-shadow: 0 4px 12px -4px var(--sc); transition: transform .25s var(--ease-spring); }
.rs-sw:hover[b-h0mz8g2p6e] { transform: scale(1.12); }
.rs-sw.active[b-h0mz8g2p6e] { border-color: #fff; transform: scale(1.15); }
.rs-history[b-h0mz8g2p6e] { margin-top: 16px; }
.rs-history ul[b-h0mz8g2p6e] { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: .86rem; }
.rs-history li span:first-child[b-h0mz8g2p6e] { color: var(--success); font-weight: 800; margin-right: 6px; }
/* /Components/Pages/Promemoria/SnoozeSheet.razor.rz.scp.css */
.sz-grid[b-oigmv5nj9p] { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; perspective: 900px; }
.sz-opt[b-oigmv5nj9p] { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 14px; border-radius: 16px; text-align: left; cursor: pointer; color: var(--text); font: inherit;
    background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); border: 1px solid var(--border);
    transition: transform .35s var(--ease-spring), border-color .2s, background .2s; animation: sz-in-b-oigmv5nj9p .5s var(--ease-out) backwards; animation-delay: calc(var(--i) * 50ms); }
.sz-opt:hover[b-oigmv5nj9p] { transform: translateY(-3px) rotateX(8deg); border-color: color-mix(in oklab, var(--accent) 60%, transparent); background: color-mix(in oklab, var(--accent) 16%, transparent); }
.sz-opt:active[b-oigmv5nj9p] { transform: scale(.96); }
.sz-ico[b-oigmv5nj9p] { font-size: 1.4rem; }
.sz-move[b-oigmv5nj9p] { margin-top: 8px; gap: 8px; }
.sz-move .input[b-oigmv5nj9p] { flex: 1 1 140px; width: auto; min-width: 0; }
@keyframes sz-in-b-oigmv5nj9p { from { opacity: 0; transform: translateY(14px) rotateX(-30deg); } }
/* /Components/Pages/Spese/Parts/AccountCard.razor.rz.scp.css */
.cc-wrap[b-2djba5oeuo] {
    position: relative; width: 100%; aspect-ratio: 1.586; border-radius: 22px; perspective: 1400px; cursor: pointer;
    animation: cc-in-b-2djba5oeuo .9s var(--ease-spring) backwards; animation-delay: calc(var(--i, 0) * 90ms);
    outline: none;
}
.cc-wrap.compact[b-2djba5oeuo] { width: 280px; }
.cc-wrap.preview[b-2djba5oeuo] { max-width: 340px; margin: 0 auto; cursor: default; }
.cc-wrap:focus-visible[b-2djba5oeuo] { box-shadow: 0 0 0 3px var(--accent-2); }
.cc-wrap.archived[b-2djba5oeuo] { filter: grayscale(.7) brightness(.8); }
@keyframes cc-in-b-2djba5oeuo { from { opacity: 0; transform: perspective(1000px) translateY(50px) rotateX(40deg) rotateZ(-6deg) scale(.85); } }

.cc[b-2djba5oeuo] { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .9s var(--ease-spring); border-radius: inherit; }
.cc.flipped[b-2djba5oeuo] { transform: rotateY(180deg); }
.cc-face[b-2djba5oeuo] {
    position: absolute; inset: 0; border-radius: inherit; overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden;
    padding: 18px 20px; display: flex; flex-direction: column; color: white;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(255,255,255,.28), transparent 45%),
        radial-gradient(90% 120% at 0% 100%, color-mix(in oklab, var(--c2) 90%, black), transparent 70%),
        linear-gradient(135deg, var(--c), var(--c2));
    border: 1px solid rgba(255,255,255,.22);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -20px 40px rgba(0,0,0,.25), 0 30px 50px -22px color-mix(in oklab, var(--c) 85%, black);
}
.cc-back[b-2djba5oeuo] { transform: rotateY(180deg); padding: 0; }

/* Riflesso olografico che segue il puntatore (usa --gx/--gy del tilt globale) */
.cc-holo[b-2djba5oeuo] {
    position: absolute; inset: -40%; pointer-events: none; mix-blend-mode: overlay; opacity: .55;
    background:
        conic-gradient(from calc(var(--mx, 0) * 90deg) at var(--gx, 50%) var(--gy, 50%), #ff7ad9, #7afcff, #fffb7a, #a18cff, #ff7ad9),
        repeating-linear-gradient(115deg, rgba(255,255,255,.0) 0 8px, rgba(255,255,255,.08) 8px 9px);
    filter: blur(18px) saturate(1.3);
    transition: opacity .4s;
}
.cc-wrap:hover .cc-holo[b-2djba5oeuo] { opacity: .85; }
.cc-orb[b-2djba5oeuo] { position: absolute; width: 70%; aspect-ratio: 1; right: -25%; top: -45%; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.22), transparent 65%); pointer-events: none; }

.cc-top[b-2djba5oeuo] { display: flex; align-items: center; justify-content: space-between; position: relative; }
.cc-icon[b-2djba5oeuo] { font-size: 24px; filter: drop-shadow(0 4px 8px rgba(0,0,0,.35)); }
.cc-type[b-2djba5oeuo] { font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; opacity: .85; }
.cc-mid[b-2djba5oeuo] { display: flex; align-items: center; gap: 10px; margin-top: 10px; position: relative; }
.cc-chip[b-2djba5oeuo] {
    width: 42px; height: 31px; border-radius: 7px; position: relative; display: grid; grid-template-rows: repeat(3, 1fr); padding: 4px 6px; gap: 2px;
    background: linear-gradient(135deg, #fde68a, #d4a017 45%, #fef3c7 60%, #b8860b);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.25), 0 2px 5px rgba(0,0,0,.3);
}
.cc-chip i[b-2djba5oeuo] { display: block; border-top: 1px solid rgba(80,50,0,.45); }
.cc-nfc[b-2djba5oeuo] { opacity: .8; transform: rotate(0deg); }
.cc-balance-label[b-2djba5oeuo] { margin-top: auto; font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; opacity: .75; position: relative; }
.cc-balance[b-2djba5oeuo] { font-size: clamp(1.35rem, 3.2vw, 1.75rem); font-weight: 700; letter-spacing: -0.02em; position: relative; text-shadow: 0 2px 12px rgba(0,0,0,.35); line-height: 1.15; }
.cc-balance.negative[b-2djba5oeuo] { color: #ffe4e6; }
.cc-bottom[b-2djba5oeuo] { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; margin-top: 6px; position: relative; }
.cc-name[b-2djba5oeuo] { font-weight: 600; font-size: .92rem; text-shadow: 0 1px 4px rgba(0,0,0,.35); }
.cc-number[b-2djba5oeuo] { font-family: var(--font-display); letter-spacing: .12em; font-size: .8rem; opacity: .85; white-space: nowrap; }

.cc-stripe[b-2djba5oeuo] { height: 20%; margin-top: 8%; background: linear-gradient(90deg, #111, #2a2a2a 40%, #111); }
.cc-back-body[b-2djba5oeuo] { padding: 10px 18px 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; min-height: 0; }
.cc-stats[b-2djba5oeuo] { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; }
.cc-stats > div[b-2djba5oeuo] { display: flex; flex-direction: column; min-width: 0; }
.cc-stats .lbl[b-2djba5oeuo] { font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; opacity: .75; }
.cc-stats .num[b-2djba5oeuo] { font-weight: 700; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-stats .pos[b-2djba5oeuo] { color: #bbf7d0; } .cc-stats .neg[b-2djba5oeuo] { color: #fecdd3; }
.cc-actions[b-2djba5oeuo] { display: flex; gap: 6px; margin-top: auto; flex-wrap: wrap; }
.cc-actions[b-2djba5oeuo]  .btn { background: rgba(0,0,0,.28); border-color: rgba(255,255,255,.2); height: 30px; padding: 0 10px; font-size: .78rem; border-radius: 10px; }

.cc-shadow[b-2djba5oeuo] { position: absolute; left: 8%; right: 8%; bottom: -14px; height: 24px; border-radius: 50%; background: color-mix(in oklab, var(--c) 60%, black); filter: blur(18px); opacity: .6; z-index: -1; transform: translateZ(-40px); }

.cc-wrap.compact .cc-face[b-2djba5oeuo] { padding: 14px 16px; }
.cc-wrap.compact .cc-balance[b-2djba5oeuo] { font-size: 1.35rem; }
.cc-wrap.compact .cc-chip[b-2djba5oeuo] { width: 36px; height: 26px; }
@media (max-width: 480px) { .cc-wrap.compact[b-2djba5oeuo] { width: 250px; } .cc-face[b-2djba5oeuo] { padding: 14px 16px; } }
/* /Components/Pages/Spese/Parts/ChartCanvas.razor.rz.scp.css */
.chart-box[b-xu6nm5rim8] { position: relative; width: 100%; min-width: 0; }
.chart-box canvas[b-xu6nm5rim8] { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
/* /Components/Pages/Spese/Parts/FinanceShell.razor.rz.scp.css */
/* Stili condivisi da tutte le pagine del modulo Finanze (applicati tramite ::deep sotto .fin). */

.fin[b-d77eew6i7u] { position: relative; }

.fin-fab[b-d77eew6i7u] { box-shadow: 0 20px 40px -10px color-mix(in oklab, var(--accent) 80%, transparent), inset 0 1px 0 rgba(255,255,255,.35); }
.fin-fab[b-d77eew6i7u]::before {
    content: ""; position: absolute; inset: -6px; border-radius: 26px; border: 2px solid color-mix(in oklab, var(--accent-2) 60%, transparent);
    animation: fab-ping-b-d77eew6i7u 2.8s var(--ease-out) infinite 1.2s; pointer-events: none;
}
@keyframes fab-ping-b-d77eew6i7u { 0% { transform: scale(.9); opacity: .9; } 70%, 100% { transform: scale(1.35); opacity: 0; } }

/* ---------- Layout ---------- */
[b-d77eew6i7u] .fin-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
[b-d77eew6i7u] .fin-toolbar .spacer { flex: 1; }
[b-d77eew6i7u] .fin-section { margin-top: 26px; }
[b-d77eew6i7u] .fin-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
[b-d77eew6i7u] .fin-section-head h2 { font-size: 1.2rem; display: flex; align-items: center; gap: 8px; }
[b-d77eew6i7u] .fin-section-head a.more, [b-d77eew6i7u] .link { color: var(--accent-2); font-weight: 600; font-size: .86rem; white-space: nowrap; }
[b-d77eew6i7u] .fin-section-head a.more:hover, [b-d77eew6i7u] .link:hover { text-decoration: underline; }
[b-d77eew6i7u] .fin-grid-main { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 960px) { [b-d77eew6i7u] .fin-grid-main { grid-template-columns: minmax(0, 1fr); } }

/* ---------- KPI card ---------- */
[b-d77eew6i7u] .kcard { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
[b-d77eew6i7u] .kcard .k-ico {
    width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; font-size: 18px;
    background: linear-gradient(135deg, color-mix(in oklab, var(--kc, var(--accent)) 55%, transparent), color-mix(in oklab, var(--kc, var(--accent)) 20%, transparent));
    box-shadow: 0 10px 20px -10px var(--kc, var(--accent)), inset 0 1px 0 rgba(255,255,255,.25);
}
[b-d77eew6i7u] .kcard .k-label { font-size: .72rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
[b-d77eew6i7u] .kcard .k-value { font-family: var(--font-display); font-size: clamp(1.35rem, 2.6vw, 1.75rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; }
[b-d77eew6i7u] .kcard .k-foot { font-size: .78rem; color: var(--text-3); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
[b-d77eew6i7u] .kcard::before {
    content: ""; position: absolute; width: 160px; height: 160px; right: -60px; top: -70px; border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, color-mix(in oklab, var(--kc, var(--accent)) 35%, transparent), transparent 70%);
}
[b-d77eew6i7u] .delta { display: inline-flex; align-items: center; gap: 3px; padding: 1px 8px; border-radius: 99px; font-weight: 700; font-size: .74rem; }
[b-d77eew6i7u] .delta.good { background: rgba(52,211,153,.16); color: #6ee7b7; }
[b-d77eew6i7u] .delta.bad { background: rgba(251,113,133,.16); color: #fda4af; }
[b-d77eew6i7u] .delta.flat { background: rgba(255,255,255,.08); color: var(--text-2); }

/* ---------- Transizione 3D tra mesi ---------- */
[b-d77eew6i7u] .month-stage { perspective: 1400px; }
[b-d77eew6i7u] .month-stage > .ms-inner { transform-origin: 50% 0; }
[b-d77eew6i7u] .month-stage.next > .ms-inner { animation: ms-next-b-d77eew6i7u .65s var(--ease-out) both; }
[b-d77eew6i7u] .month-stage.prev > .ms-inner { animation: ms-prev-b-d77eew6i7u .65s var(--ease-out) both; }
@keyframes ms-next-b-d77eew6i7u { from { opacity: 0; transform: rotateY(-24deg) translate3d(80px, 0, -120px); } to { opacity: 1; transform: none; } }
@keyframes ms-prev-b-d77eew6i7u { from { opacity: 0; transform: rotateY(24deg) translate3d(-80px, 0, -120px); } to { opacity: 1; transform: none; } }

/* ---------- Gruppi per giorno ---------- */
[b-d77eew6i7u] .day-group { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
[b-d77eew6i7u] .day-head {
    position: sticky; top: calc(64px + var(--safe-top)); z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 8px 14px; border-radius: 14px; background: rgba(12, 10, 34, .72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border: 1px solid var(--border); font-size: .84rem;
}
[b-d77eew6i7u] .day-head .d-label { font-weight: 700; font-family: var(--font-display); }
[b-d77eew6i7u] .day-head .d-num { font-size: 1.1rem; font-weight: 800; color: var(--accent-2); margin-right: 6px; }
[b-d77eew6i7u] .day-head .d-total { font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------- Legenda categorie con barre ---------- */
[b-d77eew6i7u] .cat-legend { display: flex; flex-direction: column; gap: 10px; }
[b-d77eew6i7u] .cl-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; padding: 6px 8px; border-radius: 12px; transition: background .2s; }
[b-d77eew6i7u] .cl-row.clickable { cursor: pointer; }
[b-d77eew6i7u] .cl-row.clickable:hover { background: rgba(255,255,255,.05); }
[b-d77eew6i7u] .cl-ico { grid-row: span 2; width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; font-size: 17px; background: color-mix(in oklab, var(--c) 35%, transparent); box-shadow: inset 0 1px 0 rgba(255,255,255,.15); }
[b-d77eew6i7u] .cl-name { font-weight: 600; font-size: .9rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[b-d77eew6i7u] .cl-amt { font-weight: 700; font-variant-numeric: tabular-nums; font-size: .9rem; white-space: nowrap; }
[b-d77eew6i7u] .cl-bar { grid-column: 2 / span 2; height: 6px; border-radius: 99px; background: rgba(255,255,255,.06); overflow: hidden; }
[b-d77eew6i7u] .cl-bar > span { display: block; height: 100%; width: var(--v); border-radius: inherit; background: linear-gradient(90deg, color-mix(in oklab, var(--c) 60%, transparent), var(--c)); box-shadow: 0 0 12px var(--c); animation: bar-grow-b-d77eew6i7u 1.1s var(--ease-out) backwards; animation-delay: calc(var(--i, 0) * 70ms); }
@keyframes bar-grow-b-d77eew6i7u { from { width: 0; } }
[b-d77eew6i7u] .cl-pct { color: var(--text-3); font-size: .74rem; font-weight: 600; margin-left: 6px; }

/* ---------- Donut con centro ---------- */
[b-d77eew6i7u] .donut-wrap { position: relative; }
[b-d77eew6i7u] .donut-center { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; text-align: center; }
[b-d77eew6i7u] .donut-center .dc-label { font-size: .72rem; color: var(--text-3); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
[b-d77eew6i7u] .donut-center .dc-value { font-family: var(--font-display); font-size: 1.45rem; font-weight: 700; letter-spacing: -0.02em; }

/* ---------- Form ---------- */
[b-d77eew6i7u] .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
[b-d77eew6i7u] .form-grid .span-2 { grid-column: 1 / -1; }
@media (max-width: 560px) { [b-d77eew6i7u] .form-grid { grid-template-columns: minmax(0, 1fr); } }
[b-d77eew6i7u] .switch-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid var(--border); }
[b-d77eew6i7u] .switch-row .sr-text { display: flex; flex-direction: column; min-width: 0; }
[b-d77eew6i7u] .switch-row .sr-text small { color: var(--text-3); }
[b-d77eew6i7u] .danger-zone { margin-top: 18px; padding-top: 14px; border-top: 1px dashed rgba(251,113,133,.35); display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
[b-d77eew6i7u] .input-euro { position: relative; }
[b-d77eew6i7u] .input-euro::before { content: "€"; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--text-3); font-weight: 600; pointer-events: none; }
[b-d77eew6i7u] .input-euro .input { padding-left: 32px; font-variant-numeric: tabular-nums; }

/* ---------- Varie ---------- */
[b-d77eew6i7u] .glow-num { background: linear-gradient(120deg, #fff 20%, var(--accent-2) 60%, var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 8px 30px color-mix(in oklab, var(--accent) 45%, transparent)); }
[b-d77eew6i7u] .pill-stat { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; background: rgba(255,255,255,.06); border: 1px solid var(--border); font-size: .82rem; font-weight: 600; white-space: nowrap; }
[b-d77eew6i7u] .empty-mini { text-align: center; padding: 26px 10px; color: var(--text-3); }
[b-d77eew6i7u] .empty-mini .em-ico { font-size: 34px; display: block; margin-bottom: 6px; animation: float 4s ease-in-out infinite; }
[b-d77eew6i7u] .tag-toggle { cursor: pointer; }
[b-d77eew6i7u] .search-box { position: relative; flex: 1 1 220px; min-width: 0; }
[b-d77eew6i7u] .search-box svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--text-3); pointer-events: none; }
[b-d77eew6i7u] .search-box .input { padding-left: 42px; height: 44px; }
[b-d77eew6i7u] .count-badge { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--accent); color: white; font-size: .7rem; font-weight: 800; display: inline-grid; place-items: center; }
[b-d77eew6i7u] .hero-stat { text-align: right; }
[b-d77eew6i7u] .hero-stat .hs-label { font-size: .72rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
[b-d77eew6i7u] .hero-stat .hs-value { font-family: var(--font-display); font-size: clamp(1.4rem, 3.5vw, 2.1rem); font-weight: 700; letter-spacing: -0.03em; }
@media (max-width: 700px) { [b-d77eew6i7u] .hero-stat { display: none; } }
/* /Components/Pages/Spese/Parts/MonthNav.razor.rz.scp.css */
.month-nav[b-moblmrqkof] { display: inline-flex; align-items: center; gap: 4px; padding: 5px; border-radius: 18px; }
.mn-label-wrap[b-moblmrqkof] { perspective: 500px; min-width: 150px; text-align: center; overflow: hidden; }
.mn-label[b-moblmrqkof] { display: inline-flex; align-items: baseline; gap: 6px; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; transform-origin: 50% 50% -30px; }
.mn-year[b-moblmrqkof] { color: var(--text-3); font-weight: 600; font-size: .9rem; }
.mn-label.next[b-moblmrqkof] { animation: mn-next-b-moblmrqkof .55s var(--ease-out) both; }
.mn-label.prev[b-moblmrqkof] { animation: mn-prev-b-moblmrqkof .55s var(--ease-out) both; }
.mn-today[b-moblmrqkof] { margin-left: 2px; }
@keyframes mn-next-b-moblmrqkof { from { opacity: 0; transform: rotateX(-85deg) translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes mn-prev-b-moblmrqkof { from { opacity: 0; transform: rotateX(85deg) translateY(-12px); } to { opacity: 1; transform: none; } }
@media (max-width: 480px) { .mn-label-wrap[b-moblmrqkof] { min-width: 118px; } .mn-label[b-moblmrqkof] { font-size: .98rem; } }
/* /Components/Pages/Spese/Parts/Num.razor.rz.scp.css */
.countup[b-x08779gsk8] { font-variant-numeric: tabular-nums; white-space: nowrap; }
.countup:empty[b-x08779gsk8]::before { content: attr(data-text); }
/* /Components/Pages/Spese/Parts/Ring.razor.rz.scp.css */
.ring[b-4mf59zxc7j] { position: relative; width: var(--size); height: var(--size); flex: none; perspective: 600px; }
.ring-tilt[b-4mf59zxc7j] { position: absolute; inset: 0; transform-style: preserve-3d; animation: ring-in-b-4mf59zxc7j 1.1s var(--ease-spring) both; border-radius: 50%; }
.ring svg[b-4mf59zxc7j] { width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; filter: drop-shadow(0 10px 18px rgba(0,0,0,.45)); }
.ring-track[b-4mf59zxc7j] { fill: none; stroke: rgba(255,255,255,.08); stroke-width: var(--stroke); }
.ring-bar[b-4mf59zxc7j] {
    fill: none; stroke-width: var(--stroke); stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: var(--off);
    transition: stroke-dashoffset 1.3s var(--ease-out);
    animation: ring-draw-b-4mf59zxc7j 1.5s var(--ease-out) both .15s;
    filter: drop-shadow(0 0 6px color-mix(in oklab, var(--c2) 70%, transparent));
}
.ring.over .ring-bar[b-4mf59zxc7j] { stroke: #fb7185; filter: drop-shadow(0 0 8px rgba(251,113,133,.8)); }
.ring-shine[b-4mf59zxc7j] {
    position: absolute; inset: 6%; border-radius: 50%; pointer-events: none;
    background: conic-gradient(from 0deg, transparent 0 70%, rgba(255,255,255,.22) 80%, transparent 90%);
    mask: radial-gradient(circle, transparent 60%, black 62%, black 70%, transparent 72%);
    -webkit-mask: radial-gradient(circle, transparent 60%, black 62%, black 70%, transparent 72%);
    animation: ring-spin-b-4mf59zxc7j 6s linear infinite;
}
.ring-center[b-4mf59zxc7j] { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; transform: translateZ(20px); }
@keyframes ring-draw-b-4mf59zxc7j { from { stroke-dashoffset: 100; } }
@keyframes ring-in-b-4mf59zxc7j { from { transform: rotateX(55deg) rotateZ(-40deg) scale(.7); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes ring-spin-b-4mf59zxc7j { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ring-shine[b-4mf59zxc7j] { animation: none; } }
/* /Components/Pages/Spese/Parts/SwatchPicker.razor.rz.scp.css */
.picker[b-bsy2dp5qh0] { display: flex; flex-direction: column; gap: 10px; }
.swatches[b-bsy2dp5qh0] { display: flex; flex-wrap: wrap; gap: 8px; }
.sw-color[b-bsy2dp5qh0] {
    width: 32px; height: 32px; border-radius: 11px; border: 2px solid transparent; cursor: pointer; position: relative;
    background: linear-gradient(135deg, var(--c), color-mix(in oklab, var(--c) 60%, black));
    box-shadow: 0 6px 14px -6px var(--c), inset 0 1px 0 rgba(255,255,255,.3);
    transition: transform .3s var(--ease-spring), border-color .2s;
    display: grid; place-items: center; color: white; font-weight: 800;
}
.sw-color:hover[b-bsy2dp5qh0] { transform: translateY(-2px) scale(1.08); }
.sw-color.active[b-bsy2dp5qh0] { border-color: white; transform: scale(1.12); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c) 45%, transparent), 0 8px 18px -6px var(--c); }
.sw-color.custom[b-bsy2dp5qh0] { background: conic-gradient(#f43f5e, #f59e0b, #84cc16, #22d3ee, #6366f1, #d946ef, #f43f5e); overflow: hidden; }
.sw-color.custom input[b-bsy2dp5qh0] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.sw-color.custom span[b-bsy2dp5qh0] { pointer-events: none; text-shadow: 0 1px 3px rgba(0,0,0,.6); }
.emoji-input[b-bsy2dp5qh0] { width: 84px; text-align: center; font-size: 22px; height: 46px; }
.swatches:has(.sw-emoji)[b-bsy2dp5qh0] { max-height: 168px; overflow-y: auto; padding: 2px; }
.sw-emoji[b-bsy2dp5qh0] {
    width: 40px; height: 40px; border-radius: 12px; border: 1px solid transparent; background: rgba(255,255,255,.05); font-size: 20px; cursor: pointer;
    transition: transform .3s var(--ease-spring), background .2s;
}
.sw-emoji:hover[b-bsy2dp5qh0] { transform: scale(1.15) rotate(-6deg); background: rgba(255,255,255,.1); }
.sw-emoji.active[b-bsy2dp5qh0] { background: color-mix(in oklab, var(--accent) 40%, transparent); border-color: color-mix(in oklab, var(--accent) 70%, white); transform: scale(1.1); }
/* /Components/Pages/Spese/Parts/TransactionEditor.razor.rz.scp.css */
.txe[b-p440skw051] { --tc: #fb7185; --tc2: #f97316; display: flex; flex-direction: column; gap: 16px; }
.txe.type-entrata[b-p440skw051] { --tc: #34d399; --tc2: #22d3ee; }
.txe.type-trasferimento[b-p440skw051] { --tc: #60a5fa; --tc2: #a78bfa; }

/* Tipo */
.txe-types button[b-p440skw051] { display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: color .25s, background .35s var(--ease-out), box-shadow .35s; }
.txe-types .t-ico[b-p440skw051] { font-weight: 800; }
.txe-types .active.t-uscita[b-p440skw051] { background: linear-gradient(135deg, rgba(251,113,133,.45), rgba(249,115,22,.25)); color: white; box-shadow: 0 8px 20px -10px #fb7185; }
.txe-types .active.t-entrata[b-p440skw051] { background: linear-gradient(135deg, rgba(52,211,153,.45), rgba(34,211,238,.25)); color: white; box-shadow: 0 8px 20px -10px #34d399; }
.txe-types .active.t-trasferimento[b-p440skw051] { background: linear-gradient(135deg, rgba(96,165,250,.45), rgba(167,139,250,.25)); color: white; box-shadow: 0 8px 20px -10px #60a5fa; }

/* Importo */
.amount-stage[b-p440skw051] { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 14px 0 6px; perspective: 700px; min-height: 104px; }
.amount-orb[b-p440skw051] {
    position: absolute; width: 240px; height: 120px; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%, -50%);
    background: radial-gradient(closest-side, color-mix(in oklab, var(--tc) 55%, transparent), transparent);
    filter: blur(24px); opacity: .55; pointer-events: none; transition: background .5s;
    animation: orb-pulse-b-p440skw051 3.2s ease-in-out infinite;
}
@keyframes orb-pulse-b-p440skw051 { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: .45; } 50% { transform: translate(-50%, -50%) scale(1.15); opacity: .7; } }
.amount-display[b-p440skw051], .amount-input[b-p440skw051] {
    position: relative; display: flex; align-items: baseline; justify-content: center; gap: 8px; max-width: 100%;
    font-family: var(--font-display); font-weight: 700; letter-spacing: -0.04em; font-variant-numeric: tabular-nums;
}
.amount-display[b-p440skw051] { font-size: clamp(2.6rem, 12vw, 3.6rem); animation: amt-pop-b-p440skw051 .35s var(--ease-spring); overflow-wrap: anywhere; text-align: center; }
@keyframes amt-pop-b-p440skw051 { from { transform: rotateX(28deg) scale(.94); opacity: .6; } }
.amount-display .val[b-p440skw051], .amount-field[b-p440skw051] {
    background: linear-gradient(120deg, #fff 15%, var(--tc) 60%, var(--tc2)); -webkit-background-clip: text; background-clip: text; color: transparent;
    filter: drop-shadow(0 6px 22px color-mix(in oklab, var(--tc) 45%, transparent));
}
.amount-display .cur[b-p440skw051], .amount-input .cur[b-p440skw051] { font-size: .5em; color: var(--text-2); font-weight: 600; }
.amount-input[b-p440skw051] { font-size: 3.2rem; width: 100%; }
.amount-input .cur[b-p440skw051] { font-size: 1.6rem; }
.amount-field[b-p440skw051] {
    width: min(100%, 380px); border: 0; outline: none; text-align: center; font: inherit; letter-spacing: inherit;
    padding: 4px 8px; border-radius: 18px; caret-color: var(--tc);
    background-color: transparent;
    border-bottom: 2px solid color-mix(in oklab, var(--tc) 40%, transparent);
    transition: border-color .3s;
}
.amount-field[b-p440skw051]::placeholder { color: rgba(255,255,255,.18); -webkit-text-fill-color: rgba(255,255,255,.18); }
.amount-field:focus[b-p440skw051] { border-bottom-color: var(--tc); }
.amount-expr[b-p440skw051] { position: relative; color: var(--text-2); font-weight: 600; margin-top: 2px; font-variant-numeric: tabular-nums; }

/* Tastierino */
.keypad[b-p440skw051] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; perspective: 800px; }
.key[b-p440skw051] {
    height: 50px; border-radius: 15px; border: 1px solid rgba(255,255,255,.08); cursor: pointer; user-select: none;
    font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; color: var(--text);
    background: linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.04));
    box-shadow: 0 4px 0 rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.14);
    transition: transform .12s, box-shadow .12s, background .2s;
    touch-action: manipulation;
}
.key:active[b-p440skw051] { transform: translateY(3px) rotateX(10deg); box-shadow: 0 1px 0 rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.1); background: color-mix(in oklab, var(--tc) 25%, rgba(255,255,255,.06)); }
.key.op[b-p440skw051] { color: var(--tc); background: color-mix(in oklab, var(--tc) 14%, rgba(255,255,255,.04)); }
.key.fn[b-p440skw051] { color: var(--text-2); font-size: 1.1rem; }

/* Sezioni */
.txe-sec[b-p440skw051] { display: flex; flex-direction: column; gap: 10px; }
.sec-head[b-p440skw051] { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 24px; }
.sel-pill[b-p440skw051] { font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 99px; background: color-mix(in oklab, var(--c) 25%, transparent); border: 1px solid color-mix(in oklab, var(--c) 45%, transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60%; }

.cat-grid[b-p440skw051] { display: grid; grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 8px; perspective: 900px; }
.cat-tile[b-p440skw051] {
    display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 4px 8px; border-radius: 16px; cursor: pointer; min-width: 0;
    background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.06); color: var(--text-2);
    transition: transform .35s var(--ease-spring), background .25s, border-color .25s, box-shadow .3s, color .2s;
    animation: tile-in-b-p440skw051 .5s var(--ease-out) backwards; animation-delay: calc(min(var(--i), 20) * 18ms);
}
@keyframes tile-in-b-p440skw051 { from { opacity: 0; transform: translateY(12px) rotateX(30deg); } }
.cat-tile:hover[b-p440skw051] { background: rgba(255,255,255,.07); transform: translateY(-2px); color: var(--text); }
.cat-ico[b-p440skw051] {
    width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; font-size: 21px;
    background: radial-gradient(circle at 30% 25%, color-mix(in oklab, var(--c) 60%, white 8%), color-mix(in oklab, var(--c) 35%, black 20%));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 6px 14px -8px var(--c);
    transition: transform .4s var(--ease-spring);
}
.cat-name[b-p440skw051] { font-size: .72rem; font-weight: 600; line-height: 1.2; text-align: center; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; }
.cat-tile.active[b-p440skw051] {
    color: white; transform: translateY(-4px) scale(1.04);
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 32%, transparent), rgba(255,255,255,.03));
    border-color: color-mix(in oklab, var(--c) 70%, white 10%);
    box-shadow: 0 16px 28px -14px var(--c), inset 0 1px 0 rgba(255,255,255,.12);
}
.cat-tile.active .cat-ico[b-p440skw051] { transform: translateZ(20px) rotate(-8deg) scale(1.1); }
.sub-row[b-p440skw051] { display: flex; flex-wrap: wrap; gap: 8px; animation: sub-in-b-p440skw051 .45s var(--ease-out); }
@keyframes sub-in-b-p440skw051 { from { opacity: 0; transform: translateY(-8px); } }
.sub-chip[b-p440skw051] { animation: tile-in-b-p440skw051 .4s var(--ease-out) backwards; animation-delay: calc(var(--i) * 30ms); }
.sub-chip.active[b-p440skw051] { background: color-mix(in oklab, var(--c) 35%, transparent); border-color: color-mix(in oklab, var(--c) 70%, transparent); }

.acc-row[b-p440skw051] { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 4px; }
.acc-row[b-p440skw051]::-webkit-scrollbar { display: none; }
.acc-chip[b-p440skw051] {
    flex: none; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px 0 10px; border-radius: 13px; cursor: pointer;
    border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text-2); font-weight: 600; font-size: .87rem;
    transition: all .3s var(--ease-out);
}
.acc-chip span[b-p440skw051] { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 9px; background: color-mix(in oklab, var(--c) 35%, transparent); font-size: 15px; }
.acc-chip.active[b-p440skw051] { color: white; border-color: color-mix(in oklab, var(--c) 75%, white 10%); background: linear-gradient(135deg, color-mix(in oklab, var(--c) 45%, transparent), color-mix(in oklab, var(--c) 15%, transparent)); box-shadow: 0 10px 22px -12px var(--c); }
.transfer-arrow[b-p440skw051] { align-self: center; font-size: 1.2rem; color: #93c5fd; animation: bob-b-p440skw051 1.6s ease-in-out infinite; }
@keyframes bob-b-p440skw051 { 50% { transform: translateY(4px); } }

.date-row[b-p440skw051] { gap: 8px; }
.date-input[b-p440skw051] { width: auto; flex: 1 1 150px; height: 38px; border-radius: 12px; }

.suggest-wrap[b-p440skw051] { position: relative; }
.suggest[b-p440skw051] {
    position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 5; border-radius: 16px; padding: 6px; display: flex; flex-direction: column; gap: 2px;
    background: rgba(22, 19, 58, .97); animation: sug-in-b-p440skw051 .3s var(--ease-out); max-height: 290px; overflow-y: auto;
}
@keyframes sug-in-b-p440skw051 { from { opacity: 0; transform: translateY(-6px) scale(.98); } }
.sug[b-p440skw051] { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; border: 0; background: transparent; cursor: pointer; text-align: left; color: var(--text); min-width: 0; }
.sug:hover[b-p440skw051], .sug.sel[b-p440skw051] { background: rgba(255,255,255,.08); }
.sug-ico[b-p440skw051] { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in oklab, var(--c) 35%, transparent); flex: none; }
.sug-title[b-p440skw051] { display: block; font-weight: 600; }
.sug-sub[b-p440skw051] { display: block; font-size: .75rem; color: var(--text-3); }
.sug-amt[b-p440skw051] { font-weight: 600; color: var(--text-2); font-size: .88rem; }

.more-toggle[b-p440skw051] {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border-radius: 14px; border: 1px dashed var(--border-strong);
    background: transparent; color: var(--text); cursor: pointer; font-weight: 600; text-align: left;
}
.more-toggle > span:first-child[b-p440skw051] { flex: none; }
.more-toggle .small[b-p440skw051] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.more-toggle svg[b-p440skw051] { transition: transform .35s var(--ease-spring); }
.more-toggle.open svg[b-p440skw051] { transform: rotate(180deg); }
.more[b-p440skw051] { animation: sub-in-b-p440skw051 .4s var(--ease-out); }
.tag-row[b-p440skw051] { gap: 6px; margin-top: 4px; }
.tag-chip[b-p440skw051] { height: 30px; font-size: .8rem; }

.txe-error[b-p440skw051] { color: var(--danger); font-size: .85rem; font-weight: 600; align-self: center; }
.del-btn:hover[b-p440skw051] { color: var(--danger); }

@media (max-width: 640px) {
    .txe[b-p440skw051] { gap: 14px; }
    .cat-grid[b-p440skw051] { grid-auto-flow: column; grid-template-rows: repeat(2, auto); grid-template-columns: none; grid-auto-columns: 80px; overflow-x: auto; scrollbar-width: none; padding: 4px 2px 6px; scroll-snap-type: x proximity; }
    .cat-grid[b-p440skw051]::-webkit-scrollbar { display: none; }
    .cat-tile[b-p440skw051] { scroll-snap-align: start; }
    .amount-stage[b-p440skw051] { min-height: 86px; padding-top: 6px; }
}
/* /Components/Pages/Spese/Parts/TxRow.razor.rz.scp.css */
.tx-row[b-mjtfuf2dap] {
    position: relative; display: flex; align-items: center; gap: 14px; padding: 11px 14px; border-radius: 18px; cursor: pointer;
    background: linear-gradient(100deg, color-mix(in oklab, var(--c) 9%, transparent), rgba(255,255,255,.025) 45%);
    border: 1px solid rgba(255,255,255,.05);
    transition: background .25s, border-color .25s, transform .4s var(--ease-spring), box-shadow .3s;
}
.tx-row:hover[b-mjtfuf2dap] { border-color: color-mix(in oklab, var(--c) 40%, var(--border)); transform: translateX(4px) scale(1.005); box-shadow: 0 14px 30px -18px color-mix(in oklab, var(--c) 80%, transparent); }
.tx-row:focus-visible[b-mjtfuf2dap] { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.tx-row:active[b-mjtfuf2dap] { transform: scale(.985); }
.tx-row.anim[b-mjtfuf2dap] { animation: row-in-b-mjtfuf2dap .6s var(--ease-out) backwards; animation-delay: calc(min(var(--i), 16) * 32ms); }
@keyframes row-in-b-mjtfuf2dap { from { opacity: 0; transform: perspective(700px) translate3d(0, 18px, -40px) rotateX(18deg); } }
.tx-ico[b-mjtfuf2dap] {
    width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; font-size: 20px; flex: none;
    background: radial-gradient(circle at 30% 25%, color-mix(in oklab, var(--c) 70%, white 10%), color-mix(in oklab, var(--c) 45%, #000 20%));
    box-shadow: 0 8px 18px -8px color-mix(in oklab, var(--c) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.3), inset 0 -4px 10px rgba(0,0,0,.2);
    transform: translateZ(10px);
}
.tx-row.tr .tx-ico[b-mjtfuf2dap] { font-weight: 800; color: white; }
.tx-main[b-mjtfuf2dap] { display: flex; flex-direction: column; gap: 2px; }
.tx-title[b-mjtfuf2dap] { font-weight: 600; }
.tx-sub[b-mjtfuf2dap] { font-size: .8rem; color: var(--text-3); display: flex; gap: 6px; align-items: center; }
.tx-sub .dot[b-mjtfuf2dap] { opacity: .6; }
.tx-tag[b-mjtfuf2dap] { padding: 0 7px; border-radius: 99px; background: rgba(255,255,255,.07); color: var(--text-2); font-size: .7rem; line-height: 1.6; }
.tx-tag.rec[b-mjtfuf2dap] { color: var(--accent-2); }
.tx-amt[b-mjtfuf2dap] { font-weight: 700; font-size: 1.02rem; white-space: nowrap; }
.tx-row.in .tx-amt[b-mjtfuf2dap] { color: var(--income); text-shadow: 0 0 18px rgba(52,211,153,.35); }
.tx-row.out .tx-amt[b-mjtfuf2dap] { color: var(--text); }
.tx-row.tr .tx-amt[b-mjtfuf2dap] { color: #93c5fd; }
@media (max-width: 480px) { .tx-row[b-mjtfuf2dap] { padding: 10px 11px; gap: 11px; } .tx-ico[b-mjtfuf2dap] { width: 38px; height: 38px; font-size: 18px; } }
/* /Components/Pages/Spese/SpeseBudget.razor.rz.scp.css */
.budget-hero[b-iljry7b65q] { display: flex; align-items: center; gap: 28px; padding: 24px 26px; border-radius: var(--radius-xl); }
.ring-val[b-iljry7b65q] { font-size: 1.8rem; font-weight: 700; font-family: var(--font-display); }
.ring-lbl[b-iljry7b65q] { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--text-2); }
.bh-stats[b-iljry7b65q] { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 22px; min-width: 0; }
.bh-stat[b-iljry7b65q] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bh-stat .k-label[b-iljry7b65q] { font-size: .7rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.bh-v[b-iljry7b65q] { font-family: var(--font-display); font-size: clamp(1.2rem, 2.8vw, 1.6rem); font-weight: 700; letter-spacing: -0.02em; }
.bh-stat.highlight[b-iljry7b65q] { padding: 10px 14px; border-radius: 16px; background: rgba(0,0,0,.2); border: 1px solid rgba(255,255,255,.1); }
@media (max-width: 640px) {
    .budget-hero[b-iljry7b65q] { flex-direction: column; padding: 20px 16px; gap: 18px; }
    .bh-stats[b-iljry7b65q] { width: 100%; gap: 12px; }
    .bh-stat.highlight[b-iljry7b65q] { grid-column: 1 / -1; }
}

.bline[b-iljry7b65q] { display: flex; flex-direction: column; gap: 10px; cursor: pointer; padding: 16px 18px; border-left: 3px solid var(--c); }
.bline.state-sforato[b-iljry7b65q] { box-shadow: 0 0 0 1px rgba(251,113,133,.35), 0 18px 40px -20px rgba(251,113,133,.6); animation: pulse-danger-b-iljry7b65q 2.6s ease-in-out infinite; }
@keyframes pulse-danger-b-iljry7b65q { 50% { box-shadow: 0 0 0 1px rgba(251,113,133,.6), 0 18px 50px -14px rgba(251,113,133,.8); } }
.progress.pace[b-iljry7b65q] { overflow: visible; height: 12px; }
.progress.pace > span[b-iljry7b65q] { overflow: hidden; }
.progress.pace[b-iljry7b65q]::after { content: ""; position: absolute; top: -4px; bottom: -4px; left: var(--pace); width: 2px; border-radius: 2px; background: rgba(255,255,255,.85); box-shadow: 0 0 8px white; }

.nob-grid[b-iljry7b65q] { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.nob[b-iljry7b65q] {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 16px; border: 1px solid var(--border); background: rgba(255,255,255,.03);
    color: var(--text); cursor: pointer; text-align: left; min-width: 0; transition: all .35s var(--ease-spring);
    animation: nob-in-b-iljry7b65q .5s var(--ease-out) backwards; animation-delay: calc(min(var(--i), 15) * 35ms);
}
.nob:hover[b-iljry7b65q] { transform: translateY(-3px); border-color: color-mix(in oklab, var(--c) 60%, transparent); background: color-mix(in oklab, var(--c) 10%, transparent); }
.nob .cl-ico[b-iljry7b65q] { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in oklab, var(--c) 35%, transparent); flex: none; }
@keyframes nob-in-b-iljry7b65q { from { opacity: 0; transform: translateY(12px) scale(.96); } }
/* /Components/Pages/Spese/SpeseCategorie.razor.rz.scp.css */
.cat-cards[b-usltccnekt] { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; perspective: 1400px; }
.cat-cards > div[b-usltccnekt] { min-width: 0; }
.catc[b-usltccnekt] { height: 100%; display: flex; flex-direction: column; gap: 14px; overflow: hidden; }
.catc[b-usltccnekt]::before {
    content: ""; position: absolute; width: 220px; height: 220px; right: -90px; top: -110px; border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, color-mix(in oklab, var(--c) 45%, transparent), transparent 70%);
}
.catc.archived[b-usltccnekt] { opacity: .55; filter: saturate(.3); }
.catc-head[b-usltccnekt] { display: flex; align-items: center; gap: 14px; cursor: pointer; position: relative; }
.catc-head h3[b-usltccnekt] { font-size: 1.1rem; }
.catc-ico[b-usltccnekt] {
    width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center; font-size: 28px; flex: none;
    background: radial-gradient(circle at 30% 25%, color-mix(in oklab, var(--c) 75%, white 10%), color-mix(in oklab, var(--c) 40%, black 25%));
    box-shadow: 0 14px 26px -12px var(--c), inset 0 2px 0 rgba(255,255,255,.3), inset 0 -6px 14px rgba(0,0,0,.25);
    transition: transform .5s var(--ease-spring);
}
.catc:hover .catc-ico[b-usltccnekt] { transform: rotate(-10deg) scale(1.08) translateZ(30px); }
.catc-ico.big[b-usltccnekt] { width: 76px; height: 76px; font-size: 40px; border-radius: 24px; }
.edit-hint[b-usltccnekt] { opacity: 0; transition: opacity .2s; }
.catc-head:hover .edit-hint[b-usltccnekt] { opacity: .8; }
.catc-children[b-usltccnekt] { display: flex; flex-wrap: wrap; gap: 6px; position: relative; }
.chip.child[b-usltccnekt] { height: 30px; font-size: .8rem; background: color-mix(in oklab, var(--c) 12%, transparent); border-color: color-mix(in oklab, var(--c) 30%, var(--border)); }
.chip.child:hover[b-usltccnekt] { background: color-mix(in oklab, var(--c) 25%, transparent); }
.chip.child.archived[b-usltccnekt] { opacity: .5; text-decoration: line-through; }
.chip .cnt[b-usltccnekt] { font-size: .66rem; padding: 0 6px; border-radius: 99px; background: rgba(0,0,0,.3); color: var(--text-2); }
.chip.add[b-usltccnekt] { height: 30px; font-size: .8rem; border-style: dashed; background: transparent; }

.new-cat[b-usltccnekt] {
    min-height: 150px; border-radius: var(--radius-l); border: 2px dashed var(--border-strong); background: rgba(255,255,255,.02); color: var(--text-2);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; cursor: pointer; font-weight: 600;
    transition: all .4s var(--ease-spring);
}
.new-cat .plus[b-usltccnekt] { font-size: 2.2rem; line-height: 1; background: linear-gradient(135deg, var(--accent), var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.new-cat:hover[b-usltccnekt] { transform: translateY(-5px) rotateX(8deg); color: white; border-color: var(--accent-2); }

.cat-preview[b-usltccnekt] { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px; border-radius: 22px; background: radial-gradient(circle at 50% 0%, color-mix(in oklab, var(--c) 30%, transparent), transparent 70%); animation: prev-pop-b-usltccnekt .6s var(--ease-spring); }
.cat-preview .catc-ico[b-usltccnekt] { animation: float 4s ease-in-out infinite; }
@keyframes prev-pop-b-usltccnekt { from { opacity: 0; transform: scale(.8) rotateX(40deg); } }
/* /Components/Pages/Spese/SpeseConti.razor.rz.scp.css */
.summary > div > .card[b-hojmfp1rmx] { height: 100%; }
@media (max-width: 560px) {
    .summary[b-hojmfp1rmx] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px; }
    .summary .card[b-hojmfp1rmx] { padding: 12px 10px; border-radius: 18px; }
    .summary[b-hojmfp1rmx]  .k-value { font-size: .98rem; }
    .summary[b-hojmfp1rmx]  .k-label { font-size: .6rem; letter-spacing: .03em; }
    .summary[b-hojmfp1rmx]  .k-foot { display: none; }
}

.acc-grid[b-hojmfp1rmx] { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 26px 22px; perspective: 1400px; }
@media (max-width: 400px) { .acc-grid[b-hojmfp1rmx] { grid-template-columns: minmax(0, 1fr); } }
.acc-cell[b-hojmfp1rmx] { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.acc-share[b-hojmfp1rmx] { display: flex; flex-direction: column; gap: 4px; padding: 0 6px; }
.add-tile[b-hojmfp1rmx] {
    aspect-ratio: 1.586; border-radius: 22px; border: 2px dashed var(--border-strong); background: rgba(255,255,255,.02); color: var(--text-2);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; cursor: pointer; font-weight: 600;
    transition: all .4s var(--ease-spring); animation: add-in-b-hojmfp1rmx .8s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 90ms);
}
.add-tile .plus[b-hojmfp1rmx] { font-size: 2.4rem; line-height: 1; background: linear-gradient(135deg, var(--accent), var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.add-tile:hover[b-hojmfp1rmx] { transform: translateY(-6px) rotateX(8deg); border-color: var(--accent-2); color: white; background: rgba(255,255,255,.05); }
@keyframes add-in-b-hojmfp1rmx { from { opacity: 0; transform: scale(.8) rotateY(30deg); } }

.preview-stage[b-hojmfp1rmx] { padding: 12px 10px 4px; perspective: 1000px; animation: prev-in-b-hojmfp1rmx .8s var(--ease-spring); }
@keyframes prev-in-b-hojmfp1rmx { from { opacity: 0; transform: rotateX(50deg) translateY(30px); } }
/* /Components/Pages/Spese/SpeseDashboard.razor.rz.scp.css */
/* Patrimonio */
.nw[b-4qpxr8zshm] { padding: 26px 26px 0; overflow: hidden; border-radius: var(--radius-xl); }
.nw[b-4qpxr8zshm]::before {
    content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
    background:
        radial-gradient(600px 300px at calc(20% + var(--mx) * 6%) 0%, rgba(255,255,255,.14), transparent 60%),
        linear-gradient(115deg, transparent 30%, rgba(255,255,255,.07) 45%, transparent 60%);
    background-size: 100% 100%, 250% 100%;
    animation: nw-sheen-b-4qpxr8zshm 7s ease-in-out infinite;
}
@keyframes nw-sheen-b-4qpxr8zshm { 0%, 100% { background-position: 0 0, 120% 0; } 50% { background-position: 0 0, -20% 0; } }
.nw-grid[b-4qpxr8zshm] { position: relative; display: flex; gap: 20px; align-items: center; justify-content: space-between; z-index: 1; }
.nw-main[b-4qpxr8zshm] { min-width: 0; }
.nw-label[b-4qpxr8zshm] { font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; color: rgba(255,255,255,.75); }
.nw-value[b-4qpxr8zshm] { font-family: var(--font-display); font-size: clamp(2.5rem, 8vw, 4.4rem); font-weight: 700; letter-spacing: -0.045em; line-height: 1.05; margin: 6px 0 10px; }
.nw-meta[b-4qpxr8zshm] { gap: 8px; }
.nw-pills[b-4qpxr8zshm] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.nw-ring[b-4qpxr8zshm] { flex: none; }
.ring-val[b-4qpxr8zshm] { font-size: 1.6rem; font-weight: 700; font-family: var(--font-display); }
.ring-lbl[b-4qpxr8zshm] { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--text-2); }
.nw-spark[b-4qpxr8zshm] { position: relative; margin: 10px -26px 0; opacity: .9; mask-image: linear-gradient(to right, transparent, black 12%, black 88%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, black 12%, black 88%, transparent); }
@media (max-width: 640px) {
    .nw[b-4qpxr8zshm] { padding: 20px 18px 0; }
    .nw-spark[b-4qpxr8zshm] { margin: 6px -18px 0; }
    .nw-ring[b-4qpxr8zshm]  .ring { --size: 104px !important; }
    .ring-val[b-4qpxr8zshm] { font-size: 1.15rem; }
}

.kpis[b-4qpxr8zshm] { margin-top: 16px; }
@media (max-width: 900px) { .kpis[b-4qpxr8zshm] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 380px) { .kpis[b-4qpxr8zshm] { gap: 10px; } .kpis[b-4qpxr8zshm]  .k-value { font-size: 1.2rem; } }
.kpis .card[b-4qpxr8zshm] { padding: 16px 18px; }

/* Carosello conti */
.cards-rail[b-4qpxr8zshm] {
    display: flex; gap: 18px; overflow-x: auto; padding: 14px 4px 30px; margin: -14px -4px -16px; scroll-snap-type: x mandatory; scrollbar-width: none;

}
.cards-rail[b-4qpxr8zshm]::-webkit-scrollbar { display: none; }
.cards-rail[b-4qpxr8zshm] >  * { scroll-snap-align: start; flex: none; }
.add-card[b-4qpxr8zshm] {
    width: 180px; flex: none; aspect-ratio: 1.586; border-radius: 22px; border: 2px dashed var(--border-strong); display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 6px; color: var(--text-2); font-weight: 600; transition: all .35s var(--ease-spring);
    align-self: center; height: auto;
}
.add-card span[b-4qpxr8zshm] { font-size: 2rem; line-height: 1; }
.add-card:hover[b-4qpxr8zshm] { color: white; border-color: var(--accent-2); transform: translateY(-4px) rotate(-2deg); background: rgba(255,255,255,.04); }

.donut-row[b-4qpxr8zshm] { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 18px; align-items: center; }
@media (max-width: 520px) { .donut-row[b-4qpxr8zshm] { grid-template-columns: minmax(0, 1fr); } .donut-wrap[b-4qpxr8zshm] { max-width: 230px; margin: 0 auto; width: 100%; } }

.budget-pace[b-4qpxr8zshm] { overflow: visible; }
.budget-pace[b-4qpxr8zshm]::after { content: ""; position: absolute; top: -4px; bottom: -4px; left: var(--pace); width: 2px; border-radius: 2px; background: rgba(255,255,255,.8); box-shadow: 0 0 8px white; }
.risk-row[b-4qpxr8zshm] { display: flex; align-items: center; gap: 10px; }
.risk-row .cl-ico[b-4qpxr8zshm] { flex: none; }

.upcoming[b-4qpxr8zshm] { display: flex; flex-direction: column; gap: 8px; }
.up-row[b-4qpxr8zshm] { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 14px; background: rgba(255,255,255,.03); animation: up-in-b-4qpxr8zshm .6s var(--ease-out) backwards; animation-delay: calc(var(--i) * 60ms); }
@keyframes up-in-b-4qpxr8zshm { from { opacity: 0; transform: translateX(20px) rotateY(-20deg); } }
.up-date[b-4qpxr8zshm] {
    width: 44px; height: 48px; border-radius: 12px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
    background: linear-gradient(160deg, color-mix(in oklab, var(--c) 50%, transparent), color-mix(in oklab, var(--c) 15%, transparent));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 8px 16px -10px var(--c);
}
.ud-day[b-4qpxr8zshm] { font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; }
.ud-mon[b-4qpxr8zshm] { font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; opacity: .85; margin-top: 2px; }
.kpis > div > .card[b-4qpxr8zshm] { height: 100%; }
/* /Components/Pages/Spese/SpeseMovimenti.razor.rz.scp.css */
.all-pill[b-ya88fczrbo] { display: inline-flex; align-items: center; gap: 8px; padding: 5px 5px 5px 14px; border-radius: 18px; font-weight: 600; }

.filters[b-ya88fczrbo] { margin-bottom: 16px; animation: filters-in-b-ya88fczrbo .5s var(--ease-out); transform-origin: top center; }
@keyframes filters-in-b-ya88fczrbo { from { opacity: 0; transform: perspective(900px) rotateX(-25deg) translateY(-10px); } }
.filters-grid[b-ya88fczrbo] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.filters-grid .span-all[b-ya88fczrbo] { grid-column: 1 / -1; }
@media (max-width: 800px) { .filters-grid[b-ya88fczrbo] { grid-template-columns: minmax(0, 1fr); } }
.type-seg[b-ya88fczrbo] { flex-wrap: wrap; }
.active-filters[b-ya88fczrbo] { gap: 6px; margin: -4px 0 14px; }

.totals[b-ya88fczrbo] { margin-bottom: 20px; }
.totals .tot[b-ya88fczrbo] { padding: 14px 16px; }
@media (max-width: 560px) {
    .totals[b-ya88fczrbo] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px; }
    .totals .tot[b-ya88fczrbo] { padding: 11px 10px; border-radius: 18px; }
    .totals[b-ya88fczrbo]  .k-value { font-size: .98rem; }
    .totals[b-ya88fczrbo]  .k-label { font-size: .6rem; letter-spacing: .04em; }
}
/* /Components/Pages/Spese/SpeseObiettivi.razor.rz.scp.css */
.overall[b-k0mold8xnx] { display: flex; align-items: center; gap: 24px; padding: 22px 24px; border-radius: var(--radius-xl); }
.ring-val[b-k0mold8xnx] { font-size: 1.5rem; font-weight: 700; font-family: var(--font-display); }
.ring-lbl[b-k0mold8xnx] { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; color: var(--text-2); }
.ov-text[b-k0mold8xnx] { min-width: 0; }
.ov-text .k-label[b-k0mold8xnx] { font-size: .72rem; color: var(--text-2); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.ov-value[b-k0mold8xnx] { font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 2.2rem); font-weight: 700; letter-spacing: -0.03em; }
.ov-value .dim[b-k0mold8xnx] { font-size: .55em; font-weight: 600; }
@media (max-width: 600px) { .overall[b-k0mold8xnx] { flex-direction: column; text-align: center; } .overall .row[b-k0mold8xnx] { justify-content: center; } }

.goal-grid[b-k0mold8xnx] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.goal-grid > div[b-k0mold8xnx] { min-width: 0; }
.goal[b-k0mold8xnx] { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; height: 100%; padding: 22px 18px 18px; overflow: hidden; }
.goal[b-k0mold8xnx]::before {
    content: ""; position: absolute; inset: -30% -30% auto; height: 70%; pointer-events: none;
    background: radial-gradient(circle at 50% 70%, color-mix(in oklab, var(--c) 45%, transparent), transparent 65%);
    opacity: .6; transition: opacity .4s;
}
.goal:hover[b-k0mold8xnx]::before { opacity: 1; }
.goal.done[b-k0mold8xnx] { border-color: color-mix(in oklab, #fbbf24 55%, transparent); box-shadow: 0 0 0 1px rgba(251,191,36,.3), 0 20px 50px -20px rgba(251,191,36,.6); }
.goal-ring[b-k0mold8xnx] { position: relative; margin-bottom: 6px; transform-style: preserve-3d; }
.gr-inner[b-k0mold8xnx] { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.gr-icon[b-k0mold8xnx] { font-size: 38px; filter: drop-shadow(0 8px 14px rgba(0,0,0,.45)); animation: float 5s ease-in-out infinite; }
.gr-pct[b-k0mold8xnx] { font-weight: 700; font-size: 1.05rem; margin-top: 4px; }
.trophy[b-k0mold8xnx] { position: absolute; top: -4px; right: -8px; font-size: 30px; animation: trophy-b-k0mold8xnx 2.4s var(--ease-spring) infinite; filter: drop-shadow(0 6px 12px rgba(251,191,36,.6)); }
@keyframes trophy-b-k0mold8xnx { 0%, 100% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.15); } }
.goal-name[b-k0mold8xnx] { font-size: 1.1rem; max-width: 100%; position: relative; }
.goal-amt[b-k0mold8xnx] { position: relative; }
.goal-meta[b-k0mold8xnx] { min-height: 34px; position: relative; }
.need[b-k0mold8xnx] { margin-top: 3px; font-weight: 700; color: var(--accent-2); font-size: .8rem; }
.goal-actions[b-k0mold8xnx] { width: 100%; gap: 6px; margin-top: auto; position: relative; }
/* /Components/Pages/Spese/SpeseReport.razor.rz.scp.css */
.range-bar[b-lde3aj4lbs] { gap: 12px; }
.presets[b-lde3aj4lbs] { display: flex; max-width: 100%; padding: 4px; scroll-snap-type: none; }
.presets > button[b-lde3aj4lbs] { flex: none; }
.custom-range[b-lde3aj4lbs] { gap: 6px; flex-wrap: nowrap; }
.custom-range .input[b-lde3aj4lbs] { height: 40px; width: 150px; border-radius: 12px; font-size: .9rem; padding: 0 10px; }
@media (max-width: 560px) { .custom-range[b-lde3aj4lbs] { width: 100%; } .custom-range .input[b-lde3aj4lbs] { flex: 1; width: auto; min-width: 0; } }

.rk > div > .card[b-lde3aj4lbs] { height: 100%; }
@media (max-width: 900px) { .rk[b-lde3aj4lbs] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.rk .card[b-lde3aj4lbs] { padding: 16px 18px; }

.donut-row[b-lde3aj4lbs] { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; align-items: center; animation: drill-in-b-lde3aj4lbs .6s var(--ease-out); }
@keyframes drill-in-b-lde3aj4lbs { from { opacity: 0; transform: perspective(900px) rotateY(-20deg) scale(.95); } }
@media (max-width: 560px) { .donut-row[b-lde3aj4lbs] { grid-template-columns: minmax(0, 1fr); } .donut-wrap[b-lde3aj4lbs] { max-width: 250px; width: 100%; margin: 0 auto; } }

.payees[b-lde3aj4lbs] { display: flex; flex-direction: column; gap: 6px; }
.payee[b-lde3aj4lbs] { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 14px; transition: background .2s, transform .35s var(--ease-spring); animation: pay-in-b-lde3aj4lbs .55s var(--ease-out) backwards; animation-delay: calc(var(--i) * 55ms); }
.payee:hover[b-lde3aj4lbs] { background: rgba(255,255,255,.05); transform: translateX(4px); }
@keyframes pay-in-b-lde3aj4lbs { from { opacity: 0; transform: translateX(-20px); } }
.payee .rank[b-lde3aj4lbs] { width: 22px; text-align: center; font-family: var(--font-display); font-weight: 800; color: var(--text-3); }
.payee:nth-child(1) .rank[b-lde3aj4lbs] { color: #fbbf24; text-shadow: 0 0 12px rgba(251,191,36,.6); }
.payee:nth-child(2) .rank[b-lde3aj4lbs] { color: #e5e7eb; }
.payee:nth-child(3) .rank[b-lde3aj4lbs] { color: #f59e0b; }
.payee .cl-ico[b-lde3aj4lbs] { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in oklab, var(--c) 35%, transparent); flex: none; }

/* Heatmap */
.heat-scroll[b-lde3aj4lbs] { overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.heat[b-lde3aj4lbs] { display: flex; gap: 6px; min-width: min-content; perspective: 900px; }
.heat-days[b-lde3aj4lbs] { display: grid; grid-template-rows: 16px repeat(7, 14px); gap: 3px; font-size: .62rem; color: var(--text-3); }
.heat-days span:first-child[b-lde3aj4lbs] { grid-row: 2; }
.heat-grid[b-lde3aj4lbs] { display: flex; gap: 3px; transform: rotateX(12deg); transform-origin: bottom; }
.heat-col[b-lde3aj4lbs] { display: grid; grid-template-rows: 16px repeat(7, 14px); gap: 3px; animation: heat-in-b-lde3aj4lbs .5s var(--ease-out) backwards; animation-delay: calc(min(var(--w), 60) * 14ms); }
@keyframes heat-in-b-lde3aj4lbs { from { opacity: 0; transform: translateY(10px) scale(.6); } }
.heat-mon[b-lde3aj4lbs] { font-size: .62rem; color: var(--text-3); white-space: nowrap; width: 14px; overflow: visible; text-transform: capitalize; }
.hc[b-lde3aj4lbs] {
    width: 14px; height: 14px; border-radius: 4px; display: block;
    background: color-mix(in oklab, var(--accent) calc(var(--l) * 100%), rgba(255,255,255,.06));
    box-shadow: 0 0 calc(var(--l) * 12px) color-mix(in oklab, var(--accent) calc(var(--l) * 80%), transparent);
    transition: transform .25s var(--ease-spring);
}
.heat-col .hc:hover[b-lde3aj4lbs] { transform: scale(1.6) translateZ(10px); z-index: 2; position: relative; outline: 1px solid white; }
.hc.out[b-lde3aj4lbs] { background: transparent; box-shadow: none; }
.heat-legend[b-lde3aj4lbs] { display: flex; align-items: center; gap: 4px; margin-top: 10px; flex-wrap: wrap; }
.heat-legend .hc[b-lde3aj4lbs] { width: 12px; height: 12px; }

.compare-grid[b-lde3aj4lbs] { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 860px) { .compare-grid[b-lde3aj4lbs] { grid-template-columns: minmax(0, 1fr); } }
.cmp-list[b-lde3aj4lbs] { display: flex; flex-direction: column; gap: 6px; }
.cmp-row[b-lde3aj4lbs] { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: rgba(255,255,255,.03); animation: pay-in-b-lde3aj4lbs .5s var(--ease-out) backwards; animation-delay: calc(var(--i) * 50ms); }
/* /Components/Pages/Spese/SpeseRicorrenti.razor.rz.scp.css */
.rsum > div > .card[b-8qw4yhzsyk] { height: 100%; }
@media (max-width: 560px) {
    .rsum[b-8qw4yhzsyk] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px; }
    .rsum .card[b-8qw4yhzsyk] { padding: 12px 10px; border-radius: 18px; }
    .rsum[b-8qw4yhzsyk]  .k-value { font-size: .98rem; }
    .rsum[b-8qw4yhzsyk]  .k-label { font-size: .58rem; letter-spacing: .03em; }
    .rsum[b-8qw4yhzsyk]  .k-foot { display: none; }
}

.timeline[b-8qw4yhzsyk] { display: flex; gap: 10px; overflow-x: auto; padding: 6px 2px 14px; scrollbar-width: none; scroll-snap-type: x proximity; perspective: 900px; }
.timeline[b-8qw4yhzsyk]::-webkit-scrollbar { display: none; }
.tl-item[b-8qw4yhzsyk] {
    flex: none; width: 170px; display: flex; gap: 10px; align-items: center; padding: 10px; border-radius: 18px; scroll-snap-align: start;
    background: linear-gradient(150deg, color-mix(in oklab, var(--c) 22%, transparent), rgba(255,255,255,.03));
    border: 1px solid color-mix(in oklab, var(--c) 30%, var(--border));
    animation: tl-in-b-8qw4yhzsyk .7s var(--ease-spring) backwards; animation-delay: calc(min(var(--i), 12) * 60ms);
}
@keyframes tl-in-b-8qw4yhzsyk { from { opacity: 0; transform: rotateY(-50deg) translateX(40px); } }
.tl-date[b-8qw4yhzsyk] { width: 42px; height: 46px; border-radius: 12px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; background: color-mix(in oklab, var(--c) 45%, transparent); box-shadow: inset 0 1px 0 rgba(255,255,255,.2); }
.tl-date .d[b-8qw4yhzsyk] { font-family: var(--font-display); font-weight: 800; font-size: 1.1rem; }
.tl-date .m[b-8qw4yhzsyk] { font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; margin-top: 2px; }
.tl-body[b-8qw4yhzsyk] { display: flex; flex-direction: column; min-width: 0; font-size: .85rem; }

.rec[b-8qw4yhzsyk] { display: flex; flex-direction: column; gap: 12px; height: 100%; border-top: 3px solid var(--c); }
.rec.paused[b-8qw4yhzsyk] { opacity: .6; filter: saturate(.4); }
.rec-ico[b-8qw4yhzsyk] {
    width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; font-size: 22px; flex: none;
    background: radial-gradient(circle at 30% 25%, color-mix(in oklab, var(--c) 70%, white 8%), color-mix(in oklab, var(--c) 40%, black 20%));
    box-shadow: 0 10px 20px -10px var(--c), inset 0 1px 0 rgba(255,255,255,.3);
}
.rec-amt[b-8qw4yhzsyk] { font-weight: 700; font-size: 1.05rem; white-space: nowrap; }
.rec-next[b-8qw4yhzsyk] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rec-actions[b-8qw4yhzsyk] { gap: 6px; margin-top: auto; }
.freq[b-8qw4yhzsyk] { flex-wrap: wrap; }
/* /Components/Pages/Strumenti/CalcoliTab.razor.rz.scp.css */
/* =====================================================================
   Strumenti › Calcoli — card finanziarie con grafici e piano di ammortamento
   ===================================================================== */

.cl[b-ispa4ru4ku] { min-width: 0; }
.cl-jump[b-ispa4ru4ku] { margin-bottom: 16px; }
.cl-jump .chip[b-ispa4ru4ku] { text-decoration: none; }

.cl-mutuo-grid[b-ispa4ru4ku] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px; align-items: center; }
@media (max-width: 900px) { .cl-mutuo-grid[b-ispa4ru4ku] { grid-template-columns: minmax(0, 1fr); } }
.cl-chart-wrap[b-ispa4ru4ku] {
    position: relative; height: 290px; min-width: 0; padding: 12px; border-radius: 22px;
    background: rgba(0,0,0,.22); border: 1px solid var(--border);
    box-shadow: inset 0 2px 14px rgba(0,0,0,.35);
    transform: perspective(1000px) rotateY(-4deg); transition: transform .6s var(--ease-out);
}
.cl-chart-wrap:hover[b-ispa4ru4ku] { transform: none; }
@media (max-width: 900px) { .cl-chart-wrap[b-ispa4ru4ku] { height: 240px; transform: none; } }

.cl-plan[b-ispa4ru4ku] { margin-top: 18px; border-top: 1px solid var(--border); padding-top: 12px; }
.cl-plan > summary[b-ispa4ru4ku] { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; cursor: pointer; list-style: none; font-weight: 700; }
.cl-plan > summary[b-ispa4ru4ku]::-webkit-details-marker { display: none; }
.cl-plan > summary > span:first-child[b-ispa4ru4ku]::after { content: " ▾"; color: var(--text-3); }
.cl-plan[open] > summary > span:first-child[b-ispa4ru4ku]::after { content: " ▴"; }
.cl-table-wrap[b-ispa4ru4ku] { margin-top: 12px; max-height: 420px; overflow: auto; overscroll-behavior: contain; border-radius: 16px; border: 1px solid var(--border); }
.cl[b-ispa4ru4ku]  .cl-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.cl[b-ispa4ru4ku]  .cl-table th { position: sticky; top: 0; z-index: 1; background: rgba(22,20,58,.96); color: var(--text-2); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; text-align: right; padding: 10px 12px; }
.cl[b-ispa4ru4ku]  .cl-table th:first-child, .cl[b-ispa4ru4ku]  .cl-table td:first-child { text-align: left; }
.cl[b-ispa4ru4ku]  .cl-table td { padding: 8px 12px; text-align: right; border-top: 1px solid rgba(255,255,255,.05); white-space: nowrap; }
.cl[b-ispa4ru4ku]  .cl-table tbody tr:hover { background: var(--surface); }
@media (max-width: 560px) { .cl[b-ispa4ru4ku]  .cl-table { font-size: .76rem; } .cl[b-ispa4ru4ku]  .cl-table td, .cl[b-ispa4ru4ku]  .cl-table th { padding: 7px 8px; } }

.check[b-ispa4ru4ku] { font-size: .9rem; }
/* /Components/Pages/Strumenti/ConvertiTab.razor.rz.scp.css */
/* =====================================================================
   Strumenti › Converti — chip categorie 3D, convertitore di vetro con
   pulsante ⇄ rotante, elenco "tutte le unità", recenti, forno
   (quasi tutto è creato da tools-convert.js → ::deep)
   ===================================================================== */

.cv[b-ly5cti2mbx] { min-width: 0; }

/* ---------- categorie ---------- */
.cv-cats[b-ly5cti2mbx] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
@media (max-width: 700px) {
    .cv-cats[b-ly5cti2mbx] { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -20px 16px; padding: 4px 20px 8px; scroll-snap-type: x proximity; }
    .cv-cats[b-ly5cti2mbx]::-webkit-scrollbar { display: none; }
}
.cv[b-ly5cti2mbx]  .cv-cat {
    display: inline-flex; align-items: center; gap: 7px; flex: none; height: 40px; padding: 0 14px 0 10px; border-radius: 14px; cursor: pointer;
    border: 1px solid var(--border); background: var(--surface); color: var(--text-2); font-weight: 600; font-size: .86rem;
    transition: transform .35s var(--ease-spring), background .25s, color .2s, border-color .25s, box-shadow .3s;
    animation: cat-in-b-ly5cti2mbx .6s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 30ms); scroll-snap-align: center;
}
.cv[b-ly5cti2mbx]  .cv-cat .cc-ico { font-size: 1.1rem; transition: transform .45s var(--ease-spring); }
.cv[b-ly5cti2mbx]  .cv-cat:hover { color: var(--text); border-color: var(--border-strong); transform: translateY(-2px); }
.cv[b-ly5cti2mbx]  .cv-cat:hover .cc-ico { transform: rotate(-12deg) scale(1.2); }
.cv[b-ly5cti2mbx]  .cv-cat.active {
    color: white; border-color: transparent;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 75%, transparent), color-mix(in oklab, var(--accent-2) 55%, transparent));
    box-shadow: 0 12px 26px -12px color-mix(in oklab, var(--accent) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.3);
    transform: translateY(-2px);
}
@keyframes cat-in-b-ly5cti2mbx { from { opacity: 0; transform: perspective(600px) rotateX(-60deg) translateY(-10px); } }

/* ---------- impaginazione ---------- */
.cv-layout[b-ly5cti2mbx] { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.cv-side[b-ly5cti2mbx] { display: grid; gap: 18px; min-width: 0; }
@media (max-width: 900px) { .cv-layout[b-ly5cti2mbx] { grid-template-columns: minmax(0, 1fr); } }

/* ---------- convertitore ---------- */
.cv-card[b-ly5cti2mbx] {
    min-height: 260px;
    background:
        radial-gradient(120% 70% at 0% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%),
        radial-gradient(90% 60% at 100% 100%, color-mix(in oklab, var(--accent-2) 18%, transparent), transparent 60%),
        linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
    box-shadow: var(--shadow-2), 0 40px 80px -40px color-mix(in oklab, var(--accent) 60%, transparent);
}
.cv-card:empty[b-ly5cti2mbx] { background-image: linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%); background-size: 200% 100%; animation: sk-b-ly5cti2mbx 1.4s infinite; }
@keyframes sk-b-ly5cti2mbx { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.cv-card.swap-in > *[b-ly5cti2mbx] { animation: cv-in-b-ly5cti2mbx .55s var(--ease-out) backwards; }
.cv-card.swap-in > :nth-child(2)[b-ly5cti2mbx] { animation-delay: 40ms; } .cv-card.swap-in > :nth-child(3)[b-ly5cti2mbx] { animation-delay: 80ms; }
.cv-card.swap-in > :nth-child(4)[b-ly5cti2mbx] { animation-delay: 120ms; } .cv-card.swap-in > :nth-child(5)[b-ly5cti2mbx] { animation-delay: 160ms; }
@keyframes cv-in-b-ly5cti2mbx { from { opacity: 0; transform: perspective(800px) translateY(14px) rotateX(-18deg); } }

.cv[b-ly5cti2mbx]  .cv-row {
    display: grid; grid-template-columns: 26px minmax(0, 1fr) minmax(0, 210px); align-items: center; gap: 10px;
    padding: 10px; border-radius: 22px; background: rgba(0,0,0,.25); border: 1px solid var(--border);
    box-shadow: inset 0 2px 10px rgba(0,0,0,.35);
}
.cv[b-ly5cti2mbx]  .cv-lab { font-size: .7rem; font-weight: 800; color: var(--text-3); text-transform: uppercase; letter-spacing: .08em; writing-mode: vertical-rl; transform: rotate(180deg); text-align: center; }
.cv[b-ly5cti2mbx]  .cv-in {
    height: 60px; font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums;
    background: transparent; border-color: transparent; padding: 0 8px; min-width: 0;
}
.cv[b-ly5cti2mbx]  .cv-row.b .cv-in { color: color-mix(in oklab, var(--accent-2) 55%, white); }
.cv[b-ly5cti2mbx]  .cv-in:focus { background: rgba(0,0,0,.2); }
.cv[b-ly5cti2mbx]  .cv-pick .pick-btn { width: 100%; }
@media (max-width: 520px) {
    .cv[b-ly5cti2mbx]  .cv-row { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 8px; }
    .cv[b-ly5cti2mbx]  .cv-lab { display: none; }
    .cv[b-ly5cti2mbx]  .cv-in { height: 54px; font-size: 1.5rem; }
}

.cv[b-ly5cti2mbx]  .cv-swap {
    display: grid; place-items: center; width: 48px; height: 48px; margin: -10px auto; position: relative; z-index: 2; border-radius: 50%; cursor: pointer;
    border: 1px solid rgba(255,255,255,.25); color: white; font-size: 1.35rem; font-weight: 700;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 12px 26px -8px color-mix(in oklab, var(--accent) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -4px 10px rgba(0,0,0,.2);
    transition: transform .3s var(--ease-spring);
}
.cv[b-ly5cti2mbx]  .cv-swap:hover { transform: scale(1.08); }
.cv[b-ly5cti2mbx]  .cv-swap:active { transform: scale(.92); }
.cv[b-ly5cti2mbx]  .cv-swap.spin span { animation: swap-spin-b-ly5cti2mbx .6s var(--ease-spring); }
@keyframes swap-spin-b-ly5cti2mbx { from { transform: rotate(0); } to { transform: rotate(180deg); } }
.cv[b-ly5cti2mbx]  .cv-swap span { display: inline-block; }

.cv[b-ly5cti2mbx]  .cv-formula { margin-top: 14px; text-align: center; color: var(--text-2); font-size: .9rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cv[b-ly5cti2mbx]  .cv-formula.bump { animation: tl-bump-b-ly5cti2mbx .45s var(--ease-spring); }
@keyframes tl-bump-b-ly5cti2mbx { from { transform: translateY(5px); opacity: .4; } }
.cv[b-ly5cti2mbx]  .cv-fx { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; font-size: .8rem; color: var(--text-3); }
.cv[b-ly5cti2mbx]  .cv-ing-field { margin-bottom: 12px; }
.cv[b-ly5cti2mbx]  .cv-ing .pick-btn { width: 100%; }
.cv[b-ly5cti2mbx]  .cv-loading { padding: 4px 0; }
.cv[b-ly5cti2mbx]  .cv-error { text-align: center; padding: 20px 10px; color: var(--text-2); }
.cv[b-ly5cti2mbx]  .cv-error .big { font-size: 3rem; animation: float 4s ease-in-out infinite; }
.cv[b-ly5cti2mbx]  .tl-actions { justify-content: center; }

/* ---------- tutte le unità ---------- */
.cv[b-ly5cti2mbx]  .cv-all-list { display: flex; flex-direction: column; gap: 4px; max-height: 420px; overflow-y: auto; overscroll-behavior: contain; margin-right: -8px; padding-right: 8px; }
.cv[b-ly5cti2mbx]  .cv-all-row {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 8px; width: 100%; text-align: left;
    padding: 9px 12px; border-radius: 12px; border: 1px solid transparent; background: transparent; cursor: pointer; font-size: .88rem;
    transition: background .2s, border-color .2s, transform .3s var(--ease-spring);
    animation: row-in-b-ly5cti2mbx .45s var(--ease-out) backwards; animation-delay: calc(var(--i) * 18ms);
}
.cv[b-ly5cti2mbx]  .cv-all-row:hover { background: var(--surface-2); transform: translateX(3px); }
.cv[b-ly5cti2mbx]  .cv-all-row.on { border-color: color-mix(in oklab, var(--accent) 50%, transparent); background: color-mix(in oklab, var(--accent) 14%, transparent); }
.cv[b-ly5cti2mbx]  .ar-name { color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv[b-ly5cti2mbx]  .ar-val { font-weight: 700; text-align: right; }
.cv[b-ly5cti2mbx]  .ar-sym { color: var(--text-3); font-size: .78rem; min-width: 34px; }
@keyframes row-in-b-ly5cti2mbx { from { opacity: 0; transform: translateX(10px); } }

/* ---------- recenti ---------- */
.cv[b-ly5cti2mbx]  .cv-recent-list { display: flex; flex-direction: column; gap: 6px; }
.cv[b-ly5cti2mbx]  .cv-rec {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; text-align: left; cursor: pointer;
    background: var(--surface); border: 1px solid var(--border); font-size: .88rem; color: var(--text-2); min-width: 0;
    transition: transform .3s var(--ease-spring), background .2s, color .2s;
    animation: row-in-b-ly5cti2mbx .45s var(--ease-out) backwards; animation-delay: calc(var(--i) * 30ms);
}
.cv[b-ly5cti2mbx]  .cv-rec:hover { transform: translateY(-2px); background: var(--surface-2); color: var(--text); }
.cv[b-ly5cti2mbx]  .rc-txt { min-width: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }

/* ---------- forno ---------- */
.cv[b-ly5cti2mbx]  .oven { border-top: 1px solid var(--border); margin-top: 20px; }
.cv[b-ly5cti2mbx]  .oven-details { margin-top: 12px; }
.cv[b-ly5cti2mbx]  .oven-details summary { cursor: pointer; color: var(--text-2); font-size: .85rem; font-weight: 600; }
.cv[b-ly5cti2mbx]  .oven-table { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; margin-top: 10px; }
.cv[b-ly5cti2mbx]  .ot-row { display: flex; justify-content: space-between; gap: 6px; padding: 7px 10px; border-radius: 10px; background: var(--surface); font-size: .8rem; }
.cv[b-ly5cti2mbx]  .ot-row.on { background: linear-gradient(135deg, color-mix(in oklab, #f97316 45%, transparent), color-mix(in oklab, #ef4444 35%, transparent)); color: white; box-shadow: 0 8px 20px -10px #f97316; }
/* /Components/Pages/Strumenti/DateTab.razor.rz.scp.css */
/* =====================================================================
   Strumenti › Date — card 3D dei conti alla rovescia e calcolatori
   ===================================================================== */

.dt[b-wfxnnsafvz] { display: grid; gap: 22px; min-width: 0; }
.cd-h[b-wfxnnsafvz] { font-size: 1.25rem; display: flex; align-items: center; gap: 8px; }
.cd-grid[b-wfxnnsafvz] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
@media (max-width: 480px) { .cd-grid[b-wfxnnsafvz] { grid-template-columns: minmax(0, 1fr); } }

.cd-card[b-wfxnnsafvz] {
    --c: var(--accent);
    position: relative; overflow: hidden; cursor: pointer; padding: 18px; border-radius: 28px; min-width: 0;
    background:
        radial-gradient(120% 80% at 0% 0%, color-mix(in oklab, var(--c) 45%, transparent), transparent 60%),
        radial-gradient(80% 80% at 100% 100%, color-mix(in oklab, var(--c) 22%, transparent), transparent 60%),
        linear-gradient(160deg, rgba(255,255,255,.1), rgba(255,255,255,.02));
    border: 1px solid color-mix(in oklab, var(--c) 45%, var(--border));
    box-shadow: 0 30px 60px -30px color-mix(in oklab, var(--c) 80%, transparent), var(--shadow-1);
    backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
    transform-style: preserve-3d; outline: none;
}
.cd-card:focus-visible[b-wfxnnsafvz] { box-shadow: 0 0 0 2px var(--accent-2); }
.cd-card.past[b-wfxnnsafvz] { filter: saturate(.35); opacity: .75; }
.cd-glow[b-wfxnnsafvz] { position: absolute; width: 180px; height: 180px; right: -60px; top: -60px; border-radius: 50%; background: radial-gradient(circle, color-mix(in oklab, var(--c) 70%, transparent), transparent 70%); filter: blur(20px); animation: cd-orbit-b-wfxnnsafvz 9s ease-in-out infinite alternate; pointer-events: none; }
@keyframes cd-orbit-b-wfxnnsafvz { to { transform: translate(-40px, 60px) scale(1.2); } }
.cd-top[b-wfxnnsafvz] { display: flex; align-items: center; gap: 12px; transform: translateZ(30px); }
.cd-emoji[b-wfxnnsafvz] { font-size: 2.4rem; filter: drop-shadow(0 10px 12px rgba(0,0,0,.45)); animation: float 5s ease-in-out infinite; display: inline-block; }
.cd-title[b-wfxnnsafvz] { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cd-when[b-wfxnnsafvz] { font-size: .78rem; color: var(--text-2); min-height: 1.2em; }
.cd-count[b-wfxnnsafvz] { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 8px; margin-top: 16px; transform: translateZ(40px); }
.cd-unit[b-wfxnnsafvz] { display: flex; flex-direction: column; align-items: center; padding: 10px 4px; border-radius: 16px; background: rgba(0,0,0,.3); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 20px -12px rgba(0,0,0,.8); min-width: 0; }
.cd-unit b[b-wfxnnsafvz] { font-size: 1.3rem; line-height: 1.1; min-height: 1.1em; }
.cd-unit.big b[b-wfxnnsafvz] { font-size: 1.8rem; background: linear-gradient(120deg, #fff, color-mix(in oklab, var(--c) 60%, white)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cd-unit span[b-wfxnnsafvz] { font-size: .64rem; color: var(--text-3); text-transform: uppercase; letter-spacing: .08em; }
.cd-state[b-wfxnnsafvz] { margin-top: 12px; font-size: .8rem; color: var(--text-2); min-height: 1.2em; transform: translateZ(20px); }

/* editor */
.cd-emojis[b-wfxnnsafvz] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cd-emo[b-wfxnnsafvz] { width: 42px; height: 42px; border-radius: 13px; border: 1px solid var(--border); background: var(--surface); font-size: 1.3rem; cursor: pointer; transition: transform .25s var(--ease-spring), background .2s; }
.cd-emo:hover[b-wfxnnsafvz] { transform: translateY(-2px) scale(1.08); }
.cd-emo.active[b-wfxnnsafvz] { background: color-mix(in oklab, var(--accent) 35%, transparent); border-color: var(--accent); transform: scale(1.1); }
.cd-emo-in[b-wfxnnsafvz] { width: 80px; height: 42px; text-align: center; font-size: 1.2rem; }
.cd-colors[b-wfxnnsafvz] { display: flex; flex-wrap: wrap; gap: 10px; }
.cd-col[b-wfxnnsafvz] { width: 36px; height: 36px; border-radius: 50%; border: 2px solid transparent; background: var(--c); cursor: pointer; box-shadow: 0 6px 14px -6px var(--c); transition: transform .25s var(--ease-spring); }
.cd-col.active[b-wfxnnsafvz] { border-color: white; transform: scale(1.15); }

/* festività trovate */
.dt[b-wfxnnsafvz]  .dt-hols { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.dt[b-wfxnnsafvz]  .dt-hol { font-size: .76rem; padding: 4px 10px; border-radius: 99px; background: color-mix(in oklab, var(--warning) 16%, transparent); color: #fde68a; animation: hol-in-b-wfxnnsafvz .4s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 30ms); }
@keyframes hol-in-b-wfxnnsafvz { from { opacity: 0; transform: scale(.8); } }
.dt[b-wfxnnsafvz]  input[type="date"].input { min-width: 0; }
/* /Components/Pages/Strumenti/QrTab.razor.rz.scp.css */
/* =====================================================================
   Strumenti › QR — anteprima 3D, moduli per tipo, mirino della fotocamera
   ===================================================================== */

.qr[b-rr7q8i1ici] { min-width: 0; }
.qr-layout[b-rr7q8i1ici] { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 900px) { .qr-layout[b-rr7q8i1ici] { grid-template-columns: minmax(0, 1fr); } }

.qr-modes[b-rr7q8i1ici] { margin-bottom: 14px; display: flex; }

/* moduli: visibile solo quello del tipo attivo (data-mode sulla radice, impostato dal JS) */
.qf[b-rr7q8i1ici] { display: none; animation: qf-in-b-rr7q8i1ici .45s var(--ease-out); }
.qr[data-mode="text"] .qf-text[b-rr7q8i1ici], .qr[data-mode="url"] .qf-url[b-rr7q8i1ici], .qr[data-mode="wifi"] .qf-wifi[b-rr7q8i1ici],
.qr[data-mode="vcard"] .qf-vcard[b-rr7q8i1ici], .qr[data-mode="email"] .qf-email[b-rr7q8i1ici] { display: block; }
@keyframes qf-in-b-rr7q8i1ici { from { opacity: 0; transform: translateY(8px); } }

/* anteprima */
.qr-preview-wrap[b-rr7q8i1ici] { display: grid; place-items: center; padding: 22px 0 10px; perspective: 1000px; }
.qr-preview[b-rr7q8i1ici] {
    position: relative; width: min(100%, 300px); padding: 16px 16px 12px; border-radius: 28px;
    background: linear-gradient(160deg, #ffffff, #e9e7ff);
    box-shadow: 0 40px 70px -30px color-mix(in oklab, var(--accent) 90%, transparent), 0 0 0 1px rgba(255,255,255,.6), inset 0 -6px 18px rgba(99,102,241,.18);
}
.qr-preview.pop[b-rr7q8i1ici] { animation: qr-pop-b-rr7q8i1ici .5s var(--ease-spring); }
@keyframes qr-pop-b-rr7q8i1ici { from { transform: perspective(900px) rotateY(-14deg) scale(.96); } }
.qr-preview canvas[b-rr7q8i1ici] { display: block; width: 100%; height: auto; aspect-ratio: 1; image-rendering: pixelated; border-radius: 10px; }
.qr-caption[b-rr7q8i1ici] { text-align: center; color: #1e1b4b; font-weight: 700; font-size: .85rem; margin-top: 6px; min-height: 1.2em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qr.qr-empty .qr-preview canvas[b-rr7q8i1ici] { opacity: .15; }
.qr [data-role="status"][b-rr7q8i1ici] { text-align: center; }

/* fotocamera */
.qr-cam[b-rr7q8i1ici] {
    position: relative; aspect-ratio: 1; width: min(100%, 360px); margin: 0 auto; border-radius: 26px; overflow: hidden;
    background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.06), rgba(0,0,0,.5)); border: 1px solid var(--border);
    box-shadow: inset 0 3px 18px rgba(0,0,0,.6);
}
.qr-cam video[b-rr7q8i1ici] { width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity .4s; }
.qr-cam.on video[b-rr7q8i1ici] { opacity: 1; }
.qr-cam-idle[b-rr7q8i1ici] { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--text-3); font-size: .9rem; transition: opacity .3s; }
.qr-cam-idle span:first-child[b-rr7q8i1ici] { font-size: 3rem; animation: float 4s ease-in-out infinite; }
.qr-cam.on .qr-cam-idle[b-rr7q8i1ici] { opacity: 0; }
.qr-frame[b-rr7q8i1ici] { position: absolute; inset: 16%; pointer-events: none; opacity: .35; transition: opacity .3s; }
.qr-cam.on .qr-frame[b-rr7q8i1ici] { opacity: 1; }
.qr-frame i[b-rr7q8i1ici] { position: absolute; width: 28px; height: 28px; border: 4px solid var(--accent-2); }
.qr-frame i:nth-child(1)[b-rr7q8i1ici] { left: 0; top: 0; border-right: 0; border-bottom: 0; border-radius: 10px 0 0 0; }
.qr-frame i:nth-child(2)[b-rr7q8i1ici] { right: 0; top: 0; border-left: 0; border-bottom: 0; border-radius: 0 10px 0 0; }
.qr-frame i:nth-child(3)[b-rr7q8i1ici] { left: 0; bottom: 0; border-right: 0; border-top: 0; border-radius: 0 0 0 10px; }
.qr-frame i:nth-child(4)[b-rr7q8i1ici] { right: 0; bottom: 0; border-left: 0; border-top: 0; border-radius: 0 0 10px 0; }
.qr-laser[b-rr7q8i1ici] { position: absolute; left: 6%; right: 6%; height: 2px; top: 0; background: linear-gradient(90deg, transparent, var(--accent-2), transparent); box-shadow: 0 0 14px var(--accent-2); display: none; }
.qr-cam.on .qr-laser[b-rr7q8i1ici] { display: block; animation: laser-b-rr7q8i1ici 2s ease-in-out infinite alternate; }
@keyframes laser-b-rr7q8i1ici { to { top: 100%; } }

/* risultato */
.qr[b-rr7q8i1ici]  .qr-res { margin-top: 14px; padding: 16px; border-radius: 20px; background: rgba(0,0,0,.25); border: 1px solid color-mix(in oklab, var(--accent) 40%, var(--border)); animation: res-in-b-rr7q8i1ici .55s var(--ease-spring); min-width: 0; }
.qr[b-rr7q8i1ici]  .qr-res.none { text-align: center; color: var(--text-2); border-color: var(--border); }
@keyframes res-in-b-rr7q8i1ici { from { opacity: 0; transform: perspective(800px) rotateX(-30deg) translateY(12px); } }
.qr[b-rr7q8i1ici]  .qr-kind { font-weight: 700; margin-bottom: 8px; }
.qr[b-rr7q8i1ici]  .qr-link { color: var(--accent-2); text-decoration: underline; overflow-wrap: anywhere; }
.qr[b-rr7q8i1ici]  .qr-text { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; font-size: .9rem; max-height: 220px; overflow-y: auto; }
.qr[b-rr7q8i1ici]  .qr-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid rgba(255,255,255,.05); }
.qr[b-rr7q8i1ici]  .qr-row .k { color: var(--text-3); font-size: .8rem; }
.qr[b-rr7q8i1ici]  .qr-row .v { font-weight: 600; overflow-wrap: anywhere; }
.qr[b-rr7q8i1ici]  .qr-row .v.mono { font-family: ui-monospace, Consolas, monospace; }
/* /Components/Pages/Strumenti/Strumenti.razor.rz.scp.css */
/* =====================================================================
   Strumenti — stili comuni a tutte le schede (via ::deep: valgono anche
   per il markup delle schede figlie e per gli elementi creati da tools.js)
   ===================================================================== */

/* ---------- hero: ingranaggi fluttuanti ---------- */
.hero-gears[b-3ovlohilw2] { position: relative; width: 150px; height: 90px; flex: none; }
.hero-gears > div[b-3ovlohilw2] { position: absolute; }
.hero-gears > div:nth-child(1)[b-3ovlohilw2] { left: 10px; top: 0; }
.hero-gears > div:nth-child(2)[b-3ovlohilw2] { left: 70px; top: 36px; }
.hero-gears > div:nth-child(3)[b-3ovlohilw2] { left: 108px; top: -6px; }
.g[b-3ovlohilw2] { display: inline-block; font-size: 2.2rem; filter: drop-shadow(0 12px 16px rgba(0,0,0,.5)); }
.g1[b-3ovlohilw2] { animation: gear-spin-b-3ovlohilw2 14s linear infinite; font-size: 2.8rem; }
.g2[b-3ovlohilw2] { animation: float-y-b-3ovlohilw2 5s ease-in-out infinite; }
.g3[b-3ovlohilw2] { animation: float-y-b-3ovlohilw2 6s ease-in-out infinite -2s; }
@keyframes gear-spin-b-3ovlohilw2 { to { transform: rotate(360deg); } }
@keyframes float-y-b-3ovlohilw2 { 0%, 100% { transform: translateY(0) rotate(-8deg); } 50% { transform: translateY(-10px) rotate(8deg); } }

/* ---------- transizione tra schede ---------- */
/* niente perspective/transform persistenti: creerebbero un contenitore per gli elementi position:fixed (sheet, popover) */
.tl-stage[b-3ovlohilw2] { min-width: 0; }
.tl-panel[b-3ovlohilw2] { animation: tl-panel-in-b-3ovlohilw2 .65s var(--ease-out) backwards; transform-origin: 50% 0; min-width: 0; }
@keyframes tl-panel-in-b-3ovlohilw2 {
    from { opacity: 0; transform: perspective(1600px) translate3d(0, 26px, -90px) rotateX(9deg); filter: blur(6px); }
    to { opacity: 1; transform: none; filter: none; }
}

/* ---------- mattoni comuni ---------- */
.tools[b-3ovlohilw2]  .tl-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.tools[b-3ovlohilw2]  .tl-grid.one { grid-template-columns: minmax(0, 1fr); }
.tools[b-3ovlohilw2]  .tl-grid .span-2 { grid-column: 1 / -1; }
@media (max-width: 860px) { .tools[b-3ovlohilw2]  .tl-grid { grid-template-columns: minmax(0, 1fr); } }

.tools[b-3ovlohilw2]  .tl-card { padding: 20px; overflow: hidden; scroll-margin-top: 90px; }
.tools[b-3ovlohilw2]  .tl-card.flash { animation: tl-flash-b-3ovlohilw2 1.6s var(--ease-out); }
@keyframes tl-flash-b-3ovlohilw2 { 0%, 40% { box-shadow: 0 0 0 2px var(--accent-2), 0 0 60px -10px var(--accent-2); } }
.tools[b-3ovlohilw2]  .tl-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.tools[b-3ovlohilw2]  .tl-head h2 { font-size: 1.15rem; }
.tools[b-3ovlohilw2]  .tl-head .tl-ico {
    width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; font-size: 22px; flex: none;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 60%, transparent), color-mix(in oklab, var(--accent-2) 45%, transparent));
    box-shadow: 0 10px 24px -10px color-mix(in oklab, var(--accent) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.3);
    transform: translateZ(20px);
}
.tools[b-3ovlohilw2]  .tl-head .tl-sub { color: var(--text-3); font-size: .8rem; }

.tools[b-3ovlohilw2]  .tl-fields { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.tools[b-3ovlohilw2]  .tl-fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tools[b-3ovlohilw2]  .tl-fields.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 480px) { .tools[b-3ovlohilw2]  .tl-fields.three { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tools[b-3ovlohilw2]  .tl-fields .full { grid-column: 1 / -1; }
.tools[b-3ovlohilw2]  .field .input { min-width: 0; }
.tools[b-3ovlohilw2]  .suffix { position: relative; }
.tools[b-3ovlohilw2]  .suffix > .input { padding-right: 52px; }
.tools[b-3ovlohilw2]  .suffix > i { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; color: var(--text-3); font-size: .85rem; pointer-events: none; }

/* risultati */
.tools[b-3ovlohilw2]  .tl-outs { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); margin-top: 16px; }
.tools[b-3ovlohilw2]  .tl-out {
    position: relative; padding: 12px 14px; border-radius: 16px; min-width: 0;
    background: rgba(0,0,0,.22); border: 1px solid var(--border);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.tools[b-3ovlohilw2]  .tl-out.main {
    background: linear-gradient(145deg, color-mix(in oklab, var(--accent) 30%, rgba(0,0,0,.2)), color-mix(in oklab, var(--accent-2) 16%, rgba(0,0,0,.2)));
    border-color: color-mix(in oklab, var(--accent) 45%, transparent);
    box-shadow: 0 16px 34px -18px color-mix(in oklab, var(--accent) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.14);
}
.tools[b-3ovlohilw2]  .tl-out .k { font-size: .7rem; font-weight: 700; color: var(--text-2); text-transform: uppercase; letter-spacing: .08em; }
.tools[b-3ovlohilw2]  .tl-out .v { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.tools[b-3ovlohilw2]  .tl-out.main .v { font-size: 1.7rem; }
.tools[b-3ovlohilw2]  .tl-out .s { font-size: .76rem; color: var(--text-3); }
.tools[b-3ovlohilw2]  .v.bump { animation: tl-bump-b-3ovlohilw2 .45s var(--ease-spring); }
@keyframes tl-bump-b-3ovlohilw2 { 0% { transform: translateY(6px) scale(.97); opacity: .4; } 100% { transform: none; opacity: 1; } }

.tools[b-3ovlohilw2]  .tl-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.tools[b-3ovlohilw2]  .tl-note { font-size: .78rem; color: var(--text-3); margin-top: 10px; }
.tools[b-3ovlohilw2]  .tl-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.tools[b-3ovlohilw2]  .tl-chips .chip { height: 32px; padding: 0 12px; }
.tools[b-3ovlohilw2]  .seg { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.tools[b-3ovlohilw2]  .seg::-webkit-scrollbar { display: none; }

/* stepper numerico (persone, dadi…) */
.tools[b-3ovlohilw2]  .stepper { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 14px; background: rgba(0,0,0,.25); border: 1px solid var(--border); }
.tools[b-3ovlohilw2]  .stepper button { width: 38px; height: 38px; border-radius: 11px; border: 0; background: var(--surface-2); font-size: 1.1rem; font-weight: 700; cursor: pointer; transition: transform .2s var(--ease-spring), background .2s; }
.tools[b-3ovlohilw2]  .stepper button:active { transform: scale(.88); }
.tools[b-3ovlohilw2]  .stepper output, .tools[b-3ovlohilw2]  .stepper input { min-width: 36px; width: 46px; text-align: center; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; background: transparent; border: 0; color: var(--text); }

.tools[b-3ovlohilw2]  .budget-btn { background: linear-gradient(135deg, color-mix(in oklab, #7C3AED 45%, transparent), color-mix(in oklab, #22D3EE 25%, transparent)); border-color: color-mix(in oklab, #7C3AED 50%, transparent); }

/* ---------- selettore con ricerca (creato da tools.js) ---------- */
.tools[b-3ovlohilw2]  .pick-btn {
    display: flex; align-items: center; gap: 8px; min-width: 0; height: 46px; padding: 0 12px; border-radius: 14px; cursor: pointer; text-align: left;
    background: var(--surface-2); border: 1px solid var(--border); color: var(--text); font-weight: 600; transition: border-color .2s, background .2s, transform .25s var(--ease-spring);
}
.tools[b-3ovlohilw2]  .pick-btn:hover { border-color: var(--border-strong); background: var(--surface-3); }
.tools[b-3ovlohilw2]  .pick-btn:active { transform: scale(.97); }
.tools[b-3ovlohilw2]  .pick-btn .pb-ico { font-size: 1.15rem; flex: none; }
.tools[b-3ovlohilw2]  .pick-btn .pb-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tools[b-3ovlohilw2]  .pick-btn .pb-sym { color: var(--text-3); font-size: .8rem; flex: none; }
.tools[b-3ovlohilw2]  .pick-btn::after { content: ""; width: 7px; height: 7px; border-right: 2px solid var(--text-3); border-bottom: 2px solid var(--text-3); transform: rotate(45deg) translateY(-3px); flex: none; margin-left: 2px; }

.tools[b-3ovlohilw2]  .pp-backdrop { position: fixed; inset: 0; z-index: 90; background: transparent; }
.tools[b-3ovlohilw2]  .pick-pop {
    position: fixed; z-index: 91; display: flex; flex-direction: column; gap: 8px; padding: 10px; max-height: 380px;
    border-radius: 20px; background: linear-gradient(160deg, rgba(34,30,80,.97), rgba(14,12,40,.98)); border: 1px solid var(--border-strong);
    box-shadow: 0 30px 70px -20px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.1);
    animation: pp-in-b-3ovlohilw2 .32s var(--ease-spring) both; transform-origin: 50% 0;
}
.tools[b-3ovlohilw2]  .pick-pop.out { animation: pp-out-b-3ovlohilw2 .18s ease-in both; }
@keyframes pp-in-b-3ovlohilw2 { from { opacity: 0; transform: perspective(900px) rotateX(-22deg) translateY(-8px) scale(.96); } }
@keyframes pp-out-b-3ovlohilw2 { to { opacity: 0; transform: translateY(-6px) scale(.97); } }
.tools[b-3ovlohilw2]  .pp-head { display: none; align-items: center; justify-content: space-between; padding: 2px 4px 0 8px; }
.tools[b-3ovlohilw2]  .pp-search { height: 42px; flex: none; }
.tools[b-3ovlohilw2]  .pp-list { overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 2px; min-height: 0; }
.tools[b-3ovlohilw2]  .pp-item {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 11px; border: 0; background: transparent; cursor: pointer; text-align: left; font-size: .9rem;
    animation: pp-item-b-3ovlohilw2 .35s var(--ease-out) backwards; animation-delay: calc(var(--i) * 12ms);
}
@keyframes pp-item-b-3ovlohilw2 { from { opacity: 0; transform: translateX(-6px); } }
.tools[b-3ovlohilw2]  .pp-item:hover, .tools[b-3ovlohilw2]  .pp-item.act { background: var(--surface-2); }
.tools[b-3ovlohilw2]  .pp-item.sel { background: color-mix(in oklab, var(--accent) 26%, transparent); }
.tools[b-3ovlohilw2]  .pp-ico { font-size: 1.1rem; width: 24px; text-align: center; flex: none; }
.tools[b-3ovlohilw2]  .pp-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tools[b-3ovlohilw2]  .pp-sym { color: var(--text-3); font-size: .78rem; flex: none; max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tools[b-3ovlohilw2]  .pp-empty { padding: 16px; text-align: center; color: var(--text-3); font-size: .85rem; }
@media (max-width: 640px) {
    .tools[b-3ovlohilw2]  .pp-backdrop { background: rgba(3,2,12,.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: fade-in-b-3ovlohilw2 .25s both; }
    .tools[b-3ovlohilw2]  .pick-pop { left: 0; right: 0; bottom: 0; top: auto; width: 100%; max-height: 72vh; border-radius: 26px 26px 0 0; padding: 12px 14px calc(14px + var(--safe-bottom)); animation: pp-up-b-3ovlohilw2 .38s var(--ease-out) both; }
    .tools[b-3ovlohilw2]  .pick-pop.out { animation: pp-down-b-3ovlohilw2 .2s ease-in both; }
    .tools[b-3ovlohilw2]  .pp-head { display: flex; }
    .tools[b-3ovlohilw2]  .pp-item { padding: 12px 10px; font-size: .95rem; }
    @keyframes pp-up-b-3ovlohilw2 { from { transform: translateY(100%); } }
    @keyframes pp-down-b-3ovlohilw2 { to { transform: translateY(100%); } }
}
@keyframes fade-in-b-3ovlohilw2 { from { opacity: 0; } }
/* /Components/Pages/Strumenti/TimerTab.razor.rz.scp.css */
/* =====================================================================
   Strumenti › Timer — preset 3D, anelli luminosi che si svuotano,
   pomodoro e cronometro (card e anelli creati da tools-timer.js → ::deep)
   ===================================================================== */

.tm[b-2y4ttr5ncx] { display: grid; gap: 18px; min-width: 0; --ring-a: var(--accent); --ring-b: var(--accent-2); }

/* ---------- preset ---------- */
.tm-presets[b-2y4ttr5ncx] { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; }
.tm-preset[b-2y4ttr5ncx] {
    position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 12px 10px; border-radius: 18px; cursor: pointer; text-align: left;
    border: 1px solid var(--border); background: linear-gradient(150deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); color: var(--text);
    box-shadow: 0 10px 22px -16px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.08);
    transition: transform .35s var(--ease-spring), border-color .25s, box-shadow .3s;
    animation: tp-in-b-2y4ttr5ncx .6s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 35ms);
    transform-style: preserve-3d;
}
.tm-preset:hover[b-2y4ttr5ncx] { transform: perspective(600px) translateY(-4px) rotateX(8deg); border-color: color-mix(in oklab, var(--accent) 55%, var(--border)); box-shadow: 0 18px 30px -16px color-mix(in oklab, var(--accent) 80%, transparent); }
.tm-preset:active[b-2y4ttr5ncx] { transform: scale(.94); }
.tm-preset.pop[b-2y4ttr5ncx] { animation: tp-pop-b-2y4ttr5ncx .5s var(--ease-spring); }
.tp-ico[b-2y4ttr5ncx] { font-size: 1.6rem; transform: translateZ(18px); filter: drop-shadow(0 6px 8px rgba(0,0,0,.4)); }
.tp-name[b-2y4ttr5ncx] { font-weight: 600; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.tp-dur[b-2y4ttr5ncx] { font-size: .78rem; color: var(--accent-2); font-weight: 700; }
@keyframes tp-in-b-2y4ttr5ncx { from { opacity: 0; transform: perspective(600px) rotateY(-50deg) translateX(-10px); } }
@keyframes tp-pop-b-2y4ttr5ncx { 40% { transform: scale(1.1); box-shadow: 0 0 0 3px var(--accent-2); } }

/* ---------- durata personalizzata ---------- */
.tm-form[b-2y4ttr5ncx] { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: end; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.tm-dur[b-2y4ttr5ncx] { display: flex; align-items: end; gap: 4px; }
.tm-dur .field[b-2y4ttr5ncx] { width: 74px; }
.tm-dur .input[b-2y4ttr5ncx] { text-align: center; font-size: 1.3rem; font-weight: 700; height: 52px; }
.tm-colon[b-2y4ttr5ncx] { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--text-3); padding-bottom: 10px; }
.tm-start[b-2y4ttr5ncx] { height: 52px; }
@media (max-width: 700px) {
    .tm-form[b-2y4ttr5ncx] { grid-template-columns: minmax(0, 1fr); }
    .tm-dur[b-2y4ttr5ncx] { justify-content: space-between; }
    .tm-dur .field[b-2y4ttr5ncx] { flex: 1; width: auto; }
    .tm-dur .input[b-2y4ttr5ncx] { height: 58px; font-size: 1.5rem; }
    .tm-start[b-2y4ttr5ncx] { width: 100%; }
}
[data-act="notify"].on[b-2y4ttr5ncx] { color: var(--success); }

/* ---------- timer attivi ---------- */
.tm-list[b-2y4ttr5ncx] { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
@media (max-width: 480px) { .tm-list[b-2y4ttr5ncx] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.tm[b-2y4ttr5ncx]  .tm-empty { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 18px; border-radius: 20px; border: 1px dashed var(--border-strong); color: var(--text-3); font-size: .9rem; }
.tm[b-2y4ttr5ncx]  .te-ico { font-size: 1.4rem; animation: float 4s ease-in-out infinite; display: inline-block; }

.tm[b-2y4ttr5ncx]  .tmc {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 12px 12px; border-radius: 26px;
    background: radial-gradient(90% 60% at 50% 0%, color-mix(in oklab, var(--accent) 18%, transparent), transparent 70%), linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
    border: 1px solid var(--border); box-shadow: var(--shadow-2);
    backdrop-filter: var(--blur); -webkit-backdrop-filter: var(--blur);
    animation: tmc-in-b-2y4ttr5ncx .7s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 50ms);
    min-width: 0;
}
.tm[b-2y4ttr5ncx]  .tmc.leaving { animation: tmc-out-b-2y4ttr5ncx .28s ease-in forwards; }
@keyframes tmc-in-b-2y4ttr5ncx { from { opacity: 0; transform: perspective(900px) rotateX(-40deg) translateY(30px) scale(.85); } }
@keyframes tmc-out-b-2y4ttr5ncx { to { opacity: 0; transform: perspective(900px) rotateX(30deg) scale(.8); } }
.tm[b-2y4ttr5ncx]  .tmc.pause { --ring-a: #94a3b8; --ring-b: #64748b; }
.tm[b-2y4ttr5ncx]  .tmc.done { --ring-a: #fb7185; --ring-b: #f97316; border-color: color-mix(in oklab, var(--danger) 50%, transparent); animation: tmc-alarm-b-2y4ttr5ncx 1.2s ease-in-out infinite; }
@keyframes tmc-alarm-b-2y4ttr5ncx { 50% { box-shadow: 0 0 0 3px color-mix(in oklab, var(--danger) 50%, transparent), 0 0 50px -6px var(--danger); } }

.tm[b-2y4ttr5ncx]  .tmc-ring { position: relative; width: min(100%, 170px); aspect-ratio: 1; transform: translateZ(26px); }
.tm[b-2y4ttr5ncx]  .ring { width: 100%; height: 100%; transform: rotate(0deg); overflow: visible; }
.tm[b-2y4ttr5ncx]  .ring .trk { fill: none; stroke: rgba(255,255,255,.07); stroke-width: 10; }
.tm[b-2y4ttr5ncx]  .ring .bar { fill: none; stroke-width: 10; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 60px 60px; filter: drop-shadow(0 0 6px var(--ring-a)); transition: stroke-dashoffset .25s linear; }
.tm[b-2y4ttr5ncx]  .ring .tip { fill: white; filter: drop-shadow(0 0 5px var(--ring-b)); transition: opacity .3s; }
.tm[b-2y4ttr5ncx]  .tmc-core, .tm[b-2y4ttr5ncx]  .pomo-core {
    position: absolute; inset: 16%; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0;
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.14), rgba(0,0,0,.35) 70%);
    box-shadow: inset 0 2px 0 rgba(255,255,255,.12), inset 0 -10px 24px rgba(0,0,0,.45), 0 14px 30px -12px rgba(0,0,0,.8);
}
.tm[b-2y4ttr5ncx]  .tmc-ico { font-size: 1.35rem; line-height: 1; }
.tm[b-2y4ttr5ncx]  .tmc-time { font-size: clamp(1.15rem, 5vw, 1.55rem); font-weight: 700; line-height: 1.15; }
.tm[b-2y4ttr5ncx]  .tmc-end { font-size: .66rem; color: var(--text-3); white-space: nowrap; }
.tm[b-2y4ttr5ncx]  .tmc-name { font-weight: 700; font-size: .92rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm[b-2y4ttr5ncx]  .tmc-btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.tm[b-2y4ttr5ncx]  .tmc-btn {
    min-width: 38px; height: 36px; padding: 0 8px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); cursor: pointer; font-weight: 700; font-size: .9rem;
    transition: transform .25s var(--ease-spring), background .2s;
}
.tm[b-2y4ttr5ncx]  .tmc-btn:hover { background: var(--surface-3); transform: translateY(-2px); }
.tm[b-2y4ttr5ncx]  .tmc-btn:active { transform: scale(.9); }
.tm[b-2y4ttr5ncx]  .tmc-btn.main { background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: transparent; }
.tm[b-2y4ttr5ncx]  .tmc-btn.del:hover { background: color-mix(in oklab, var(--danger) 30%, transparent); }

/* ---------- pomodoro ---------- */
.tm-bottom[b-2y4ttr5ncx] { align-items: stretch; }
.tm[b-2y4ttr5ncx]  [data-role="pomo"] { --ring-a: #f97316; --ring-b: #ef4444; }
.tm[b-2y4ttr5ncx]  [data-role="pomo"][data-phase="short"], .tm[b-2y4ttr5ncx]  [data-role="pomo"][data-phase="long"] { --ring-a: #34d399; --ring-b: #22d3ee; }
.tm[b-2y4ttr5ncx]  .pomo-dial { position: relative; width: min(100%, 250px); aspect-ratio: 1; margin: 0 auto; }
.tm[b-2y4ttr5ncx]  [data-role="pomo"][data-status="run"] .pomo-dial { animation: pomo-breathe-b-2y4ttr5ncx 4s ease-in-out infinite; }
@keyframes pomo-breathe-b-2y4ttr5ncx { 50% { transform: scale(1.025); filter: drop-shadow(0 0 30px color-mix(in oklab, var(--ring-a) 50%, transparent)); } }
.tm[b-2y4ttr5ncx]  .ring.big .trk, .tm[b-2y4ttr5ncx]  .ring.big .bar { stroke-width: 8; }
.tm[b-2y4ttr5ncx]  .pomo-core { inset: 14%; gap: 2px; text-align: center; }
.tm[b-2y4ttr5ncx]  .pomo-phase { font-size: .78rem; font-weight: 700; color: var(--text-2); }
.tm[b-2y4ttr5ncx]  .pomo-time { font-size: clamp(2rem, 9vw, 2.6rem); font-weight: 700; line-height: 1.05; }
.tm[b-2y4ttr5ncx]  .pomo-today { font-size: .72rem; }
.tm[b-2y4ttr5ncx]  .tomatoes { letter-spacing: -2px; }
.tm[b-2y4ttr5ncx]  .pomo-btns, .tm[b-2y4ttr5ncx]  .sw-btns { display: flex; gap: 10px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.tm[b-2y4ttr5ncx]  .pomo-btns .btn-primary, .tm[b-2y4ttr5ncx]  .sw-btns .btn-primary { min-width: 140px; }
.tm[b-2y4ttr5ncx]  .pomo-settings { margin-top: 16px; padding: 14px; border-radius: 18px; background: rgba(0,0,0,.2); border: 1px solid var(--border); animation: tl-panel-set-b-2y4ttr5ncx .4s var(--ease-out); }
.tm[b-2y4ttr5ncx]  .pomo-settings .tl-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@keyframes tl-panel-set-b-2y4ttr5ncx { from { opacity: 0; transform: translateY(-8px); } }
.pomo-task[b-2y4ttr5ncx] { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 8px; }

/* ---------- cronometro ---------- */
.tm[b-2y4ttr5ncx]  .sw-dial {
    display: grid; place-items: center; padding: 26px 10px; border-radius: 26px;
    background: radial-gradient(80% 90% at 50% 120%, color-mix(in oklab, var(--accent-2) 30%, transparent), transparent 60%), linear-gradient(180deg, rgba(2,4,16,.8), rgba(8,10,34,.6));
    box-shadow: inset 0 3px 16px rgba(0,0,0,.65), inset 0 0 0 1px rgba(255,255,255,.06);
}
.tm[b-2y4ttr5ncx]  .sw-time { font-size: clamp(2.2rem, 10vw, 3.4rem); font-weight: 700; text-shadow: 0 0 30px color-mix(in oklab, var(--accent-2) 60%, transparent); }
.tm[b-2y4ttr5ncx]  [data-role="sw"][data-status="run"] .sw-time { color: color-mix(in oklab, var(--accent-2) 40%, white); }
.tm[b-2y4ttr5ncx]  .sw-laps { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; }
.tm[b-2y4ttr5ncx]  .sw-laps li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; padding: 8px 12px; border-radius: 12px; background: var(--surface); font-size: .88rem; animation: lap-in-b-2y4ttr5ncx .4s var(--ease-spring); }
.tm[b-2y4ttr5ncx]  .sw-laps li.best { background: color-mix(in oklab, var(--success) 18%, transparent); }
.tm[b-2y4ttr5ncx]  .sw-laps li.worst { background: color-mix(in oklab, var(--danger) 16%, transparent); }
@keyframes lap-in-b-2y4ttr5ncx { from { opacity: 0; transform: translateY(-8px) scale(.97); } }
/* /Components/Pages/Strumenti/VarieTab.razor.rz.scp.css */
/* =====================================================================
   Strumenti › Varie — password, moneta e dadi 3D, sorteggio, livella
   ===================================================================== */

.vr[b-0d1l56rvtx] { min-width: 0; }

/* ---------- password ---------- */
.pw-out[b-0d1l56rvtx] { display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 16px; border-radius: 20px; background: rgba(0,0,0,.3); border: 1px solid var(--border); box-shadow: inset 0 2px 12px rgba(0,0,0,.4); }
.pw-text[b-0d1l56rvtx] { flex: 1; min-width: 0; font-family: ui-monospace, "Cascadia Code", Consolas, monospace; font-size: 1.15rem; font-weight: 600; letter-spacing: .02em; overflow-wrap: anywhere; line-height: 1.5; min-height: 1.5em; }
.vr[b-0d1l56rvtx]  .pw-text span { display: inline-block; animation: ch-in-b-0d1l56rvtx .45s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 12ms); white-space: pre; }
.vr[b-0d1l56rvtx]  .pw-text span.d { color: #7dd3fc; }
.vr[b-0d1l56rvtx]  .pw-text span.s { color: #f9a8d4; }
@keyframes ch-in-b-0d1l56rvtx { from { opacity: 0; transform: perspective(300px) rotateX(-90deg); } }
.pw-btns[b-0d1l56rvtx] { display: flex; gap: 6px; flex: none; }
.pw-meter[b-0d1l56rvtx] { display: flex; align-items: center; gap: 10px; margin: 12px 0 4px; }
.pw-meter .progress[b-0d1l56rvtx] { flex: 1; }
.pw-opts[b-0d1l56rvtx] { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.pw-range[b-0d1l56rvtx] { width: 100%; accent-color: var(--accent); height: 28px; }
.pw-checks[b-0d1l56rvtx] { display: flex; flex-wrap: wrap; gap: 10px 18px; font-size: .9rem; }
.pp-sep[b-0d1l56rvtx] { width: 110px; height: 38px; }
[data-kind="pp"] .pw-only[b-0d1l56rvtx], [data-kind="pw"] .pp-only[b-0d1l56rvtx] { display: none; }
.pp-only[b-0d1l56rvtx] { display: none; }
[data-kind="pp"] .pp-only[b-0d1l56rvtx] { display: flex; }

/* ---------- moneta ---------- */
.coin-row[b-0d1l56rvtx] { display: flex; align-items: center; gap: 18px; margin-bottom: 18px; }
.coin[b-0d1l56rvtx] { width: 92px; height: 92px; flex: none; border: 0; padding: 0; background: none; cursor: pointer; perspective: 600px; }
.coin-inner[b-0d1l56rvtx] { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 1.2s cubic-bezier(.2, .8, .25, 1); }
.coin .face[b-0d1l56rvtx] {
    position: absolute; inset: 0; border-radius: 50%; display: grid; place-items: center; backface-visibility: hidden; -webkit-backface-visibility: hidden;
    font-family: var(--font-display); font-weight: 800; font-size: 2rem; color: #5b3a00;
    background: radial-gradient(circle at 35% 30%, #fff3c4, #f5c542 45%, #b7791f 100%);
    box-shadow: inset 0 0 0 5px rgba(255,255,255,.35), inset 0 -8px 14px rgba(120,53,15,.5), 0 16px 26px -12px rgba(0,0,0,.8);
}
.coin .face.tails[b-0d1l56rvtx] { transform: rotateY(180deg); background: radial-gradient(circle at 35% 30%, #f1f5f9, #cbd5e1 45%, #64748b 100%); color: #1e293b; }
.coin:active .coin-inner[b-0d1l56rvtx] { scale: .95; }
.coin-res[b-0d1l56rvtx] { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; }

/* ---------- dadi ---------- */
.dice-ctl[b-0d1l56rvtx] { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.dice-stage[b-0d1l56rvtx] { display: block; width: 100%; margin-top: 14px; padding: 26px 10px; border-radius: 24px; border: 1px dashed var(--border-strong); background: radial-gradient(circle at 50% 120%, color-mix(in oklab, var(--accent) 25%, transparent), transparent 70%); cursor: pointer; }
.dice-stage:active[b-0d1l56rvtx] { transform: scale(.99); }
.vr[b-0d1l56rvtx]  .dice { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; perspective: 700px; }
.vr[b-0d1l56rvtx]  .die { --s: 58px; width: var(--s); height: var(--s); position: relative; }
.vr[b-0d1l56rvtx]  .die.cube .die-inner { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 1.1s cubic-bezier(.2, .9, .25, 1.05); }
.vr[b-0d1l56rvtx]  .df {
    position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); padding: 8px; border-radius: 12px;
    background: linear-gradient(145deg, #ffffff, #dcdcf0); box-shadow: inset 0 0 0 1px rgba(0,0,0,.08), inset 0 -4px 10px rgba(0,0,0,.12);
    backface-visibility: hidden; -webkit-backface-visibility: hidden;
}
.vr[b-0d1l56rvtx]  .df i { display: block; margin: auto; width: 9px; height: 9px; border-radius: 50%; }
.vr[b-0d1l56rvtx]  .df i.on { background: radial-gradient(circle at 35% 35%, #4b5563, #0b0a1f); }
.vr[b-0d1l56rvtx]  .df.f1 i.on { background: radial-gradient(circle at 35% 35%, #fb7185, #9f1239); width: 13px; height: 13px; }
.vr[b-0d1l56rvtx]  .f1 { transform: translateZ(29px); }
.vr[b-0d1l56rvtx]  .f6 { transform: rotateY(180deg) translateZ(29px); }
.vr[b-0d1l56rvtx]  .f2 { transform: rotateY(90deg) translateZ(29px); }
.vr[b-0d1l56rvtx]  .f5 { transform: rotateY(-90deg) translateZ(29px); }
.vr[b-0d1l56rvtx]  .f3 { transform: rotateX(90deg) translateZ(29px); }
.vr[b-0d1l56rvtx]  .f4 { transform: rotateX(-90deg) translateZ(29px); }
.vr[b-0d1l56rvtx]  .die.landed { animation: die-land-b-0d1l56rvtx .4s var(--ease-spring); }
@keyframes die-land-b-0d1l56rvtx { 50% { transform: translateY(-6px) scale(1.06); } }

.vr[b-0d1l56rvtx]  .die.poly .die-inner {
    position: absolute; inset: -4px; display: grid; place-items: center;
    background: linear-gradient(145deg, color-mix(in oklab, var(--accent) 70%, white), var(--accent-2));
    clip-path: polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%);
    box-shadow: inset 0 -8px 16px rgba(0,0,0,.3);
    filter: drop-shadow(0 12px 14px rgba(0,0,0,.5));
}
.vr[b-0d1l56rvtx]  .die.poly.d4 .die-inner { clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.vr[b-0d1l56rvtx]  .die.poly.d8 .die-inner { clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
.vr[b-0d1l56rvtx]  .die.poly.d12 .die-inner { clip-path: polygon(50% 0, 90% 20%, 100% 62%, 75% 100%, 25% 100%, 0 62%, 10% 20%); }
.vr[b-0d1l56rvtx]  .die.poly.d20 .die-inner { clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); }
.vr[b-0d1l56rvtx]  .die.poly .pv { font-size: 1.5rem; font-weight: 800; color: white; text-shadow: 0 2px 4px rgba(0,0,0,.4); padding-top: 6px; }
.vr[b-0d1l56rvtx]  .die.poly.spin .die-inner { animation: poly-spin-b-0d1l56rvtx 1s cubic-bezier(.2, .8, .3, 1); }
@keyframes poly-spin-b-0d1l56rvtx { from { transform: rotateY(-720deg) rotateZ(-200deg) translateY(-30px) scale(.7); } }

.dice-sum[b-0d1l56rvtx] { text-align: center; margin-top: 12px; font-size: 1rem; color: var(--text-2); min-height: 2.2rem; }
.vr[b-0d1l56rvtx]  .dice-sum strong { font-size: 1.8rem; color: var(--text); animation: tl-bump-b-0d1l56rvtx .5s var(--ease-spring); display: inline-block; }
@keyframes tl-bump-b-0d1l56rvtx { from { transform: scale(.6); opacity: 0; } }
.dice-hist[b-0d1l56rvtx] { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 8px; }
.vr[b-0d1l56rvtx]  .dh { font-size: .72rem; padding: 3px 9px; border-radius: 99px; background: var(--surface); color: var(--text-3); }
.vr[b-0d1l56rvtx]  .dh:first-child { color: var(--text); background: var(--surface-2); }

/* ---------- sorteggio ---------- */
.draw-out[b-0d1l56rvtx] { margin-top: 14px; min-height: 10px; }
.vr[b-0d1l56rvtx]  .draw-ticker { text-align: center; font-size: 1.6rem; font-weight: 700; padding: 18px; border-radius: 20px; background: rgba(0,0,0,.25); animation: tick-blur-b-0d1l56rvtx .12s linear infinite alternate; }
@keyframes tick-blur-b-0d1l56rvtx { to { filter: blur(1px); transform: translateY(2px); } }
.vr[b-0d1l56rvtx]  .draw-title { font-weight: 700; margin-bottom: 8px; }
.vr[b-0d1l56rvtx]  .draw-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.vr[b-0d1l56rvtx]  .draw-chip {
    display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 8px; border-radius: 99px; font-weight: 700;
    background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 45%, transparent), color-mix(in oklab, var(--accent-2) 30%, transparent));
    box-shadow: 0 10px 22px -12px var(--accent); animation: chip-in-b-0d1l56rvtx .6s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 90ms);
}
.vr[b-0d1l56rvtx]  .draw-chip b { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: rgba(0,0,0,.3); font-size: .75rem; }
@keyframes chip-in-b-0d1l56rvtx { from { opacity: 0; transform: perspective(500px) rotateY(90deg) scale(.6); } }
.vr[b-0d1l56rvtx]  .teams { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.vr[b-0d1l56rvtx]  .team { padding: 12px; border-radius: 18px; background: color-mix(in oklab, var(--c) 18%, rgba(0,0,0,.2)); border: 1px solid color-mix(in oklab, var(--c) 45%, transparent); animation: chip-in-b-0d1l56rvtx .6s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 100ms); }
.vr[b-0d1l56rvtx]  .team-h { font-weight: 800; color: color-mix(in oklab, var(--c) 60%, white); margin-bottom: 6px; }
.vr[b-0d1l56rvtx]  .team ul { margin: 0; padding-left: 18px; font-size: .9rem; }

/* ---------- livella ---------- */
.level[b-0d1l56rvtx] {
    position: relative; width: min(100%, 250px); aspect-ratio: 1; margin: 0 auto; border-radius: 50%; container-type: inline-size;
    background: radial-gradient(circle at 50% 40%, rgba(163,230,53,.35), rgba(21,128,61,.55) 70%, rgba(6,78,59,.8));
    box-shadow: inset 0 10px 30px rgba(0,0,0,.5), inset 0 -4px 12px rgba(255,255,255,.12), 0 20px 40px -20px rgba(0,0,0,.8), 0 0 0 6px rgba(255,255,255,.06);
    transition: box-shadow .3s;
}
.level.is-level[b-0d1l56rvtx] { box-shadow: inset 0 10px 30px rgba(0,0,0,.5), 0 0 0 6px color-mix(in oklab, var(--success) 60%, transparent), 0 0 50px -6px var(--success); }
.lv-ring[b-0d1l56rvtx] { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 2px solid rgba(255,255,255,.35); transform: translate(-50%, -50%); }
.lv-ring.r1[b-0d1l56rvtx] { width: 22%; height: 22%; }
.lv-ring.r2[b-0d1l56rvtx] { width: 60%; height: 60%; border-style: dashed; border-color: rgba(255,255,255,.18); }
.lv-cross[b-0d1l56rvtx] { position: absolute; inset: 0; background: linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,.15)) center / 1px 100% no-repeat, linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,.15)) center / 100% 1px no-repeat; border-radius: 50%; }
.lv-bubble[b-0d1l56rvtx] {
    position: absolute; left: 50%; top: 50%; width: 18%; height: 18%; border-radius: 50%; transform: translate(-50%, -50%);
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(236,252,203,.7) 40%, rgba(190,242,100,.35) 75%);
    box-shadow: 0 4px 10px rgba(0,0,0,.3), inset 0 -3px 6px rgba(0,0,0,.15);
    transition: transform .12s linear;
}
.lv-read[b-0d1l56rvtx] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
/* /Components/Photos/PhotoLightbox.razor.rz.scp.css */
.lb[b-6wgt5ncxnf] { position: fixed; inset: 0; z-index: 300; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; outline: none; perspective: 1400px;
    background: rgba(3,2,10,.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); animation: lb-fade-b-6wgt5ncxnf .3s ease both; touch-action: pan-y; }
@keyframes lb-fade-b-6wgt5ncxnf { from { opacity: 0; } }
.lb-bg[b-6wgt5ncxnf] { position: absolute; inset: -10%; background-size: cover; background-position: center; filter: blur(60px) saturate(1.6) brightness(.45); opacity: .7; z-index: -1; transition: background-image .4s; }

.lb-top[b-6wgt5ncxnf] { display: flex; align-items: center; gap: 10px; padding: calc(12px + var(--safe-top)) 16px 8px; }
.lb-count[b-6wgt5ncxnf] { font-weight: 700; font-size: .9rem; padding: 5px 11px; border-radius: 10px; background: rgba(255,255,255,.08); }
.lb-cap[b-6wgt5ncxnf] { color: var(--text-2); font-size: .9rem; min-width: 0; }

.lb-stage[b-6wgt5ncxnf] { display: grid; place-items: center; min-height: 0; padding: 0 16px; }
.lb-img[b-6wgt5ncxnf] { max-width: min(100%, 1600px); max-height: 100%; object-fit: contain; border-radius: 14px; box-shadow: 0 40px 90px -30px rgba(0,0,0,.95); user-select: none; -webkit-user-drag: none; }
.lb-img.in[b-6wgt5ncxnf] { animation: lb-in-b-6wgt5ncxnf .55s var(--ease-spring) both; }
.lb-img.from-right[b-6wgt5ncxnf] { animation: lb-right-b-6wgt5ncxnf .5s var(--ease-out) both; }
.lb-img.from-left[b-6wgt5ncxnf] { animation: lb-left-b-6wgt5ncxnf .5s var(--ease-out) both; }
@keyframes lb-in-b-6wgt5ncxnf { from { opacity: 0; transform: scale(.7) rotateX(24deg); } }
@keyframes lb-right-b-6wgt5ncxnf { from { opacity: 0; transform: translateX(22%) rotateY(-35deg) scale(.9); } }
@keyframes lb-left-b-6wgt5ncxnf { from { opacity: 0; transform: translateX(-22%) rotateY(35deg) scale(.9); } }

.lb-nav[b-6wgt5ncxnf] { position: absolute; top: 50%; width: 52px; height: 52px; margin-top: -26px; border-radius: 18px; border: 1px solid var(--border-strong); cursor: pointer;
    background: rgba(20,18,50,.6); backdrop-filter: blur(10px); color: #fff; font-size: 2rem; line-height: 1; display: grid; place-items: center; transition: transform .3s var(--ease-spring), background .2s; }
.lb-nav:hover[b-6wgt5ncxnf] { background: color-mix(in oklab, var(--accent) 50%, transparent); transform: scale(1.08); }
.lb-nav.prev[b-6wgt5ncxnf] { left: 16px; }
.lb-nav.next[b-6wgt5ncxnf] { right: 16px; }

.lb-strip[b-6wgt5ncxnf] { display: flex; justify-content: center; gap: 8px; padding: 10px 16px calc(14px + var(--safe-bottom)); overflow-x: auto; scrollbar-width: none; }
.lb-strip[b-6wgt5ncxnf]::-webkit-scrollbar { display: none; }
.lb-th[b-6wgt5ncxnf] { flex: none; width: 54px; height: 54px; padding: 0; border-radius: 12px; overflow: hidden; border: 2px solid transparent; cursor: pointer; opacity: .55; background: none; transition: all .3s var(--ease-out); }
.lb-th img[b-6wgt5ncxnf] { width: 100%; height: 100%; object-fit: cover; }
.lb-th.on[b-6wgt5ncxnf] { opacity: 1; border-color: #fff; transform: translateY(-4px); box-shadow: 0 10px 20px -8px var(--accent-2); }
.lb-th:hover[b-6wgt5ncxnf] { opacity: 1; }

@media (max-width: 700px) {
    .lb-nav[b-6wgt5ncxnf] { display: none; }
    .lb-stage[b-6wgt5ncxnf] { padding: 0 6px; }
    .lb-img[b-6wgt5ncxnf] { border-radius: 10px; }
    .lb-th[b-6wgt5ncxnf] { width: 44px; height: 44px; }
}
/* /Components/Photos/PhotoPicker.razor.rz.scp.css */
.pp[b-kzhogo9u4x] { position: relative; border-radius: 20px; padding: 10px; margin: 0 -10px; outline: none; transition: background .3s, box-shadow .3s; }
.pp.ph-drop[b-kzhogo9u4x] { background: color-mix(in oklab, var(--accent) 16%, transparent); box-shadow: inset 0 0 0 2px var(--accent-2); }
.pp.ph-drop[b-kzhogo9u4x]::after { content: "Rilascia per aggiungere"; position: absolute; inset: 0; display: grid; place-items: center; border-radius: inherit; font-weight: 700; color: #fff; background: rgba(5,4,15,.55); backdrop-filter: blur(4px); pointer-events: none; }

.pp-grid[b-kzhogo9u4x] { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; perspective: 900px; }
.pp-cell[b-kzhogo9u4x] { position: relative; aspect-ratio: 1; border-radius: 16px; animation: pp-in-b-kzhogo9u4x .55s var(--ease-spring) backwards; animation-delay: calc(var(--i, 0) * 45ms); }
@keyframes pp-in-b-kzhogo9u4x { from { opacity: 0; transform: rotateY(-70deg) scale(.6); } to { opacity: 1; transform: none; } }

.pp-img[b-kzhogo9u4x] { position: absolute; inset: 0; padding: 0; border: 0; border-radius: inherit; overflow: hidden; cursor: zoom-in; background: rgba(255,255,255,.06);
    box-shadow: 0 14px 26px -16px rgba(0,0,0,.9), inset 0 0 0 1px rgba(255,255,255,.1); transition: transform .35s var(--ease-spring), box-shadow .3s; }
.pp-img img[b-kzhogo9u4x] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
.pp-img:hover[b-kzhogo9u4x] { transform: translateY(-3px) rotateX(6deg); box-shadow: 0 22px 34px -16px rgba(0,0,0,.95), 0 0 0 2px color-mix(in oklab, var(--accent-2) 60%, transparent); }
.pp-img:hover img[b-kzhogo9u4x] { transform: scale(1.08); }

.pp-del[b-kzhogo9u4x] { position: absolute; top: -6px; right: -6px; width: 26px; height: 26px; border-radius: 50%; border: 0; cursor: pointer; font-size: .7rem; font-weight: 800;
    background: rgba(12,10,32,.92); color: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.25); opacity: 0; transform: scale(.6); transition: all .25s var(--ease-spring); }
.pp-cell:hover .pp-del[b-kzhogo9u4x], .pp-del:focus-visible[b-kzhogo9u4x] { opacity: 1; transform: none; }
.pp-del:hover[b-kzhogo9u4x] { background: var(--danger); }
@media (hover: none) { .pp-del[b-kzhogo9u4x] { opacity: 1; transform: none; } }

.pp-cover[b-kzhogo9u4x], .pp-new[b-kzhogo9u4x] { position: absolute; left: 6px; bottom: 6px; padding: 2px 7px; border-radius: 8px; font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; pointer-events: none; }
.pp-cover[b-kzhogo9u4x] { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; box-shadow: 0 4px 10px -2px rgba(0,0,0,.6); }
.pp-new[b-kzhogo9u4x] { left: auto; right: 6px; background: rgba(5,4,15,.72); color: var(--accent-2); }

.pp-busy[b-kzhogo9u4x] { display: grid; place-items: center; background: linear-gradient(110deg, rgba(255,255,255,.05) 30%, rgba(255,255,255,.14) 50%, rgba(255,255,255,.05) 70%); background-size: 200% 100%; animation: pp-in-b-kzhogo9u4x .4s both, pp-shimmer-b-kzhogo9u4x 1.2s linear infinite; }
@keyframes pp-shimmer-b-kzhogo9u4x { to { background-position: -200% 0; } }
.pp-spin[b-kzhogo9u4x] { width: 26px; height: 26px; border-radius: 50%; border: 3px solid rgba(255,255,255,.15); border-top-color: var(--accent-2); animation: pp-rot-b-kzhogo9u4x .8s linear infinite; }
@keyframes pp-rot-b-kzhogo9u4x { to { transform: rotate(360deg); } }

.pp-add[b-kzhogo9u4x] { aspect-ratio: 1; border-radius: 16px; border: 1.5px dashed var(--border-strong); background: rgba(255,255,255,.03); color: var(--text-2); cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; transition: all .3s var(--ease-out); }
.pp-add:hover[b-kzhogo9u4x] { color: #fff; border-color: var(--accent-2); background: color-mix(in oklab, var(--accent) 14%, transparent); transform: translateY(-2px); }
.pp-add-ico[b-kzhogo9u4x] { font-size: 1.5rem; line-height: 1; }
.pp-add-lbl[b-kzhogo9u4x] { font-size: .78rem; font-weight: 650; }
.pp-add-count[b-kzhogo9u4x] { font-size: .66rem; color: var(--text-3); }
.pp-hint[b-kzhogo9u4x] { margin: 8px 2px 0; }

@media (max-width: 640px) {
    .pp-grid[b-kzhogo9u4x] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }

}
@media (max-width: 700px) { .pp-add.pp-cam[b-kzhogo9u4x] { display: flex !important; } }
