/* =============================================================================
   현장의견수렴 및 모니터링 — '소통 공간' 디자인 (2026-09-30)
   - 적용 범위: body.ffc (field-feedback 모듈이 mount 할 때만 붙고 unmount 때 떨어진다) + screen 전용.
     → 다른 모듈·인쇄(의견수렴 결과 인쇄 #ffaPrint)에는 영향 없음.
   - 표시 전용: 업무로직·권한·API·자료 구조는 js/modules/field-feedback.js 그대로.
   - 톤: 밝고 부드러운 배경 · 둥근 카드 · 약한 그림자 · 청록/민트/하늘색 포인트.
     공개=하늘색, 비공개=차분한 보라(관리자에게만 내려오는 자료), 안전수칙 위반=부드러운 코랄.
   - 반응형: 1200px 이상은 [왼쪽: 빠른 참여·찾아보기 | 오른쪽: 카드 2열], 760px 이상은 카드 2열, 그 아래는 1열.
   ========================================================================== */
@media screen {
  body.ffc{
    --c-line:#e1eaec; --c-line-2:#cfdde0; --c-soft:#f6fafa;
    --c-ink:#13242b; --c-ink-2:#44565e; --c-ink-3:#667880;
    --c-teal:#1f7f84; --c-teal-strong:#16686c; --c-teal-tint:#e8f5f3; --c-teal-line:#bfe0dc;
    --c-sky:#2b6f9e; --c-sky-tint:#eaf4fb; --c-sky-line:#c6dff0;
    --c-violet:#584d93; --c-violet-tint:#f2f0fa; --c-violet-line:#d9d3ef;
    --c-coral:#a94b27; --c-coral-tint:#fdf1ea; --c-coral-line:#f1d1bf;
    --c-green:#2f7a4b; --c-green-tint:#eef7f1; --c-green-line:#cfe6d7;
    --c-r:18px;
    --c-shadow:0 1px 2px rgba(19,47,56,.04),0 6px 18px -12px rgba(19,47,56,.20);
    --c-shadow-hi:0 2px 4px rgba(19,47,56,.05),0 16px 30px -16px rgba(19,47,56,.30);
    background:radial-gradient(1100px 420px at 50% -160px,#e2f3f0 0%,rgba(226,243,240,0) 72%),#f4f8f8;
  }
  body.ffc #app{color:var(--c-ink);}
  body.ffc .adm-ic{display:block;flex:0 0 auto;}

  /* ── 공통: 패널·버튼·칩 (이 모듈 화면 안에서만) ── */
  body.ffc .panel{border-color:var(--c-line);border-radius:var(--c-r);box-shadow:var(--c-shadow);padding:18px;margin-bottom:14px;}
  body.ffc .panel>h2{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:16px;margin:0 0 12px;color:var(--c-ink);}
  body.ffc .panel>h2 .adm-ic{color:var(--c-teal);}
  body.ffc .btn{border-radius:12px;}
  body.ffc .btn-sm{border-radius:999px;}
  body.ffc .btn-primary{background:var(--c-teal);border-color:var(--c-teal);color:#fff;}
  body.ffc .btn-primary:active{background:var(--c-teal-strong);}
  body.ffc .btn-secondary{border-color:var(--c-line-2);}
  body.ffc .btn-primary:disabled,body.ffc .btn-secondary:disabled{background:#eef1f3;border-color:#e0e5e8;color:#98a2b3;}
  @media (hover:hover){
    body.ffc .btn-primary:not(:disabled):hover{background:var(--c-teal-strong);border-color:var(--c-teal-strong);}
    body.ffc .btn-secondary:not(:disabled):hover{background:var(--c-soft);border-color:#b8cacf;}
  }
  body.ffc .btn:focus-visible{outline:2px solid var(--c-teal);outline-offset:2px;}
  body.ffc .chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-weight:700;line-height:1.45;}
  body.ffc .chip .adm-ic{margin-left:-2px;}
  body.ffc .chip.ffa-open{background:var(--c-teal-tint);color:var(--c-teal-strong);border-color:var(--c-teal-line);}
  body.ffc .chip.ffa-closed{background:#f1f4f5;color:var(--c-ink-3);border-color:#d9e1e4;}
  body.ffc .chip.ffa-mode{background:#fff;color:var(--c-ink-2);border-color:var(--c-line-2);}
  body.ffc .chip.ffa-mode.m-choice{color:var(--c-sky);border-color:var(--c-sky-line);background:var(--c-sky-tint);}
  body.ffc .chip.ffa-private{background:var(--c-violet-tint);color:var(--c-violet);border-color:var(--c-violet-line);}
  body.ffc .chip.done{background:#f3f5f7;color:#475467;border-color:#dde3e8;}
  body.ffc .chip.linked{background:var(--c-teal-tint);color:var(--c-teal-strong);border-color:var(--c-teal-line);}
  body.ffc .ffc-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2a9d8f;box-shadow:0 0 0 3px rgba(42,157,143,.16);margin-right:2px;}

  /* ── 머리말 + 환영 배너 ── */
  body.ffc .ffc-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px 28px;flex-wrap:wrap;overflow:hidden;
    margin:0 0 14px;padding:22px 26px;border-radius:var(--c-r);border:1px solid var(--c-line);box-shadow:var(--c-shadow);
    background:linear-gradient(120deg,#ffffff 0%,#f1faf8 48%,#e9f3fb 100%);}
  body.ffc .ffc-hero-main{display:flex;align-items:flex-start;gap:16px;min-width:0;flex:1 1 440px;}
  body.ffc .ffc-hero-ic{display:inline-flex;align-items:center;justify-content:center;flex:0 0 56px;width:56px;height:56px;border-radius:18px;
    background:linear-gradient(135deg,#d9f0ed,#dcebf8);color:var(--c-teal);}
  body.ffc .ffc-hero-t{min-width:0;}
  body.ffc .ffc-eyebrow{margin:0 0 2px;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--c-teal);}
  body.ffc .ffc-title{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.3;color:var(--c-ink);word-break:keep-all;}
  body.ffc .ffc-sub{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--c-ink-2);word-break:keep-all;}
  body.ffc .ffc-hero-pts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:0 1 auto;}
  body.ffc .ffc-hero-pts li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border-radius:999px;background:rgba(255,255,255,.8);
    border:1px solid var(--c-line);font-size:13px;font-weight:600;color:var(--c-ink-2);}
  body.ffc .ffc-hero-pts li .adm-ic{color:var(--c-teal);}

  /* ── 탭(부드러운 segmented) ── */
  body.ffc .ffa-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;margin:0 0 14px;border:1px solid var(--c-line);border-radius:22px;
    background:#e8f0f1;overflow:visible;}
  body.ffc .ffa-seg-b{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:58px;padding:8px 14px;border:0;border-radius:17px;
    background:transparent;color:var(--c-ink-2);text-align:left;font:inherit;cursor:pointer;transition:background-color .15s,box-shadow .15s,color .15s;}
  body.ffc .ffa-seg-b + .ffa-seg-b{border-left:0;}
  body.ffc .ffa-seg-b.on{background:#fff;color:var(--c-ink);box-shadow:0 1px 2px rgba(19,47,56,.06),0 6px 14px -8px rgba(19,47,56,.28);}
  @media (hover:hover){ body.ffc .ffa-seg-b:not(.on):hover{background:rgba(255,255,255,.55);} }
  body.ffc .ffa-seg-b:focus-visible{outline:2px solid var(--c-teal);outline-offset:2px;}
  body.ffc .ffc-seg-ic{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--c-teal-strong);}
  body.ffc .ffa-seg-b.on .ffc-seg-ic{background:var(--c-teal);color:#fff;}
  body.ffc .ffc-seg-t{display:flex;flex-direction:column;min-width:0;}
  body.ffc .ffc-seg-t b{font-size:15.5px;font-weight:800;line-height:1.3;}
  body.ffc .ffc-seg-t small{font-size:12px;font-weight:500;line-height:1.35;color:var(--c-ink-3);word-break:keep-all;}

  /* ── 배치: 모바일·태블릿은 위에서 아래로(빠른 참여 → 찾아보기 → 목록) ── */
  body.ffc .ffc-layout,body.ffc .ffc-aside,body.ffc .ffc-main{min-width:0;}

  /* ── 빠른 참여 ── */
  body.ffc .ffc-quick{display:flex;flex-direction:column;gap:12px;margin:0 0 14px;padding:18px;border-radius:var(--c-r);background:#fff;border:1px solid var(--c-line);box-shadow:var(--c-shadow);}
  body.ffc .ffc-quick-t{display:flex;align-items:flex-start;gap:12px;min-width:0;}
  body.ffc .ffc-qi{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:var(--c-teal-tint);color:var(--c-teal);}
  body.ffc .ffc-quick-t h2{margin:1px 0 2px;font-size:16.5px;font-weight:800;line-height:1.35;color:var(--c-ink);word-break:keep-all;}
  body.ffc .ffc-quick-t p{margin:0;font-size:13.5px;line-height:1.55;color:var(--c-ink-2);word-break:keep-all;}
  body.ffc .ffc-cta{width:100%;min-height:50px;border-radius:14px;font-size:16px;gap:6px;margin:0;box-shadow:0 6px 14px -8px rgba(31,127,132,.55);}
  body.ffc .ffc-quick-note{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:12.5px;line-height:1.5;color:var(--c-ink-3);word-break:keep-all;}
  body.ffc .ffc-quick-note .adm-ic{margin-top:2px;color:var(--c-violet);}
  body.ffc .ffc-how{font-size:13px;}
  body.ffc .ffc-how summary{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--c-teal-line);
    background:#fff;color:var(--c-teal-strong);font-weight:700;cursor:pointer;list-style:none;}
  body.ffc .ffc-how summary::-webkit-details-marker{display:none;}
  body.ffc .ffc-how summary::after{content:"";width:7px;height:7px;margin-left:2px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s;}
  body.ffc .ffc-how[open] summary::after{transform:rotate(-135deg) translate(-1px,-1px);}
  body.ffc .ffc-how summary:focus-visible{outline:2px solid var(--c-teal);outline-offset:2px;}
  body.ffc .ffc-how ol{margin:10px 0 0;padding:12px 14px 12px 32px;border-radius:14px;background:var(--c-teal-tint);color:var(--c-ink-2);line-height:1.6;}
  body.ffc .ffc-how li + li{margin-top:4px;}

  /* ── 찾아보기(검색·필터) ── */
  body.ffc .ffc-filter{padding:16px 18px;}
  body.ffc .ffc-filter>h2.ffc-fh{font-size:14.5px;margin:0 0 10px;}
  body.ffc .ffc-search{position:relative;display:flex;gap:8px;margin:0 0 12px;}
  body.ffc .ffc-search input{flex:1 1 auto;min-width:0;height:48px;padding:0 12px 0 40px;border:1.5px solid var(--c-line-2);border-radius:14px;background:var(--c-soft);
    font:inherit;font-size:15.5px;color:var(--c-ink);}
  body.ffc .ffc-search input:focus{outline:0;border-color:var(--c-teal);background:#fff;box-shadow:0 0 0 3px rgba(31,127,132,.15);}
  body.ffc .ffc-sic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-ink-3);pointer-events:none;}
  body.ffc .ffc-search .btn{min-height:48px;padding:0 18px;border-radius:14px;font-size:14.5px;margin:0;}
  body.ffc .ffc-fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px;}
  body.ffc .ffc-f{display:flex;flex-direction:column;gap:5px;min-width:0;}
  body.ffc .ffc-fl{font-size:12.5px;font-weight:700;color:var(--c-ink-2);}
  body.ffc .ffc-f input,body.ffc .ffc-f select{width:100%;min-width:0;height:44px;padding:0 10px;border:1px solid var(--c-line-2);border-radius:12px;background:#fff;
    font:inherit;font-size:15px;color:var(--c-ink);}
  body.ffc .ffc-f input:focus,body.ffc .ffc-f select:focus{outline:0;border-color:var(--c-teal);box-shadow:0 0 0 3px rgba(31,127,132,.15);}
  body.ffc .ffc-filter .fblk{margin:0 0 10px;}
  body.ffc .ffc-filter .fblk-l{flex:0 0 60px;font-size:12.5px;color:var(--c-ink-2);}
  body.ffc .fbtn{display:inline-flex;align-items:center;border-color:var(--c-line-2);min-height:34px;padding:4px 12px;font-size:13.5px;font-weight:600;color:var(--c-ink-2);transition:background-color .15s,border-color .15s;}
  body.ffc .fbtn .n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:#eef3f4;color:var(--c-ink-2);font-size:12px;}
  body.ffc .fbtn.st-todo .n,body.ffc .fbtn.st-prog .n{color:var(--c-ink-2);}
  body.ffc .fbtn.on{background:var(--c-teal);border-color:var(--c-teal);color:#fff;}
  body.ffc .fbtn.on .n{background:rgba(255,255,255,.22);color:#fff;}
  @media (hover:hover){ body.ffc .fbtn:not(.on):hover{border-color:var(--c-teal-line);background:var(--c-soft);} }
  body.ffc .fbtn:focus-visible{outline:2px solid var(--c-teal);}
  body.ffc .ffc-fnote{margin-top:2px;padding-top:12px;border-top:1px dashed var(--c-line);}
  body.ffc .ffc-count{font-size:13px;color:var(--c-ink-3);}
  body.ffc .ffc-count b{font-size:15px;color:var(--c-teal-strong);margin:0 1px;}
  body.ffc .ffc-fnote .btn{gap:4px;min-height:34px;}

  /* ── 목록(카드 피드) ── */
  body.ffc .ffc-feed{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch;}
  body.ffc .ffc-post,body.ffc .ffc-camp{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;padding:16px 18px;margin:0;
    border:1px solid var(--c-line);border-radius:var(--c-r);background:#fff;box-shadow:var(--c-shadow);transition:box-shadow .15s,border-color .15s,transform .15s;}
  @media (hover:hover){
    body.ffc .ffc-post:hover,body.ffc .ffc-camp:hover{border-color:var(--c-teal-line);box-shadow:var(--c-shadow-hi);transform:translateY(-1px);}
  }
  body.ffc .ffc-post:focus-visible,body.ffc .ffc-camp:focus-visible{outline:2px solid var(--c-teal);outline-offset:2px;}
  body.ffc .ffc-post-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;}
  body.ffc .ffc-date{margin-left:auto;font-size:12.5px;color:var(--c-ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;}
  body.ffc .ffc-kind,body.ffc .ffc-vis,body.ffc .ffc-dday{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;border-radius:999px;border:1px solid;
    font-size:12.5px;font-weight:700;line-height:1.45;white-space:nowrap;}
  body.ffc .ffc-kind.k-opinion{background:var(--c-teal-tint);color:var(--c-teal-strong);border-color:var(--c-teal-line);}
  body.ffc .ffc-kind.k-violation{background:var(--c-coral-tint);color:var(--c-coral);border-color:var(--c-coral-line);}
  body.ffc .ffc-vis.v-public{background:var(--c-sky-tint);color:var(--c-sky);border-color:var(--c-sky-line);}
  body.ffc .ffc-vis.v-private{background:var(--c-violet-tint);color:var(--c-violet);border-color:var(--c-violet-line);}
  body.ffc .ffc-dday{background:var(--c-sky-tint);color:var(--c-sky);border-color:var(--c-sky-line);}
  body.ffc .ffc-dday.soon{background:var(--c-coral-tint);color:var(--c-coral);border-color:var(--c-coral-line);}
  body.ffc .ffc-post-b{margin:0;padding:10px 14px;border-radius:4px 16px 16px 16px;background:var(--c-soft);border:1px solid #e9f0f1;
    font-size:15px;line-height:1.6;color:var(--c-ink);white-space:pre-line;overflow-wrap:anywhere;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
  body.ffc .ffc-post-f{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin-top:auto;}
  body.ffc .ffc-who{display:flex;align-items:center;gap:8px;min-width:0;}
  body.ffc .ffc-av{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;
    background:linear-gradient(135deg,#d7eeeb,#dbe9f6);color:var(--c-teal-strong);font-size:13.5px;font-weight:800;}
  body.ffc .ffc-who-t{display:flex;flex-direction:column;min-width:0;line-height:1.3;}
  body.ffc .ffc-who-t b{font-size:13.5px;color:var(--c-ink);overflow-wrap:anywhere;}
  body.ffc .ffc-who-t span{font-size:12px;color:var(--c-ink-3);overflow-wrap:anywhere;}
  body.ffc .ffc-stats,body.ffc .ffa-cnt{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;}
  body.ffc .ffc-st{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--c-ink-3);white-space:nowrap;}
  body.ffc .ffc-st.ok{color:var(--c-green);}
  body.ffc .ffc-st b{color:var(--c-teal-strong);font-weight:800;}

  /* 의제 카드(참여형 캠페인) */
  body.ffc .ffc-camp{overflow:hidden;padding:18px 18px 16px;gap:8px;}
  body.ffc .ffc-camp.s-open::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#41a8ab,#6aaed8);}
  body.ffc .ffc-camp.s-closed{background:#fbfcfc;}
  body.ffc .ffc-camp .c-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0;}
  body.ffc .ffc-camp .c-find{margin:2px 0 0;font-size:17px;font-weight:800;line-height:1.4;color:var(--c-ink);overflow-wrap:anywhere;}
  body.ffc .ffc-camp .ffa-sum{margin:0;font-size:14px;line-height:1.55;color:var(--c-ink-2);}
  body.ffc .ffc-camp-m{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:12.5px;color:var(--c-ink-3);}
  body.ffc .ffc-camp-m .adm-ic{margin-top:2px;}
  body.ffc .ffc-camp .ffa-card-f{margin-top:auto;padding-top:12px;border-top:1px solid #edf2f3;flex-wrap:wrap;}
  body.ffc .ffc-camp .ffa-cnt{font-size:13px;font-weight:600;color:var(--c-ink-2);}
  body.ffc .ffc-camp .ffa-cnt .ffc-st{font-size:13px;color:var(--c-ink-2);}
  body.ffc .ffa-cta{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px 0 14px;border-radius:999px;border:1px solid var(--c-line-2);background:#fff;
    font-size:13.5px;font-weight:700;color:var(--c-ink);white-space:nowrap;}
  body.ffc .ffa-cta.go{background:var(--c-teal);border-color:var(--c-teal);color:#fff;}
  body.ffc .ffc-more{margin-top:12px;border-radius:14px;}

  /* 빈 화면 */
  body.ffc .ffc-empty{text-align:center;padding:38px 20px 34px;border:1.5px dashed var(--c-line-2);border-radius:var(--c-r);background:rgba(255,255,255,.75);}
  body.ffc .ffc-empty-ic{display:flex;align-items:center;justify-content:center;width:68px;height:68px;margin:0 auto 14px;border-radius:50%;
    background:linear-gradient(135deg,#dff2ef,#e2eef9);color:var(--c-teal);}
  body.ffc .ffc-empty h3{margin:0 0 6px;font-size:17px;font-weight:800;color:var(--c-ink);word-break:keep-all;}
  body.ffc .ffc-empty p{margin:0 auto;max-width:440px;font-size:14px;line-height:1.6;color:var(--c-ink-2);word-break:keep-all;}
  body.ffc .ffc-empty-b{margin-top:16px;min-height:44px;padding:0 18px;border-radius:999px;font-size:14.5px;gap:6px;}

  /* ── 현장의견 상세: 의견 확인 + 답변·처리 현황 ── */
  body.ffc .ffc-view{padding:20px 22px;}
  body.ffc .ffc-lock{display:flex;align-items:center;gap:6px;margin-top:12px;background:var(--c-violet-tint);border-color:var(--c-violet-line);color:var(--c-violet);border-radius:12px;}
  body.ffc .ffc-view-who{display:flex;align-items:center;gap:12px;margin:14px 0 2px;min-width:0;}
  body.ffc .ffc-view-who .ffc-av{flex-basis:42px;width:42px;height:42px;font-size:16px;}
  body.ffc .ffc-kvs{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0;min-width:0;}
  body.ffc .ffc-kvs>div{display:flex;align-items:baseline;gap:6px;min-width:0;}
  body.ffc .ffc-kvs dt{font-size:12.5px;font-weight:600;color:var(--c-ink-3);white-space:nowrap;}
  body.ffc .ffc-kvs dd{margin:0;font-size:14.5px;font-weight:700;color:var(--c-ink);overflow-wrap:anywhere;}
  body.ffc .panel>h2.ffc-view-l{margin:16px 0 8px;font-size:14px;color:var(--c-teal-strong);}
  body.ffc .ffc-bubble{padding:14px 16px;border-radius:4px 18px 18px 18px;background:var(--c-teal-tint);border:1px solid var(--c-teal-line);
    font-size:15.5px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--c-ink);}
  body.ffc .ffc-reply h2 small{font-size:12px;font-weight:600;color:var(--c-ink-3);}
  body.ffc .ffc-reply.has>h2 .adm-ic{color:var(--c-green);}
  body.ffc .ffc-reply-b{padding:12px 16px;border-radius:14px;background:var(--c-green-tint);border:1px solid var(--c-green-line);font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;}
  body.ffc .ffc-reply-empty{margin:0;padding:12px 16px;border-radius:14px;background:#f6f8f9;border:1px dashed var(--c-line-2);font-size:14px;color:var(--c-ink-3);}
  body.ffc .panel.ffc-actions{background:transparent;border:0;box-shadow:none;padding:0;}
  body.ffc .ffc-abtns{display:flex;gap:8px;flex-wrap:wrap;}
  body.ffc .ffc-abtns .btn{flex:1 1 150px;margin:0;gap:6px;}

  /* ── 작성 화면 ── */
  body.ffc .ffc-formhead{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;padding:16px 18px;border-radius:var(--c-r);border:1px solid var(--c-line);
    background:linear-gradient(120deg,#fff 0%,#eff9f7 58%,#eaf3fb 100%);box-shadow:var(--c-shadow);}
  body.ffc .ffc-formhead h2{margin:1px 0 2px;font-size:17px;font-weight:800;color:var(--c-ink);}
  body.ffc .ffc-formhead p{margin:0;font-size:13.5px;line-height:1.55;color:var(--c-ink-2);word-break:keep-all;}
  body.ffc .field>label{color:var(--c-ink-2);}
  body.ffc .field input:where(:not([type="checkbox"]):not([type="radio"])),body.ffc .field select,body.ffc .field textarea{border-color:var(--c-line-2);border-radius:12px;}
  body.ffc .field input:where(:not([type="checkbox"]):not([type="radio"])):focus,body.ffc .field select:focus,body.ffc .field textarea:focus{outline:0;border-color:var(--c-teal);box-shadow:0 0 0 3px rgba(31,127,132,.15);}
  body.ffc .ffc-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  body.ffc .ffc-kind-o{display:flex;align-items:center;gap:10px;min-height:62px;padding:10px 14px;border:1.5px solid var(--c-line-2);border-radius:14px;background:#fff;cursor:pointer;min-width:0;}
  body.ffc .ffc-kind-o input{width:20px;height:20px;margin:0;flex:0 0 auto;accent-color:var(--c-teal);}
  body.ffc .ffc-ko-ic{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:#f1f5f6;color:var(--c-ink-3);}
  body.ffc .ffc-ko-t{display:flex;flex-direction:column;min-width:0;}
  body.ffc .ffc-ko-t b{font-size:15px;line-height:1.35;word-break:keep-all;}
  body.ffc .ffc-ko-t small{font-size:12.5px;color:var(--c-ink-3);word-break:keep-all;}
  body.ffc .ffc-kind-o.on.k-opinion{border-color:var(--c-teal);background:var(--c-teal-tint);}
  body.ffc .ffc-kind-o.on.k-opinion .ffc-ko-ic{background:#fff;color:var(--c-teal);}
  body.ffc .ffc-kind-o.on.k-violation{border-color:#d98a66;background:var(--c-coral-tint);}
  body.ffc .ffc-kind-o.on.k-violation input{accent-color:var(--c-coral);}
  body.ffc .ffc-kind-o.on.k-violation .ffc-ko-ic{background:#fff;color:var(--c-coral);}
  body.ffc .ffc-kind-o:focus-within{outline:2px solid var(--c-teal);outline-offset:1px;}
  body.ffc .ffa-vis-o{border-radius:14px;border-color:var(--c-line-2);}
  body.ffc .ffa-vis-o.on{border-color:var(--c-teal);background:var(--c-teal-tint);color:var(--c-teal-strong);}
  body.ffc .ffc-visr .ffa-vis-o{align-items:flex-start;min-height:62px;padding:12px 14px;}
  body.ffc .ffc-visr .ffa-vis-o input{margin-top:2px;}
  body.ffc .ffc-visr .ffa-vis-o:has(input[value="private"]:checked){border-color:#8f84c7;background:var(--c-violet-tint);color:var(--c-violet);}
  body.ffc .ffc-visr .ffa-vis-o:has(input[value="private"]:checked) input{accent-color:var(--c-violet);}
  body.ffc .ffc-vo{display:flex;flex-direction:column;gap:2px;min-width:0;}
  body.ffc .ffc-vo b{display:inline-flex;align-items:center;gap:5px;font-size:15px;}
  body.ffc .ffc-vo small{font-size:12.5px;font-weight:500;color:var(--c-ink-3);word-break:keep-all;}
  body.ffc .ffa-note{border-radius:12px;background:var(--c-violet-tint);border-color:var(--c-violet-line);color:var(--c-violet);}
  body.ffc .ffa-mode-o{border-radius:14px;border-color:var(--c-line-2);}
  body.ffc .ffa-mode-o.on{border-color:var(--c-teal);background:var(--c-teal-tint);}
  body.ffc .ffa-optbox{border-radius:14px;background:var(--c-soft);border-color:var(--c-line);}
  body.ffc .ffa-optn{background:var(--c-teal-tint);border-color:var(--c-teal-line);color:var(--c-teal-strong);}
  body.ffc .thumb{border-radius:12px;border-color:var(--c-line-2);}
  body.ffc .photo-cell{border-radius:12px;border-color:var(--c-line-2);}

  /* ── 등록 완료 ── */
  body.ffc .ffa-done{padding:30px 20px;}
  body.ffc .ffa-done-i{display:flex;align-items:center;justify-content:center;width:64px;height:64px;line-height:1;margin:0 auto 12px;background:var(--c-violet-tint);color:var(--c-violet);}
  body.ffc .ffa-done .banner{border-radius:12px;}
  body.ffc .ffa-done .ffc-abtns{margin-top:6px;}

  /* ── 의제 상세 ── */
  body.ffc .ffa-dh{position:relative;overflow:hidden;padding:22px 22px 20px;}
  body.ffc .ffa-dh.s-open::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#41a8ab,#6aaed8);}
  body.ffc .ffa-dh .c-top{align-items:center;}
  body.ffc .ffa-title{font-size:22px;letter-spacing:-.01em;color:var(--c-ink);}
  body.ffc .ffa-meta{color:var(--c-ink-3);}
  body.ffc .ffa-content{line-height:1.75;color:var(--c-ink);}
  body.ffc .ffc-sumwrap{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;border-radius:14px;background:var(--c-teal-tint);color:var(--c-teal-strong);}
  body.ffc .ffc-sumwrap .ffa-sumline{margin:0;padding:0;border:0;color:inherit;font-weight:800;}
  body.ffc .ffa-opt{border-radius:14px;border-color:var(--c-line-2);transition:border-color .15s,background-color .15s;}
  @media (hover:hover){ body.ffc .ffa-opt:hover{border-color:var(--c-teal-line);background:var(--c-soft);} }
  body.ffc .ffa-opt.on{border-color:var(--c-teal);background:var(--c-teal-tint);}
  body.ffc .ffa-opt input{accent-color:var(--c-teal);}
  body.ffc .ffa-votep .banner.ok{border-radius:12px;}
  body.ffc .ffa-bar-t{height:12px;border:0;border-radius:999px;background:#edf2f3;}
  body.ffc .ffa-bar-f{border-radius:999px;background:#b9c8cd;}
  body.ffc .ffa-bar.mine .ffa-bar-f{background:linear-gradient(90deg,#41a8ab,#1f7f84);}
  body.ffc .ffa-bar.mine .ffa-bar-l{color:var(--c-teal-strong);}
  body.ffc .ffa-cmt{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:0;border:0;border-radius:0;background:transparent;}
  body.ffc .ffa-cmt .ffc-av{flex-basis:34px;width:34px;height:34px;}
  body.ffc .ffc-cm{flex:1 1 auto;min-width:0;padding:10px 14px;border-radius:4px 16px 16px 16px;background:#f5f8f9;border:1px solid #e6eef0;}
  body.ffc .ffa-cmt.mine .ffc-cm{background:var(--c-teal-tint);border-color:var(--c-teal-line);}
  body.ffc .ffc-cempty{border:1.5px dashed var(--c-line);border-radius:14px;margin-bottom:6px;}
  body.ffc .ffa-cbox textarea{border:1.5px solid var(--c-line-2);border-radius:14px;padding:10px 12px;font:inherit;font-size:15px;}
  body.ffc .ffa-cbox textarea:focus{outline:0;border-color:var(--c-teal);box-shadow:0 0 0 3px rgba(31,127,132,.15);}
  body.ffc .ffa-cbox .btn{border-radius:14px;}
  body.ffc .ffa-stats>div{border-radius:14px;border-color:var(--c-line);background:var(--c-soft);}
  body.ffc .ffa-tbl th{background:var(--c-soft);}
  body.ffc .ffa-mbtns .btn{border-radius:12px;}

  /* ── 태블릿·PC(760px 이상): 카드 2열 ── */
  @media (min-width:760px){
    body.ffc .ffc-feed{grid-template-columns:repeat(2,minmax(0,1fr));}
    body.ffc .ffc-quick{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 18px;}
    body.ffc .ffc-quick .ffc-cta{width:auto;min-width:180px;padding:0 22px;}
    body.ffc .ffc-quick-note,body.ffc .ffc-how{grid-column:1 / -1;}
  }
  /* ── 태블릿(641~1199): 안내 3줄은 가로로 ── */
  @media (max-width:1199px){
    body.ffc .ffc-hero-pts{flex-direction:row;flex-wrap:wrap;}
  }

  /* ── PC(1200px 이상): [빠른 참여·찾아보기 | 카드 목록] ── */
  @media (min-width:1200px){
    body.ffc #app{max-width:1220px;padding:22px 28px calc(96px + env(safe-area-inset-bottom));}
    body.ffc .ffc-hero{padding:24px 28px;}
    body.ffc .ffc-title{font-size:26px;}
    body.ffc .ffc-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start;}
    body.ffc .ffc-quick{display:flex;align-items:stretch;}
    body.ffc .ffc-quick .ffc-cta{width:100%;min-width:0;}
    body.ffc .ffc-how{align-self:flex-start;}
    body.ffc .ffc-camp .c-find{font-size:17.5px;}
    body.ffc .ffc-view,body.ffc .ffa-dh{padding:26px 28px 24px;}
    body.ffc .ffa-title{font-size:24px;}
    body.ffc #app>.panel,body.ffc #app>.ffc-formhead,body.ffc #app>.banner,body.ffc #app>.panel.ffc-actions{max-width:900px;margin-left:auto;margin-right:auto;}
    body.ffc #app>.ffa-seg + .panel.ffa-done{max-width:640px;margin-left:auto;margin-right:auto;}
  }
  /* PC 왼쪽 칸(340px)에서는 필터 이름을 칩 위에 두어 칩이 한 줄에 들어가게 */
  @media (min-width:1200px){
    body.ffc .ffc-filter .fblk{flex-direction:column;gap:6px;margin-bottom:12px;}
    body.ffc .ffc-filter .fblk-l{flex:0 0 auto;padding-top:0;}
  }

  /* ── 모바일 ── */
  @media (max-width:640px){
    body.ffc .ffc-hero{padding:16px;gap:10px;margin-bottom:12px;}
    body.ffc .ffc-hero-main{gap:12px;flex-basis:100%;}
    body.ffc .ffc-hero-ic{flex-basis:44px;width:44px;height:44px;border-radius:14px;}
    body.ffc .ffc-hero-ic .adm-ic{width:24px;height:24px;}
    body.ffc .ffc-eyebrow{font-size:11.5px;}
    body.ffc .ffc-title{font-size:19px;}
    body.ffc .ffc-sub{font-size:13.5px;margin-top:4px;}
    body.ffc .ffc-hero-pts{display:none;}  /* 같은 안내(공개·비공개)는 바로 아래 '빠른 참여'에 있다 */
    body.ffc .ffc-eyebrow,body.ffc .ffc-sub-2{display:none;}   /* 모바일은 머리말을 짧게(첫 문장만) */
    body.ffc .ffc-quick{gap:10px;}
    body.ffc .ffc-quick-t p{display:none;}  /* 제목 한 줄 + 버튼만 — 설명은 '참여방법 보기'에 같은 내용 */
    body.ffc .ffc-qi{flex-basis:36px;width:36px;height:36px;border-radius:12px;}
    body.ffc .ffc-quick-t{align-items:center;}
    body.ffc .ffc-quick-t h2{margin:0;font-size:16px;}
    body.ffc .ffc-cta{min-height:48px;}
    body.ffc .ffa-seg{margin-bottom:12px;border-radius:20px;padding:5px;gap:5px;}
    body.ffc .ffa-seg-b{min-height:60px;padding:8px 10px;gap:8px;border-radius:15px;justify-content:flex-start;}
    body.ffc .ffc-seg-ic{flex-basis:28px;width:28px;height:28px;}
    body.ffc .ffc-seg-ic .adm-ic{width:15px;height:15px;}
    body.ffc .ffc-seg-t b{font-size:14.5px;}
    body.ffc .ffc-seg-t small{font-size:11.5px;}
    body.ffc .ffc-quick,body.ffc .panel{padding:16px;}
    body.ffc .ffc-kinds{grid-template-columns:minmax(0,1fr);}
    body.ffc .ffc-view,body.ffc .ffa-dh{padding:18px 16px;}
    body.ffc .ffa-title{font-size:19px;}
    body.ffc .ffc-post,body.ffc .ffc-camp{padding:15px 16px;}
  }
  @media (max-width:359px){
    body.ffc .ffc-fgrid{grid-template-columns:minmax(0,1fr);}
    body.ffc .ffc-seg-ic{display:none;}
  }
}
