/*
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Bone Flow Formal Style Header
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Component ID : 027
File         : bone-textbox.css
Version      : 1.0.35
Status       : Development
Standard     : Bone Flow Development Standard v1.0
Description  : Bone TextBox本体および正式テストページ用スタイル。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
*/
:root{color-scheme:dark;--bf-bg:#0b111b;--bf-panel:#111a27;--bf-panel2:#162234;--bf-line:#31425a;--bf-text:#eaf2ff;--bf-sub:#9eafc4;--bf-accent:#5ba6ff;--bf-ok:#55e6a5;--bf-warn:#ffc857;--bf-error:#ff7b8a}
*{box-sizing:border-box}body{margin:0;background:var(--bf-bg);color:var(--bf-text);font-family:Meiryo,"Yu Gothic",system-ui,sans-serif}.bf-page{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:24px 0 56px}.bf-header{margin-bottom:18px}.bf-header h1{margin:0;font-size:30px}.bf-header p{margin:6px 0;color:var(--bf-sub)}.bf-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.bf-badge{padding:5px 9px;border:1px solid var(--bf-line);border-radius:999px;background:#0f1724;font-size:12px}.bf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bf-card{min-width:0;padding:16px;border:1px solid var(--bf-line);border-radius:12px;background:var(--bf-panel)}.bf-card--wide{grid-column:1/-1}.bf-card h2,.bf-card h3{margin:0 0 10px}.bf-card p{color:var(--bf-sub)}.bf-property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bf-field{display:grid;gap:6px}.bf-field label{font-size:13px;color:#c8d5e7}.bf-field input[type="text"],.bf-field input[type="number"],.bf-field select{width:100%;padding:9px 10px;border:1px solid #50627d;border-radius:8px;background:#0c1420;color:var(--bf-text)}.bf-check{display:flex;align-items:center;gap:8px}.bf-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}button{padding:9px 13px;border:1px solid #4f6f9c;border-radius:8px;background:#17304f;color:#eef6ff;cursor:pointer}button:hover{background:#21456e}button:disabled{opacity:.45;cursor:not-allowed}.is-danger{border-color:#7d3544;background:#3a1f28}.bone-textbox{display:grid;gap:6px;width:100%;min-width:0}.bone-textbox__input{width:100%;min-width:0;padding:10px 12px;border:1px solid #64748b;border-radius:8px;background:#0c1420;color:#eef6ff;font:inherit;outline:none;transition:border-color .12s,box-shadow .12s,background .12s}.bone-textbox__input::placeholder{color:#71839c}.bone-textbox.is-invalid .bone-textbox__input{border-color:var(--bf-error);box-shadow:0 0 0 3px rgba(255,123,138,.12)}.bone-textbox.is-readonly .bone-textbox__input{background:#141d2a}.bone-textbox.is-disabled .bone-textbox__input{opacity:.55}.bone-textbox.is-dirty .bone-textbox__input{border-style:dashed}.bone-textbox__feedback{min-height:18px;font-size:12px;color:var(--bf-sub)}.bone-textbox__feedback[data-level="error"]{color:var(--bf-error)}.bone-textbox__feedback[data-level="warning"]{color:var(--bf-warn)}.bone-textbox__feedback[data-level="success"]{color:var(--bf-ok)}.bf-preview-stage{display:grid;gap:14px;padding:18px;border:1px dashed #52637b;border-radius:10px;background:#0c1420}.bf-state-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.bf-state{padding:8px;border:1px solid var(--bf-line);border-radius:8px;background:#0e1825}.bf-state span{display:block;color:var(--bf-sub);font-size:11px}.bf-state strong{display:block;margin-top:3px;overflow-wrap:anywhere}.bf-flow{display:grid;grid-template-columns:1fr auto 1.2fr auto 1fr;align-items:center;gap:10px;padding:18px;border:1px solid var(--bf-line);border-radius:10px;background:#0c1420}.bf-node{min-height:72px;padding:10px;border:1px solid #50627d;border-radius:8px;background:#172337;display:grid;place-items:center;text-align:center}.bf-arrow{font-size:28px;color:var(--bf-accent)}.bf-code{margin:0;max-height:320px;overflow:auto;padding:12px;border:1px solid var(--bf-line);border-radius:8px;background:#09101a;color:#cfe1fa;white-space:pre-wrap;word-break:break-word}.bf-test-summary{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.bf-test-summary strong{font-size:20px}.bf-pass{color:var(--bf-ok)}.bf-fail{color:var(--bf-error)}.bf-pending{color:var(--bf-warn)}.bf-test-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.bf-test-list li{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:7px 9px;border:1px solid #29384e;border-radius:7px;background:#0d1623}.bf-console{min-height:120px;max-height:260px;overflow:auto;padding:10px;border:1px solid var(--bf-line);border-radius:8px;background:#080e16;font-family:Consolas,monospace;font-size:12px;white-space:pre-wrap}.bf-completion{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bf-completion>div{padding:9px;border:1px solid var(--bf-line);border-radius:8px;background:#0d1623}.bf-completion span{display:block;color:var(--bf-sub);font-size:11px}.bf-completion strong{display:block;margin-top:3px}.bf-dependencies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.bf-dependency{padding:10px;border:1px solid var(--bf-line);border-radius:8px;background:#0f1724}.bf-dependency b{display:block}.bf-dependency span{color:var(--bf-sub);font-size:12px}@media(max-width:860px){.bf-grid,.bf-property-grid{grid-template-columns:1fr}.bf-card--wide{grid-column:auto}.bf-flow{grid-template-columns:1fr}.bf-arrow{transform:rotate(90deg);justify-self:center}.bf-state-row,.bf-completion,.bf-dependencies{grid-template-columns:1fr 1fr}}@media(max-width:520px){.bf-page{width:min(100% - 20px,1280px);padding-top:14px}.bf-state-row,.bf-completion,.bf-dependencies{grid-template-columns:1fr}.bf-header h1{font-size:24px}}


/* v1.0.1 Untrusted IN / Joint WAIT-BLOCK integration */
.bone-textbox[data-security-state="rejected"] .bone-textbox__input{border-color:#ff7b8a;background:#21131a}
.bone-textbox.is-waiting .bone-textbox__input{border-color:#d5a733;box-shadow:0 0 0 3px rgba(255,200,87,.11)}
.bone-textbox.is-blocked .bone-textbox__input{border-color:#eb5055;box-shadow:0 0 0 3px rgba(235,80,85,.14)}
.bf-security-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bf-security-result{margin-top:10px;padding:10px;border:1px solid var(--bf-line);border-radius:8px;background:#0b1421;min-height:72px;white-space:pre-wrap;overflow-wrap:anywhere}
.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-complete-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
@media(max-width:860px){.bf-security-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.bf-security-grid{grid-template-columns:1fr}.bf-delivery-node{width:116px;font-size:.78rem}.bf-delivery-node--source{left:3%}.bf-delivery-node--target{right:3%}}


/* v1.0.3 - Connection image / bilingual Property / QA visibility corrections */
.bf-language-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:9px 10px;border:1px solid var(--bf-line);border-radius:8px;background:#0d1623}.bf-language-toolbar strong{margin-right:4px}.bf-language-button.is-active{border-color:#68d6ff;background:#1d4664;box-shadow:0 0 0 2px rgba(104,214,255,.14) inset}
.bf-connection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bf-connection-card{min-width:0;padding:12px;border:1px solid #35435a;border-radius:10px;background:#0d1623}.bf-connection-card--wide{grid-column:1/-1}.bf-connection-card h3{margin:0 0 4px;font-size:1rem}.bf-connection-card>p{margin:0 0 8px;font-size:.82rem}.bf-connection-stage{position:relative;isolation:isolate;height:150px;overflow:hidden;border:1px solid #2f4057;border-radius:8px;background:#09111c}.bf-connection-stage .bf-svg{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:hidden}.bf-connection-node{position:absolute;z-index:2;top:48px;width:clamp(88px,24%,132px);min-height:54px;display:grid;place-items:center;padding:8px;border:1px solid #50627d;border-radius:8px;background:#172337;text-align:center}.bf-connection-node strong{display:block}.bf-connection-node small{display:block;margin-top:3px;color:#9fb4cc}.bf-connection-node--source{left:2%}.bf-connection-node--target{right:2%}.bf-connection-node--textbox{left:50%;transform:translateX(-50%);border-color:#5985b7}.bf-connection-node.is-missing{border-style:dashed;border-color:#a74a59;background:#281a20;color:#ff9ba5}.bf-connection-diagnostics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin-top:8px;font-size:.76rem}.bf-connection-diagnostics span{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px solid #213047}.bf-connection-diagnostics b{overflow-wrap:anywhere}.bf-connection-diagnostics .is-ok{color:#55e6a5}.bf-connection-diagnostics .is-error{color:#ff7b8a}.bf-connection-diagnostics .is-warn{color:#ffc857}
.bf-qa-toolbar{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:12px;border:1px solid #36516f;border-radius:9px;background:#0c1725}.bf-qa-stat{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid #2e425c;border-radius:999px;background:#0a1320}.bf-qa-stat span{color:#9eafc4}.bf-test-meta{margin:-2px 0 10px;color:#9eafc4;font-size:.78rem}.bf-test-list li{min-height:42px;align-items:start}.bf-test-list li span{overflow-wrap:anywhere}.bf-card--qa{grid-column:1/-1}.bf-visual-status{margin-top:8px;color:#9eafc4;font-size:.8rem}
/* Make delivery geometry explicit instead of inheriting mutable Joint display options. */
.bf-delivery-stage .bf-svg{z-index:2}.bf-delivery-stage .bf-delivery-overlay{z-index:7;overflow:visible}.bf-delivery-stage .bf-joint-path{filter:drop-shadow(0 0 3px rgba(91,166,255,.25))}
@media(max-width:860px){.bf-connection-grid{grid-template-columns:1fr}.bf-connection-card--wide{grid-column:auto}.bf-connection-diagnostics{grid-template-columns:1fr}}
@media(max-width:620px){.bf-connection-stage{height:170px}.bf-connection-node{top:58px;width:32%;font-size:.76rem;padding:7px 5px}}

/* v1.0.3 formal Joint visual parity */
.bone-label-test-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.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-connection-stage .bf-joint-flow-indicator,.bf-delivery-stage .bf-joint-flow-indicator{z-index:6}.bf-connection-stage .bf-joint-direction-marker,.bf-delivery-stage .bf-joint-direction-marker{display:block}.bf-connection-stage .bf-svg,.bf-delivery-stage .bf-svg{overflow:visible}@media(max-width:900px){.bone-label-overall-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bone-label-validation-list--columns{grid-template-columns:1fr}}


/* v1.0.17 - Theme / layout / Parent Dependency / Active border effects */
.bone-textbox{--btb-text:#eef6ff;--btb-placeholder:#71839c;--btb-border:#64748b;--btb-accent:#5ba6ff;--btb-focus-glow:rgba(91,166,255,.18);--btb-effect-color:var(--btb-accent);--btb-effect-duration:1.2s;--bone-textbox-background:#0c1420;position:relative;min-width:0;max-width:100%}
.bone-textbox[data-theme="dark"]{--btb-text:#f1f6ff;--btb-placeholder:#7f91aa;--btb-border:#52657f;--btb-accent:#68d6ff;--btb-focus-glow:rgba(104,214,255,.20)}
.bone-textbox[data-theme="light"]{--btb-text:#172033;--btb-placeholder:#6b7280;--btb-border:#8996a8;--btb-accent:#2457d6;--btb-focus-glow:rgba(36,87,214,.17)}
.bone-textbox[data-theme="neon"]{--btb-text:#e9fdff;--btb-placeholder:#69a7b5;--btb-border:#1c8ca2;--btb-accent:#35f4ff;--btb-focus-glow:rgba(53,244,255,.25);filter:drop-shadow(0 0 5px rgba(53,244,255,.10))}
.bone-textbox__control{position:relative;width:100%;height:var(--btb-control-height,44px);min-width:0;border-radius:inherit}
.bone-textbox__input{position:relative;z-index:1;width:100%;height:100%;min-width:0;padding:10px 12px;color:var(--btb-text);border-color:var(--btb-border);background:var(--bone-textbox-background);transition:border-color .12s,box-shadow .12s,background .12s,color .12s,border-radius .12s;font:inherit;outline:none}
.bone-textbox__input::placeholder{color:var(--btb-placeholder)}

.bone-textbox[data-inherit-parent="false"][data-position="top-left"]{justify-self:start;align-self:start}.bone-textbox[data-inherit-parent="false"][data-position="top-center"]{justify-self:center;align-self:start}.bone-textbox[data-inherit-parent="false"][data-position="top-right"]{justify-self:end;align-self:start}.bone-textbox[data-inherit-parent="false"][data-position="middle-left"]{justify-self:start;align-self:center}.bone-textbox[data-inherit-parent="false"][data-position="center"]{justify-self:center;align-self:center}.bone-textbox[data-inherit-parent="false"][data-position="middle-right"]{justify-self:end;align-self:center}.bone-textbox[data-inherit-parent="false"][data-position="bottom-left"]{justify-self:start;align-self:end}.bone-textbox[data-inherit-parent="false"][data-position="bottom-center"]{justify-self:center;align-self:end}.bone-textbox[data-inherit-parent="false"][data-position="bottom-right"]{justify-self:end;align-self:end}
.bone-textbox[data-appearance="normal"] .bone-textbox__input{border-width:1px;border-style:solid;border-radius:8px}.bone-textbox[data-appearance="flat"] .bone-textbox__input{border-width:1px;border-style:solid;border-radius:0;box-shadow:none}.bone-textbox[data-appearance="borderless"] .bone-textbox__input{border-color:transparent;border-radius:0;box-shadow:none}

.bone-textbox.is-readonly .bone-textbox__input{filter:saturate(.78)}
/* Parent Dependency: 単体の幅/高さ/位置/背景/通常枠を描画上無視。 */
.bone-textbox[data-inherit-parent="true"]{width:100%!important;height:100%;max-width:none;justify-self:stretch!important;align-self:stretch!important;color:var(--btb-parent-text,inherit);border:0!important;border-radius:var(--btb-parent-radius,inherit)}.bone-textbox[data-inherit-parent="true"] .bone-textbox__control{width:100%;height:100%;border:0!important;border-radius:var(--btb-parent-radius,inherit)}.bone-textbox[data-inherit-parent="true"] .bone-textbox__input{width:100%;height:100%;background:var(--btb-parent-background,inherit)!important;color:var(--btb-parent-text,inherit)!important;border:0!important;border-radius:var(--btb-parent-radius,inherit);box-shadow:none;text-align:var(--btb-parent-align,left)}.bone-textbox[data-inherit-parent="true"] .bone-textbox__input::placeholder{color:var(--btb-parent-text,inherit);opacity:.58}.bone-textbox[data-inherit-parent="true"] .bone-textbox__feedback{position:absolute;top:100%;left:0;right:0;z-index:9}
#textbox-host{display:grid;position:relative;width:100%;min-height:140px;padding:12px;border:1px dashed #435872;border-radius:10px;background:#162234;color:#eaf2ff;overflow:visible}#textbox-host[data-parent-dependent="true"]{padding:0}#textbox-host[data-preview-theme="dark"]{background:#0b1420;color:#f1f6ff}#textbox-host[data-preview-theme="light"]{background:#f4f7fb;color:#172033;border-color:#a9b7c8}#textbox-host[data-preview-theme="default"]{background:#162234;color:#eaf2ff}#textbox-host[data-preview-theme="neon"]{background:#06131d;color:#e9fdff;border-color:#35f4ff;box-shadow:0 0 16px rgba(53,244,255,.18)}
.bf-parent-preview{border:2px solid #6a8ab6;border-radius:14px;background:#26354a;color:#f3d36a}.bf-parent-note{margin-top:6px;font-size:.78rem;color:var(--bf-sub)}.bf-parent-settings,.bf-self-settings,.bf-effect-settings{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:11px;border:1px solid #31425a;border-radius:9px;background:#0d1623}.bf-property-group-title{grid-column:1/-1;margin:0;color:#cfe1f7;font-size:.9rem}.bf-property-group-note{grid-column:1/-1;margin:0;color:#90a5be;font-size:.76rem}.bf-field.is-ignored,.bf-check.is-ignored{opacity:.42}.bf-field.is-ignored input,.bf-field.is-ignored select{cursor:not-allowed}.bf-background-controls{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:8px;align-items:end}.bf-color-trigger{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-width:0;height:38px;padding:5px 8px;text-align:left;background:#0c1420}.bf-color-trigger__swatch{display:block;width:24px;height:24px;border:1px solid #6f8199;border-radius:5px;background:var(--bf-color-trigger-value,#000000)}.bf-color-trigger__value{min-width:0;overflow:hidden;text-overflow:ellipsis;font-family:Consolas,monospace;font-size:12px;color:#dcecff}
@media(prefers-reduced-motion:reduce){}@media(max-width:860px){.bf-parent-settings,.bf-self-settings,.bf-effect-settings{grid-template-columns:1fr}}

.bf-flow-map{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.2fr);gap:10px;align-items:stretch}.bf-flow-step{padding:10px;border:1px solid var(--bf-line);border-radius:10px;background:#0e1825;display:grid;gap:6px;align-content:start}.bf-flow-step span{font-size:12px;color:var(--bf-sub)}.bf-flow-step strong{font-size:14px;overflow-wrap:anywhere}.bf-flow-step small{font-size:11px;color:#cfe1fa;overflow-wrap:anywhere}.bf-flow-arrow{display:grid;place-items:center;font-size:26px;color:var(--bf-accent)}.bf-flow-note{font-size:12px;color:#9bb0c8;padding:2px 2px 0}@media(max-width:960px){.bf-flow-map{grid-template-columns:1fr}.bf-flow-arrow{transform:rotate(90deg)}}

.bf-preview-node{position:relative;z-index:3;min-height:110px;padding:14px 16px;border:1px solid #50627d;border-radius:10px;background:#172337;display:grid;gap:8px;align-content:start;box-shadow:0 8px 20px rgba(0,0,0,.15)}.bf-preview-node span{font-size:12px;color:var(--bf-sub)}.bf-preview-node strong{font-size:14px;overflow-wrap:anywhere}.bf-preview-node small{font-size:11px;color:#cfe1fa;overflow-wrap:anywhere}.bf-preview-flow-stage .bf-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible}.bf-preview-flow-stage .bf-delivery-overlay{z-index:4;pointer-events:none}@media(max-width:960px){.bf-preview-flow-stage{grid-template-columns:1fr;gap:18px;min-height:360px;padding:18px}}

.bf-security-stage{position:relative;display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,1fr) minmax(220px,1.2fr);gap:52px;align-items:center;min-height:190px;margin-top:14px;padding:22px 26px;border:1px solid var(--bf-line);border-radius:10px;background:#0c1420;overflow:visible}.bf-security-node{position:relative;z-index:3;min-height:104px;padding:12px 14px;border:1px solid #50627d;border-radius:10px;background:#172337;display:grid;gap:6px;align-content:start}.bf-security-node span{font-size:12px;color:var(--bf-sub)}.bf-security-node strong{font-size:14px;overflow-wrap:anywhere}.bf-security-node small{font-size:11px;color:#cfe1fa;overflow-wrap:anywhere}.bf-security-node--gate{border-style:dashed}.bf-security-stage .bf-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible}.bf-security-stage .bf-delivery-overlay{z-index:4;pointer-events:none}@media(max-width:900px){.bf-security-stage{grid-template-columns:1fr;gap:18px;min-height:360px;padding:18px}}




/* #021 Shape v1.0.24 接続イメージ基準（#027 TextBox向けスコープ） */
#connection-images .bone-text-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#connection-images .bone-text-test-card{background:#101827;border:1px solid #31425a;border-radius:8px;padding:12px;min-width:0}
#connection-images .bone-text-test-card--wide{grid-column:1/-1}
#connection-images .bone-text-test-card h3{margin:0 0 4px;color:#f5f8fc;font-size:1rem}
#connection-images .bone-text-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-text-usage-flow>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}
#connection-images .bone-text-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-text-node strong{color:#55e6a5}
#connection-images .bone-text-node--source strong{color:#65aaff}
#connection-images .bone-text-node--text strong,#connection-images .bone-text-node--target strong{color:#67e487}
#connection-images .bone-text-joint-diagnostic{display:grid;gap:5px;margin-top:8px}
#connection-images .bone-text-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-text-joint-diagnostic strong{text-align:right;overflow-wrap:anywhere}
#connection-images .bone-text-joint-diagnostic strong{color:#eef4ff}
#connection-images .bone-text-usage-flow--in-missing,#connection-images .bone-text-usage-flow--in-mismatch,#connection-images .bone-text-usage-flow--out-missing,#connection-images .bone-text-usage-flow--out-mismatch{display:grid;grid-template-columns:1fr 1fr;justify-items:center;align-items:center}
#connection-images .bone-text-usage-flow--out-missing .bone-text-node--text{grid-column:1}
#connection-images .bone-text-usage-flow--in-missing .bone-text-node--source{grid-column:1}
#connection-images .bone-text-usage-flow--in-missing .bone-text-node--text{grid-column:2}
#connection-images .bone-label-joint-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#connection-images .bone-label-joint-line{pointer-events:stroke}
#connection-images .bone-text-joint-legend{margin-top:12px;border:1px solid #31425a;border-radius:8px;padding:10px;color:#cbd8e8}
#connection-images .bone-text-joint-legend-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#connection-images .bone-text-joint-legend-line{display:inline-block;width:40px;height:3px;margin-right:8px;vertical-align:middle}
#connection-images .bone-text-joint-legend-line.is-blue{background:#5ba6ff}
#connection-images .bone-text-joint-legend-line.is-green{background:#4be06b}
#connection-images .bone-text-joint-legend-line.is-orange{background:#f5a623}
#connection-images .bone-text-joint-legend-line.is-red{background:#ff5b73}
#connection-images .bf-joint-path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
#connection-images .bf-joint-path--straight{stroke-linejoin:miter}
#connection-images .bf-joint-marker{transform-box:fill-box;transform-origin:center}
#connection-images .bf-joint-marker-shape{fill:#111722;stroke:#68d6ff;stroke-width:4;vector-effect:non-scaling-stroke}
#connection-images .bf-joint-start--filled-circle .bf-joint-marker-shape,#connection-images .bf-joint-start--filled-square .bf-joint-marker-shape,#connection-images .bf-joint-end--filled-circle .bf-joint-marker-shape,#connection-images .bf-joint-end--filled-square .bf-joint-marker-shape{fill:#68d6ff}
#connection-images .bf-joint-start--error .bf-joint-marker-shape{stroke:#ff697a}
#connection-images .bf-joint-end-error line{stroke:#ff475d;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
#connection-images .bf-joint-end-error-text{fill:#ff475d;font-size:22px;font-weight:900}
#connection-images .bf-joint-label{pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
#connection-images .bf-joint-label rect{vector-effect:non-scaling-stroke}
#connection-images .bf-joint-label text{font-family:Meiryo,"Yu Gothic",sans-serif;font-weight:700;dominant-baseline:alphabetic;pointer-events:none}
#connection-images .bf-joint-label-tail{stroke:#7f93ad;stroke-width:1.5;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;pointer-events:none}
#connection-images .bf-joint-label-anchor{fill:#0e1622;stroke:#8bdfff;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
@media(max-width:760px){
  #connection-images .bone-text-test-grid{grid-template-columns:1fr}
  #connection-images .bone-text-test-card--wide{grid-column:auto}
  #connection-images .bone-text-joint-legend-items{grid-template-columns:1fr}
}


/* v1.0.29 Class list / Public API guide */
.bf-api-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.bf-api-meta>div{padding:10px;border:1px solid var(--bf-line);border-radius:8px;background:#0d1623}.bf-api-meta span{display:block;color:var(--bf-sub);font-size:11px}.bf-api-meta strong{display:block;margin-top:4px;overflow-wrap:anywhere}.bf-textbox-class-list{display:grid;gap:10px}.bf-textbox-class-card{padding:12px;border:1px solid #304762;border-radius:8px;background:#0c1b2a}.bf-textbox-class-card h3,.bf-textbox-class-card p{margin:0 0 8px}.bf-textbox-class-methods{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.bf-textbox-class-methods strong{width:100%}.bf-textbox-class-methods code{padding:5px 7px;border:1px solid #355272;border-radius:6px;background:#081722;overflow-wrap:anywhere}.bf-textbox-guide-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.bf-textbox-guide-summary{color:var(--bf-sub);font-size:12px}.bf-textbox-guide-overlay[hidden]{display:none!important}.bf-textbox-guide-overlay{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:22px;background:rgba(2,8,18,.78);backdrop-filter:blur(3px)}.bf-textbox-guide-dialog{display:flex;flex-direction:column;width:min(1120px,calc(100vw - 32px));height:min(780px,calc(100vh - 32px));overflow:hidden;border:1px solid #355272;border-radius:10px;background:#0b1725;color:#dcecff;box-shadow:0 24px 70px rgba(0,0,0,.48)}.bf-textbox-guide-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 14px;border-bottom:1px solid #2d4865;background:#102a42}.bf-textbox-guide-header h2,.bf-textbox-guide-header p{margin:0}.bf-textbox-guide-header p{margin-top:3px;color:#9fc0d8;font-size:12px}.bf-textbox-guide-close{min-width:42px}.bf-textbox-guide-layout{display:grid;grid-template-columns:200px minmax(0,1fr);min-height:0;flex:1}.bf-textbox-guide-nav{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-right:1px solid #2d4865;background:#0d2032}.bf-textbox-guide-nav button{padding:10px 14px;border:0;background:transparent;color:#a8c7de;text-align:left;cursor:pointer}.bf-textbox-guide-nav button:hover,.bf-textbox-guide-nav button.is-active{background:#173750;color:#e8f7ff;font-weight:800}.bf-textbox-guide-content{min-width:0;overflow:auto;padding:18px 20px 26px;background:#081722}.bf-textbox-guide-content>section{max-width:880px}.bf-textbox-guide-content h3{margin:0 0 14px;color:#b9e6ff}.bf-textbox-guide-content p{line-height:1.7}.bf-textbox-guide-api-list{display:grid;gap:9px}.bf-textbox-guide-api-card{border:1px solid #2f4865;border-radius:8px;background:#0c1d2b;overflow:hidden}.bf-textbox-guide-api-card>summary{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(180px,.8fr);gap:10px;align-items:center;padding:10px 12px;cursor:pointer;background:#10263a}.bf-textbox-guide-api-card>summary code{color:#dff4ff;overflow-wrap:anywhere}.bf-textbox-guide-api-card>summary span{color:#9fc0d8;font-size:12px}.bf-textbox-guide-api-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.bf-textbox-guide-api-block{padding:10px 12px;border:1px solid #2d4058;border-radius:7px;background:#081722}.bf-textbox-guide-api-block>strong{display:block;margin-bottom:5px;color:#8dccff}.bf-textbox-guide-api-block p{margin:0}.bf-textbox-guide-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid #2d4865;background:#0d2032;color:#9fc0d8;font-size:12px}@media(max-width:760px){.bf-api-meta{grid-template-columns:1fr 1fr}.bf-textbox-guide-layout{grid-template-columns:1fr}.bf-textbox-guide-nav{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid #2d4865}.bf-textbox-guide-api-body{grid-template-columns:1fr}}


/* v1.0.29 #020-style implementation guide detail */
.bf-textbox-class-group h4{margin:0 0 8px;color:#9fdcff;font-size:.88rem}
.bf-textbox-class-methods{display:grid;gap:6px}
.bf-textbox-class-method-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(160px,1fr) auto;gap:10px;align-items:center;padding:7px 8px;border:1px solid #2d4058;border-radius:6px;background:#081722}
.bf-textbox-class-method-row code{border:0!important;padding:0!important;background:transparent!important;color:#dff4ff}
.bf-textbox-class-method-row span{color:#a8c7de;font-size:12px}
.bf-textbox-class-method-row b{color:#69d8a6;font-family:Consolas,monospace;font-size:11px;white-space:nowrap}
.bf-textbox-guide-api-block.is-wide{grid-column:1/-1}
.bf-textbox-guide-api-block pre{margin:7px 0 0;max-width:100%;overflow:auto;padding:10px 12px;border:1px solid #29425e;border-radius:6px;background:#050d16;color:#dff4ff;white-space:pre}
.bf-textbox-guide-api-block pre code{font-family:Consolas,"Courier New",monospace;font-size:12px}
.bf-textbox-guide-steps{margin:0;padding-left:22px;display:grid;gap:5px;line-height:1.65}
.bf-textbox-guide-api-block p code,.bf-textbox-guide-steps code{padding:1px 4px;border-radius:4px;background:#132b40;color:#dff4ff}
.bf-textbox-guide-api-body--usage{grid-template-columns:1fr}
@media(max-width:760px){.bf-textbox-class-method-row{grid-template-columns:1fr}.bf-textbox-class-method-row b{white-space:normal}}


/* v1.0.29 rebuilt guide: detailed API reference + practical recipes */
.bf-textbox-guide-reference{display:grid;gap:10px}.bf-textbox-guide-reference .bf-textbox-guide-api-card>summary{grid-template-columns:minmax(0,1.5fr) minmax(180px,.8fr)}
.bf-textbox-guide-recipes,.bf-textbox-guide-operations{display:grid;gap:12px}.bf-textbox-guide-recipe,.bf-textbox-guide-operation{padding:13px;border:1px solid #2f4865;border-radius:8px;background:#0c1d2b}.bf-textbox-guide-recipe h4,.bf-textbox-guide-operation h4{margin:0 0 8px;color:#b9e6ff}.bf-textbox-guide-recipe p,.bf-textbox-guide-operation p{margin:5px 0;line-height:1.7}.bf-textbox-guide-recipe pre{margin:9px 0 0;overflow:auto;padding:10px 12px;border:1px solid #29425e;border-radius:6px;background:#050d16;color:#dff4ff}.bf-textbox-guide-operation ol,.bf-textbox-guide-recipe ol{margin:7px 0 0;padding-left:22px;display:grid;gap:5px;line-height:1.65}


/* v1.0.33 Guide live runtime sample + API inventory */
.bf-textbox-class-sample{margin-top:12px;padding:14px;border:1px solid #3f668a;border-radius:9px;background:#0d2032}.bf-textbox-class-sample h3{margin:0 0 8px;color:#b9e6ff}.bf-textbox-class-sample-host{min-height:72px;display:flex;align-items:center;padding:12px;border:1px dashed #355272;border-radius:8px;background:#07121d;overflow:auto}.bf-textbox-class-sample-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}.bf-textbox-class-sample-actions strong{margin-left:auto;color:#69d8a6}.bf-textbox-class-sample-output{max-height:180px;overflow:auto;padding:10px 12px;border:1px solid #29425e;border-radius:6px;background:#050d16;color:#dff4ff}.bf-textbox-class-sample-code{margin-top:10px}.bf-textbox-class-sample-code>summary{cursor:pointer;color:#9fdcff;font-weight:800}.bf-textbox-class-sample-code pre{overflow:auto;padding:10px 12px;border:1px solid #29425e;border-radius:6px;background:#050d16;color:#dff4ff}.bf-textbox-guide-api-inventory-section h4,#guide-api-detail-heading{margin:0 0 8px;color:#b9e6ff}.bf-textbox-guide-api-inventory-section{margin:0 0 18px}.bf-textbox-guide-api-inventory{display:grid;gap:6px}.bf-textbox-guide-api-inventory-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(180px,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid #2f4865;border-radius:7px;background:#0c1d2b}.bf-textbox-guide-api-inventory-row code{color:#dff4ff;overflow-wrap:anywhere}.bf-textbox-guide-api-inventory-row span{color:#a8c7de;font-size:12px}.bf-textbox-guide-api-inventory-row b{color:#69d8a6;font-family:Consolas,monospace;font-size:11px;white-space:nowrap}@media(max-width:760px){.bf-textbox-guide-api-inventory-row{grid-template-columns:1fr}}

/* v1.0.34 Class sample code -> explicit live result pairing */
.bf-textbox-class-sample-result{margin-top:14px;padding-top:14px;border-top:1px solid #29425e}.bf-textbox-class-sample-result h3{margin:0 0 8px;color:#b9e6ff}.bf-textbox-class-sample-result h4{margin:10px 0 6px;color:#9fdcff}.bf-textbox-class-sample-result p{margin:0 0 10px;color:#a8c7de}


/* v1.0.35 Guide Operation: class index links + per-class usage docs */
.bf-textbox-guide-class-index{margin:0 0 16px;padding:12px;border:1px solid #355272;border-radius:8px;background:#0d2032}.bf-textbox-guide-class-index h4,.bf-textbox-guide-class-index p{margin:0 0 8px}.bf-textbox-guide-class-links{display:flex;flex-wrap:wrap;gap:8px}.bf-textbox-guide-class-links a{display:inline-block;padding:7px 10px;border:1px solid #3f6384;border-radius:7px;background:#102a42;color:#b9e6ff;text-decoration:none;font-weight:800}.bf-textbox-guide-class-links a:hover{background:#173750}.bf-textbox-guide-class-doc{scroll-margin-top:18px;margin:0 0 18px;padding:14px;border:1px solid #2f4865;border-radius:8px;background:#0c1d2b}.bf-textbox-guide-class-doc>h4{margin:0 0 12px;color:#b9e6ff}.bf-textbox-guide-class-data{display:grid;gap:7px}.bf-textbox-guide-class-data>div{display:grid;grid-template-columns:minmax(130px,210px) minmax(0,1fr);gap:10px;padding:8px;border:1px solid #27435f;border-radius:6px;background:#091827}.bf-textbox-guide-class-data p{margin:0}.bf-textbox-guide-class-result p{margin-top:0}.bf-textbox-guide-class-result pre{margin-bottom:0}@media(max-width:720px){.bf-textbox-guide-class-data>div{grid-template-columns:1fr}}

/* #027 TEST-page-only integration with the #017 header/guide placement. */
.bf-textbox-test-page>.bf-header{border:1px solid #34465f;border-radius:12px;background:#151e2e;padding:18px;margin-bottom:16px}
.bf-textbox-test-page>.bf-header h1{font-size:28px}
.bf-textbox-test-page .bf-textbox-package-line{color:#c7d8e8;margin:8px 0 10px;font-size:14px}
.bf-textbox-test-page .bf-textbox-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:10px 0}
.bf-textbox-test-page .bf-textbox-header-actions>a,.bf-textbox-test-page .bf-textbox-header-actions>button{display:inline-flex;align-items:center;padding:8px 12px;background:#142a40;color:#eef8ff;border:1px solid #3f6689;border-radius:7px;text-decoration:none;font-weight:700;font-size:13px;min-height:34px}
.bf-textbox-test-page .bf-textbox-guide-header-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bf-textbox-test-page #textbox-guide-language-caption{font-size:13px;white-space:nowrap}
.bf-textbox-test-page #textbox-guide-lang-ja[aria-pressed="true"],.bf-textbox-test-page #textbox-guide-lang-en[aria-pressed="true"]{border-color:#55aaff;background:#153d5d}
.bf-textbox-test-page .bf-textbox-guide-live{margin-top:16px;padding:14px;border:1px solid #345b78;border-radius:9px;background:#091929}
.bf-textbox-test-page .bf-textbox-guide-live-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.bf-textbox-test-page #guide-class-live-host{min-height:48px}
.bf-textbox-test-page #guide-class-live-output{max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:650px){.bf-textbox-test-page .bf-textbox-guide-header-controls{width:100%}}

/* #040 gradient RETURN / #022 official overlay bridge. Only caller-owned styles. */
.bone-hover-border-effect-overlay[data-bone-caller-gradient="true"]::after {
    content:"";position:absolute;inset:0;display:block;pointer-events:none;
    border-radius:inherit;padding:3px;background:var(--bone-caller-gradient);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;
    mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    mask-composite:exclude;
}
