/* Persistent navigation, fixed page frame and compact boss cells. */
.app-shell { display:grid; grid-template-columns:210px minmax(0,1fr); gap:28px; max-width:1800px; margin:0 auto; padding:20px 28px; align-items:start; }
.app-sidebar { position:sticky; top:20px; max-height:calc(100vh - 40px); overflow-y:auto; padding:18px 12px; background:#131b29; border:1px solid #344155; border-radius:10px; min-width:0; scrollbar-width:thin; }
.app-sidebar .brand { min-width:0; padding:0 8px 22px; border-bottom:1px solid #344155; margin-bottom:16px; gap:9px; }
.app-sidebar .brand strong { font-size:11px; letter-spacing:.12em; }.app-sidebar .brand small { font-size:7px; }
.app-sidebar .main-nav { display:flex; flex-direction:column; align-items:stretch; height:auto; gap:5px; }
.app-sidebar .main-nav .nav-link { display:flex; position:relative; width:100%; min-height:43px; height:auto; justify-content:flex-start; padding:11px 13px; border-radius:6px; color:#aebbce; font-size:12px; text-align:left; }
.app-sidebar .main-nav .nav-link.active { color:#ead4aa; background:#2c3341; box-shadow:inset 3px 0 #c7ad78; }
.app-sidebar .nav-link.active:after { display:none; }.app-sidebar .main-nav .nav-link:hover { background:#242f40; color:#e2d5bb; }
.app-sidebar .leader-nav-link { margin-top:14px; border-top:1px solid #405065; padding-top:13px; }
.app-sidebar .wing-sidebar { width:100%; min-height:0; position:static; padding:16px 0 0; margin:16px 0 0; border:0; border-top:1px solid #344155; border-radius:0; background:none; }
.app-sidebar .wing-sidebar .section-label { margin:0 10px 12px; font-size:9px; }
.app-sidebar .wing-list { display:grid; gap:5px; }
.app-sidebar .wing-button { margin:0; padding:10px; width:100%; font-size:11px; min-height:40px; }
.app-sidebar .admin-sidebar { background:none; border:0; border-top:1px solid #344155; border-radius:0; padding:16px 0 0; margin-top:15px; gap:4px; display:flex; min-height:0; }
.app-sidebar .admin-sidebar .section-label { padding:0 10px 8px; font-size:8px; }
.app-sidebar .admin-tab { min-height:36px; padding:9px 11px; font-size:11px; }
.app-workspace { min-width:0; }
.topbar { display:flex; align-items:center; gap:20px; min-height:84px; height:auto; padding:0 0 18px; margin:0; border-bottom:1px solid #344155; }
.topbar .raid-context { display:flex; flex:1; align-items:center; flex-wrap:wrap; padding:0; margin:0; border:0; gap:12px; min-width:0; }
.topbar .raid-picker { min-width:200px; max-width:380px; flex:0 1 300px; gap:6px; }
.topbar .raid-picker select { min-height:42px; font-size:14px; }.topbar .raid-picker>span { font-size:9px; }
.topbar .raid-context-status { margin:18px 0 0; min-height:20px; }.topbar #raidSaveStatus { font-size:11px; }
.topbar .raid-context-actions { margin-left:0; width:auto; }
.topbar .top-actions { flex-shrink:0; min-width:0; gap:0; }.topbar .discord-button { font-size:11px; }
.topbar .raid-state-label { margin-top:18px; }
.raid-layout { display:block; }.raid-layout>.content-panel { min-width:0; padding:22px; }
.admin-workspace { display:block; }.admin-content { width:100%; }
.page-intro { padding-top:24px; padding-bottom:20px; }
.page-intro h1 { font-size:32px; }
.page-footer { margin-top:24px; }
#profileFormMessage:empty { display:none; }
#page-my-attribs .profile-assignments { margin-top:0; }
#page-my-attribs .profile-attrib { max-width:1100px; }
#page-raids .wing-boss-heading .boss-portrait,.admin-boss-heading .boss-portrait { display:block; width:40px; height:40px; flex:0 0 40px; object-fit:cover; border:1px solid #59677b; border-radius:6px; background:#202936; }
.admin-boss-heading { display:flex; align-items:center; gap:11px; margin-bottom:14px; }.admin-boss-heading strong { font-size:20px; color:#dbe0e7; }
.boss-trash-label { font-size:9px; color:#b6a384; }
#page-raids .aq-boss-board,#page-admin .aq-boss-board,#page-raids .aq-trash-board,#page-admin .aq-trash-board { --boss-card-width:240px; display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start; max-width:none; }
#page-raids .aq-boss-card,#page-admin .aq-boss-card,#page-raids .aq-trash-card,#page-admin .aq-trash-card { width:var(--boss-card-width); max-width:100%; flex:0 1 var(--boss-card-width); min-width:0; }
#page-raids .aq-compact-rows,#page-admin .aq-compact-rows { display:grid; grid-template-columns:minmax(0,1fr); }
#page-raids .aq-compact-row,#page-admin .aq-compact-row { padding:10px 11px; gap:9px; }
#page-raids .aq-boss-board .inline-attribution,#page-admin .aq-boss-board .inline-attribution { max-width:none; grid-template-columns:minmax(0,1fr); gap:8px; }
#page-raids .aq-compact-player,#page-admin .aq-compact-player { min-width:0; }
#page-raids .aq-boss-H2 .aq-compact-row,#page-admin .aq-boss-H2 .aq-compact-row { display:grid; grid-template-columns:minmax(0,1fr); }
#page-raids .aq-rotation,#page-admin .aq-rotation { display:flex; flex-wrap:wrap; gap:12px; padding:0; max-width:none; border:0; background:none; align-items:center; }
#page-raids .aq-rotation>div,#page-admin .aq-rotation>div { flex:0 1 240px; width:240px; max-width:100%; border:1px solid #43556b; border-radius:8px; padding:12px; background:#152031; }
#page-raids .aq-rotation .inline-attribution,#page-admin .aq-rotation .inline-attribution { grid-template-columns:minmax(0,1fr); gap:8px; max-width:none; }
#page-raids .aq-binding-label,#page-admin .aq-binding-label,.aq-main-board .aq-binding-label,.aq-tank-order-row>span>b,.aq-tank-target>b { display:inline-flex; align-items:center; gap:6px; width:fit-content; min-width:0; min-height:28px; margin:0; padding:4px 7px; border:1px solid #ad905960; border-radius:5px; background:#c7a56b16; color:#f5dfb6; font:700 14px/1.25 'DM Sans',sans-serif; white-space:nowrap; }
.aq-binding-label .category-icon { display:inline-flex; flex:0 0 18px; width:18px; height:18px; }.aq-binding-label .category-icon img { width:18px; height:18px; }
#page-raids .aq-person-binding,#page-admin .aq-person-binding { display:flex; align-items:center; flex-direction:row; flex-wrap:wrap; gap:8px; }
#page-raids .aq-trash-player .inline-attribution,#page-admin .aq-trash-player .inline-attribution { grid-template-columns:minmax(0,1fr); gap:8px; }
.aq-main-board .aq-healer-slots label { grid-template-columns:96px minmax(0,1fr); gap:9px; }
.aq-main-board .aq-tank-order-row { grid-template-columns:94px minmax(0,1fr); }
#page-raids .aq-collective>strong,#page-admin .aq-collective>strong { color:#f5dfb6; font-size:14px; font-weight:700; }
@media(max-width:1100px){.aq-main-board .aq-healer-slots label { grid-template-columns:minmax(0,1fr); }.aq-main-board .aq-binding-label { font-size:13px; padding:4px 5px; }}
#page-raids .assignment-table-wrap,#page-admin .assignment-table-wrap { max-width:1050px; }
.cthun-layout { max-width:1000px; }
/* Account actions and centered raid responsibilities. */
#profileConnectionStatus:empty { display:none; }
.topbar .top-actions { position:relative; }
.discord-button.is-connected::after { content:'⌄'; margin-left:8px; font-size:15px; }
.account-menu { position:absolute; z-index:40; top:calc(100% + 8px); right:0; width:190px; max-width:calc(100vw - 24px); padding:6px; border:1px solid #526078; border-radius:8px; background:#1a2535; box-shadow:0 12px 32px #0005; }
.account-menu button { display:block; width:100%; min-height:42px; padding:10px 12px; border:0; border-radius:5px; background:transparent; color:#ede2cf; text-align:left; cursor:pointer; font:600 13px 'DM Sans',sans-serif; }
.account-menu button:hover,.account-menu button:focus-visible { background:#344155; outline:2px solid #b99b65; outline-offset:-2px; }
#page-raids .aq-binding-label[data-binding-type="tank"],#page-admin .aq-binding-label[data-binding-type="tank"],.aq-tank-order-row>span>b,.aq-tank-target>b { width:56px; min-width:56px; flex:0 0 56px; justify-content:center; }
#page-raids .panel-head { flex-direction:column; align-items:center; gap:16px; text-align:center; }
#page-raids .breadcrumb { justify-content:center; }
#page-raids .my-assignments { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:42px; padding:10px 16px; border-color:#b79b68; background:#b7975e24; color:#f3ddb7; font-weight:700; cursor:pointer; transition:background .15s ease,box-shadow .15s ease; }
#page-raids .my-assignments svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#page-raids .my-assignments:hover,#page-raids .my-assignments:focus-visible { background:#b7975e40; box-shadow:0 0 0 3px #b7975e26; }
.raid-aq40 #page-raids .table-toolbar,#page-raids .table-toolbar { justify-content:center; align-items:center; }
#page-raids .table-toolbar .search-wrap { width:100%; min-width:0; max-width:320px; }
#page-raids .wing-boss-heading { justify-content:center; text-align:center; }
#page-raids .aq-boss-board,#page-raids .aq-trash-board,#page-raids .aq-rotation { justify-content:center; }
#page-raids .aq-boss-card>h4 { text-align:center; }
#page-raids .aq-person-binding { justify-content:center; }
#page-raids .assignment-table-wrap,#page-raids .cthun-layout { margin-left:auto; margin-right:auto; }
#page-raids .boss-no-assignment { text-align:center; }
@media(prefers-reduced-motion:reduce){#page-raids .my-assignments { transition:none; }}
/* Compact roster: identical five-row tables for all raid groups. */
.topbar .top-actions { gap:10px; }
.header-profile-button { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:8px 12px; border:1px solid #526078; border-radius:5px; background:#192332; color:#dce5f1; font:600 12px 'DM Sans',sans-serif; white-space:nowrap; cursor:pointer; }
.header-profile-button:hover,.header-profile-button.active { color:#f3ddb7; border-color:#b79b68; background:#b7975e24; }
.header-profile-button:focus-visible { outline:2px solid #c7ad78; outline-offset:3px; }
#raidGroupsWrap .raid-planner-heading { margin-bottom:12px; }
.roster-group-tables { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px 0; }
.roster-group-table { width:100%; min-width:0; margin:0; border:1px solid #435168; border-collapse:collapse; table-layout:fixed; background:#152030; font:12px/1.3 'DM Sans',sans-serif; }
.roster-group-table th { height:38px; padding:8px 12px; border-bottom:1px solid #53627a; background:#222e40; color:#e4d6bb; font-size:12px; font-weight:700; text-align:left; }
.roster-group-table th small { float:right; color:#aebdd0; font-size:10px; font-weight:400; }
.roster-group-table td { height:36px; padding:5px 12px; border-bottom:1px solid #354257; vertical-align:middle; }
.roster-group-table tbody tr:nth-child(even) { background:#1c293a; }
.roster-table-player { display:flex; align-items:center; gap:8px; min-width:0; color:inherit; }
.roster-table-player .category-icon { flex:0 0 18px; width:18px; height:18px; }.roster-table-player .category-icon img { width:18px; height:18px; }
.roster-table-player strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:600; }
.roster-group-table .roster-table-empty { color:#72849d; font-size:11px; }
.roster-unassigned-table { max-width:360px; margin-top:14px; }
@media(max-width:1000px){.roster-group-tables { grid-template-columns:repeat(2,minmax(0,1fr)); }}
@media(max-width:760px){.topbar { flex-wrap:wrap; }.topbar .top-actions { margin-left:auto; padding-top:0; }.topbar .raid-context { flex-basis:100%; }.header-profile-button { min-height:36px; font-size:11px; }}
@media(max-width:480px){.roster-group-tables { grid-template-columns:minmax(0,1fr); gap:12px; }.roster-group-table td { padding:5px 10px; }.roster-unassigned-table { max-width:none; }}
/* Equal-height healing priorities, including rows with a second healer. */
#rosterDataStatus:empty { display:none; }
.raid-readonly #page-roster .table-foot,#page-roster .table-foot { display:flex; justify-content:flex-end; }
.aq-main-board .aq-healing-head,.aq-main-board .aq-healing-row { grid-template-columns:minmax(130px,1fr) minmax(0,2fr) 75px; gap:12px; }
.aq-main-board .aq-healing-row { min-height:88px; }
.aq-main-board .aq-healer-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.aq-main-board .aq-healer-slots label { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:28px 28px; gap:6px; min-width:0; }
.aq-main-board .aq-healer-slots label>.attrib-vacant { display:flex; align-items:center; height:28px; }
.aq-main-board .aq-tank-target { flex-wrap:nowrap; min-width:0; }
.aq-main-board .attrib-player { min-width:0; max-width:100%; min-height:28px; }
.aq-main-board .attrib-player b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:1100px){.aq-main-board { grid-template-columns:minmax(0,1fr); }}
@media(max-width:600px){.aq-main-board .aq-healing-head { display:none; }.aq-main-board .aq-healing-row { grid-template-columns:minmax(0,1fr) 75px; gap:10px; }.aq-main-board .aq-healer-slots { grid-row:2; grid-column:1/-1; }.aq-main-board .aq-group-label { grid-row:1; grid-column:2; }}
@media(max-width:1100px){.app-shell { grid-template-columns:185px minmax(0,1fr); gap:20px; padding:16px 20px; }.app-sidebar { padding:15px 10px; }.app-sidebar .brand strong { font-size:10px; }.app-sidebar .main-nav .nav-link { font-size:11px; }.topbar { gap:12px; }.topbar .raid-picker { min-width:180px; flex-basis:240px; }.topbar .raid-context-status { margin-top:0; }.topbar .raid-context-actions { flex-basis:100%; }.profile-layout { grid-template-columns:minmax(200px,.8fr) minmax(0,1.5fr); }}
@media(max-width:760px){.app-shell { display:block; padding:12px; }.app-sidebar { position:static; max-height:none; overflow:visible; padding:12px; margin-bottom:16px; }.app-sidebar .brand { border:0; padding:0 0 12px; margin-bottom:0; }.app-sidebar .main-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }.app-sidebar .main-nav .nav-link { min-height:39px; padding:9px 8px; justify-content:center; text-align:center; font-size:11px; }.app-sidebar .leader-nav-link { margin:0; border:0; }.app-sidebar .wing-list { display:flex; flex-wrap:wrap; }.app-sidebar .wing-button { width:auto; min-height:36px; }.app-sidebar .admin-sidebar { display:flex; flex-flow:row wrap; }.app-sidebar .admin-sidebar .section-label { display:none; }.app-sidebar .admin-tab { flex:1 0 auto; }.topbar { align-items:flex-start; min-height:80px; padding-bottom:14px; }.topbar .raid-picker { flex:1 1 200px; max-width:none; }.topbar .raid-context-status { width:auto; }.topbar .raid-state-label { margin:0; }.topbar .top-actions { padding-top:18px; }.profile-layout { display:block; }.profile-account { margin-bottom:16px; }.raid-layout>.content-panel { padding:16px 12px; }.page-intro h1 { font-size:28px; }}
@media(max-width:440px){.app-sidebar .main-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }.topbar .discord-button { padding:0 8px; font-size:10px; }.topbar .raid-picker { min-width:0; flex-basis:150px; }.topbar .raid-picker select { font-size:12px; }.topbar .raid-context { gap:7px; }#page-raids .aq-boss-board,#page-admin .aq-boss-board,#page-raids .aq-trash-board,#page-admin .aq-trash-board { --boss-card-width:100%; }}

.app-sidebar .pirate-brand-mark { width:32px; height:32px; flex:0 0 32px; border:0; border-radius:0; background:none; padding:0; box-shadow:none; }
.pirate-brand-mark img { display:block; width:32px; height:32px; object-fit:contain; }
