/* Structure maps, relationships and later plot refinements. Order is significant; see index.html. */
/* v47g: 構造マップ */
.structure-map-box{max-width:min(1180px,96vw);width:min(1180px,96vw)}
.structure-map-modal-head{align-items:center;gap:12px}.structure-map-modal-head>div{display:grid;gap:2px;min-width:0}.structure-map-modal-head small{color:var(--sub);font-size:11px}
.structure-map-modal-actions{display:flex;gap:6px;flex-wrap:wrap}
.structure-map-modal-body{display:grid;gap:12px;max-height:min(84vh,980px)}
.structure-map-intro{display:grid;gap:5px;padding:12px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 6%,var(--panel))}.structure-map-intro b{font-size:13px}.structure-map-intro p{margin:0;color:var(--sub);font-size:11px;line-height:1.65}
.structure-map-list{display:grid;gap:12px;padding:12px}
.structure-map-empty-state{padding:18px;border:1px dashed var(--line);border-radius:14px;background:var(--panel2);line-height:1.7}
.structure-map-card{display:grid;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);box-shadow:0 10px 30px rgba(0,0,0,.05)}
.structure-map-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.structure-map-card-head>div:first-child{display:grid;gap:3px;min-width:0}.structure-map-card-head b{font-size:14px}.structure-map-card-head small{color:var(--sub);font-size:10px}
.structure-map-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.structure-map-editor{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:12px;align-items:start}
.structure-map-field{display:grid;gap:5px}.structure-map-field>span{font-size:11px;font-weight:800;color:var(--sub)}.structure-map-field-wide{grid-column:1/2}
.structure-map-body,.structure-map-note{width:100%;min-width:0}.structure-map-help{display:block;color:var(--sub);font-size:10px;line-height:1.55}.structure-map-help code{padding:1px 5px;border-radius:6px;background:var(--panel);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.structure-map-preview-panel{display:grid;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel2) 88%,#fff))}
.structure-map-note-preview{margin:0;padding:8px 10px;border-radius:10px;background:var(--soft);color:var(--sub);font-size:10px;line-height:1.6}
.structure-map-preview{min-height:180px;overflow:auto;padding:2px}
.structure-map-empty{display:grid;place-items:center;min-height:180px;padding:18px;border:1px dashed var(--line);border-radius:12px;background:var(--panel);color:var(--sub);font-size:11px;line-height:1.7;text-align:center}
.structure-map-canvas{padding:6px 4px}
.structure-map-root,.structure-map-children{list-style:none;margin:0;padding-left:0}.structure-map-root{display:grid;gap:8px}
.structure-map-children{margin-top:8px;margin-left:18px;padding-left:18px;border-left:2px solid color-mix(in srgb,var(--line) 72%,var(--accent))}
.structure-map-item{position:relative}.structure-map-item::before{content:"";position:absolute;left:-18px;top:18px;width:14px;height:0;border-top:2px solid color-mix(in srgb,var(--line) 72%,var(--accent))}.structure-map-root>.structure-map-item::before{display:none}
.structure-map-node{display:inline-flex;align-items:center;min-height:34px;max-width:100%;padding:8px 12px;border:1px solid color-mix(in srgb,var(--accent) 16%,var(--line));border-radius:12px;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--panel) 96%,var(--accent)));box-shadow:0 3px 10px rgba(0,0,0,.04);font-size:11.5px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.structure-map-item[data-depth="0"]>.structure-map-node{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,#fff),#fff);font-size:12px}
.structure-map-item[data-depth="1"]>.structure-map-node{font-weight:750}.structure-map-item[data-depth="2"]>.structure-map-node{font-size:11px}
@media(max-width:760px){.structure-map-box{max-width:100vw;width:100vw;height:100dvh;border-radius:0}.structure-map-modal-body{max-height:none}.structure-map-editor{grid-template-columns:1fr}.structure-map-field-wide{grid-column:auto}.structure-map-card-head{display:grid;gap:8px}.structure-map-card-actions,.structure-map-modal-actions{justify-content:flex-start}.structure-map-children{margin-left:12px;padding-left:12px}.structure-map-item::before{left:-12px;width:10px}}
@media(min-width:761px) and (max-width:1100px){.structure-map-editor{grid-template-columns:minmax(240px,360px) minmax(0,1fr)}}


/* v47h: 設定画面の構造マップを常時見える位置へ */
.navigator-settings-box{overflow:hidden!important}
.navigator-settings-actions{flex:1 1 auto;min-height:0;overflow-y:auto!important;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
.navigator-settings-actions .navigator-settings-primary{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 10%,var(--panel))!important;box-shadow:inset 4px 0 0 var(--accent)}
.navigator-settings-actions .navigator-settings-primary b{color:var(--accent);font-size:14px}
@media(max-width:760px){.navigator-settings-box{height:min(88dvh,720px)!important;max-height:calc(var(--app-vh,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}.navigator-settings-actions{padding:10px 10px calc(24px + env(safe-area-inset-bottom))}}
@media(min-width:761px) and (max-width:1100px){html.android-tablet-device .navigator-settings-box{height:calc(var(--app-vh,100dvh) - 16px)!important;max-height:calc(var(--app-vh,100dvh) - 16px)!important;overflow:hidden!important}html.android-tablet-device .navigator-settings-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;overflow-y:auto!important;padding:14px 14px calc(28px + env(safe-area-inset-bottom))!important}html.android-tablet-device .navigator-settings-actions .navigator-settings-primary{grid-column:1/-1;min-height:76px!important}}


/* v47i: iPhone / iPad の設定・構造マップ表示を明示修正 */
html.iphone-device .navigator-settings-box{
  width:calc(100vw - 16px)!important;
  height:calc(var(--app-vh,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
  max-height:calc(var(--app-vh,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
  border-radius:16px!important;
}
html.iphone-device .navigator-settings-actions{
  display:grid!important;
  grid-template-columns:1fr!important;
  align-content:start!important;
  overflow-y:auto!important;
  padding:10px 10px calc(28px + env(safe-area-inset-bottom))!important;
}
html.iphone-device .navigator-settings-actions .navigator-settings-primary{
  min-height:76px!important;
}
@media(min-width:761px) and (max-width:1100px){
  html.ipad-device .navigator-settings-box{
    width:min(760px,calc(100vw - 24px))!important;
    height:calc(var(--app-vh,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    max-height:calc(var(--app-vh,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
  }
  html.ipad-device .navigator-settings-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-content:start!important;
    overflow-y:auto!important;
    padding:14px 14px calc(30px + env(safe-area-inset-bottom))!important;
  }
  html.ipad-device .navigator-settings-actions .navigator-settings-primary{
    grid-column:1/-1!important;
    min-height:78px!important;
  }
  html.ipad-device .structure-map-box{
    width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
    height:calc(var(--app-vh,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    max-height:calc(var(--app-vh,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
  }
  html.ipad-device .structure-map-modal-body{
    max-height:none!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(24px + env(safe-area-inset-bottom));
  }
  html.ipad-device .structure-map-editor{
    grid-template-columns:minmax(250px,360px) minmax(0,1fr)!important;
  }
}

/* v47j: 17作品構造マップ専用JSON読込 */
.structure-map-import-btn{border-color:color-mix(in srgb,var(--accent) 58%,var(--line))!important;background:color-mix(in srgb,var(--accent) 12%,var(--panel))!important;color:var(--accent)!important;font-weight:900!important}

/* v47l: iOS/PWAでも直接タップできる構造マップJSON入力 */
.structure-map-import-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}
.structure-map-file-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;font-size:100px}

.structure-map-intro-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.structure-map-intro-title small{padding:3px 7px;border-radius:999px;background:var(--panel);color:var(--accent);font-size:9px;font-weight:850;white-space:nowrap}

/* v47m: 構造マップを画面内編集へ統合し、設定UIを簡素化 */
.navigator-settings-box{max-width:560px}
.navigator-settings-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}
.navigator-settings-actions .icon-btn{min-height:50px;padding:10px 12px;border-radius:12px;gap:2px}
.navigator-settings-actions .icon-btn b{font-size:12px}.navigator-settings-actions .icon-btn span{font-size:10px;line-height:1.35}
.navigator-settings-actions .navigator-settings-primary{grid-column:1/-1;min-height:58px;border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--panel))}
.structure-map-box{width:min(1240px,96vw);max-width:min(1240px,96vw)}
.structure-map-modal-body{display:block;max-height:min(84vh,980px);padding:0;background:var(--bg)}
.structure-map-compact-guide{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px);color:var(--sub);font-size:10px}.structure-map-compact-guide span{font-weight:750}.structure-map-compact-guide i{font-style:normal;opacity:.55}
.structure-map-list{gap:10px;padding:10px}
.structure-map-card{display:block;padding:0;border-radius:13px;overflow:hidden;background:var(--panel);box-shadow:none}
.structure-map-card>summary::-webkit-details-marker{display:none}.structure-map-card>summary{list-style:none;cursor:pointer}
.structure-map-card-head{min-height:52px;padding:9px 10px;align-items:center;border-bottom:0;background:var(--panel)}
.structure-map-card[open]>.structure-map-card-head{border-bottom:1px solid var(--line)}
.structure-map-card-title{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.structure-map-title-input{min-width:0;width:100%;border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;font-weight:900;outline-offset:3px}.structure-map-title-input::placeholder{color:var(--sub);opacity:.8}.structure-map-card-title small{flex:0 0 auto;padding:2px 6px;border-radius:999px;background:var(--soft)}
.structure-map-card-actions{flex-wrap:nowrap}.structure-map-card-actions .btn-mini{min-width:32px;padding-inline:7px}.structure-map-card-actions .btn-mini[disabled]{opacity:.32;pointer-events:none}
.danger-lite{color:var(--danger)!important;border-color:color-mix(in srgb,var(--danger) 25%,var(--line))!important;background:color-mix(in srgb,var(--danger) 4%,var(--panel))!important}
.structure-map-card-body{display:grid;gap:10px;padding:10px}
.structure-map-meta{display:grid;grid-template-columns:1fr;gap:9px}.structure-map-meta .structure-map-note{min-height:56px!important}
.structure-map-workspace{display:grid;grid-template-columns:minmax(430px,1fr) minmax(360px,.9fr);gap:10px;align-items:start}
.structure-map-simple-editor,.structure-map-preview-panel{min-width:0;padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.structure-map-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.structure-map-section-head>div{display:grid;gap:2px}.structure-map-section-head b{font-size:11px}.structure-map-section-head small{color:var(--sub);font-size:9px;line-height:1.35}
.structure-map-node-list{display:grid;gap:5px}
.structure-map-edit-row{display:grid;grid-template-columns:26px minmax(110px,1fr) auto;gap:6px;align-items:center;margin-left:calc(min(var(--map-depth),6) * 14px);padding:5px;border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:9px;background:var(--panel)}
.structure-map-level{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--soft);color:var(--accent);font-size:9px;font-weight:900}
.structure-map-node-input{height:34px;min-width:0;padding:6px 8px;font-size:11px}
.structure-map-row-tools{display:flex;gap:3px}.structure-map-row-tools .btn-mini{min-width:27px;height:30px;padding:3px 5px;font-size:9px}.structure-map-row-tools .btn-mini[title^="同じ"],.structure-map-row-tools .btn-mini[title^="子項目"]{min-width:34px}
.structure-map-add-root{margin-top:8px;width:100%;border-style:dashed}
.structure-map-simple-empty{display:grid;place-items:center;gap:8px;min-height:100px;border:1px dashed var(--line);border-radius:9px;color:var(--sub);font-size:10px}.structure-map-simple-empty p{margin:0}
.structure-map-raw-editor{margin-top:9px;border-top:1px solid var(--line);padding-top:7px}.structure-map-raw-editor>summary{cursor:pointer;color:var(--sub);font-size:10px;font-weight:750}.structure-map-raw-editor[open]>summary{margin-bottom:7px}.structure-map-raw-editor .structure-map-body{min-height:180px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.6}.structure-map-raw-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:6px}.structure-map-raw-actions small{margin-right:auto;color:var(--sub);font-size:9px}
.structure-map-preview-panel{position:sticky;top:45px}.structure-map-preview{max-height:58vh;min-height:240px}
.structure-map-empty-state{display:grid;place-items:center;gap:8px;min-height:220px;padding:24px;text-align:center}.structure-map-empty-state b{font-size:14px}.structure-map-empty-state p{margin:0;color:var(--sub);font-size:11px}.structure-map-empty-state>div{display:flex;gap:7px}
.structure-map-import-btn,.structure-map-file-input,.structure-map-intro-title{display:none!important}
@media(max-width:900px){.structure-map-workspace{grid-template-columns:1fr}.structure-map-preview-panel{position:static}.structure-map-meta{grid-template-columns:1fr}.structure-map-preview{max-height:none}}
@media(max-width:760px){.navigator-settings-actions{grid-template-columns:1fr}.navigator-settings-actions .navigator-settings-primary{grid-column:auto}.structure-map-box{width:100vw;max-width:100vw}.structure-map-modal-head{padding:8px}.structure-map-modal-actions{gap:4px}.structure-map-modal-actions .btn-mini{padding-inline:7px;font-size:10px}.structure-map-compact-guide{justify-content:flex-start;overflow-x:auto;white-space:nowrap}.structure-map-card-head{display:grid;gap:7px}.structure-map-card-actions{justify-content:flex-start;overflow-x:auto}.structure-map-edit-row{grid-template-columns:24px minmax(100px,1fr);margin-left:calc(min(var(--map-depth),4) * 9px)}.structure-map-row-tools{grid-column:1/-1;justify-content:flex-end;overflow-x:auto}.structure-map-row-tools .btn-mini{min-width:31px}.structure-map-card-body{padding:8px}.structure-map-list{padding:7px}.structure-map-raw-actions{flex-wrap:wrap}.structure-map-raw-actions small{width:100%;margin:0}.structure-map-preview{min-height:180px}}


/* v47o: 原稿全体から構造・人物関係を再構成 */
.analysis-primary-btn{border-color:color-mix(in srgb,var(--accent) 48%,var(--line))!important;background:color-mix(in srgb,var(--accent) 10%,var(--panel))!important;color:var(--ink)!important;font-weight:850!important}
.analysis-primary-btn:disabled{opacity:.65;cursor:progress}
.manuscript-analysis-box{width:min(1120px,96vw);max-width:min(1120px,96vw)}
.manuscript-analysis-head>div{display:grid;gap:2px;min-width:0}.manuscript-analysis-head small{color:var(--sub);font-size:10px}
.manuscript-analysis-body{display:grid;gap:10px;padding:10px;background:var(--bg);max-height:min(78vh,900px)}
.manuscript-analysis-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.manuscript-analysis-summary span{display:grid;gap:2px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--sub);font-size:9px;text-align:center}.manuscript-analysis-summary b{color:var(--ink);font-size:15px}
.manuscript-analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.manuscript-analysis-grid>section,.manuscript-analysis-preview,.manuscript-analysis-relations{min-width:0;padding:9px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.manuscript-analysis-grid section>header,.manuscript-analysis-preview>header,.manuscript-analysis-relations>header{display:grid;gap:2px;margin-bottom:7px}.manuscript-analysis-grid header b,.manuscript-analysis-preview header b,.manuscript-analysis-relations header b{font-size:11px}.manuscript-analysis-grid header small,.manuscript-analysis-preview header small,.manuscript-analysis-relations header small{color:var(--sub);font-size:9px}
.manuscript-analysis-list{display:grid;gap:5px;max-height:250px;overflow:auto}.manuscript-analysis-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;padding:7px 8px;border-radius:9px;background:var(--panel2)}.manuscript-analysis-list article b{font-size:10px;overflow-wrap:anywhere}.manuscript-analysis-list article span{color:var(--accent);font-size:8.5px;font-weight:800}.manuscript-analysis-list article small{grid-column:1/-1;color:var(--sub);font-size:8px;line-height:1.45;overflow-wrap:anywhere}
.manuscript-analysis-empty{display:grid;place-items:center;min-height:80px;padding:12px;border:1px dashed var(--line);border-radius:9px;color:var(--sub);font-size:9.5px;text-align:center}
.manuscript-analysis-preview .structure-map-preview{max-height:360px;min-height:180px}.manuscript-analysis-relations .manuscript-analysis-list{max-height:300px}
.manuscript-analysis-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:10px;border-top:1px solid var(--line);background:var(--panel)}.manuscript-analysis-actions>div{display:grid;gap:2px;margin-right:auto}.manuscript-analysis-actions b{font-size:10.5px}.manuscript-analysis-actions small{color:var(--sub);font-size:8.5px;line-height:1.45}
@media(max-width:760px){.manuscript-analysis-box{width:100vw;max-width:100vw;height:100dvh;border-radius:0}.manuscript-analysis-body{max-height:none}.manuscript-analysis-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.manuscript-analysis-grid{grid-template-columns:1fr}.manuscript-analysis-actions{display:grid;grid-template-columns:1fr 1fr}.manuscript-analysis-actions>div{grid-column:1/-1;margin:0}.manuscript-analysis-actions .lock-btn,.manuscript-analysis-actions .btn-mini{width:100%}.structure-map-modal-actions,.relationship-head-actions{overflow-x:auto;flex-wrap:nowrap}.structure-map-modal-actions .btn-mini,.relationship-head-actions .btn-mini{flex:0 0 auto}}
.manuscript-analysis-select{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:start;padding:7px 8px;border-radius:9px;background:var(--panel2);cursor:pointer}.manuscript-analysis-select>input{margin-top:3px}.manuscript-analysis-select>span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;min-width:0}.manuscript-analysis-select b{font-size:10px;overflow-wrap:anywhere}.manuscript-analysis-select em{color:var(--accent);font-size:8.5px;font-style:normal;font-weight:800}.manuscript-analysis-select small{grid-column:1/-1;color:var(--sub);font-size:8px;line-height:1.45}.manuscript-analysis-warning{padding:8px 10px;border:1px solid color-mix(in srgb,#d19a4a 55%,var(--line));border-radius:10px;background:color-mix(in srgb,#d19a4a 9%,var(--panel));font-size:9.5px;line-height:1.55}


.character-group-settings-actions .icon-btn{min-height:46px}
@media(max-width:760px){.character-group-settings-actions{grid-template-columns:1fr}}
/* v47q: 原稿分析の反映修正・見やすさ改善 */
.manuscript-analysis-modal{padding:clamp(6px,1.2vw,16px)}
.manuscript-analysis-box{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(1180px,97vw);max-width:min(1180px,97vw);max-height:94dvh;overflow:hidden;border-radius:18px;background:var(--panel)}
.manuscript-analysis-head{padding:12px 14px;border-bottom:1px solid var(--line)}
.manuscript-analysis-head b{font-size:15px}.manuscript-analysis-head small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.manuscript-analysis-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:7px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--panel2)}
.manuscript-analysis-toolbar>div{display:grid;gap:2px;min-width:0}.manuscript-analysis-toolbar>div>b{font-size:11px}.manuscript-analysis-toolbar>div>small{color:var(--sub);font-size:9px}
.manuscript-analysis-toolbar>span{padding:5px 8px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:9px;font-weight:900;white-space:nowrap}
.manuscript-analysis-body{min-height:0;max-height:none;overflow:auto;padding:12px;background:color-mix(in srgb,var(--bg) 88%,var(--panel));scrollbar-gutter:stable}
.manuscript-analysis-summary{position:sticky;top:0;z-index:2;padding-bottom:3px;background:color-mix(in srgb,var(--bg) 88%,var(--panel))}
.manuscript-analysis-summary span{min-height:58px;place-content:center;border-radius:12px;box-shadow:0 3px 12px rgba(0,0,0,.035)}
.manuscript-analysis-summary b{font-size:18px}
.manuscript-analysis-grid{gap:10px}
.manuscript-analysis-grid>section,.manuscript-analysis-preview,.manuscript-analysis-relations{padding:11px;border-radius:14px;box-shadow:0 4px 14px rgba(0,0,0,.035)}
.manuscript-analysis-grid section>header,.manuscript-analysis-preview>header,.manuscript-analysis-relations>header{padding-bottom:7px;border-bottom:1px solid var(--line);margin-bottom:8px}
.manuscript-analysis-grid header b,.manuscript-analysis-preview header b,.manuscript-analysis-relations header b{font-size:12px}
.manuscript-analysis-grid header small,.manuscript-analysis-preview header small,.manuscript-analysis-relations header small{font-size:9.5px;line-height:1.5}
.manuscript-analysis-list{gap:6px;max-height:320px;padding-right:2px}
.manuscript-analysis-select{position:relative;padding:9px 10px;border:1px solid transparent;border-radius:11px;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.manuscript-analysis-select:hover{border-color:var(--line)}
.manuscript-analysis-select.is-selected{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.manuscript-analysis-select>input{width:17px;height:17px;accent-color:var(--accent)}
.manuscript-analysis-select b{font-size:11px}.manuscript-analysis-select em{padding:2px 6px;border-radius:999px;background:var(--soft);font-size:8.5px}.manuscript-analysis-select small{font-size:8.8px;line-height:1.55}
.manuscript-analysis-list article{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.manuscript-analysis-list article b{font-size:10.5px}.manuscript-analysis-list article span{font-size:8.8px}.manuscript-analysis-list article small{font-size:8.5px}
.manuscript-analysis-warning{padding:10px 12px;font-size:10px}
.manuscript-analysis-preview .structure-map-preview{max-height:460px;min-height:230px}
.manuscript-analysis-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel);box-shadow:0 -8px 24px rgba(0,0,0,.05)}
.manuscript-apply-option{appearance:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;min-height:68px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--panel2);color:var(--ink);text-align:left;cursor:pointer}
.manuscript-apply-option>span{font-size:12px;font-weight:900}.manuscript-apply-option>small{grid-column:1/2;color:var(--sub);font-size:9px;line-height:1.5}.manuscript-apply-option>em{grid-column:2;grid-row:1/3;align-self:center;padding:5px 8px;border-radius:999px;background:var(--panel);color:var(--sub);font-size:8px;font-style:normal;font-weight:850;white-space:nowrap}
.manuscript-apply-option.is-missing{border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}.manuscript-apply-option.is-rebuild{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--panel))}.manuscript-apply-option.is-rebuild>span{color:var(--accent)}
.manuscript-apply-option:active{transform:translateY(1px)}.manuscript-apply-option:disabled{opacity:.42;cursor:not-allowed;transform:none}
.analysis-primary-btn{white-space:nowrap}
@media(max-width:760px){
  .manuscript-analysis-modal{padding:0}.manuscript-analysis-box{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
  .manuscript-analysis-head{padding:9px 10px}.manuscript-analysis-head b{font-size:13px}
  .manuscript-analysis-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:8px}.manuscript-analysis-toolbar>div{grid-column:1/-1}.manuscript-analysis-toolbar .btn-mini{min-height:32px}.manuscript-analysis-toolbar>span{justify-self:end}
  .manuscript-analysis-body{padding:8px}.manuscript-analysis-summary{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.manuscript-analysis-summary span{min-height:50px}.manuscript-analysis-summary b{font-size:16px}
  .manuscript-analysis-grid{grid-template-columns:1fr}.manuscript-analysis-list{max-height:none}.manuscript-analysis-preview .structure-map-preview{max-height:none;min-height:180px}
  .manuscript-analysis-actions{grid-template-columns:1fr;gap:7px;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.manuscript-apply-option{min-height:60px;padding:9px 10px}.manuscript-apply-option>em{display:none}
}
@media(min-width:761px) and (max-width:1100px){.manuscript-analysis-box{width:96vw;max-width:96vw}.manuscript-analysis-toolbar{grid-template-columns:minmax(0,1fr) auto auto}.manuscript-analysis-toolbar>span{grid-column:2}.manuscript-analysis-grid{grid-template-columns:1fr 1fr}}

/* v47r: 人物データ統合・人物相関図（整理済み） */
.relation-settings-button{border-color:color-mix(in srgb,#a77ac2 45%,var(--line))!important;background:color-mix(in srgb,#a77ac2 8%,var(--panel))!important}
.relationship-map-box{width:min(1320px,97vw);max-width:min(1320px,97vw)}.relationship-map-head>div{display:grid;gap:2px;min-width:0}.relationship-map-head small{color:var(--sub);font-size:10px}.relationship-head-actions{display:flex;gap:6px;flex-wrap:wrap}.relationship-map-body{padding:0;background:var(--bg);max-height:min(86vh,980px)}
.relationship-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:9px 10px;background:var(--panel)}.relationship-summary span{display:grid;grid-template-columns:auto 1fr;align-items:center;justify-content:center;gap:4px;min-height:42px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:9px;text-align:center}.relationship-summary span b{color:var(--accent);font-size:16px}.relationship-summary span.has-warning{border-color:color-mix(in srgb,#d19a4a 52%,var(--line));background:color-mix(in srgb,#d19a4a 9%,var(--panel))}
.relationship-filterbar{display:grid;grid-template-columns:1.2fr .8fr .9fr auto;gap:7px;align-items:end;padding:9px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel2)}.relationship-filterbar label{display:grid;gap:4px;min-width:0}.relationship-filterbar label>span{color:var(--sub);font-size:8.5px;font-weight:850}.relationship-filterbar .input{height:34px;min-width:0}.relationship-connected-toggle{grid-template-columns:auto minmax(0,1fr)!important;align-items:center;align-self:center;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.relationship-connected-toggle input{accent-color:var(--accent)}.relationship-connected-toggle span{color:var(--ink)!important;font-size:9px!important}
.relationship-workspace{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(580px,1.28fr);gap:9px;padding:9px;align-items:start}.relationship-editor,.relationship-preview-panel{min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.relationship-editor{display:grid;gap:10px;max-height:70vh;overflow:auto}
.relationship-meta-panel,.relationship-people-panel{border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.relationship-meta-panel>summary,.relationship-people-panel>summary{padding:8px 10px;cursor:pointer;font-size:10px;font-weight:850}.relationship-meta-panel[open]>summary,.relationship-people-panel[open]>summary{border-bottom:1px solid var(--line)}.relationship-meta{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(250px,1.35fr);gap:8px;padding:8px}.relationship-meta label{display:grid;gap:4px}.relationship-meta label>span{color:var(--sub);font-size:9px;font-weight:800}
.relationship-people-panel>summary b{color:var(--accent)}.relationship-people-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px}.relationship-people-list>button{appearance:none;display:grid;gap:1px;padding:7px;border:1px solid transparent;border-radius:8px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer}.relationship-people-list>button:hover{border-color:var(--line)}.relationship-people-list b{font-size:9.5px;overflow-wrap:anywhere}.relationship-people-list small{color:var(--sub);font-size:8px;overflow-wrap:anywhere}.relationship-add-person{display:grid;grid-template-columns:minmax(110px,1fr) minmax(120px,1fr) auto;gap:5px;padding:8px;border-top:1px solid var(--line)}
.relationship-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.relationship-section-head>div{display:grid;gap:2px}.relationship-section-head b{font-size:11px}.relationship-section-head small{color:var(--sub);font-size:9px}.relationship-link-list{display:grid;gap:7px}.relationship-link-row{display:grid;gap:7px;padding:8px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.relationship-link-people{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);gap:6px;align-items:end}.relationship-link-people label,.relationship-link-detail label{display:grid;gap:3px;min-width:0}.relationship-link-people label>span,.relationship-link-detail label>span{color:var(--sub);font-size:8px;font-weight:850}.relationship-link-row .relationship-direction{appearance:none;display:grid;place-items:center;width:38px;height:34px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:9px;background:var(--soft);color:var(--accent);font-size:15px;font-weight:900;cursor:pointer}.relationship-link-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end}.relationship-link-detail .danger-lite{height:34px}.relationship-link-row .input{height:34px;min-width:0;padding:5px 7px;font-size:10px}.relationship-empty-links{display:grid;place-items:center;gap:7px;min-height:100px;border:1px dashed var(--line);border-radius:10px;color:var(--sub);font-size:10px}.relationship-empty-links p{margin:0}
.relationship-preview-panel{position:sticky;top:9px;display:grid;gap:8px}.relationship-preview-head{display:flex;justify-content:space-between;gap:8px;padding-bottom:7px;border-bottom:1px solid var(--line)}.relationship-preview-head>div{display:grid;gap:2px}.relationship-preview-head b{font-size:11px}.relationship-preview-head small{color:var(--sub);font-size:9px}.relationship-preview-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.relationship-preview-status span{padding:4px 7px;border-radius:999px;background:var(--soft);color:var(--sub);font-size:8.5px;font-weight:800}
.relationship-preview-scroll{overflow:auto;max-height:66vh;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,var(--panel2),var(--panel))}.relationship-map-canvas{position:relative;min-width:720px;min-height:430px;padding:10px}.relationship-map-svg{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}.relationship-map-svg path{fill:none;stroke:color-mix(in srgb,var(--accent) 56%,#8b8b8b);stroke-width:1.6;opacity:.68}.relationship-map-svg marker path{fill:color-mix(in srgb,var(--accent) 65%,#777);stroke:none}.relationship-map-svg text{fill:var(--sub);font-size:8px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round}.relationship-map-svg path.is-muted,.relationship-map-svg text.is-muted{opacity:.13}.relationship-map-svg path.is-active{stroke-width:2;opacity:.78}.relationship-map-svg text.is-active{font-size:8.5px;stroke-width:4px}
.relationship-groups{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:9px}.relationship-group{min-width:0;padding:8px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:11px;background:color-mix(in srgb,var(--panel) 91%,transparent)}.relationship-group>header{display:flex;justify-content:space-between;gap:6px;margin-bottom:6px;color:var(--sub);font-size:9px;font-weight:850}.relationship-group>header b{font-size:9.5px}.relationship-group>header span{padding:1px 5px;border-radius:999px;background:var(--soft);color:var(--accent)}.relationship-group>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:5px}.relationship-group[data-relationship-group="主人公"]{grid-column:1/-1;border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--panel))}.relationship-person{appearance:none;position:relative;display:grid;gap:2px;min-width:0;min-height:58px;padding:7px 8px;border:1px solid color-mix(in srgb,var(--accent) 16%,var(--line));border-radius:9px;background:var(--panel);box-shadow:0 2px 8px rgba(0,0,0,.04);color:var(--ink);text-align:left;cursor:pointer}.relationship-person:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));transform:translateY(-1px)}.relationship-person.is-focused{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent)}.relationship-person b{font-size:9.5px;overflow-wrap:anywhere}.relationship-person small{color:var(--sub);font-size:7.5px;line-height:1.3;overflow-wrap:anywhere}.relationship-person em{justify-self:start;padding:2px 5px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:7.5px;font-style:normal;font-weight:850}.relationship-preview-empty{grid-column:1/-1;display:grid;place-items:center;min-height:220px;color:var(--sub);font-size:10px}
@media(max-width:1000px){.relationship-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.relationship-workspace{grid-template-columns:1fr}.relationship-editor{max-height:none}.relationship-preview-panel{position:static}.relationship-meta{grid-template-columns:1fr}.relationship-groups{grid-template-columns:repeat(2,minmax(230px,1fr))}}
@media(max-width:760px){.relationship-map-box{width:100vw;max-width:100vw;height:100dvh;border-radius:0}.relationship-map-head{padding:8px}.relationship-head-actions{overflow-x:auto;flex-wrap:nowrap}.relationship-head-actions .btn-mini{flex:0 0 auto}.relationship-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:7px}.relationship-filterbar{grid-template-columns:1fr 1fr;padding:7px}.relationship-connected-toggle{grid-column:1/-1}.relationship-workspace{padding:6px}.relationship-add-person{grid-template-columns:1fr}.relationship-people-list{grid-template-columns:1fr}.relationship-link-people{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr)}.relationship-map-canvas{min-width:620px}.relationship-groups{grid-template-columns:repeat(2,minmax(230px,1fr))}.relationship-group>div{grid-template-columns:1fr}}

/* v47t: 人物生成と関係生成を分離・階層型相関マップ・マップ先頭配置 */
.manuscript-analysis-separation-note{display:grid;gap:3px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.manuscript-analysis-separation-note b{font-size:10.5px}.manuscript-analysis-separation-note span{color:var(--sub);font-size:9px;line-height:1.55}
.relationship-workspace{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px;padding:9px;align-items:start}.relationship-preview-panel{position:static!important;top:auto!important;order:1;display:grid;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.relationship-editor{order:2;display:grid;gap:10px;max-height:none!important;overflow:visible!important;min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.relationship-editor-guide{display:grid;gap:3px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--panel2))}.relationship-editor-guide b{font-size:10px}.relationship-editor-guide small{color:var(--sub);font-size:8.5px;line-height:1.5}
.relationship-preview-scroll{overflow:auto;max-height:min(58vh,680px);border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel2),var(--panel));overscroll-behavior:contain}.relationship-tree-map{min-width:0;padding:12px}.relationship-tree-root{display:grid;justify-items:start;gap:4px}.relationship-tree-root>small{color:var(--sub);font-size:8px;font-weight:850}.relationship-tree-root>button,.relationship-tree-person{appearance:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;max-width:100%;padding:9px 11px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:11px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer}.relationship-tree-root>button{min-width:min(360px,100%);border-color:color-mix(in srgb,var(--accent) 62%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--panel));box-shadow:0 3px 12px rgba(0,0,0,.05)}.relationship-tree-root>button b{font-size:12px}.relationship-tree-root>button span{color:var(--sub);font-size:8.5px}.relationship-tree-root-list,.relationship-tree-root-list ul,.relationship-tree-secondary{list-style:none;margin:0;padding:0}.relationship-tree-root-list{display:grid;gap:9px;margin-top:10px;margin-left:13px;padding-left:15px;border-left:2px solid color-mix(in srgb,var(--accent) 34%,var(--line))}.relationship-tree-branch{position:relative;display:grid;gap:7px}.relationship-tree-branch::before{content:"";position:absolute;left:-15px;top:17px;width:12px;border-top:2px solid color-mix(in srgb,var(--accent) 34%,var(--line))}.relationship-tree-branch-label{display:flex;align-items:center;justify-content:space-between;gap:8px;width:min(330px,100%);padding:7px 9px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:10px;background:var(--panel2)}.relationship-tree-branch-label b{font-size:10px}.relationship-tree-branch-label span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:8px;font-weight:850}.relationship-tree-branch>ul{display:grid;gap:6px;margin-left:13px;padding-left:15px;border-left:1px solid var(--line)}.relationship-tree-person-item,.relationship-tree-branch>ul>li{position:relative}.relationship-tree-person-item::before,.relationship-tree-branch>ul>li::before{content:"";position:absolute;left:-15px;top:17px;width:12px;border-top:1px solid var(--line)}.relationship-tree-person{width:min(460px,100%)}.relationship-tree-person>span{display:grid;gap:2px;min-width:0}.relationship-tree-person b{font-size:10.5px;overflow-wrap:anywhere}.relationship-tree-person small{color:var(--sub);font-size:8px;line-height:1.35;overflow-wrap:anywhere}.relationship-tree-person em{flex:0 0 auto;padding:3px 6px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:7.5px;font-style:normal;font-weight:850}.relationship-tree-person:active,.relationship-tree-root>button:active{transform:translateY(1px)}.relationship-tree-secondary{display:grid;gap:4px;margin:5px 0 0 14px;padding-left:12px;border-left:1px dashed var(--line)}.relationship-tree-secondary li{position:relative}.relationship-tree-secondary li::before{content:"";position:absolute;left:-12px;top:12px;width:9px;border-top:1px dashed var(--line)}.relationship-tree-secondary button{appearance:none;display:flex;align-items:center;gap:6px;max-width:100%;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);text-align:left;cursor:pointer}.relationship-tree-secondary b{font-size:8.5px}.relationship-tree-secondary small{color:var(--sub);font-size:7.5px}.relationship-tree-subgroup>div{display:flex;justify-content:space-between;gap:8px;width:min(310px,100%);padding:6px 8px;color:var(--sub);font-size:8.5px;font-weight:850}.relationship-tree-subgroup>ul{display:grid;gap:5px;margin-left:10px;padding-left:12px;border-left:1px dashed var(--line)}
.structure-map-card-body{display:grid;gap:10px;padding:10px}.structure-map-card-body>.structure-map-preview-panel{position:static!important;top:auto!important;order:1}.structure-map-card-body>.structure-map-simple-editor{order:2;display:grid;gap:10px}.structure-map-edit-heading{display:grid;gap:2px;padding-bottom:7px;border-bottom:1px solid var(--line)}.structure-map-edit-heading b{font-size:11px}.structure-map-edit-heading small{color:var(--sub);font-size:8.5px}.structure-map-preview{max-height:min(58vh,680px);min-height:220px}.structure-map-simple-editor .structure-map-meta{margin:0;padding:0 0 9px;border-bottom:1px solid var(--line)}
@media(max-width:760px){
  .relationship-map-body{max-height:none;overflow:auto}.relationship-summary{position:static}.relationship-filterbar{grid-template-columns:1fr 1fr}.relationship-filterbar label:first-child{grid-column:1/-1}.relationship-workspace{padding:6px}.relationship-preview-panel,.relationship-editor{padding:8px}.relationship-preview-scroll{max-height:52dvh}.relationship-tree-map{padding:9px}.relationship-tree-root>button,.relationship-tree-person{width:100%;min-width:0}.relationship-tree-root-list{margin-left:8px;padding-left:11px}.relationship-tree-branch::before{left:-11px;width:9px}.relationship-tree-branch>ul{margin-left:7px;padding-left:11px}.relationship-tree-person-item::before,.relationship-tree-branch>ul>li::before{left:-11px;width:9px}.relationship-tree-secondary{margin-left:8px;padding-left:9px}.relationship-tree-secondary li::before{left:-9px;width:7px}.relationship-link-people{grid-template-columns:1fr}.relationship-link-row .relationship-direction{width:100%;height:30px}.relationship-link-detail{grid-template-columns:1fr auto}.relationship-meta{grid-template-columns:1fr}.relationship-people-list{grid-template-columns:1fr 1fr}
  .structure-map-card-body{padding:7px}.structure-map-preview{max-height:50dvh;min-height:170px}.structure-map-simple-editor{padding:8px}.structure-map-edit-heading{position:sticky;top:0;z-index:2;padding:7px;background:var(--panel2)}
}
@media(max-width:430px){.relationship-summary{gap:5px}.relationship-filterbar{grid-template-columns:1fr}.relationship-connected-toggle{grid-column:auto}.relationship-people-list{grid-template-columns:1fr}.relationship-tree-branch-label{width:100%}.relationship-tree-person{align-items:flex-start}.relationship-tree-person em{margin-top:1px}.relationship-head-actions{padding-bottom:2px}.structure-map-modal-actions{overflow-x:auto;flex-wrap:nowrap}.structure-map-modal-actions .btn-mini{flex:0 0 auto}}

/* v47u: 人物・相関図・構造マップUIの整理と全端末最適化 */
.char-toolbar{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center!important}.character-group-settings-actions{grid-template-columns:1fr}
.relationship-map-head,.structure-map-modal-head{gap:8px}.relationship-head-actions,.structure-map-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.relationship-summary{display:flex;gap:6px;padding:8px 10px;overflow-x:auto}.relationship-summary span{display:flex;align-items:center;gap:4px;min-height:32px;min-width:max-content;padding:5px 9px}.relationship-summary span b{font-size:13px}.relationship-view-controls{margin:0 9px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.relationship-view-controls>summary{padding:8px 10px;cursor:pointer;font-size:10px;font-weight:850}.relationship-view-controls[open]>summary{border-bottom:1px solid var(--line)}.relationship-filterbar{border:0!important;background:var(--panel2)}.relationship-preview-status{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.relationship-preview-status>span{color:var(--sub);font-size:9px}.relationship-tree-unconnected{list-style:none}.relationship-tree-unconnected>details{border:1px dashed var(--line);border-radius:10px;background:var(--panel2);overflow:hidden}.relationship-tree-unconnected summary{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;cursor:pointer}.relationship-tree-unconnected summary b{font-size:9.5px}.relationship-tree-unconnected summary span{color:var(--sub);font-size:8.5px}.relationship-tree-unconnected-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;padding:8px;border-top:1px solid var(--line)}.relationship-tree-unconnected-groups section{display:grid;gap:5px;min-width:0}.relationship-tree-unconnected-groups header{display:flex;justify-content:space-between;gap:6px;color:var(--sub);font-size:8.5px}.relationship-tree-unconnected-groups section>div{display:grid;gap:4px}.relationship-links-panel,.relationship-meta-panel,.relationship-people-panel{border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow:hidden}.relationship-links-panel>summary,.relationship-meta-panel>summary,.relationship-people-panel>summary{padding:9px 10px;cursor:pointer;font-size:10px;font-weight:850}.relationship-links-panel[open]>summary,.relationship-meta-panel[open]>summary,.relationship-people-panel[open]>summary{border-bottom:1px solid var(--line)}.relationship-links-panel-body{display:grid;gap:8px;padding:8px}.relationship-section-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.relationship-editor-guide{padding:8px 9px}.relationship-preview-scroll{max-height:min(54vh,620px)}
.structure-map-card-head{padding:10px 11px}.structure-map-card-head::after{content:"開閉";color:var(--sub);font-size:8px;font-weight:750}.structure-map-card-actions{display:none!important}.structure-map-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px;border-top:1px solid var(--line)}.structure-map-card-footer>div{display:flex;gap:5px;flex-wrap:wrap}.structure-map-compact-guide{display:none!important}.structure-map-row-tools{display:grid;grid-template-columns:repeat(7,minmax(34px,auto));justify-content:end}.structure-map-edit-heading{position:static!important}.structure-map-preview{max-height:min(54vh,620px)}
@media (min-width:761px) and (max-width:1180px){.relationship-map-box,.structure-map-box{width:min(980px,97vw);max-width:min(980px,97vw)}.relationship-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.relationship-connected-toggle{grid-column:1/-1}.relationship-people-list{grid-template-columns:repeat(3,minmax(0,1fr))}.manuscript-analysis-box{width:min(980px,97vw)}.structure-map-row-tools{grid-template-columns:repeat(4,minmax(48px,1fr));width:100%}}
@media (max-width:760px){.char-toolbar{grid-template-columns:1fr}.char-count{justify-self:start}.char-toolbar-actions{grid-template-columns:1fr 1fr}.char-toolbar-actions .ref-add{min-height:42px}.manuscript-analysis-toolbar{grid-template-columns:minmax(0,1fr) auto}.manuscript-analysis-toolbar>span{grid-column:1/-1;grid-row:2}.manuscript-analysis-toolbar>.btn-mini{grid-row:2}.relationship-map-head,.structure-map-modal-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start}.relationship-head-actions,.structure-map-modal-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;width:100%;overflow:visible!important}.relationship-head-actions .analysis-primary-btn,.structure-map-modal-actions .analysis-primary-btn{min-height:40px}.relationship-summary{padding:6px 7px}.relationship-view-controls{margin:0 6px}.relationship-filterbar{grid-template-columns:1fr!important;padding:7px}.relationship-connected-toggle{grid-column:auto!important}.relationship-workspace{gap:7px;padding:6px}.relationship-preview-panel,.relationship-editor{padding:7px}.relationship-preview-scroll{max-height:48dvh}.relationship-tree-unconnected-groups{grid-template-columns:1fr}.relationship-section-actions{display:grid;grid-template-columns:1fr 1fr}.relationship-section-actions .btn-mini{width:100%;min-height:38px}.relationship-link-list{gap:8px}.relationship-link-row{padding:8px}.relationship-link-detail{grid-template-columns:1fr}.relationship-link-detail .danger-lite{width:100%}.relationship-people-list{grid-template-columns:1fr 1fr}.structure-map-card-head::after{content:"タップで開閉"}.structure-map-card-footer{display:grid}.structure-map-card-footer>div{display:grid;grid-template-columns:repeat(3,1fr)}.structure-map-card-footer>.danger-lite{width:100%}.structure-map-row-tools{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:visible}.structure-map-row-tools .btn-mini{min-width:0!important;min-height:36px}.structure-map-edit-row{margin-left:calc(min(var(--map-depth),3) * 7px)}.structure-map-modal-actions{grid-template-columns:1fr auto auto}.structure-map-modal-actions .btn-mini{min-width:0}.structure-map-preview{max-height:46dvh}.structure-map-empty-state>div{display:grid;grid-template-columns:1fr 1fr;width:100%}}
@media (max-width:430px){.relationship-people-list{grid-template-columns:1fr}.relationship-head-actions{grid-template-columns:1fr auto}.structure-map-modal-actions{grid-template-columns:1fr auto}.structure-map-modal-actions .btn-mini:nth-child(2){display:none}.structure-map-card-footer>div{grid-template-columns:1fr 1fr}.structure-map-card-footer>div .btn-mini:nth-child(3){grid-column:1/-1}.manuscript-analysis-toolbar{grid-template-columns:1fr 1fr}.manuscript-analysis-toolbar>div,.manuscript-analysis-toolbar>span{grid-column:1/-1}.manuscript-analysis-toolbar>.btn-mini{grid-row:auto}.relationship-tree-root-list{margin-left:5px;padding-left:9px}.relationship-tree-branch>ul{margin-left:4px;padding-left:9px}}
@media (pointer:coarse){.btn-mini,.ref-add,.icon-btn,.lock-btn,.relationship-direction,.relationship-tree-person,.relationship-tree-root>button{min-height:42px}.input,select.input{min-height:40px}}

/* v47x: タッチ端末では、圧縮レイアウトでも主要操作のタップ領域を確保する。 */
html.touch-device .topbar :is(select,.icon-btn,.top-more>summary),
html.touch-device .topbar .top-tools .icon-btn {
  min-height: 36px !important;
}
html.touch-device :is(.ref-tab,.ref-nav-tools .ref-tool-btn) {
  min-height: 34px !important;
}
html.touch-device :is(
  .summary-title-input,
  .plot-axis-name,
  .summary-item-actions .ref-del,
  .plot-axis-head .btn
) {
  min-height: 34px !important;
}


/* 人物タブ：追加・グループ・相関図・構造マップを直接操作 */
.char-toolbar-actions {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(90px,1fr)) !important;
  gap: 6px !important;
  width: 100%;
}
.char-toolbar-actions .ref-add {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 42px !important;
  padding: 6px 9px !important;
  white-space: normal !important;
  text-align: center;
  line-height: 1.25;
}
.char-toolbar-actions .character-toolbar-shortcut {
  border-color: color-mix(in srgb,var(--accent) 30%,var(--line));
  background: var(--panel);
  color: var(--ink);
  font-weight: 850;
}
.char-toolbar-actions .character-toolbar-shortcut:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: color-mix(in srgb,var(--accent) 6%,var(--panel));
}
.navigator-settings-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
@media (max-width:760px) {
  .char-toolbar { grid-template-columns: 1fr !important; gap: 5px !important; }
  .char-count { justify-self: start; }
  .char-toolbar-actions { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 4px !important; }
  .char-toolbar-actions .ref-add { min-height: 46px !important; padding: 5px 4px !important; font-size: 9.5px !important; }
  .navigator-settings-actions { grid-template-columns: 1fr; }
}
@media (max-width:360px) {
  .char-toolbar-actions .ref-add { font-size: 8.8px !important; letter-spacing: -.02em; }
}
@media (min-width:761px) and (max-width:1180px) {
  .char-toolbar-actions { grid-template-columns: repeat(4,minmax(90px,1fr)) !important; }
  .char-toolbar-actions .ref-add { min-height: 44px !important; }
}
/* v48a: map-first mobile layout — open directly on the map, edit below */
.map-first-modal-head {
  flex: 0 0 auto;
  min-height: 48px;
  padding: 7px 10px;
  gap: 8px;
}
.map-first-modal-head > div {
  display: grid;
  gap: 1px;
  min-width: 0;
}
.map-first-modal-head > div b,
.map-first-modal-head > div small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.map-first-close { flex: 0 0 auto; }
.map-first-modal-body {
  scroll-behavior: auto;
  overscroll-behavior: contain;
}
.relationship-map-body {
  display: grid;
  gap: 9px;
  padding: 9px 9px calc(18px + env(safe-area-inset-bottom));
  overflow-y: auto;
}
.relationship-primary-map {
  order: 1;
  position: static !important;
  top: auto !important;
  min-width: 0;
}
.relationship-editor {
  order: 2;
  margin: 0;
}
.relationship-editor-guide {
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
}
.relationship-editor-guide > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.relationship-view-controls { margin: 0; }
.structure-map-primary-actions {
  order: 2;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 6px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--panel2);
}
.structure-map-card-body > .structure-map-simple-editor { order: 3; }

@media (max-width:760px) {
  .relationship-map-box,
  .structure-map-box {
    height: var(--app-vh,100dvh) !important;
    max-height: var(--app-vh,100dvh) !important;
  }
  .map-first-modal-head {
    min-height: 44px;
    padding: calc(4px + env(safe-area-inset-top)) 7px 4px;
    grid-template-columns: minmax(0,1fr) auto !important;
    align-items: center !important;
  }
  .map-first-modal-head > div { gap: 0; }
  .map-first-modal-head > div b { font-size: 13px; }
  .map-first-modal-head > div small { display: none; }
  .map-first-close {
    min-width: 56px;
    min-height: 36px !important;
  }
  .map-first-modal-body {
    height: calc(var(--app-vh,100dvh) - 44px - env(safe-area-inset-top));
    max-height: none !important;
    padding: 0 0 calc(12px + env(safe-area-inset-bottom)) !important;
  }

  /* 人物相関図：最初の1画面をマップ専用にする */
  .relationship-map-body { gap: 8px; }
  .relationship-primary-map {
    display: flex !important;
    flex-direction: column;
    min-height: calc(var(--app-vh,100dvh) - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height: calc(var(--app-vh,100dvh) - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin: 0;
    padding: 6px !important;
    border-width: 0 0 1px !important;
    border-radius: 0 !important;
    overflow: hidden;
  }
  .relationship-primary-map .relationship-preview-head {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 1px 2px 5px;
  }
  .relationship-primary-map .relationship-preview-head small { display: none; }
  .relationship-primary-map .relationship-preview-status {
    flex: 0 0 auto;
    min-height: 30px;
    padding-inline: 1px;
  }
  .relationship-primary-map .relationship-preview-scroll {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto;
  }
  .relationship-editor {
    margin: 0 6px 8px;
    padding: 7px !important;
  }
  .relationship-editor-guide {
    grid-template-columns: 1fr;
  }
  .relationship-editor-guide .analysis-primary-btn {
    width: 100%;
    min-height: 42px;
  }

  /* 構造マップ：最初のカード見出しを省き、マップを画面上端へ */
  .structure-map-list {
    gap: 8px;
    padding: 0 0 10px !important;
  }
  .structure-map-card-primary {
    border-width: 0 0 1px;
    border-radius: 0;
  }
  .structure-map-card-primary > .structure-map-card-head {
    display: none !important;
  }
  .structure-map-card-primary > .structure-map-card-body {
    gap: 8px;
    padding: 0 6px 8px !important;
  }
  .structure-map-card-primary .structure-map-preview-panel {
    display: flex;
    flex-direction: column;
    min-height: calc(var(--app-vh,100dvh) - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height: calc(var(--app-vh,100dvh) - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding: 6px !important;
    border-width: 0 0 1px;
    border-radius: 0;
    overflow: hidden;
  }
  .structure-map-card-primary .structure-map-note-preview {
    flex: 0 0 auto;
    max-height: 40px;
    overflow: auto;
    margin: 0;
  }
  .structure-map-card-primary .structure-map-preview {
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: none !important;
    overflow: auto;
  }
  .structure-map-primary-actions {
    grid-template-columns: minmax(0,1fr) auto;
    margin: 0 6px;
  }
  .structure-map-primary-actions .analysis-primary-btn { min-height: 42px; }
  .structure-map-card-primary .structure-map-simple-editor {
    margin: 0 6px 8px;
  }
}

@media (max-width:430px) {
  .relationship-primary-map,
  .structure-map-card-primary .structure-map-preview-panel {
    min-height: calc(var(--app-vh,100dvh) - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height: calc(var(--app-vh,100dvh) - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
  .structure-map-primary-actions { grid-template-columns: 1fr auto; }
}

/* v48b: streamlined plot workspace */
.plot-add-panel { margin:0 0 9px; border-radius:12px; }
.plot-add-panel > .plot-template-summary {
  min-height:42px; padding:8px 10px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--panel)),var(--panel));
}
.plot-add-primary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.plot-add-primary .icon-btn { min-width:0; min-height:44px; margin:0; display:grid; gap:1px; align-content:center; text-align:left; }
.plot-add-primary b { font-size:11.5px; }
.plot-add-primary small { color:var(--sub); font-size:9.5px; line-height:1.3; }
.plot-template-group {
  display:block; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--panel);
}
.plot-template-group > summary {
  min-height:38px; padding:7px 9px; display:flex; align-items:center; justify-content:space-between; gap:8px;
  list-style:none; cursor:pointer; user-select:none; background:var(--soft);
}
.plot-template-group > summary::-webkit-details-marker { display:none; }
.plot-template-group > summary::after { content:"＋"; flex:0 0 auto; color:var(--accent); font-weight:850; }
.plot-template-group[open] > summary { border-bottom:1px solid var(--line); }
.plot-template-group[open] > summary::after { content:"−"; }
.plot-template-group > summary span { min-width:0; display:grid; gap:1px; }
.plot-template-group > summary b { font-size:11px; }
.plot-template-group > summary small { color:var(--sub); font-size:9.5px; line-height:1.25; }
.plot-template-group > .plot-template-grid { padding:7px; }
.plot-add-method > summary span { min-width:0; display:grid; gap:1px; }
.plot-add-method > summary b { font-size:11px; }
.plot-add-method > summary small { color:var(--sub); font-size:9.5px; font-weight:500; line-height:1.3; }

.plot-panel-head { margin-bottom:6px; }
.plot-axis-list { display:grid; gap:9px; }
.plot-axis-card.is-empty { border-style:dashed; box-shadow:none; }
.plot-axis-card.is-empty .plot-axis-badge { opacity:.78; }
.plot-axis-head {
  grid-template-columns:minmax(0,1fr) auto !important; align-items:end; gap:8px;
}
.plot-axis-heading { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:end; gap:7px; }
.plot-axis-heading .plot-axis-title-field { min-width:0; grid-column:auto; }
.plot-axis-actions { display:flex; align-items:end; justify-content:flex-end; gap:5px; }
.plot-axis-advanced { margin-top:7px; border-top:1px solid var(--line); }
.plot-axis-advanced > summary {
  width:max-content; min-height:28px; padding:6px 2px 0; list-style:none; cursor:pointer;
  color:var(--sub); font-size:10px; font-weight:750;
}
.plot-axis-advanced > summary::-webkit-details-marker { display:none; }
.plot-axis-advanced > summary::before { content:"＋ "; color:var(--accent); }
.plot-axis-advanced[open] > summary::before { content:"− "; }
.plot-axis-advanced-body { display:flex; align-items:end; gap:8px; padding-top:6px; }
.plot-axis-advanced-body .plot-axis-code-inline { width:82px; }
.plot-axis-advanced-body .plot-axis-color-wrap { width:42px; }
.plot-axis-advanced-body .plot-axis-color { width:42px !important; min-width:42px !important; }

@media (max-width:679px) {
  .plot-add-primary { grid-template-columns:1fr 1fr; gap:5px; }
  .plot-add-primary .icon-btn { min-height:40px; padding:6px 8px; }
  .plot-template-group > .plot-template-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:6px; gap:5px; }
  .plot-axis-heading { grid-template-columns:auto minmax(0,1fr); gap:5px; }
  .plot-axis-actions { grid-column:1 / -1; display:flex; justify-content:flex-end; width:100%; }
  .plot-axis-delete { min-height:32px !important; }
  .plot-axis-advanced-body { padding-bottom:1px; }
}

@media (max-width:390px) {
  .plot-add-panel > .plot-template-summary small { display:block; }
  .plot-add-primary b { font-size:10.5px; }
  .plot-add-primary small { font-size:9px; }
  .plot-axis-head { gap:5px; }
  .plot-axis-heading { grid-template-columns:1fr; }
  .plot-axis-heading .plot-axis-badge { width:max-content; }
  .plot-axis-actions { gap:4px; }
}


/* v48h: 作品別テンプレを作品単位へ再編・追加前プレビュー */
.plot-template-library { display:grid; gap:8px; }
.plot-template-collections { display:grid; gap:6px; padding:7px; }
.plot-template-collection { min-width:0; border:1px solid var(--line); border-radius:8px; background:var(--panel2); overflow:hidden; }
.plot-template-collection > summary { min-height:34px; padding:6px 8px; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:6px; cursor:pointer; }
.plot-template-collection > summary::-webkit-details-marker { display:none; }
.plot-template-collection > summary::after { content:"＋"; color:var(--accent); font-weight:850; }
.plot-template-collection[open] > summary { border-bottom:1px solid var(--line); }
.plot-template-collection[open] > summary::after { content:"−"; }
.plot-template-collection > summary span { min-width:0; display:flex; align-items:baseline; gap:6px; }
.plot-template-collection > summary b { min-width:0; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow-wrap:anywhere; font-size:10.5px; line-height:1.3; }
.plot-template-collection > summary small { flex:0 0 auto; color:var(--sub); font-size:9px; }
.plot-template-collection > .plot-template-grid { padding:6px; }
.plot-template-group.is-pokemon > summary,
.plot-template-group.is-mario > summary,
.plot-template-group.is-animal-crossing > summary,
.plot-template-group.is-game-structure > summary,
.plot-template-group.is-sport-structure > summary { background:color-mix(in srgb,var(--accent) 6%,var(--panel)); }
.plot-template-group.is-pokemon > summary b::before,
.plot-template-group.is-mario > summary b::before,
.plot-template-group.is-animal-crossing > summary b::before,
.plot-template-group.is-game-structure > summary b::before,
.plot-template-group.is-sport-structure > summary b::before { content:"別枠｜"; color:var(--accent); font-size:9px; }
.plot-template-btn { cursor:pointer; }

.plot-template-preview-box { width:min(660px,100%); max-height:min(86vh,760px); overflow:auto; }
.plot-template-preview-head { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-bottom:7px; }
.plot-template-preview-category { padding:3px 7px; border-radius:999px; background:var(--soft); color:var(--accent); font-size:10px; font-weight:800; }
.plot-template-preview-source { color:var(--sub); font-size:10.5px; }
.plot-template-preview-label { margin-bottom:9px; }
.plot-template-preview-axis { display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:9px; align-items:center; padding:9px; border:1px solid var(--line); border-radius:10px; background:var(--panel2); }
.plot-template-preview-color { width:8px; align-self:stretch; min-height:42px; border-radius:999px; background:var(--preview-color,var(--accent)); }
.plot-template-preview-axis div { min-width:0; display:grid; gap:2px; }
.plot-template-preview-axis small { color:var(--sub); font-size:9.5px; }
.plot-template-preview-axis b { overflow-wrap:anywhere; font-size:13px; }
.plot-template-preview-code { color:var(--sub); font-size:10px; font-weight:750; }
.plot-template-preview-section { display:grid; gap:5px; margin-top:9px; padding:10px; border:1px solid var(--line); border-radius:10px; }
.plot-template-preview-section > b { font-size:11px; color:var(--accent); }
.plot-template-preview-section > div { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; line-height:1.65; }
.plot-template-preview-flow { padding-left:2px; }
.plot-template-preview-actions { position:sticky; bottom:0; margin-top:10px; padding-top:9px; background:var(--panel); }

@media (max-width:679px) {
  .plot-template-collections { padding:6px; gap:5px; }
  .plot-template-collection > .plot-template-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:5px; gap:4px; }
  .plot-template-preview-box { max-height:92vh; }
  .plot-template-preview-actions { display:grid; grid-template-columns:1fr auto auto; }
}
@media (max-width:390px) {
  .plot-template-preview-axis { grid-template-columns:8px minmax(0,1fr); }
  .plot-template-preview-code { grid-column:2; }
  .plot-template-preview-actions { grid-template-columns:1fr 1fr; }
  .plot-template-preview-actions .lock-btn { grid-column:1 / -1; }
}


/* v48k: series deep-dive tabs, per-work template deletion */
.plot-template-collection>summary{display:flex;align-items:center;justify-content:space-between;gap:8px}
.plot-template-collection>summary>span{min-width:0;display:grid;gap:1px}
.plot-template-collection-delete{flex:0 0 auto;min-height:28px;padding:4px 8px;border:1px solid color-mix(in srgb,var(--danger) 34%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--danger) 6%,var(--panel));color:var(--danger);font-size:9px;font-weight:800;cursor:pointer}
.plot-template-collection-delete:hover{background:color-mix(in srgb,var(--danger) 13%,var(--panel))}
.plot-deep-library{display:grid;gap:8px;min-width:0}
.plot-deep-tabs{display:flex;gap:5px;overflow-x:auto;padding:1px 1px 5px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.plot-deep-tabs button{flex:0 0 auto;display:grid;gap:1px;min-width:104px;min-height:43px;padding:6px 9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--sub);text-align:left;cursor:pointer}
.plot-deep-tabs button b{color:inherit;font-size:10.5px}.plot-deep-tabs button small{font-size:8px}
.plot-deep-tabs button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
.plot-deep-note{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:9px;background:var(--soft)}
.plot-deep-note b{font-size:10.5px}.plot-deep-note span{color:var(--sub);font-size:8.5px;text-align:right}
@media(max-width:679px){.plot-template-collection-delete{min-height:26px;padding:3px 6px;font-size:8px}.plot-deep-tabs button{min-width:94px;min-height:40px;padding:5px 7px}.plot-deep-note{align-items:flex-start;flex-direction:column;gap:2px}.plot-deep-note span{text-align:left}}

/* v48l: game / sport independent tabs */
.plot-independent-library{display:grid;gap:7px}
.plot-independent-library>.plot-template-collections{padding:0}
.is-game-structure .plot-deep-tabs button,.is-sport-structure .plot-deep-tabs button{min-width:112px}
@media(max-width:679px){.is-game-structure .plot-deep-tabs button,.is-sport-structure .plot-deep-tabs button{min-width:96px}}


/* v48p: 構造マップ・人物相関図の新規作成と開閉操作を安定化 */
.structure-map-card-head::after{content:none!important}
.structure-map-card-head{width:100%;cursor:pointer;touch-action:manipulation;user-select:none}
.structure-map-card-toggle-label{flex:0 0 auto;min-width:52px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--accent);font-size:9px;font-weight:850;text-align:center}
.structure-map-modal-head .structure-map-modal-actions,.relationship-map-head .relationship-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.relationship-view-controls>summary,.relationship-links-panel>summary,.relationship-people-panel>summary,.relationship-meta-panel>summary,.structure-map-raw-editor>summary{touch-action:manipulation;user-select:none}
.relationship-view-controls>summary::after,.relationship-links-panel>summary::after,.relationship-people-panel>summary::after,.relationship-meta-panel>summary::after,.structure-map-raw-editor>summary::after{content:"開く";margin-left:auto;color:var(--accent);font-size:8.5px;font-weight:850}
.relationship-view-controls[open]>summary::after,.relationship-links-panel[open]>summary::after,.relationship-people-panel[open]>summary::after,.relationship-meta-panel[open]>summary::after,.structure-map-raw-editor[open]>summary::after{content:"閉じる"}
.relationship-view-controls>summary,.relationship-links-panel>summary,.relationship-people-panel>summary,.relationship-meta-panel>summary,.structure-map-raw-editor>summary{display:flex;align-items:center;justify-content:space-between;gap:8px}
.relationship-back-to-map{justify-self:stretch;min-height:40px}
@media(max-width:760px){
  .structure-map-card-primary>.structure-map-card-head{display:flex!important;position:sticky;top:0;z-index:4;align-items:center;padding:7px 8px!important;border-bottom:1px solid var(--line)!important;background:color-mix(in srgb,var(--panel) 96%,transparent);backdrop-filter:blur(10px)}
  .structure-map-card-primary .structure-map-preview-panel{min-height:calc(var(--app-vh,100dvh) - 94px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(var(--app-vh,100dvh) - 94px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  .structure-map-modal-head .structure-map-modal-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;width:100%}
  .structure-map-modal-head .structure-map-modal-actions .btn-mini{min-width:0;min-height:38px}
  .relationship-map-head .relationship-head-actions{display:grid;grid-template-columns:1fr auto}
  .relationship-map-head .relationship-head-actions .btn-mini{min-height:36px}
}
@media(max-width:430px){
  .structure-map-modal-head .structure-map-modal-actions{grid-template-columns:1fr 1fr}
  .structure-map-modal-head .structure-map-modal-actions .map-first-close{grid-column:1/-1}
  .structure-map-card-toggle-label{min-width:48px;padding-inline:7px}
}

/* v48p follow-up: 可変ヘッダー高と全カードのスマホ開閉 */
@media(max-width:760px){
  .map-first-modal-body{height:auto!important;min-height:0!important;flex:1 1 auto!important}
  .structure-map-card>.structure-map-card-head{display:flex!important;align-items:center;justify-content:space-between}
  .relationship-map-head .relationship-head-actions{grid-column:auto;display:flex;flex-wrap:nowrap;width:auto}
}
.relationship-tree-unconnected>details>summary{touch-action:manipulation;user-select:none}
.relationship-tree-unconnected>details>summary::after{content:"開く";color:var(--accent);font-size:8.5px;font-weight:850}
.relationship-tree-unconnected>details[open]>summary::after{content:"閉じる"}

/* v48p follow-up 2: 430px以下でも「すべて開く／閉じる」を隠さない */
@media(max-width:430px){
  .structure-map-modal-head .structure-map-modal-actions [data-structure-toggle-all]{display:inline-flex!important;align-items:center;justify-content:center}
}

/* v48p follow-up 3: 人物相関図の絞り込みをタップ可能な明示ボタンへ */
.relationship-connected-toggle{appearance:none;width:100%;color:var(--ink);cursor:pointer;text-align:left}
.relationship-connected-toggle .relationship-toggle-check{display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--accent);font-size:12px;font-weight:900}
.relationship-connected-toggle[aria-pressed="true"]{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--panel))}
.relationship-connected-toggle[aria-pressed="true"] .relationship-toggle-check{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}

/* v48t: 大規模テンプレは開いた分類だけ描画 */
.plot-template-lazy-note{padding:10px 12px;color:var(--muted,#777);font-size:12px}


/* v48u: iPad navigator zoom regression guard.
   IMPORTANT: app width must follow the layout viewport, never visualViewport.width. */
html.ipad-device .app { width:100%!important; max-width:100%!important; }
@media (min-width:761px) and (max-width:1100px) {
  html.ipad-device .app { grid-template-columns:minmax(320px,44%) minmax(0,1fr)!important; }
  html.ipad-device .navigator-dock { width:100%!important; min-width:0!important; max-width:none!important; resize:none!important; }
  html.ipad-device .main { width:100%!important; min-width:0!important; }
}
@media (min-width:1101px) and (max-width:1366px) {
  html.ipad-device .navigator-dock { width:clamp(430px,42vw,560px); min-width:0; max-width:560px; resize:none; }
}
