:root{
    --forum-primary:#01579b;
    --forum-primary-dark:#014978;
    --forum-primary-soft:#eaf4fb;
    --forum-accent:#ffb74d;
    --forum-accent-soft:#fff4df;
    --forum-success:#16a34a;
    --forum-success-soft:#f0fdf4;
    --forum-danger:#dc2626;
    --forum-danger-soft:#fef2f2;
    --forum-text:#17324a;
    --forum-text-soft:#667b8c;
    --forum-border:#d9e4ec;
    --forum-bg:#eef3f7;
    --forum-card:#ffffff;
    --forum-shadow-sm:0 8px 18px rgba(1, 87, 155, 0.06);
    --forum-shadow-md:0 14px 30px rgba(1, 87, 155, 0.10);
    --forum-shadow-lg:0 22px 44px rgba(1, 87, 155, 0.14);
    --forum-radius-xl:28px;
    --forum-radius-lg:22px;
    --forum-radius-md:18px;
    --forum-radius-sm:14px;
    --forum-transition:all .28s ease;
}

.forum-wrap{
    max-width:1140px;
    margin:32px auto;
    padding:0 16px 42px;
}

.forum-wrap.narrow{
    max-width:920px;
}

.forum-hero{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,.18), transparent 32%),
        radial-gradient(circle at bottom right, rgba(255,255,255,.12), transparent 28%),
        linear-gradient(135deg, #01579b, #0277bd 60%, #039be5);
    color:#fff;
    border-radius:var(--forum-radius-xl);
    padding:30px 24px;
    margin-bottom:22px;
    box-shadow:var(--forum-shadow-lg);
}

.forum-hero::after{
    content:"";
    position:absolute;
    inset:auto -40px -40px auto;
    width:160px;
    height:160px;
    background:rgba(255,255,255,.08);
    border-radius:50%;
}

.forum-hero h1{
    margin:0 0 10px;
    font-size:2rem;
    font-weight:800;
    line-height:1.5;
    position:relative;
    z-index:1;
}

.forum-hero p{
    margin:0;
    color:rgba(255,255,255,.94);
    line-height:1.95;
    position:relative;
    z-index:1;
}

.forum-toolbar{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:22px;
}

.forum-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    padding:11px 18px;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg, var(--forum-accent), #ffd27a);
    color:#17324a;
    font-weight:800;
    font-size:.96rem;
    text-decoration:none;
    cursor:pointer;
    transition:var(--forum-transition);
    box-shadow:0 10px 18px rgba(245, 158, 11, .18);
}

.forum-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 24px rgba(245, 158, 11, .24);
}

.forum-btn-light{
    background:#fff;
    color:var(--forum-primary-dark);
    border:1px solid var(--forum-border);
    box-shadow:var(--forum-shadow-sm);
}

.forum-btn-light:hover{
    background:var(--forum-primary-soft);
    box-shadow:var(--forum-shadow-md);
}

.forum-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:18px;
}

.forum-card{
    background:linear-gradient(180deg, #ffffff, #fbfdff);
    border:1px solid var(--forum-border);
    border-radius:var(--forum-radius-lg);
    padding:20px 18px;
    box-shadow:var(--forum-shadow-sm);
    transition:var(--forum-transition);
}

.forum-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--forum-shadow-lg);
    border-color:#c6dbe8;
}

.forum-card h2{
    margin:0 0 10px;
    font-size:1.18rem;
    line-height:1.65;
}

.forum-card h2 a{
    color:var(--forum-primary-dark);
    text-decoration:none;
}

.forum-card h2 a:hover{
    color:var(--forum-primary);
}

.forum-card p{
    margin:0 0 14px;
    color:var(--forum-text-soft);
    line-height:1.9;
}

.forum-meta{
    color:var(--forum-text-soft);
    font-size:.94rem;
    line-height:1.85;
}

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

.forum-topic-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    background:#fff;
    border:1px solid var(--forum-border);
    border-radius:var(--forum-radius-lg);
    padding:18px;
    box-shadow:var(--forum-shadow-sm);
    transition:var(--forum-transition);
}

.forum-topic-row:hover{
    box-shadow:var(--forum-shadow-md);
    transform:translateY(-2px);
}

.forum-topic-main{
    flex:1;
    min-width:0;
}

.forum-topic-main h3{
    margin:0 0 10px;
    font-size:1.06rem;
    line-height:1.8;
    word-break:break-word;
}

.forum-topic-main h3 a{
    color:var(--forum-primary-dark);
    text-decoration:none;
}

.forum-topic-main h3 a:hover{
    color:var(--forum-primary);
}

.forum-topic-stats{
    min-width:120px;
    background:linear-gradient(180deg, #f8fbfd, #f2f7fb);
    border:1px solid var(--forum-border);
    border-radius:18px;
    padding:10px 12px;
    color:var(--forum-text-soft);
    font-size:.92rem;
    line-height:1.9;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}

.forum-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-right:8px;
    padding:4px 10px;
    border-radius:999px;
    background:var(--forum-accent-soft);
    color:#8a5300;
    font-size:.76rem;
    font-weight:800;
    border:1px solid #f5d08b;
    vertical-align:middle;
}

.forum-badge-muted{
    background:#eef2f7;
    color:#546274;
    border-color:#d7e0e8;
}

.forum-empty{
    background:#fff;
    border:1px dashed #c9d9e4;
    border-radius:var(--forum-radius-lg);
    padding:24px 18px;
    text-align:center;
    color:var(--forum-text-soft);
    box-shadow:var(--forum-shadow-sm);
}

.forum-form{
    background:#fff;
    border:1px solid var(--forum-border);
    border-radius:var(--forum-radius-lg);
    padding:22px 18px;
    box-shadow:var(--forum-shadow-sm);
}

.forum-form label{
    display:block;
    margin:0 0 8px;
    color:var(--forum-text);
    font-weight:800;
}

.forum-form input[type="text"],
.forum-form input[type="email"],
.forum-form textarea,
.forum-form select{
    width:100%;
    border:1px solid #ccdae5;
    border-radius:16px;
    padding:13px 14px;
    font:inherit;
    color:var(--forum-text);
    background:#fff;
    margin-bottom:16px;
    outline:none;
    transition:var(--forum-transition);
}

.forum-form input[type="text"]:focus,
.forum-form input[type="email"]:focus,
.forum-form textarea:focus,
.forum-form select:focus{
    border-color:#84bfe7;
    box-shadow:0 0 0 4px rgba(1, 87, 155, 0.10);
    background:#fff;
}

.forum-form textarea{
    resize:vertical;
    min-height:150px;
    line-height:1.95;
}

.forum-breadcrumb{
    margin-bottom:14px;
    color:var(--forum-text-soft);
    font-size:.95rem;
    line-height:1.8;
}

.forum-breadcrumb a{
    color:var(--forum-primary-dark);
    text-decoration:none;
    font-weight:700;
}

.forum-breadcrumb a:hover{
    color:var(--forum-primary);
}

.forum-post{
    background:#fff;
    border:1px solid var(--forum-border);
    border-radius:var(--forum-radius-lg);
    padding:22px 20px;
    box-shadow:var(--forum-shadow-md);
    margin-bottom:20px;
}

.forum-post h1{
    margin:0 0 12px;
    color:var(--forum-primary-dark);
    font-size:1.58rem;
    line-height:1.75;
    word-break:break-word;
}

.forum-post-content{
    margin-top:14px;
    color:var(--forum-text);
    line-height:2.05;
    word-break:break-word;
}

.forum-replies h2{
    margin:0 0 14px;
    font-size:1.28rem;
    color:var(--forum-text);
}

.forum-reply{
    background:#fff;
    border:1px solid var(--forum-border);
    border-radius:var(--forum-radius-md);
    padding:16px 18px;
    margin-bottom:12px;
    box-shadow:var(--forum-shadow-sm);
}

.forum-reply-content{
    margin-top:12px;
    color:var(--forum-text);
    line-height:2;
    word-break:break-word;
}

.forum-alert{
    margin:14px 0;
    padding:14px 16px;
    border-radius:16px;
    border:1px solid var(--forum-border);
    background:#fff;
    color:var(--forum-text);
    font-weight:700;
    line-height:1.85;
    box-shadow:var(--forum-shadow-sm);
}

.forum-alert a{
    color:var(--forum-primary-dark);
    font-weight:800;
}

.forum-alert-success{
    background:var(--forum-success-soft);
    border-color:#bbf7d0;
    color:#166534;
}

.forum-alert-error{
    background:var(--forum-danger-soft);
    border-color:#fecaca;
    color:#991b1b;
}

.forum-pagination{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:22px;
}

.forum-pagination .forum-btn{
    min-width:46px;
    padding:10px 14px;
}

.forum-post-content,
.forum-reply-content,
.forum-card p,
.forum-empty{
    white-space:normal;
}

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

@media (max-width:768px){
    .forum-wrap{
        margin:24px auto;
        padding:0 12px 32px;
    }

    .forum-hero{
        padding:22px 18px;
        border-radius:22px;
    }

    .forum-hero h1{
        font-size:1.6rem;
    }

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

    .forum-topic-row{
        flex-direction:column;
    }

    .forum-topic-stats{
        width:100%;
        min-width:0;
    }

    .forum-post{
        padding:18px 16px;
    }

    .forum-post h1{
        font-size:1.3rem;
    }

    .forum-toolbar{
        flex-direction:column;
        align-items:stretch;
    }

    .forum-btn{
        width:100%;
    }
}

.forum-page .page-shell-main{padding-top:28px;}
.forum-hero .page-hero-badge{margin-bottom:12px;}
.forum-latest-panel{margin-top:24px;}
