
:root {

    --dict-green: #086144;

    --dict-green-dark: #064d36;

    --dict-green-light: #eaf5f0;

    --dict-green-soft: #f5faf8;

    --dict-text: #26332e;

    --dict-muted: #718079;

    --dict-border: #e3eae7;

}


.stroke-detail-hero {

    display: flex;

    align-items: center;

    padding: 27px 28px;

    margin-bottom: 18px;

    border: 1px solid var(--dict-border);

    border-radius: 14px;

    background: #ffffff;

}


.stroke-detail-number {

    width: 78px;

    height: 78px;

    flex: 0 0 78px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-right: 20px;

    border-radius: 15px;

    color: #ffffff;

    background: var(--dict-green);

    font-size: 37px;

    font-weight: 700;

    line-height: 1;

    box-shadow:
        0 8px 22px rgba(8, 97, 68, .16);

}


.stroke-detail-info {

    min-width: 0;

}


.stroke-detail-label {

    margin-bottom: 2px;

    color: var(--dict-green);

    font-size: 13px;

    font-weight: 700;

    letter-spacing: .5px;

}


.stroke-detail-info h1 {

    margin: 0 0 5px;

    color: var(--dict-text);

    font-size: 27px;

    font-weight: 700;

}


.stroke-detail-info p {

    margin: 0;

    color: var(--dict-muted);

    font-size: 14px;

}



.stroke-detail-source {

    display: flex;

    align-items: center;

    margin-bottom: 18px;

    padding: 17px 19px;

    border: 1px solid #dcebe5;

    border-radius: 12px;

    background: var(--dict-green-soft);

}


.source-icon {

    width: 42px;

    height: 42px;

    flex: 0 0 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-right: 13px;

    border-radius: 9px;

    color: var(--dict-green);

    background: #ffffff;

}


.source-content {

    min-width: 0;

}


.source-content strong {

    display: block;

    margin-bottom: 2px;

    color: var(--dict-text);

    font-size: 14px;

}


.source-content p {

    margin: 0;

    color: var(--dict-muted);

    font-size: 12px;

    line-height: 1.75;

}




.stroke-nav-card {

    margin-bottom: 20px;

    padding: 18px 20px;

    border: 1px solid var(--dict-border);

    border-radius: 12px;

    background: #ffffff;

}


.stroke-nav-title {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 13px;

}


.stroke-nav-title > span {

    color: var(--dict-text);

    font-size: 14px;

    font-weight: 700;

}


.stroke-nav-title > span i {

    margin-right: 6px;

    color: var(--dict-green);

}


.stroke-nav-title > a {

    color: var(--dict-green);

    font-size: 12px;

    text-decoration: none;

}


.stroke-nav-title > a i {

    margin-left: 4px;

}


.stroke-nav-list {

    display: grid;

    grid-template-columns: repeat(12, 1fr);

    gap: 7px;

}


.stroke-nav-item {

    height: 34px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid #e2e9e6;

    border-radius: 7px;

    color: var(--dict-text);

    background: #ffffff;

    font-size: 18px;

    font-weight: 600;

    text-decoration: none;

    transition: all .16s ease;

}


.stroke-nav-item:hover,

.stroke-nav-item.active {

    border-color: var(--dict-green);

    color: #ffffff;

    background: var(--dict-green);

    text-decoration: none;

}




.radical-character-card {

    margin-bottom: 20px;

    border: 1px solid var(--dict-border);

    border-radius: 14px;

    background: #ffffff;

}


.radical-character-heading {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 21px 22px;

    border-bottom: 1px solid var(--dict-border);

}


.radical-character-heading h2 {

    margin: 0 0 3px;

    color: var(--dict-text);

    font-size: 22px;

    font-weight: 700;

}


.radical-character-heading p {

    margin: 0;

    color: var(--dict-muted);

    font-size: 14px;

}


.radical-character-count {

    display: flex;

    align-items: baseline;

    color: var(--dict-green);

}


.radical-character-count strong {

    font-size: 22px;

}


.radical-character-count span {

    margin-left: 3px;

    font-size: 12px;

}




.radical-groups {

    padding: 0 22px 20px;

}


.radical-group {

    padding: 22px 0;

    border-bottom: 1px solid var(--dict-border);

}


.radical-group:last-child {

    border-bottom: 0;

}


.radical-group-heading {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 15px;

}


.radical-heading-left {

    display: flex;

    align-items: center;

}


.radical-character {

    width: 48px;

    height: 48px;

    flex: 0 0 48px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-right: 12px;

    border-radius: 10px;

    color: var(--dict-green);

    background: var(--dict-green-light);

    font-family:
        "Noto Sans TC",
        "Microsoft JhengHei",
        sans-serif;

    font-size: 28px;

    font-weight: 500;

}


.radical-heading-info h3 {

    margin: 0 0 3px;

    color: var(--dict-text);

    font-size: 18px;

    font-weight: 700;

}


.radical-heading-info span {

    color: var(--dict-muted);

    font-size: 14px;

}


.radical-more {

    color: var(--dict-green);

    font-size: 14px;

    text-decoration: none;

}


.radical-more i {

    margin-left: 5px;

    font-size: 9px;

}


.radical-more:hover {

    color: var(--dict-green);

    text-decoration: none;

}




.radical-character-list {

    display: grid;

    grid-template-columns:
        repeat(8, minmax(0, 1fr));

    gap: 8px;

}


.radical-character-item {

    min-height: 68px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid #e3e9e6;

    border-radius: 9px;

    background: #ffffff;

    text-decoration: none;

    transition:
        border-color .16s ease,
        background .16s ease,
        transform .16s ease,
        box-shadow .16s ease;

}


.radical-character-item-char {

    

    font-size: 27px;

    line-height: 1;

}


.radical-character-item:hover {

    border-color: var(--dict-green);

    color: #ffffff;

    background: var(--dict-green);

    text-decoration: none;

    transform: translateY(-2px);

    box-shadow:
        0 5px 13px rgba(8, 97, 68, .14);

}


.radical-character-item:hover
.radical-character-item-char {

    color: #ffffff;

}




.stroke-detail-info-card {

    margin-bottom: 20px;

    padding: 22px 23px;

    border: 1px solid var(--dict-border);

    border-radius: 14px;

    background: #ffffff;

}


.detail-info-title {

    display: flex;

    align-items: center;

    margin-bottom: 13px;

}


.detail-info-title i {

    width: 35px;

    height: 35px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin-right: 10px;

    border-radius: 9px;

    color: var(--dict-green);

    background: var(--dict-green-light);

}


.detail-info-title h2 {

    margin: 0;

    color: var(--dict-text);

    font-size: 17px;

    font-weight: 700;

}


.detail-info-body p {

    margin: 0 0 10px;

    color: #62706a;

    font-size: 13px;

    line-height: 1.9;

}


.detail-info-body p:last-child {

    margin-bottom: 0;

}




.empty-character {

    padding: 55px 20px;

    text-align: center;

}


.empty-character-icon {

    width: 55px;

    height: 55px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 15px;

    border-radius: 50%;

    color: var(--dict-green);

    background: var(--dict-green-light);

    font-size: 20px;

}


.empty-character h3 {

    margin: 0 0 7px;

    color: var(--dict-text);

    font-size: 16px;

}


.empty-character p {

    margin: 0 0 17px;

    color: var(--dict-muted);

    font-size: 13px;

}


.empty-character-btn {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding: 8px 14px;

    border-radius: 7px;

    color: #ffffff;

    background: var(--dict-green);

    font-size: 12px;

    text-decoration: none;

}


.empty-character-btn:hover {

    color: #ffffff;

    background: var(--dict-green-dark);

    text-decoration: none;

}



@media (max-width: 991.98px) {

    .stroke-nav-list {

        grid-template-columns: repeat(9, 1fr);

    }


    .radical-character-list {

        grid-template-columns:
            repeat(6, minmax(0, 1fr));

    }

}



@media (max-width: 767.98px) {

    .stroke-detail-hero {

        padding: 21px;

    }


    .stroke-detail-number {

        width: 62px;

        height: 62px;

        flex-basis: 62px;

        margin-right: 15px;

        border-radius: 12px;

        font-size: 29px;

    }


    .stroke-detail-info h1 {

        font-size: 23px;

    }


    .stroke-detail-info p {

        font-size: 12px;

    }


    .stroke-nav-card {

        padding: 15px;

    }


    .stroke-nav-list {

        grid-template-columns: repeat(6, 1fr);

        gap: 6px;

    }


    .stroke-nav-item {

        height: 33px;

    }


    .radical-character-heading {

        padding: 18px;

    }


    .radical-groups {

        padding: 0 17px 15px;

    }


    .radical-group {

        padding: 18px 0;

    }


    .radical-character-list {

        grid-template-columns:
            repeat(5, minmax(0, 1fr));

        gap: 6px;

    }


    .radical-character-item {

        min-height: 62px;

    }


    .radical-character-item-char {

        font-size: 24px;

    }


    .radical-more {

        display: none;

    }


    .stroke-detail-source {

        align-items: flex-start;

        padding: 15px;

    }

}




@media (max-width: 400px) {

    .stroke-detail-hero {

        padding: 18px;

    }


    .stroke-detail-number {

        width: 55px;

        height: 55px;

        flex-basis: 55px;

        font-size: 26px;

    }


    .stroke-detail-info h1 {

        font-size: 21px;

    }


    .stroke-nav-list {

        grid-template-columns: repeat(5, 1fr);

    }


    .radical-character-list {

        grid-template-columns:
            repeat(4, minmax(0, 1fr));

    }


    .radical-character {

        width: 43px;

        height: 43px;

        flex-basis: 43px;

        margin-right: 9px;

        font-size: 24px;

    }

}
