:root{
    --app-bg:#0b1118;
    --app-bg-2:#111a24;
    --app-surface:#ffffff;
    --app-surface-2:#f3f6f8;
    --app-text:#16212c;
    --app-muted:#667482;
    --app-line:#dce5eb;
    --app-primary:#0f766e;
    --app-primary-strong:#0b514c;
    --app-accent:#d99a2b;
    --app-accent-strong:#9a6415;
    --app-danger:#b42318;
    --app-ink:#f7fbff;
    --app-ink-muted:#aab8c6;
    --app-shadow:0 18px 45px rgba(5,12,20,.16);
    --app-shadow-strong:0 28px 70px rgba(0,0,0,.28);
}
*{
    letter-spacing:0;
}
body.app-body{
    min-height:100vh;
    background:
        linear-gradient(180deg,rgba(11,17,24,.98) 0,rgba(15,23,32,.98) 410px,#edf2f6 411px,#edf2f6 100%),
        repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0,rgba(255,255,255,.055) 1px,transparent 1px,transparent 88px);
    color:var(--app-text);
    font-size:15px;
    line-height:1.5;
}
.app-container{
    max-width:1500px;
    padding-left:1.35rem;
    padding-right:1.35rem;
}
.app-main{
    padding-top:1.6rem;
}
.app-navbar{
    background:rgba(8,14,21,.92)!important;
    border-bottom:1px solid rgba(255,255,255,.1);
    box-shadow:0 14px 38px rgba(0,0,0,.22);
    backdrop-filter:saturate(150%) blur(14px);
}
.app-brand{
    display:inline-flex;
    align-items:center;
    gap:.65rem;
    color:#fff!important;
    font-weight:800;
    text-transform:lowercase;
}
.brand-mark{
    display:inline-grid;
    place-items:center;
    width:2.2rem;
    height:2.2rem;
    border-radius:8px;
    background:
        linear-gradient(135deg,var(--app-primary),#13a18c 58%,var(--app-accent));
    color:#fff;
    font-size:.86rem;
    font-weight:850;
    box-shadow:0 10px 26px rgba(15,118,110,.35);
}
.navbar .nav-link,
.navbar .navbar-text{
    color:rgba(232,240,247,.78);
}
.navbar .nav-link{
    border-radius:8px;
    padding:.55rem .78rem;
    font-weight:650;
}
.navbar .nav-link:hover,
.navbar .nav-link:focus{
    color:#fff;
    background:rgba(255,255,255,.08);
}
.navbar .nav-link.active{
    color:#fff;
    background:linear-gradient(135deg,rgba(15,118,110,.88),rgba(217,154,43,.52));
    box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.navbar .dropdown-toggle::after{
    opacity:.7;
}
.dropdown-menu{
    background:#111a24;
    border:1px solid rgba(255,255,255,.1);
    border-radius:8px;
    box-shadow:var(--app-shadow-strong);
    padding:.45rem;
}
.dropdown-item{
    color:#e9f2f8;
    border-radius:7px;
}
.dropdown-item:hover,
.dropdown-item:focus{
    color:#fff;
    background:rgba(15,118,110,.34);
}
.app-page-title{
    padding:1.45rem 0 1.05rem;
    color:var(--app-ink);
    border-bottom:1px solid rgba(255,255,255,.12);
}
.app-page-title h1{
    color:#fff;
    font-weight:850;
    line-height:1.15;
}
.app-page-title .text-secondary{
    color:var(--app-ink-muted)!important;
}
.card-soft{
    background:rgba(255,255,255,.98);
    border:1px solid rgba(214,225,233,.9);
    box-shadow:var(--app-shadow);
    border-radius:8px;
}
.card-soft .card-body{
    padding:1.22rem;
}
.card-soft .card-body > h2.h5,
.card-soft .card-body > .h5{
    color:#111c27;
    font-weight:820;
    margin-bottom:1rem;
}
.metric-card{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#fff 0,#f4f7f9 100%);
    border:1px solid rgba(214,225,233,.95);
    border-radius:8px;
    padding:1rem;
    height:100%;
    box-shadow:0 14px 26px rgba(9,20,31,.08);
}
.metric-card::before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:3px;
    background:linear-gradient(90deg,var(--app-primary),var(--app-accent));
}
.metric-label{
    color:var(--app-muted);
    font-size:.82rem;
    font-weight:700;
    margin-bottom:.35rem;
    text-transform:uppercase;
}
.metric-value{
    color:var(--app-text);
    font-size:1.7rem;
    font-weight:850;
}
.btn{
    border-radius:8px;
    font-weight:700;
}
.btn-primary{
    --bs-btn-bg:var(--app-primary);
    --bs-btn-border-color:var(--app-primary);
    --bs-btn-hover-bg:#119182;
    --bs-btn-hover-border-color:#119182;
    --bs-btn-active-bg:var(--app-primary-strong);
    --bs-btn-active-border-color:var(--app-primary-strong);
    box-shadow:0 10px 24px rgba(15,118,110,.22);
}
.btn-outline-primary{
    --bs-btn-color:var(--app-primary);
    --bs-btn-border-color:rgba(15,118,110,.45);
    --bs-btn-hover-bg:var(--app-primary);
    --bs-btn-hover-border-color:var(--app-primary);
}
.btn-outline-secondary{
    --bs-btn-color:#455462;
    --bs-btn-border-color:#b9c5ce;
    --bs-btn-hover-bg:#253341;
    --bs-btn-hover-border-color:#253341;
}
.btn-outline-success{
    --bs-btn-color:#0f766e;
    --bs-btn-border-color:#64aaa0;
    --bs-btn-hover-bg:#0f766e;
    --bs-btn-hover-border-color:#0f766e;
}
.form-label{
    color:#344250;
    font-size:.86rem;
    font-weight:760;
}
.form-control,
.form-select{
    border-color:#cdd8e0;
    border-radius:8px;
    min-height:2.72rem;
    color:#17212b;
}
.form-control:focus,
.form-select:focus{
    border-color:var(--app-primary);
    box-shadow:0 0 0 .22rem rgba(15,118,110,.16);
}
.form-check-input:checked{
    background-color:var(--app-primary);
    border-color:var(--app-primary);
}
.table-responsive{
    border-radius:8px;
}
.table{
    --bs-table-striped-bg:#f6f9fb;
    --bs-table-hover-bg:#eef7f5;
    border-color:var(--app-line);
    margin-bottom:0;
}
.table thead th{
    color:#344555;
    background:#eef3f6;
    border-bottom-color:#cdd8e0;
    font-size:.78rem;
    font-weight:850;
    text-transform:uppercase;
}
.table tbody td{
    color:#1b2834;
    border-color:#e2e9ee;
}
.table tbody tr:hover td{
    background:#f0faf8;
}
.badge{
    border-radius:999px;
    padding:.42rem .62rem;
    font-weight:800;
}
.badge.text-bg-primary{
    background:#0f766e!important;
    color:#fff!important;
}
.badge.text-bg-success{
    background:#16895d!important;
    color:#fff!important;
}
.badge.text-bg-warning{
    background:#f6d06f!important;
    color:#3b2a07!important;
}
.badge.text-bg-secondary{
    background:#687586!important;
    color:#fff!important;
}
.badge.text-bg-dark{
    background:#17212b!important;
    color:#fff!important;
}
.badge.text-bg-info{
    background:#d7f3f0!important;
    color:#0b5d56!important;
}
.badge.text-bg-danger{
    background:#c43b2f!important;
    color:#fff!important;
}
.badge.text-bg-light{
    background:#f5f8fa!important;
    color:#243342!important;
}
.small-list{
    display:flex;
    flex-direction:column;
    gap:.9rem;
}
.small-list-item{
    padding-bottom:.9rem;
    border-bottom:1px solid #e4ebf0;
}
.small-list-item:last-child{
    border-bottom:none;
    padding-bottom:0;
}
.guest-member-row{
    padding:.85rem;
    border:1px solid #dce7ee;
    border-radius:8px;
    background:#f8fbfc;
}
.match-entry-list{
    gap:1rem;
}
.match-entry-card{
    background:#f7fafb;
    border:1px solid #dce7ee;
    border-radius:8px;
    padding:1rem;
}
.match-entry-card:last-child{
    padding-bottom:1rem;
}
.match-entry-form{
    display:grid;
    grid-template-columns:minmax(11rem,1.25fr) minmax(18rem,2fr) auto;
    gap:.85rem;
    align-items:end;
}
.match-entry-meta{
    min-width:0;
}
.match-entry-status{
    margin-top:.35rem;
}
.match-score-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(5.4rem,1fr));
    gap:.65rem;
}
.score-field{
    min-width:0;
}
.score-field .form-label{
    display:flex;
    flex-direction:column;
    gap:.05rem;
    min-height:2.25rem;
    margin-bottom:.32rem;
    line-height:1.08;
}
.score-field .form-label span:last-child{
    color:var(--app-muted);
    font-size:.78rem;
    font-weight:720;
}
.match-score-input{
    min-height:3rem;
    font-size:1.18rem;
    font-weight:760;
    text-align:center;
}
.match-entry-actions{
    display:flex;
    justify-content:flex-end;
}
.match-save-button{
    min-height:3rem;
    padding-left:1rem;
    padding-right:1rem;
}
.notification-unread{
    border-left:4px solid var(--app-primary);
    padding-left:.75rem;
}
.bowler-select-search{
    background:#fff;
}
.alert{
    border-radius:8px;
    border-width:1px;
    box-shadow:0 12px 26px rgba(9,20,31,.08);
}
.text-secondary{
    color:var(--app-muted)!important;
}
.border,
.rounded-3{
    border-color:var(--app-line)!important;
    border-radius:8px!important;
}
.table > :not(caption) > * > *{
    vertical-align:middle;
}
code.small{
    white-space:pre-wrap;
    word-break:break-word;
    color:#3f4b57;
}
.home-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);
    gap:1.4rem;
    align-items:stretch;
    min-height:330px;
    margin-bottom:1.55rem;
    padding:1.4rem;
    border:1px solid rgba(255,255,255,.12);
    border-radius:8px;
    color:#fff;
    background:
        linear-gradient(135deg,rgba(12,20,30,.98),rgba(13,43,42,.96) 55%,rgba(66,48,20,.95)),
        repeating-linear-gradient(110deg,rgba(255,255,255,.06) 0,rgba(255,255,255,.06) 1px,transparent 1px,transparent 28px);
    box-shadow:var(--app-shadow-strong);
}
.home-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,rgba(255,255,255,.09) 0 1px,transparent 1px 18%),
        linear-gradient(180deg,transparent 0,rgba(255,255,255,.08) 100%);
    opacity:.45;
    pointer-events:none;
}
.home-hero-main,
.home-scoreboard{
    position:relative;
    z-index:1;
}
.home-hero-main{
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    min-height:100%;
    padding:1.1rem;
}
.hero-kicker,
.section-kicker,
.scoreboard-label{
    color:#f4c86c;
    font-size:.76rem;
    font-weight:850;
    text-transform:uppercase;
}
.home-hero h1{
    max-width:850px;
    margin:.5rem 0 .75rem;
    color:#fff;
    font-size:4rem;
    line-height:1.02;
    font-weight:900;
}
.home-hero p{
    max-width:720px;
    margin:0;
    color:#ccdae5;
    font-size:1.08rem;
}
.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    margin-top:1.25rem;
}
.hero-actions .btn{
    padding:.72rem 1rem;
}
.btn-hero-secondary{
    color:#fff;
    border:1px solid rgba(255,255,255,.28);
    background:rgba(255,255,255,.08);
}
.btn-hero-secondary:hover,
.btn-hero-secondary:focus{
    color:#fff;
    border-color:rgba(255,255,255,.45);
    background:rgba(255,255,255,.16);
}
.home-scoreboard{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:100%;
    padding:1.15rem;
    border:1px solid rgba(255,255,255,.14);
    border-radius:8px;
    background:rgba(7,13,20,.58);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.scoreboard-title{
    margin-top:.45rem;
    color:#fff;
    font-size:1.22rem;
    font-weight:850;
}
.scoreboard-subtitle{
    color:#acbbc8;
    font-size:.9rem;
}
.scoreboard-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.65rem;
    margin-top:1.1rem;
}
.scoreboard-metric{
    min-width:0;
    padding:.85rem;
    border-radius:8px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.1);
}
.scoreboard-metric strong{
    display:block;
    color:#fff;
    font-size:1.35rem;
    line-height:1.1;
}
.scoreboard-metric span{
    display:block;
    margin-top:.3rem;
    color:#aab8c6;
    font-size:.76rem;
    font-weight:750;
    text-transform:uppercase;
}
.home-card .card-body{
    padding:1.15rem;
}
.section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1rem;
}
.section-head h2{
    margin:0;
    color:#111c27;
    font-size:1.12rem;
    font-weight:850;
}
.home-date{
    display:inline-flex;
    min-width:6.6rem;
    align-items:center;
    justify-content:center;
    padding:.42rem .5rem;
    border-radius:8px;
    background:#eef6f4;
    color:#0b5d56;
    font-weight:800;
}
.home-tournament-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.9rem;
}
.tournament-card{
    display:flex;
    flex-direction:column;
    min-height:174px;
    padding:1rem;
    border:1px solid #dbe5ec;
    border-radius:8px;
    background:
        linear-gradient(180deg,#ffffff,#f7fafb);
    box-shadow:0 10px 24px rgba(9,20,31,.07);
}
.tournament-card-top{
    display:flex;
    justify-content:space-between;
    gap:.8rem;
}
.tournament-card-title{
    color:#111c27;
    font-size:1.02rem;
    font-weight:850;
}
.tournament-card-meta{
    margin-top:.8rem;
    color:#596977;
}
.tournament-card .btn{
    align-self:flex-start;
    margin-top:auto;
}
.tournament-card-large{
    min-height:230px;
}
.document-callout{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.85rem;
    padding:.8rem .9rem;
    border:1px solid #d8e5ef;
    border-radius:8px;
    background:#f7fbfd;
}
.legacy-regulation{
    padding:.75rem .9rem;
    border:1px solid #e1e8ee;
    border-radius:8px;
    background:#fff;
}
.legacy-regulation summary{
    cursor:pointer;
    font-weight:750;
}
.document-viewer{
    display:flex;
    flex-direction:column;
    gap:1rem;
    min-height:60vh;
}
.document-meta{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    color:#596977;
    font-size:.88rem;
}
.document-meta span{
    padding:.25rem .55rem;
    border:1px solid #d8e5ef;
    border-radius:999px;
    background:#fff;
}
.document-frame{
    width:100%;
    min-height:72vh;
    border:1px solid #d8e5ef;
    border-radius:8px;
    background:#fff;
}
.document-image-wrap,
.document-file-fallback{
    padding:1rem;
    border:1px solid #d8e5ef;
    border-radius:8px;
    background:#fff;
}
.document-image{
    display:block;
    max-width:100%;
    height:auto;
    margin:0 auto;
    border-radius:6px;
}
.home-side-card{
    background:linear-gradient(180deg,#fff,#f7fafb);
}
.step-list{
    display:flex;
    flex-direction:column;
    gap:.85rem;
}
.step-item{
    display:grid;
    grid-template-columns:2rem minmax(0,1fr);
    gap:.75rem;
    align-items:start;
}
.step-number{
    display:inline-grid;
    place-items:center;
    width:2rem;
    height:2rem;
    border-radius:8px;
    color:#fff;
    background:#17212b;
    font-weight:850;
}
.step-title{
    color:#17212b;
    font-weight:800;
}
.step-text{
    color:var(--app-muted);
    font-size:.9rem;
}
.about-panel{
    border-top:3px solid var(--app-primary);
}
@media (min-width: 992px){
    .app-main{
        padding-top:1.8rem;
    }
    .home-hero{
        grid-template-columns:minmax(0,1fr) 430px;
        gap:1.8rem;
        min-height:390px;
        padding:1.8rem;
    }
    .home-hero-main{
        padding:1.3rem;
    }
    .home-hero h1{
        max-width:980px;
        font-size:3.55rem;
    }
    .home-scoreboard{
        padding:1.25rem;
    }
    .scoreboard-grid{
        grid-template-columns:1fr;
        gap:.8rem;
    }
    .scoreboard-metric{
        display:flex;
        align-items:flex-end;
        justify-content:space-between;
        gap:1rem;
        min-height:72px;
    }
    .scoreboard-metric span{
        max-width:9rem;
        text-align:right;
    }
    .home-card .card-body{
        padding:1.35rem;
    }
    .home-tournament-grid{
        grid-template-columns:repeat(2,minmax(260px,1fr));
    }
}
@media (max-width: 991.98px){
    .home-hero h1{
        font-size:3rem;
    }
    .home-hero{
        grid-template-columns:1fr;
    }
    .navbar-collapse{
        padding-top:.7rem;
    }
    .navbar-nav{
        gap:.2rem;
    }
    .match-entry-form{
        grid-template-columns:1fr;
        align-items:stretch;
    }
    .match-entry-meta{
        display:flex;
        justify-content:space-between;
        gap:.75rem;
        align-items:flex-start;
    }
    .match-entry-status{
        margin-top:0;
        flex:0 0 auto;
    }
    .match-entry-actions{
        justify-content:stretch;
    }
    .match-save-button{
        width:100%;
    }
}
@media (max-width: 767.98px){
    body.app-body{
        font-size:14px;
        background:
            linear-gradient(180deg,rgba(11,17,24,.98) 0,rgba(15,23,32,.98) 520px,#edf2f6 521px,#edf2f6 100%);
    }
    .app-container{
        padding-left:.85rem;
        padding-right:.85rem;
    }
    .app-main{
        padding-top:1rem;
    }
    .app-page-title{
        padding:1rem 0 .85rem;
    }
    .home-hero{
        padding:.75rem;
        min-height:0;
    }
    .home-hero-main{
        padding:.75rem;
    }
    .home-hero h1{
        font-size:2.05rem;
    }
    .home-scoreboard{
        padding:.9rem;
    }
    .scoreboard-grid,
    .home-tournament-grid{
        grid-template-columns:1fr;
    }
    .document-callout{
        align-items:stretch;
        flex-direction:column;
    }
    .document-callout .btn{
        width:100%;
    }
    .document-frame{
        min-height:68vh;
    }
    .metric-value{
        font-size:1.32rem;
    }
    .card-soft .card-body{
        padding:1rem;
    }
    .section-head{
        flex-direction:column;
        align-items:stretch;
    }
    .match-entry-card{
        padding:.85rem;
    }
    .match-score-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:.7rem;
    }
    .match-score-input{
        min-height:3.35rem;
        font-size:1.32rem;
    }
    .match-save-button{
        min-height:3.35rem;
        font-size:1rem;
        font-weight:760;
    }
    .score-field .form-label{
        min-height:2rem;
        font-size:.82rem;
    }
}
