.kf-input{--kf-bg: hsl(220, 16%, 10%);--kf-bg-2: hsl(220, 16%, 15%);--kf-glass: hsla(220, 16%, 12%, .85);--kf-border: hsla(220, 20%, 100%, .08);--kf-accent: hsl(150, 80%, 46%);--kf-accent-glow: hsla(150, 80%, 46%, .22);--kf-gold: hsl(45, 85%, 56%);--kf-text: hsl(220, 20%, 96%);--kf-text-2: hsl(220, 12%, 72%);--kf-text-3: hsl(220, 10%, 50%);--kf-r-lg: 16px;--kf-r-md: 10px;--kf-r-sm: 6px;--kf-t: all .25s cubic-bezier(.4, 0, .2, 1);flex:1;min-height:0;display:flex;flex-direction:column;color:var(--kf-text);font-family:Inter,system-ui,sans-serif}.kf-input *{box-sizing:border-box}.kf-chooser{flex:1;min-height:0;display:flex;flex-direction:column}.kf-chooser-head h3{font-family:Outfit,sans-serif;font-size:1.6rem;margin:0 0 4px}.kf-chooser-head p{color:var(--kf-text-2);margin:0 0 18px;font-size:1.05rem}.kf-chooser-cards{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.kf-chooser-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;cursor:pointer;padding:28px;border-radius:var(--kf-r-lg);border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text);transition:var(--kf-t)}.kf-chooser-card:hover{border-color:var(--kf-accent);box-shadow:0 0 0 1px var(--kf-accent-glow);transform:translateY(-2px)}.kf-chooser-icon{font-size:3rem}.kf-chooser-title{font-family:Outfit,sans-serif;font-weight:600;font-size:1.5rem}.kf-chooser-blurb{color:var(--kf-text-2);font-size:1.05rem;max-width:34ch}.kf-route{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.kf-step-body,.kf-sketch-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.kf-step-footer{flex:0 0 auto;border-top:1px solid var(--kf-border);padding-top:12px}.kf-step-footer:empty{display:none}.kf-step-footer .kf-fronts-controls{margin-top:0}.kf-route-head{display:flex;align-items:center;gap:14px}.kf-route-tag{color:var(--kf-gold);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.kf-back{background:none;border:none;color:var(--kf-text-3);cursor:pointer;font-size:.9rem;padding:0}.kf-back:hover{color:var(--kf-text)}.kf-back-step{background:none;border:1px solid var(--kf-border);color:var(--kf-text-2);cursor:pointer;font-size:.85rem;padding:5px 12px;border-radius:999px;transition:var(--kf-t)}.kf-back-step:hover{border-color:var(--kf-accent);color:var(--kf-text)}.kf-progress{display:flex;gap:6px;margin-bottom:4px}.kf-dot{width:26px;height:4px;border-radius:2px;background:var(--kf-bg-2)}.kf-dot.on{background:var(--kf-accent)}.kf-q{font-family:Outfit,sans-serif;font-size:1.25rem;margin:0}.kf-q-he{color:var(--kf-text-2);margin:2px 0 8px}.kf-controls{display:flex;flex-direction:column;gap:14px}.kf-shape-groups{display:flex;flex-direction:column;gap:8px}.kf-shape-group-label{font-weight:600;color:var(--kf-text-2);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;margin-top:8px}.kf-shape-group-label:first-child{margin-top:0}.kf-shape-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.kf-shape{display:flex;flex-direction:column;gap:6px;cursor:pointer;padding:12px;border-radius:var(--kf-r-md);border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text);transition:var(--kf-t);text-align:center}.kf-shape:hover,.kf-shape.selected{border-color:var(--kf-accent);box-shadow:0 0 0 1px var(--kf-accent-glow)}.kf-shape-thumb{background:#f8f6f2;border-radius:var(--kf-r-sm);padding:6px;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;overflow:hidden}.kf-shape-thumb svg{width:100%;height:100%;object-fit:contain;display:block}.kf-thumb-svg{width:100%;height:100%}.kf-thumb-wall{stroke:#404859;stroke-width:3;stroke-linecap:round}.kf-thumb-front{fill:#17d37529;stroke:#36a16b;stroke-width:1}.kf-thumb-island{fill:#dc843833;stroke:#bc712f;stroke-width:1.4;stroke-dasharray:4 3}.kf-thumb-label{fill:#3c4453;font:600 9px Inter,system-ui,sans-serif;text-anchor:middle;dominant-baseline:middle}.kf-shape-name{font-weight:600}.kf-shape-line{color:var(--kf-text-3);font-size:.82rem}.kf-lengths{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kf-field{display:flex;flex-direction:column;gap:5px;color:var(--kf-text-2);font-size:.85rem}.kf-num{padding:10px 12px;border-radius:var(--kf-r-sm);border:1px solid var(--kf-border);background:var(--kf-bg-2);color:var(--kf-text);font-size:1rem}.kf-room-layout{display:flex;gap:22px;align-items:stretch;flex-wrap:wrap}.kf-room-fields{display:flex;flex-direction:column;gap:10px;min-width:200px;flex:0 0 auto}.kf-room-field{display:flex;flex-direction:column;gap:4px;color:var(--kf-text-2);font-size:.85rem}.kf-room-field .kf-num{width:160px}.kf-num:focus,.kf-turn:focus,.kf-turn-angle:focus{outline:none;border-color:var(--kf-accent);box-shadow:0 0 0 3px var(--kf-accent-glow)}.kf-room-add{align-self:flex-start;cursor:pointer;margin-top:2px;padding:8px 14px;border-radius:999px;border:1px dashed var(--kf-border);background:none;color:var(--kf-accent);transition:var(--kf-t)}.kf-room-add:hover{border-color:var(--kf-accent);background:var(--kf-accent-glow)}.kf-room-preview{flex:1 1 240px;min-width:220px;min-height:170px;display:flex;align-items:center;justify-content:center;padding:10px;background:#f8f6f2;border-radius:var(--kf-r-md)}.kf-room-empty{color:var(--kf-text-3);font-size:.85rem;text-align:center;max-width:180px}.kf-room-toggle{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kf-room-toggle-label{color:var(--kf-text-2);font-size:.85rem}.kf-wall-svg{width:100%;height:auto;max-height:200px;display:block}.kf-wall-svg,.kf-thumb-svg{-webkit-user-select:none;user-select:none}.kf-wall-line{stroke:#383f4d;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.kf-wall-dot{fill:var(--kf-accent)}.kf-wall-label{fill:#454d5f;font:600 10px Inter,system-ui,sans-serif;text-anchor:middle}@media (max-width: 720px){.kf-room-layout{flex-direction:column}}.kf-scratch-walls{font-size:17px}.kf-scratch-walls .kf-q{font-size:1.7rem;margin-bottom:14px}.kf-scratch-walls{flex:1;min-height:0;display:flex;flex-direction:column}.kf-scratch-walls .kf-room-fields{display:flex;flex-direction:column;gap:12px;min-width:0;flex:0 0 auto}.kf-fronts-controls.kf-walls-controls{margin-top:4px;justify-content:flex-end}.kf-scratch-walls.kf-survey .kf-q{font-size:1.4rem;margin-bottom:6px}.kf-survey-tabs{display:flex;gap:8px;margin-bottom:8px;flex:0 0 auto}.kf-turn-chip.kf-survey-tab{font-size:1em;padding:7px 18px}.kf-survey-layout{flex:1;min-height:0;display:grid;grid-template-columns:700px minmax(0,1fr);gap:24px;align-items:stretch}.kf-survey-list{min-height:0;min-width:0;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-inline-end:4px}.kf-survey-list>.kf-room-add{align-self:flex-start}.kf-survey-list>[hidden]{display:none}.kf-survey-wsel{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kf-survey-wsel .kf-turn-chip{padding:5px 12px}.kf-survey-frame{min-height:0;min-width:0;display:flex;flex-direction:column;background:#f8f6f2;border-radius:var(--kf-r-lg);padding:10px}.kf-survey-drawing{flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center}.kf-survey-drawing svg{width:100%;height:100%;max-width:none;max-height:none;display:block;-webkit-user-select:none;user-select:none}.kf-survey-legend{flex:0 0 auto;display:flex;gap:16px;justify-content:center;padding-top:4px;font-size:12px;color:#444441}.kf-survey-legend[hidden]{display:none}@media (max-width: 900px){.kf-survey-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,45%) minmax(0,1fr)}}.kf-survey-legend span{display:inline-flex;align-items:center;gap:6px}.kf-survey-legend i{display:inline-block;width:16px;height:10px;border:1px solid #3b4150}.kf-lg-column{background:#cfccc4}.kf-lg-branch{border-color:#534ab7!important;background:repeating-linear-gradient(45deg,#534ab7 0,#534ab7 1px,#cecbf6 1px,#cecbf6 4px)}.kf-branch-bg{fill:#cecbf6}.kf-branch-ink,.kf-branch-edge{stroke:#534ab7;stroke-width:1}.kf-branch-label{fill:#3c3489;font:600 11px Arial,sans-serif}.kf-survey .kf-wall-turn{flex-wrap:nowrap}.kf-sel{width:auto;padding:7px 10px;border-radius:var(--kf-r-sm);border:1px solid var(--kf-border);background:var(--kf-bg-2);color:var(--kf-text);font:inherit;font-size:.9em;min-width:76px}.kf-sel option{background:var(--kf-bg-2);color:var(--kf-text)}.kf-sel:focus,.kf-point-q:focus{outline:none;border-color:var(--kf-accent);box-shadow:0 0 0 3px var(--kf-accent-glow)}.kf-span3{display:inline-flex;align-items:center;gap:5px}.kf-start-row{padding-inline-start:30px}.kf-branch-row .kf-open-kind{color:#afa9ec}.kf-point-name{max-width:170px;overflow:hidden;text-overflow:ellipsis}.kf-open-picker{flex-wrap:wrap;align-items:flex-start;position:relative}.kf-point-dd{position:relative;display:flex;flex-direction:column;gap:4px;flex-basis:100%}.kf-point-dd[hidden]{display:none}.kf-point-q{width:220px;padding:6px 10px;border-radius:var(--kf-r-sm);border:1px solid var(--kf-border);background:var(--kf-bg-2);color:var(--kf-text);font:inherit;font-size:.85em}.kf-point-q::placeholder{color:var(--kf-text-3)}.kf-point-menu{width:260px;max-height:190px;overflow:auto;padding:4px;border-radius:8px;border:1px solid var(--kf-border);background:var(--kf-bg-2)}.kf-point-item{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:6px;cursor:pointer;color:var(--kf-text);font-size:.8em}.kf-point-item:hover,.kf-point-item:focus-visible{background:var(--kf-accent-glow)}.kf-point-h{color:var(--kf-text-3)}.kf-point-none{padding:5px 8px;color:var(--kf-text-3);font-size:.8em}.kf-scratch-wall{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--kf-border);color:var(--kf-text-2)}.kf-wall-tag{min-width:22px;text-align:center;color:var(--kf-text);font-weight:600;font-size:1.15em}.kf-scratch-wall .kf-wall-len{width:96px;padding:10px 12px;text-align:center;font-size:1.15em}.kf-wall-turn{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.kf-turn-chip{cursor:pointer;padding:7px 12px;border-radius:999px;font-size:.95em;white-space:nowrap;border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text-2);transition:var(--kf-t)}.kf-turn-chip:hover{border-color:var(--kf-accent)}.kf-turn-chip.on{border-color:var(--kf-accent);color:var(--kf-text);background:var(--kf-accent-glow)}.kf-turn-label{color:var(--kf-text-3);font-size:.9em}.kf-turn-angle{width:72px;padding:8px 10px;text-align:center;font-size:1.05em}.kf-wall-del{align-self:center;margin-inline-start:auto;cursor:pointer;border:none;background:none;color:var(--kf-text-3);font-size:1.2rem;padding:4px 8px;border-radius:var(--kf-r-sm);transition:var(--kf-t)}.kf-wall-del:hover{color:#e05252;background:var(--kf-accent-glow)}.kf-scratch-wall-block{display:flex;flex-direction:column;border-bottom:1px solid var(--kf-border)}.kf-scratch-wall-block .kf-scratch-wall{border-bottom:none}.kf-wall-openings{display:flex;flex-direction:column;gap:6px;padding:0 30px 10px 0}.kf-open-row{display:flex;align-items:center;gap:8px;white-space:nowrap;color:var(--kf-text-2);font-size:.92em;width:100%}.kf-open-kind{min-width:64px;color:var(--kf-text)}.kf-open-field{display:inline-flex;align-items:center;gap:4px}.kf-open-num{width:62px;padding:5px 6px;text-align:center;font-size:.95em;-moz-appearance:textfield}.kf-open-num::-webkit-outer-spin-button,.kf-open-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.kf-open-del{margin-inline-start:auto;flex:0 0 auto;cursor:pointer;border:none;background:none;color:var(--kf-text-3);font-size:1em;padding:2px 6px;border-radius:var(--kf-r-sm)}.kf-open-del:hover{color:#e05252;background:var(--kf-accent-glow)}.kf-open-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kf-open-add-btn{cursor:pointer;padding:4px 10px;border-radius:999px;border:1px dashed var(--kf-border);background:none;color:var(--kf-accent);font-size:.9em}.kf-open-add-btn:hover{border-color:var(--kf-accent);background:var(--kf-accent-glow)}.kf-open-picker{display:inline-flex;gap:6px}.kf-open-picker[hidden]{display:none}.kf-scratch-status{margin:12px 0}.kf-open-lbl{color:var(--kf-text-3);font-size:.85em}.kf-open-num{width:64px;padding:5px 6px;text-align:center;font-size:.85rem}.kf-wall-line-front{stroke:var(--kf-accent);stroke-width:4.5}.kf-open-window{stroke:#44a1e4;stroke-width:4;stroke-linecap:butt}.kf-open-door{stroke:#ea8c2e;stroke-width:4;stroke-linecap:butt}.kf-open-passage{stroke:#ea8c2e;stroke-width:4;stroke-linecap:butt;stroke-dasharray:6 4}.kf-open-tick{stroke:var(--kf-text-3);stroke-width:1.5}.kf-open-column{fill:#656e818c;stroke:#535c6e;stroke-width:1}.kf-wall-hit{stroke:transparent;stroke-width:16;cursor:pointer}.kf-scratch-fronts{flex:1;min-height:0;display:flex;flex-direction:column;font-size:17px}.kf-scratch-fronts .kf-q{font-size:1.7rem;margin-bottom:12px}.kf-fronts-layout{flex:1;min-height:0;display:grid;grid-template-columns:520px minmax(0,1fr);gap:24px;align-items:stretch}.kf-fronts-side{display:flex;flex-direction:column;gap:16px;min-height:0;overflow:auto}.kf-fronts-stage{min-height:0;height:100%;width:100%;justify-self:stretch;padding:16px}.kf-fronts-stage svg{width:100%;height:100%;max-height:none;display:block}.kf-fronts-hint{margin:0;color:var(--kf-text-2);font-size:.95em}.kf-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#14181f8c;padding:20px}.kf-input .kf-modal{max-width:420px;padding:22px;border-radius:var(--kf-r-md);border:1px solid var(--kf-border);background:var(--kf-bg-2);box-shadow:0 18px 50px #0a0c0f59}.kf-modal-title{font-family:Outfit,sans-serif;font-size:1.1rem;margin:0 0 8px}.kf-modal-body{color:var(--kf-text-2);font-size:.9rem;margin:0 0 18px}.kf-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.kf-modal-actions .kf-next{align-self:auto}.kf-fronts-suggestions{margin-top:0}.kf-fronts-sugg-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.kf-shuffle{cursor:pointer;padding:6px 12px;border-radius:999px;border:1px dashed var(--kf-border);background:none;color:var(--kf-accent);font-size:.82rem;transition:var(--kf-t)}.kf-shuffle:hover{border-color:var(--kf-accent);background:var(--kf-accent-glow)}.kf-sugg-grid{display:flex;gap:10px;flex-wrap:wrap}.kf-sugg{display:flex;flex-direction:column;gap:4px;cursor:pointer;padding:6px;border-radius:var(--kf-r-sm);border:1px solid var(--kf-border);background:var(--kf-glass);transition:var(--kf-t)}.kf-sugg:hover,.kf-sugg.on{border-color:var(--kf-accent);box-shadow:0 0 0 1px var(--kf-accent-glow)}.kf-sugg-thumb{width:140px;background:#f8f6f2;border-radius:var(--kf-r-sm);padding:4px}.kf-sugg-thumb svg{width:100%;height:auto;display:block}.kf-sugg-cap{font-size:.85rem;color:var(--kf-text-2);text-align:center}.kf-fronts-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.kf-scratch-results{font-size:17px}.kf-scratch-results .kf-q{font-size:1.7rem}.kf-results-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.kf-result-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--kf-r-md);border:1px solid var(--kf-border);background:var(--kf-glass)}.kf-result-thumb{padding:8px;border-radius:var(--kf-r-sm);background:#f8f6f2}.kf-result-thumb{aspect-ratio:16 / 10;display:flex}.kf-result-thumb svg{width:100%;height:100%;display:block}.kf-result-card{cursor:pointer}.kf-result-card.on{border-color:var(--kf-accent);box-shadow:0 0 0 1px var(--kf-accent-glow)}.kf-result-meta{display:flex;flex-direction:column;gap:3px}.kf-result-title{font-family:Outfit,sans-serif;font-weight:600}.kf-result-blurb{color:var(--kf-text-2);font-size:.85rem}.kf-result-flag{font-size:.8rem}.kf-flag-warning{color:var(--kf-gold)}.kf-flag-error{color:#e25a5a}.kf-orient{display:inline-flex;gap:4px}.kf-orient-btn{cursor:pointer;padding:6px 10px;border-radius:var(--kf-r-sm);font-size:.8rem;border:1px solid var(--kf-border);background:var(--kf-bg-2);color:var(--kf-text-2);transition:var(--kf-t)}.kf-orient-btn.on{border-color:var(--kf-accent);color:var(--kf-text);background:var(--kf-accent-glow)}.kf-toggles,.kf-presets{display:flex;flex-wrap:wrap;gap:10px}.kf-toggle,.kf-preset{cursor:pointer;padding:9px 16px;border-radius:999px;border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text-2);transition:var(--kf-t)}.kf-toggle.on,.kf-preset.selected{border-color:var(--kf-accent);color:var(--kf-text);background:var(--kf-accent-glow)}.kf-specs-label{font-weight:600;color:var(--kf-text);margin-top:4px;font-size:.95rem}.kf-specs-label:first-child{margin-top:0}.kf-scratch-cabinets{font-size:17px}.kf-scratch-cabinets .kf-q{font-size:1.7rem}.kf-scratch-cabinets .kf-toggles{flex-direction:column;align-items:stretch;gap:8px}.kf-unit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.kf-unit-row>.kf-toggle{min-width:260px;text-align:start}.kf-unit-row.off .kf-presets,.kf-unit-row.off .kf-unit-entry{opacity:.5}.kf-unit-entry{display:flex;align-items:center;gap:8px}.kf-unit-num{width:84px}.kf-unit-range{color:var(--kf-text-2);font-size:.9rem}@media (max-width: 720px){.kf-unit-row{align-items:flex-start;flex-direction:column;gap:8px}.kf-unit-row>.kf-toggle{min-width:0}}.kf-pref-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin:8px 0 6px}.kf-pref-row[hidden]{display:none}.kf-pref-text{display:flex;flex-direction:column;gap:2px}.kf-pref-label{color:var(--kf-text);font-weight:600}.kf-pref-sub{color:var(--kf-text-2);font-size:.9rem}.kf-check{margin-top:3px;accent-color:var(--kf-accent);width:16px;height:16px}.kf-preset-groups{display:flex;flex-direction:column;gap:14px}.kf-preset-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.kf-preset-label{min-width:160px;font-weight:600;color:var(--kf-text)}@media (max-width: 720px){.kf-preset-row{align-items:flex-start;flex-direction:column;gap:8px}}.kf-next,.kf-choose,.kf-chat-send{cursor:pointer;align-self:flex-start;padding:11px 22px;border:none;border-radius:var(--kf-r-md);background:var(--kf-accent);color:#0e1115;font-weight:600;transition:var(--kf-t)}.kf-next:hover,.kf-choose:hover,.kf-chat-send:hover{filter:brightness(1.1)}.kf-note{color:var(--kf-gold);font-size:.85rem;margin:0 0 8px}.kf-empty{padding:24px;border-radius:var(--kf-r-md);border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text-2);margin-bottom:14px}.kf-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.kf-option{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--kf-r-lg);border:1px solid var(--kf-border);background:var(--kf-glass)}.kf-option-preview{background:#f8f6f2;border-radius:var(--kf-r-sm);padding:8px;overflow:hidden}.kf-option-preview svg,.kf-committed svg{width:100%;height:auto;display:block}.kf-option-meta{display:flex;flex-direction:column;gap:3px}.kf-option-name{font-weight:600}.kf-option-blurb{color:var(--kf-text-2);font-size:.85rem}.kf-option-stat{color:var(--kf-accent);font-size:.8rem}.kf-choose{align-self:stretch;text-align:center}.kf-chat-log{display:flex;flex-direction:column;gap:10px;min-height:240px;max-height:420px;overflow-y:auto;padding:16px;border-radius:var(--kf-r-lg);border:1px solid var(--kf-border);background:var(--kf-bg)}.kf-bubble{max-width:80%;padding:10px 14px;border-radius:14px;font-size:.92rem;line-height:1.4}.kf-ai{align-self:flex-start;background:var(--kf-bg-2);color:var(--kf-text);border-bottom-left-radius:4px}.kf-user{align-self:flex-end;background:var(--kf-accent-glow);color:var(--kf-text);border-bottom-right-radius:4px}.kf-sys{align-self:center;background:none;color:var(--kf-gold);font-size:.82rem}.kf-committed{align-self:stretch;display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--kf-r-md);border:1px solid var(--kf-accent);background:var(--kf-glass)}.kf-chat-row{display:flex;gap:8px;align-items:center}.kf-chat-input{flex:1;padding:12px 14px;border-radius:var(--kf-r-md);border:1px solid var(--kf-border);background:var(--kf-bg-2);color:var(--kf-text);font-size:.95rem}.kf-chat-icon{width:42px;height:42px;border-radius:var(--kf-r-md);border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text-2);cursor:pointer;transition:var(--kf-t)}.kf-chat-icon:hover:not(:disabled){border-color:var(--kf-accent);color:var(--kf-text)}.kf-chat-icon:disabled{cursor:not-allowed;opacity:.55;color:var(--kf-text-3)}.kf-mic.listening{border-color:var(--kf-accent);color:var(--kf-text);background:var(--kf-accent-glow)}@keyframes kf-pulse{0%,to{opacity:1}50%{opacity:.45}}.kf-mic.listening{animation:kf-pulse 1.1s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.kf-mic.listening{animation:none}}.kf-sketch-thumb{display:block;margin-top:8px;max-width:100%;max-height:220px;border-radius:var(--kf-r-sm);border:1px solid var(--kf-border)}.kf-sketch-approve{align-self:flex-start;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kf-approve-btn{cursor:pointer;padding:8px 16px;border-radius:999px;border:1px solid var(--kf-accent);background:var(--kf-accent-glow);color:var(--kf-text);transition:var(--kf-t)}.kf-approve-btn:hover:not(:disabled){filter:brightness(1.15)}.kf-approve-btn:disabled{opacity:.5;cursor:default}.kf-approve-hint{color:var(--kf-text-3);font-size:.82rem}.kf-sketch-done{align-self:stretch;display:flex;justify-content:flex-start;padding-top:4px}.kf-thinking{animation:kf-pulse 1.1s ease-in-out infinite;letter-spacing:3px}@media (prefers-reduced-motion: reduce){.kf-thinking{animation:none}}.kf-sketch-body{display:flex;flex-direction:column;gap:16px}@media (max-width: 720px){.kf-chooser-cards{grid-template-columns:1fr}.kf-shape-list{grid-template-columns:1fr 1fr}}.kf-history{margin-inline-start:auto;display:inline-flex;gap:6px}.kf-history .btn:disabled{opacity:.4;cursor:default}.kf-survey-layout.kf-tom-layout{grid-template-columns:minmax(0,1fr)}.kf-survey-list[hidden],.kf-tom-hint[hidden]{display:none}.kf-survey-frame{position:relative}.kf-tom-hint{flex:0 0 auto;text-align:center;font-size:12px;color:#5f5e5a;padding-top:4px}.kf-tom-reset{margin-inline-start:auto;cursor:pointer;font-size:.9em;padding:6px 14px;border-radius:999px;border:1px solid var(--kf-border);background:var(--kf-glass);color:var(--kf-text-2)}.kf-tom-reset:hover{color:var(--kf-text)}.kf-tom-wall,.kf-tom-item{stroke:#2fb37a;stroke-opacity:0;fill:#2fb37a;fill-opacity:0;cursor:pointer;pointer-events:all}.kf-tom-wall:hover,.kf-tom-item:hover{stroke-opacity:.18;fill-opacity:.18}.kf-tom-plus{cursor:pointer}.kf-tom-plus-hit{fill:#000;opacity:0;pointer-events:all}.kf-tom-plus-vis{opacity:0;transition:opacity .12s;pointer-events:none}.kf-tom-plus:hover .kf-tom-plus-vis{opacity:1}.kf-tom-plus-vis circle{fill:#22303f;stroke-width:1.5}.kf-tom-mid .kf-tom-plus-vis circle{stroke:#4a6fa5}.kf-tom-end .kf-tom-plus-vis circle{stroke:#2fb37a}.kf-tom-plus-vis text{fill:#fff;font-size:15px;font-family:inherit}.kf-tom-menu{position:absolute;z-index:5;min-width:190px;max-width:min(560px,96%);padding:10px;border-radius:10px;background:#fff;color:#2c2c2a;border:1px solid #b4b2a9;box-shadow:0 6px 22px #00000040;font-size:14px;display:flex;flex-direction:column;gap:6px}.kf-tom-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.kf-tom-del{all:unset;cursor:pointer;color:#a32d2d;padding:0 4px}.kf-tom-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kf-tom-menu .kf-open-lbl{color:#5f5e5a}.kf-tom-menu .kf-num{color:#2c2c2a;background:#fff;border-color:#d3d1c7}.kf-tom-menu .kf-turn-chip{color:#2c2c2a;background:#fff;border-color:#b4b2a9}.kf-tom-menu .kf-turn-chip.on{background:#1f6b49;color:#fff;border-color:#1f6b49}.kf-tom-pick{all:unset;display:block;cursor:pointer;padding:5px 8px;border-radius:6px}.kf-tom-pick:hover{background:#f1efe8}.kf-tom-wallhere{font-weight:600}.kf-tom-sep{border-top:1px solid #e3e0d6}.kf-tom-add{cursor:pointer;padding:5px 14px;border-radius:8px;border:1px solid #1f6b49;background:#1f6b49;color:#fff}.kf-tom-err{color:#a32d2d;font-size:12px}.kf-tom-err:empty{display:none}.kf-tom-note{color:#888780;font-size:12px}.kf-tom-layout .kf-survey-drawing{min-height:320px}.kf-walls-heights{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kf-walls-heights[hidden]{display:none}.kf-walls-heights .kf-walls-height,.kf-wall-height-field .kf-wall-height{width:96px;padding:10px 12px;text-align:center;font-size:1.15em}.kf-wall-height-field{display:inline-flex;align-items:center;gap:6px}.kf-scratch-wall:has(.kf-wall-height-field){flex-wrap:wrap}
