.narrative-planning { min-height: 100%; color: var(--shell-text); }
.narrative-planning__context { display: grid; gap: 16px; }
.narrative-planning__context-tabs { display: flex; gap: 4px; padding-bottom: 10px; border-bottom: 1px solid var(--shell-line); }
.narrative-planning__context-tabs button { border: 0; background: transparent; color: var(--shell-text-soft); padding: 7px 8px; font: inherit; font-size: .8rem; cursor: pointer; }
.narrative-planning__context-tabs button.is-active { color: var(--shell-text); border-bottom: 1px solid var(--accent); }
.narrative-planning__context-tabs button:disabled { opacity: .45; cursor: not-allowed; }
.narrative-planning__tree { min-width: 0; }
.narrative-planning__threads { display: grid; gap: 2px; }
.narrative-planning__thread { display: flex; min-width: 0; align-items: center; gap: 9px; padding: 8px; border: 0; border-radius: 4px; background: transparent; color: var(--shell-text); font: inherit; font-size: .82rem; font-weight: 400; line-height: 1.38; text-align: left; cursor: pointer; }
.narrative-planning__thread:hover, .narrative-planning__thread.is-selected { background: var(--surface_hover); }
.narrative-planning__thread.is-selected { outline: 1px solid color-mix(in srgb, var(--accent) 45%, transparent); }
.narrative-planning__thread-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: var(--thread-color); }
.narrative-planning__scope { padding: 24px 28px 20px; border-bottom: 1px solid var(--shell-line); }
.narrative-planning__scope small, .narrative-planning__inspector .shell-kicker { color: var(--shell-text-soft); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.narrative-planning__scope h2 { margin: 5px 0 0; font-size: 1.2rem; font-weight: 600; }
.narrative-planning__scope p { margin: 5px 0 0; color: var(--shell-text-soft); font-size: .82rem; }
.narrative-planning__table { padding: 0 28px 36px; }
.narrative-planning__head, .narrative-planning__row, .narrative-planning__new-need { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.narrative-planning__head { padding: 16px 0 9px; color: var(--shell-text-soft); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.narrative-planning__head > *, .narrative-planning__cell, .narrative-planning__new-need > * { padding: 0 18px; }
.narrative-planning__head > * + *, .narrative-planning__cell + .narrative-planning__cell, .narrative-planning__new-need > * + * { border-left: 1px solid var(--shell-line); }
.narrative-planning__row { min-height: 44px; border-top: 1px solid var(--shell-line); }
.narrative-planning__cell { display: grid; align-content: start; gap: 2px; padding-top: 5px; padding-bottom: 5px; }
.narrative-planning__item, .narrative-planning__need-editor { display: flex; min-width: 0; align-items: baseline; gap: 8px; padding: 4px 7px; border: 0; border-radius: 4px; background: transparent; color: var(--shell-text-soft); font: inherit; font-size: .82rem; font-weight: 400; line-height: 1.38; text-align: left; cursor: pointer; }
.narrative-planning__item:hover, .narrative-planning__item.is-selected { background: var(--surface_hover); }
.narrative-planning__item.is-selected { outline: 1px solid color-mix(in srgb, var(--accent) 45%, transparent); }
.narrative-planning__indicator { color: var(--shell-text-soft); font-size: .72rem; }
.narrative-planning__indicator.is-covered { color: var(--accent); }
.narrative-planning__need-editor input, .narrative-planning__new-need input { width: 100%; padding: 2px 0; border: 0; outline: 0; background: transparent; color: var(--shell-text); font: inherit; font-size: .82rem; font-weight: 400; line-height: 1.38; }
.narrative-planning__new-need { min-height: 40px; border-top: 1px solid var(--shell-line); color: var(--shell-text-soft); }
.narrative-planning__new-need label { display: flex; gap: 8px; align-items: center; padding-top: 9px; }
.narrative-planning__new-need input::placeholder { color: var(--shell-text-soft); }
.narrative-planning__empty { padding: 52px 28px; color: var(--shell-text-soft); }
.narrative-planning__empty h2 { color: var(--shell-text); }
.narrative-planning__inspector, .narrative-planning__inspector-empty { padding: 18px; }
.narrative-planning__inspector h2 { margin: 5px 0 12px; font-size: .96rem; font-weight: 500; line-height: 1.38; }
.narrative-planning__inspector-empty h2 { margin: 5px 0 12px; font-size: 1.1rem; }
.narrative-planning__inspector > p { color: var(--shell-text-soft); font-size: .86rem; font-weight: 400; line-height: 1.38; }
.narrative-planning__inspector section { margin-top: 22px; padding-top: 15px; border-top: 1px solid var(--shell-line); }
.narrative-planning__inspector h3 { margin: 0 0 9px; font-size: .78rem; }
.narrative-planning__inspector section p { margin: 5px 0; color: var(--shell-text-soft); font-size: .82rem; font-weight: 400; line-height: 1.38; }
.narrative-planning__link { display: flex; align-items: center; gap: 6px; margin: 3px 0; }
.narrative-planning__link button:first-child { min-width: 0; flex: 1; overflow: hidden; padding: 5px 0; border: 0; background: transparent; color: var(--shell-text); font: inherit; font-size: .82rem; font-weight: 400; line-height: 1.38; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.narrative-planning__link button:last-child { border: 0; background: transparent; color: var(--shell-text-soft); cursor: pointer; }
.narrative-planning__link-action { margin-top: 8px; padding: 0; border: 0; background: transparent; color: var(--accent); font: inherit; font-size: .85rem; cursor: pointer; }
.narrative-planning__muted { color: var(--shell-text-soft); }
.narrative-planning__error { margin: 12px 18px; color: var(--danger, #d97777); }
.narrative-planning__modal-backdrop { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(0, 0, 0, .52); }
.narrative-planning__modal { width: min(560px, 100%); max-height: min(680px, calc(100vh - 48px)); display: grid; grid-template-rows: auto auto minmax(0, 1fr); overflow: hidden; border: 1px solid var(--shell-line-strong); border-radius: var(--shell-radius); background: var(--shell-panel); box-shadow: 0 24px 68px rgba(0, 0, 0, .42); }
.narrative-planning__modal header, .narrative-planning__modal footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-bottom: 1px solid var(--shell-line); }
.narrative-planning__modal header h2 { margin: 0; font-size: 1rem; }
.narrative-planning__modal header button, .narrative-planning__modal footer button { border: 0; background: transparent; color: var(--shell-text); font: inherit; cursor: pointer; }
.narrative-planning__modal > input { margin: 12px 16px; padding: 9px 10px; border: 1px solid var(--shell-line); border-radius: 4px; background: var(--shell-control); color: var(--shell-text); }
.narrative-planning__modal form { min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; }
.narrative-planning__candidate-list { min-height: 0; overflow: auto; padding: 0 16px 12px; }
.narrative-planning__candidate-list label { display: flex; gap: 10px; padding: 10px 2px; border-bottom: 1px solid var(--shell-line); cursor: pointer; }
.narrative-planning__candidate-list span { display: grid; gap: 3px; min-width: 0; }
.narrative-planning__candidate-list strong { font-size: .9rem; font-weight: 500; }
.narrative-planning__candidate-list small { color: var(--shell-text-soft); font-size: .76rem; }
.narrative-planning__modal footer { border-top: 1px solid var(--shell-line); border-bottom: 0; }
@media (max-width: 720px) { .narrative-planning__table { padding: 0 12px 24px; } .narrative-planning__scope { padding: 18px 12px; } .narrative-planning__head > *, .narrative-planning__cell, .narrative-planning__new-need > * { padding-left: 8px; padding-right: 8px; } }
