:root{--fk-ink: #1d2430;--fk-muted: #5a6474;--fk-surface: #ffffff;--fk-paper: #faf8f2;--fk-line: #e2ddd0;--fk-rule: #d7e6e4;--fk-teal: #0f6e69;--fk-teal-dark: #0a4f4b;--fk-teal-soft: #e3f1ef;--fk-amber: #b4650a;--fk-amber-soft: #fdf1df;--fk-red: #a3261d;--fk-red-soft: #fbeae7;--fk-radius: 10px;--fk-shadow: 0 10px 28px rgba(29,36,48,0.07);--fk-focus: 0 0 0 3px rgba(15,110,105,0.28);--fk-mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--primary: var(--fk-teal);--primary-dark: var(--fk-teal-dark);--border: var(--fk-line);--surface: var(--fk-surface);--shadow-soft: var(--fk-shadow);--surface-muted: var(--fk-paper);--text-main: var(--fk-ink);--text-muted: var(--fk-muted);}
.fk-wrap [hidden]{display: none !important;}
.fk-tool{background: var(--fk-surface);border: 1px solid var(--fk-line);border-radius: var(--fk-radius);box-shadow: var(--fk-shadow);padding: 20px;margin-bottom: 44px;color: var(--fk-ink);}
.fk-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 4px 16px;font-size: 0.85rem;color: var(--fk-muted);padding-bottom: 12px;margin-bottom: 18px;border-bottom: 1px dashed var(--fk-line);}
.fk-byline a{color: var(--fk-teal);}
.fk-top{display: grid;grid-template-columns: minmax(0,1fr);gap: 20px;}
.fk-labelrow{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: baseline;gap: 6px;margin-bottom: 6px;}
.fk-label{font-weight: 700;}
.fk-count{font-size: 0.85rem;color: var(--fk-muted);font-variant-numeric: tabular-nums;}
.fk-text{width: 100%;min-height: 260px;resize: vertical;padding: 14px 16px;border: 1px solid var(--fk-line);border-radius: var(--fk-radius);background: var(--fk-paper);background-image: repeating-linear-gradient(to bottom,transparent 0,transparent 27px,var(--fk-rule) 27px,var(--fk-rule) 28px);background-attachment: local;line-height: 28px;font-size: 1rem;color: var(--fk-ink);}
.fk-text:focus{outline: none;border-color: var(--fk-teal);box-shadow: var(--fk-focus);}
.fk-actions{display: flex;flex-wrap: wrap;gap: 8px;margin-top: 12px;}
.fk-btn{appearance: none;border: 1px solid var(--fk-teal);background: var(--fk-teal);color: #fff;font-weight: 600;font-size: 0.92rem;padding: 8px 16px;border-radius: 999px;cursor: pointer;transition: background 0.15s ease;}
.fk-btn:hover{background: var(--fk-teal-dark);border-color: var(--fk-teal-dark);}
.fk-btn:focus-visible{outline: none;box-shadow: var(--fk-focus);}
.fk-btn-ghost{background: transparent;color: var(--fk-teal);}
.fk-btn-ghost:hover{background: var(--fk-teal-soft);color: var(--fk-teal-dark);}
.fk-btn:disabled{opacity: 0.45;cursor: not-allowed;}
.fk-btn-sm{padding: 5px 12px;font-size: 0.82rem;}
.fk-note{min-height: 1.2em;margin: 10px 0 0;font-size: 0.88rem;color: var(--fk-amber);}
.fk-private{margin: 4px 0 0;font-size: 0.82rem;color: var(--fk-muted);}
.fk-out{background: var(--fk-paper);border: 1px solid var(--fk-line);border-radius: var(--fk-radius);padding: 18px;}
.fk-empty{display: flex;align-items: center;min-height: 200px;color: var(--fk-muted);text-align: center;justify-content: center;}
.fk-empty p{margin: 0;}
.fk-scores{display: grid;grid-template-columns: 1fr 1fr;gap: 12px;}
.fk-score{background: var(--fk-surface);border: 1px solid var(--fk-line);border-radius: var(--fk-radius);padding: 14px;}
.fk-kicker{margin: 0;font-size: 0.78rem;font-weight: 700;letter-spacing: 0.04em;text-transform: uppercase;color: var(--fk-muted);}
.fk-big{margin: 4px 0 2px;font-size: 2.4rem;font-weight: 800;line-height: 1.1;color: var(--fk-teal-dark);font-variant-numeric: tabular-nums;}
.fk-sub{margin: 0;font-size: 0.86rem;color: var(--fk-ink);}
.fk-meter{margin: 16px 0 6px;}
.fk-track{position: relative;height: 10px;border-radius: 999px;background: linear-gradient(90deg,#c9493f 0%,#e08a2e 30%,#e7c447 50%,#7fbf7a 70%,#2f9b72 100%);}
.fk-mark{position: absolute;top: -5px;width: 4px;height: 20px;margin-left: -2px;background: var(--fk-ink);border-radius: 2px;transition: left 0.25s ease;}
.fk-scale{display: flex;justify-content: space-between;font-size: 0.74rem;color: var(--fk-muted);margin-top: 4px;}
.fk-target{display: flex;align-items: center;gap: 10px;margin-top: 14px;padding-top: 14px;border-top: 1px dashed var(--fk-line);font-weight: 600;font-size: 0.92rem;}
.fk-target input{width: 84px;padding: 6px 10px;border: 1px solid var(--fk-line);border-radius: 8px;font-size: 0.95rem;font-variant-numeric: tabular-nums;}
.fk-target input:focus{outline: none;border-color: var(--fk-teal);box-shadow: var(--fk-focus);}
.fk-solve{font-size: 0.9rem;}
.fk-paths{list-style: none;padding: 0;margin: 10px 0 0;display: grid;gap: 8px;}
.fk-paths li{background: var(--fk-surface);border-left: 3px solid var(--fk-amber);padding: 8px 12px;border-radius: 0 8px 8px 0;}
.fk-paths strong{display: block;}
.fk-mix{margin: 8px 0 0;color: var(--fk-muted);font-size: 0.84rem;}
.fk-ok{margin: 10px 0 0;padding: 8px 12px;background: var(--fk-teal-soft);border-radius: 8px;color: var(--fk-teal-dark);font-weight: 600;}
.fk-lower{display: grid;grid-template-columns: minmax(0,1fr);gap: 20px;margin-top: 22px;padding-top: 20px;border-top: 1px solid var(--fk-line);}
.fk-h{font-size: 1.08rem;font-weight: 700;margin: 0 0 10px;}
.fk-workcard{background: var(--fk-paper);border: 1px solid var(--fk-line);border-radius: var(--fk-radius);padding: 16px;}
.fk-work{list-style: none;padding: 0;margin: 0;display: grid;gap: 12px;}
.fk-work li{display: flex;gap: 12px;align-items: flex-start;}
.fk-n{flex: 0 0 26px;height: 26px;border-radius: 50%;background: var(--fk-teal);color: #fff;font-weight: 700;font-size: 0.82rem;display: flex;align-items: center;justify-content: center;}
.fk-step{margin: 0;font-weight: 700;font-size: 0.9rem;}
.fk-eq{margin: 2px 0 0;font-family: var(--fk-mono);font-size: 0.86rem;overflow-wrap: anywhere;}
.fk-eq b{color: var(--fk-teal-dark);}
.fk-ledger-head{display: flex;justify-content: space-between;align-items: center;gap: 10px;flex-wrap: wrap;}
.fk-ledger-head .fk-h{margin: 0;}
.fk-ledger-note{margin: 6px 0 10px;font-size: 0.88rem;color: var(--fk-muted);}
.fk-scroll{overflow-x: auto;-webkit-overflow-scrolling: touch;}
.fk-table{width: 100%;border-collapse: collapse;font-size: 0.9rem;}
.fk-table th{text-align: left;font-size: 0.78rem;text-transform: uppercase;letter-spacing: 0.03em;color: var(--fk-muted);padding: 8px 10px;border-bottom: 2px solid var(--fk-line);white-space: nowrap;}
.fk-table td{padding: 8px 10px;border-bottom: 1px solid var(--fk-line);vertical-align: top;}
.fk-table .fk-c{text-align: right;font-variant-numeric: tabular-nums;white-space: nowrap;}
.fk-table .fk-g{font-weight: 700;}
.fk-table tr.is-over td{background: var(--fk-amber-soft);}
.fk-table summary{cursor: pointer;list-style-position: outside;}
.fk-table summary:focus-visible{outline: none;box-shadow: var(--fk-focus);border-radius: 4px;}
.fk-tag{display: inline-block;margin-left: 4px;padding: 1px 7px;border-radius: 999px;background: var(--fk-red-soft);color: var(--fk-red);font-size: 0.72rem;font-weight: 700;vertical-align: 1px;}
.fk-words{margin: 8px 0 2px;line-height: 2;font-size: 0.88rem;}
.fk-w{display: inline-block;padding: 0 4px;border-radius: 4px;background: var(--fk-surface);border: 1px solid var(--fk-line);line-height: 1.6;}
.fk-w sub{font-size: 0.7rem;color: var(--fk-muted);margin-left: 2px;bottom: 0;}
.fk-w.is-long{border-color: var(--fk-amber);background: var(--fk-amber-soft);}
.fk-w.is-long sub{color: var(--fk-amber);font-weight: 700;}
.fk-more{margin: 8px 0 0;font-size: 0.82rem;color: var(--fk-muted);}
.fk-table-plain{background: var(--fk-surface);margin: 4px 0 16px;}
.fk-article{margin: 0 auto 36px;color: var(--fk-ink);line-height: 1.7;}
.fk-article h2{font-size: 1.45rem;font-weight: 700;margin: 2.2rem 0 0.8rem;}
.fk-article p{margin: 0 0 1rem;}
.fk-article a{color: var(--fk-teal);text-decoration: underline;text-underline-offset: 2px;}
.fk-article code{font-family: var(--fk-mono);font-size: 0.86rem;background: var(--fk-teal-soft);color: var(--fk-teal-dark);padding: 2px 6px;border-radius: 4px;overflow-wrap: anywhere;}
.fk-quote{margin: 0 0 1rem;padding: 12px 16px;border-left: 4px solid var(--fk-teal);background: var(--fk-paper);font-style: italic;}
.fk-steps{padding-left: 1.3rem;margin: 0 0 1rem;}
.fk-steps li{margin-bottom: 0.5rem;}
.fk-bounds,.fk-limits{list-style: none;padding: 0;margin: 0 0 1rem;display: grid;gap: 10px;}
.fk-bounds li{padding: 12px 14px;background: var(--fk-paper);border: 1px solid var(--fk-line);border-radius: var(--fk-radius);}
.fk-limits li{padding: 4px 0 4px 16px;border-left: 3px solid var(--fk-line);}
.fk-bounds strong,.fk-limits strong{display: block;}
.fk-closing{display: grid;grid-template-columns: minmax(0,1fr);gap: 1.25rem;align-items: start;margin-top: 1rem;}
.fk-closing > section{margin: 0;min-width: 0;}
@media (min-width: 768px){.fk-tool{padding: 26px;}.fk-big{font-size: 2.8rem;}}
@media (min-width: 992px){.fk-top{grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);}.fk-lower{grid-template-columns: minmax(0,0.85fr) minmax(0,1.15fr);}.fk-closing{grid-template-columns: minmax(0,2fr) minmax(0,1fr);}}
@media (max-width: 420px){.fk-scores{grid-template-columns: 1fr;}}