/* Patch 229: navigation catalogo - "Tutti" resta sempre separato dalle categorie reali. */
.asset-category-all-divider { height:1px; margin:7px 5px 9px; background:color-mix(in srgb,var(--border-color,#dce3eb) 82%,transparent); }
.asset-category-all-row .asset-category-choice { font-weight:700; }
.asset-category-vtt-children { padding-bottom:10px; }

/* Patch 229: le board GAME_MEMORY espongono solo il runtime del gioco e la gestione lavagne. */
.memory-board-page .board-zoom-hud,
.memory-board-page .board-edit-tool-stack,
.memory-board-page .board-context-menu,
.memory-board-page .postit-context-menu { display:none !important; }
.memory-board-page .postit-board-canvas { pointer-events:none !important; user-select:none; }
.new-board-game-hint { margin:.15rem 0 .6rem; font-size:.82rem; opacity:.78; }

.memory-zoom-locked { display:flex; align-items:center; gap:10px; min-height:34px; }
.memory-zoom-locked b { min-width:52px; }
.memory-zoom-locked small { opacity:.72; }

/* =============================================================
   Patch 230 - selector lavagne, modal stacking e zoom browser
   ============================================================= */
.board-share-backdrop { z-index:48000 !important; }
.board-share-suggestions-floating { z-index:48020 !important; }
.invite-not-found-backdrop { z-index:49000 !important; }

.board-management-bar .board-switcher-custom { position:relative; min-width:0; max-width:none; }
.board-management-bar .board-switcher-trigger {
    width:100% !important;
    min-width:0;
    height:32px;
    padding:0 28px 0 9px !important;
    display:flex;
    align-items:center;
    gap:6px;
    text-align:left;
    overflow:hidden;
    position:relative;
}
.board-switcher-trigger-label { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.board-switcher-trigger-caret { position:absolute; right:8px; top:50%; transform:translateY(-52%); font-size:12px; opacity:.62; }
.board-switcher-menu {
    position:absolute;
    z-index:16050;
    left:0;
    top:calc(100% + 6px);
    width:min(430px,calc(100vw - 24px));
    /* 20 righe da 34px sono il tetto assoluto: le intestazioni consumano parte
       dell’altezza, quindi non possono mai apparire più di 20 lavagne senza scroll. */
    max-height:min(680px,calc(100dvh - 74px));
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    padding:6px;
    border:1px solid #cfd7e1;
    border-radius:9px;
    background:#fff;
    color:#20242a;
    box-shadow:0 16px 36px #0004;
}
.board-switcher-group + .board-switcher-group { margin-top:7px; padding-top:7px; border-top:1px solid #e4e8ed; }
.board-switcher-workspace-title { padding:3px 6px 4px; font-size:10px; font-weight:900; color:#344255; }
.board-switcher-section-title { padding:4px 7px 2px; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.045em; color:#7a8491; }
.board-switcher-section-title.shared { margin-top:3px; color:#526b86; }
.board-management-bar .board-switcher-option {
    width:100% !important;
    min-width:0;
    height:34px;
    padding:3px 7px !important;
    display:grid;
    grid-template-columns:18px minmax(0,1fr) auto;
    align-items:center;
    gap:6px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:inherit;
    text-align:left;
}
.board-management-bar .board-switcher-option:hover:not(:disabled),
.board-management-bar .board-switcher-option.active { background:#eaf2fb; }
.board-switcher-mode-icon { display:grid; place-items:center; font-size:11px; }
.board-switcher-option-text { min-width:0; display:flex; flex-direction:column; line-height:1.08; }
.board-switcher-option-text strong,.board-switcher-option-text small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.board-switcher-option-text strong { font-size:10px; font-weight:750; }
.board-switcher-option-text small { margin-top:2px; font-size:8px; color:#677383; }
.board-switcher-shared-icon { font-size:10px; opacity:.8; }

/* Standard board: stesso motore di zoom in browser e PWA. Le dimensioni inverse
   sono applicate inline/JS, il transform evita bordi scoperti con browser zoom. */
.postit-board-canvas[data-board-mode="Standard"] {
    zoom:1 !important;
    transform:scale(var(--board-zoom,1));
    transform-origin:top left;
}

/* =============================================================
   Patch 231 - board switcher opaco + Memory multiplayer layout
   ============================================================= */
.board-management-bar.switcher-open {
    z-index:70000 !important;
    opacity:1 !important;
    background:#fff !important;
    backdrop-filter:none !important;
}
.board-management-bar.switcher-open .board-switcher-menu {
    z-index:70010 !important;
    background:#fff !important;
    opacity:1 !important;
    backdrop-filter:none !important;
    box-shadow:0 18px 48px rgba(15,23,42,.28),0 0 0 1px rgba(15,23,42,.08);
}
.board-management-bar .board-switcher-option {
    cursor:pointer;
    transition:background-color .11s ease,box-shadow .11s ease,transform .11s ease;
}
.board-management-bar .board-switcher-option:hover:not(:disabled) {
    background:#dfeefa !important;
    box-shadow:inset 3px 0 0 #4b7fae;
    transform:translateX(1px);
}
.board-management-bar .board-switcher-option.active {
    background:#edf4fb;
    box-shadow:inset 3px 0 0 #8aa8c5;
}

/* Una board Memory espone solo navigazione lavagne + HUD generale essenziale.
   La toolbar Notes e i comandi specifici Post-it non fanno parte del gioco. */
.memory-board-page .board-tools-top { display:none !important; }
.memory-board-page #board-hud-search,
.memory-board-page #board-hud-visibility,
.memory-board-page #board-hud-hotkeys,
.memory-board-page #board-hud-edit,
.memory-board-page #board-hud-widgets { display:none !important; }

/* =============================================================
   Patch 232 - condivisione/task assignment
   ============================================================= */
.task-assigned-me{display:inline-flex;align-items:center;gap:3px;border-radius:999px;background:#fff2b8;color:#654900;border:1px solid #ddbe50;font-weight:800;line-height:1;white-space:nowrap}
.postit-task-row .task-assigned-me{padding:2px 5px;font-size:7px;letter-spacing:.02em}
.detail-task-assigned-me{width:max-content;padding:3px 7px;font-size:9px;margin-top:2px}
.task-detail-assigned-me{padding:5px 9px;font-size:10px}
.board-share-user-picker .board-share-suggestions{z-index:49020!important}

/* Patch 233 · board utilities / presence */
.board-account-presence{position:relative!important}.account-presence-dot{position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-radius:50%;background:#22c55e;border:2px solid #fff;box-sizing:content-box}.account-presence-dot.status-dnd{background:#ef4444}.account-presence-dot.status-away{background:#f59e0b}.account-presence-dot.status-offline{background:#94a3b8}.account-presence-dot.is-invisible{box-shadow:0 0 0 2px #7c3aed}
.board-account-presence-settings{display:flex;flex-direction:column;gap:8px;padding:6px 2px}.presence-status-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.presence-status-buttons button{border:1px solid #d7dde6;border-radius:7px;background:#fff;color:#334155;padding:6px 7px;font-size:11px;text-align:left}.presence-status-buttons button:hover{background:#f1f5f9}.presence-status-buttons button.active{background:#e0edff;border-color:#60a5fa;color:#1d4ed8;font-weight:700}.board-account-presence-settings label{display:flex;align-items:center;gap:7px;font-size:12px}.board-account-presence-settings small{color:#64748b;line-height:1.3}

/* ============================================================
   Patch 236 - tooltip immediati + badge utility collaborative
   ============================================================ */
.tackora-tooltip-popup{
    position:fixed;z-index:2147483600;max-width:min(360px,calc(100vw - 16px));padding:7px 10px;
    border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(17,24,39,.97);color:#fff;
    font:600 11px/1.35 Inter,"Segoe UI",Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;
    box-shadow:0 8px 24px rgba(0,0,0,.32);pointer-events:none;opacity:0;transform:translateY(2px);
    transition:opacity .06s linear,transform .06s linear;
}
.tackora-tooltip-popup.visible{opacity:1;transform:translateY(0)}
.board-utilities-trigger{position:relative!important}
.board-utility-unread-badge{
    position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;
    border:2px solid rgba(255,255,255,.94);border-radius:999px;background:#c93d43;color:#fff;
    font-size:8px!important;font-weight:900;line-height:1;box-shadow:0 2px 7px rgba(0,0,0,.22);pointer-events:none;
}
.board-switcher-workspace-title{font-size:11px!important;letter-spacing:.01em}
.board-switcher-group+.board-switcher-group{margin-top:5px;padding-top:5px;border-top:1px solid rgba(100,116,139,.18)}


/* Patch 237 · presenza, nickname dashboard e Memory HUD */
.board-account-presence-settings .presence-invisible-toggle{display:flex;align-items:center;gap:9px;padding:8px 9px;border:1px solid var(--border-color,#d7dde6);border-radius:9px;background:var(--card-bg,#fff);cursor:pointer}
.board-account-presence-settings .presence-invisible-toggle:hover{background:color-mix(in srgb,var(--card-bg,#fff) 88%,var(--theme-accent,#315f91) 12%)}
.presence-invisible-toggle>span{display:grid;gap:2px;min-width:0}.presence-invisible-toggle strong{font-size:12px;color:var(--text-color,#334155)}.presence-invisible-toggle small{font-size:10px!important;color:var(--muted-text,#64748b)!important}
.presence-invisible-checkbox{appearance:none;width:18px!important;height:18px!important;min-width:18px;margin:0;border:1.5px solid var(--border-color,#94a3b8);border-radius:5px;background:var(--card-bg,#fff);display:grid;place-content:center;cursor:pointer}.presence-invisible-checkbox:checked{background:var(--theme-accent,#315f91);border-color:var(--theme-accent,#315f91)}.presence-invisible-checkbox:checked::after{content:"✓";color:#fff;font-size:12px;font-weight:900;line-height:1}.presence-invisible-checkbox:focus-visible{outline:2px solid var(--theme-accent,#315f91);outline-offset:2px}
.dashboard-display-name-cooldown{display:block;padding:7px 9px;border-radius:8px;background:var(--info-soft,#edf6ff);border:1px solid var(--border-color,#d6e5f4);color:var(--muted-text,#536273);line-height:1.4}.dashboard-display-name-control input:disabled{opacity:.72;cursor:not-allowed;background:var(--disabled-bg,#f1f5f9)}

/* =============================================================
   Patch 238 - utility dock reservation + delete board semantics
   ============================================================= */
html.tackora-utility-docked .board-page{
    width:calc(100vw - var(--tackora-utility-dock-width,520px))!important;
    transition:width .16s ease;
}
html.tackora-utility-docked .board-hud-actions,
html.tackora-utility-docked .board-zoom-hud,
html.tackora-utility-docked .board-flyout,
html.tackora-utility-docked .board-edit-tool-stack{
    right:calc(12px + var(--tackora-utility-dock-width,520px))!important;
    transition:right .16s ease;
}
html.tackora-utility-docked .board-tool-side-panel,
html.tackora-utility-docked .board-object-side-panel{
    max-width:calc(100vw - var(--tackora-utility-dock-width,520px) - 24px);
}
.board-delete-option-move>span{min-width:0;width:100%}
.board-delete-target{display:block;width:min(100%,420px);max-width:420px;margin:9px 0 0!important;padding:7px 9px;border:1px solid #cfd5de;border-radius:6px;background:#fff;color:#1f2937}
@media(max-width:900px){
    html.tackora-utility-docked .board-page{width:calc(100vw - var(--tackora-utility-dock-width,48px))!important}
    html.tackora-utility-docked .board-hud-actions,
    html.tackora-utility-docked .board-zoom-hud,
    html.tackora-utility-docked .board-flyout,
    html.tackora-utility-docked .board-edit-tool-stack{right:calc(7px + var(--tackora-utility-dock-width,48px))!important}
}

/* =============================================================
   Patch 240 - presence UX + utility dock safe-area reflow
   ============================================================= */
html.tackora-utility-docked .board-page{
    max-width:calc(100vw - var(--tackora-utility-dock-width,520px));
}
html.tackora-utility-docked .board-viewport{
    width:100%!important;
    max-width:100%!important;
    background-color:var(--theme-board-color,#98704c);
}
html.tackora-utility-docked .tackora-utility-safe-shift:not(.is-leaving-board){
    translate:var(--tackora-utility-safe-shift-x,0px) 0;
    transition:translate .16s ease;
}
.board-admin-flyout{
    max-height:calc(100dvh - 72px);
    overflow:auto;
}
