
/* ================================================================
   ARCANUM v1.19.4 — PLANCIA TATTICA CONDIVISA
================================================================ */
.wb-session-board-shell{
    overflow:hidden;
    border:1px solid #86652f;
    border-radius:.75rem;
    background:#071d2a;
    box-shadow:0 .55rem 1.2rem rgba(21,12,5,.22);
}

.wb-session-board-toolbar{
    display:flex;
    min-height:48px;
    align-items:center;
    justify-content:space-between;
    gap:.7rem;
    padding:.5rem .65rem;
    border-bottom:1px solid rgba(204,164,83,.35);
    background:#0d2b3b;
}

.wb-board-status{
    color:#d9c08a;
    font-family:Georgia,"Times New Roman",serif;
    font-size:.68rem;
}

.wb-board-tools{
    display:flex;
    align-items:center;
    gap:.3rem;
}

.wb-board-tools button{
    min-height:34px;
    padding:.3rem .55rem;
    border:1px solid #8e6d37;
    border-radius:.38rem;
    background:#173d50;
    color:#e8ce95;
    font-size:.62rem;
    font-weight:800;
}

.wb-board-tools button:hover,
.wb-board-tools button.active{
    border-color:#d1a654;
    background:#24556a;
    color:#ffe3a5;
}

.wb-board-distance{
    min-height:34px;
    padding:.42rem .65rem;
    border-bottom:1px solid rgba(204,164,83,.22);
    background:#102533;
    color:#a99b7c;
    font-size:.58rem;
}

.wb-board-distance.is-visible{
    color:#f0d08b;
    font-weight:800;
}

.wb-session-board-viewport{
    position:relative;
    width:100%;
    height:min(68vh,760px);
    min-height:440px;
    overflow:auto;
    background:
        radial-gradient(circle at 30% 20%,rgba(47,82,91,.25),transparent 30%),
        #061721;
    overscroll-behavior:contain;
}

.wb-session-board-holder{
    position:relative;
    min-width:100%;
    min-height:100%;
}

.wb-session-board-svg{
    display:block;
    max-width:none;
    background:#e8ddc2;
    touch-action:pan-x pan-y;
    user-select:none;
}

.wb-board-bg{
    fill:#ddd0af;
}

.wb-board-background-image{
    opacity:.96;
}

.wb-board-grid-lines{
    fill:none;
    stroke:rgba(33,44,45,.42);
    stroke-width:1.15;
    vector-effect:non-scaling-stroke;
}

.wb-board-token{
    cursor:pointer;
    transition:opacity .15s ease;
}

.wb-board-token.can-move,
.wb-board-token.can-move *{
    touch-action:none;
}

.wb-board-token.can-move{
    cursor:grab;
}

.wb-board-token.is-selected .wb-board-token-halo{
    stroke:#ffe08a;
    stroke-width:5;
    stroke-dasharray:5 3;
}

.wb-board-token.is-dragging{
    cursor:grabbing;
}

.wb-board-token.is-blocked .wb-board-token-halo{
    stroke:#d95c54;
    stroke-width:5;
    stroke-dasharray:5 3;
}

.wb-board-token.is-hidden{
    opacity:.5;
}

.wb-board-token-halo{
    fill:rgba(9,38,52,.88);
    stroke:#dbb45f;
    stroke-width:2.2;
    vector-effect:non-scaling-stroke;
}

.wb-board-token.can-move .wb-board-token-halo{
    stroke:#74c59c;
    stroke-width:3;
}

.wb-board-token-image{
    pointer-events:none;
}

.wb-board-token-fallback{
    pointer-events:none;
    color:#e8bf6b;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.65));
}

.wb-board-token-label{
    paint-order:stroke;
    stroke:#f8efd7;
    stroke-width:5px;
    stroke-linejoin:round;
    fill:#302619;
    font-family:Arial,sans-serif;
    font-size:13px;
    font-weight:800;
    pointer-events:none;
}

.wb-board-token-hidden-mark{
    font-size:16px;
    pointer-events:none;
}

.wb-board-measure-overlay line{
    stroke:#db5f4f;
    stroke-width:3;
    stroke-dasharray:8 5;
    vector-effect:non-scaling-stroke;
    pointer-events:none;
}

.wb-board-measure-overlay text{
    paint-order:stroke;
    stroke:#fff7df;
    stroke-width:6px;
    fill:#7b3027;
    font-size:15px;
    font-family:Arial,sans-serif;
    font-weight:900;
    pointer-events:none;
}

.wb-player-board-help{
    display:flex;
    flex-wrap:wrap;
    gap:.35rem 1rem;
    padding:.55rem .65rem;
    border-top:1px solid rgba(204,164,83,.28);
    background:#0b2533;
    color:#ab9c7b;
    font-size:.56rem;
}

@media(pointer:coarse){
    .wb-board-token.can-move .wb-board-token-halo{
        stroke-width:4;
    }

    .wb-board-token.is-selected .wb-board-token-halo{
        stroke-width:6;
    }
}

@media(max-width:767.98px){
    .wb-session-board-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .wb-board-tools{
        width:100%;
        flex-wrap:wrap;
    }

    .wb-board-tools button{
        flex:1 1 auto;
    }

    .wb-session-board-viewport{
        height:64vh;
        min-height:420px;
    }
}

@media(max-width:520px){
    .wb-session-board-viewport{
        height:60vh;
        min-height:390px;
    }

    .wb-board-token-label{
        font-size:12px;
    }
}


/* ================================================================
   DESKTOP / NOTEBOOK — LEGGIBILITA MASTER
   Mantiene invariata la densita touch su tablet e cellulari.
================================================================ */
@media (min-width:1200px) and (hover:hover) and (pointer:fine){
    .wb-session-board-viewport{
        height:min(72vh,820px);
        min-height:500px;
    }

    .wb-session-board-toolbar{
        min-height:58px;
        gap:.9rem;
        padding:.65rem .8rem;
    }

    .wb-board-status{
        font-size:.82rem;
        line-height:1.35;
    }

    .wb-board-tools{
        gap:.4rem;
    }

    .wb-board-tools button{
        min-height:40px;
        padding:.42rem .72rem;
        border-radius:.45rem;
        font-size:.78rem;
    }

    .wb-board-distance{
        min-height:40px;
        padding:.52rem .8rem;
        font-size:.72rem;
        line-height:1.4;
    }

    .wb-board-token-label{
        font-size:15px;
    }

    .wb-board-token-hidden-mark{
        font-size:18px;
    }

    .wb-board-measure-overlay text{
        font-size:17px;
    }
}


/* ================================================================
   ARCANUM v1.19.6 — PLANCIA: LEGGIBILITA TOUCH + NOTEBOOK
================================================================ */
.wb-board-status{
    font-size:.78rem;
    line-height:1.35;
}

.wb-board-tools button{
    min-height:40px;
    padding:.42rem .68rem;
    font-size:.76rem;
}

.wb-board-distance{
    min-height:40px;
    padding:.5rem .72rem;
    font-size:.72rem;
    line-height:1.35;
}

.wb-player-board-help{
    gap:.45rem 1rem;
    padding:.65rem .72rem;
    font-size:.72rem;
    line-height:1.4;
}

@media(pointer:coarse){
    .wb-session-board-toolbar{
        min-height:56px;
        padding:.6rem .7rem;
    }

    .wb-board-status{font-size:.82rem}

    .wb-board-tools button{
        min-height:44px;
        padding:.48rem .72rem;
        font-size:.82rem;
    }

    .wb-board-distance{
        min-height:44px;
        font-size:.78rem;
    }

    .wb-player-board-help{font-size:.76rem}
}


/* ================================================================
   ARCANUM v1.20.0 — TOOLBAR MASTER + ELEMENTI GENERICI
================================================================ */
.wb-board-toolbar-drawer[hidden]{
    display:none!important;
}

.wb-board-toolbar-drawer{
    padding:.8rem;
    border-bottom:1px solid rgba(204,164,83,.28);
    background:#102b39;
    color:#e9d5a5;
}

.wb-board-drawer-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:.7rem;
}

.wb-board-drawer-head>div{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:.08rem;
}

.wb-board-drawer-head strong{
    color:#f2d28c;
    font-size:.9rem;
}

.wb-board-drawer-head small{
    color:#b7aa8c;
    font-size:.72rem;
}

.wb-board-drawer-head>button{
    display:grid;
    width:40px;
    height:40px;
    flex:0 0 40px;
    place-items:center;
    border:1px solid rgba(207,167,89,.45);
    border-radius:50%;
    background:#173d50;
    color:#f1d59a;
    font-size:1.15rem;
    font-weight:900;
}

.wb-board-generic-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:.55rem;
}

.wb-board-generic-form{
    margin:0;
}

.wb-board-generic-button{
    display:grid;
    width:100%;
    min-height:58px;
    grid-template-columns:42px minmax(0,1fr) 24px;
    align-items:center;
    gap:.5rem;
    padding:.5rem .6rem;
    border:1px solid rgba(208,169,88,.4);
    border-radius:.55rem;
    background:#173d50;
    color:#f0d8a4;
    text-align:left;
}

.wb-board-generic-button:hover{
    border-color:#d4ab59;
    background:#225266;
}

.wb-board-generic-button>span{
    display:grid;
    width:40px;
    height:40px;
    place-items:center;
    border-radius:.45rem;
    background:rgba(6,24,34,.5);
    font-size:1.35rem;
}

.wb-board-generic-button>div{
    display:flex;
    min-width:0;
    flex-direction:column;
}

.wb-board-generic-button strong{
    font-size:.82rem;
}

.wb-board-generic-button small{
    color:#afa586;
    font-size:.68rem;
}

.wb-board-generic-button>b{
    font-size:1.1rem;
}

.wb-board-generic-text-form{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:.3rem;
    padding:.5rem .6rem;
    border:1px solid rgba(208,169,88,.4);
    border-radius:.55rem;
    background:#173d50;
}

.wb-board-generic-text-form>label{
    color:#f0d8a4;
    font-size:.78rem;
    font-weight:800;
}

.wb-board-generic-text-form>div{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:.4rem;
}

.wb-board-generic-text-form .form-control{
    min-height:42px;
    border-color:#7d6a45;
    background:#f8edd3;
    color:#382b20;
    font-size:.82rem;
}

.wb-board-generic-text-form .btn{
    min-height:42px;
    white-space:nowrap;
}

.wb-board-settings-inline{
    margin:0!important;
    padding:0!important;
    border:0!important;
}

.wb-board-settings-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(100px,1fr));
    gap:.55rem;
}

.wb-board-setting-field{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:.2rem;
}

.wb-board-setting-field.is-wide{
    grid-column:span 2;
}

.wb-board-setting-field>span{
    color:#c9b787;
    font-size:.7rem;
    font-weight:800;
}

.wb-board-setting-field .form-control,
.wb-board-setting-field .form-select{
    min-height:40px;
    border-color:#78633f;
    background:#f8edd3;
    color:#382b20;
    font-size:.8rem;
}

.wb-board-settings-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:.55rem;
    margin-top:.65rem;
}

.wb-board-settings-actions .form-check{
    margin-right:auto;
}

.wb-board-settings-actions .form-check-label{
    color:#d5c49a;
    font-size:.76rem;
}

.wb-board-settings-actions .btn{
    min-height:40px;
    font-size:.78rem;
}

.wb-board-token.is-tile .wb-board-token-halo{
    vector-effect:non-scaling-stroke;
}

.wb-board-token.type-gen_parete .wb-board-token-tile{
    fill:#4c463e;
    stroke:#2a251f;
    stroke-width:2.4;
}

.wb-board-token.type-gen_porta .wb-board-token-tile{
    fill:#765332;
    stroke:#3d2818;
    stroke-width:2.4;
}

.wb-board-token.type-gen_parete .wb-board-token-fallback,
.wb-board-token.type-gen_porta .wb-board-token-fallback{
    font-size:24px;
}

@media(max-width:1199.98px){
    .wb-board-settings-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:767.98px){
    .wb-board-toolbar-drawer{
        padding:.65rem;
    }

    .wb-board-drawer-head{
        align-items:flex-start;
    }

    .wb-board-generic-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .wb-board-settings-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .wb-board-setting-field.is-wide{
        grid-column:1/-1;
    }
}

@media(max-width:520px){
    .wb-board-generic-grid,
    .wb-board-settings-grid{
        grid-template-columns:1fr;
    }

    .wb-board-setting-field.is-wide{
        grid-column:auto;
    }

    .wb-board-generic-text-form>div{
        grid-template-columns:1fr;
    }

    .wb-board-settings-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .wb-board-settings-actions .form-check{
        margin-right:0;
    }

    .wb-board-settings-actions .btn{
        width:100%;
    }
}

@media(pointer:coarse){
    .wb-board-generic-button{
        min-height:64px;
    }

    .wb-board-generic-text-form .form-control,
    .wb-board-generic-text-form .btn,
    .wb-board-setting-field .form-control,
    .wb-board-setting-field .form-select,
    .wb-board-settings-actions .btn{
        min-height:44px;
        font-size:1rem;
    }

    .wb-board-setting-field>span,
    .wb-board-settings-actions .form-check-label{
        font-size:.8rem;
    }
}


/* v1.20.1 - struttura Plancia separata dalle pedine */
.wb-board-structure-remove-button.active{
    border-color:#d8b15e;
    background:#294f5d;
    box-shadow:inset 0 0 0 1px rgba(216,177,94,.35);
}
.wb-board-token.type-gen_parete .wb-board-token-tile{
    fill:#4c463e;
}


/* v1.20.2 - strutture coerenti con la geometria della griglia */
.wb-board-token .wb-board-token-tile-hex{
    stroke-linejoin:round;
}

/* ================================================================
   ARCANUM v1.23.0 — APPROVAZIONE MOVIMENTO + AREE / CONI / TEMPLATE
================================================================ */
.wb-board-tools button.has-pending{
    border-color:#e0aa48;
    background:#5a4322;
    color:#ffe6a9;
}

.wb-board-template-controls{
    display:grid;
    gap:.7rem;
}

.wb-board-template-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:.55rem;
}

.wb-board-template-grid>button{
    display:grid;
    min-height:64px;
    grid-template-columns:42px minmax(0,1fr);
    grid-template-rows:auto auto;
    align-items:center;
    gap:.05rem .55rem;
    padding:.5rem .65rem;
    border:1px solid rgba(208,169,88,.4);
    border-radius:.55rem;
    background:#173d50;
    color:#f0d8a4;
    text-align:left;
}

.wb-board-template-grid>button:hover{
    border-color:#d4ab59;
    background:#225266;
}

.wb-board-template-grid>button>span{
    grid-row:1/3;
    font-size:1.5rem;
    text-align:center;
}

.wb-board-template-grid>button>strong{font-size:.82rem}
.wb-board-template-grid>button>small{color:#afa586;font-size:.68rem}

.wb-board-template-player-toggle{
    display:flex;
    min-height:42px;
    align-items:center;
    gap:.55rem;
    color:#d9c79c;
    font-size:.76rem;
    font-weight:800;
}
.wb-board-template-player-toggle input{width:20px;height:20px}

.wb-board-template-list-wrap{
    margin-top:.8rem;
    padding-top:.7rem;
    border-top:1px solid rgba(204,164,83,.22);
}
.wb-board-template-list-wrap>strong{font-size:.78rem;color:#efd190}
.wb-board-template-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:.45rem;
    margin-top:.45rem;
}
.wb-board-template-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:.35rem;
    padding:.45rem .5rem;
    border:1px solid rgba(208,169,88,.28);
    border-radius:.5rem;
    background:#123342;
}
.wb-board-template-row>div:first-child{display:flex;min-width:0;flex-direction:column}
.wb-board-template-row strong{font-size:.76rem;color:#f0d49b}
.wb-board-template-row small{font-size:.68rem;color:#a99b7c}
.wb-board-template-row.owner-player{
    border-color:rgba(67,168,213,.48);
    background:#123d50;
}
.wb-board-template-row.owner-player strong{color:#a8e7ff}
.wb-board-template-row.owner-player small{color:#9ed2e7}
.wb-board-template-eye,.wb-board-template-remove{
    width:40px;height:40px;border:1px solid #765f39;border-radius:.4rem;background:#173d50;color:#f1d59a;font-weight:900;
}
.wb-board-template-remove{color:#edaaa0}

.wb-board-request-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:.5rem;
}
.wb-board-request-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:.65rem;
    padding:.55rem .6rem;
    border:1px solid rgba(224,170,72,.38);
    border-radius:.55rem;
    background:#173846;
}
.wb-board-request-row>div:first-child{display:flex;min-width:0;flex-direction:column}
.wb-board-request-row strong{color:#f2d28c;font-size:.8rem}
.wb-board-request-row small{color:#b9aa87;font-size:.7rem}
.wb-board-request-row>div:last-child{display:flex;gap:.35rem;flex-wrap:wrap}
.wb-board-request-row button{
    min-height:40px;padding:.38rem .58rem;border-radius:.42rem;font-size:.72rem;font-weight:900;
}
.wb-board-request-row .approve{border:1px solid #57966f;background:#173f31;color:#bde1c8}
.wb-board-request-row .reject{border:1px solid #a05d55;background:#472b2b;color:#f0bab2}

.wb-board-template{pointer-events:none}
.wb-board-template-shape{
    fill:rgba(205,98,65,.24);
    stroke:#c85f43;
    stroke-width:3;
    stroke-dasharray:8 5;
    vector-effect:non-scaling-stroke;
}
.wb-board-template.type-linea .wb-board-template-shape{
    fill:none;
    stroke-width:18;
    stroke-linecap:round;
    opacity:.5;
}
/* I template Player sono volutamente di un colore diverso da quelli Master. */
.wb-board-template.owner-player .wb-board-template-shape{
    fill:rgba(66,170,214,.24);
    stroke:#43a8d5;
}
.wb-board-template.owner-player.type-linea .wb-board-template-shape{
    fill:none;
}
.wb-board-template.owner-player .wb-board-template-label{
    stroke:#eaf9ff;
    fill:#176581;
}
.wb-board-template-origin.owner-player circle{
    fill:rgba(88,196,235,.22);
    stroke:#59c3e9;
}
.wb-board-template-origin.owner-player line{stroke:#59c3e9}
.wb-board-template.is-hidden{opacity:.52}
.wb-board-template.is-hidden .wb-board-template-shape{stroke-dasharray:4 7}
.wb-board-template-label{
    paint-order:stroke;
    stroke:#fff4d8;
    stroke-width:5px;
    fill:#7e3528;
    font-family:Arial,sans-serif;
    font-size:14px;
    font-weight:900;
}
.wb-board-template-origin circle{
    fill:rgba(255,224,138,.2);stroke:#ffe08a;stroke-width:3;vector-effect:non-scaling-stroke;
}
.wb-board-template-origin line{stroke:#ffe08a;stroke-width:2;vector-effect:non-scaling-stroke}
.wb-board-template-origin{pointer-events:none}

.wb-board-move-request{pointer-events:none}
.wb-board-move-request line{
    stroke:#f1ba55;stroke-width:4;stroke-dasharray:10 6;vector-effect:non-scaling-stroke;
}
.wb-board-move-request circle{
    fill:rgba(241,186,85,.18);stroke:#f1ba55;stroke-width:4;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;
}
.wb-board-move-request text{
    paint-order:stroke;stroke:#0b2533;stroke-width:5px;fill:#ffe2a1;font-family:Arial,sans-serif;font-size:13px;font-weight:900;
}

@media(max-width:900px){
    .wb-board-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
    .wb-board-template-grid{grid-template-columns:1fr}
    .wb-board-request-row{grid-template-columns:1fr}
    .wb-board-request-row>div:last-child button{flex:1 1 auto}
}
@media(pointer:coarse){
    .wb-board-template-grid>button{min-height:68px}
    .wb-board-template-player-toggle{min-height:44px;font-size:.82rem}
    .wb-board-request-row button,.wb-board-template-eye,.wb-board-template-remove{min-height:44px}
}
