:root{
    --hub-blue:#1768e7;
    --hub-green:#148e5b;
    --hub-orange:#d98216;
    --hub-text:#14213d;
    --hub-muted:#6f7d92;
    --hub-line:#e2e8f1;
    --hub-bg:#f7f9fc;
}

.hub-page{
    margin:0;
    background:#fff;
    color:var(--hub-text);
}

.hub-hero{
    padding:74px 0 58px;
    background:
        radial-gradient(circle at 86% 20%,rgba(43,126,242,.14),transparent 28%),
        linear-gradient(180deg,#f8fbff,#fff);
}

.hub-kicker{
    margin:0 0 12px;
    color:var(--hub-blue);
    font-size:11px;
    font-weight:900;
    letter-spacing:.09em;
}

.hub-hero h1{
    margin:0;
    font-size:clamp(42px,5vw,64px);
    line-height:1.07;
    letter-spacing:-.055em;
}

.hub-hero p{
    max-width:720px;
    margin:18px 0 0;
    color:var(--hub-muted);
    font-size:16px;
    line-height:1.8;
}

.hub-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:27px;
}

.hub-tabs a{
    min-height:39px;
    display:inline-flex;
    align-items:center;
    padding:0 14px;
    border:1px solid #d8e1ed;
    border-radius:10px;
    color:#4b617e;
    background:#fff;
    font-size:12px;
    font-weight:800;
}

.hub-tabs a.active{
    color:#fff;
    background:var(--hub-blue);
    border-color:var(--hub-blue);
}

.hub-section{
    padding:70px 0 86px;
}

.hub-section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:25px;
}

.hub-section-head h2{
    margin:0;
    font-size:31px;
    letter-spacing:-.04em;
}

.hub-section-head p{
    margin:0;
    color:var(--hub-muted);
    font-size:12px;
}

.hub-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}

.hub-card{
    min-height:285px;
    padding:24px;
    border:1px solid var(--hub-line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 28px rgba(30,54,91,.045);
}

.hub-card-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
}

.hub-app-icon{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:15px;
    color:#fff;
    background:linear-gradient(145deg,#2b85f8,#175fcf);
    font-size:22px;
    font-weight:900;
}

.hub-card.hancom .hub-app-icon{
    background:linear-gradient(145deg,#24a7ca,#147ca2);
}

.hub-card.excel .hub-app-icon{
    background:linear-gradient(145deg,#1caf6d,#087949);
}

.hub-status{
    padding:6px 9px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
}

.hub-status.active{
    color:#08794b;
    background:#eaf8f1;
}

.hub-status.development{
    color:#a45d09;
    background:#fff4df;
}

.hub-status.planned{
    color:#6c7481;
    background:#f0f2f5;
}

.hub-card h3{
    margin:18px 0 0;
    font-size:22px;
    letter-spacing:-.035em;
}

.hub-category{
    display:block;
    margin-top:5px;
    color:var(--hub-blue);
    font-size:10px;
    font-weight:850;
}

.hub-card p{
    min-height:75px;
    margin:15px 0 0;
    color:var(--hub-muted);
    font-size:12px;
    line-height:1.75;
}

.hub-meta{
    display:flex;
    gap:7px;
    margin-top:14px;
}

.hub-meta span{
    padding:5px 8px;
    border-radius:8px;
    color:#66758b;
    background:#f3f6fa;
    font-size:9px;
    font-weight:800;
}

.hub-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:18px;
}

.hub-actions a,
.hub-actions span{
    min-height:40px;
    display:grid;
    place-items:center;
    border-radius:9px;
    font-size:11px;
    font-weight:850;
}

.hub-actions .primary{
    color:#fff;
    background:var(--hub-blue);
}

.hub-actions .secondary{
    color:#315a89;
    background:#edf4fc;
}

.hub-actions .disabled{
    color:#8994a4;
    background:#eef1f5;
}

.download-list,
.release-list{
    display:grid;
    gap:12px;
}

.download-item,
.release-item{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:16px;
    align-items:center;
    padding:20px;
    border:1px solid var(--hub-line);
    border-radius:15px;
    background:#fff;
}

.download-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:12px;
    color:#fff;
    background:#4b7fd0;
    font-size:16px;
    font-weight:900;
}

.download-item h3,
.release-item h3{
    margin:0;
    font-size:16px;
}

.download-item p,
.release-item p{
    margin:5px 0 0;
    color:var(--hub-muted);
    font-size:11px;
    line-height:1.6;
}

.download-side,
.release-side{
    text-align:right;
}

.download-side strong,
.download-side span,
.release-side strong,
.release-side span{
    display:block;
}

.download-side strong,
.release-side strong{
    font-size:11px;
}

.download-side span,
.release-side span{
    margin-top:4px;
    color:#8793a5;
    font-size:9px;
}

.download-button{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    margin-top:8px;
    padding:0 13px;
    border-radius:9px;
    color:#fff;
    background:var(--hub-blue);
    font-size:10px;
    font-weight:850;
}

.download-button.disabled{
    color:#8793a5;
    background:#eef1f5;
}

.empty-state{
    padding:36px;
    border:1px dashed #cdd8e7;
    border-radius:16px;
    color:#748197;
    background:#fafcff;
    text-align:center;
    font-size:13px;
    line-height:1.8;
}

.hub-note{
    margin-top:20px;
    padding:15px 17px;
    border:1px solid #dfe8f3;
    border-radius:12px;
    color:#718096;
    background:#f8fbff;
    font-size:11px;
    line-height:1.7;
}

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

    .hub-section-head{
        display:block;
    }

    .hub-section-head p{
        margin-top:8px;
    }

    .download-item,
    .release-item{
        grid-template-columns:auto 1fr;
    }

    .download-side,
    .release-side{
        grid-column:2;
        text-align:left;
    }
}

@media(max-width:560px){
    .hub-hero{
        padding:52px 0 45px;
    }

    .hub-hero h1{
        font-size:40px;
    }

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

    .download-item,
    .release-item{
        grid-template-columns:1fr;
    }

    .download-side,
    .release-side{
        grid-column:auto;
    }
}
/* FACT EDU 1.0.11 - distribution integrity */
.download-item-expanded,
.release-item-expanded{
    align-items:flex-start;
}

.integrity-box{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:14px;
    padding:12px;
    border:1px solid #e0e7f1;
    border-radius:11px;
    background:#f8fbff;
}

.integrity-box > div{
    min-width:0;
}

.integrity-box strong,
.integrity-box span,
.integrity-box code{
    display:block;
}

.integrity-box strong{
    margin-bottom:4px;
    color:#64748b;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.integrity-box span,
.integrity-box code{
    color:#243955;
    font-size:9px;
    line-height:1.55;
}

.integrity-box code{
    overflow-wrap:anywhere;
    font-family:Consolas,"Courier New",monospace;
}

.integrity-wide{
    grid-column:1/-1;
}

.release-title-text{
    font-weight:750;
    color:#50617a !important;
}

.release-notes{
    margin-top:10px;
    color:#718096;
    font-size:10px;
    line-height:1.7;
}

@media(max-width:640px){
    .integrity-box{
        grid-template-columns:1fr;
    }

    .integrity-wide{
        grid-column:auto;
    }
}
