@media(max-width:1439px){
  :root{--detail-w:0px}
  .topbar{grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr)}
  .workspace{grid-template-columns:var(--step-w) minmax(0,1fr)}
  .detail-pane{display:none}
  .actionbar{grid-template-columns:var(--step-w) minmax(0,1fr)}
  .actionbar-right{display:none}
  .actionbar-center{border-right:0}
  .mobile-character-button{display:inline-flex}
  .drawer-detail{position:fixed;inset:var(--topbar-h) 0 var(--actionbar-h) auto;z-index:60;display:block;width:min(380px,calc(100vw - 40px));padding:28px 24px;border-left:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow);overflow:auto}
  .drawer-detail .drawer-close{display:grid;position:absolute;right:14px;top:14px}
}
@media(max-width:767px){
  :root{--topbar-h:72px;--actionbar-h:64px;--step-w:0px}
  body{background-position:center top;background-attachment:scroll;background-image:linear-gradient(rgba(5,4,3,.72),rgba(5,4,3,.9)),url("../images/fantasy-forest.webp")}
  .topbar{grid-template-columns:minmax(0,1fr) auto;height:var(--topbar-h);padding:0 14px}
  .brand-mark{display:none}.brand-copy strong{font-size:16px}.brand-copy small{font-size:12px}
  .build-status{display:none}.top-actions .ghost-button{display:none}.top-actions{gap:3px}
  .workspace{display:block;inset:var(--topbar-h) 0 var(--actionbar-h)}
  .step-rail{display:none}
  .decision-pane{height:100%;padding:18px 16px 12px;overflow:hidden;background:rgba(11,9,7,.73)}
  .view-heading{align-items:start;padding-bottom:13px}.view-heading h1{font-size:24px}.view-heading p{font-size:14px}.view-progress{font-size:13px}
  .decision-content{padding-right:0}
  .actionbar{display:grid;grid-template-columns:1fr;height:var(--actionbar-h)}
  .actionbar-left,.actionbar-right{display:none}.actionbar-center{padding:0 12px}
  .action-hint{display:none}.actionbar-center .primary-button,.actionbar-center .ghost-button{min-width:104px;padding:9px 12px}
  .mobile-step-trigger,.mobile-character-button{display:inline-flex}
  .home-shell{padding:16px}.home-panel{padding:28px 22px}.home-panel h1{font-size:36px}.home-panel>p{font-size:15px}.resume-card{grid-template-columns:1fr}.home-actions{display:grid}.home-actions>*{width:100%}
  .level-control{grid-template-columns:48px minmax(100px,1fr) 48px;gap:14px}.level-number{font-size:86px}.level-track{grid-template-columns:repeat(12,48px);overflow-x:auto;justify-content:start;margin-top:28px}.impact-line{font-size:14px}
  .route-track{grid-template-columns:repeat(12,62px)}.route-editor-card{padding:20px 0}.route-editor-card h2{font-size:23px}
  .spell-toolbar{grid-template-columns:1fr}.filter-tabs{order:2}.spell-item{grid-template-columns:46px minmax(0,1fr);min-height:112px;padding:10px 6px}.spell-icon{width:44px;height:44px}.spell-copy strong{font-size:15px}.spell-copy p{font-size:13px}.spell-state{font-size:9px}
  .mobile-sheet{position:fixed;inset:auto 0 0;z-index:95;display:block;max-height:min(82dvh,720px);padding:10px 20px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--line-strong);border-radius:18px 18px 0 0;background:var(--surface-strong);box-shadow:0 -20px 60px rgba(0,0,0,.48);overflow:auto;transform:translateY(105%);transition:transform .22s var(--ease)}
  .mobile-sheet.open{transform:none}.sheet-handle{width:44px;height:4px;margin:0 auto 18px;border-radius:99px;background:rgba(255,255,255,.24)}
  .sheet-backdrop{display:block;padding:0}.sheet-backdrop.hidden{display:none}
  .drawer-detail{display:none!important}
  .modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:90dvh;border-radius:18px 18px 0 0;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  #toast-root{left:12px;right:12px;bottom:76px}.toast{max-width:none}
}
@media(max-width:1200px){.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-grid{grid-template-columns:1fr}.review-section,.issue-section{grid-column:auto}.score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.issue-list{grid-template-columns:1fr}.character-identity{grid-template-columns:90px minmax(0,1fr)}.character-combat{grid-column:1/-1}.library-shell{grid-template-columns:150px minmax(0,1fr)}.library-detail{display:none}}
@media(max-width:767px){
  .top-actions .mobile-step-trigger{display:inline-flex}.mobile-character-inline{display:inline-flex}.actionbar-center{gap:4px}.actionbar-center .mobile-character-inline{min-width:76px}.actionbar-center .primary-button,.actionbar-center .ghost-button{min-width:88px}
  .node-stage-tabs{margin-bottom:12px}.node-stage{flex-basis:180px;grid-template-columns:26px minmax(110px,1fr);min-height:54px}.option-grid,.progression-options{grid-template-columns:1fr}.option-card{min-height:70px;padding:10px}.two-column-fields{grid-template-columns:1fr}
  .point-buy-line{grid-template-columns:auto auto;gap:8px}.point-buy-line .progress-track{grid-column:1/-1}.ability-row{grid-template-columns:minmax(84px,1fr) 146px 70px;gap:8px;min-height:66px}.ability-label strong{font-size:16px}.ability-adjust{grid-template-columns:40px 1fr 40px}.ability-adjust .icon-button{width:40px;height:40px}.ability-final b{font-size:18px}.creation-bonus{grid-template-columns:1fr;gap:12px}.creation-bonus>div:first-child{display:none}
  .skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.skill-option{grid-template-columns:36px minmax(0,1fr) auto;min-height:64px;padding:8px}.skill-glyph{width:34px;height:34px}.skill-option strong{font-size:14px}
  .spell-counts{gap:5px}.spell-counts span{font-size:11px}.spell-detail-image{width:64px;height:64px;flex-basis:64px}
  .review-grid{display:block}.review-grid>*{margin-bottom:10px}.review-hero{padding:16px}.review-hero h2{font-size:25px}.combat-strip{grid-template-columns:repeat(4,1fr);gap:6px}.combat-strip b{font-size:19px}.score-grid{grid-template-columns:repeat(3,1fr)}.review-section{padding:14px}.summary-row{grid-template-columns:72px minmax(0,1fr)}.review-actions{display:grid;grid-template-columns:1fr}.review-actions button{width:100%}
  .character-topbar,.library-topbar{grid-template-columns:auto minmax(0,1fr) auto;padding:0 10px}.character-topbar .secondary-button{padding:8px 10px}.character-content{width:calc(100% - 24px);padding-top:18px}.character-identity{grid-template-columns:70px minmax(0,1fr);gap:12px;padding:16px 0}.character-level{font-size:52px}.character-identity h1{font-size:25px}.character-combat{grid-template-columns:repeat(4,1fr);gap:4px}.sheet-columns,.spell-sheet-groups{grid-template-columns:1fr}.sheet-skill-list{grid-template-columns:1fr}.score-grid.large{grid-template-columns:repeat(3,1fr)}
  .library-shell{display:block;height:calc(100dvh - 64px)}.library-nav{display:flex;gap:5px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.library-nav button{flex:0 0 auto;width:auto;white-space:nowrap}.library-list-pane{height:calc(100% - 62px);padding:14px 16px}.library-heading{display:grid}.library-heading .search-input{max-width:none}.library-list{height:calc(100% - 94px)}.library-item{min-height:70px}.tool-grid{grid-template-columns:1fr}
}
@media(max-width:390px){.skill-grid{grid-template-columns:1fr}.ability-row{grid-template-columns:82px 138px 58px}.combat-strip{grid-template-columns:repeat(2,1fr)}.character-combat{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px) and (min-width:768px){.class-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.class-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.class-picker-option{min-height:58px;padding:8px 28px 8px 10px}.class-picker-option strong{font-size:14px}.class-picker-option small{font-size:11px}}
@media(max-width:390px){.class-picker-grid{grid-template-columns:1fr}}

@media(max-width:1180px){.spell-list{grid-template-columns:1fr}.ability-workspace{grid-template-columns:1fr}.ability-impact-inline{position:static;border-left:0;border-top:1px solid var(--line);padding:18px 4px}}
@media(max-width:767px){.spell-list{grid-template-columns:1fr}.ability-impact-inline{display:block}.live-selection-group{display:none}}

/* M6 tablet/mobile detail drawer */
@media(max-width:1439px){
  .responsive-detail .detail-pane-layout{height:auto;max-height:calc(100dvh - 48px)}
  .responsive-detail .current-option-detail{max-height:56dvh}
  .responsive-detail .full-build-content{max-height:42dvh}
}
@media(max-width:767px){
  .compact-build-summary{padding:14px 16px 12px}
  .compact-combat{grid-template-columns:repeat(4,minmax(58px,1fr));overflow-x:auto}
  .current-option-detail{padding:18px 16px 24px}
  .current-option-detail .detail-divider{top:-18px;margin:-18px -16px 16px;padding:16px 16px 10px}
  .full-build-disclosure>summary{padding:0 16px}
  .full-build-content{padding:16px}
}


/* M7 responsive decision inspector */
@media(max-width:1100px) and (min-width:768px){
  .decision-pane{padding:20px 18px 16px}
  .decision-stage.with-inspector{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(220px,36dvh);gap:12px}
  .decision-inspector{border-left:1px solid var(--line);box-shadow:inset 0 3px rgba(223,189,114,.10)}
}
@media(max-width:767px){
  .decision-stage.with-inspector{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}
  .decision-inspector{display:none}
}

/* M8 */
@media(max-width:767px){
  .prepared-strip{align-items:flex-start;flex-direction:column;gap:6px}
  .prepared-icon-row{width:100%}
}

/* M10 iPhone-first responsive system */
@media(max-width:767px){
  :root{--topbar-h:calc(58px + env(safe-area-inset-top));--actionbar-h:calc(62px + env(safe-area-inset-bottom))}
  html,body{height:100%;min-height:100%;overscroll-behavior:none}
  body{min-height:var(--app-height,100dvh);background-attachment:scroll;background-position:center top}
  .topbar{height:var(--topbar-h);grid-template-columns:42px minmax(0,1fr) auto;gap:8px;padding:env(safe-area-inset-top) 10px 0;background:rgba(8,7,5,.92);backdrop-filter:blur(8px)}
  .brand{display:grid;place-items:center}.brand-mark{display:grid;width:32px;height:32px;flex-basis:32px}.brand-copy{display:none}
  .build-status{display:none}.mobile-build-status{display:grid;gap:0;min-width:0;padding:4px 8px;border:0;background:transparent;text-align:left}.mobile-build-status span{color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.08em}.mobile-build-status b,.mobile-build-status small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mobile-build-status b{font-size:15px}.mobile-build-status small{color:var(--muted);font-size:11px}
  .top-actions{display:flex}.top-actions .ghost-button{display:none}.top-actions [data-more]{display:inline-flex;min-width:44px;padding:8px;font-size:0}.top-actions [data-more]::after{content:"•••";font-size:15px;letter-spacing:2px}
  .workspace{inset:var(--topbar-h) 0 var(--actionbar-h);height:auto;display:block}
  .decision-pane{height:100%;padding:12px 12px 8px;background:rgba(11,9,7,.70);backdrop-filter:blur(6px)}
  .decision-view{gap:10px}.view-heading{min-height:0;align-items:start;padding-bottom:10px}.view-heading .kicker{font-size:10px}.view-heading h1{margin:2px 0;font-size:23px}.view-heading p{display:-webkit-box;overflow:hidden;font-size:13px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.view-progress{padding-top:5px;font-size:12px}
  .mobile-result-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:42px;margin-bottom:8px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(223,189,114,.055);text-align:left}.mobile-result-summary span{color:var(--gold);font-size:10px;font-weight:700}.mobile-result-summary b{overflow:hidden;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.mobile-result-summary i{color:var(--gold);font-size:18px;font-style:normal}
  .decision-stage{height:calc(100% - 50px)}.decision-primary{min-height:0}.decision-content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .actionbar{height:var(--actionbar-h);padding-bottom:env(safe-area-inset-bottom);background:rgba(8,7,5,.95);backdrop-filter:blur(8px)}.actionbar-center{height:62px;padding:0 10px;gap:6px}.actionbar-center .primary-button,.actionbar-center .ghost-button{min-height:46px;min-width:84px;padding:8px 10px}.mobile-character-inline{display:inline-flex}
  .keyboard-open .actionbar{display:none}.keyboard-open .workspace{bottom:0}.keyboard-open .decision-pane{padding-bottom:8px}
  input,select,textarea,.search-input{font-size:16px!important}
  .spell-toolbar{position:sticky;top:0;z-index:4;padding:6px 0 8px;background:linear-gradient(180deg,rgba(12,10,8,.98),rgba(12,10,8,.9))}.spell-toolbar-right{gap:6px}.search-input{min-height:44px}.filter-tabs{padding-bottom:2px}.filter-tab{min-height:40px}
  .spell-layout{display:flex;flex-direction:column}.prepared-strip{max-height:54px;overflow:hidden}.prepared-icon-row{padding-bottom:4px}
  .mobile-sheet{max-height:88dvh;height:auto;padding:8px 16px calc(14px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow:hidden}.sheet-header{margin:0 -2px 4px}.sheet-scroll{max-height:calc(88dvh - 54px);padding:0 2px 10px}.sheet-handle{margin-top:2px}
  .modal{max-height:calc(92dvh - env(safe-area-inset-top));padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .computed-effect{padding:11px}.effect-part{padding:8px}.effect-part b{font-size:17px}.cast-level-field select{font-size:16px}
  .character-topbar{min-height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0}.character-content{padding-bottom:calc(40px + env(safe-area-inset-bottom))}.character-feature-groups{grid-template-columns:1fr}
}
@media(max-width:390px){
  .actionbar-center .primary-button,.actionbar-center .ghost-button{min-width:76px;padding-inline:8px;font-size:13px}
  .mobile-result-summary b{font-size:11px}.spell-counts span{padding:0 8px}.skill-grid{grid-template-columns:1fr}
}
@media(orientation:landscape) and (max-height:500px) and (min-width:568px) and (max-width:950px){
  :root{--topbar-h:48px;--actionbar-h:52px;--step-w:0px;--detail-w:0px}
  body{background-attachment:scroll}.topbar{height:48px;grid-template-columns:42px minmax(0,1fr) auto;padding:0 10px}.brand-copy{display:none}.brand-mark{display:grid;width:30px;height:30px}.build-status{display:none}.mobile-build-status{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center}.mobile-build-status span{grid-row:1/3}.mobile-build-status small{display:none}.top-actions [data-more]{display:inline-flex}.top-actions [data-character],.top-actions .mobile-step-trigger{display:none}
  .workspace{inset:48px 0 52px;display:block}.step-rail,.detail-pane{display:none}.decision-pane{height:100%;padding:8px 10px}.mobile-result-summary{display:none}
  .decision-stage.with-inspector{height:100%;grid-template-columns:minmax(0,1fr) minmax(280px,34%);grid-template-rows:minmax(0,1fr);gap:8px}.decision-inspector{display:grid}.decision-inspector-head{min-height:38px}.decision-inspector-body{padding:10px 12px}.decision-inspector-body .spell-description{font-size:13px}.decision-inspector-body .spell-detail-title{margin-bottom:8px}.decision-inspector-body .computed-effect{margin:8px 0;padding:8px}.decision-inspector-body .detail-list{margin-top:8px}.decision-inspector-body .detail-row{padding:6px 0}.decision-inspector-body .spell-actions{margin-top:8px}
  .view-heading{display:flex;min-height:42px;padding-bottom:6px}.view-heading h1{font-size:20px}.view-heading p{display:none}.decision-view{gap:6px}.spell-toolbar{grid-template-columns:minmax(180px,.6fr) minmax(300px,1.4fr);gap:8px}.spell-source-note{display:none}.spell-counts{min-height:26px;padding-bottom:3px}.prepared-strip{min-height:40px;padding:4px 0}.prepared-icon{width:32px;height:32px}.spell-item{min-height:112px}.spell-list{grid-template-columns:1fr}
  .actionbar{height:52px;grid-template-columns:1fr}.actionbar-center{height:52px;padding:0 10px}.mobile-character-inline{display:inline-flex}
}
