/* Bone Flow #039 FilePicker v1.0.2 */
.bone-filepicker{box-sizing:border-box;display:grid;gap:8px;color:#e5e7eb;font-family:Meiryo,"Yu Gothic",sans-serif;max-width:100%;padding:10px;border:1px solid #334155;border-radius:12px;background:#172033}
.bone-filepicker *{box-sizing:border-box}
.bone-filepicker__label-host{font-weight:700}
.bone-filepicker__dropzone{display:grid;place-items:center;gap:4px;min-height:88px;padding:14px;border:2px dashed #475569;border-radius:10px;background:#0b1220;text-align:center;color:#cbd5e1;transition:border-color .15s,background .15s,box-shadow .15s}
.bone-filepicker__drop-title{font-size:14px;color:#e5e7eb}
.bone-filepicker__drop-sub{font-size:12px;color:#94a3b8}
.bone-filepicker.is-dragover .bone-filepicker__dropzone{border-color:#60a5fa;background:#0c1a2d;box-shadow:0 0 0 3px rgba(96,165,250,.16)}
.bone-filepicker.is-disabled .bone-filepicker__dropzone{cursor:not-allowed}
.bone-filepicker__control{display:flex;gap:8px;align-items:center;padding:6px;border:1px solid #475569;border-radius:10px;background:#0f172a;min-height:44px;transition:border-color .15s,box-shadow .15s}
.bone-filepicker__input{display:block;flex:1;min-width:0;color:inherit;background:transparent;font:inherit}
.bone-filepicker__input::file-selector-button{margin-right:10px;padding:8px 12px;border:1px solid #475569;border-radius:8px;background:#1e293b;color:#e5e7eb;cursor:pointer;font:inherit;font-weight:700}
.bone-filepicker__clear{padding:8px 12px;border:1px solid #475569;border-radius:8px;background:#111827;color:#cbd5e1;cursor:pointer;font:inherit;font-weight:700}
.bone-filepicker__clear:disabled{opacity:.45;cursor:not-allowed}
.bone-filepicker__selection{display:grid;gap:6px;max-height:180px;overflow:auto}
.bone-filepicker__file{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border:1px solid #334155;border-radius:8px;background:#111827}
.bone-filepicker__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.bone-filepicker__meta{color:#94a3b8;font-size:12px;white-space:nowrap}
.bone-filepicker__empty{padding:8px 10px;color:#94a3b8;border:1px dashed #334155;border-radius:8px}
.bone-filepicker__feedback{min-height:18px;color:#94a3b8;font-size:12px;line-height:1.4}
.bone-filepicker__feedback[data-level="error"]{color:#fca5a5}
.bone-filepicker.is-focused .bone-filepicker__control{border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.16)}
.bone-filepicker.is-invalid{border-color:#ef4444}
.bone-filepicker.is-waiting{outline:1px solid #f59e0b}
.bone-filepicker.is-blocked{outline:2px solid #ef4444}
.bone-filepicker.is-disabled{opacity:.58}
.bone-filepicker[data-theme="light"]{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}
.bone-filepicker[data-theme="light"] .bone-filepicker__dropzone,.bone-filepicker[data-theme="light"] .bone-filepicker__control,.bone-filepicker[data-theme="light"] .bone-filepicker__file{background:#fff;border-color:#cbd5e1}
.bone-filepicker[data-theme="light"] .bone-filepicker__input::file-selector-button,.bone-filepicker[data-theme="light"] .bone-filepicker__clear{background:#e2e8f0;color:#0f172a;border-color:#94a3b8}
.bone-filepicker[data-theme="dark"]{background:#111827}
.bone-filepicker[data-theme="neon"]{background:#06131d;border-color:#22d3ee;box-shadow:0 0 22px rgba(34,211,238,.12)}
.bone-filepicker[data-theme="neon"] .bone-filepicker__dropzone,.bone-filepicker[data-theme="neon"] .bone-filepicker__control{border-color:#0891b2}
.bone-filepicker[data-appearance="flat"]{border-radius:4px;box-shadow:none}
.bone-filepicker[data-appearance="flat"] .bone-filepicker__dropzone,.bone-filepicker[data-appearance="flat"] .bone-filepicker__control,.bone-filepicker[data-appearance="flat"] .bone-filepicker__file{border-radius:3px}
.bone-filepicker[data-appearance="borderless"]{border-color:transparent;background:transparent}
.bone-filepicker[data-appearance="borderless"] .bone-filepicker__dropzone,.bone-filepicker[data-appearance="borderless"] .bone-filepicker__control{border-color:transparent}
#connection-images .bone-filepicker-test-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
#connection-images .bone-filepicker-connection{position:relative;display:grid;grid-template-columns:1fr 60px 1fr;align-items:center;gap:8px;min-height:96px;padding:12px;border:1px solid #334155;border-radius:10px;background:#0f172a}
#connection-images .bone-filepicker-node{padding:10px;border:1px solid #475569;border-radius:8px;background:#111827;text-align:center}
#connection-images .bone-filepicker-line{height:4px;border-radius:999px;background:#3b82f6;position:relative}
#connection-images .bone-filepicker-line::after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);border-left:8px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent;color:#3b82f6}
#connection-images .is-bad .bone-filepicker-line{background:#ef4444}
#connection-images .is-bad .bone-filepicker-line::after{color:#ef4444}
#connection-images .is-wait .bone-filepicker-line{background:#f59e0b}
#connection-images .is-wait .bone-filepicker-line::after{color:#f59e0b}
#connection-images .bone-filepicker-x{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#ef4444;font-size:24px;font-weight:900;background:#0f172a;padding:0 5px}
@media(max-width:640px){.bone-filepicker__control{align-items:stretch;flex-direction:column}.bone-filepicker__file{grid-template-columns:1fr}.bone-filepicker__meta{white-space:normal}}


/* v1.0.2 — drop position / overflow containment */
.bone-filepicker{min-width:0;width:min(100%,var(--bone-filepicker-width,100%));overflow:visible}
.bone-filepicker__label-host,.bone-filepicker__dropzone,.bone-filepicker__control,.bone-filepicker__selection,.bone-filepicker__feedback{min-width:0;max-width:100%}
.bone-filepicker__control{overflow:hidden}
.bone-filepicker__input{width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.bone-filepicker__selection{width:100%}
.bone-filepicker[data-drop-position="top"]{grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "drop" "control" "selection" "feedback"}
.bone-filepicker[data-drop-position="bottom"]{grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "control" "selection" "feedback" "drop"}
.bone-filepicker[data-drop-position="left"],.bone-filepicker[data-drop-position="right"]{grid-template-columns:minmax(128px,.8fr) minmax(0,1.2fr);grid-template-rows:auto auto auto 1fr;align-items:stretch}
.bone-filepicker[data-drop-position="left"]{grid-template-areas:"label label" "drop control" "drop selection" "drop feedback"}
.bone-filepicker[data-drop-position="right"]{grid-template-areas:"label label" "control drop" "selection drop" "feedback drop"}
.bone-filepicker__label-host{grid-area:label}.bone-filepicker__dropzone{grid-area:drop}.bone-filepicker__control{grid-area:control}.bone-filepicker__selection{grid-area:selection}.bone-filepicker__feedback{grid-area:feedback}
.bone-filepicker[data-drop-position="left"] .bone-filepicker__dropzone,.bone-filepicker[data-drop-position="right"] .bone-filepicker__dropzone{min-height:100%;padding:12px}
@media(max-width:640px){.bone-filepicker[data-drop-position="left"],.bone-filepicker[data-drop-position="right"]{grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "drop" "control" "selection" "feedback"}.bone-filepicker[data-drop-position="bottom"]{grid-template-areas:"label" "control" "selection" "feedback" "drop"}}

/* v1.0.2 — formal Security / Joint / WAIT-BLOCK / QA / Completion parity */
.bf-security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0 12px}
.bf-security-grid button{padding:8px 10px;border:1px solid #475569;border-radius:7px;background:#111827;color:#e5e7eb;cursor:pointer}.bf-security-grid .is-danger{border-color:#7d3544;background:#3a1f28}
.bf-security-stage{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:60px;align-items:center;min-height:150px;padding:14px;border:1px solid #35435a;border-radius:10px;background:#0a1019;overflow:hidden}
.bf-security-node{position:relative;z-index:3;display:grid;gap:4px;place-items:center;min-height:82px;padding:10px;border:1px solid #4b7197;border-radius:8px;background:#172235;text-align:center}.bf-security-node--gate{border-style:dashed}.bf-security-node small{color:#aeb9c9;overflow-wrap:anywhere}.bf-security-node strong{overflow-wrap:anywhere}
.bf-security-stage>.bf-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}.bf-security-stage>.bf-delivery-overlay{z-index:7}
.bf-security-result{margin-top:10px;padding:10px;border:1px solid #334155;border-radius:8px;background:#0b1421;min-height:72px;white-space:pre-wrap;overflow-wrap:anywhere}
.bf-svg{overflow:visible}
.bf-delivery-stage{position:relative;height:190px;margin-top:12px;border:1px solid #35435a;border-radius:10px;background:#0a1019;overflow:hidden}.bf-delivery-stage .bf-svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.bf-delivery-stage .bf-delivery-overlay{z-index:7;overflow:visible}
.bf-delivery-node{position:absolute;z-index:3;top:62px;width:160px;padding:12px 10px;border:1px solid #4c6584;border-radius:8px;background:#172235;color:#f5f8fc;text-align:center}.bf-delivery-node--source{left:5%}.bf-delivery-node--target{right:5%}.bf-delivery-node small{display:block;margin-top:4px;color:#aeb9c9}
.bf-delivery-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.bf-delivery-pill{display:inline-flex;padding:5px 10px;border:1px solid #425a78;border-radius:999px;font-weight:800}.bf-delivery-pill.is-ready{color:#67efb1;background:#123a31}.bf-delivery-pill.is-waiting{color:#ffd166;background:#352b12}.bf-delivery-pill.is-blocked{color:#ff8a98;background:#3c171d}
.bf-visual-confirm{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:10px 12px;border:1px solid #425a78;border-radius:8px;background:#111722}.bf-visual-confirm.is-confirmed{border-color:#3b936b;background:#123126}.bf-target-log{max-height:130px;overflow:auto;margin-top:8px;padding:8px;border:1px solid #29384e;border-radius:7px;background:#080e16;font-family:Consolas,monospace;font-size:12px;white-space:pre-wrap}.bf-visual-status{margin-top:8px;color:#9eafc4;font-size:.8rem}
#connection-images .bone-filepicker-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#connection-images .bone-filepicker-test-card{background:#101827;border:1px solid #31425a;border-radius:8px;padding:12px;min-width:0}#connection-images .bone-filepicker-test-card--wide{grid-column:1/-1}#connection-images .bone-filepicker-test-card h3{margin:0 0 4px;color:#f5f8fc;font-size:1rem}
#connection-images .bone-filepicker-usage-flow{position:relative;min-height:168px;display:flex;align-items:center;justify-content:space-around;gap:28px;padding:24px;overflow:hidden}#connection-images .bone-filepicker-usage-flow>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}#connection-images .bone-filepicker-node{position:relative;z-index:2;min-width:96px;padding:12px;border:1px solid #4c6584;border-radius:7px;text-align:center;background:#172235;color:#f5f8fc}#connection-images .bone-filepicker-node strong{color:#55e6a5}#connection-images .bone-filepicker-node--source strong{color:#65aaff}#connection-images .bone-filepicker-node--filepicker strong,#connection-images .bone-filepicker-node--target strong{color:#67e487}
#connection-images .bone-filepicker-usage-flow--in-missing,#connection-images .bone-filepicker-usage-flow--in-mismatch,#connection-images .bone-filepicker-usage-flow--out-missing,#connection-images .bone-filepicker-usage-flow--out-mismatch{display:grid;grid-template-columns:1fr 1fr;justify-items:center;align-items:center}#connection-images .bone-filepicker-joint-diagnostic{display:grid;gap:5px;margin-top:8px}#connection-images .bone-filepicker-joint-diagnostic>div{display:flex;justify-content:space-between;gap:12px;padding:5px 8px;border-radius:5px;background:#1a2331;font-size:.78rem}#connection-images .bone-filepicker-joint-diagnostic strong{text-align:right;overflow-wrap:anywhere;color:#eef4ff}
#connection-images .bone-filepicker-joint-legend{margin-top:12px;border:1px solid #31425a;border-radius:8px;padding:10px;color:#cbd8e8}#connection-images .bone-filepicker-joint-legend-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#connection-images .bone-filepicker-joint-legend-line{display:inline-block;width:40px;height:3px;margin-right:8px;vertical-align:middle}#connection-images .bone-filepicker-joint-legend-line.is-blue{background:#5ba6ff}#connection-images .bone-filepicker-joint-legend-line.is-green{background:#4be06b}#connection-images .bone-filepicker-joint-legend-line.is-orange{background:#f5a623}#connection-images .bone-filepicker-joint-legend-line.is-red{background:#ff5b73}
.bone-label-test-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.bone-label-test-actions button{padding:8px 11px;border:1px solid #475569;border-radius:8px;background:#111827;color:#e5e7eb}.bone-label-test-actions .is-validation{background:#0f7a43;border-color:#159259}.bone-label-test-actions .is-primary{background:#1764ad;border-color:#2b7fd0}.bone-label-test-actions .is-danger{background:#a42d44;border-color:#c0445b}
.bone-label-overall-summary{display:grid;grid-template-columns:minmax(145px,1.2fr) repeat(6,minmax(100px,1fr));align-items:center;margin:0 0 18px;border:1px solid #33445c;border-radius:8px;background:#0e1724;overflow:hidden}.bone-label-overall-summary>div{display:grid;gap:4px;place-items:center;min-height:66px;padding:8px 12px;border-left:1px solid #33445c;text-align:center}.bone-label-overall-summary>div span{font-size:.78rem;color:#98a9bf}.bone-label-overall-summary>div strong{font-size:1rem;color:#eef4ff}.bone-label-overall-summary .bf-overall{display:grid;place-items:center;min-height:42px;margin:12px;border-radius:6px;background:#172438;font-size:1.1rem;font-weight:800}
.bone-label-result-section{margin-top:15px;border:1px solid #30425b;border-radius:8px;background:#0c1522;overflow:hidden}.bone-label-result-section>h3{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:9px 14px;border-bottom:1px solid #305798;background:linear-gradient(90deg,#123f87,#174f9b);color:#fff;font-size:1.08rem}.bone-label-result-badge{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:4px 11px;border:1px solid currentColor;border-radius:999px;background:#172438;font-size:.76rem;font-weight:800}.bone-label-result-badge.is-not-run{color:#aebbd0}.bone-label-result-badge.is-pass{color:#67efb1;background:#123a31}.bone-label-result-badge.is-fail{color:#ff7d8d;background:#421d27}.bone-label-validation-list{display:grid;gap:7px;padding:12px 14px}.bone-label-validation-list--columns{grid-template-columns:repeat(2,minmax(0,1fr))}.bone-label-validation-row{display:grid;grid-template-columns:28px 58px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid #2c3a50;border-radius:7px;background:#111b2a}.bone-label-validation-row.is-fail{border-color:#7a3844;background:#21151d}.bone-label-validation-number{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#203049;color:#cfe1f8;font-weight:700}.bone-label-validation-detail{display:grid;gap:3px}.bone-label-validation-name{font-weight:700}.bone-label-validation-reason{font-size:.9rem;color:#aebbd0}
.bf-completion-panel>p{margin:0 0 14px;color:#d6e4f5}.bf-completion-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #33445c;background:#0f1928;overflow:hidden;border-radius:8px}.bf-completion-summary>div{display:grid;gap:5px;min-height:58px;padding:10px 12px;border-right:1px solid #33445c;border-bottom:1px solid #33445c}.bf-completion-summary>div:nth-child(3n){border-right:0}.bf-completion-summary>div:nth-last-child(-n+3){border-bottom:0}.bf-completion-summary span{font-size:12px;color:#6fa9ef}.bf-completion-summary strong{font-size:15px;color:#f0f5ff}.bf-completion-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.bf-completion-actions button{font-weight:700;padding:8px 11px;border:1px solid #475569;border-radius:8px;background:#111827;color:#e5e7eb}.bf-completion-actions .is-danger{background:#3a1f28;border-color:#7d3544}
@media(max-width:1000px){.bf-security-stage{grid-template-columns:1fr;gap:18px;min-height:360px}.bf-completion-summary{grid-template-columns:1fr 1fr}.bf-completion-summary>div{border-right:1px solid #33445c!important;border-bottom:1px solid #33445c!important}.bf-completion-summary>div:nth-child(2n){border-right:0!important}.bf-completion-summary>div:nth-last-child(-n+2){border-bottom:0!important}.bone-label-overall-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#connection-images .bone-filepicker-test-grid{grid-template-columns:1fr}#connection-images .bone-filepicker-test-card--wide{grid-column:auto}#connection-images .bone-filepicker-joint-legend-items{grid-template-columns:1fr}.bone-label-validation-list--columns{grid-template-columns:1fr}}
@media(max-width:620px){.bf-delivery-node{width:116px;font-size:.78rem}.bf-delivery-node--source{left:3%}.bf-delivery-node--target{right:3%}}
#filepicker-host{min-width:0;max-width:100%;width:100%}
#parent-preview{min-width:0;max-width:100%;overflow:auto;align-items:flex-start}
