.fcc-host { position: relative; }
.fcc-host[aria-busy="true"] { opacity: .78; pointer-events: none; }
.fcc-loading { padding: 1.25rem; color: var(--muted, #5f6771); text-align: center; }
.fcc-kicker { display: block; margin-bottom: .2rem; color: #2563eb; font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fcc-chip { display: inline-flex; align-items: center; border-radius: 999px; padding: .25rem .55rem; font-size: .75rem; font-weight: 750; background: #e8eef8; color: #274269; }
.fcc-chip.is-ok { background: #dcfce7; color: #166534; }
.fcc-chip.is-warn { background: #fef3c7; color: #92400e; }
.fcc-chip.is-danger { background: #fee2e2; color: #991b1b; }
.fcc-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: .85rem; }
.fcc-checklist-card { display: grid; gap: .65rem; border: 1px solid #dbe3ef; border-radius: 14px; padding: 1rem; background: #fff; }
.fcc-card-head, .fcc-detail-head, .fcc-item-head, .fcc-item-actions { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.fcc-card-head h4, .fcc-item-head h5 { margin: .15rem 0 0; }
.fcc-progress { position: relative; height: 8px; overflow: hidden; border-radius: 999px; background: #e5eaf1; }
.fcc-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #10b981); }
.fcc-progress.is-large { height: 18px; margin: .9rem 0; }
.fcc-progress.is-large span { position: absolute; inset: 0; display: grid; place-items: center; color: #0f172a; font-size: .7rem; font-weight: 800; }
.fcc-metrics, .fcc-priority-row, .fcc-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.fcc-metrics { justify-content: space-between; color: #5f6771; font-size: .78rem; }
.fcc-empty { padding: 1.2rem; border: 1px dashed #b8c4d4; border-radius: 12px; text-align: center; }
.fcc-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: .75rem; }
.fcc-dashboard-grid article { border: 1px solid #dbe3ef; border-radius: 12px; padding: .8rem; background: #f8fafc; }
.fcc-dashboard-grid article.is-danger { border-color: #fecaca; background: #fff1f2; }
.fcc-dashboard-grid strong { display: block; font-size: 1.55rem; }
.fcc-dashboard-grid span { color: #5f6771; font-size: .78rem; }
.fcc-financial-grid { margin-top: .75rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.fcc-financial-grid strong { font-size: 1.08rem; }
.fcc-priority-row { margin: .8rem 0; }
.fcc-portfolio { margin-top: 1rem; overflow-x: auto; }
.fcc-portfolio table { min-width: 980px; }
.fcc-portfolio td, .fcc-portfolio th { vertical-align: top; }
.fcc-detail-head { align-items: center; }
.fcc-detail-head > div { flex: 1; }
.fcc-detail-head h3 { margin: .1rem 0; }
.fcc-upload-receipt { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; margin: .85rem 0; padding: .85rem; border: 1px solid #86d3b8; border-left: 4px solid #16815b; border-radius: 10px; background: #f0fdf7; }
.fcc-upload-receipt-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #16815b; color: #fff; font-weight: 850; }
.fcc-upload-receipt > div { min-width: 0; }
.fcc-upload-receipt > div > strong, .fcc-upload-receipt > div > span { display: block; }
.fcc-upload-receipt > div > span { margin-top: .15rem; overflow-wrap: anywhere; }
.fcc-upload-receipt dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .5rem .8rem; margin: .7rem 0 0; }
.fcc-upload-receipt dl div { min-width: 0; }
.fcc-upload-receipt dt { color: #526776; font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.fcc-upload-receipt dd { margin: .12rem 0 0; overflow-wrap: anywhere; color: #163f34; font-size: .78rem; font-weight: 700; }
.fcc-toolbar { margin: .8rem 0; }
.fcc-selector-grid, .fcc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.fcc-selector-grid { margin: .8rem 0; padding: .8rem; border-radius: 12px; background: #f1f5f9; }
.fcc-form-grid label, .fcc-selector-grid label, .fcc-evidence-form label { display: grid; gap: .25rem; font-size: .78rem; font-weight: 700; }
.fcc-sections-overview { display: grid; align-content: center; gap: .15rem; min-height: 42px; border-left: 1px solid #cbd5e1; padding-left: .8rem; }
.fcc-sections-overview span { color: #64748b; font-size: .78rem; }
.fcc-form-grid .wide { grid-column: 1 / -1; }
.fcc-sections { display: grid; gap: 1rem; }
.fcc-checklist-section { overflow: hidden; border: 2px solid #e7bd55; border-radius: 14px; background: #fffdf6; }
.fcc-checklist-section.is-complete { border-color: #49b88f; background: #f5fcf8; }
.fcc-checklist-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; cursor: pointer; padding: .8rem 1rem; background: #fff3cb; color: #65420b; }
.fcc-checklist-section.is-complete > summary { background: #dff7eb; color: #12583f; }
.fcc-checklist-section > summary > span:first-child { display: grid; gap: .08rem; min-width: 0; }
.fcc-checklist-section > summary small { font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.fcc-checklist-section > summary strong { overflow-wrap: anywhere; font-size: 1rem; }
.fcc-section-state { flex: 0 0 auto; border-radius: 999px; padding: .3rem .6rem; background: #fff; font-size: .73rem; font-weight: 800; white-space: nowrap; }
.fcc-section-body { padding: .9rem; }
.fcc-section-save { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .9rem; border-top: 1px solid #d7e0dc; padding-top: .85rem; }
.fcc-section-save p { margin: 0; color: #526776; font-size: .8rem; }
.fcc-section-save button { min-width: 170px; }
.fcc-items { display: grid; gap: .8rem; }
.fcc-item { border: 1px solid #dbe3ef; border-left: 4px solid #93c5fd; border-radius: 12px; padding: .9rem; background: #fff; break-inside: avoid; }
.fcc-item.is-nc { border-color: #fca5a5; border-left-color: #dc2626; background: #fffafa; }
.fcc-item.is-oss { border-color: #f2cf87; border-left-color: #d99032; background: #fffcf5; }
.fcc-item.is-complete { border-left-color: #18a878; }
.fcc-item.is-na { border-left-color: #94a3b8; background: #f8fafc; }
.fcc-item.is-dependency-suspended { border-left-color: #d69b2d; background: #fffaf0; }
.fcc-dependency-notice { display: grid; gap: .22rem; margin-top: .65rem; border: 1px solid #edcd8d; border-radius: 9px; padding: .65rem .75rem; background: #fff5d9; color: #694d16; font-size: .78rem; line-height: 1.45; }
.fcc-dependency-notice strong { color: #513907; }
.fcc-item.is-dependency-suspended [disabled] { cursor: not-allowed; opacity: .72; }
.fcc-item small { color: #64748b; }
.fcc-item-heading { min-width: 0; flex: 1; }
.fcc-item-kind { display: inline-flex; align-items: center; min-height: 24px; margin-right: .45rem; border-radius: 999px; padding: .2rem .5rem; background: var(--surface-muted, #dce7e8); color: var(--text-primary, #071c24); font-size: .7rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.fcc-item-head h5 { max-width: 70ch; color: var(--text-primary, #071c24); font-size: 1rem; line-height: 1.4; }
.fcc-criterion-help { max-width: 80ch; margin: .35rem 0 0; color: var(--text-secondary, #56666b); font-size: .82rem; line-height: 1.45; }
.fcc-item-badges { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.fcc-applicability-badge { display: inline-flex; align-items: center; min-height: 25px; border: 1px solid #cbd5e1; border-radius: 999px; padding: .2rem .55rem; background: #f1f5f9; color: #475569; font-size: .72rem; font-weight: 750; white-space: nowrap; }
.fcc-applicability-badge.is-a { border-color: #86d3b8; background: #e8f8f2; color: #116247; }
.fcc-applicability-badge.is-na { border-color: #cbd5e1; background: #f1f5f9; color: #475569; }
.fcc-applicability-badge.is-dv { border-color: #f2cf87; background: #fff7df; color: #7a4c0b; }
.fcc-route-reason { display: flex; align-items: flex-start; gap: .4rem; margin-top: .65rem; border-radius: 8px; padding: .48rem .6rem; background: #edf3f2; color: #334f53; font-size: .76rem; line-height: 1.4; }
.fcc-route-reason > span:first-child { color: #18a878; font-size: 1rem; font-weight: 800; line-height: 1; }
.fcc-declared { margin-top: .35rem; border-radius: 8px; padding: .5rem; background: #eff6ff; color: #1e3a8a; font-size: .78rem; }
.fcc-form-grid { margin-top: .7rem; }
.fcc-form-grid input, .fcc-form-grid select, .fcc-form-grid textarea, .fcc-selector-grid select, .fcc-evidence-form input, .fcc-evidence-form select { width: 100%; }
.fcc-decision-grid { margin-top: .8rem; padding-top: .75rem; border-top: 1px solid #e2e8f0; }
.fcc-state-help { margin: -.2rem 0 .1rem; color: #526776; font-size: .75rem; line-height: 1.4; }
.fcc-response-details { margin-top: .75rem; border: 1px solid #d7e0dc; border-radius: 9px; background: #fbfcfc; }
.fcc-response-details > summary { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 42px; cursor: pointer; padding: .55rem .7rem; color: #334f53; font-size: .8rem; font-weight: 700; }
.fcc-response-details > summary strong { border-radius: 999px; padding: .15rem .45rem; background: #fff0cf; color: #7a4c0b; font-size: .68rem; text-transform: uppercase; }
.fcc-response-details > .fcc-form-grid { margin: 0; border-top: 1px solid #e2e8f0; padding: .7rem; }
.fcc-response-details > summary:focus-visible, .fcc-evidence-panel > summary:focus-visible { outline: 3px solid rgba(7, 28, 36, .24); outline-offset: 2px; }
.fcc-corrective-fields { margin: .75rem 0 0; border: 1px solid #f2cf87; border-radius: 9px; padding: 0 .7rem .7rem; background: #fffbef; }
.fcc-item.is-nc .fcc-corrective-fields { border-color: #fca5a5; background: #fff7f7; }
.fcc-corrective-fields[hidden] { display: none; }
.fcc-corrective-fields legend { padding: 0 .35rem; color: #7a4c0b; font-size: .78rem; font-weight: 800; }
.fcc-item.is-nc .fcc-corrective-fields legend { color: #991b1b; }
.fcc-item-actions { align-items: center; margin-top: .65rem; }
.fcc-item-actions span { color: #64748b; font-size: .77rem; }
.fcc-evidence-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: .55rem; align-items: end; margin-top: .7rem; padding-top: .7rem; border-top: 1px dashed #dbe3ef; }
.fcc-evidence-form label small { color: #64748b; font-weight: 400; }
.fcc-evidence-form .fcc-inline-check { display: flex; align-items: center; gap: .45rem; min-height: 2.5rem; }
.fcc-evidence-form .fcc-inline-check input { width: auto; }
.fcc-photo-slot { grid-column: 1 / -1; display: grid; gap: .6rem; padding: .75rem; border: 1px solid #bfd3e0; border-radius: 12px; background: #f7fbfd; }
.fcc-photo-slot-head { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.fcc-photo-slot-head span { color: #64748b; font-size: .76rem; }
.fcc-photo-preview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: .65rem; }
.fcc-photo-preview { position: relative; display: grid; min-width: 0; overflow: hidden; border: 1px solid #c8d7e2; border-radius: 10px; background: #fff; color: #17212b; text-decoration: none; }
.fcc-photo-preview img { display: block; width: 100%; height: 145px; object-fit: cover; background: #e8eef2; }
.fcc-photo-preview > span { display: grid; gap: .15rem; padding: .55rem; }
.fcc-photo-preview > span strong, .fcc-photo-preview > span small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fcc-photo-preview > span strong { font-size: .76rem; }
.fcc-photo-preview > span small { color: #64748b; font-size: .7rem; }
.fcc-photo-preview:hover, .fcc-photo-preview:focus-visible { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.fcc-photo-slot-empty { display: flex; align-items: center; gap: .7rem; min-height: 82px; border: 1px dashed #aac1d0; border-radius: 10px; padding: .7rem; color: #526776; background: #fff; }
.fcc-photo-slot-empty > span { font-size: 1.8rem; }
.fcc-photo-slot-empty div { display: grid; gap: .15rem; }
.fcc-photo-slot-empty small { color: #64748b; }
.fcc-photo-slot.has-local-preview .fcc-photo-slot-empty { display: none; }
.fcc-photo-local-preview { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: .7rem; align-items: center; overflow: hidden; border: 2px solid #16815b; border-radius: 10px; padding: .5rem; background: #f0fdf7; }
.fcc-photo-local-preview img { width: 150px; height: 110px; border-radius: 7px; object-fit: cover; background: #e8eef2; }
.fcc-photo-local-preview span { display: grid; gap: .2rem; min-width: 0; }
.fcc-photo-local-preview small { overflow-wrap: anywhere; color: #526776; }
.fcc-qr-button { border-color: #175d86; background: #175d86; }
.fcc-capture-panel { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(190px, 270px) minmax(0, 1fr); gap: 1rem; align-items: center; margin-top: .35rem; padding: 1rem; border: 2px solid #4f93bb; border-radius: 14px; background: #f2f9fd; }
.fcc-capture-panel.is-expired { border-color: #d7a944; background: #fff9e9; }
.fcc-capture-qr { display: grid; place-items: center; padding: .55rem; border-radius: 10px; background: #fff; }
.fcc-capture-qr img { display: block; width: min(100%, 250px); aspect-ratio: 1; }
.fcc-capture-copy h4 { margin: .2rem 0 .45rem; }
.fcc-capture-copy ol { margin: .4rem 0 .7rem; padding-left: 1.25rem; color: #334155; }
.fcc-capture-copy li + li { margin-top: .28rem; }
.fcc-capture-copy [data-fcc-capture-status] { margin: .55rem 0; color: #92400e; font-size: .84rem; font-weight: 750; }
.fcc-capture-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.fcc-capture-buttons a { display: inline-flex; align-items: center; min-height: 40px; border-radius: 8px; padding: .55rem .8rem; background: #175d86; color: #fff; font-size: .82rem; font-weight: 750; text-decoration: none; }
.fcc-evidence-register { margin-top: 1rem; }
.fcc-evidence-list { display: grid; gap: .6rem; }
.fcc-evidence-list > article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr); gap: .75rem; padding: .75rem; border: 1px solid #dbe3ef; border-radius: 10px; background: #f8fafc; }
.fcc-evidence-list p { margin: .25rem 0; overflow-wrap: anywhere; }
.fcc-evidence-list .fcc-evidence-location { margin-top: .45rem; border-left: 3px solid #86d3b8; padding-left: .55rem; color: #35534a; font-size: .75rem; line-height: 1.45; }
.fcc-evidence-review-form { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .4rem; align-items: center; }
.fcc-evidence-review-form input[type="text"] { min-width: 0; width: 100%; }
.fcc-evidence-review-form .fcc-inline-check { display: flex; align-items: center; gap: .35rem; font-size: .78rem; }
.fcc-findings { margin-top: 1rem; }
.fcc-findings article { display: grid; grid-template-columns: 1fr minmax(260px, .6fr); gap: .7rem; padding: .75rem; border: 1px solid #fecaca; border-radius: 10px; background: #fff7f7; }
.fcc-findings article + article { margin-top: .55rem; }
.fcc-findings p { margin: .25rem 0; }
.fcc-findings form { display: flex; align-items: center; gap: .4rem; }
.fcc-config-card { margin-top: .8rem; }
.fcc-config-card.is-draft { border: 2px solid #fbbf24; }
.fcc-config-card fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: .7rem 0; border: 1px solid #dbe3ef; border-radius: 10px; }
.fcc-config-card fieldset .wide { grid-column: 1 / -1; }
.fcc-config-card fieldset label { display: grid; gap: .25rem; }
.fcc-rule-guide { grid-column: 1 / -1; padding: .55rem; border-radius: 8px; background: #eff6ff; }
.fcc-rule-guide summary { cursor: pointer; font-weight: 750; color: #1e3a8a; }
.fcc-rule-guide p { margin: .45rem 0 0; color: #475569; font-size: .78rem; }
.fcc-subconfig { margin: .8rem 0; padding: .75rem; border: 1px solid #dbe3ef; border-radius: 10px; background: #f8fafc; }
.fcc-new-config { margin-top: .85rem; border: 1px dashed #94a3b8; border-radius: 10px; padding: .7rem; }
.fcc-new-config summary { cursor: pointer; font-weight: 750; }
.fcc-new-config form + form { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #dbe3ef; }
.fcc-config-card .danger { border-color: #ef4444; color: #991b1b; }

@media (max-width: 760px) {
  .fcc-selector-grid, .fcc-form-grid, .fcc-findings article, .fcc-config-card fieldset, .fcc-evidence-list > article { grid-template-columns: 1fr; }
  .fcc-form-grid .wide, .fcc-config-card fieldset .wide { grid-column: auto; }
  .fcc-evidence-form { grid-template-columns: 1fr; }
  .fcc-photo-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fcc-photo-preview img { height: 120px; }
  .fcc-photo-local-preview { grid-template-columns: 105px minmax(0, 1fr); }
  .fcc-photo-local-preview img { width: 105px; height: 92px; }
  .fcc-capture-panel { grid-template-columns: 1fr; }
  .fcc-evidence-review-form { grid-template-columns: 1fr; }
  .fcc-detail-head { align-items: flex-start; flex-wrap: wrap; }
  .fcc-item-head { flex-wrap: wrap; }
  .fcc-item-badges { width: 100%; justify-content: flex-start; }
  .fcc-item-actions { align-items: stretch; flex-direction: column; }
  .fcc-item-actions button { width: 100%; }
  .fcc-checklist-section > summary, .fcc-section-save { align-items: stretch; flex-direction: column; }
  .fcc-section-state { align-self: flex-start; white-space: normal; }
  .fcc-section-save button { width: 100%; }
  .fcc-response-details > summary { align-items: flex-start; }
}

@media print {
  body * { visibility: hidden; }
  .fcc-host, .fcc-host * { visibility: visible; }
  .fcc-host { position: absolute; inset: 0; }
  .fcc-toolbar, .fcc-evidence-form, .fcc-item button, [data-fcc-action="back"] { display: none !important; }
}
.fcc-evidence-panel{border-top:1px solid #d7e0dc;margin-top:12px;padding-top:4px}
.fcc-evidence-panel>summary{cursor:pointer;padding:12px 0;font-weight:650}
.fcc-evidence-metadata{grid-column:1/-1;min-width:0}
.fcc-evidence-metadata>summary{cursor:pointer;padding:10px 0;font-weight:600}
.fcc-scope-explanation{font-size:14px;line-height:1.5;padding:12px 14px;border-radius:8px;background:#edf3f2}
.fcc-evidence-form[data-photo-required="0"] .fcc-photo-slot:has(.fcc-photo-slot-empty):not(.has-local-preview){display:none}
