:root{
    --bg:#d9e4dc;
    --bg-soft:#cddbd0;
    --panel:#ffffff;
    --panel2:#f4f8f5;
    --panel3:#e5eee7;
    --line:#c7d3c9;
    --line-strong:#aebdaf;
    --text:#1f2937;
    --heading:#111827;
    --muted:#667085;
    --muted-light:#8a94a3;
    --accent:#1e6b43;
    --accent-dark:#145233;
    --accent-soft:#d3e4d6;
    --red:#dc3545;
    --red-dark:#a61f2b;
    --red-soft:#fdebec;
    --green:#1b7a49;
    --green-soft:#cfe2d3;
    --yellow:#c98200;
    --yellow-soft:#fff5dc;
    --blue:#2575d8;
    --blue-soft:#eaf3ff;
    --purple:#7c4dce;
    --purple-soft:#f1ebff;
    --shadow-sm:0 2px 8px rgba(15,23,42,.05);
    --shadow:0 8px 24px rgba(15,23,42,.08);
    --shadow-lg:0 16px 36px rgba(15,23,42,.12);
    --radius-sm:9px;
    --radius:14px;
    --radius-lg:18px;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    min-height:100vh;
    background:
        radial-gradient(circle at 14% 12%,rgba(255,255,255,.14),transparent 26%),
        radial-gradient(circle at 86% 8%,rgba(255,255,255,.08),transparent 28%),
        radial-gradient(circle at 75% 88%,rgba(20,82,51,.10),transparent 34%),
        repeating-linear-gradient(
            45deg,
            rgba(255,255,255,.018) 0,
            rgba(255,255,255,.018) 2px,
            rgba(20,82,51,.018) 2px,
            rgba(20,82,51,.018) 4px
        ),
        linear-gradient(180deg,#dce7df 0%,#cfddd2 52%,#c4d4c8 100%);
    color:var(--text);
    font:15px/1.55 Inter,"Segoe UI",Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    position:relative;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:-1;
    opacity:.22;
    background-image:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,.025) 0,
            rgba(255,255,255,.025) 1px,
            transparent 1px,
            transparent 3px
        ),
        repeating-linear-gradient(
            90deg,
            rgba(20,82,51,.018) 0,
            rgba(20,82,51,.018) 1px,
            transparent 1px,
            transparent 4px
        );
}

button,
input,
select,
textarea{
    font:inherit;
}

a{
    color:inherit;
    text-decoration:none;
}

img,
svg{
    max-width:100%;
}

::selection{
    background:rgba(22,164,90,.2);
    color:var(--heading);
}

.topbar{
    min-height:68px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:0 max(20px,calc((100% - 1240px)/2));
    background:rgba(255,255,255,.94);
    border-bottom:1px solid rgba(199,208,219,.8);
    box-shadow:0 2px 14px rgba(15,23,42,.05);
    position:sticky;
    top:0;
    z-index:100;
    backdrop-filter:blur(14px);
}

.brand{
    display:flex;
    align-items:center;
    gap:9px;
    color:var(--heading);
    font-weight:850;
    font-size:20px;
    letter-spacing:-.02em;
    white-space:nowrap;
}

.brand:first-letter{
    color:var(--accent);
}

nav{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}

nav a{
    padding:9px 13px;
    border-radius:10px;
    color:var(--muted);
    font-weight:650;
    transition:background-color .18s ease,color .18s ease,transform .18s ease;
}

nav a:hover,
nav a.active{
    background:var(--accent-soft);
    color:var(--accent-dark);
}

nav a:hover{
    transform:translateY(-1px);
}

.container{
    width:min(1240px,100%);
    margin:0 auto;
    padding:30px 20px 64px;
}

.hero{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    margin-bottom:24px;
    padding:24px 26px;
    background:linear-gradient(135deg,#ffffff 0%,#f3f8f4 100%);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow);
}

.heroedge-brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    color:#fff;
}

.heroedge-brand:hover{
    color:#fff;
}

.brand-icon{
    width:38px;
    height:38px;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#ff9d45,#d86a18);
    color:#1a1208;
    font-size:20px;
    font-weight:700;
    box-shadow:0 6px 18px rgba(242,138,54,.35);
}

.brand-text{
    display:flex;
    flex-direction:column;
    line-height:1;
}

.brand-title{
    font-size:20px;
    font-weight:800;
    letter-spacing:-0.02em;
}

.brand-subtitle{
    margin-top:3px;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.16em;
    color:rgba(255,255,255,.60);
}

.hero h1{
    margin:0 0 6px;
    color:var(--heading);
    font-size:clamp(28px,4vw,38px);
    line-height:1.15;
    letter-spacing:-.035em;
}

.hero p{
    margin:0;
    color:var(--muted);
    font-size:16px;
}

.hero-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}

.button{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid var(--line-strong);
    background:#ffffff;
    color:var(--text);
    padding:10px 16px;
    border-radius:10px;
    cursor:pointer;
    font-weight:750;
    box-shadow:var(--shadow-sm);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease;
}

.button:hover{
    transform:translateY(-1px);
    border-color:#9eabb9;
    box-shadow:0 7px 18px rgba(15,23,42,.09);
}

.button:active{
    transform:translateY(0);
}

.button.primary{
    background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);
    border-color:var(--accent-dark);
    color:#ffffff;
    box-shadow:0 8px 18px rgba(22,164,90,.22);
}

.button.primary:hover{
    box-shadow:0 10px 24px rgba(22,164,90,.3);
}

.button.danger{
    background:var(--red);
    border-color:var(--red-dark);
    color:#ffffff;
}

.button:disabled{
    opacity:.55;
    cursor:not-allowed;
    transform:none;
    box-shadow:none;
}

.stats{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:14px;
    margin:0 0 24px;
}

.stat{
    min-height:112px;
    background:linear-gradient(145deg,#ffffff,#f5f8f5);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:18px 19px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    box-shadow:var(--shadow-sm);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.stat:hover{
    transform:translateY(-2px);
    border-color:#c5d0dc;
    box-shadow:var(--shadow);
}

.stat strong{
    color:var(--heading);
    font-size:28px;
    line-height:1.15;
    letter-spacing:-.025em;
}

.stat span,
.stat small,
.muted{
    color:var(--muted);
}

.stat span{
    margin-top:4px;
    font-weight:650;
}

.filters{
    display:grid;
    grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr)) auto;
    gap:11px;
    margin-bottom:18px;
    padding:16px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
}

.filters input,
.filters select,
select,
input,
textarea{
    width:100%;
    min-height:42px;
    border:1px solid var(--line-strong);
    background:#ffffff;
    color:var(--text);
    border-radius:10px;
    padding:10px 13px;
    outline:none;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
    transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

textarea{
    min-height:120px;
    line-height:1.55;
}

input::placeholder,
textarea::placeholder{
    color:#98a2b3;
}

.filters input:hover,
.filters select:hover,
select:hover,
input:hover,
textarea:hover{
    border-color:#aeb9c6;
}

.filters input:focus,
.filters select:focus,
select:focus,
input:focus,
textarea:focus{
    border-color:var(--accent);
    background:#ffffff;
    box-shadow:0 0 0 4px rgba(22,164,90,.12);
}

.hand-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.hand-card{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:22px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:16px 18px;
    box-shadow:var(--shadow-sm);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.hand-card:hover{
    transform:translateY(-2px);
    border-color:#b8c4d1;
    box-shadow:var(--shadow);
}

.hand-main{
    display:flex;
    align-items:center;
    gap:16px;
    min-width:0;
    flex:1;
}

.hand-main p{
    margin:5px 0 0;
    color:var(--muted);
}

.cards{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:4px;
    width:fit-content;
    min-width:unset;
    flex:none;
}

.cards.large{
    font-size:23px;
    padding:11px 13px;
}

.hand-side{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:13px;
    flex-wrap:wrap;
}

.result{
    font-weight:850;
    white-space:nowrap;
    font-size:16px;
}

.result.win{
    color:var(--green);
}

.result.loss{
    color:var(--red);
}

.grade{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border-radius:50%;
    background:linear-gradient(145deg,var(--accent),var(--accent-dark));
    color:#ffffff;
    border:3px solid rgba(255,255,255,.9);
    box-shadow:0 5px 14px rgba(22,164,90,.23);
    font-size:18px;
    font-weight:900;
}

.status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:5px 10px;
    border-radius:999px;
    background:#d7e0d9;
    border:1px solid #d9e0e8;
    color:#556070;
    font-size:12px;
    font-weight:750;
    white-space:nowrap;
}

.status.complete,
.status.completed,
.status.success{
    background:var(--green-soft);
    border-color:#bce4cd;
    color:#14703f;
}

.status.pending{
    background:var(--yellow-soft);
    border-color:#f0d89d;
    color:#8f5c00;
}

.status.failed,
.status.error{
    background:var(--red-soft);
    border-color:#f1bcc1;
    color:#a72834;
}

.panel{
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:22px;
    margin-bottom:20px;
    box-shadow:var(--shadow-sm);
}

.panel h1,
.panel h2,
.panel h3,
.panel h4{
    color:var(--heading);
}

.panel h2,
.panel h3{
    margin-top:0;
    letter-spacing:-.02em;
}

.panel label{
    display:block;
    color:var(--heading);
    font-weight:750;
    margin-bottom:8px;
}

.panel textarea{
    margin-bottom:12px;
    resize:vertical;
}

.notice{
    padding:13px 15px;
    border-radius:10px;
    margin-bottom:16px;
    border:1px solid transparent;
    box-shadow:var(--shadow-sm);
}

.notice.success{
    background:var(--green-soft);
    border-color:#b8e1c9;
    color:#17683c;
}

.notice.error{
    background:var(--red-soft);
    border-color:#efb7bd;
    color:#982834;
}

.notice.warning{
    background:var(--yellow-soft);
    border-color:#efd495;
    color:#825300;
}

.analysis-grid{
    display:grid;
    grid-template-columns:200px minmax(0,1fr);
    gap:18px;
    margin-bottom:20px;
}

.grade-panel{
    min-height:220px;
    background:linear-gradient(145deg,#21b867,var(--accent-dark));
    color:#ffffff;
    border-radius:var(--radius);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    padding:24px;
    box-shadow:0 12px 26px rgba(22,164,90,.23);
}

.grade-panel strong{
    font-size:66px;
    line-height:1;
    letter-spacing:-.04em;
}

.grade-panel span,
.grade-panel small{
    opacity:.9;
}

.analysis-summary{
    margin:0;
}

.analysis-summary dl{
    display:grid;
    grid-template-columns:160px minmax(0,1fr);
    gap:10px 18px;
    margin:0;
}

.analysis-summary dt{
    color:var(--muted);
    font-weight:700;
}

.analysis-summary dd{
    margin:0;
    color:var(--text);
}

.street-feedback{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.street-feedback .panel{
    margin:0 0 4px;
}

.leak-list{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.leak{
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    gap:14px;
    border-top:1px solid var(--line);
    padding-top:14px;
}

.leak:first-child{
    border-top:0;
    padding-top:0;
}

.leak p{
    margin:5px 0 0;
}

.leak small{
    display:block;
    color:var(--muted);
}

.severity{
    text-align:center;
    height:min-content;
    border-radius:999px;
    padding:5px 9px;
    border:1px solid transparent;
    font-size:12px;
    font-weight:850;
}

.severity.major{
    background:var(--red-soft);
    border-color:#efb9bf;
    color:#a4202e;
}

.severity.moderate{
    background:var(--yellow-soft);
    border-color:#eed49a;
    color:#875600;
}

.severity.minor{
    background:var(--green-soft);
    border-color:#bce2cc;
    color:#176b3e;
}

.street{
    border-top:1px solid var(--line);
    padding:17px 0;
}

.street:first-of-type{
    border-top:0;
}

.street ol{
    margin-bottom:0;
}

.street li{
    padding:5px 3px;
}

.street li span{
    color:var(--muted);
}

.board{
    color:var(--heading);
    font-size:19px;
    font-weight:850;
}

.tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:15px;
}

.tags span{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    background:var(--blue-soft);
    border:1px solid #c9def9;
    color:#245d9f;
    border-radius:999px;
    padding:5px 10px;
    font-size:12px;
    font-weight:750;
}

details{
    border-radius:10px;
}

details summary{
    cursor:pointer;
    color:var(--accent-dark);
    font-weight:750;
}

pre{
    white-space:pre-wrap;
    background:#f7f9fc;
    color:#273244;
    border:1px solid var(--line);
    padding:16px;
    border-radius:10px;
    overflow:auto;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
}

.table-wrap{
    overflow:auto;
    border:1px solid var(--line);
    border-radius:12px;
    background:#ffffff;
}

table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
}

th,
td{
    text-align:left;
    padding:12px 13px;
    border-bottom:1px solid var(--line);
}

th{
    position:sticky;
    top:0;
    z-index:2;
    background:#edf3ee;
    color:#586474;
    font-size:12px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.045em;
}

tbody tr:nth-child(even){
    background:#f6f9f6;
}

tbody tr:hover{
    background:#dfece2;
}

tbody tr:last-child td{
    border-bottom:0;
}

td small{
    display:block;
    color:var(--muted);
}

.suggestions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.suggestions>div{
    background:linear-gradient(145deg,#ffffff,#f3f7f4);
    border:1px solid var(--line);
    border-radius:12px;
    padding:16px;
    box-shadow:var(--shadow-sm);
}

.suggestions p{
    color:var(--muted);
    margin:5px 0;
}

.pagination{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-top:20px;
}

.pagination a{
    min-width:36px;
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:7px 11px;
    background:#ffffff;
    color:var(--text);
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:var(--shadow-sm);
    font-weight:750;
    transition:transform .18s ease,border-color .18s ease,background-color .18s ease;
}

.pagination a:hover{
    transform:translateY(-1px);
    border-color:#aeb9c6;
}

.pagination a.active{
    background:var(--accent);
    border-color:var(--accent);
    color:#ffffff;
    box-shadow:0 6px 14px rgba(22,164,90,.22);
}

.empty{
    padding:38px 24px;
    text-align:center;
    color:var(--muted);
    background:#ffffff;
    border:1px dashed var(--line-strong);
    border-radius:var(--radius);
}

hr{
    border:0;
    border-top:1px solid var(--line);
    margin:20px 0;
}

::-webkit-scrollbar{
    width:11px;
    height:11px;
}

::-webkit-scrollbar-track{
    background:#d7e0d9;
}

::-webkit-scrollbar-thumb{
    background:#9eaea1;
    border:3px solid #d7e0d9;
    border-radius:999px;
}

::-webkit-scrollbar-thumb:hover{
    background:#7f9182;
}

@media(max-width:900px){
    .filters{
        grid-template-columns:1fr 1fr;
    }

    .filters>*:first-child{
        grid-column:1/-1;
    }

    .analysis-grid{
        grid-template-columns:170px minmax(0,1fr);
    }
}

@media(max-width:760px){
    .topbar{
        min-height:auto;
        align-items:flex-start;
        flex-direction:column;
        padding:14px 18px;
    }

    .topbar nav{
        width:100%;
        gap:4px;
        overflow-x:auto;
        flex-wrap:nowrap;
        padding-bottom:2px;
    }

    .topbar nav a{
        flex:0 0 auto;
        padding:8px 10px;
    }

    .container{
        padding:20px 14px 50px;
    }

    .hero{
        align-items:flex-start;
        flex-direction:column;
        padding:20px;
    }

    .hero-actions{
        width:100%;
        justify-content:flex-start;
    }

    .filters,
    .analysis-grid,
    .street-feedback,
    .suggestions{
        grid-template-columns:1fr;
    }

    .filters>*:first-child{
        grid-column:auto;
    }

    .hand-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .hand-main{
        width:100%;
        align-items:flex-start;
    }

    .hand-side{
        width:100%;
        justify-content:flex-start;
    }

    .analysis-summary dl{
        grid-template-columns:1fr;
        gap:4px;
    }

    .analysis-summary dd{
        margin-bottom:10px;
    }

    .leak{
        grid-template-columns:1fr;
    }
}

@media(max-width:480px){
    body{
        font-size:14px;
    }

    .hero h1{
        font-size:28px;
    }

    .stats{
        grid-template-columns:1fr 1fr;
        gap:10px;
    }

    .stat{
        min-height:96px;
        padding:15px;
    }

    .stat strong{
        font-size:24px;
    }

    .button{
        width:100%;
    }

    .hero-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .cards.large{
        font-size:20px;
    }
}

@media print{
    body{
        background:#ffffff !important;
        color:#111827 !important;
    }

    .topbar,
    .hero-actions,
    .filters,
    .pagination,
    .button{
        display:none !important;
    }

    .container{
        width:100%;
        max-width:none;
        padding:0;
    }

    .hero,
    .panel,
    .hand-card,
    .stat,
    .suggestions>div{
        box-shadow:none !important;
        break-inside:avoid;
    }

    .topbar,
    th{
        position:static;
    }
}

/* =========================================================
   HeroEdge — Emerald Analytics Glass Theme
   Adapted from the supplied reference stylesheet.
   ========================================================= */
:root{
    --bg:#050505;
    --bg-soft:#111315;
    --panel:#1a1d1f;
    --panel2:#22262a;
    --panel3:#15191c;
    --line:#2a2f35;
    --line-strong:#3b424a;
    --text:#f2f3f5;
    --heading:#ffffff;
    --muted:#a7a9ac;
    --muted-light:#707277;
    --accent:#22c55e;
    --accent-dark:#15803d;
    --accent-soft:rgba(34,197,94,.14);
    --red:#ef4444;
    --red-dark:#dc2626;
    --red-soft:rgba(239,68,68,.14);
    --green:#22c55e;
    --green-soft:rgba(34,197,94,.14);
    --yellow:#f59e0b;
    --yellow-soft:rgba(245,158,11,.14);
    --blue:#3b82f6;
    --blue-soft:rgba(59,130,246,.14);
    --purple:#a855f7;
    --purple-soft:rgba(168,85,247,.14);
    --shadow-sm:0 2px 10px rgba(0,0,0,.22);
    --shadow:0 12px 30px rgba(0,0,0,.28);
    --shadow-lg:0 20px 50px rgba(0,0,0,.38);
    --radius-sm:12px;
    --radius:18px;
    --radius-lg:24px;
    color-scheme:dark;
}

html{background:#050505;color:var(--text)}
body{
    background:
        radial-gradient(circle at 12% 8%,rgba(34,197,94,.10),transparent 28%),
        radial-gradient(circle at 88% 4%,rgba(59,130,246,.055),transparent 24%),
        radial-gradient(circle at 70% 90%,rgba(34,197,94,.045),transparent 34%),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.018'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(180deg,#0a0b0c 0%,#111315 55%,#090a0b 100%);
    color:var(--text);
}
body::before{opacity:.12;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 4px)}
::selection{background:rgba(34,197,94,.30);color:#fff}

.topbar{
    background:rgba(17,19,21,.92);
    border-bottom:1px solid rgba(42,47,53,.75);
    box-shadow:0 8px 24px rgba(0,0,0,.24);
    backdrop-filter:blur(18px);
}
.brand{color:#fff}
.brand:first-letter{color:var(--accent)}
nav a{color:var(--muted)}
nav a:hover,nav a.active{background:var(--accent-soft);color:#86efac}

.container{width:min(1320px,100%)}
.hero,.panel,.stat,.filters,.date-filter-panel,.hand-history-toolbar,.live-update-bar{
    background:linear-gradient(135deg,rgba(26,29,31,.96),rgba(20,22,25,.92));
    border-color:rgba(42,47,53,.8);
    box-shadow:var(--shadow);
    backdrop-filter:blur(10px);
}
.hero{position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:auto -70px -90px auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(34,197,94,.16),transparent 68%);pointer-events:none}
.hero h1,.panel h1,.panel h2,.panel h3,.panel h4{color:var(--heading)}
.hero p,.muted,.stat span,.stat small{color:var(--muted)}

.button{
    border:1px solid var(--line-strong);
    background:linear-gradient(180deg,#252a2f,#1b1f23);
    color:#f2f3f5;
    border-radius:14px;
    box-shadow:0 5px 14px rgba(0,0,0,.22);
}
.button:hover{border-color:#59616b;background:linear-gradient(180deg,#2c3238,#20252a);box-shadow:0 10px 24px rgba(0,0,0,.3)}
.button.primary{background:linear-gradient(180deg,#2dd46f,#15803d);border-color:#4ade80;color:#fff;box-shadow:0 8px 22px rgba(34,197,94,.28)}
.button.primary:hover{background:linear-gradient(180deg,#4ade80,#22c55e);box-shadow:0 12px 28px rgba(34,197,94,.38)}

.stats{gap:16px}
.stat{min-height:116px;background:linear-gradient(145deg,rgba(31,35,39,.98),rgba(22,25,28,.96));border-color:rgba(42,47,53,.85)}
.stat:hover{border-color:rgba(34,197,94,.42);box-shadow:0 16px 34px rgba(0,0,0,.34)}
.stat strong{color:#fff}

.filters{grid-template-columns:minmax(210px,1fr) 125px 140px 155px 175px 185px auto auto;gap:10px;padding:16px}
.filters input,.filters select,select,input,textarea,.date-field input[type="date"]{
    color:#f2f3f5;
    background:#22262a;
    border:1px solid #3a4149;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.35);
    color-scheme:dark;
}
input::placeholder,textarea::placeholder{color:#707782}
.filters input:hover,.filters select:hover,select:hover,input:hover,textarea:hover{border-color:#59616b}
.filters input:focus,.filters select:focus,select:focus,input:focus,textarea:focus,.date-field input[type="date"]:focus{border-color:var(--accent);background:#24292e;box-shadow:0 0 0 4px rgba(34,197,94,.15)}
option{background:#1a1d1f;color:#f2f3f5}

.hand-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px 16px;border-radius:16px}
.hand-count-label{color:var(--muted);font-size:14px}.hand-count-label strong{color:#fff}

.hand-list{display:flex;flex-direction:column;gap:14px}
.hand-card{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:22px;
    align-items:center;
    padding:18px 20px;
    border:1px solid rgba(42,47,53,.95);
    border-left-width:5px;
    border-radius:22px;
    background:linear-gradient(145deg,rgba(29,33,37,.97),rgba(20,23,26,.97));
    color:var(--text);
    overflow:visible;
    cursor:pointer;
    box-shadow:0 8px 22px rgba(0,0,0,.24);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.hand-card:nth-child(even){background:linear-gradient(145deg,rgba(27,31,35,.98),rgba(18,21,24,.98))}
.hand-card:hover{z-index:25;transform:translateY(-3px) scale(1.003);border-color:rgba(34,197,94,.52);box-shadow:0 18px 42px rgba(0,0,0,.42);background:linear-gradient(145deg,rgba(34,39,44,.98),rgba(24,27,31,.98))}
.hand-card.result-win{border-left-color:rgba(34,197,94,.8)}
.hand-card.result-loss{border-left-color:rgba(239,68,68,.82)}
.hand-card.result-even{border-left-color:#59616b}
.hand-card.is-expanded{border-color:rgba(34,197,94,.7);box-shadow:0 20px 46px rgba(0,0,0,.45),0 0 0 1px rgba(34,197,94,.12)}
.hand-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;min-width:0}
.hand-card-info{min-width:0}.hand-card-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.hand-number{color:#fff;font-size:16px;font-weight:800}
.hand-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:8px;color:var(--muted);font-size:13px;font-weight:600}.hand-meta-separator{opacity:.55}
.hand-summary{margin:7px 0 0;color:#c3c6ca;font-size:14px;line-height:1.5}

.cards{min-width:240px;padding:12px 14px;background:linear-gradient(145deg,#20252a,#181b1f);border:1px solid #3a4149;border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 8px 18px rgba(0,0,0,.28)}
.simple-card-group{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.simple-card{display:inline-flex;align-items:center;justify-content:center;gap:3px;box-sizing:border-box;background:linear-gradient(180deg,#fff,#eef0f3);border:2px solid #d5d8dd;border-radius:11px;box-shadow:0 6px 14px rgba(0,0,0,.34);font-family:Arial,Helvetica,sans-serif;font-weight:900;line-height:1;user-select:none}
.simple-card-normal{width:56px;height:70px}.simple-card-small{width:40px;height:50px;gap:2px;border-width:1px;border-radius:8px}.simple-card-rank{font-size:30px;line-height:1;letter-spacing:-1px}.simple-card-suit{font-family:"Segoe UI Symbol","Arial Unicode MS",Arial,sans-serif;font-size:32px;line-height:1}.simple-card-small .simple-card-rank{font-size:21px}.simple-card-small .simple-card-suit{font-size:23px}.simple-card-heart,.simple-card-diamond{color:#dc2626}.simple-card-spade,.simple-card-club{color:#111827}
.unknown-cards{display:inline-flex;align-items:center;justify-content:center;min-width:82px;height:54px;border:1px dashed #59616b;border-radius:10px;color:#9ca3af;font-size:20px;font-weight:900}
.hole-card-ev{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:9px;min-height:18px;font-size:11px;font-weight:900;letter-spacing:.025em;white-space:nowrap}.hole-card-ev-label{color:#7f8790;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.hole-card-ev.positive{color:#4ade80}.hole-card-ev.negative{color:#f87171}.hole-card-ev.neutral,.hole-card-ev.unavailable{color:#a7a9ac}

.poker-badge,.texture-badge,.status,.decision-badge,.instant-filter,.date-preset-button{backdrop-filter:blur(8px)}
.poker-badge{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:850;letter-spacing:.03em;line-height:1}
.position-badge{color:#7dd3fc;background:rgba(14,165,233,.12);border:1px solid rgba(56,189,248,.34)}
.relation-badge{color:#5eead4;background:rgba(20,184,166,.12);border:1px solid rgba(94,234,212,.32)}
.pot-type-badge{color:#c4b5fd;background:rgba(139,92,246,.13);border:1px solid rgba(196,181,253,.32)}
.stakes-badge{color:#fcd34d;background:rgba(245,158,11,.12);border:1px solid rgba(252,211,77,.30)}
.table-badge{max-width:180px;overflow:hidden;color:#cbd5e1;background:rgba(71,85,105,.20);border:1px solid rgba(148,163,184,.26);text-overflow:ellipsis;white-space:nowrap}

.hand-side{display:flex;align-items:stretch;flex-direction:column;gap:9px;min-width:115px}
.result{display:inline-flex;align-items:center;justify-content:center;min-width:98px;padding:8px 11px;border-radius:12px;font-size:15px;font-weight:950}
.result.win{color:#86efac;background:rgba(34,197,94,.13);border:1px solid rgba(74,222,128,.36)}
.result.loss{color:#fca5a5;background:rgba(239,68,68,.13);border:1px solid rgba(248,113,113,.36)}
.result.break-even{color:#cbd5e1;background:rgba(100,116,139,.18);border:1px solid rgba(148,163,184,.28)}
.grade{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:34px;padding:0 11px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#22c55e,#15803d);border:1px solid #4ade80;box-shadow:0 5px 14px rgba(34,197,94,.24);font-size:14px;font-weight:950}
.analysis-score{color:#a7a9ac;font-size:11px;font-weight:700;text-align:center}
.status{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:850;text-transform:capitalize;border:1px solid transparent}
.status.pending{color:#fcd34d;background:rgba(245,158,11,.13);border-color:rgba(252,211,77,.34)}.status.processing{color:#7dd3fc;background:rgba(14,165,233,.13);border-color:rgba(125,211,252,.34)}.status.complete{color:#86efac;background:rgba(34,197,94,.13);border-color:rgba(134,239,172,.34)}.status.failed{color:#fca5a5;background:rgba(239,68,68,.13);border-color:rgba(252,165,165,.34)}.status.disabled{color:#cbd5e1;background:rgba(100,116,139,.16);border-color:rgba(148,163,184,.28)}

.board-streets,.texture-list,.decision-row,.hud-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:10px}.board-streets{gap:8px;margin-top:11px}.board-street{display:inline-flex;align-items:center;gap:5px}.board-street-label,.board-label{color:#8e969f;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.texture-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850;border:1px solid transparent}.texture-dry{color:#86efac;background:rgba(34,197,94,.12);border-color:rgba(134,239,172,.30)}.texture-medium{color:#fcd34d;background:rgba(245,158,11,.12);border-color:rgba(252,211,77,.30)}.texture-wet{color:#fca5a5;background:rgba(239,68,68,.12);border-color:rgba(252,165,165,.30)}
.street-timeline{display:grid;gap:6px;margin-top:12px}.timeline-street{display:grid;grid-template-columns:50px minmax(0,1fr);gap:8px;align-items:start}.timeline-label{color:#8e969f;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;padding-top:4px}.timeline-actions{display:flex;flex-wrap:wrap;gap:5px}.timeline-action{color:#d8dadd;background:#22262a;border:1px solid #363d45;border-radius:8px;padding:4px 7px;font-size:10px;font-weight:700}.timeline-arrow{color:#6f7780;font-size:10px;align-self:center}
.decision-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:9px;font-size:11px;font-weight:900;border:1px solid transparent}.decision-good{color:#86efac;background:rgba(34,197,94,.12);border-color:rgba(134,239,172,.3)}.decision-warn{color:#fcd34d;background:rgba(245,158,11,.12);border-color:rgba(252,211,77,.3)}.decision-bad{color:#fca5a5;background:rgba(239,68,68,.12);border-color:rgba(252,165,165,.3)}.decision-value{color:#7dd3fc;background:rgba(14,165,233,.12);border-color:rgba(125,211,252,.3)}.decision-bluff{color:#c4b5fd;background:rgba(139,92,246,.12);border-color:rgba(196,181,253,.3)}
.villain-hud{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:9px;color:#cbd5e1;background:rgba(51,65,85,.22);border:1px solid rgba(100,116,139,.35);font-size:10px;font-weight:800}.villain-hud strong{color:#fff;font-size:11px}
.hand-winner-profile{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:9px;padding:7px 10px;border-radius:10px;color:#d8b4fe;background:rgba(168,85,247,.10);border:1px solid rgba(216,180,254,.26);font-size:11px;font-weight:800}.hand-winner-profile .winner-label{color:#a78bba;font-size:9px;letter-spacing:.07em;text-transform:uppercase}.hand-winner-profile .winner-type{color:#d8b4fe}
.solver-icon{display:inline-flex;align-items:center;justify-content:center;min-width:27px;height:27px;padding:0 6px;border-radius:8px;color:#f4f4f5;background:#252a2f;border:1px solid #3a4149;font-size:13px}

.expand-button{appearance:none;border:1px solid #434b54;background:linear-gradient(180deg,#252a2f,#1c2024);color:#d8dadd;border-radius:11px;padding:8px 11px;font-size:11px;font-weight:850;cursor:pointer}.expand-button:hover{border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.12);color:#86efac}
.hand-expanded{display:none;grid-column:1/-1;margin:4px -4px -4px;padding:16px 18px;border-top:1px solid #343a41;background:rgba(10,12,14,.72);border-radius:0 0 17px 17px}.hand-card.is-expanded .hand-expanded{display:block}.expanded-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);gap:18px}.expanded-title{margin:0 0 8px;color:#4ade80;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.expanded-text{margin:0;max-height:250px;overflow:auto;white-space:pre-wrap;color:#d8dadd;background:#111315;border:1px solid #343a41;border-radius:11px;padding:12px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.expanded-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.hand-hover-preview{position:absolute;z-index:100;top:calc(100% + 8px);left:110px;right:115px;display:none;padding:14px 16px;border:1px solid rgba(34,197,94,.50);border-radius:14px;background:rgba(18,21,24,.98);box-shadow:0 22px 54px rgba(0,0,0,.52);pointer-events:none;backdrop-filter:blur(14px)}.hand-card:hover .hand-hover-preview{display:block}.hover-preview-title{display:block;margin-bottom:6px;color:#4ade80;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.hover-preview-text{color:#c5c7ca;font-size:12px;line-height:1.5}

.instant-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.instant-filter,.date-preset-button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 11px;border:1px solid #3a4149;border-radius:999px;color:#aeb3b8;background:rgba(34,38,42,.72);font-size:11px;font-weight:850;box-shadow:0 3px 9px rgba(0,0,0,.18)}.instant-filter:hover,.instant-filter.active,.date-preset-button:hover,.date-preset-button.active{color:#86efac;border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.13)}
.date-filter-panel{margin:-2px 0 18px;padding:15px;border-radius:17px}.date-preset-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.custom-date-range{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin-top:12px}.date-field{display:grid;gap:5px}.date-field label{color:#8e969f;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.live-update-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:10px 13px;border-radius:13px;color:#b7bcc1;font-size:11px;font-weight:750}.live-update-state{display:inline-flex;align-items:center;gap:8px}.live-update-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}.live-update-bar.checking .live-update-dot{background:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.12)}.live-update-bar.updated .live-update-dot{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.14)}.live-update-bar.error .live-update-dot{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.live-update-time{white-space:nowrap}

.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:24px}.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;padding:6px 10px;border-radius:10px}.pagination a{color:#d8dadd;background:#1a1d1f;border:1px solid #343a41}.pagination a:hover{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.5);color:#86efac}.pagination a.active{color:#fff;background:linear-gradient(180deg,#2dd46f,#15803d);border-color:#22c55e;box-shadow:0 6px 16px rgba(34,197,94,.26)}
.empty{padding:42px 24px;text-align:center;color:#a7a9ac;background:rgba(26,29,31,.88);border:1px dashed #464e57;border-radius:18px}

.panel pre,pre{background:#101214;color:#d8dadd;border-color:#343a41}.table-wrap{background:#16191c;border-color:#343a41}th{background:#20252a;color:#a7a9ac}td{border-color:#2e343a}tbody tr:nth-child(even){background:#181c20}tbody tr:hover{background:rgba(34,197,94,.08)}
.notice.success{background:rgba(34,197,94,.12);border-color:rgba(74,222,128,.32);color:#86efac}.notice.error{background:rgba(239,68,68,.12);border-color:rgba(248,113,113,.32);color:#fca5a5}.notice.warning{background:rgba(245,158,11,.12);border-color:rgba(252,211,77,.32);color:#fcd34d}

::-webkit-scrollbar-track{background:#111315}::-webkit-scrollbar-thumb{background:#363d45;border-color:#111315}::-webkit-scrollbar-thumb:hover{background:#4b545e}

@media(max-width:1100px){.filters{grid-template-columns:repeat(4,minmax(0,1fr))}.filters input{grid-column:span 2}}
@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.hand-hover-preview{left:20px;right:20px}}
@media(max-width:760px){.expanded-grid{grid-template-columns:1fr}.street-timeline{display:none}}
@media(max-width:680px){.hand-card{grid-template-columns:1fr}.hand-main{align-items:flex-start;grid-template-columns:1fr}.cards{min-width:0;width:fit-content}.hand-side{align-items:center;flex-direction:row;justify-content:flex-end;flex-wrap:wrap}.simple-card-normal{width:48px;height:61px}.simple-card-rank{font-size:26px}.simple-card-suit{font-size:28px}.hand-hover-preview{display:none!important}}
@media(max-width:620px){.live-update-bar{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.filters{grid-template-columns:1fr}.filters input{grid-column:auto}.hand-card{padding:15px}.hand-main{gap:12px}.cards{width:100%}.simple-card-normal{width:44px;height:57px}.simple-card-rank{font-size:24px}.simple-card-suit{font-size:26px}}

@media print{
    body{background:#fff!important;color:#111827!important}
    .hero,.panel,.hand-card,.stat{background:#fff!important;color:#111827!important;border-color:#d1d5db!important;box-shadow:none!important}
    .hand-number,.hero h1,.stat strong{color:#111827!important}
}

/* =========================================================
   HeroEdge Design System Enhancements
   ========================================================= */
:root{
    --info:#3b82f6;
    --info-soft:rgba(59,130,246,.14);
    --solver:#8b5cf6;
    --solver-soft:rgba(139,92,246,.14);
    --warning:#f59e0b;
    --warning-soft:rgba(245,158,11,.14);
    --danger:#ef4444;
    --danger-soft:rgba(239,68,68,.14);
}

/* Brand treatment: works with plain text “HeroEdge”. */
.brand{position:relative}
.brand::after{
    content:"";
    width:7px;
    height:7px;
    margin-left:2px;
    border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 0 4px rgba(34,197,94,.10),0 0 16px rgba(34,197,94,.45);
}

/* Contextual card accents. Add these classes where available. */
.stat.performance,.panel.performance,.metric-card.performance{border-top:3px solid var(--accent)}
.stat.ai,.panel.ai,.metric-card.ai{border-top:3px solid var(--info)}
.stat.solver,.panel.solver,.metric-card.solver{border-top:3px solid var(--solver)}
.stat.warning,.panel.warning,.metric-card.warning{border-top:3px solid var(--warning)}
.stat.leak,.panel.leak,.metric-card.leak{border-top:3px solid var(--danger)}

/* Optional semantic utility classes. */
.accent-primary{color:var(--accent)!important}
.accent-info{color:var(--info)!important}
.accent-solver{color:var(--solver)!important}
.accent-warning{color:var(--warning)!important}
.accent-danger{color:var(--danger)!important}

/* Grade scale; supports common grade class naming conventions. */
.grade.grade-aplus,.grade.grade-a-plus,.grade[data-grade="A+"]{background:linear-gradient(135deg,#16a34a,#14532d);border-color:#4ade80;box-shadow:0 5px 14px rgba(34,197,94,.25)}
.grade.grade-a,.grade[data-grade="A"]{background:linear-gradient(135deg,#22c55e,#15803d);border-color:#4ade80;box-shadow:0 5px 14px rgba(34,197,94,.24)}
.grade.grade-b,.grade[data-grade="B"]{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-color:#60a5fa;box-shadow:0 5px 14px rgba(59,130,246,.24)}
.grade.grade-c,.grade[data-grade="C"]{background:linear-gradient(135deg,#f59e0b,#b45309);border-color:#fbbf24;box-shadow:0 5px 14px rgba(245,158,11,.24)}
.grade.grade-d,.grade[data-grade="D"]{background:linear-gradient(135deg,#f97316,#c2410c);border-color:#fb923c;box-shadow:0 5px 14px rgba(249,115,22,.24)}
.grade.grade-f,.grade[data-grade="F"]{background:linear-gradient(135deg,#ef4444,#b91c1c);border-color:#f87171;box-shadow:0 5px 14px rgba(239,68,68,.24)}

/* Semantic buttons for AI, solver, and warning actions. */
.button.info{background:linear-gradient(180deg,#4f8ff7,#2563eb);border-color:#60a5fa;color:#fff;box-shadow:0 8px 22px rgba(59,130,246,.24)}
.button.solver{background:linear-gradient(180deg,#9b72f5,#6d28d9);border-color:#a78bfa;color:#fff;box-shadow:0 8px 22px rgba(139,92,246,.24)}
.button.warning{background:linear-gradient(180deg,#fbbf24,#d97706);border-color:#fcd34d;color:#171717;box-shadow:0 8px 22px rgba(245,158,11,.20)}

/* Better dashboard/table hierarchy. */
.stat,.panel,.hand-card{isolation:isolate}
.stat::before,.panel::before{content:"";position:absolute;inset:0 auto 0 0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.06),transparent);pointer-events:none}
.stat,.panel{position:relative}
tbody tr:hover{background:rgba(34,197,94,.075)}

/* Accessible focus treatment throughout the application. */
a:focus-visible,button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #4ade80;outline-offset:3px}

/* Slight blue secondary glow reinforces the AI/analytics identity. */
body{
    background:
        radial-gradient(circle at 12% 8%,rgba(34,197,94,.10),transparent 28%),
        radial-gradient(circle at 88% 4%,rgba(59,130,246,.055),transparent 24%),
        radial-gradient(circle at 70% 90%,rgba(139,92,246,.035),transparent 34%),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.018'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(180deg,#080b0a 0%,#101513 55%,#080a09 100%);
}
