:root{--navy:#082a50;--blue:#08788c;--orange:#f58a1f;--ink:#173651;--soft:#edf5f8;--line:#cbdde7}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f3f7fa;font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif}.ff-nav{display:flex;justify-content:space-between;align-items:center;padding:18px max(5vw,20px);background:#fff;border-bottom:1px solid #dbe7ed}.ff-nav>a{font-size:1.2rem;font-weight:900;color:var(--navy);text-decoration:none}.ff-nav nav{display:flex;gap:18px}.ff-nav nav a{color:var(--ink);text-decoration:none;font-weight:700}.ff-hero{display:flex;justify-content:space-between;gap:30px;padding:clamp(38px,7vw,88px) max(5vw,20px);background:linear-gradient(135deg,#e9f4fa,#f8fbfd)}.ff-hero h1{font-size:clamp(2.2rem,6vw,4.5rem);line-height:1.05;margin:.5rem 0;color:var(--navy)}.ff-hero p{max-width:760px;font-size:1.1rem;line-height:1.8}.ff-hero>div>span{font:800 .78rem ui-monospace,monospace;letter-spacing:.15em;color:var(--blue)}.ff-hero-stat{display:grid;grid-template-columns:auto auto;gap:4px 10px;align-content:center;min-width:180px}.ff-hero-stat b{font-size:2.5rem;color:var(--orange)}.ff-shell{margin:32px auto;max-width:1500px;padding:0 24px}.ff-danger{display:flex;justify-content:space-between;gap:16px;padding:15px 18px;border:1px solid #efc46f;border-radius:15px;background:#fff8e9}.ff-layout{display:grid;grid-template-columns:240px 1fr;gap:18px;margin-top:16px}.ff-devices,.ff-main{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px}.ff-devices h2{margin-top:0;color:var(--navy)}#ff-device-list{display:grid;gap:8px}#ff-device-list button{display:flex;gap:11px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px;text-align:left;color:var(--ink);cursor:pointer}#ff-device-list button span{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--soft);color:var(--blue);font-size:1.35rem}#ff-device-list button.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}.ff-select-head{display:grid;grid-template-columns:1fr 230px 270px;gap:12px;align-items:end}.ff-select-head span{font:800 .75rem ui-monospace;color:var(--blue)}.ff-select-head h2{margin:.25rem 0;color:var(--navy)}.ff-select-head label{display:grid;gap:5px;font-weight:800}.ff-select-head input,.ff-select-head select{min-height:44px;border:1px solid #9db6c6;border-radius:10px;padding:8px;font:inherit}.ff-symptoms{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.ff-symptoms button{display:grid;gap:5px;border:1px solid var(--line);background:#f7fafc;border-radius:13px;padding:13px;text-align:left;cursor:pointer}.ff-symptoms button small{color:#657d8c}.ff-symptoms button.is-active{background:#e6f6f6;border-color:var(--blue);box-shadow:inset 0 0 0 2px #08788c22}.ff-workspace{display:grid;grid-template-columns:1fr minmax(330px,.8fr);gap:16px}.ff-diagram,.ff-result{border-radius:18px;padding:18px}.ff-diagram{background:var(--soft)}.ff-diagram svg{width:100%;height:auto}.ff-machine{fill:#fff;stroke:#9db5c3;stroke-width:4}.ff-zone{cursor:pointer}.ff-zone rect{fill:#fff;stroke:#7895a6;stroke-width:3}.ff-zone text{font-weight:900;fill:var(--ink)}.ff-zone.is-focus rect{fill:#fff3df;stroke:var(--orange);stroke-width:6}.ff-zone.is-selected rect{fill:#dff4f4;stroke:var(--blue);stroke-width:7}.ff-signal,.ff-signal-arrow{fill:none;stroke:#54afbd;stroke-width:8;stroke-dasharray:16 10}.ff-result{background:linear-gradient(155deg,#082a50,#0c506e);color:#fff}.ff-result h3{font-size:1.45rem}.ff-result-head{display:flex;justify-content:space-between;gap:10px}.ff-result-head span,.ff-result-head b{padding:7px 10px;border-radius:999px;background:#ffffff15}.ff-result-head span.is-stop{background:#ffd5d5;color:#851414}.ff-result-head span.is-check{background:#ffe0a0;color:#664100}.ff-dual{display:grid;gap:9px}.ff-dual section{padding:12px;border:1px solid #ffffff24;border-radius:12px;background:#ffffff0d}.ff-dual small{color:#9bdce4;font-weight:900}.ff-dual ol{margin:.5rem 0;padding-left:1.2rem}.ff-result a{color:#fff}.ff-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.ff-actions button,.ff-actions>a{border:1px solid #ffffff55;border-radius:10px;padding:11px;background:#fff;color:var(--navy);text-align:center;font:800 inherit;text-decoration:none;cursor:pointer}.ff-actions>a{background:transparent;color:#fff}.ff-note{max-width:1100px;margin:30px auto;padding:25px}.ff-note h2{color:var(--navy)}footer{padding:30px;text-align:center;background:var(--navy);color:#fff}@media(max-width:1000px){.ff-layout{grid-template-columns:1fr}#ff-device-list{grid-template-columns:repeat(4,1fr)}.ff-select-head{grid-template-columns:1fr 1fr}.ff-select-head>div{grid-column:1/-1}.ff-workspace{grid-template-columns:1fr}}@media(max-width:700px){.ff-nav nav{display:none}.ff-hero{display:block}.ff-hero-stat{margin-top:20px}.ff-shell{padding:0 12px}.ff-danger{display:grid}#ff-device-list{grid-template-columns:1fr 1fr}.ff-symptoms{grid-template-columns:1fr 1fr}.ff-select-head{grid-template-columns:1fr}.ff-select-head>div{grid-column:auto}.ff-actions{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.ff-role{display:flex;gap:10px;margin:20px auto 0;max-width:1450px;padding:10px;border:0}.ff-role legend{position:absolute;clip:rect(0 0 0 0)}.ff-role label{flex:1;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;font-weight:900;cursor:pointer}.ff-role label:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 3px #08788c22;background:#e9f8f8}.ff-diagram-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.ff-diagram-head button{border:1px solid #80a8b7;border-radius:999px;padding:8px 13px;background:#fff;color:var(--navy);font-weight:800;cursor:pointer}.ff-diagram svg{overflow:visible}.ff-flow{fill:none;stroke:#80c8d2;stroke-width:7;stroke-dasharray:14 12;marker-end:url(#ff-arrow);animation:ffFlow 2.5s linear infinite}.ff-zone{transition:transform .2s}.ff-zone:hover{transform:translateY(-3px)}.ff-zone .ff-zone-count{font-size:12px;fill:#647d89}.ff-node{cursor:pointer}.ff-node circle{fill:#fff;stroke:#6e909f;stroke-width:3}.ff-node text{font-size:10px;font-weight:900;fill:var(--ink);pointer-events:none}.ff-node.is-path circle{stroke:var(--orange);fill:#fff2dc}.ff-node.is-current circle{fill:var(--orange);stroke:#fff;stroke-width:4;filter:url(#ff-glow);animation:ffPulse 1s ease-in-out infinite}.ff-node.is-current text{fill:#fff}.ff-drill{display:grid;grid-template-columns:minmax(160px,.5fr) 1fr 1fr;gap:10px;margin-top:12px;padding:14px;border:1px solid #bcd3dd;border-radius:16px;background:#fff}.ff-drill h4{margin:.25rem 0;color:var(--navy)}.ff-drill span{font:800 .74rem ui-monospace;color:var(--blue)}.ff-drill p{margin:0;padding:10px;border-left:3px solid #bcd3dd;background:#f7fafb}.ff-tech{margin-top:14px;border:1px solid #b9d1dc;border-radius:16px;background:#fff}.ff-tech summary{padding:14px;font-size:1.05rem;font-weight:900;cursor:pointer}.ff-tech>p{padding:0 14px}.ff-meters{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:0 14px 14px}.ff-meters label{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:8px;padding:9px;border-radius:12px;background:#eef5f7;font-weight:800}.ff-meters small{display:block;color:#617986}.ff-meters input{width:100%;padding:9px;border:1px solid #8eabb8;border-radius:9px;font:inherit}.ff-ranking{padding:0 14px 14px}.ff-ranking h4{margin:.3rem 0}.ff-ranking div{display:flex;justify-content:space-between;padding:7px 10px;border-top:1px solid #dfebef}.ff-ranking span{color:var(--blue);font-weight:900}body[data-ff-role=customer] .ff-tech,body[data-ff-role=customer] #ff-play{display:none}@keyframes ffFlow{to{stroke-dashoffset:-52}}@keyframes ffPulse{50%{transform:scale(1.22)}}
@media(max-width:700px){.ff-role{display:grid}.ff-meters,.ff-drill{grid-template-columns:1fr}.ff-meters label{grid-template-columns:1fr}.ff-diagram{padding:10px}}@media(prefers-reduced-motion:reduce){.ff-flow,.ff-node{animation:none!important}}
.ff-board{margin:10px 14px 16px;padding:14px;border:1px solid #9fb7c3;border-radius:16px;background:linear-gradient(145deg,#f7fafb,#edf4f6)}.ff-board-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.ff-board-head small{font:800 .7rem ui-monospace;letter-spacing:.1em;color:var(--blue)}.ff-board-head h4{margin:.2rem 0;color:var(--navy)}.ff-board-head label{padding:8px 10px;border-radius:10px;background:#fff;font-weight:800}.ff-board-map{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.ff-board-map button{display:flex;align-items:center;gap:7px;min-height:46px;padding:7px;border:1px solid #bdd0d8;border-radius:10px;background:#fff;color:var(--ink);text-align:left;font-weight:800;cursor:pointer}.ff-board-map button span{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:#dcecef;color:#0b5e70}.ff-board-map button.is-active{border-color:var(--orange);box-shadow:inset 0 0 0 2px #f58a1f33}.ff-board-map button:disabled{opacity:.45;cursor:not-allowed}.ff-board-detail{margin-top:10px;padding:13px;border-left:5px solid #8299a4;border-radius:12px;background:#fff}.ff-board-detail.is-enabled{border-color:var(--orange)}.ff-board-detail p{margin:.45rem 0}.ff-board-stop{padding:9px;border-radius:9px;background:#fff0ef;color:#842017}@media(max-width:700px){.ff-board-head{display:grid}.ff-board-map{grid-template-columns:repeat(2,1fr)}}
.ff-path-help{margin:8px 0 2px;padding:10px 12px;border-radius:12px;background:#fff7e8;color:#664100}.ff-zone .ff-zone-action{font-size:14px;fill:#08788c;font-weight:900}.ff-zone.is-current-zone rect{filter:url(#ff-glow);stroke:var(--orange)}.ff-layer-nav{margin-top:8px;padding:12px;border-radius:15px;background:#fff}.ff-layer-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px}.ff-layer-title span{color:#617986;font-weight:700}.ff-layer-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.ff-layer-buttons button{display:grid;grid-template-columns:28px 1fr;gap:2px 7px;align-items:center;min-height:62px;padding:8px;border:1px solid #bdd1da;border-radius:11px;background:#f8fbfc;color:var(--ink);text-align:left;cursor:pointer}.ff-layer-buttons button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#dcecef;color:#075f70;font-weight:900}.ff-layer-buttons small{color:#617986;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ff-layer-buttons button.is-active{border-color:var(--orange);background:#fff5e8;box-shadow:inset 0 0 0 2px #f58a1f30}.ff-drill{grid-template-columns:repeat(2,1fr)}.ff-drill header{grid-column:1/-1;padding:12px;border-radius:12px;background:#0b3559;color:#fff}.ff-drill header h4{color:#fff}.ff-drill header em{font-style:normal;color:#a8e5ec;font-weight:800}.ff-drill p b{display:block;margin-bottom:4px;color:#0b5e70}.ff-drill .ff-next{border-left-color:var(--orange);background:#fff7eb}.ff-board-progress{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin-top:12px}.ff-board-progress span{text-align:right;color:#617986}.ff-board-progress i{grid-column:1/-1;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--orange) var(--p),#d8e5ea var(--p))}.ff-board-visual{margin-top:10px;border:1px solid #bfd2da;border-radius:14px;background:#082f45;overflow:hidden}.ff-board-visual svg{display:block;width:100%;height:auto}.ff-board-visual .pcb{fill:#0d5b59;stroke:#77cac1;stroke-width:3}.ff-board-visual .trace{fill:none;stroke:#f3c35a;stroke-width:7}.ff-board-visual .test{fill:#f58a1f;stroke:#fff;stroke-width:5;filter:drop-shadow(0 0 8px #f58a1f)}.ff-board-visual text{fill:#fff;font-weight:800}.ff-board-map{grid-template-columns:repeat(3,1fr)}.ff-board-map button div{display:grid}.ff-board-map button small{color:#647d89}.ff-board-actions{display:flex;justify-content:space-between;gap:10px;margin-top:9px}.ff-board-actions button{padding:9px 16px;border:1px solid #8aaab7;border-radius:10px;background:#fff;color:var(--navy);font-weight:900;cursor:pointer}.ff-board-actions button:disabled{opacity:.4}.ff-board-detail h5{margin:0 0 8px;font-size:1.05rem;color:var(--navy)}.ff-guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ff-guide-grid p{padding:10px;border-radius:10px;background:#f2f7f8}.ff-guide-grid b{display:block;color:#0b6574;margin-bottom:4px}@media(max-width:900px){.ff-layer-buttons{grid-template-columns:repeat(2,1fr)}.ff-board-map{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.ff-layer-title,.ff-board-progress{display:grid}.ff-layer-buttons,.ff-guide-grid{grid-template-columns:1fr}.ff-board-progress span{text-align:left}}
.ff-casebar{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;margin:0 14px 12px;padding:12px 14px;border-radius:14px;background:#0a3558;color:#fff}.ff-casebar div{display:grid}.ff-casebar small{color:#9ddde4;font-weight:800}.ff-casebar button{min-height:42px;padding:9px 14px;border:0;border-radius:10px;background:#fff;color:#082a50;font-weight:900}.ff-evidence-log{display:grid;gap:5px;margin:0 14px 12px}.ff-evidence-log:empty{display:none}.ff-evidence-log div{padding:7px 10px;border-left:4px solid #8299a4;background:#f2f6f8}.ff-evidence-log .is-normal{border-color:#24845c}.ff-evidence-log .is-abnormal{border-color:#c34030;background:#fff1ef}.ff-instruction{display:grid;grid-template-columns:110px 1fr;gap:0;grid-column:1/-1}.ff-instruction>b,.ff-instruction>p{padding:9px 10px;margin:0;border-bottom:1px solid #deeaee}.ff-instruction>b{color:#0b6574}.ff-layer-form{grid-column:1/-1;display:grid;gap:10px;padding:12px;border-radius:13px;background:#edf5f7}.ff-layer-form label,.ff-board-form label{display:grid;gap:4px;font-weight:800}.ff-layer-form input,.ff-layer-form select,.ff-layer-form textarea,.ff-board-form input,.ff-board-form textarea{width:100%;min-height:42px;padding:8px;border:1px solid #8daab7;border-radius:8px;background:#fff;font:inherit}.ff-measure-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ff-record-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ff-record-actions button{min-height:44px;border:1px solid #86a5b3;border-radius:9px;background:#fff;color:#173651;font-weight:900}.ff-record-actions button:nth-child(1){border-color:#328562;color:#1e694d}.ff-record-actions button:nth-child(2){border-color:#c55445;color:#9b3024}.ff-layer-buttons button.is-normal,.ff-board-map button.is-normal{box-shadow:inset 4px 0 #24845c}.ff-layer-buttons button.is-abnormal,.ff-board-map button.is-abnormal{box-shadow:inset 4px 0 #c34030;background:#fff2f0}.ff-layer-buttons button.is-skipped,.ff-board-map button.is-skipped{opacity:.7}.ff-board-visual .board-zone rect{fill:#164f5b;stroke:#83b5bb;stroke-width:2}.ff-board-visual .board-zone circle{fill:#dbeff0;stroke:#0c364b;stroke-width:3}.ff-board-visual .board-zone text{font-size:12px}.ff-board-visual .board-zone.is-current rect{fill:#8d4b0b;stroke:#ffc166;stroke-width:4}.ff-board-visual .board-zone.is-current circle{fill:#f58a1f;stroke:#fff}.ff-board-form{display:grid;gap:9px;margin-top:10px;padding:12px;border-top:1px solid #ccdde3}.ff-board-form>div{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;gap:8px}@media(max-width:700px){.ff-casebar{grid-template-columns:1fr 1fr}.ff-casebar button{grid-column:1/-1}.ff-instruction{grid-template-columns:1fr}.ff-measure-row,.ff-record-actions,.ff-board-form>div{grid-template-columns:1fr}.ff-board-visual .board-zone text{font-size:10px}}
/* R23 field-console visual system */
body{background:linear-gradient(180deg,#eef4f7 0,#f7f9fb 420px);color:#16334a}.ff-nav{position:sticky;top:0;z-index:30;padding:13px max(4vw,20px);box-shadow:0 6px 24px #082a5010}.ff-hero{padding:28px max(4vw,20px) 24px;background:radial-gradient(circle at 88% 20%,#cceff1 0,transparent 28%),linear-gradient(135deg,#e8f4f7,#f8fbfc)}.ff-hero h1{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.035em}.ff-hero p{margin-bottom:0}.ff-shell{max-width:1680px;margin:20px auto;padding:0 20px}.ff-role{margin:12px auto 0;max-width:1680px;padding:0 20px}.ff-role label{position:relative;padding:15px 18px 15px 46px;border:1px solid transparent;background:#fff;box-shadow:0 8px 30px #0a345412}.ff-role label input{position:absolute;left:18px;top:18px}.ff-role label:has(input:checked){border-color:#13849a;background:linear-gradient(135deg,#edfafa,#fff);box-shadow:0 0 0 3px #08788c18,0 12px 30px #0a345416}.ff-danger{margin-top:12px;box-shadow:0 8px 24px #8754000b}.ff-flowbar{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:16px 0;padding:8px;border-radius:16px;background:#0b304f;box-shadow:0 14px 34px #082a5020}.ff-flowbar span{position:relative;padding:12px 10px;color:#9bb5c5;text-align:center;font-weight:900}.ff-flowbar span+span:before{content:'›';position:absolute;left:-4px;color:#638397}.ff-flowbar span.is-active{border-radius:10px;background:#fff;color:#0b304f}.ff-flowbar span.is-done{color:#8ce1cd}.ff-layout{grid-template-columns:220px minmax(0,1fr);align-items:start}.ff-devices,.ff-main{border:0;box-shadow:0 14px 40px #0b365015}.ff-devices{position:sticky;top:78px;padding:14px}.ff-devices h2{font-size:1rem;color:#647c8c}#ff-device-list button{min-height:55px;border-color:transparent;background:#f4f8fa;font-weight:850}#ff-device-list button:hover{background:#e8f3f5;transform:translateX(2px)}#ff-device-list button.is-active{background:linear-gradient(135deg,#0b3459,#075e72);box-shadow:0 9px 22px #08395928}.ff-main{padding:22px}.ff-select-head{padding-bottom:18px;border-bottom:1px solid #dbe7ec}.ff-select-head input,.ff-select-head select{background:#f9fbfc}.ff-symptoms button{min-height:76px;border:0;background:#f1f6f8;box-shadow:inset 0 0 0 1px #d7e4e9;transition:.18s ease}.ff-symptoms button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0b365014}.ff-symptoms button.is-active{background:linear-gradient(145deg,#e3f7f6,#fff);box-shadow:inset 4px 0 #07849a,0 8px 20px #08788c12}.ff-workspace{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:start}.ff-diagram{padding:20px;background:linear-gradient(145deg,#edf5f7,#f8fbfc);border:1px solid #d7e5ea}.ff-result{position:sticky;top:78px;box-shadow:0 18px 42px #082a5030}.ff-result h3{line-height:1.35}.ff-dual section{background:#ffffff10}.ff-tech-dock{position:sticky;top:65px;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:16px 0 10px;padding:5px;border-radius:13px;background:#dfeaed;box-shadow:0 8px 24px #0b365018}.ff-tech-dock button{min-height:42px;border:0;border-radius:9px;background:transparent;color:#21445c;font-weight:900}.ff-tech-dock button:hover,.ff-tech-dock button:focus{background:#fff;color:#075f70}.ff-layer-nav{box-shadow:0 9px 24px #0b36500d}.ff-layer-buttons button{border:0;box-shadow:inset 0 0 0 1px #d7e4e9}.ff-layer-buttons button.is-active{background:#fff4e3;box-shadow:inset 4px 0 #f58a1f,0 7px 18px #c7681415}.ff-drill{border:0;box-shadow:0 10px 28px #0b365012}.ff-drill header{background:linear-gradient(135deg,#092f53,#075d72)}.ff-layer-form{background:#f1f6f8}.ff-tech{border:0;box-shadow:0 12px 32px #0b365015;scroll-margin-top:130px}.ff-tech summary{border-radius:16px;background:#fff}.ff-casebar{background:linear-gradient(135deg,#092f53,#075d72)}.ff-board{border:0;background:linear-gradient(145deg,#f3f8f9,#fff);box-shadow:inset 0 0 0 1px #d6e3e8;scroll-margin-top:130px}.ff-board-visual{box-shadow:inset 0 0 35px #021c2a}.ff-board-map button{border:0;box-shadow:inset 0 0 0 1px #d3e0e5}.ff-board-detail{border-left-width:4px;box-shadow:0 8px 24px #0b36500d}#ff-system-panel,#ff-meters,#ff-result-panel{scroll-margin-top:130px}@media(max-width:1100px){.ff-workspace{grid-template-columns:1fr}.ff-result{position:relative;top:auto}.ff-tech-dock{top:58px}}@media(max-width:760px){.ff-shell,.ff-role{padding-left:10px;padding-right:10px}.ff-hero{padding:24px 16px}.ff-flowbar{grid-template-columns:1fr;gap:2px}.ff-flowbar span{padding:8px;text-align:left}.ff-flowbar span+span:before{content:''}.ff-layout{grid-template-columns:1fr}.ff-devices{position:relative;top:auto}#ff-device-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}#ff-device-list button{min-width:160px;scroll-snap-align:start}.ff-main{padding:12px}.ff-tech-dock{grid-template-columns:1fr 1fr}.ff-layer-buttons{grid-template-columns:1fr 1fr}.ff-symptoms{grid-template-columns:1fr}.ff-result{border-radius:15px}.ff-casebar{margin:0 8px 10px}}
.ff-diagram-tools{display:flex;gap:5px;align-items:center}.ff-diagram-tools button{min-width:40px}.ff-diagram-tools #ff-play{min-width:auto}.ff-diagram svg{touch-action:none;user-select:none}.ff-flow{display:none}.ff-link{fill:none;stroke:#9bbbc4;stroke-width:4;marker-end:url(#ff-arrow)}.ff-link.is-related{stroke:#f58a1f;stroke-width:7;filter:url(#ff-glow)}.ff-device-core circle{fill:#0b3459;stroke:#fff;stroke-width:8;filter:drop-shadow(0 12px 18px #082a5030)}.ff-device-core text{fill:#fff;font-weight:900}.ff-device-core .ff-device-icon{font-size:34px}.ff-zone rect{fill:#fff;stroke:#bad0d9;stroke-width:2;filter:drop-shadow(0 8px 12px #0b365012)}.ff-zone text{text-anchor:start}.ff-zone .ff-zone-index{fill:#dceff1;stroke:none}.ff-zone .ff-zone-number{fill:#075f70;font-size:13px;text-anchor:middle}.ff-zone .ff-zone-parts{font-size:12px;font-weight:700;fill:#587181}.ff-zone.is-focus rect{fill:#fff7e9;stroke:#f58a1f;stroke-width:4}.ff-zone.is-current-zone rect{fill:#eefafa;stroke:#087f91;stroke-width:5}.ff-part-grid{margin:10px 0 12px;padding:12px;border-radius:14px;background:#0b304f;color:#fff}.ff-part-grid>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.ff-part-grid>div:first-child small{color:#a6c4d0}.ff-part-grid>div:last-child{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.ff-part-grid button{display:grid;grid-template-columns:28px 1fr;gap:2px 7px;align-items:center;min-height:58px;padding:8px;border:1px solid #ffffff28;border-radius:10px;background:#ffffff0d;color:#fff;text-align:left}.ff-part-grid button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#ffffff18;color:#9de1e8;font-weight:900}.ff-part-grid button small{color:#9fc0cd}.ff-part-grid button:hover,.ff-part-grid button.is-active{border-color:#ffb55d;background:#ffffff1b;box-shadow:inset 0 -3px #f58a1f}@media(max-width:760px){.ff-diagram-head{align-items:flex-start}.ff-diagram-tools{flex-wrap:wrap;justify-content:flex-end}.ff-part-grid>div:first-child{display:grid}.ff-part-grid>div:last-child{grid-template-columns:1fr 1fr}.ff-zone .ff-zone-parts{font-size:11px}}@media(max-width:430px){.ff-part-grid>div:last-child{grid-template-columns:1fr}}
.ff-board-how{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px;padding:7px;border-radius:12px;background:#e3ecef}.ff-board-how span{display:flex;align-items:center;gap:7px;padding:8px;color:#476577;font-weight:850}.ff-board-how b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#0b5f70;color:#fff}.ff-board-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.ff-board-zones button{display:grid;grid-template-columns:32px 1fr;gap:8px;align-items:center;min-height:68px;padding:9px;border:0;border-radius:11px;background:#edf4f6;color:#173651;text-align:left;box-shadow:inset 0 0 0 1px #ccdce2}.ff-board-zones button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#d6e8ec;color:#086476;font-weight:950}.ff-board-zones button div{display:grid;gap:2px}.ff-board-zones button small{color:#607988}.ff-board-zones button em{color:#08788c;font-size:.75rem;font-style:normal;font-weight:900}.ff-board-zones button.is-active{background:#fff3df;box-shadow:inset 4px 0 #f58a1f,0 7px 18px #b75c1115}.ff-board-zones button:disabled{opacity:.45}.ff-board-visual .board-zone{cursor:pointer}.ff-board-visual .board-zone:focus rect{stroke:#fff;stroke-width:5}.ff-board-route{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 12px;border-radius:10px;background:#0b3459;color:#fff}.ff-board-route span{color:#a9dce3}.ff-board-route strong{color:#ffc16e}@media(max-width:760px){.ff-board-how{grid-template-columns:1fr 1fr}.ff-board-zones{grid-template-columns:1fr}.ff-board-route{display:grid}}
.ff-code-lookup{display:grid;grid-template-columns:1fr 220px auto;gap:10px;align-items:end;margin:14px 0;padding:12px 14px;border-radius:13px;background:#edf5f7}.ff-code-lookup>div:first-child{display:grid;gap:3px}.ff-code-lookup span{color:#617986;font-size:.85rem}.ff-code-lookup label{display:grid;gap:4px;font-weight:850}.ff-code-lookup input{min-height:42px;padding:8px;border:1px solid #8faab7;border-radius:9px;font:inherit;text-transform:uppercase}.ff-code-lookup>button{min-height:42px;padding:8px 15px;border:0;border-radius:9px;background:#0b5f70;color:#fff;font-weight:900}.ff-code-lookup #ff-code-results{grid-column:1/-1}.ff-code-lookup #ff-code-results article{margin-top:8px;padding:10px;border-left:4px solid #f58a1f;background:#fff}.ff-code-lookup #ff-code-results p{margin:.35rem 0}@media(max-width:760px){.ff-code-lookup{grid-template-columns:1fr}.ff-code-lookup #ff-code-results{grid-column:auto}}
.ff-source-proof{margin-top:5px}.ff-source-proof ul{display:grid;gap:4px;margin:0;padding:0;list-style:none}.ff-source-proof li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.ff-source-proof a{color:#075f70;font-weight:900}.ff-source-proof small{color:#526c66}.ff-source-proof p{margin:5px 0 0;color:#405e6c;font-size:.78rem}.ff-code-lookup #ff-code-results article{display:grid;gap:5px}.ff-code-lookup #ff-code-results article small{color:#526c66}.ff-code-lookup #ff-code-results article a{width:max-content;color:#075f70;font-weight:900}.ff-select-head datalist,.ff-code-lookup datalist{display:none}
.ff-standard-proof{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;gap:6px 12px;align-items:center;padding:11px 13px;border:1px solid #86c9b2;border-left:5px solid #24845c;border-radius:11px;background:#effaf5}.ff-standard-proof b{color:#176444}.ff-standard-proof small{grid-column:1/3;color:#526c66}.ff-standard-proof a{grid-row:1/3;grid-column:3;color:#075f70;font-weight:900}.ff-standard-proof.is-pending{grid-template-columns:1fr;border-color:#e3bd82;border-left-color:#c97518;background:#fff8ed}.ff-standard-proof.is-pending b{color:#8a4c0c}.ff-standard-proof.is-pending small{grid-column:1}@media(max-width:760px){.ff-standard-proof{grid-template-columns:1fr}.ff-standard-proof small,.ff-standard-proof a{grid-column:1;grid-row:auto}}

/* R56 mobile containment */
.ff-layout,.ff-main,.ff-workspace,.ff-diagram{min-width:0}
@media(max-width:760px){
  .ff-layout,.ff-main,.ff-workspace,.ff-diagram{width:100%;max-width:100%;min-width:0}
  .ff-diagram{overflow:hidden}
  .ff-diagram svg{display:block;width:100%;max-width:100%;height:auto;overflow:hidden}
  .ff-zone:hover{transform:none}
}

/* R57 use zero-minimum grid tracks on narrow screens. */
@media(max-width:760px){
  .ff-layout,.ff-workspace,.ff-select-head,.ff-code-lookup{grid-template-columns:minmax(0,1fr)}
  .ff-devices,.ff-main,.ff-result{min-width:0;max-width:100%}
}
