.rpgs-wrap{
    --rpgs-bg: #03111f;
    --rpgs-panel: #061a2c;
    --rpgs-panel-alt: #09243a;
    --rpgs-line: rgba(83,190,255,.22);
    --rpgs-text: #c9d8e3;
    --rpgs-muted: #7895aa;
    --rpgs-accent: #55c2ff;
    --rpgs-accent-text: #03111f;
    --rpgs-danger: #d85c6d;

    max-width:1280px;
    margin:24px auto;
    padding:0 14px;
    color:var(--rpgs-text)
}

.rpgs-wrap *{
    box-sizing:border-box
}

.rpgs-hero{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    padding:28px;
    border:1px solid var(--rpgs-line);
    background:var(--rpgs-panel);
    border-radius:14px
}

.rpgs-eyebrow{
    display:block;
    font-size:10px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--rpgs-accent);
    opacity:.75;
    margin-bottom:5px
}

.rpgs-hero h1,
.rpgs-panel h2,
.rpgs-modal h2{
    margin:0;
    font-size:26px;
    line-height:1.15;
    color:#e4f1f8
}

.rpgs-hero p{
    margin:7px 0 0;
    color:var(--rpgs-muted);
    opacity:.9
}

.rpgs-stats{
    display:flex;
    gap:10px
}

.rpgs-stats div{
    min-width:88px;
    padding:12px 16px;
    border:1px solid var(--rpgs-line);
    border-radius:10px;
    text-align:center;
    background:var(--rpgs-panel-alt)
}

.rpgs-stats strong{
    display:block;
    font-size:22px;
    color:var(--rpgs-accent)
}

.rpgs-stats span{
    font-size:11px;
    color:var(--rpgs-muted);
    opacity:.9;
    text-transform:uppercase;
    letter-spacing:.08em
}

.rpgs-tabs{
    display:flex;
    gap:6px;
    margin:14px 0
}

.rpgs-tabs a{
    padding:10px 16px;
    border:1px solid var(--rpgs-line);
    border-radius:9px;
    text-decoration:none;
    background:var(--rpgs-panel);
    color:var(--rpgs-text)
}

.rpgs-tabs a:hover{
    color:var(--rpgs-accent);
    border-color:rgba(85,194,255,.45)
}

.rpgs-tabs a.is-active{
    background:var(--rpgs-accent);
    color:var(--rpgs-accent-text);
    border-color:transparent
}

.rpgs-filter{
    display:grid;
    grid-template-columns:1fr 1fr 1fr auto auto;
    gap:10px;
    align-items:end;
    padding:15px;
    border:1px solid var(--rpgs-line);
    border-radius:12px;
    background:var(--rpgs-panel);
    margin-bottom:14px
}

.rpgs-filter label,
.rpgs-modal label{
    display:flex;
    flex-direction:column;
    gap:5px
}

.rpgs-filter label>span,
.rpgs-modal label>span{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--rpgs-muted);
    opacity:.9
}

.rpgs-filter select,
.rpgs-modal input{
    width:100%;
    min-height:38px;
    padding:7px 9px;
    border:1px solid var(--rpgs-line);
    border-radius:7px;
    background:#041727;
    color:var(--rpgs-text)
}

.rpgs-filter select:focus,
.rpgs-modal input:focus{
    outline:none;
    border-color:var(--rpgs-accent);
    box-shadow:0 0 0 2px rgba(85,194,255,.10)
}

.rpgs-filter button,
.rpgs-modal-actions button{
    min-height:38px;
    padding:7px 14px;
    border:0;
    border-radius:7px;
    cursor:pointer;
    background:var(--rpgs-accent);
    color:var(--rpgs-accent-text)
}

.rpgs-filter button:hover,
.rpgs-modal-actions button:hover{
    filter:brightness(1.08)
}

.rpgs-filter>a{
    min-height:38px;
    display:flex;
    align-items:center;
    padding:0 8px;
    color:var(--rpgs-muted)
}

.rpgs-filter>a:hover{
    color:var(--rpgs-accent)
}

.rpgs-panel{
    border:1px solid var(--rpgs-line);
    border-radius:14px;
    background:var(--rpgs-panel);
    overflow:hidden;
    margin-bottom:16px
}

.rpgs-panel-head{
    padding:18px 20px;
    border-bottom:1px solid var(--rpgs-line);
    background:#051b2e
}

.rpgs-panel-head h2{
    font-size:20px;
    color:var(--rpgs-accent)
}

.rpgs-plan-day{
    display:grid;
    grid-template-columns:100px 1fr;
    min-height:62px;
    border-bottom:1px solid var(--rpgs-line)
}

.rpgs-plan-day:last-child{
    border-bottom:0
}

.rpgs-plan-day.is-today{
    box-shadow:inset 4px 0 0 var(--rpgs-accent)
}

.rpgs-plan-date{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:11px 16px;
    background:var(--rpgs-panel-alt)
}

.rpgs-plan-date strong{
    text-transform:uppercase;
    font-size:12px;
    color:#dceaf2
}

.rpgs-plan-date span{
    font-size:12px;
    color:var(--rpgs-muted);
    opacity:.9
}

.rpgs-plan-items{
    display:flex;
    align-items:center;
    gap:7px;
    flex-wrap:wrap;
    padding:10px 14px
}

.rpgs-plan-chip{
    display:inline-flex;
    padding:6px 9px;
    border:1px solid var(--rpgs-line);
    border-radius:999px;
    font-size:12px;
    background:#082137;
    color:#cfe0ea
}

.rpgs-plan-chip:hover{
    border-color:rgba(85,194,255,.5);
    color:var(--rpgs-accent)
}

.rpgs-muted{
    color:var(--rpgs-muted);
    opacity:.75
}

.rpgs-cards{
    padding:10px
}

.rpgs-card{
    border:1px solid var(--rpgs-line);
    border-radius:10px;
    margin-bottom:9px;
    overflow:hidden;
    background:var(--rpgs-panel)
}

.rpgs-card:last-child{
    margin-bottom:0
}

.rpgs-card.is-error{
    box-shadow:inset 4px 0 0 var(--rpgs-danger)
}

.rpgs-card-main{
    display:grid;
    grid-template-columns:170px minmax(280px,1fr) 125px 85px;
    gap:14px;
    align-items:center;
    padding:14px
}

.rpgs-ident strong,
.rpgs-ident span,
.rpgs-when strong,
.rpgs-when span{
    display:block
}

.rpgs-ident strong,
.rpgs-when strong{
    color:#d9e8f0
}

.rpgs-ident span,
.rpgs-when span,
.rpgs-for{
    font-size:11px;
    color:var(--rpgs-muted);
    opacity:.9
}

.rpgs-scene-link{
    font-weight:700;
    text-decoration:none;
    color:var(--rpgs-accent)
}

.rpgs-scene-link:hover{
    text-decoration:underline;
    color:#8bd7ff
}

.rpgs-for{
    display:block;
    margin-top:4px
}

.rpgs-state{
    text-align:center;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:700;
    color:var(--rpgs-accent)
}

.rpgs-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    padding:9px 14px;
    border-top:1px solid var(--rpgs-line);
    background:var(--rpgs-panel-alt);
    font-size:11px
}

.rpgs-actions a,
.rpgs-linkbutton{
    border:0;
    background:none;
    padding:0;
    color:#9bb5c6;
    text-decoration:underline;
    cursor:pointer;
    font:inherit
}

.rpgs-actions a:hover,
.rpgs-linkbutton:hover{
    color:var(--rpgs-accent)
}

.rpgs-actions .rpgs-danger{
    color:var(--rpgs-danger)
}

.rpgs-error{
    font-size:11px;
    margin-top:5px;
    color:var(--rpgs-danger)
}

.rpgs-empty{
    padding:34px;
    text-align:center;
    color:var(--rpgs-muted);
    opacity:.85
}

.rpgs-calendar-head{
    display:grid;
    grid-template-columns:42px 1fr 42px;
    align-items:center;
    text-align:center;
    padding:14px;
    border-bottom:1px solid var(--rpgs-line);
    background:#051b2e
}

.rpgs-calendar-head a{
    font-size:26px;
    text-decoration:none;
    color:var(--rpgs-accent)
}

.rpgs-calendar-head a:hover{
    color:#91dcff
}

.rpgs-calendar-weekdays,
.rpgs-calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr)
}

.rpgs-calendar-weekdays span{
    padding:9px;
    text-align:center;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    color:#8ba8bb;
    opacity:.9;
    border-right:1px solid var(--rpgs-line);
    border-bottom:1px solid var(--rpgs-line);
    background:#071f34
}

.rpgs-calendar-cell{
    min-height:125px;
    padding:7px;
    border-right:1px solid var(--rpgs-line);
    border-bottom:1px solid var(--rpgs-line);
    overflow:hidden;
    background:var(--rpgs-panel)
}

.rpgs-calendar-cell:nth-child(7n){
    border-right:0
}

.rpgs-calendar-cell.is-empty{
    background:#041727;
    opacity:.65
}

.rpgs-calendar-cell.is-today{
    box-shadow:inset 0 0 0 2px var(--rpgs-accent);
    background:#08243a
}

.rpgs-calendar-number{
    font-size:12px;
    font-weight:700;
    margin-bottom:5px;
    color:#d7e7f0
}

.rpgs-calendar-cell.is-today .rpgs-calendar-number{
    color:var(--rpgs-accent)
}

.rpgs-calendar-event{
    display:block;
    padding:6px 7px;
    border:1px solid var(--rpgs-line);
    border-radius:7px;
    margin-top:5px;
    text-decoration:none;
    background:var(--rpgs-panel-alt);
    color:var(--rpgs-text);
    font-size:10px;
    line-height:1.25
}

.rpgs-calendar-event:hover{
    border-color:rgba(85,194,255,.5);
    background:#0b2b46
}

.rpgs-calendar-event time,
.rpgs-calendar-event strong,
.rpgs-calendar-event span{
    display:block
}

.rpgs-calendar-event time{
    color:var(--rpgs-accent)
}

.rpgs-calendar-event strong{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    margin:2px 0;
    color:#d9e9f2
}

.rpgs-calendar-event span{
    color:var(--rpgs-muted);
    opacity:.9
}

.rpgs-modal{
    position:fixed;
    inset:0;
    display:none;
    z-index:9999
}

.rpgs-modal.is-open{
    display:block
}

.rpgs-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,8,17,.82)
}

.rpgs-modal-dialog{
    position:relative;
    z-index:2;
    width:min(460px,calc(100% - 30px));
    margin:12vh auto 0;
    padding:24px;
    border-radius:14px;
    background:var(--rpgs-panel);
    color:var(--rpgs-text);
    border:1px solid var(--rpgs-line);
    box-shadow:0 20px 70px rgba(0,0,0,.55)
}

.rpgs-modal-dialog form{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:18px
}

.rpgs-modal-actions{
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:4px
}

.rpgs-modal-actions button:first-child{
    background:var(--rpgs-panel-alt);
    color:var(--rpgs-text);
    border:1px solid var(--rpgs-line)
}

.rpgs-modal-actions button:first-child:hover{
    border-color:rgba(85,194,255,.5);
    color:var(--rpgs-accent)
}

.rpgs-modal-x{
    position:absolute;
    right:12px;
    top:10px;
    border:0;
    background:none;
    font-size:25px;
    cursor:pointer;
    color:#8aa7ba
}

.rpgs-modal-x:hover{
    color:var(--rpgs-accent)
}

.rpgscheduler-header{
    white-space:nowrap
}

@media(max-width:900px){

    .rpgs-filter{
        grid-template-columns:1fr 1fr
    }

    .rpgs-card-main{
        grid-template-columns:1fr 110px
    }

    .rpgs-ident{
        grid-column:1
    }

    .rpgs-scene{
        grid-column:1/-1;
        grid-row:2
    }

    .rpgs-when{
        grid-column:2;
        grid-row:1
    }

    .rpgs-state{
        display:none
    }

    .rpgs-calendar-cell{
        min-height:90px
    }

    .rpgs-calendar-event span{
        display:none
    }
}

@media(max-width:620px){

    .rpgs-hero{
        align-items:flex-start;
        flex-direction:column
    }

    .rpgs-filter{
        grid-template-columns:1fr
    }

    .rpgs-plan-day{
        grid-template-columns:78px 1fr
    }

    .rpgs-calendar-weekdays{
        display:none
    }

    .rpgs-calendar-grid{
        display:block
    }

    .rpgs-calendar-cell,
    .rpgs-calendar-cell.is-empty{
        min-height:0;
        border-right:0
    }

    .rpgs-calendar-cell.is-empty{
        display:none
    }

    .rpgs-calendar-cell:not(:has(.rpgs-calendar-event)){
        display:none
    }

    .rpgs-calendar-event span{
        display:block
    }
}


/* RPGS INPLAY BRIDGE */

.rpgs-inplay-planned{
    display:inline-flex;
    align-items:center;
    gap:4px;
    margin-left:7px;
    padding:3px 7px;
    border:1px solid rgba(85,194,255,.32);
    border-radius:999px;
    font-size:10px;
    font-weight:700;
    line-height:1.35;
    text-decoration:none;
    white-space:nowrap;
    vertical-align:middle;
    background:rgba(85,194,255,.10);
    color:#6ccaff
}

.rpgs-inplay-planned:hover{
    text-decoration:none;
    background:rgba(85,194,255,.17);
    border-color:rgba(85,194,255,.55);
    color:#9cddff
}

.rpgs-inplay-summary-planned{
    font-weight:700;
    color:var(--rpgs-accent)
}