/* Native FTK workspace, with Kansa's blue palette for the learning shell. */
.ftki { --ftki-blue:#246cb6; --ftki-ink:#172f50; --ftki-line:#bed8f3; margin:0; padding:20px; font-size:14px; line-height:1.5; }
.ftki *, .ftki *::before, .ftki *::after { box-sizing:border-box; }
.ftki [hidden] { display:none!important; }
.md-typeset .ftki h4, .md-typeset .ftki h5, .md-typeset .ftki p { margin:0; }
.ftki button, .ftki input, .ftki select { font:inherit; }
.ftki button { cursor:pointer; }
.ftki button:disabled { cursor:default; opacity:.45; }
.ftki button:focus-visible, .ftki input:focus-visible, .ftki select:focus-visible, .ftki summary:focus-visible, .ftki a:focus-visible { outline:3px solid #1680dc; outline-offset:2px; }
.ftki-kicker { display:block; color:#355b91; font-size:11px; font-weight:800; letter-spacing:.08em; }
/* Override the site's general documentation typography inside this app. */
body .md-typeset .ftki .ftki-brief h4 { margin:5px 0 7px!important; color:#153f79!important; font-size:20px!important; }
body .md-typeset .ftki .ftki-finding h4 { margin:4px 0 6px!important; color:#193f78!important; font-size:18px!important; }
body .md-typeset .ftki .ftki-app h5 { margin:0!important; color:#111!important; font-weight:400!important; text-transform:none!important; letter-spacing:0!important; }
body .md-typeset .ftki .ftki-plan { margin:0!important; border:1px solid #bed8f3!important; border-top:0!important; border-radius:0 0 8px 8px; background:#f7faff!important; color:#172f50!important; box-shadow:none; }
body .md-typeset .ftki .ftki-plan>summary { margin:0!important; padding:11px 20px!important; color:#244e8b!important; background:#edf5ff!important; }
body .md-typeset .ftki .ftki-plan>summary::before { display:none; }
body .md-typeset .ftki .ftki-plan>summary::after { color:#246cb6; }
body .md-typeset .ftki .ftki-milestones { display:grid!important; margin:14px 0!important; padding:0!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; }
body .md-typeset .ftki .ftki-milestones li { margin:0!important; padding:9px!important; }
body .md-typeset .ftki .ftki-filelist table { display:table!important; width:100%!important; margin:0!important; }
.ftki-brief { display:flex; gap:18px; justify-content:space-between; padding:20px; border:1px solid var(--ftki-line); border-radius:10px 10px 0 0; background:linear-gradient(120deg,#edf5ff,#e1ebfc); color:var(--ftki-ink); }
.md-typeset .ftki-brief h4 { margin:5px 0 7px; font-size:20px; line-height:1.25; color:#153f79; }
.ftki-brief p { max-width:680px; }
.ftki-badge { flex-shrink:0; align-self:flex-start; padding:5px 9px; border:1px solid #b4c8e7; border-radius:20px; background:#fff9; font-size:11px; color:#294f85; }
.ftki-plan { border:1px solid var(--ftki-line); border-top:0; background:#f7faff; color:var(--ftki-ink); }
.ftki-plan summary { padding:11px 20px; cursor:pointer; font-weight:700; color:#244e8b; }
.ftki-plan>div { padding:0 20px 16px; }
.ftki-plan dl { display:grid; grid-template-columns:1fr 1fr 1.4fr; gap:14px; margin:12px 0; }
.ftki-plan dt { color:#526a89; font-size:11px; font-weight:700; }
.ftki-plan dd { margin:3px 0 0; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.md-typeset .ftki-plan code { color:#203e69; background:#e6eefb; font-size:12px; }
.ftki-plan .ftki-boundary { font-size:11px; line-height:1.5; color:#516984; }
.md-typeset .ftki-milestones { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:14px 0; padding:0; list-style:none; }
.md-typeset .ftki-milestones li { display:flex; margin:0; padding:9px; gap:8px; align-items:center; border:1px solid var(--ftki-line); border-radius:6px; color:#526c8a; background:#f7faff; font-size:12px; }
.ftki-milestones b { display:grid; place-items:center; flex-shrink:0; width:24px; height:24px; border:1px solid #adbed6; border-radius:50%; background:#fff; }
.md-typeset .ftki-milestones [aria-current] { color:#183e79; border-color:#4779bd; background:#e8f1ff; font-weight:700; }
.ftki-milestones [aria-current] b { background:#246cb6; border-color:#246cb6; color:#fff; }
.md-typeset .ftki-milestones li.is-done { color:#24518b; background:#edf5ff; }
.ftki-milestones .is-done b { border-color:#4676b4; color:#24518b; }
.ftki-app { isolation:isolate; position:relative; border:1px solid #8b8f94; border-radius:3px; overflow:hidden; background:#f0f0f0; color:#111; font:13px/1.4 'Segoe UI',Tahoma,sans-serif; box-shadow:0 8px 24px #172d4b18; color-scheme:light; }
.ftki-title { display:flex; align-items:center; gap:6px; min-height:30px; padding:4px 9px; border-bottom:1px solid #d9d9d9; background:#fafafa; }
.ftki-title img { width:16px; height:16px; object-fit:contain; }
.ftki-window-glyphs { margin-left:auto; white-space:nowrap; font-size:14px; }
.ftki-menubar { display:flex; align-items:center; padding:0 4px; }
.ftki-menubar button { padding:3px 8px; color:#111; border:1px solid transparent; border-radius:0; background:transparent; font-size:13px; }
.ftki-menubar>button:hover, .ftki-menu-wrap>button:hover, .ftki-menu-wrap>button[aria-expanded=true] { background:#e4effb; border-color:#91b5de; }
.ftki-menu-wrap { position:relative; }
.ftki-menu { position:absolute; top:100%; left:0; z-index:8; min-width:218px; padding:3px; border:1px solid #a7a7a7; background:#f8f8f8; box-shadow:3px 4px 8px #0003; }
.ftki-menu button { display:block; width:100%; padding:5px 12px; text-align:left; }
.ftki-menu button:not(:disabled):hover { background:#cce6ff; }
.ftki-menu hr { margin:3px 0; border:0; border-top:1px solid #ccc; }
.ftki-toolbar { display:flex; gap:2px; align-items:center; padding:3px 7px; border-bottom:1px solid #a7a7a7; }
.ftki-toolbar button { display:grid; place-items:center; width:28px; height:28px; padding:3px; border:1px solid transparent; border-radius:0; background:transparent; color:#222; }
.ftki-toolbar button:not(:disabled):hover, .ftki-toolbar [aria-pressed=true] { border-color:#1680dc; background:#dcedff; }
.ftki-toolbar svg { width:20px; height:20px; fill:#f8f8ee; stroke:#23364b; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.ftki-toolbar .ftki-green { stroke:#078f49; stroke-width:2; }
.ftki-toolbar strong { color:#8e7200; font-size:20px; }
.ftki-separator { width:1px; height:22px; margin:0 4px; background:#c5c5c5; }
.ftki-text-icon { font-size:13px; font-weight:800; line-height:1; }
.ftki-text-icon small { display:block; font-size:7px; margin-top:2px; }
.ftki-canvas { position:relative; min-height:520px; }
.ftki-workspace { display:grid; grid-template-columns:minmax(150px,25%) minmax(0,1fr); grid-template-rows:250px 270px; gap:4px; padding:0 3px 3px; background:#d5d5d5; }
.ftki-workspace>section { min-width:0; background:#fff; overflow:hidden; border:1px solid #a8a8a8; }
.md-typeset .ftki-workspace h5 { display:flex; justify-content:space-between; padding:3px 6px; background:#f1f1f1; border-bottom:1px solid #aaa; color:#111; font-size:13px; font-weight:400; line-height:1.4; }
.ftki-viewer h5 span { color:#5b5b5b; font-size:11px; }
.ftki-tree>div { overflow:auto; height:calc(100% - 26px); padding:6px 3px; }
.ftki .ftki-empty { padding:6px; font-size:12px; color:#777; }
.ftki-tree button { display:block; width:100%; text-align:left; padding:3px 5px; color:#111; background:#fff; border:1px solid transparent; font-size:12px; overflow-wrap:anywhere; }
.ftki-tree button[aria-current=true] { background:#cce6ff; border-color:#92bce8; }
.ftki-tree button[data-ftki-node=volume] { padding-left:15px; }
.ftki-tree button[data-ftki-node=root] { padding-left:25px; }
.ftki-tree button[data-ftki-node=training] { padding-left:35px; }
.ftki-table-scroll { overflow:auto; max-width:100%; }
.md-typeset .ftki .ftki-files-table { display:table; width:100%; margin:0; border:0; border-radius:0; background:#fff; color:#111; font:12px/1.35 'Segoe UI',sans-serif; }
.md-typeset .ftki .ftki-files-table th, .md-typeset .ftki .ftki-files-table td { padding:5px 7px; min-width:0; background:#fff; border:0; border-bottom:1px solid #eee; font-weight:400; white-space:nowrap; }
.md-typeset .ftki .ftki-files-table th { border-right:1px solid #ddd; }
.ftki-filelist td button { display:block; background:transparent; color:#111; border:0; padding:0; text-align:left; width:100%; font:inherit; }
.ftki-filelist tr.is-selected td { background:#cce6ff!important; }
.ftki-properties { position:relative; }
.ftki-properties dl { margin:6px; font-size:12px; }
.ftki-properties dl>div { display:grid; grid-template-columns:65px minmax(0,1fr); border-bottom:1px solid #eee; padding:3px 0; gap:5px; }
.ftki-properties dd { margin:0; overflow-wrap:anywhere; }
.ftki-properties dt { color:#555; }
.ftki-pane-tabs { position:absolute; bottom:0; display:flex; max-width:100%; overflow:hidden; white-space:nowrap; background:#f0f0f0; }
.ftki-pane-tabs span { padding:4px; border:1px solid #aaa; font-size:10px; color:#777; }
.ftki-pane-tabs span:first-child { background:#fff; color:#111; border-top:2px solid #3783c5; }
.md-typeset .ftki-viewer pre { margin:0; height:calc(100% - 28px); padding:12px; background:#fff; color:#111; font:13px/1.7 Consolas,monospace; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
.ftki-dialog-layer { position:absolute; inset:0; z-index:5; display:flex; align-items:center; justify-content:center; padding:12px; background:#f0f0f066; }
.ftki-dialog { width:480px; max-width:100%; max-height:100%; display:flex; flex-direction:column; background:#f0f0f0; border:1px solid #777; border-radius:3px; box-shadow:0 7px 25px #0004; color:#111; }
.ftki-dialog>header { display:flex; align-items:center; justify-content:space-between; min-height:30px; padding:4px 9px; background:#fafafa; border-bottom:1px solid #dedede; }
.md-typeset .ftki-dialog>header h5 { font-size:13px; font-weight:400; color:#111; line-height:1.4; }
.ftki-dialog>header button { padding:0 4px; border:0; background:transparent; color:#111; font-size:20px; line-height:1; }
.ftki-dialog-body { padding:18px 20px 8px; overflow:auto; min-height:215px; }
.ftki-dialog fieldset { border:1px solid #d4d4d4; margin:0 0 12px; padding:12px; }
.ftki-dialog legend { padding:0 5px; color:#111; }
.ftki-dialog label { display:flex; align-items:center; gap:6px; margin:8px 0; font-size:13px; color:#111; }
.ftki-dialog label small { display:block; font-size:11px; }
.ftki-dialog input[type=radio], .ftki-dialog input[type=checkbox] { appearance:auto; width:13px; height:13px; flex-shrink:0; accent-color:#087ad4; margin:0; }
.ftki-dialog input:not([type=radio]):not([type=checkbox]), .ftki-dialog select { padding:3px 5px; width:100%; min-width:0; height:28px; border:1px solid #aaa; border-radius:0; background:#fff; color:#111; font-size:13px; }
.ftki-dialog input[readonly] { background:#f0f0f0!important; }
.ftki-dialog .ftki-field { display:block; margin:0 0 12px; }
.ftki-field>input, .ftki-field>select { display:block; margin-top:4px; }
.ftki-dialog [data-ftki-panel=metadata] .ftki-field { display:grid; grid-template-columns:115px minmax(0,1fr); gap:6px; align-items:center; }
.ftki-dialog [data-ftki-panel=metadata] input { margin:0; }
.ftki-dialog .ftki-number { display:flex; justify-content:flex-end; margin-top:12px; }
.ftki-dialog .ftki-number input { width:82px; }
.ftki-dialog small { font-size:11px; color:#555; }
.ftki-dialog button:not(header button) { padding:4px 12px; min-height:28px; border:1px solid #aaa; border-radius:3px; background:#fafafa; color:#111; font-size:13px; }
.ftki-dialog button:not(:disabled):hover { background:#e5f1fd; border-color:#1680dc; }
.ftki-destinations { min-height:85px; padding:6px; border:1px solid #89929b; background:#fff; overflow-wrap:anywhere; font-size:12px; }
.ftki-destinations { white-space:pre-line; }
.ftki-destination-buttons { display:flex; gap:8px; justify-content:space-between; margin-top:8px; }
.ftki-destination-buttons button { flex:1; }
.ftki-dialog .ftki-dialog-feedback { padding:0 20px; min-height:30px; color:#944008; font-size:12px; line-height:1.4; }
.ftki-dialog>footer { display:flex; justify-content:flex-end; gap:8px; border-top:1px solid #aaa; margin:4px 10px 0; padding:12px 0; }
.ftki-dialog [data-ftki-next] { border-color:#1680dc!important; }
.ftki-dialog progress { display:block; width:100%; height:18px; margin:20px 0 8px; accent-color:#078dd3; }
.ftki-dialog [data-ftki-panel=progress] p { margin:8px 0; }
.ftki-dialog [data-ftki-panel=progress] label { align-items:flex-start; }
.ftki-dialog [data-ftki-panel=progress] label span { min-width:0; overflow-wrap:anywhere; }
.ftki-dialog [data-ftki-panel=results] p { margin:8px 0; font-size:12px; }
.ftki .ftki-simulated-values { color:#555; font-size:11px; }
.md-typeset .ftki .ftki-results { display:table; margin:0; width:100%; border:1px solid #ddd; border-radius:0; font:11px/1.4 'Segoe UI',sans-serif; color:#111; background:#fff; }
.md-typeset .ftki .ftki-results th, .md-typeset .ftki .ftki-results td { padding:3px 5px; min-width:0; border:0; border-bottom:1px solid #eee; background:#fff; }
.ftki-results td:first-child { width:42%; }
.ftki-results td:last-child { overflow-wrap:anywhere; }
.md-typeset .ftki .ftki-results .ftki-group th { background:#eee; text-align:left; }
.ftki-dialog .ftki-browse-note { font-size:12px; margin-top:12px; color:#555; }
.ftki-statusbar { display:flex; justify-content:space-between; gap:10px; padding:3px 6px; border-top:1px solid #aaa; font-size:12px; }
.ftki-statusbar span:first-child { overflow-wrap:anywhere; }
.ftki-coach { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:20px; margin-top:16px; border:1px solid #aac4e9; border-radius:8px; background:#edf5ff; color:#213e67; }
.ftki-coach strong { display:block; margin:3px 0; font-size:14px; }
.ftki-coach p { font-size:12px; }
.ftki-coach button, .ftki-footer button, .ftki-complete button { padding:8px 12px; border:1px solid #9cb8df; border-radius:5px; background:#fff; color:#24549a; font-size:12px; font-weight:700; }
.ftki-coach>[data-ftki-hint-text], .ftki-coach>.ftki-copy-record { grid-column:1/-1; padding:12px; background:#fff; border-left:3px solid #246cb6; border-radius:3px; }
.ftki-coach .ftki-working-copy { grid-column:1/-1; justify-self:start; background:#246cb6; border-color:#246cb6; color:#fff; }
.ftki-finding { margin-top:16px; padding:20px; border:1px solid var(--ftki-line); border-radius:8px; color:#1a365e; background:#f8fbff; }
.md-typeset .ftki-finding h4 { font-size:18px; margin:4px 0 6px; color:#193f78; }
.ftki-finding>div { display:grid; gap:8px; margin:14px 0 8px; }
.ftki-finding button { padding:12px; text-align:left; border:1px solid #b6c9e6; border-radius:5px; color:#243e60; background:#fff; font-size:13px; line-height:1.5; }
.ftki-finding button:hover { border-color:#246cb6; background:#eef5ff; }
.ftki-finding button[aria-pressed=true] { border:2px solid #246cb6; padding:11px; background:#e8f1ff; }
.ftki-finding [data-ftki-finding-feedback] { font-size:13px; font-weight:600; }
.ftki-finding [data-ftki-finding-feedback][data-result=correct] { color:#17653a; }
.ftki-finding [data-ftki-finding-feedback][data-result=incorrect] { color:#a12626; }
.ftki-complete { margin-top:16px; padding:20px; border:1px solid #87abdb; border-radius:8px; color:#193f78; background:#e8f1ff; }
.ftki-complete strong { font-size:17px; }
.ftki-complete p { margin:6px 0 12px!important; font-size:13px; }
.ftki-complete a { display:inline-block; margin-right:12px; color:#246cb6; font-size:13px; font-weight:700; }
.ftki-footer { display:flex; align-items:center; gap:16px; padding:16px 0 4px; font-size:12px; color:var(--md-default-fg-color); }
.ftki-footer>div { display:flex; gap:8px; margin-left:auto; flex-shrink:0; }
.ftki-footer [data-ftki-download]:not(:disabled) { color:#fff; background:#246cb6; border-color:#246cb6; }
@media(max-width:850px) { .ftki-brief { display:block; } .ftki-badge { display:inline-block; margin-top:10px; } .ftki-plan dl { grid-template-columns:1fr; gap:8px; } .ftki-milestones span { font-size:11px; } .ftki-footer { flex-wrap:wrap; } .ftki-footer>div { margin-left:0; } }
@media(max-width:520px) {
  .ftki { padding:14px; } .ftki-brief, .ftki-finding, .ftki-complete { padding:16px; } .ftki-plan summary { padding:10px 16px; } .ftki-plan>div { padding:0 16px 14px; }
  .md-typeset .ftki-milestones { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body .md-typeset .ftki .ftki-milestones { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .ftki-window-glyphs { display:none; } .ftki-title { font-size:12px; }
  .ftki-workspace { grid-template-columns:1fr; grid-template-rows:auto 145px auto 180px; }
  .ftki-tree { min-height:110px; } .ftki-properties { min-height:140px; } .ftki-tree>div { height:auto; }
  .ftki-filelist { grid-row:2; } .ftki-properties { grid-row:3; }
  .ftki-canvas:has(.ftki-dialog-layer:not([hidden])) .ftki-workspace { display:none; }
  .ftki-dialog-layer { position:relative; padding:10px 6px; background:#dedede; }
  .ftki-canvas:has(.ftki-dialog-layer:not([hidden])) { min-height:0; }
  .ftki-dialog { max-height:none; width:100%; } .ftki-dialog-body { padding:16px 12px 8px; }
  .ftki-dialog>footer { gap:5px; flex-wrap:wrap; } .ftki-dialog>footer button { flex:1; padding:5px 6px; }
  .ftki-dialog [data-ftki-panel=metadata] .ftki-field { display:block; }
  .ftki-dialog [data-ftki-panel=metadata] input { margin-top:4px; }
  .ftki-dialog .ftki-number { display:block; } .ftki-dialog .ftki-number input { width:100%; }
  .ftki-coach { grid-template-columns:1fr; padding:16px; } .ftki-coach>[data-ftki-hint] { justify-self:start; }
  .ftki-footer>div { flex-wrap:wrap; } .ftki-dialog fieldset { padding:10px; }
  .ftki-dialog [data-ftki-panel=source] label { align-items:flex-start; } .ftki-dialog [data-ftki-panel=source] input { margin-top:2px; }
}
