.campaign-home { max-width: 1160px; margin: 0 auto; min-width: 0; container: campaign-home / inline-size; }
.campaign-home h1 { font-size: clamp(1.25rem,2.1vw,1.9rem); text-transform: none; letter-spacing: 0; margin: 0; overflow-wrap: anywhere; }
.campaign-home h2 { font-size: 1.1rem; text-transform: none; letter-spacing: 0; }
.campaign-home p { margin: .4rem 0; }
.campaign-home .ch-prose { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
.ch-overview { border-top: 3px solid var(--yellow); border-radius: .45rem; padding: 1rem; margin-bottom: .8rem; background: linear-gradient(115deg,#102a2d,#21131e); }
.ch-overview summary { color: var(--cyan); cursor: pointer; padding: .5rem 0; }
.ch-setup { border-top: 3px solid var(--yellow); background: linear-gradient(125deg,#13252a,#1c1119); margin-bottom: .9rem; }
.campaign-home form { min-width: 0; }
.campaign-home input,.campaign-home textarea,.campaign-home select { width: 100%; min-width: 0; }
.campaign-home textarea { min-height: 7rem; resize: vertical; line-height: 1.5; }
.campaign-home details > summary { cursor: pointer; }
.campaign-home details:not(.ch-recap) > summary { padding: .5rem 0; }
.ch-dungeon { border: 1px solid #326069; border-radius: .45rem; padding: .65rem .8rem; background: #0c2025; margin-bottom: 1rem; }
.ch-dungeon > form { display: grid; grid-template-columns: auto minmax(7rem,1fr) 6rem minmax(9rem,1fr) auto; gap: .6rem; align-items: end; }
.ch-dungeon .form-error { grid-column: 1/-1; margin: 0; min-height: 0; }
.ch-floor { align-self: center; padding-right: .5rem; color: var(--cyan); }
.ch-floor strong { font-size: 1.35rem; }
.ch-dungeon label { font-size: .78rem; }
.ch-dungeon input,.ch-dungeon select { min-height: 2.6rem; padding: .45rem; }
.ch-readonly { display: flex; gap: .6rem 1.5rem; flex-wrap: wrap; font-size: .88rem; }
.ch-readonly strong { display: inline-block; margin-left: .4rem; color: var(--cyan); }
.ch-advanced { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1rem; }
.ch-advanced form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.ch-advanced label { flex: 1 1 7rem; }
.ch-advanced small { flex: 1 1 100%; color: var(--muted); }
.ch-session { border: 1px solid #6a3a53; border-top: 3px solid var(--pink); border-radius: .45rem; background: linear-gradient(120deg,#281322,#121f27); padding: 1rem; margin-bottom: 1rem; }
.ch-session .section-title p { font-size: .85rem; color: var(--muted); }
.ch-start { display: grid; grid-template-columns: minmax(10rem,1fr) minmax(9rem,.6fr) auto; gap: .75rem; align-items: end; }
.ch-start .form-error { grid-column: 1/-1; }
.ch-session [name=note] { min-height: 5rem; }
.ch-guide { font-size: .86rem; background: #101b21; border: 1px solid #2e4149; border-radius: .4rem; padding: .65rem .85rem; margin-bottom: 1rem; }
.ch-guide summary { color: var(--cyan); }
.ch-recap { border: 1px solid #344c56; border-radius: .4rem; background: #101b20; margin-bottom: .6rem; }
.ch-recap > summary { display: flex; align-items: center; gap: .8rem; padding: .8rem; list-style: none; min-height: 3.5rem; }
.ch-recap > summary::-webkit-details-marker { display: none; }
.ch-recap time { color: var(--cyan); flex: 0 0 7.5rem; font-size: .82rem; }
.ch-recap > summary strong { flex: 1; overflow-wrap: anywhere; }
.ch-recap > summary > span { color: var(--yellow); }
.ch-pending { border: 1px solid #9c6a24; color: var(--yellow); padding: .2rem .4rem; border-radius: .3rem; font-size: .7rem; }
.ch-session-body { padding: .9rem; border-top: 1px solid #344c56; }
.ch-recap-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.ch-recap-grid > label:only-child { grid-column: 1/-1; }
.ch-recap-grid > label:nth-child(2) { color: #ff9fc5; }
.ch-events { font-size: .86rem; margin-top: .6rem; }
.ch-events ol { padding-left: 1.2rem; }
.ch-events li { padding: .35rem 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ch-events small { display: block; color: var(--muted); font-size: .72rem; }
.ch-session-options { margin-top: .8rem; border-top: 1px solid var(--line); }
.ch-session-options form { padding: .5rem 0; }
.ch-empty { padding: 1rem; color: var(--muted); border: 1px dashed var(--line); border-radius: .4rem; }
.campaign-home [data-home-updates]:empty { display: none; }
.campaign-home [data-home-updates] { color: var(--cyan); }
.context-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .8rem; }
.context-nav a { padding: .45rem .65rem; border: 1px solid var(--line); border-radius: .35rem; font-size: .8rem; }
.context-nav [aria-current=page] { color: #050505; background: var(--yellow); border-color: var(--yellow); }
.sidebar-nav-group { display: flex; flex-direction: column; gap: .15rem; }
.sidebar-nav-group + .sidebar-nav-group { margin-top: .65rem; }
.sidebar-group-label { color: var(--cyan); font-size: .65rem; letter-spacing: .09em; padding: .3rem .5rem; font-weight: 800; }
@media(min-width:761px){.sidebar-collapsed .sidebar-group-label { display: none; }.sidebar-collapsed .sidebar-nav-group + .sidebar-nav-group { border-top: 1px solid var(--line); margin-top: .4rem; padding-top: .4rem; }}
@media(max-width:950px){.ch-dungeon > form { grid-template-columns: auto 1fr 6rem; }.ch-dungeon > form > label:nth-of-type(3) { grid-column: 2; }.ch-recap-grid { grid-template-columns: 1fr; }}
@media(max-width:600px){
 .campaign-home textarea { font-size: 16px; min-height: 7rem; }
 .campaign-home :is(button,a.route-link) { min-height: 44px; }
 .ch-dungeon > form { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
 .ch-dungeon > form .ch-floor { grid-column: 1/-1; }
 .ch-dungeon > form > label:nth-of-type(3) { grid-column: 1; }
 .ch-dungeon > form > button { align-self: end; }
 .ch-start,.ch-advanced { grid-template-columns: 1fr; }
 .ch-recap > summary { gap: .5rem; padding: .65rem; flex-wrap: wrap; }
 .ch-recap time { flex-basis: 100%; }
 .ch-session,.ch-session-body,.ch-setup { padding: .8rem; }
 .ch-session .section-title { align-items: start; flex-wrap: wrap; }
}

.ch-events ol { max-height: 16rem; overflow-y: auto; overscroll-behavior: contain; }
.ch-private-label { color: #ff9fc5; font-size: .7rem; border: 1px solid #75405b; border-radius: .3rem; padding: .2rem .4rem; }
.ch-recap > summary strong a { color: var(--ink); text-decoration: none; }
.ch-recap > summary strong a:hover { text-decoration: underline; }
@container campaign-home (max-width:650px) {
 .ch-dungeon > form { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
 .ch-dungeon > form .ch-floor { grid-column: 1/-1; }
 .ch-dungeon > form > label:nth-of-type(3) { grid-column: 1; }
 .ch-start,.ch-advanced,.ch-recap-grid { grid-template-columns: minmax(0,1fr); }
 .ch-recap > summary { flex-wrap: wrap; }
 .ch-recap time { flex-basis: 100%; }
}
