:root{--paper:#f5f4ef;--panel:#fcfbf8;--ink:#263c32;--muted:#8c938b;--line:#e5e7df;--green:#304d3d;--soft:#e9eee5;--accent:#b5875d;--shadow:0 8px 28px #22362a0b;--radius:12px;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font:13px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;-webkit-text-size-adjust:100%}
a{color:inherit}button,input{font:inherit;color:inherit}
.af-top{display:flex;align-items:center;justify-content:space-between;height:58px;padding:0 max(22px,env(safe-area-inset-right)) 0 max(22px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:var(--panel)}
.af-brand{display:flex;align-items:center;gap:9px;min-height:44px;font-size:19px;font-weight:650;text-decoration:none;letter-spacing:-.02em}.af-brand small{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px;padding-left:12px;border-left:1px solid var(--line)}
.af-mark{width:28px;height:28px}.af-back{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);text-decoration:none;font-size:12px}
.af-main{max-width:1240px;margin:0 auto;padding:22px max(22px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left))}
.af-eyebrow{font-size:10px;letter-spacing:.18em;color:var(--muted)}.af-intro h1{font-size:24px;line-height:1.25;margin:6px 0 8px;font-weight:650;letter-spacing:-.02em}
.af-schematic{margin:0;max-width:860px;color:#4b5a51;font-size:12.5px;background:#fff8ee;border:1px solid #ecdcc6;border-radius:10px;padding:10px 12px}.af-schematic b{color:#8a5a2c}.af-schematic code{font-size:11.5px;background:#f3ebe0;padding:1px 4px;border-radius:4px}
.af-controls{margin:16px 0 12px}.af-options{display:flex;flex-wrap:wrap;gap:8px}
.af-opt{min-height:44px;padding:6px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;cursor:pointer;text-align:left}
.af-opt b{font-size:13px;font-weight:600}.af-opt span{font-size:11px;color:var(--muted)}.af-opt[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.af-opt[aria-pressed=true] span{color:#d5e1d8}
.af-len{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.af-len[hidden]{display:none}
.af-len label{font-weight:600}.af-len output{font-variant-numeric:tabular-nums;color:var(--green)}.af-len input{flex:1 1 220px;min-height:44px;accent-color:var(--green)}.af-len-hint{font-size:11px;color:var(--muted)}
.af-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.af-stage{position:relative;border:1px solid var(--line);border-radius:16px;background:#fbfaf6;box-shadow:var(--shadow);overflow:hidden;touch-action:pan-y}
.af-stage canvas{display:block;margin:0 auto}#afFlow{position:absolute;left:50%;top:0;transform:translateX(-50%);pointer-events:none}
.af-stagebar{position:absolute;right:10px;bottom:10px;display:flex;gap:8px;align-items:center}
.af-stagebar button,.af-check{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fffdf8e8;display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}
.af-check input{width:18px;height:18px;accent-color:var(--green)}
.af-readouts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.af-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.af-card b{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.af-label{font-size:11px;color:var(--muted)}.af-sub{font-size:11px;color:#5d6b62}
.af-main-card,.af-wide{grid-column:1/-1}.af-main-card b{font-size:34px}.af-row{font:11.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word}
.af-bar{position:relative;height:8px;border-radius:4px;background:var(--soft);margin:6px 0 4px}.af-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--green);transition:width .3s}
.af-bar em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--accent)}.af-bar em:after{content:'70 %';position:absolute;top:-16px;left:-10px;font:600 9px/1 sans-serif;color:var(--accent);font-style:normal}
.af-ok{color:var(--green)}.af-warn{color:#a2382a}
.af-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 4px;font-size:11.5px;color:#5d6b62}.af-legend i{display:inline-block;width:18px;height:4px;border-radius:2px;margin-right:6px;vertical-align:middle}
.lg-free{background:#3f8f8c}.lg-slat{background:#8fb8b0}.lg-hit{background:#c4793d}.lg-line{background:#6fa4c9;opacity:.6}
.af-foot{font-size:11px;color:var(--muted);margin-top:10px}
@media (max-width:900px){.af-grid{grid-template-columns:1fr}}
@media (max-width:640px){.af-top{height:52px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}.af-brand{font-size:17px}.af-brand small{display:none}
 .af-main{padding:14px max(12px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.af-intro h1{font-size:19px}
 .af-options{display:grid;grid-template-columns:1fr 1fr}.af-opt{width:100%}.af-stagebar{right:8px;bottom:8px}.af-main-card b{font-size:30px}}
@media (prefers-reduced-motion:reduce){.af-bar i{transition:none}}
.af-default{margin:8px 0 0;font-size:12px;line-height:1.7;color:#5b6a5f;background:#eef3ec;border:1px solid #dbe5d6;border-radius:10px;padding:8px 12px}.af-default b{color:#304d3d}
.af-backend{margin:4px 0 0;font-size:11px;color:#8c938b}
