/* ==========================================================================
   Sodalys admin stylesheet map

   Scope: reserved/admin area only. Runtime player/board styles live in
   game-runtime.css. Keep admin components responsive-first because many setup
   screens are used from tablets during live events.
   ========================================================================== */

[hidden]{display:none!important;}
:root{--primary:#5b4bff;--bg:#f6f7fb;--surface:#fff;--text:#111827;--muted:#6b7280;--danger:#dc2626;--success:#16a34a;--warning:#f59e0b;--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.container{max-width:1120px;margin:0 auto;padding:24px}.narrow{max-width:520px}.hero{min-height:60vh;background:linear-gradient(135deg,#111827,#312e81);color:#fff}.topbar,.admin-top{display:flex;justify-content:space-between;align-items:center;padding:18px 24px}.brand{font-size:22px;color:inherit}.nav-links a,.admin-top a{margin-left:16px;color:inherit}.hero-content{max-width:900px;padding:70px 24px;margin:0 auto}.hero h1{font-size:clamp(36px,6vw,64px);line-height:1;margin:0 0 16px}.hero p{font-size:20px;color:#e5e7eb}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.card{background:var(--surface);border-radius:var(--radius);padding:22px;box-shadow:0 10px 25px rgba(17,24,39,.08);margin-bottom:18px}.btn{display:inline-block;border:0;border-radius:12px;background:#e5e7eb;color:#111827;padding:10px 16px;font-weight:700;cursor:pointer}.btn.primary{background:var(--primary);color:#fff}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:6px 10px;font-size:14px}.actions,.toolbar{display:flex;gap:10px;flex-wrap:wrap}.form label{display:block;margin:12px 0;font-weight:700}.form input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:10px;margin-top:6px}.alert{padding:12px 14px;border-radius:12px;margin:12px 0;background:#e5e7eb}.alert.success{background:#dcfce7;color:#166534}.alert.danger{background:#fee2e2;color:#991b1b}.alert.warning{background:#fef3c7;color:#92400e}.admin-top{background:#111827;color:#fff;position:sticky;top:0;z-index:2}.badge{display:inline-block;border-radius:999px;background:#e5e7eb;padding:4px 10px;font-size:12px}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left}.inline{display:inline}.center{text-align:center}code{font-size:20px;font-weight:800;background:#f3f4f6;padding:4px 8px;border-radius:8px}.game-board{background:#111827;color:#fff;min-height:100vh}.game-board .card{background:#1f2937;color:#fff}.score{font-size:48px;font-weight:900}.big-code{font-size:54px;font-weight:900;letter-spacing:6px}@media(max-width:700px){.admin-top{display:block}.admin-top nav a{display:inline-block;margin:8px 12px 0 0}.container{padding:16px}table{font-size:14px}}
.form textarea,.form select{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:10px;margin-top:6px;font:inherit}.card-subsection{border:1px solid #e5e7eb;box-shadow:none;background:#fafafa}.card-subsection textarea{min-height:90px}.inline-check input{width:auto;margin-right:8px}
.muted{color:var(--muted)}.table-responsive{width:100%;overflow-x:auto}.cards-table{min-width:980px}.cards-table input,.cards-table textarea{width:100%;padding:9px;border:1px solid #d1d5db;border-radius:10px;font:inherit}.cards-table textarea{min-height:74px;resize:vertical}.cards-table td{vertical-align:top}.cards-table code{font-size:14px}.badge.success{background:#dcfce7;color:#166534}.badge.warning{background:#fef3c7;color:#92400e}.row-muted{opacity:.68;background:#f9fafb}.actions-cell{white-space:nowrap}.actions-cell .btn{margin-bottom:6px}.inline-form{display:contents}
.admin-table{min-width:980px}.admin-table input,.admin-table textarea,.admin-table select{width:100%;padding:9px;border:1px solid #d1d5db;border-radius:10px;font:inherit}.admin-table textarea{min-height:74px;resize:vertical}.admin-table td{vertical-align:top}.users-table{min-width:1180px}.users-table input,.users-table select{margin-bottom:6px}.inline-filter{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.inline-filter label{min-width:220px;margin:0}.inline-filter input,.inline-filter select{margin-top:6px}

/* 0.4.22 - Tabelle admin fluide senza scroll orizzontale */
.table-responsive{width:100%;overflow-x:visible;max-width:100%;}
.admin-table,.cards-table,.users-table,table{width:100%;min-width:0!important;max-width:100%;table-layout:fixed;}
th,td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top;}
.admin-table input,.admin-table textarea,.admin-table select,.cards-table input,.cards-table textarea,.cards-table select{max-width:100%;min-width:0;}
.actions-cell{white-space:normal;}
.inline-form{display:contents;}
@media(max-width:700px){th,td{padding:8px 6px;font-size:13px}.btn.small{padding:6px 8px}}

/* 0.4.23 - Admin UI components */
.table-wrap{width:100%;max-width:100%;overflow-x:visible;}
.admin-table{width:100%;border-collapse:collapse;table-layout:fixed;}
.admin-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#4b5563;background:#f9fafb;}
.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
.admin-table tr:hover td{background:#fafafa;}
.badge.info{background:#dbeafe;color:#1e40af}.badge.danger{background:#fee2e2;color:#991b1b}
.admin-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:end;margin:0;}
.admin-filter label{margin:0}.filter-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 0}.pagination-info{color:var(--muted);font-size:14px}.btn.disabled{opacity:.45;pointer-events:none}.admin-table .btn{margin:2px 0}.admin-table code{font-size:14px;}
@media(max-width:700px){.admin-filter{grid-template-columns:1fr}.pagination{justify-content:flex-start}.admin-table th,.admin-table td{padding:8px 6px;font-size:13px}}
.token-mask{font-size:13px;letter-spacing:.04em}.admin-table .muted{color:var(--muted)}

/* 0.4.40 - Generic match creation */
.subcard{border:1px solid #e5e7eb;border-radius:14px;padding:16px;margin:16px 0;background:#fafafa;box-shadow:none;}
.match-create-game h3{margin-top:0;}

/* 0.4.41 - Unified match access overview */
.access-overview-table th:nth-child(1){width:72px}
.access-overview-table th:nth-child(3){width:120px}
.access-overview-table th:nth-child(4){width:105px}
.access-overview-table th:nth-child(5){width:150px}
.access-overview-table th:nth-child(8){width:86px}
.access-overview-table th:nth-child(9){width:150px}
.access-overview-table td strong{font-weight:800}
.access-overview-table .actions-cell form{display:block;margin-bottom:6px}
.access-overview-table .actions-cell form:last-child{margin-bottom:0}
.access-overview-table .token-mask{font-size:12px}
@media(max-width:700px){.access-overview-table th:nth-child(n){width:auto}.access-overview-table .actions-cell form{display:inline-block;margin-right:4px}}

/* 0.4.42 - Access overview link actions and live refresh */
.link-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border:0;border-radius:10px;background:#e5e7eb;color:#111827;font-weight:800;font-size:14px;line-height:1;cursor:pointer;text-decoration:none;padding:0 8px}
.icon-btn:hover{filter:brightness(.96)}
.icon-btn.copied{background:#dcfce7;color:#166534}
.icon-btn.whatsapp{background:#dcfce7;color:#166534;font-size:12px;letter-spacing:.02em}
.access-overview-table th:nth-child(4){width:132px}
@media(max-width:700px){.link-actions{gap:4px}.icon-btn{min-width:30px;height:30px;padding:0 6px}}

/* 0.4.43 - Unified access requests table */
.access-overview-table-v043 th:nth-child(1){width:70px}
.access-overview-table-v043 th:nth-child(3){width:132px}
.access-overview-table-v043 th:nth-child(4){width:122px}
.access-overview-table-v043 th:nth-child(5){width:140px}
.access-overview-table-v043 th:nth-child(7){width:132px}
.access-overview-table-v043 th:nth-child(8){width:78px}
.access-overview-table-v043 th:nth-child(9){width:158px}
.countdown-line{display:inline-block;margin-top:4px;font-size:12px}.countdown{font-weight:800;color:#111827}.icon-actions-cell{/*display:flex;*/gap:6px;flex-wrap:wrap;align-items:center}.icon-actions-cell form{display:inline-block;margin:0}.icon-actions-cell .icon-btn{margin:0}.action-approve{background:#dcfce7;color:#166534}.action-reject,.action-revoke{background:#fee2e2;color:#991b1b}.action-regenerate{background:#fef3c7;color:#92400e}
@media(max-width:700px){.access-overview-table-v043 th:nth-child(n){width:auto}.icon-actions-cell{gap:4px}}
.badge.muted{background:#f3f4f6;color:#6b7280}

/* 0.4.44 - Access table compact layout and rich text editor */
.access-overview-table-v043{font-size:13px;table-layout:auto;}
.access-overview-table-v043 th{font-size:11px;}
.access-overview-table-v043 th,.access-overview-table-v043 td{padding:8px 7px;}
.access-overview-table-v043 code{font-size:13px;padding:3px 6px;}
.access-overview-table-v043 .badge{font-size:11px;padding:3px 8px;}
.access-overview-table-v043 .muted,.access-overview-table-v043 .countdown-line{font-size:11px;}
.access-overview-table-v043 .icon-btn{min-width:30px;height:30px;border-radius:9px;font-size:13px;padding:0 7px;}
.access-overview-table-v043 th:nth-child(1){width:auto}
.access-overview-table-v043 th:nth-child(2){width:auto}
.access-overview-table-v043 th:nth-child(3){width:auto}
.access-overview-table-v043 th:nth-child(4){width:auto}
.access-overview-table-v043 th:nth-child(5){width:auto}
.access-overview-table-v043 th:nth-child(6){width:auto}
.access-overview-table-v043 th:nth-child(7){width:auto}
.access-overview-table-v043 th:nth-child(8){width:auto}
.rte{border:1px solid #d1d5db;border-radius:12px;background:#fff;margin-top:6px;overflow:hidden;}
.rte-toolbar{display:flex;gap:6px;flex-wrap:wrap;padding:8px;border-bottom:1px solid #e5e7eb;background:#f9fafb;}
.rte-toolbar button{border:0;border-radius:8px;background:#e5e7eb;color:#111827;font-weight:700;padding:6px 9px;cursor:pointer;}
.rte-editor{min-height:150px;padding:12px;font-weight:400;outline:none;}
.rte-editor:focus{box-shadow:inset 0 0 0 2px rgba(91,75,255,.18)}
.rich-content{line-height:1.55}.rich-content ul,.rich-content ol{padding-left:22px}.rich-content pre{background:#f3f4f6;padding:10px;border-radius:10px;white-space:pre-wrap}.rich-content blockquote{border-left:4px solid #d1d5db;margin:12px 0;padding:4px 12px;color:#4b5563}
@media(max-width:700px){.access-overview-table-v043{font-size:12px}.rte-toolbar button{padding:6px 8px}}

/* 0.4.46 - Turn engine stabilization */
.turn-debug-card{border:1px solid #dbeafe;background:#fbfdff;}
.turn-debug-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 16px;}
.turn-debug-grid div{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:10px;}
.turn-debug-grid span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;}
.turn-debug-grid strong{display:block;font-size:14px;}
.turn-recovery-actions form{display:inline-block;}

/* 0.4.49 - Game installation manager */
.page-actions{display:flex;gap:.6rem;align-items:center;justify-content:flex-end;margin:0 0 1rem;flex-wrap:wrap}
.check-list{display:grid;gap:.45rem;margin:.5rem 0 1rem}
.check-list label{display:flex;gap:.5rem;align-items:center;font-weight:500}
.warning-box{border-color:#f59e0b;background:linear-gradient(180deg,#fff7ed,#fff)}

/* 0.4.50 - Quill rich text editor integration */
.rich-editor-field{display:block;margin:0 0 16px;}
.rich-editor-label{display:block;font-weight:700;margin:0 0 6px;color:#111827;}
.quill-source{width:100%;min-height:160px;padding:12px;border:1px solid #d1d5db;border-radius:12px;font:inherit;background:#fff;}
.quill-source-hidden{display:none!important;}
.quill-editor{display:none;background:#fff;margin-top:6px;}
.quill-editor-ready{display:block;}
.rich-editor-field .ql-toolbar.ql-snow{border:1px solid #d1d5db;border-radius:12px 12px 0 0;background:#f9fafb;}
.rich-editor-field .ql-container.ql-snow{border:1px solid #d1d5db;border-top:0;border-radius:0 0 12px 12px;min-height:170px;font:inherit;}
.rich-editor-field .ql-editor{min-height:170px;font-size:15px;line-height:1.6;}
.rich-editor-field.quill-field-ready .quill-fallback-note{display:none;}
.rich-editor-field.quill-field-fallback .quill-fallback-note{display:block;margin-top:6px;}
.rich-content h2,.rich-content h3,.rich-content h4{margin:1rem 0 .4rem}.rich-content a{color:#2563eb;text-decoration:underline}.rich-content code{background:#f3f4f6;padding:2px 5px;border-radius:6px}

/* 0.4.50.1 - Render rich text descriptions in match creation cards */
.match-game-description{margin:.35rem 0 .75rem;color:#4b5563;font-size:14px;line-height:1.55;}
.match-game-description p{margin:.25rem 0;}
.match-game-description ul,.match-game-description ol{margin:.35rem 0 .35rem 1.25rem;}
.match-game-description blockquote{margin:.4rem 0;padding:.25rem .7rem;border-left:3px solid #d1d5db;background:#f9fafb;}

/* 0.4.51 - Game movement settings */
[hidden]{display:none!important}
.js-dice-setting[hidden],.js-dice-classic-setting[hidden],.js-card-points-setting[hidden],.js-taxonomy-dice-help[hidden],.js-taxonomy-dice-warning[hidden],.js-board-layout-linear-help[hidden],.js-board-layout-cyclic-help[hidden],.js-card-points-help[hidden]{display:none!important}
.match-game-description br{display:block;content:"";margin:.25rem 0}

/* 0.4.51.1 - Normalizzazione rich text Quill: evita stringhe senza ritorni a capo */
.rich-content,.match-game-description{overflow-wrap:anywhere;word-break:normal;}

/* 0.5.0 - Timed Deck QA and Recovery */
.turn-qa-panel{margin:14px 0;padding:12px;border:1px solid #d7dee8;border-radius:12px;background:#f8fafc;}
.turn-qa-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.turn-qa-list{margin:8px 0 0 18px;padding:0;}
.turn-qa-list li{margin:4px 0;}
.turn-qa-panel .qa-issue{color:#b42318;font-weight:700;}
.turn-qa-panel .qa-warning{color:#92400e;font-weight:600;}
.turn-qa-error{border-color:#fecaca;background:#fff7f7;}
.turn-qa-warning{border-color:#fde68a;background:#fffbeb;}
.turn-qa-ok{border-color:#bbf7d0;background:#f0fdf4;}
.timed-deck-debug-grid{margin-top:10px;}
/* 0.5.3 Legacy Game Cleanup */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}.stat{padding:14px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:#fff}.stat strong{display:block;font-size:28px;line-height:1}.stat span{display:block;margin-top:6px;color:var(--muted,#64748b);font-size:13px}.compact-list{margin:0;padding-left:18px}.compact-list li{margin:2px 0}.warning-box{border-left:4px solid #f59e0b;padding:12px;background:#fffbeb;border-radius:12px}.inline-form{display:inline-block;margin:2px 4px 2px 0}

/* 0.6.0 — Game Assets Manager */
.asset-thumb {
    width: 92px;
    height: 58px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, .35);
    background: #0f172a;
}
.inline-form { display: inline-block; margin: 0 .25rem .25rem 0; }


/* 0.6.1 — Admin Card Schema Builder */
.small-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;font-size:12px}
.small-checks label{display:flex;align-items:center;gap:4px;margin:0}
#schemaRows input,#schemaRows select{width:100%}

/* 0.6.9 Match Setup Wizard */
.wizard-steps{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.wizard-steps .badge{font-size:.92rem}.match-game-description{margin:.75rem 0}.grid-3 .subcard{min-width:0}

/* 0.7.0 Public Game Access Redesign */
.public-access-page{min-height:100vh;background:radial-gradient(circle at top,#e0e7ff 0,#f8fafc 42%,#eef2ff 100%);display:flex;align-items:center;justify-content:center;padding:18px}.public-access-card{box-shadow:0 22px 70px rgba(15,23,42,.14);border:1px solid rgba(148,163,184,.28)}.access-kicker{margin:0 0 4px;text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800;color:#4f46e5}.access-stepper{display:flex;gap:8px;justify-content:center;margin:0 0 16px}.access-stepper span{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:#e5e7eb;color:#64748b;font-weight:900}.access-stepper .active{background:#4f46e5;color:#fff}.access-stepper .done{background:#dcfce7;color:#166534}.access-summary,.waiting-status-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.access-summary div,.waiting-status-box div{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:12px;text-align:left}.access-summary span,.waiting-status-box span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:800;margin-bottom:4px}.access-summary strong,.waiting-status-box strong{display:block;overflow-wrap:anywhere}.public-code-input{text-align:center;font-size:30px;letter-spacing:.28em;font-weight:900}.public-access-form{margin-top:12px}.full-width{width:100%;justify-content:center}.small{font-size:13px}.alert.warning{background:#fffbeb;border-color:#fde68a;color:#92400e}body[data-access-status="approved"] .access-stepper span:nth-child(3){background:#dcfce7;color:#166534}@media(max-width:700px){.public-access-page{align-items:flex-start}.access-summary,.waiting-status-box{grid-template-columns:1fr}.public-code-input{font-size:26px}}

/* 0.7.1 Runtime Event Log */
.stats-grid.compact > div{padding:12px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:rgba(255,255,255,.75)}
.stats-grid.compact strong{display:block;font-size:24px;line-height:1.1}.stats-grid.compact span{display:block;margin-top:4px;color:var(--muted,#64748b);font-size:12px}.debug-json{max-width:520px;max-height:220px;overflow:auto;white-space:pre-wrap;font-size:12px;background:#0f172a;color:#e2e8f0;padding:10px;border-radius:10px}


/* 0.8.1.3 - Admin color picker stabilization */
.form input[type="color"], input.admin-color-input[type="color"]{width:64px;min-width:64px;height:42px;padding:4px;border:1px solid #d1d5db;border-radius:10px;background:#fff;vertical-align:middle;cursor:pointer;}
.form label input.admin-color-input[type="color"]{display:inline-block;margin-top:6px;}
.admin-color-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;}
.admin-color-field input.admin-color-input[type="color"]{margin-top:0;}
.admin-color-hex{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:700;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:10px;padding:8px 10px;color:#111827;}
.admin-table input.admin-color-input[type="color"]{width:54px;min-width:54px;height:36px;padding:3px;}


/* Sodalys 0.8.1.4 - admin schema table */
.admin-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.card-schema-table{min-width:980px!important;}
.card-schema-table .small-checks{grid-template-columns:repeat(2,minmax(112px,1fr));gap:6px 10px;font-size:13px;line-height:1.25;}
.card-schema-table .small-checks label{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;padding:6px 8px;white-space:nowrap;}
.card-schema-table .small-checks input{width:auto;min-width:auto;margin:0;}
@media(max-width:800px){.card-schema-table{min-width:860px!important}.card-schema-table .small-checks{grid-template-columns:1fr}.card-schema-table th,.card-schema-table td{font-size:13px}}

/* 0.8.6 — Admin UX Cleanup */
:root{--border:#e5e7eb;--surface-soft:#f8fafc;--shadow-soft:0 10px 28px rgba(15,23,42,.08)}
.admin-top{padding:0;background:#0f172a;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.admin-top-inner{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:18px;justify-content:space-between}
.admin-top .brand{font-weight:900;letter-spacing:-.02em;white-space:nowrap}
.admin-nav{display:flex;align-items:center;gap:14px;flex:1;justify-content:flex-end;min-width:0}
.admin-nav-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.admin-top .admin-nav a{margin:0;color:#dbe4ff;border-radius:999px;padding:8px 10px;font-size:14px;font-weight:700;white-space:nowrap}
.admin-top .admin-nav a:hover,.admin-top .admin-nav a.active{background:rgba(255,255,255,.13);color:#fff}
.admin-nav-secondary{border-left:1px solid rgba(255,255,255,.14);padding-left:12px}
.admin-nav-toggle{display:none;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:8px 10px;font-weight:800}
.admin-default-title{margin-top:0;margin-bottom:18px;font-size:clamp(28px,3vw,40px);letter-spacing:-.03em}.admin-default-title.is-hidden{display:none}
.admin-page-intro{display:flex;gap:18px;align-items:flex-end;justify-content:space-between;margin:0 0 18px;padding:20px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:var(--shadow-soft)}
.admin-page-intro h1{margin:0;font-size:clamp(30px,4vw,44px);letter-spacing:-.04em;line-height:1}.admin-kicker{margin:0 0 6px;color:#4f46e5;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:900}.admin-page-description{margin:8px 0 0;max-width:720px}.admin-page-actions{margin:0;justify-content:flex-end;flex-shrink:0}
.card{border:1px solid rgba(148,163,184,.2)}.card h2{margin-top:0}.card-heading-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.card-heading-row h2{margin-bottom:4px}.info-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#eef2ff,#fff)}
.admin-summary-grid,.dashboard-stats{margin:0 0 18px}.stat small{display:block;margin-top:5px;color:#64748b;font-size:12px}.stat.success{border-color:#bbf7d0;background:#f0fdf4}.quick-card{display:block;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.quick-card:hover{transform:translateY(-2px);box-shadow:0 16px 35px rgba(15,23,42,.12);border-color:#c7d2fe}.quick-card span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:14px;background:#eef2ff;color:#4338ca;font-weight:900;margin-bottom:10px}.quick-card h2{margin:.25rem 0}.quick-card p{color:#64748b;margin-bottom:0}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.row-actions .btn{margin:0}.empty-state{text-align:center;padding:28px;border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc}.empty-state h3{margin:0 0 6px}.empty-state p{margin:0 0 14px;color:#64748b}.games-table td:first-child,.matches-table td:first-child,.card-sets-table td:first-child{width:70px}.small{font-size:13px}
@media(max-width:900px){.admin-top-inner{align-items:flex-start;flex-wrap:wrap}.admin-nav-toggle{display:inline-block}.admin-nav{display:none;width:100%;justify-content:flex-start;align-items:flex-start;background:rgba(255,255,255,.05);border-radius:16px;padding:10px}.admin-nav.is-open{display:block}.admin-nav-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.admin-nav-secondary{border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:10px 0 0;margin-top:10px}.admin-top .admin-nav a{display:block;text-align:left}.admin-page-intro{align-items:flex-start;flex-direction:column}.admin-page-actions{justify-content:flex-start}.info-card{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.container{padding:14px}.admin-top-inner{padding:10px 14px}.admin-nav-group{grid-template-columns:1fr}.admin-page-intro{padding:16px;border-radius:16px}.card{padding:16px;border-radius:14px}.grid-3,.grid-2{gap:12px}.btn{width:auto}.page-actions{justify-content:flex-start}.admin-table th,.admin-table td{font-size:12px}.row-actions .btn{width:100%;text-align:center}}


/* 0.8.8 — Game Builder Improvements */
.game-builder-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:10px 0 16px;}
.game-builder-preset{display:block;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:14px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;}
.game-builder-preset input{margin-right:7px;}
.game-builder-preset strong{display:inline-block;margin-bottom:5px;color:#111827;}
.game-builder-preset span{display:block;color:#64748b;font-size:13px;line-height:1.35;margin-left:24px;}
.game-builder-preset:hover,.game-builder-preset.active{border-color:#6366f1;box-shadow:0 10px 25px rgba(79,70,229,.12);transform:translateY(-1px);}
.game-builder-summary{border:1px solid #e0e7ff;background:#eef2ff;border-radius:16px;padding:14px;margin:0 0 18px;color:#334155;}
.game-builder-summary p{margin:.35rem 0;}.game-builder-summary ul{margin:.4rem 0 0 1.2rem;padding:0;}.game-builder-summary li{margin:.2rem 0;}
.builder-live-check{margin:12px 0;background:#f8fafc;}.builder-live-check ul{margin:.45rem 0 0 1.2rem;padding:0}.builder-live-check li{margin:.2rem 0}.builder-live-check.success{border-color:#bbf7d0;background:#f0fdf4}.builder-live-check.warning{border-color:#fde68a;background:#fffbeb}.builder-live-check.danger{border-color:#fecaca;background:#fff7f7}.builder-live-check .warning{color:#92400e;font-weight:700;}
.builder-submit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb;}
@media(max-width:720px){.builder-submit-row{align-items:flex-start;flex-direction:column}.builder-submit-row .btn{width:100%;justify-content:center}.game-builder-presets{grid-template-columns:1fr}}

/* 0.8.9 — Card Manager Pro */
.card-manager-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.card-manager-filters .grid-4{display:grid;grid-template-columns:2fr 1fr 1.4fr auto;gap:14px;align-items:end;}
.card-manager-filters .align-end{align-self:end;display:flex;gap:8px;flex-wrap:wrap;}
.card-manager-scroll{margin-top:8px;}
.card-manager-table{min-width:1180px;}
.card-manager-table textarea{min-width:260px;width:100%;min-height:72px;font-size:13px;line-height:1.35;}
.card-manager-table select{min-width:150px;width:100%;font-size:13px;}
.card-manager-table td:nth-child(3){width:auto;}
.card-manager-table td:nth-child(4){width:auto;}
.card-manager-table td:nth-child(5),.card-manager-table td:nth-child(6){width:auto;overflow-wrap:anywhere;}
.card-manager-active{margin:0 0 8px;display:flex;gap:6px;align-items:center;}
.card-manager-row-actions{margin-top:8px;}
.alert.compact{padding:10px 12px;margin:10px 0;border-radius:12px;}
@media(max-width:900px){.card-manager-filters .grid-4{grid-template-columns:1fr}.card-manager-table{min-width:980px}.card-manager-table textarea{min-width:220px}.card-manager-stats{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.card-manager-stats{grid-template-columns:1fr}.card-manager-filters .align-end .btn{width:100%;justify-content:center}}


/* 0.9.0 - Production Installer and Upgrade Tools */
.admin-steps { margin: 0; padding-left: 1.25rem; color: var(--muted, #64748b); }
.admin-steps li { margin: .35rem 0; }
.check { display: flex; align-items: flex-start; gap: .5rem; font-weight: 500; }
.check input[type="checkbox"] { width: auto; margin-top: .25rem; }
.badge.info { background: #e0f2fe; color: #075985; }
.stat.warning { border-color: #f59e0b; }
.stat.danger { border-color: #ef4444; }
.stat.success { border-color: #22c55e; }



/* 0.9.2 — Player Theme Designer admin */
.player-designer-form .player-designer-preview .btn { margin: .25rem; }
.player-designer-form .player-designer-card .card { background: rgba(255,255,255,.08); color: inherit; }

/* ============================================================================
   0.9.7 — Admin CSS and UI Weight Cleanup
   -------------------------------------------------------------------------
   Obiettivi:
   - rendere le tabelle admin più leggibili su tablet/smartphone;
   - evitare overflow orizzontale non necessario quando il contenuto può andare a capo;
   - mantenere scroll orizzontale solo sulle tabelle realmente dense;
   - documentare i componenti admin principali per future estensioni.
   ============================================================================ */
.admin-page{--admin-border:#e5e7eb;--admin-soft:#f8fafc;--admin-muted:#64748b;}
.admin-page .container{max-width:1200px;}
.admin-page .card{overflow:hidden;}
.admin-page .table-responsive,.admin-page .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.admin-page .admin-table{border:1px solid var(--admin-border);border-radius:14px;overflow:hidden;background:#fff;}
.admin-page .admin-table th{position:relative;line-height:1.25;}
.admin-page .admin-table td{line-height:1.35;}
.admin-page .admin-table td .muted,.admin-page .admin-table small{line-height:1.35;}
.admin-page .admin-table .btn.small{min-height:32px;display:inline-flex;align-items:center;justify-content:center;}
.admin-page .badge{line-height:1.2;vertical-align:middle;}
.admin-page .form input,.admin-page .form textarea,.admin-page .form select{max-width:100%;}
.admin-page .form input[type="checkbox"],.admin-page .form input[type="radio"]{width:auto;}
.admin-page .admin-density-compact th,.admin-page .admin-density-compact td{padding:7px 8px;font-size:13px;}
.admin-page .admin-density-compact .btn.small{padding:5px 8px;font-size:12px;}
.admin-page .soft{background:var(--admin-soft);border:1px solid var(--admin-border);}
.admin-page .page-actions,.admin-page .admin-page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.admin-page .row-actions{align-items:center;}
.admin-page .row-actions form{margin:0;}
.admin-page .quill-source-hidden{display:none!important;}
.admin-page .quill-field-fallback [data-quill-editor]{display:none;}
.admin-page .quill-field-fallback .quill-source{display:block!important;}
.admin-page .ql-toolbar.ql-snow,.admin-page .ql-container.ql-snow{border-color:#d1d5db;}
.admin-page .ql-toolbar.ql-snow{border-radius:12px 12px 0 0;background:#f8fafc;}
.admin-page .ql-container.ql-snow{border-radius:0 0 12px 12px;min-height:140px;background:#fff;}

/* Tabelle molto dense: mantengono una larghezza minima e scorrono solo nel wrapper. */
.admin-page .card-manager-table,
.admin-page .card-schema-table,
.admin-page .users-table{table-layout:auto;}

@media(max-width:900px){
  .admin-page .card-heading-row{flex-direction:column;align-items:flex-start;}
  .admin-page .admin-table-scroll,
  .admin-page .card-manager-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .admin-page .admin-table th,.admin-page .admin-table td{font-size:13px;}
  .admin-page .admin-page-intro{gap:12px;}
}

@media(max-width:640px){
  .admin-page .container{padding:12px;}
  .admin-page .card{padding:14px;margin-bottom:14px;}
  .admin-page .admin-table th,.admin-page .admin-table td{padding:8px 7px;}
  .admin-page .admin-table .badge{font-size:11px;padding:3px 7px;}
  .admin-page .toolbar,.admin-page .actions,.admin-page .filter-actions{gap:7px;}
  .admin-page .toolbar .btn,.admin-page .actions .btn,.admin-page .filter-actions .btn{min-height:38px;}
  .admin-page .admin-filter{gap:10px;}
  .admin-page .admin-color-field{width:100%;}
  .admin-page .admin-color-hex{flex:1;text-align:center;}
}

/* Sodalys 1.0.0.4 — Admin tables compact actions
   Icon-only actions keep dense admin tables readable on tablet and mobile while
   preserving accessible labels through title/aria-label attributes. */
.btn.icon-only{
    width:34px;
    min-width:34px;
    height:34px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
    font-size:15px;
}
.btn.icon-only span{pointer-events:none;line-height:1;}
.icon-row-actions{gap:5px;align-items:center;}
.users-table-compact .col-id{width:70px;}
.users-table-compact .col-user-name{width:18%;}
.users-table-compact .col-user-email{width:28%;}
.users-table-compact .col-role{width:13%;}
.users-table-compact .col-status{width:13%;}
.users-table-compact .col-plan{width:16%;}
.users-table-compact .col-count{width:82px;}
.users-table-compact .col-actions{width:78px;}
.games-table-compact td:nth-child(1){width:70px;}
.games-table-compact td:nth-child(3){width:100px;}
.games-table-compact td:nth-child(4),
.games-table-compact td:nth-child(5){width:130px;}
.games-table-compact td:last-child{width:220px;}
@media(max-width:700px){
    .btn.icon-only{width:32px;min-width:32px;height:32px;font-size:14px;}
    .icon-row-actions{gap:4px;}
    .users-table-compact .col-id{width:58px;}
    .users-table-compact .col-count{width:64px;}
    .users-table-compact .col-actions{width:56px;}
}
.games-table-compact th:nth-child(1),.games-table-compact td:nth-child(1){width:70px;}
.games-table-compact th:nth-child(3),.games-table-compact td:nth-child(3){width:100px;}
.games-table-compact th:nth-child(4),.games-table-compact td:nth-child(4),
.games-table-compact th:nth-child(5),.games-table-compact td:nth-child(5){width:130px;}
.games-table-compact th:nth-child(6),.games-table-compact td:nth-child(6){width:220px;}

/* 1.0.0.7 - Runtime Events Debug Improvements */
.runtime-events-filters{align-items:end}
.runtime-filter-checkbox{display:flex;align-items:center;gap:8px;min-height:42px;margin-top:22px;font-weight:600}
.runtime-events-table td{vertical-align:top}
.runtime-event-details summary{cursor:pointer;font-weight:700;white-space:nowrap}
.runtime-event-details[open] summary{margin-bottom:10px}
.runtime-event-meta{display:grid;grid-template-columns:minmax(90px,130px) 1fr;gap:6px 10px;margin:10px 0;font-size:12px}
.runtime-event-meta dt{color:var(--muted,#64748b);font-weight:700}
.runtime-event-meta dd{margin:0;word-break:break-word}
.danger-zone{border-color:rgba(239,68,68,.25)}
.form-inline{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.form-inline label{display:flex;gap:8px;align-items:center;margin:0}
@media (max-width: 760px){.runtime-event-meta{grid-template-columns:1fr}.runtime-filter-checkbox{margin-top:0}.form-inline,.form-inline label{align-items:stretch;flex-direction:column}}

/* 1.0.0.8 - Tabelle: larghezza colonne automatica globale */
table,
.admin-table,
.cards-table,
.users-table,
.access-overview-table,
.access-overview-table-v043,
.card-schema-table,
.card-manager-table,
.users-table-compact,
.games-table-compact,
.matches-table,
.card-sets-table {
    table-layout: auto !important;
}

table col,
table th,
table td,
.admin-table th,
.admin-table td,
.cards-table th,
.cards-table td,
.users-table th,
.users-table td,
.access-overview-table th,
.access-overview-table td,
.access-overview-table-v043 th,
.access-overview-table-v043 td,
.card-schema-table th,
.card-schema-table td,
.card-manager-table th,
.card-manager-table td,
.users-table-compact th,
.users-table-compact td,
.games-table-compact th,
.games-table-compact td,
.matches-table th,
.matches-table td,
.card-sets-table th,
.card-sets-table td {
    width: auto !important;
}

/* 1.0.0.13 — Tabella configurazione meta field player */
.player-meta-field-table td { vertical-align: middle; }
.player-meta-field-table label { margin: 0; }
.player-meta-field-table select,
.player-meta-field-table input[type="number"],
.player-meta-field-table input[type="color"] { width: auto !important; min-width: 120px; }
.player-meta-field-table code { font-size: .85em; }

/* 1.0.0.38.1 — Card set detail filters visibility and Bootstrap-like controls */
.card-manager-card .card-manager-filter-panel,
.card-manager-card .card-manager-bulk-panel{
    margin: 14px 0;
    padding: 14px;
    border: 1px solid var(--admin-border, #e5e7eb);
    border-radius: 14px;
    background: #f8fafc;
    box-shadow: none;
}
.card-manager-section-title{
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #475569;
}
.card-manager-filter-grid,
.card-manager-bulk-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    align-items: end;
}
.card-manager-control{
    display: flex !important;
    flex-direction: column;
    gap: 6px;
    margin: 0 !important;
    font-size: 13px;
    font-weight: 700;
    color: #334155;
}
.card-manager-control input,
.card-manager-control select{
    width: 100%;
    min-height: 40px;
    margin: 0 !important;
    padding: 8px 11px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background-color: #fff;
    color: #111827;
    font: inherit;
    font-weight: 400;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.card-manager-control input:focus,
.card-manager-control select:focus{
    border-color: var(--primary, #5b4bff);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(91, 75, 255, .14);
}
.card-manager-filter-actions,
.card-manager-bulk-submit{
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.card-manager-bulk-submit{
    align-self: end;
}
.card-manager-help{
    margin: 10px 0 0;
    font-size: 13px;
}
.bulk-check-label.form-check,
.card-manager-check-cell .form-check{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-weight: 700;
    white-space: nowrap;
}
.form-check-input,
.admin-table input.form-check-input,
.cards-table input.form-check-input{
    width: 1.05rem !important;
    min-width: 1.05rem !important;
    height: 1.05rem;
    margin: 0;
    padding: 0;
    border: 1px solid #adb5bd;
    border-radius: .25rem;
    background-color: #fff;
    vertical-align: middle;
    cursor: pointer;
    appearance: auto;
}
.form-check-input:focus{
    border-color: var(--primary, #5b4bff);
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(91, 75, 255, .18);
}
.card-manager-table th:first-child,
.card-manager-table td:first-child{
    width: auto;
    text-align: center;
}
.card-manager-table .card-bulk-checkbox{
    display: inline-block;
}
@media(max-width:700px){
    .card-manager-card .card-manager-filter-panel,
    .card-manager-card .card-manager-bulk-panel{padding:12px;}
    .card-manager-filter-grid,
    .card-manager-bulk-grid{grid-template-columns:1fr;}
    .card-manager-filter-actions .btn,
    .card-manager-bulk-submit .btn{width:100%;justify-content:center;text-align:center;}
}

/* 1.0.0.41 — Reconnect access summary */
.access-reconnect-box{
    border:1px solid #dbeafe;
    border-radius:14px;
    background:#eff6ff;
    color:#1e3a8a;
    padding:12px;
    margin:12px 0;
    text-align:left;
}
.access-reconnect-box span{
    display:block;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#64748b;
    font-weight:800;
    margin-bottom:4px;
}
.access-reconnect-box strong{
    display:block;
    overflow-wrap:anywhere;
    font-size:1.05rem;
}


/* 1.0.0.40 — Admin match control mobile responsive tables */
#access-overview-card .table-responsive{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
#access-overview-card .access-overview-table-v043{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
}
#access-overview-card .access-overview-table-v043 td,
#access-overview-card .access-overview-table-v043 th{
    vertical-align:top;
    overflow-wrap:anywhere;
    word-break:normal;
}
#access-overview-card .icon-actions-cell,
#access-overview-card .access-actions,
#access-overview-card .actions-cell{
    /*display:flex;*/
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
}
#access-overview-card .icon-actions-cell form,
#access-overview-card .actions-cell form{
    display:inline-flex;
    margin:0;
}
#access-overview-card .icon-btn,
#access-overview-card .btn.icon-only{
    min-width:38px;
    height:38px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    line-height:1;
    font-size:16px;
    touch-action:manipulation;
}
.turn-debug-card .actions,
.turn-debug-card form,
#match-control-actions form{
    flex-wrap:wrap;
}
@media(max-width:760px){
    #access-overview-card .table-responsive{
        overflow-x:visible;
    }
    #access-overview-card .access-overview-table-v043,
    #access-overview-card .access-overview-table-v043 thead,
    #access-overview-card .access-overview-table-v043 tbody,
    #access-overview-card .access-overview-table-v043 tr,
    #access-overview-card .access-overview-table-v043 th,
    #access-overview-card .access-overview-table-v043 td{
        display:block;
        width:100% !important;
    }
    #access-overview-card .access-overview-table-v043 thead{
        position:absolute;
        width:1px !important;
        height:1px;
        overflow:hidden;
        clip:rect(0 0 0 0);
        white-space:nowrap;
    }
    #access-overview-card .access-overview-table-v043 tbody{
        display:grid;
        gap:12px;
    }
    #access-overview-card .access-overview-table-v043 tr{
        padding:12px;
        border:1px solid var(--admin-border,#e5e7eb);
        border-radius:16px;
        background:#fff;
        box-shadow:0 8px 24px rgba(15,23,42,.06);
    }
    #access-overview-card .access-overview-table-v043 td{
        border:0;
        padding:8px 0;
        display:grid;
        grid-template-columns:minmax(96px,38%) minmax(0,1fr);
        gap:10px;
        align-items:start;
    }
    #access-overview-card .access-overview-table-v043 td::before{
        content:"";
        color:#64748b;
        font-size:11px;
        font-weight:800;
        text-transform:uppercase;
        letter-spacing:.05em;
    }
    #access-overview-card .access-overview-table-v043 td:nth-child(1)::before{content:"Partecipante";}
    #access-overview-card .access-overview-table-v043 td:nth-child(2)::before{content:"Codice";}
    #access-overview-card .access-overview-table-v043 td:nth-child(3)::before{content:"Link";}
    #access-overview-card .access-overview-table-v043 td:nth-child(4)::before{content:"Stato";}
    #access-overview-card .access-overview-table-v043 td:nth-child(5)::before{content:"Richiesta";}
    #access-overview-card .access-overview-table-v043 td:nth-child(6)::before{content:"Ultimo segnale";}
    #access-overview-card .access-overview-table-v043 td:nth-child(7)::before{content:"Utilizzi";}
    #access-overview-card .access-overview-table-v043 td:nth-child(8)::before{content:"Azioni";}
    #access-overview-card .icon-actions-cell,
    #access-overview-card .actions-cell{
        gap:8px;
    }
    #access-overview-card .icon-btn,
    #access-overview-card .btn.icon-only{
        min-width:44px;
        height:44px;
        font-size:18px;
        border-radius:12px;
    }
    #access-overview-card code,
    #access-overview-card .token-mask,
    #access-overview-card .countdown-line,
    #access-overview-card .muted{
        white-space:normal;
        overflow-wrap:anywhere;
    }
    .turn-debug-card .actions .btn,
    .turn-debug-card form .btn,
    #match-control-actions .btn,
    .admin-page .match-control-actions .btn{
        min-height:44px;
        width:100%;
        justify-content:center;
        text-align:center;
    }
}

/* 1.0.0.41.2 — Mobile access actions stay side by side */
@media(max-width:760px){
    #access-overview-card .access-overview-table-v043 td.actions-cell,
    #access-overview-card .access-overview-table-v043 td.icon-actions-cell{
        display:flex !important;
        width:100% !important;
        flex-wrap:wrap;
        align-items:center;
        justify-content:flex-start;
        gap:8px;
        grid-template-columns:none;
    }
    #access-overview-card .access-overview-table-v043 td.actions-cell::before,
    #access-overview-card .access-overview-table-v043 td.icon-actions-cell::before{
        flex:0 0 100%;
        width:100%;
        margin:0 0 2px;
    }
    #access-overview-card .access-overview-table-v043 td.actions-cell form,
    #access-overview-card .access-overview-table-v043 td.icon-actions-cell form{
        display:inline-flex !important;
        flex:0 0 auto;
        width:auto !important;
        margin:0;
    }
    #access-overview-card .access-overview-table-v043 td.actions-cell .icon-btn,
    #access-overview-card .access-overview-table-v043 td.icon-actions-cell .icon-btn,
    #access-overview-card .access-overview-table-v043 td.actions-cell .btn.icon-only,
    #access-overview-card .access-overview-table-v043 td.icon-actions-cell .btn.icon-only{
        flex:0 0 auto;
    }
}

/* 1.0.0.53 — Admin UX Consistency Pass
   Shared admin layout refinements for cards, headings, summaries and action rows. */
.card-description{margin:.25rem 0 0;line-height:1.45;}
.card-heading-actions{justify-content:flex-end;align-items:center;flex-shrink:0;}
.admin-summary-grid .stat,
.dashboard-stats .stat,
.account-summary-grid .stat{min-height:92px;display:flex;flex-direction:column;justify-content:center;}
.admin-history-grid{align-items:start;}
.form-actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px;}
.admin-table.account-plan-table td,
.admin-table.account-history-table td,
.admin-table.account-payments-table td{vertical-align:middle;}
.admin-page .card > .card-heading-row:first-child{margin-bottom:14px;}
.admin-page .card > .card-heading-row:first-child h2{margin:0;}
.admin-page .card > .card-heading-row:first-child + .stats-grid{margin-top:0;}
.admin-page .card > .card-heading-row:first-child + .form.admin-filter,
.admin-page .card > .card-heading-row:first-child + form.admin-filter{margin-top:0;}
.admin-page .filter-actions .btn,
.admin-page .page-actions .btn,
.admin-page .row-actions .btn{display:inline-flex;align-items:center;justify-content:center;}
@media(max-width:760px){
    .card-heading-actions{width:100%;justify-content:flex-start;}
    .account-summary-grid{grid-template-columns:1fr;}
    .admin-history-grid{grid-template-columns:1fr;}
    .admin-page .page-actions.admin-page-actions .btn{width:100%;}
}

/* 1.0.0.55 — Match Creation Wizard QA and Cleanup */
.match-setup-progress{margin-bottom:18px;}
.match-setup-progress > div{text-align:center;}
.match-setup-card .card-description{max-width:720px;}
.match-setup-stats strong{font-size:clamp(20px,2.6vw,28px);overflow-wrap:anywhere;}
.match-setup-labels{margin:18px 0;padding:14px;border:1px solid var(--admin-border,#e5e7eb);border-radius:14px;background:#f8fafc;}
.match-setup-labels h3{margin-top:0;}
.match-setup-label-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.match-setup-label-grid label{margin:0;}
.match-setup-sets-table td:first-child,.match-setup-sets-table th:first-child{text-align:center;}
.match-setup-update-actions,.match-setup-create-form{margin-top:14px;}
.match-setup-checklist-table td:nth-child(2){white-space:nowrap;}
@media(max-width:700px){
    .match-setup-progress{grid-template-columns:repeat(3,minmax(0,1fr));}
    .match-setup-progress strong{font-size:22px;}
    .match-setup-label-grid{grid-template-columns:1fr;}
    .match-setup-update-actions .btn,.match-setup-create-form .btn{width:100%;justify-content:center;}
}

/* 1.0.0.56 — Card Set Manager UX and Import QA */
.card-manager-bulk-submit{gap:8px;}
.card-manager-control.is-disabled{opacity:.58;}
.card-manager-control.is-disabled select{background:#f3f4f6;cursor:not-allowed;}
.card-manager-table .card-content-cell{line-height:1.45;}
.card-manager-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.card-import-export-format{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0;}
.card-import-export-format .stat strong{font-size:18px;}
#sample_csv_link{margin-top:4px;}
#import_destination_help{padding:10px 12px;border:1px solid var(--admin-border,#e5e7eb);border-radius:12px;background:#f8fafc;}
@media(max-width:700px){
    .card-manager-bulk-submit{align-items:stretch;flex-direction:column;}
    .card-manager-bulk-submit .btn{width:100%;justify-content:center;}
}

/* 1.0.0.59 — Admin Game Rules Builder */
.game-rules-summary strong{font-size:clamp(16px,2.2vw,22px);overflow-wrap:anywhere;}
.game-rules-builder-card .card-description{max-width:760px;}
.game-rules-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0;}
.admin-check{display:flex!important;align-items:center;gap:8px;margin:0!important;font-weight:700;}
.admin-check input[type="checkbox"]{width:auto!important;margin:0;}
.game-rules-actions-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.game-rules-actions-table{min-width:1180px;}
.game-rules-actions-table input,.game-rules-actions-table select{width:100%;min-width:90px;font-size:13px;}
.game-rules-actions-table td{vertical-align:top;}
.game-rules-actions-table td:first-child,.game-rules-actions-table td:nth-child(8){text-align:center;}
.game-rules-actions-table td:first-child input,.game-rules-actions-table td:nth-child(8) input{width:auto!important;min-width:auto!important;}
@media(max-width:700px){.game-rules-check-grid{grid-template-columns:1fr}.game-rules-builder-card .btn.primary{width:100%;justify-content:center}}

/* 1.0.0.61 — Custom Board Tiles admin */
.game-board-tiles-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.game-board-tiles-table{min-width:1120px;}
.game-board-tiles-table input,.game-board-tiles-table select{width:100%;min-width:90px;}
.game-board-tiles-table td:first-child{white-space:nowrap;}
@media(max-width:760px){.game-board-tiles-table{min-width:980px;}.game-board-tiles-table th,.game-board-tiles-table td{font-size:12px;}}


/* 1.0.0.64 — Game diagnostics admin page */
.game-diagnostics-summary .stat strong{font-size:clamp(20px,2.4vw,28px);}
.game-diagnostics-summary .stat small{overflow-wrap:anywhere;}
.debug-json{max-width:100%;}

/* 1.0.0.65 — Game Rules Builder presets and validation */
.game-rules-top-grid{align-items:stretch;margin:0 0 18px;}
.game-rules-preset-card,.game-rules-validation-card{height:100%;}
.game-rules-issues{display:grid;gap:8px;margin:0 0 12px;}
.game-rules-issues .alert.compact{margin:0;}
.game-rules-readable-summary{color:#334155;}
.game-rules-readable-summary li{margin:4px 0;}
@media(max-width:760px){.game-rules-top-grid{grid-template-columns:1fr}.game-rules-preset-card .btn{width:100%;justify-content:center;text-align:center}}

/* 1.0.0.67 — Card schema field cleanup */
.card-schema-help .subcard h3{margin-top:0;margin-bottom:6px;}
.card-schema-help code{font-size:13px;font-weight:800;}
.card-schema-form .card-schema-rules{min-width:120px;}
.card-schema-form .card-schema-rules small{display:block;margin-top:4px;}

/* 1.0.0.68 — Modular player layout foundation admin */
.player-module-table th,.player-module-table td{vertical-align:middle;}
.player-module-table select,.player-module-table input[type="number"]{min-width:110px;}
.player-module-table .form-check-input{width:1.1rem!important;min-width:1.1rem!important;height:1.1rem;}
@media(max-width:900px){.player-module-table{min-width:980px;}.player-module-table th,.player-module-table td{font-size:13px;}}

/* 1.0.0.69 — Player Module Designer Admin */
.player-module-summary-grid{margin:12px 0 16px;}
.player-module-help{line-height:1.5;}
.player-module-preset-panel{background:#f8fafc;border-color:#dbeafe;}
.player-module-section-card{background:#fff;}
.player-module-section-card .card-heading-row{align-items:flex-start;}
.player-module-table th,.player-module-table td{vertical-align:middle;}
.player-module-table td:first-child{min-width:190px;}
.player-module-table select,.player-module-table input[type="number"]{min-width:120px;}
.player-module-table input[type="color"]{min-width:54px;}
.player-module-section-disabled{background:#fafafa;}
.player-module-section-disabled .player-module-table{opacity:.92;}
@media(max-width:760px){
  .player-module-table{min-width:920px;}
  .player-module-preset-panel .actions .btn{width:100%;justify-content:center;text-align:center;}
}

/* 1.0.0.73 — Player module designer validation */
.player-module-qa-panel{border-color:#c7d2fe;background:linear-gradient(180deg,#eef2ff,#fff)}
.player-module-qa-panel .compact-list{margin-top:8px}
.player-module-preview-actions{margin-top:10px}
.player-module-preview-actions .btn{white-space:nowrap}
@media(max-width:700px){.player-module-preview-actions .btn{width:100%;text-align:center;justify-content:center}}
