.ef-faq-board {
    --ec-ink:#153d30;
    --ec-muted:#496254;
    --ec-green:#11573c;
    --ec-line:#ceded2;
    width:min(1400px,calc(100% - 32px));
    margin:clamp(18px,3vw,40px) auto 64px;
    color:var(--ec-ink);
    overflow-wrap:anywhere;
}
.ef-faq-board :is(h1,h2,h3,p) { margin:0; color:inherit }
.ef-faq-board :is(h1,h2) { font-family:Georgia,Cambria,serif; letter-spacing:-.035em; line-height:1.1 }
.ef-faq-board h1 { font-size:clamp(2.3rem,5vw,4.5rem) }
.ef-faq-board h2 { font-size:clamp(1.65rem,2.6vw,2.3rem) }
.ef-faq-board h3 { font-size:clamp(1.1rem,1.6vw,1.35rem); line-height:1.32 }
.ef-faq-board a { color:var(--ec-green); text-underline-offset:.18em }
.ef-faq-board :is(a,button,input,select,textarea):focus-visible { outline:3px solid #23825b; outline-offset:3px }
.ec-hero,.ec-thread {
    position:relative;
    padding:clamp(24px,4vw,56px);
    border:1px solid #bed8c8;
    border-radius:18px;
    background-color:#e8f5eb;
    background-image:linear-gradient(#4878560b 1px,transparent 1px),linear-gradient(90deg,#4878560b 1px,transparent 1px),linear-gradient(125deg,#f2f9eb,#d5eee0);
    background-size:24px 24px,24px 24px,100% 100%;
}
.ec-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.45fr); align-items:center; gap:24px; overflow:hidden }
.ec-kicker { display:block; color:#3b644c; font:700 .72rem/1.5 ui-monospace,monospace; text-transform:uppercase; letter-spacing:.12em }
.ef-faq-board .ec-hero h1,.ef-faq-board .ec-thread h1 { margin:10px 0 16px }
.ef-faq-board .ec-hero p { max-width:52ch; color:#375342; font-size:clamp(1rem,1.6vw,1.15rem); line-height:1.55 }
.ef-faq-board .ec-button {
    display:inline-flex; justify-content:center; align-items:center; gap:14px; width:auto; min-height:44px;
    padding:9px 17px; border:1px solid var(--ec-green); border-radius:8px;
    background:var(--ec-green); color:white; font-weight:650; text-decoration:none; line-height:1.3;
}
.ef-faq-board .ec-button:is(:hover,:focus-visible) { background:#0a422c; color:white }
.ec-hero .ec-button,.ec-compose > .ec-button { margin-top:18px }
.ec-illustration { position:relative; width:min(100%,225px); height:150px; justify-self:center }
.ec-bubble { position:absolute; display:flex; align-items:center; justify-content:center; border:2px solid #34614a; box-shadow:5px 6px 0 #315f471f }
.ec-bubble-back { top:0; right:18%; width:62%; height:74%; background:#fcfff4; border-radius:25px 25px 25px 4px; transform:rotate(-9deg); font:700 3.8rem/1 Georgia,serif; color:#376a4f }
.ec-bubble-front { bottom:0; right:0; gap:8px; width:54%; height:52%; background:#acd7b8; border-radius:20px 20px 4px 20px; transform:rotate(7deg) }
.ec-bubble-front i { width:8px; height:8px; border-radius:50%; background:#315c43 }
.ec-layout { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(245px,1fr); gap:clamp(14px,2vw,26px); margin-top:22px; align-items:start }
.ec-panel { min-width:0; background:white; border:1px solid var(--ec-line); border-radius:14px; padding:clamp(18px,2.2vw,30px) }
.ec-heading h2,.ec-compose h2 { margin-top:6px }
.ef-faq-board .ec-compose { scroll-margin-top:110px; background:#f5f9f3; border-top:3px solid #57886b }
.ef-faq-board .ec-compose > p { margin-top:12px; color:var(--ec-muted); line-height:1.55 }
.ec-filters { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin:18px 0 0 }
.ec-filters > label { flex:1 1 120px }
.ec-filters > .ec-search { flex:2 1 180px }
.ec-form { display:grid; gap:12px; margin-top:18px }
.ef-faq-board label { display:grid; gap:5px; margin:0; min-width:0; color:#294c3b; font-weight:650; font-size:.86rem }
.ef-faq-board :is(input:not([type=hidden]),select,textarea) { width:100%; min-width:0; min-height:44px; box-sizing:border-box; border:1px solid #a8bdad; border-radius:7px; padding:8px 10px; background-color:white; color:#183e2c; font-family:inherit; font-weight:400; font-size:1rem; line-height:1.4 }
.ef-faq-board textarea { resize:vertical; height:auto; line-height:1.55 }
.ef-faq-board .ec-error { color:#942b24; font-size:.86rem }
.ec-list { margin-top:20px }
.ec-row,.ec-answer,.ec-empty { border-top:1px solid var(--ec-line); padding:19px 0 }
.ec-row:last-child,.ec-answer:last-child,.ec-empty:last-child { padding-bottom:0 }
.ec-meta,.ec-stats,.ec-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; font-size:.87rem; line-height:1.45; color:var(--ec-muted) }
.ec-meta strong { color:var(--ec-ink) }
.ef-faq-board .ec-category,.ec-count { display:inline-block; background:#e5f2e6; color:#26583d; padding:3px 9px; border-radius:6px; font-weight:700; font-size:.78rem }
.ec-count { vertical-align:middle; font-family:system-ui,sans-serif; letter-spacing:normal }
.ef-faq-board .ec-row h3 { margin:10px 0 5px }
.ec-row h3 a { text-decoration:none; color:var(--ec-ink) }
.ec-row h3 a:hover,.ec-row h3 a:focus-visible { color:var(--ec-green); text-decoration:underline }
.ef-faq-board .ec-row p,.ef-faq-board .ec-empty p { color:var(--ec-muted); line-height:1.55 }
.ec-stats { gap:16px; margin-top:10px; font-weight:600 }
.ec-empty > :last-child:not(:first-child) { display:block; margin-top:6px }
.ec-pages { margin-top:20px }
.ec-pages .pagination { flex-wrap:wrap }
.ec-back { display:inline-flex; gap:8px; align-items:center; min-height:44px; margin-bottom:8px; font-weight:650 }
.ef-faq-board .ec-thread h1 { max-width:28ch; font-size:clamp(2rem,4vw,3.3rem) }
.ef-faq-board .ec-prose { max-width:78ch; margin:18px 0; white-space:pre-wrap; line-height:1.7 }
.ec-vote { display:inline-flex; align-items:center; gap:3px; border:1px solid #a8beaf; border-radius:8px; padding:2px; background:white; color:var(--ec-ink); font-weight:700 }
.ef-faq-board .ec-vote button { min-width:40px; min-height:40px; width:auto; border:0; background:transparent; border-radius:5px; color:#245339; font:700 1.18rem/1 system-ui,sans-serif }
.ef-faq-board .ec-vote button:is(:hover,:focus-visible) { background:#e5f2e6 }
.ef-faq-board .ec-vote button[aria-pressed=true] { background:var(--ec-green); color:white }
.ec-vote span { min-width:2ch; text-align:center }
.ec-detail .ec-heading { margin-bottom:16px }
.ec-score { font-weight:700 }
@media(max-width:800px) {
    .ec-layout { grid-template-columns:minmax(0,1fr) }
    .ec-hero { grid-template-columns:minmax(0,1fr) 130px }
    .ec-illustration { height:110px }
}
@media(max-width:550px) {
    .ec-hero { grid-template-columns:minmax(0,1fr) }
    .ec-illustration { display:none }
    .ec-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) }
    .ec-filters .ec-search,.ec-filters .ec-button { grid-column:1/-1 }
}

.ec-vote button:disabled{opacity:.5;cursor:default}.ec-vote i{font-size:1.2rem}
