/* Combat is a bounded workspace. Page controls replace nested scroll regions. */
.astralis-cockpit #channel-combat{position:relative;display:flex;flex-direction:column;gap:5px;min-height:0;height:0;flex:1;padding:10px;overflow:hidden;scrollbar-gutter:auto}
#channel-combat .combat-target-overview{flex:none;grid-template-columns:76px minmax(0,1fr);gap:10px;padding:0 0 5px;align-items:start}
#channel-combat .combat-target-summary{display:block;min-width:0}
#channel-combat .combat-target-visual{width:76px;height:88px;grid-column:auto;grid-row:auto}
#channel-combat .combat-visual canvas{width:76px;height:76px}
#channel-combat .combat-visual{padding:0 0 12px}
.astralis-cockpit #channel-combat #combat-target-motion{min-height:17px;font-size:8px;padding:2px}
#channel-combat .combat-heading{flex-direction:row;align-items:center;gap:8px}
#channel-combat .combat-heading h2{font-size:20px;margin:1px 0}
#channel-combat .combat-heading .eyebrow{font-size:8px}
#channel-combat .combat-heading-actions{flex-wrap:nowrap}
#channel-combat .combat-heading-actions .combat-badge{font-size:9px;padding:2px 5px}
#channel-combat #combat-state{font-size:10px;line-height:1.3;margin:2px 0;grid-column:auto;grid-row:auto}
#channel-combat #combat-target-health{height:5px;margin:3px 0;grid-column:auto;grid-row:auto}
#channel-combat .combat-description{font-size:10px;line-height:1.3;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#channel-combat .combat-facts{display:flex;gap:3px;margin:2px 0}
#channel-combat .combat-facts .combat-badge{font-size:8px;padding:1px 4px}
#channel-combat .combat-toolbar{gap:4px;margin:4px 0 0;flex-wrap:nowrap}
.astralis-cockpit #channel-combat .combat-toolbar button{min-height:28px;font-size:10px;padding:4px 7px;white-space:nowrap}
#channel-combat #combat-expand{min-height:24px;font-size:9px;padding:3px 6px}
#channel-combat #combat-feedback{flex:none;min-height:14px;margin:0;font-size:10px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.combat-quick-actions{flex:none;display:grid;grid-template-columns:76px minmax(0,1fr);gap:4px 10px;align-items:center}
.combat-quick-actions .combat-subheading{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.combat-quick-actions .combat-subheading h4{font-size:13px}
.combat-quick-actions .combat-subheading h4 span{display:none}
#channel-combat .combat-quick-actions .combat-key-status{grid-column:2;margin:0;font-size:9px;line-height:1.1}
#channel-combat .combat-hotbar{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:0}
.astralis-cockpit #channel-combat .combat-slot{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:1fr auto;min-height:52px;height:52px;padding:4px;gap:1px 4px;align-items:center;text-align:left;overflow:hidden}
#channel-combat .combat-slot :is(.ability-art-icon,.item-icon,.combat-slot-symbol){grid-row:1/3;width:28px;height:28px;flex-basis:28px;line-height:28px;font-size:25px;margin:0}
#channel-combat .combat-slot strong{font-size:9px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:4px}
#channel-combat .combat-slot small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#channel-combat .combat-slot kbd{font-size:8px;top:0;right:0;padding:0 2px}
#channel-combat .combat-sections{display:flex;flex:none;padding:3px 0;gap:5px;border-bottom:1px solid #80643e}
.astralis-cockpit #channel-combat .combat-sections button{flex:0 1 auto;min-height:28px;padding:4px 10px;font-size:11px}
.astralis-cockpit #channel-combat .combat-sections button[aria-pressed="true"]{border-color:#efc374;background:#243340;color:#ffe3a4}
#channel-combat .combat-dashboard{flex:1;min-height:0;height:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);grid-template-areas:none;gap:8px}
#channel-combat .combat-pane{grid-area:auto!important;display:flex;flex-direction:column;gap:5px;padding:8px;min-height:0;overflow:hidden}
#channel-combat .combat-pane[hidden]{display:none!important}
#channel-combat .combat-section-heading{flex:none;gap:6px;margin:0}
#channel-combat .combat-section-heading h3{font-size:18px;line-height:1.15}
.astralis-cockpit #channel-combat .combat-section-heading button{min-height:27px;padding:4px 7px;font-size:9px}
#channel-combat .combat-search{flex:none;margin:0}
#channel-combat .combat-search input{min-height:30px!important;padding:5px 8px!important;font-size:11px}
#channel-combat .combat-list-heading{display:none}
#channel-combat .combat-action-grid{flex:1;min-height:0;max-height:none;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:64px;align-content:start;gap:6px;overflow:hidden;padding:0}
#channel-combat #combat-supplies{grid-template-columns:minmax(0,1fr);grid-auto-rows:72px}
#channel-combat .combat-action-card{padding:5px 6px;gap:2px 5px;align-content:start;overflow:hidden}
#channel-combat .combat-action-card>p{display:none}
#channel-combat .combat-use{flex-wrap:nowrap;min-height:40px;gap:7px}
#channel-combat .combat-use :is(.ability-art-icon,.item-icon){width:32px;height:32px;min-width:32px;flex:0 0 32px}
#channel-combat .combat-action-copy{min-width:0;flex:1}
#channel-combat .combat-action-copy strong{font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#channel-combat .combat-action-copy small{font-size:9px;line-height:1.2}
#channel-combat .combat-action-state{font-size:9px;max-width:88px}
#channel-combat .combat-supply-effect{font-size:9px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:34px}
#channel-combat .combat-panel-note{flex:none;font-size:9px!important;line-height:1.3;margin:0}
#channel-combat .combat-pagination{flex:none;display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:29px}
.astralis-cockpit #channel-combat .combat-pagination button{font-size:10px;min-height:28px;padding:4px 8px}
#channel-combat .combat-pagination span{font:10px/1.3 system-ui;color:#a8bed6;text-align:center}
#channel-combat .combat-party-scroll{flex:1;min-height:0;overflow:hidden}
#channel-combat .combat-party-table{display:block;width:100%;min-width:0;table-layout:fixed}
#channel-combat .combat-party-table thead{display:none}
#channel-combat .combat-party-table tbody{display:grid;gap:6px}
#channel-combat .combat-party-table tr{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:3px 7px;height:100px;padding:6px;border:1px solid #294960;box-sizing:border-box}
#channel-combat .combat-party-table td{min-width:0;padding:0;border:0;font-size:10px;overflow:hidden}
#channel-combat .combat-party-table td:first-child{grid-column:1/-1;min-width:0}
#channel-combat .combat-party-table td:first-child small{display:inline;margin-left:8px;font-size:9px}
#channel-combat .combat-party-table td:first-child button{width:auto;font-size:12px;min-height:24px}
#channel-combat .combat-party-table td:nth-child(2)::before{content:'Health';display:block;color:#9fb7d1;font-size:9px}
#channel-combat .combat-party-table td:nth-child(3)::before{content:'Mana';display:block;color:#9fb7d1;font-size:9px}
#channel-combat .combat-party-table td:nth-child(4)::before{content:'Status';display:block;color:#9fb7d1;font-size:9px}
#channel-combat .combat-party-table td:nth-child(5)::before{content:'Role · ';color:#9fb7d1;font-size:9px}
#channel-combat .combat-party-table td:nth-child(6){grid-column:2/-1}
#channel-combat .combat-party-table td:nth-child(6)::before{content:'Threat · ';color:#9fb7d1;font-size:9px}
#channel-combat .combat-party-status{white-space:nowrap;text-overflow:ellipsis}
#channel-combat .combat-status-chip{display:inline;margin:0 3px 0 0;font-size:9px}
#channel-combat .combat-status-chip .ability-art-icon{display:none}
#channel-combat .combat-party-footer{flex:none;flex-direction:row;align-items:center;gap:5px}
#channel-combat .combat-party-footer .hint{font-size:9px!important;margin:0;line-height:1.3}
#channel-combat #combat-party-summary{margin:0;font-size:10px;line-height:1.3;flex:none}
#channel-combat .combat-activity{display:none}
#channel-combat[data-combat-pane="activity"] .combat-activity{display:flex;grid-column:1/-1}
#channel-combat .combat-log{flex:1;height:auto;min-height:0;max-height:none;overflow:hidden;padding:7px;font-size:11px;line-height:1.45}
#channel-combat .combat-log p{display:block;height:56px;overflow:hidden;margin:0 0 6px;border-bottom:1px solid #243950}
#channel-combat .combat-log-time{float:left;margin-right:7px;font-size:9px;line-height:16px}
#channel-combat .combat-log-message{overflow-wrap:anywhere}
#channel-combat #combat-pane-shortcuts{margin:0}
#channel-combat #combat-pane-shortcuts:not([hidden]){position:absolute;inset:8px;z-index:4;padding:16px;background:#071727;border:1px solid #d1aa5a;box-shadow:0 0 0 8px #020c19de}
#channel-combat #combat-pane-shortcuts>.hint{font-size:10px;line-height:1.3;margin:0}
#channel-combat .combat-key-toggle{font-size:11px;margin:0;flex:none}
#channel-combat .combat-editor-grid{gap:5px 8px;grid-template-columns:repeat(2,minmax(0,1fr))}
#channel-combat .combat-editor-grid label{font-size:10px;line-height:1.2;gap:2px}
#channel-combat .combat-editor-grid :is(input,select){min-height:29px!important;padding:4px 6px!important;font-size:11px}
#channel-combat #combat-shortcut-form{gap:4px;min-height:0}
#channel-combat #combat-shortcut-status{margin:0;font-size:10px}
@container combat (min-width:780px){
 #channel-combat .combat-dashboard{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
 #channel-combat .combat-activity{display:flex}
 #channel-combat[data-combat-pane="activity"] .combat-activity{grid-column:1/-1}
 #channel-combat .combat-target-overview{grid-template-columns:86px minmax(0,1fr)}
 #channel-combat .combat-target-visual{width:86px;height:98px}
 #channel-combat .combat-visual canvas{width:86px;height:86px}
 #channel-combat .combat-quick-actions{grid-template-columns:86px minmax(0,1fr)}
}
@container combat (max-width:490px){
 #channel-combat .combat-target-overview{grid-template-columns:minmax(0,1fr)!important}
 #channel-combat .combat-target-visual,#channel-combat .combat-description,#channel-combat .combat-facts{display:none}
 #channel-combat .combat-panel-note,#channel-combat .combat-party-footer .hint{display:none}
 .astralis-cockpit #channel-combat .combat-toolbar button{font-size:8px;padding:3px 4px;min-height:27px}
 #channel-combat .combat-target-overview{grid-template-columns:58px minmax(0,1fr);gap:6px}
 #channel-combat .combat-target-visual{width:58px;height:76px}
 #channel-combat .combat-visual canvas{width:58px;height:58px}
 #channel-combat .combat-heading h2{font-size:16px}
 #channel-combat .combat-heading .eyebrow{display:none}
 #channel-combat .combat-target-kind{font-size:8px}
 #channel-combat .combat-toolbar{gap:2px}
 .combat-quick-actions{grid-template-columns:minmax(0,1fr);gap:3px}
 .combat-quick-actions .combat-subheading{flex-direction:row;align-items:center}
 #channel-combat .combat-quick-actions .combat-key-status{display:none}
 .astralis-cockpit #channel-combat .combat-slot{display:flex;flex-direction:column;height:52px;min-height:52px;gap:1px;padding:2px;text-align:center}
 #channel-combat .combat-slot :is(.ability-art-icon,.item-icon,.combat-slot-symbol){width:23px;height:23px;flex-basis:23px;line-height:23px;font-size:22px}
 #channel-combat .combat-slot strong{font-size:8px;line-height:1.1;padding:0}
 #channel-combat .combat-slot small{display:none}
 #channel-combat .combat-sections{gap:3px}
 .astralis-cockpit #channel-combat .combat-sections button{padding:4px 6px;font-size:10px}
 #channel-combat .combat-section-heading h3{font-size:16px}
 #channel-combat .combat-section-heading button{font-size:8px}
 #channel-combat .combat-key-toggle{font-size:10px}
 #channel-combat #combat-pane-shortcuts>.hint{display:none}
}
