/* Patch 067 - account locale, registrazione e recupero password */
.postit-local-login { display:grid; gap:10px; }
.postit-local-login label { display:grid; gap:4px; color:#4f5b6a; font-size:10px; font-weight:800; }
.postit-local-login input[type="email"],
.postit-local-login input[type="password"],
.postit-local-login input[type="text"] { width:100%; min-height:38px; box-sizing:border-box; border:1px solid #cfd7e1; border-radius:8px; padding:8px 10px; background:#fff; color:#253043; font:inherit; font-size:12px; font-weight:400; outline:none; }
.postit-local-login input:focus { border-color:#7394bd; box-shadow:0 0 0 3px rgba(73,116,164,.12); }
.postit-local-submit { width:100%; min-height:38px; justify-content:center; cursor:pointer; }
.postit-local-links { display:flex; justify-content:space-between; gap:12px; font-size:10px; }
.postit-local-links a,.postit-auth-back a { color:#456f9d; text-decoration:none; font-weight:700; }
.postit-local-links a:hover,.postit-auth-back a:hover { text-decoration:underline; }
.postit-login-separator { display:flex; align-items:center; gap:10px; margin:15px 0; color:#8b95a2; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.postit-login-separator::before,.postit-login-separator::after { content:""; height:1px; flex:1; background:#e5e9ee; }
.postit-login-success { margin-bottom:12px; border:1px solid #b9dfc8; border-radius:9px; background:#effaf3; color:#2e6943; padding:10px 12px; font-size:11px; }
.postit-register-card { width:min(520px,100%); }
.postit-password-policy { border:1px solid #dce3eb; border-radius:8px; background:#f6f8fa; color:#667283; padding:8px 10px; font-size:9px; line-height:1.45; }
.postit-legal-check { display:flex!important; grid-template-columns:none!important; flex-direction:row!important; align-items:flex-start; gap:7px!important; font-weight:500!important; line-height:1.4; }
.postit-legal-check input { margin-top:2px; flex:0 0 auto; }
.postit-legal-check a { color:#456f9d; }
.postit-auth-back { margin-top:14px; text-align:center; font-size:10px; }
.local-password-card { max-width:850px; }
.local-password-form { align-items:end; }
.local-password-form .postit-password-policy { align-self:stretch; display:flex; align-items:center; }
@media (max-width:600px) {
    .postit-local-links { flex-direction:column; align-items:flex-start; }
}

/* =============================================================
   Patch 068 - privacy, anti-bot registrazione e identita locale
   ============================================================= */

/* Tutti i menu contestuali della lavagna usano la stessa metrica tipografica. */
.context-menu > button { font-size:11px; padding:6px 8px; }
.context-menu .context-label { font-size:8.5px; }

/* Impostazioni legali: controlli allineati e checkbox separata dalla griglia campi. */
.legal-settings-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px 12px;
    align-items:start;
}
.legal-settings-grid > label {
    min-width:0;
    display:grid;
    grid-template-rows:auto 36px minmax(28px,auto);
    gap:4px;
    align-content:start;
}
.legal-settings-grid > label > input,
.legal-settings-grid > label > .legal-readonly-field {
    min-height:36px;
    height:36px;
    box-sizing:border-box;
}
.legal-settings-grid > label > small { margin:0; line-height:1.35; }
.legal-readonly-field {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:4px 6px 4px 9px;
    border:1px solid #ccd4de;
    border-radius:7px;
    background:#f8fafc;
}
.legal-readonly-field code { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.legal-readonly-field .mini-button { flex:0 0 auto; text-decoration:none; }
.settings-toggle-row {
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:10px;
    padding:9px 10px;
    border:1px solid #dfe5ec;
    border-radius:9px;
    background:#fafbfc;
}
.settings-toggle-row > input { flex:0 0 auto; margin-top:2px; }
.settings-toggle-row > span { display:grid; gap:2px; }
.settings-toggle-row small { color:#6d7887; font-weight:400; }

/* Il campo esca non deve alterare layout, tab order o lettori di schermo. */
.registration-honeypot {
    position:absolute !important;
    left:-10000px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

/* Password locale: gestita come modale dalla dashboard, non come pagina autonoma. */
.local-password-modal { width:min(760px,calc(100vw - 30px)); min-height:0; }
.local-password-modal > header small { display:block; margin-top:2px; color:#6d7887; font-size:9px; font-weight:500; }
.local-password-modal .local-password-form { margin-top:4px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.local-password-modal .postit-password-policy { grid-column:1/-1; }
.account-auth-note { margin-top:9px; color:#697586; font-size:9px; line-height:1.4; }

/* Informativa privacy pubblica. */
.privacy-page-card {
    width:min(1040px,100%);
    max-height:calc(100dvh - 48px);
    overflow:auto;
    box-sizing:border-box;
    border:1px solid #d9e0e8;
    border-radius:16px;
    background:#fff;
    box-shadow:0 18px 55px rgba(31,43,58,.14);
    padding:24px 28px 30px;
}
.privacy-page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px solid #e7ebf0; }
.privacy-page-header .privacy-brand { margin:0; }
.privacy-meta { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0 4px; }
.privacy-meta > span { display:flex; gap:6px; align-items:center; padding:5px 8px; border-radius:7px; background:#f3f6f9; color:#5e6a79; font-size:9px; }
.privacy-page-card > section { padding:15px 0 3px; border-bottom:1px solid #eef1f4; }
.privacy-page-card > section:last-of-type { border-bottom:0; }
.privacy-page-card h2 { margin:0 0 7px; font-size:15px; color:#202a39; }
.privacy-page-card p,.privacy-page-card li { color:#475466; font-size:11px; line-height:1.6; }
.privacy-page-card p { margin:6px 0; }
.privacy-page-card ul { margin:6px 0 8px; padding-left:21px; }
.privacy-page-card li + li { margin-top:4px; }
.privacy-loading { padding:30px 0; text-align:center; color:#6d7887; }

@media (max-width:1050px) {
    .legal-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .legal-settings-grid { grid-template-columns:1fr; }
    .local-password-modal .local-password-form { grid-template-columns:1fr; }
    .privacy-page-card { max-height:calc(100dvh - 24px); padding:18px; border-radius:12px; }
    .privacy-page-header { flex-direction:column; }
}


/* =============================================================
   Patch 069 - layout Legal & privacy e pulizia toolbar admin
   ============================================================= */
.legal-settings-panel {
    min-width:0;
    max-width:100%;
    overflow:hidden;
}
.legal-settings-panel .legal-settings-grid {
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
}
.legal-settings-panel .legal-settings-grid > label,
.legal-settings-panel .legal-settings-grid > label > input,
.legal-settings-panel .legal-readonly-field {
    min-width:0;
    max-width:100%;
    width:100%;
    box-sizing:border-box;
}
.legal-settings-panel .legal-settings-grid > label > small {
    min-width:0;
    overflow-wrap:anywhere;
}
.legal-settings-panel .settings-toggle-row {
    display:grid !important;
    grid-template-columns:18px minmax(0,1fr);
    align-items:start;
    gap:8px;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    margin-top:10px;
    padding:9px 10px;
    overflow:hidden;
}
.legal-settings-panel .settings-toggle-row > input {
    width:16px;
    height:16px;
    margin:2px 0 0;
}
.legal-settings-panel .settings-toggle-copy {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:2px;
    min-width:0;
    max-width:100%;
    margin:0;
    color:#4b5565;
    cursor:pointer;
}
.legal-settings-panel .settings-toggle-copy strong,
.legal-settings-panel .settings-toggle-copy small {
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    white-space:normal;
}
.legal-settings-panel .settings-toggle-copy small {
    color:#6d7887;
    font-weight:400;
    line-height:1.35;
}
@media (max-width:1400px) {
    .legal-settings-panel .legal-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .legal-settings-panel .legal-settings-grid { grid-template-columns:minmax(0,1fr); }
}

/* =============================================================
   Patch 070 - registrazione, email di sistema e UX zoom/attività
   ============================================================= */

/* Registrazione: il checkbox non eredita mai la width:100% dei controlli globali. */
.postit-register-card .postit-local-login { min-width:0; }
.postit-register-card .postit-legal-check {
    width:100%;
    min-width:0;
    display:grid !important;
    grid-template-columns:16px minmax(0,1fr) !important;
    align-items:start !important;
    gap:8px !important;
}
.postit-register-card .postit-legal-check input[type="checkbox"] {
    width:16px !important;
    min-width:16px !important;
    height:16px !important;
    min-height:16px !important;
    margin:1px 0 0 !important;
    padding:0 !important;
}
.postit-register-card .postit-legal-check > span {
    min-width:0;
    width:auto;
    overflow-wrap:anywhere;
    white-space:normal;
}

/* Attività completata: oltre al colore grigio il titolo è barrato. */
.postit-task-row.done .postit-task-open {
    text-decoration:line-through;
    text-decoration-thickness:1px;
}

/* Editor template email e coda. */
.email-template-table-wrap { max-height:390px; }
.email-template-modal { width:min(1180px,calc(100vw - 32px)); }
.email-template-modal > header > div,
.email-queue-modal > header > div { display:grid; gap:2px; min-width:0; }
.email-template-modal > header small,
.email-queue-modal > header small { color:#6f7a89; font-size:9px; font-weight:500; }
.email-template-subject { margin-bottom:10px; }
.email-template-editor-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    min-width:0;
}
.email-template-editor-grid > section {
    min-width:0;
    border:1px solid #dfe5ec;
    border-radius:9px;
    background:#fafbfc;
    overflow:hidden;
}
.email-template-editor-grid > section > header {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:8px;
    padding:8px 10px;
    border-bottom:1px solid #e4e9ef;
    background:#f4f6f9;
}
.email-template-editor-grid > section > header small { color:#768190; font-size:8px; }
.email-template-code {
    display:block;
    width:100%;
    min-height:220px;
    max-height:320px;
    margin:0;
    border:0;
    border-radius:0;
    resize:vertical;
    font-family:Consolas,"Courier New",monospace;
    font-size:10px;
    line-height:1.45;
}
.email-template-preview-frame {
    display:block;
    width:100%;
    min-height:220px;
    border:0;
    background:#fff;
}
.email-template-text-preview {
    min-height:220px;
    max-height:320px;
    margin:0;
    padding:10px;
    overflow:auto;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    background:#fff;
    color:#253043;
    font:10px/1.45 Consolas,"Courier New",monospace;
}
.email-queue-modal { width:min(1380px,calc(100vw - 32px)); }
.email-queue-toolbar { display:flex; justify-content:flex-end; margin-bottom:8px; }
.email-queue-toolbar label { width:180px; }
.email-queue-table-wrap { max-height:calc(100vh - 210px); }
.email-queue-status {
    display:inline-flex;
    align-items:center;
    min-height:20px;
    padding:2px 7px;
    border-radius:999px;
    background:#eef1f5;
    color:#526071;
    font-size:8px;
    font-weight:800;
    white-space:nowrap;
}
.email-queue-status.sent { background:#eaf7ef; color:#2f7147; }
.email-queue-status.error { background:#fff0f0; color:#9a3636; }
.email-queue-status.pending { background:#fff7dd; color:#80651b; }
.email-queue-status.processing { background:#eaf3ff; color:#315f94; }
.email-queue-status.suppressed { background:#f0eef5; color:#675c78; }
.email-queue-error {
    max-width:250px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#7a4650;
}

@media (max-width:850px) {
    .email-template-editor-grid { grid-template-columns:1fr; }
}


/* Patch 071 - cronologia note/attività */
.entity-status-history-row { display:inline-flex; align-items:center; gap:6px; }
.entity-history-button {
    width:26px; height:26px; min-height:0; padding:0; border:1px solid #cfd7e1; border-radius:7px;
    background:#fff; color:#445164; display:inline-grid; place-items:center; font-size:14px; line-height:1; cursor:pointer;
}
.entity-history-button:hover { background:#eef4fa; border-color:#aebdcd; }
.entity-history-button:focus-visible { outline:2px solid #7aa7d8; outline-offset:1px; }
.entity-history-backdrop { z-index:46000; }
.entity-history-modal { width:min(720px,calc(100vw - 28px)); max-height:min(760px,calc(100vh - 28px)); }
.entity-history-modal > header > div { min-width:0; }
.entity-history-modal > header h2 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.entity-history-modal > header small { color:#6b7684; }
.entity-history-body { display:grid; gap:14px; overflow:auto; }
.entity-history-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.entity-history-summary > div { min-width:0; border:1px solid #e0e5eb; border-radius:8px; padding:9px 10px; background:#f8fafc; display:flex; flex-direction:column; gap:2px; }
.entity-history-summary span { color:#687485; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.entity-history-summary strong { font-size:11px; overflow-wrap:anywhere; }
.entity-history-summary small { color:#687485; font-size:9px; overflow-wrap:anywhere; }
.entity-history-timeline { border-left:2px solid #dce3eb; margin-left:8px; padding-left:16px; display:grid; gap:2px; }
.entity-history-event { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; min-height:44px; border-bottom:1px solid #edf0f3; padding:6px 0; }
.entity-history-event:last-child { border-bottom:0; }
.entity-history-dot { position:absolute; left:-22px; width:10px; height:10px; border-radius:50%; background:#718096; border:2px solid #fff; box-shadow:0 0 0 1px #c8d1dc; }
.entity-history-event > div { min-width:0; display:flex; flex-direction:column; gap:1px; }
.entity-history-event strong { font-size:11px; }
.entity-history-event span { color:#687485; font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.entity-history-event time { color:#687485; font-size:9px; white-space:nowrap; }
@media (max-width:700px) {
    .entity-history-summary { grid-template-columns:1fr; }
    .entity-history-event { grid-template-columns:1fr; gap:2px; }
}

/* Patch 072 - dettaglio target negli eventi di cronologia */
.entity-history-event small {
    display: block;
    margin-top: 2px;
    color: var(--muted-text, #667085);
    font-size: .78rem;
}


/* Patch 074 - area superiore Post-it compatta.
   I controlli restano ancorati in alto ma non occupano più una riga verticale
   dedicata; il titolo usa subito lo spazio disponibile senza sovrapporsi alle azioni. */
.postit-card-header {
    position:absolute;
    top:5px;
    left:7px;
    right:7px;
    height:20px;
    min-height:0;
    z-index:21;
    pointer-events:none;
}
.postit-card-header .postit-source,
.postit-card-header .postit-menu-button { pointer-events:auto; }
.postit-card h2 {
    margin-top:0;
    padding-right:66px;
}
.postit-title-input {
    width:100%;
    box-sizing:border-box;
    margin-top:0;
    padding-right:66px;
}
.postit-card.has-source-state h2,
.postit-card.has-source-state .postit-title-input {
    padding-left:58px;
}


/* =============================================================
   Patch 076 - titolo note senza riga superiore sprecata
   I controlli superiori sono overlay; il contenuto parte subito dal bordo carta.
   ============================================================= */
.postit-card {
    padding-top:4px !important;
}
.postit-card-header {
    top:2px !important;
    margin:0 !important;
    padding:0 !important;
}
.postit-card > h2 {
    margin-top:0 !important;
    padding-top:1px;
}
.postit-card > .postit-title-input {
    margin-top:0 !important;
    padding-top:1px !important;
}

/* =============================================================
   Patch 077 - rimozione reale dello spazio sopra il titolo.
   skin-classic forza position:relative su tutti i figli diretti;
   l'header della nota deve invece restare fuori dal normale flusso.
   ============================================================= */
.postit-card.skin-classic > .postit-card-header {
    position:absolute !important;
    top:2px !important;
    left:7px;
    right:7px;
    height:20px;
    min-height:0;
    margin:0 !important;
    padding:0 !important;
    z-index:21 !important;
}

/* Mascotte board: stili runtime modulari in wwwroot/Asset/Mascots/. */
.mascot-board-setting { margin-top:8px; }
.mascot-board-setting small { display:block; margin-top:3px; color:#697585; font-size:10px; line-height:1.35; }
.mascot-behavior-options { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; padding:8px 10px; border:1px solid #d9e0e8; border-radius:8px; background:#f8fafc; }
.mascot-behavior-options .check-label { margin:0; }
.mascot-preview-mini { overflow:visible; }
.mascot-admin-table td:nth-child(1) { width:84px; }
.mascot-admin-help { margin-bottom:12px; }

/* =============================================================
   Patch 081 - strumenti preferiti, Timer, cestino trasparente e Mascotte fisica
   ============================================================= */

/* Il cestino resta un'area di drop/click accessibile, ma visivamente e' solo l'icona. */
.board-floating-trash {
    width:54px;
    height:54px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent !important;
    box-shadow:none !important;
    backdrop-filter:none;
    color:inherit;
    opacity:.58;
    overflow:visible;
    transition:opacity .16s ease,transform .12s ease,filter .12s ease;
}
.board-floating-trash:hover,
.board-floating-trash.is-relocating,
.board-floating-trash.is-drop-active {
    background:transparent !important;
    box-shadow:none !important;
    opacity:1;
}
.board-floating-trash:hover { transform:translateY(-1px) scale(1.04); }
.board-floating-trash.is-relocating { transform:scale(1.07); }
.board-floating-trash-icon {
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    font-size:39px;
    line-height:1;
    filter:drop-shadow(0 4px 5px rgba(0,0,0,.27));
}
.board-floating-trash[data-postit-drop-zone].is-drop-active {
    outline:0;
    color:#a82323;
    filter:drop-shadow(0 0 8px rgba(214,64,64,.58));
    transform:scale(1.18);
}
.board-floating-trash[data-postit-drop-zone="trash"]::after {
    inset:-10px;
    border-radius:50%;
}
.board-floating-trash > b {
    right:-2px;
    top:-1px;
    border-width:1px;
    box-shadow:0 2px 5px rgba(0,0,0,.24);
}

/* Catalogo strumenti e preferiti. */
.board-tool-all-button {
    margin-top:2px;
    border-top:1px solid #dce2e8 !important;
}
.tools-catalog-dialog { width:min(760px,calc(100vw - 28px)); }
.tools-catalog-dialog > header small { display:block; margin-top:2px; color:#697585; font-size:10px; font-weight:500; }
.tools-catalog-body { max-height:min(62vh,620px); overflow:auto; }
.tools-catalog-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(185px,1fr));
    gap:8px;
}
.tool-catalog-card {
    position:relative;
    min-width:0;
    border:1px solid #dce2e8;
    border-radius:9px;
    background:#fff;
    overflow:hidden;
    transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;
}
.tool-catalog-card:hover { border-color:#aebbc9; box-shadow:0 4px 12px rgba(32,47,61,.09); transform:translateY(-1px); }
.tool-catalog-card.is-favorite { border-color:#d6b452; }
.tool-catalog-main {
    width:100%;
    min-height:72px;
    padding:10px 38px 10px 10px;
    border:0;
    background:transparent;
    color:inherit;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:8px;
    align-items:center;
    text-align:left;
    cursor:pointer;
}
.tool-catalog-main > span:last-child { min-width:0; }
.tool-catalog-main strong,.tool-catalog-main small { display:block; }
.tool-catalog-main strong { font-size:11px; line-height:1.2; }
.tool-catalog-main small { margin-top:3px; color:#697585; font-size:9px; line-height:1.25; }
.tool-catalog-icon { display:grid; place-items:center; font-size:24px; line-height:1; }
.tool-favorite-star {
    position:absolute;
    z-index:2;
    top:5px;
    right:5px;
    width:28px;
    height:28px;
    min-height:0;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#a2a9b1;
    font-size:22px;
    line-height:1;
    cursor:pointer;
}
.tool-favorite-star:hover { background:#f3f5f7; color:#777f88; }
.tool-favorite-star.selected { color:#e1b52f; text-shadow:0 1px 2px rgba(104,74,0,.20); }
.tools-catalog-footer { justify-content:flex-end; gap:8px; }
.tools-catalog-footer > span { margin-right:auto; color:#697585; font-size:10px; }
.context-tool-icon { display:inline-grid; width:20px; margin-right:5px; place-items:center; }

/* Un unico oggetto Timer: modalita' cronometro oppure countdown. */
.timer-create-dialog { width:min(470px,calc(100vw - 28px)); }
.timer-create-body { display:grid; gap:12px; }
.timer-mode-choice { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.timer-mode-choice > button {
    min-height:72px;
    padding:10px;
    border:1px solid #d9e0e8;
    border-radius:9px;
    background:#fff;
    color:inherit;
    text-align:left;
    cursor:pointer;
}
.timer-mode-choice > button.selected { border-color:var(--theme-accent,#315f91); background:color-mix(in srgb,var(--theme-accent,#315f91) 9%,#fff); box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-accent,#315f91) 12%,transparent); }
.timer-mode-choice strong,.timer-mode-choice small { display:block; }
.timer-mode-choice small { margin-top:4px; color:#697585; font-size:9px; line-height:1.3; }
.timer-duration-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.timer-duration-fields label { display:grid; gap:4px; font-size:10px; font-weight:700; }
.timer-duration-fields input { width:100%; box-sizing:border-box; }
.board-element-timer { background:transparent !important; border:0 !important; }
.board-timer {
    width:100%;
    height:100%;
    box-sizing:border-box;
    display:grid;
    grid-template-rows:auto 1fr auto;
    align-items:center;
    justify-items:center;
    padding:10px 12px 8px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    background:rgba(17,24,39,.94);
    color:#f8fafc;
    box-shadow:0 6px 16px rgba(0,0,0,.24);
    font-variant-numeric:tabular-nums;
    user-select:none;
}
.board-timer > small { font-size:8px; line-height:1; letter-spacing:.14em; opacity:.62; }
.board-timer .timer-value { align-self:center; font-size:clamp(22px,4vw,38px); line-height:1; font-weight:800; letter-spacing:.045em; }
.board-timer-actions { display:flex; gap:6px; align-items:center; }
.board-timer-actions button {
    width:27px;
    height:23px;
    min-height:0;
    padding:0;
    border:1px solid rgba(255,255,255,.20);
    border-radius:6px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:11px;
    cursor:pointer;
}
.board-timer-actions button:hover { background:rgba(255,255,255,.17); }
.board-timer.is-expired { box-shadow:0 6px 16px rgba(0,0,0,.24),0 0 0 2px rgba(220,70,70,.65); }
.board-timer.is-expired .timer-value { animation:timer-expired-pulse .75s ease-in-out 2; }
@keyframes timer-expired-pulse { 50% { transform:scale(1.06); opacity:.72; } }

/* Patch 082: il CSS delle singole Mascotte e' stato separato in wwwroot/Asset/Mascots/. */

@media (max-width:620px) {
    .tools-catalog-grid { grid-template-columns:1fr 1fr; }
    .timer-mode-choice { grid-template-columns:1fr; }
}
.tool-favorites-warning { margin:0 0 8px; padding:7px 9px; border:1px solid #e7c65c; border-radius:7px; background:#fff8d9; color:#72570a; font-size:10px; font-weight:700; }


/* =============================================================
   Patch 083 - pacchetti Mascotte, safe area e cestino per Theme
   ============================================================= */
.board-floating-trash-image {
    display:block;
    width:64px;
    height:64px;
    max-width:none;
    object-fit:contain;
    pointer-events:none;
    user-select:none;
    filter:drop-shadow(0 5px 6px rgba(0,0,0,.30));
}
.board-floating-trash:has(.board-floating-trash-image) {
    width:64px;
    height:64px;
}
.board-floating-trash:has(.board-floating-trash-image) > b { right:-4px; top:-3px; }
.board-floating-trash[data-postit-drop-zone].is-drop-active .board-floating-trash-image {
    filter:drop-shadow(0 0 9px rgba(214,64,64,.72));
}

.mascot-timing-inline { color:#475569; font-variant-numeric:tabular-nums; }
.mascot-timing-preview {
    display:flex;
    flex-direction:column;
    gap:3px;
    padding:9px 11px;
    border:1px solid #cbd5e1;
    border-radius:8px;
    background:#f8fafc;
}
.mascot-timing-preview strong { font-size:11px; }
.mascot-timing-preview span { color:#475569; font-size:10px; line-height:1.4; font-variant-numeric:tabular-nums; }
.mascot-package-editor {
    margin-top:12px;
    padding:11px;
    border:1px solid #d7dee7;
    border-radius:10px;
    background:#f8fafc;
}
.mascot-package-editor > header {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    margin-bottom:10px;
}
.mascot-package-editor > header div { display:flex; flex-direction:column; gap:2px; }
.mascot-package-editor > header small { color:#64748b; font-size:10px; line-height:1.35; }
.mascot-package-editor code,
.mascot-animation-card code { font-size:9px; color:#526071; word-break:break-all; }
.mascot-animation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.mascot-animation-card {
    min-width:0;
    padding:8px;
    border:1px solid #d9e0e8;
    border-radius:8px;
    background:#fff;
}
.mascot-animation-card > header { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:7px; }
.mascot-animation-card > header div { display:flex; flex-direction:column; gap:1px; }
.mascot-animation-card > header small { color:#64748b; font-size:9px; }
.mascot-frame-strip { display:flex; gap:6px; overflow-x:auto; min-height:82px; padding:2px 1px 6px; align-items:center; }
.mascot-frame-item { flex:0 0 82px; border:1px solid #d8e0e8; border-radius:7px; overflow:hidden; background:#f8fafc; }
.mascot-frame-item img { display:block; width:82px; height:62px; object-fit:contain; background-image:linear-gradient(45deg,#eef2f6 25%,transparent 25%),linear-gradient(-45deg,#eef2f6 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef2f6 75%),linear-gradient(-45deg,transparent 75%,#eef2f6 75%); background-size:12px 12px; background-position:0 0,0 6px,6px -6px,-6px 0; }
.mascot-frame-item > div { display:flex; align-items:center; justify-content:center; gap:2px; padding:3px; }
.mascot-frame-item > div span { min-width:14px; text-align:center; font-size:9px; }
.mascot-frame-item .mini-button { width:18px; height:18px; min-height:0; padding:0; font-size:10px; line-height:1; }
.mascot-frame-empty { color:#7a8795; font-size:9px; line-height:1.35; }
.mascot-frame-upload { position:relative; display:inline-flex; margin-top:3px; padding:5px 7px; border:1px dashed #aab6c4; border-radius:6px; color:#445160; font-size:9px; font-weight:700; cursor:pointer; overflow:hidden; }
.mascot-frame-upload input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; }

@media(max-width:900px) {
    .mascot-animation-grid { grid-template-columns:1fr; }
    .mascot-package-editor > header { flex-direction:column; }
}

/* 084 - libreria Skin: card asset leggibili anche con preview grandi (es. cestino) */
.theme-resource-grid { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.theme-resource-card { grid-template-columns:72px minmax(0,1fr); align-items:start; gap:10px; min-width:0; }
.theme-resource-card .asset-preview-large { width:68px; height:68px; margin:0; border-radius:8px; }
.theme-resource-main { min-width:0; display:grid; align-content:start; gap:3px; padding-top:2px; }
.theme-resource-main strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.theme-resource-main small { color:#6b7280; font-size:9px; }
.theme-resource-main code { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#4b5563; font-size:8px; background:#f6f7f9; border-radius:4px; padding:2px 4px; }
.theme-resource-actions { align-items:center; padding-top:2px; border-top:1px solid #edf0f3; }
@media (max-width:720px) { .theme-resource-grid { grid-template-columns:1fr; } }

/* Patch 085 - selezione modalita' Orologio nel menu contestuale */
.context-menu button.selected-context-option {
    font-weight:800;
    background:color-mix(in srgb,var(--theme-accent,#315f91) 14%,#fff);
    border-color:color-mix(in srgb,var(--theme-accent,#315f91) 45%,#d7dde5);
}

/* Catalogo rapido dalla lavagna */
.shop-catalog-dialog { width:min(1040px,calc(100vw - 28px)); max-width:none; }

