:root{--bg:#f3efe6;--bg-2:#ebe4d6;--ink:#1a1a17;--muted:#6a6558;--line:#d4ccb8;--card:#fffdf8;--accent:#1f5c45;--accent-2:#c45c26;--danger:#9b2c2c;--ok:#1f5c45;--shadow:0 12px 40px rgba(40,32,16,0.08);--font-sans:"IBM Plex Sans","Segoe UI",sans-serif;--font-display:"Syne","IBM Plex Sans",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#dfd3b8 0,transparent 55%),radial-gradient(900px 500px at 100% 0,#d7e3db 0,transparent 50%),var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{justify-content:space-between;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line);background:rgba(255,253,248,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px}.brand-mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#2f8f67 55%,var(--accent-2));box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}.brand-name{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;font-size:1.15rem}.brand-sub{font-size:.75rem;color:var(--muted)}.container{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:28px 0 64px}.page-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 6px;letter-spacing:-.03em}.page-sub{color:var(--muted);margin:0 0 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px}.grid{display:grid;grid-gap:14px;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:860px){.grid-2,.grid-3{grid-template-columns:1fr}}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:10px 14px;cursor:pointer;font-weight:600;transition:transform .12s ease,background .12s ease,border-color .12s ease}.btn:hover{transform:translateY(-1px);border-color:#b9ae95}.btn-primary{background:var(--accent);color:#f7fff9;border-color:transparent}.btn-primary:hover{background:#184a37}.btn-ghost{background:transparent}.btn-danger{color:var(--danger);border-color:#e3b6b6;background:#fff5f5}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:.82rem;color:var(--muted);font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(31,92,69,.25);border-color:var(--accent)}.inn-lookup-row{display:flex;gap:8px;align-items:stretch}.inn-lookup-row input{flex:1 1;min-width:0}.inn-lookup-row .btn{flex-shrink:0;white-space:nowrap;padding:10px 14px}.inn-lookup-msg{font-size:.78rem;font-weight:600;line-height:1.3}.inn-lookup-msg.ok{color:var(--ok)}.inn-lookup-msg.err{color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700;background:var(--bg-2);color:var(--muted)}.pill-ok{background:#e4f3eb;color:var(--ok)}.pill-wait{background:#fff1e4;color:var(--accent-2)}.pill-open{background:#ece8dc;color:#4d493c}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px}.choice{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;cursor:pointer;text-align:left;font-weight:600}.choice.active,.choice:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#f2faf6}.doc-list{display:flex;flex-direction:column;gap:8px}.doc-item{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.doc-item h3{margin:0 0 4px;font-size:.98rem}.doc-item p{margin:0;color:var(--muted);font-size:.82rem}.doc-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.stage-head{font-family:var(--font-display);font-weight:700;margin:22px 0 10px;letter-spacing:-.02em;font-size:1.05rem}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%)}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:.85rem}.error{color:var(--danger);font-size:.9rem;margin:8px 0 0}.progress-bar{height:10px;border-radius:999px;background:var(--bg-2);overflow:hidden;margin:8px 0 0}.progress-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#3aa078)}.modal-backdrop{position:fixed;inset:0;background:rgba(26,26,23,.45);display:grid;place-items:center;padding:16px;z-index:50}.modal{width:min(920px,100%);max-height:min(90vh,900px);overflow:auto;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow)}.modal,.modal-bar{background:var(--card)}.modal-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0}.modal iframe{width:100%;height:70vh;border:0;background:#fff}.kd-app{height:100vh;overflow:hidden}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-select{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff;min-width:160px}.kd-layout{flex:1 1;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(320px,1fr);min-height:0;border-top:1px solid var(--line)}@media (max-width:900px){.kd-layout{grid-template-columns:1fr;grid-template-rows:50vh 1fr}}.chat-panel{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(255,253,248,.9),rgba(243,239,230,.55))}.chat-scroll{flex:1 1;overflow:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:12px}.msg{max-width:92%}.msg.user{align-self:flex-end}.msg .bubble{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px 12px;box-shadow:var(--shadow);line-height:1.45}.msg .bubble p{margin:0 0 .55em}.msg .bubble p:last-child{margin-bottom:0}.msg .bubble ol,.msg .bubble ul{margin:.35em 0 .65em;padding-left:1.25em}.msg .bubble li{margin:.2em 0}.msg .bubble li+li{margin-top:.35em}.msg .bubble strong{font-weight:700}.msg .bubble h3,.msg .bubble h4{margin:.55em 0 .35em;font-size:.98em;font-weight:700;line-height:1.3}.msg .bubble h3:first-child,.msg .bubble h4:first-child{margin-top:0}.msg .bubble code{font-size:.9em;padding:.05em .3em;border-radius:4px;background:rgba(0,0,0,.06)}.msg.user .bubble{background:#1f5c45;color:#f4fff8;border-color:transparent}.msg.user .bubble code{background:rgba(255,255,255,.15)}.msg.ai .bubble{border-color:#c45c26;background:#fff8f2}.msg .meta{font-size:.72rem;color:var(--muted);margin-top:4px;padding-left:4px}.choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.choice-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer;font-weight:600;font-size:.9rem}.choice-btn:hover{border-color:var(--accent);background:#f2faf6}.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:rgba(255,253,248,.95)}.chat-input input{flex:1 1;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.side-panel{overflow:auto;padding:16px;background:rgba(255,253,248,.72);min-height:0}.side-empty{padding:24px 8px}.side-empty h2{font-family:var(--font-display);margin:6px 0 8px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--muted);font-weight:700}.journey-hero{margin-bottom:4px}.journey-title{font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.03em;margin:4px 0 8px;line-height:1.25}.journey-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin:12px 0}.journey-cols p{margin:4px 0 0;font-size:.9rem;line-height:1.4}@media (max-width:640px){.journey-cols{grid-template-columns:1fr}}.journey-howto{margin:8px 0 0;padding-left:1.2em;color:var(--muted);font-size:.88rem;line-height:1.45}.journey-howto li{margin:.35em 0}.step-card{margin-bottom:4px}.step-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.step-counter{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);font-weight:700}.step-label{margin:10px 0 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700}.step-required{font-family:var(--font-display);font-size:1.35rem;letter-spacing:-.03em;margin:4px 0 8px;line-height:1.25}.step-where{margin:0;color:var(--muted);font-size:.92rem;line-height:1.4}.step-now{margin:8px 0 0;font-size:.9rem;font-weight:700;color:var(--accent);line-height:1.35}.stage-rail{display:flex;flex-direction:column;gap:4px;margin:12px 0 4px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.45);max-height:220px;overflow:auto}.stage-rail-item{display:grid;grid-template-columns:10px 1fr auto;grid-gap:8px;gap:8px;align-items:center;font-size:.78rem;color:var(--muted);padding:3px 0}.stage-rail-item.is-current{color:var(--ink);font-weight:700}.stage-rail-item.is-done .stage-rail-dot{background:var(--ok)}.stage-rail-item.is-current .stage-rail-dot{background:var(--accent-2);box-shadow:0 0 0 3px rgba(196,92,38,.2)}.stage-rail-dot{width:8px;height:8px;border-radius:50%;background:#cfc6b4}.stage-rail-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-rail-count{font-family:var(--font-mono);font-size:.72rem}.step-gap{margin:0 0 6px;color:var(--danger);font-size:.88rem;font-weight:700}.step-stats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.step-howto{margin:8px 0 0;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;background:rgba(255,255,255,.55)}.step-howto ol{margin:6px 0 0;padding-left:1.15em;color:var(--ink);font-size:.88rem;line-height:1.45}.step-howto li{margin:.3em 0}.step-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.step-actions-main,.step-actions-more{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.step-actions-main .btn-primary{min-width:160px}.step-actions-more .btn{background:transparent;border-color:var(--line);color:var(--muted);font-weight:600}.step-actions-more .btn:hover:not(:disabled){color:var(--ink);border-color:var(--ink)}.step-actions .btn:disabled{opacity:.55;cursor:not-allowed}.step-skipped{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.step-skipped-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.step-skipped-btn{text-align:left;font-size:.88rem;justify-content:flex-start}.step-tools{margin-top:12px}.btn-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font-weight:700;font-size:.82rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}.btn-link:hover{color:var(--ink)}.step-tools-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.step-scan{margin:8px 0 0;font-size:.85rem}.doc-current{border-color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)}.doc-where{margin:0;color:var(--muted);font-size:.82rem;line-height:1.35}.doc-gap{margin:6px 0 0;color:var(--danger);font-size:.82rem;font-weight:600}.doc-guide{border-style:dashed!important}.stage-gate{margin-bottom:12px;border-color:#c4b896}.stage-gate-q{padding:12px 0;border-bottom:1px solid var(--line)}.stage-gate-q:last-of-type{border-bottom:none}.stage-gate-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.answers-panel{margin-bottom:12px}.answers-panel summary{cursor:pointer;font-weight:700}.answer-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.answer-row:last-child{border-bottom:none}.answer-q{flex:1 1 200px;font-size:.9rem}.pd-form{max-width:920px}.pd-file-list{margin:8px 0 0;padding-left:20px;font-family:var(--font-mono);font-size:.85rem}.lifecycle-route{display:flex;flex-direction:column;gap:0;margin:0 0 20px}.lifecycle-step{display:grid;grid-template-columns:36px 1fr auto;grid-gap:12px 14px;gap:12px 14px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line)}.lifecycle-step:last-child{border-bottom:none}.lifecycle-num{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);font-family:var(--font-display);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center}.lifecycle-step.is-ready .lifecycle-num{background:var(--ok-soft);color:var(--ok)}.lifecycle-step.is-partial .lifecycle-num{background:var(--warn-soft);color:var(--warn)}.lifecycle-step.is-guide .lifecycle-num{background:#eef2ff;color:var(--steel)}.lifecycle-title{font-family:var(--font-display);font-weight:700;margin:0 0 4px;font-size:1rem}.lifecycle-desc{margin:0;font-size:.9rem;color:var(--muted);line-height:1.45}.lifecycle-badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:6px;white-space:nowrap}.lifecycle-badge.ready{background:var(--ok-soft);color:var(--ok)}.lifecycle-badge.partial{background:var(--warn-soft);color:var(--warn)}.lifecycle-badge.guide{background:rgba(61,107,140,.12);color:var(--steel)}.lifecycle-badge.manual{background:#f3f4f6;color:var(--muted)}.lifecycle-actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.lifecycle-hint{font-size:.88rem;color:var(--muted);margin:0;flex:1 1 220px}.phase-rail-track{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.phase-rail-step{flex:1 1 120px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,background .15s}.phase-rail-step:hover:not(:disabled){border-color:var(--accent)}.phase-rail-step:disabled{opacity:.45;cursor:not-allowed}.phase-rail-step.active{border-color:var(--accent-deep);background:var(--accent-soft)}.phase-rail-step.done{border-color:var(--ok)}.phase-rail-num{width:28px;height:28px;border-radius:50%;background:var(--line);font-family:var(--font-display);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}.phase-rail-step.active .phase-rail-num{background:var(--accent-deep);color:#fff}.phase-rail-step.done .phase-rail-num{background:var(--ok-soft);color:var(--ok)}.phase-rail-label{font-size:.82rem;font-weight:600;text-align:center;line-height:1.2}