:root { color-scheme: dark; }
body { font-family: Segoe UI, sans-serif; margin: 0; background: #0f172a; color: #e2e8f0; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:12px 24px; background:#111827; border-bottom:1px solid #1f2937; }
.topbar nav a { color:#93c5fd; margin-left:12px; text-decoration:none; }
.container { max-width: 1280px; margin: 24px auto; padding: 0 16px; }
.card { background:#111827; border:1px solid #1f2937; border-radius:12px; padding:16px; margin-bottom:16px; }
.card.nested { background:#0b1220; }
.inline-form { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
input, select, button { border-radius:8px; border:1px solid #334155; background:#0f172a; color:#e2e8f0; padding:8px; }
button { background:#2563eb; border:none; cursor:pointer; }
button:hover { background:#1d4ed8; }
.btn-secondary { display:inline-block; background:#0b3b8a; color:#dbeafe; text-decoration:none; padding:8px 12px; border-radius:8px; border:1px solid #1d4ed8; }
.btn-secondary:hover { background:#1e40af; }
.mt16 { margin-top:16px; }
.hint { color:#93c5fd; font-size:13px; margin-top:8px; }
table { width:100%; border-collapse: collapse; }
th, td { border-bottom:1px solid #1f2937; text-align:left; padding:8px; }
.alert { padding:10px; border-radius:8px; margin-bottom:8px; }
.alert-success { background:#052e16; color:#86efac; }
.alert-error { background:#450a0a; color:#fca5a5; }
.badge { padding:2px 8px; border-radius:999px; font-size:12px; text-transform:uppercase; }
.role-gm { background:#7c3aed; }
.role-officer { background:#b45309; }
.role-member { background:#374151; }
.raid { border-top:1px dashed #334155; padding-top:12px; margin-top:12px; }
.footer { text-align:center; padding:24px; color:#94a3b8; }

.character-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap:12px; margin:16px 0; }
.character-card { display:flex; gap:12px; text-decoration:none; color:inherit; background:linear-gradient(90deg, #2a1206, #4a1d0f); border:1px solid #713f12; border-radius:10px; padding:10px; }
.character-card:hover { border-color:#f59e0b; transform: translateY(-1px); }
.character-avatar-wrap { width:64px; height:64px; border-radius:4px; overflow:hidden; flex-shrink:0; background:#0f172a; }
.character-avatar { width:100%; height:100%; object-fit:cover; display:block; }
.character-avatar.placeholder { background:linear-gradient(135deg, #1f2937, #334155); }
.character-meta { display:flex; flex-direction:column; justify-content:center; }
.character-name { color:#f43f5e; font-weight:700; font-size:20px; line-height:1.1; }
.character-line { color:#fff; font-size:22px; line-height:1.2; }
.character-line.realm { font-size:28px; color:#e2e8f0; }

.character-hero { border:1px solid #374151; border-radius:12px; padding:18px; background:#020617; background-size:cover; background-position:center; margin-bottom:16px; }
.character-hero-content { display:flex; gap:16px; align-items:center; }
.character-avatar.big { width:96px; height:96px; border-radius:8px; border:1px solid #334155; }
.character-title { margin:0 0 4px 0; font-size:34px; }
.character-subtitle { margin:0; color:#cbd5e1; }
.stats-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap:10px; }
.stat-card { background:#0b1220; border:1px solid #1f2937; border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:6px; }
.stat-card span { color:#93c5fd; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.stat-card strong { font-size:20px; }

.needs-columns { display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap:16px; }
.need-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.need-list li { display:flex; align-items:center; gap:8px; justify-content:space-between; background:#0b1220; border:1px solid #1f2937; border-radius:8px; padding:8px; }
.need-meta { font-size:12px; color:#fcd34d; background:#451a03; border:1px solid #92400e; border-radius:999px; padding:2px 8px; }
.inline-delete { margin-left:auto; }
.inline-delete button { padding:6px 8px; background:#7f1d1d; }
.inline-delete button:hover { background:#991b1b; }

.armory-page { display:flex; flex-direction:column; gap:16px; }
.armory-hero { border:1px solid #1e293b; border-radius:12px; overflow:hidden; background:#030712; background-size:cover; background-position:center; }
.armory-header { display:grid; grid-template-columns:96px 1fr auto; gap:16px; align-items:center; padding:16px; background:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.6)); }
.armory-avatar-wrap { width:96px; height:96px; border-radius:8px; overflow:hidden; border:1px solid #334155; background:#0b1220; }
.armory-avatar { width:100%; height:100%; object-fit:cover; display:block; }
.armory-name { margin:0; font-size:34px; color:#f43f5e; line-height:1; }
.armory-meta { color:#d1d5db; margin-top:4px; }
.armory-kpis { display:flex; gap:16px; margin-top:8px; color:#facc15; }
.armory-kpis strong { color:#f8fafc; }
.armory-official { align-self:start; }

.armory-tabs { display:flex; gap:4px; flex-wrap:wrap; border-top:1px solid rgba(148,163,184,.2); border-bottom:1px solid rgba(148,163,184,.2); padding:0 12px; background:rgba(1,5,16,.75); }
.armory-tab { color:#facc15; text-decoration:none; text-transform:uppercase; font-size:12px; letter-spacing:.03em; padding:10px 12px; border:none; border-bottom:2px solid transparent; background:transparent; border-radius:0; }
.armory-tab:hover { border-bottom-color:#facc15; background:transparent; }
.armory-tab.is-active { border-bottom-color:#facc15; color:#fde68a; }

.armory-page.armory-tabbed .armory-panel { display:none; }
.armory-page.armory-tabbed .armory-panel.is-active { display:block; }
.armory-page.armory-tabbed .armory-stage.armory-panel.is-active { display:grid; }

.armory-stage { display:grid; grid-template-columns:1fr minmax(260px, 380px) 1fr; gap:12px; padding:16px; min-height:460px; }
.equip-col { display:flex; flex-direction:column; gap:8px; }
.equip-col.right { text-align:right; }
.equip-row { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:8px 10px; border:1px solid rgba(148,163,184,.2); border-radius:8px; background:rgba(2,6,23,.78); min-height:56px; }
.equip-row.is-empty { opacity:.55; }
.equip-item-info { display:flex; align-items:flex-start; gap:8px; min-width:0; flex:1 1 auto; }
.equip-col.right .equip-item-info { flex-direction:row-reverse; }
.equip-icon { width:42px; height:42px; border-radius:4px; border:1px solid #7c3aed; object-fit:cover; flex:0 0 42px; background:#020617; }
.equip-icon.placeholder { border-color:#334155; background:linear-gradient(135deg, #111827, #0f172a); }
.equip-main { display:flex; flex-direction:column; gap:2px; min-width:0; }
.equip-main > a,
.equip-main > span { max-width:100%; }
.equip-slot { color:#94a3b8; font-size:12px; margin-top:2px; }
.equip-ilvl { color:#f8fafc; font-weight:700; min-width:34px; text-align:right; }
.equip-detail { font-size:12px; line-height:1.2; color:#cbd5e1; }
.equip-col.right .equip-main { align-items:flex-end; text-align:right; }
.equip-col.right .equip-slot,
.equip-col.right .equip-detail,
.equip-col.right .equip-main > a,
.equip-col.right .equip-main > span { text-align:right; }
.equip-enchant { color:#86efac; }
.equip-gem { color:#c4b5fd; }
.equip-enchant a,
.equip-gem a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.equip-enchant a:hover,
.equip-gem a:hover { opacity:.9; }

.equip-bottom { grid-column:1 / -1; display:flex; justify-content:center; gap:12px; margin-top:4px; }
.equip-row-bottom { width:min(460px, 48%); }
.equip-stats { grid-column:1 / -1; margin-top:10px; border:1px solid rgba(148,163,184,.2); border-radius:10px; background:rgba(2,6,23,.78); padding:14px; }
.equip-stats h4 { margin:0 0 12px 0; color:#facc15; text-transform:uppercase; font-size:12px; letter-spacing:.04em; }
.equip-stats-grid { display:grid; grid-template-columns:repeat(4, minmax(170px, 1fr)); gap:14px 22px; }
.equip-stat-card { display:flex; align-items:center; gap:12px; }
.equip-stat-icon { width:48px; height:48px; border:2px solid currentColor; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:24px; line-height:1; font-weight:700; }
.equip-stat-text { display:grid; gap:2px; }
.equip-stat-text strong { font-size:24px; line-height:1; color:currentColor; font-weight:700; }
.equip-stat-text span { color:#f1f5f9; font-size:13px; line-height:1.15; text-transform:uppercase; font-weight:700; letter-spacing:.02em; }
.equip-stat-health { color:#22c55e; }
.equip-stat-resource { color:#06b6d4; }
.equip-stat-primary { color:#ef4444; }
.equip-stat-stamina { color:#f59e0b; }
.equip-stat-crit { color:#ef4444; }
.equip-stat-haste { color:#14b8a6; }
.equip-stat-mastery { color:#8b5cf6; }
.equip-stat-versatility { color:#e5e7eb; }

.armory-render { border:1px solid rgba(148,163,184,.2); border-radius:10px; background:rgba(2,6,23,.86); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.armory-render img { width:100%; height:100%; object-fit:cover; }
.armory-render-placeholder { width:160px; height:280px; border-radius:10px; background:linear-gradient(180deg, #1f2937, #0f172a); }

.armory-section { background:#030712; border:1px solid #1e293b; }
.armory-section h3 { margin-top:0; color:#e5e7eb; text-transform:uppercase; }

.raid-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; }
.raid-expansion-dropdown { border:1px solid #334155; border-radius:10px; background:rgba(2,6,23,.5); margin-bottom:12px; padding:10px; }
.raid-expansion-dropdown summary { cursor:pointer; color:#facc15; font-weight:700; list-style:none; }
.raid-expansion-dropdown summary::-webkit-details-marker { display:none; }
.raid-expansion-count { color:#94a3b8; font-weight:400; }
.raid-card { border:1px solid #334155; border-radius:10px; background:linear-gradient(180deg, rgba(15,23,42,.9), rgba(2,6,23,.95)); padding:12px; overflow:hidden; }
.raid-card-cover { height:112px; margin:-12px -12px 2px; border-bottom:1px solid rgba(255,255,255,.1); background:linear-gradient(160deg, rgba(76,106,160,.32), rgba(23,34,57,.82)); background-size:cover; background-position:center; position:relative; }
.raid-card-cover::after { content:""; position:absolute; inset:0; }
.raid-card-body { display:grid; gap:8px; }
.raid-card h4 { margin:0 0 2px 0; color:#facc15; }
.raid-tier-name { margin:0 0 6px 0; color:#94a3b8; font-size:12px; text-transform:uppercase; }
.raid-progress-row { display:grid; grid-template-columns:96px 1fr 40px; gap:8px; align-items:center; margin-bottom:7px; }
.raid-progress-label { color:#cbd5e1; font-size:12px; text-transform:uppercase; }
.raid-progress-track { height:12px; border:1px solid #334155; border-radius:8px; overflow:hidden; background:#0f172a; }
.raid-progress-track span { display:block; height:100%; background:linear-gradient(90deg, #65a30d, #22c55e); }
.raid-progress-track .bar-rdr { background:linear-gradient(90deg, #d97706, #f59e0b); }
.raid-progress-track .bar-normal { background:linear-gradient(90deg, #16a34a, #22c55e); }
.raid-progress-track .bar-heroic { background:linear-gradient(90deg, #2563eb, #38bdf8); }
.raid-progress-track .bar-mythic { background:linear-gradient(90deg, #7c3aed, #a855f7); }
.raid-progress-count { color:#f8fafc; font-size:12px; text-align:right; }

.pvp-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:10px; }
.pvp-stat { border:1px solid #334155; border-radius:10px; background:#020617; padding:12px; }
.pvp-stat span { display:block; font-size:12px; color:#94a3b8; text-transform:uppercase; }
.pvp-stat strong { font-size:26px; color:#f59e0b; }

.spec-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; }
.spec-switcher { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 14px 0; }
.spec-switch-btn { border:1px solid #334155; background:#020617; color:#cbd5e1; border-radius:10px; padding:8px 10px; display:flex; align-items:center; gap:8px; cursor:pointer; }
.spec-switch-btn.is-active { border-color:#eab308; box-shadow:0 0 0 1px rgba(234,179,8,.25) inset; color:#f8fafc; }
.spec-switch-icon-wrap { width:34px; height:34px; border-radius:8px; overflow:hidden; border:1px solid rgba(148,163,184,.4); display:flex; align-items:center; justify-content:center; background:#0f172a; }
.spec-switch-icon { width:100%; height:100%; object-fit:cover; display:block; }
.spec-switch-fallback { font-weight:700; color:#f8fafc; font-size:14px; }
.spec-switch-name { font-size:13px; font-weight:600; }
.spec-panels { display:block; }
.spec-panel { display:none; }
.spec-panel.is-active { display:block; }
.spec-card { border:1px solid #334155; border-radius:10px; background:#020617; padding:12px; }
.spec-card.active { border-color:#eab308; box-shadow:0 0 0 1px rgba(234,179,8,.25) inset; }
.spec-state { text-transform:uppercase; font-size:11px; color:#94a3b8; margin-bottom:8px; }
.spec-card.active .spec-state { color:#22c55e; }
.spec-card h4 { margin:0; color:#f1f5f9; }
.spec-code-row { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:10px; }
.spec-code-input { font-family:Consolas, monospace; font-size:12px; color:#cbd5e1; }
.spec-copy-btn { background:#0b3b8a; border:1px solid #1d4ed8; color:#dbeafe; }
.spec-copy-btn:hover { background:#1e40af; }
.spec-copy-feedback { min-height:16px; margin:6px 0 2px; color:#93c5fd; font-size:12px; }
.spec-copy-feedback.is-success { color:#86efac; }
.spec-copy-feedback.is-error { color:#fca5a5; }
.talent-groups { margin-top:10px; display:grid; gap:10px; }
.talent-group { border:1px solid rgba(148,163,184,.2); border-radius:8px; background:rgba(15,23,42,.5); padding:8px; }
.talent-group h5 { margin:0 0 8px 0; color:#facc15; font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.talent-node-list { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.talent-node-item { display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid rgba(51,65,85,.9); border-radius:7px; background:rgba(2,6,23,.8); padding:6px 8px; position:relative; }
.talent-node-link { color:#dbeafe; text-decoration:none; min-width:0; flex:1 1 auto; display:flex; align-items:center; gap:8px; }
.talent-node-link:hover { color:#f8fafc; }
.talent-node-icon-wrap { width:42px; height:42px; border-radius:7px; overflow:hidden; border:1px solid rgba(148,163,184,.45); background:#111827; display:flex; align-items:center; justify-content:center; flex:0 0 42px; }
.talent-node-icon { width:100%; height:100%; object-fit:cover; display:block; }
.talent-node-icon-fallback { font-weight:700; color:#e5e7eb; font-size:18px; line-height:1; }
.talent-node-name { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.talent-node-rank { color:#fbbf24; font-size:11px; text-transform:uppercase; letter-spacing:.03em; flex:0 0 auto; }
.talent-node-item.is-unselected .talent-node-icon { filter:grayscale(1) brightness(.42); }
.talent-node-item.is-selected .talent-node-icon-wrap { border-color:#facc15; box-shadow:0 0 0 1px rgba(250,204,21,.25) inset; }
.talent-node-item.is-unselected .talent-node-icon-wrap { border-color:#475569; }
.talent-group.is-tree .talent-node-list { grid-template-columns:repeat(var(--talent-tree-cols, 6), minmax(0, 1fr)); gap:8px; grid-auto-flow:dense; }
.talent-group.is-tree .talent-node-item { min-height:60px; align-items:center; justify-content:center; flex-direction:column; padding:2px; border:none; background:transparent; }
.talent-group.is-tree .talent-node-item .talent-node-link { display:flex; align-items:center; justify-content:center; }
.talent-group.is-tree .talent-node-item .talent-node-icon-wrap { width:50px; height:50px; border-radius:8px; }
.talent-group.is-tree .talent-node-item .talent-node-name { display:none; }
.talent-group.is-tree .talent-node-item .talent-node-rank { position:absolute; right:2px; bottom:0; background:rgba(2,6,23,.95); border:1px solid rgba(148,163,184,.35); border-radius:999px; padding:0 5px; font-size:10px; line-height:16px; }
.talent-group.is-tree .talent-node-item.is-positioned { box-shadow:0 0 0 1px rgba(59,130,246,.18) inset; }

.mythic-rating { color:#cbd5e1; margin-bottom:10px; }
.mythic-rating strong { color:#f59e0b; }
.mythic-subtabs { display:flex; gap:8px; margin-bottom:12px; border-bottom:1px solid #334155; padding-bottom:8px; }
.mythic-subtab { border:1px solid #334155; background:#020617; color:#cbd5e1; padding:6px 10px; border-radius:8px; cursor:pointer; }
.mythic-subtab.is-active { border-color:#f59e0b; color:#fde68a; }
.mythic-subpanel { display:none; }
.mythic-subpanel.is-active { display:block; }
.mythic-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
.mythic-card { border:1px solid #334155; border-radius:10px; background:#020617; padding:12px; overflow:hidden; }
.mythic-card-cover { height:92px; margin:-12px -12px 8px; border-bottom:1px solid rgba(255,255,255,.1); background:linear-gradient(160deg, rgba(131,89,24,.34), rgba(23,34,57,.82)); background-size:cover; background-position:center; position:relative; }
.mythic-card-cover::after { content:""; position:absolute; inset:0;}
.mythic-level-badge { position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); z-index:1; width:54px; height:54px; border-radius:999px; border:2px solid rgba(245,158,11,.9); background:radial-gradient(circle at 30% 30%, #334155, #0f172a); display:flex; align-items:center; justify-content:center; color:#f8fafc; font-weight:800; font-size:24px; text-shadow:0 1px 2px rgba(0,0,0,.7); box-shadow:0 0 10px rgba(245,158,11,.35); }
.mythic-card-body { display:grid; gap:4px; }
.mythic-card h4 { margin:4px 0 0 0; color:#eab308; }
.mythic-time { margin-top:8px; color:#e2e8f0; }
.mythic-score { margin-top:8px; color:#f8fafc; }
.mythic-date { margin-top:6px; color:#94a3b8; font-size:12px; }

.needs-builder { display:grid; gap:12px; }
.needs-builder .hint.is-success { color:#86efac; }
.needs-builder .hint.is-error { color:#fca5a5; }
.needs-toolbar { display:grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap:10px; }
.needs-field { display:grid; gap:4px; }
.needs-field label { color:#cbd5e1; font-size:12px; text-transform:uppercase; }
.needs-class-toggle { display:flex; align-items:center; gap:8px; color:#cbd5e1; font-size:14px; }
.needs-category h4 { margin:0 0 10px 0; color:#e5e7eb; }
.needs-card-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap:10px; }
.needs-item-card { border:1px solid #334155; border-radius:10px; background:#020617; padding:10px; display:grid; gap:8px; }
.needs-item-header a { font-weight:700; text-decoration:none; }
.needs-item-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.needs-item-icon-link,
.need-entry-icon-link { display:inline-flex; text-decoration:none; }
.needs-item-icon { width:52px; height:52px; border-radius:6px; border:1px solid #52525b; object-fit:cover; background:#111827; }
.needs-item-meta { color:#a1a1aa; font-size:13px; display:grid; gap:2px; }
.needs-boss-line { display:flex; align-items:center; gap:6px; }
.needs-boss-icon { width:16px; height:16px; border-radius:3px; border:1px solid #52525b; object-fit:cover; background:#111827; }
.needs-item-form { justify-content:space-between; }
.needs-item-form select { min-width:140px; }
.need-entry-main { display:flex; align-items:center; gap:8px; min-width:0; }
.need-entry-icon { width:28px; height:28px; border-radius:4px; border:1px solid #52525b; object-fit:cover; background:#111827; flex:0 0 28px; }
.needs-recap-grid { display:grid; gap:10px; }
.needs-recap-card { border:1px solid #334155; background:#020617; border-radius:10px; }
.needs-recap-title { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 10px 0; color:#e2e8f0; }
.needs-recap-source { color:#f8fafc; font-weight:700; }
.needs-recap-boss { display:inline-flex; align-items:center; gap:6px; color:#cbd5e1; }
.needs-recap-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:10px; }
.needs-recap-list .needs-recap-item {
	display:flex;
	flex-direction:column;
	gap:10px;
	align-content:start;
	justify-content:normal;
	align-items:normal;
	padding:12px;
	border:1px solid #334155;
	border-radius:10px;
	background:#020617;
}
.needs-recap-list .needs-recap-item .needs-item-header,
.needs-recap-list .needs-recap-item .needs-item-meta,
.needs-recap-list .needs-recap-item .needs-recap-actions { width:100%; }
.needs-recap-list .needs-recap-item .needs-item-top {
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto;
	align-items:flex-start;
	gap:10px;
}
.needs-recap-list .needs-recap-item .needs-item-top > a:first-child {
	flex:1 1 auto;
	min-width:0;
}
.needs-recap-list .needs-recap-item .needs-item-icon-link {
	flex:0 0 auto;
}
.needs-recap-item .needs-item-top a.q2,
.needs-recap-item .needs-item-top a.q3,
.needs-recap-item .needs-item-top a.q4,
.needs-recap-item .needs-item-top a.q5,
.needs-recap-item .needs-item-top a.q6,
.needs-recap-item .needs-item-top a.q7 { text-decoration:none; }
.needs-recap-item .needs-item-top .q2,
.needs-recap-item .needs-item-top .q3,
.needs-recap-item .needs-item-top .q4,
.needs-recap-item .needs-item-top .q5,
.needs-recap-item .needs-item-top .q6,
.needs-recap-item .needs-item-top .q7 {
	overflow:hidden;
	text-overflow:ellipsis;
	line-height:1.25;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
}
.needs-recap-item .needs-item-icon { width:50px; height:50px; }
.needs-recap-list .needs-recap-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; }
.needs-recap-item .need-meta { display:inline-flex; align-items:center; justify-content:center; min-width:90px; padding:4px 10px; border-radius:999px; border:1px solid rgba(245,158,11,.45); background:rgba(120,53,15,.35); color:#fbbf24; font-size:12px; font-weight:700; }
.needs-recap-item .inline-delete { margin:0; }
.needs-recap-item .inline-delete button { min-width:72px; }

@media (max-width: 900px) {
    .needs-toolbar { grid-template-columns: 1fr; }
	.needs-recap-list { grid-template-columns:1fr; }
	.needs-recap-list .needs-recap-item { padding:10px; }
	.equip-stats-grid { grid-template-columns:repeat(2, minmax(160px, 1fr)); gap:12px; }
}

@media (max-width: 1180px) {
	.armory-stage { grid-template-columns:1fr; }
	.equip-col.right { text-align:left; }
	.equip-col.right .equip-item-info { flex-direction:row; }
	.equip-bottom { flex-direction:column; }
	.equip-row-bottom { width:100%; }
	.armory-header { grid-template-columns:96px 1fr; }
	.armory-official { grid-column:1 / -1; }
}
