/* Biological resource workspace: animal, plant, microbial, plasmid and viral registries. */
.biology-subpage-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 0 16px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    background: color-mix(in srgb, var(--paper) 94%, transparent);
}

.biology-subpage-tabs button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 10px 16px;
    color: var(--muted);
    background: transparent;
    border: 0;
    border-right: 1px solid var(--line);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: color .18s ease, background .18s ease;
}

.biology-subpage-tabs button:last-child { border-right: 0; }
.biology-subpage-tabs button span {
    color: var(--accent-deep);
    font-family: var(--font-latin);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
}
.biology-subpage-tabs button::after {
    content: "";
    position: absolute;
    right: 18%;
    bottom: 0;
    left: 18%;
    height: 3px;
    background: transparent;
}
.biology-subpage-tabs button:hover { color: var(--ink); background: color-mix(in srgb, var(--accent) 7%, transparent); }
.biology-subpage-tabs button.active { color: var(--ink); background: color-mix(in srgb, var(--accent) 14%, var(--paper)); }
.biology-subpage-tabs button.active::after { background: var(--accent); }

.biology-subpage[hidden] { display: none !important; }
.biology-subpage.active { display: block; }
.biology-table-panel { overflow: hidden; }
.biology-table-panel .module-toolbar { gap: 18px; }
.biology-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    min-width: min(100%, 620px);
}
.biology-toolbar-actions .inline-search { flex: 1 1 270px; max-width: 390px; }
.biology-toolbar-actions .button { flex: 0 0 auto; white-space: nowrap; }
.biology-table-panel .table-scroll { border-top: 1px solid var(--line); }
.biology-table-panel .data-table { min-width: 980px; }
.biology-table-panel .data-table tbody tr { cursor: pointer; }

.biology-research-ribbon {
    display: grid;
    grid-template-columns: auto minmax(40px, 1fr) auto minmax(40px, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 22px;
    border-top: 1px solid var(--line);
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 45%),
        color-mix(in srgb, var(--paper) 96%, transparent);
}
.biology-research-ribbon span {
    display: grid;
    gap: 2px;
    color: var(--ink);
    font-family: var(--font-latin);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
}
.biology-research-ribbon small {
    color: var(--muted);
    font-family: var(--font-interface);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
}
.biology-research-ribbon i { height: 1px; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--line) 80%, transparent)); }

.biology-resource-filters {
    padding: 10px 20px;
    border-top: 1px solid var(--line);
    background: color-mix(in srgb, var(--paper) 96%, transparent);
}
.biology-record-kind {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 3px 9px;
    border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--line));
    border-radius: 999px;
    color: var(--accent-deep);
    background: color-mix(in srgb, var(--accent) 9%, var(--paper));
    font-size: 11px;
    font-weight: 800;
}
.biology-link-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--accent-deep);
    font-size: 11px;
    font-weight: 800;
}
.biology-link-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }

.biology-detail-hero {
    background:
        radial-gradient(circle at 84% 50%, transparent 0 50px, rgba(174,224,52,.13) 51px 52px, transparent 53px),
        linear-gradient(115deg, #23322c, #1e2925 66%, #2d3a31);
}
.plant-detail-hero { background: radial-gradient(circle at 84% 45%, rgba(174,224,52,.18), transparent 26%), linear-gradient(115deg,#213329,#24362d 60%,#384433); }
.microbe-detail-hero { background: radial-gradient(circle at 82% 48%, rgba(84,188,180,.17), transparent 26%), linear-gradient(115deg,#1e3130,#243638 60%,#2b3e39); }
.plasmid-detail-hero { background: radial-gradient(circle at 82% 48%, rgba(174,224,52,.14), transparent 25%), linear-gradient(115deg,#273128,#30362b 60%,#3a3d2c); }
.virus-detail-hero { background: radial-gradient(circle at 82% 48%, rgba(239,162,64,.16), transparent 25%), linear-gradient(115deg,#2c2d29,#39332d 60%,#43382e); }

.biology-research-log {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.biology-research-log article {
    min-height: 74px;
    padding: 12px 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--soft);
}
.biology-research-log small { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.biology-research-log strong { color: var(--ink); font-size: 14px; line-height: 1.4; }

.dark-theme .biology-subpage-tabs,
.dark-theme .biology-research-ribbon,
.dark-theme .biology-resource-filters { background: color-mix(in srgb, var(--paper) 92%, #0b100d); }
.dark-theme .biology-subpage-tabs button.active { color: var(--ink); background: color-mix(in srgb, var(--accent) 18%, var(--paper)); }
.dark-theme .biology-detail-hero { color: #f1f7f3; }
.dark-theme .biology-record-kind { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--paper)); }

body.background-all-lives .biology-subpage-tabs,
body.background-all-lives .biology-subpage-tabs button,
body.background-all-lives .biology-record-kind,
body.background-all-lives .biology-research-log article { border-radius: 0; }
body.background-all-lives .biology-subpage-tabs button.active { color: #fff; background: var(--atlas-blue); }
body.background-all-lives .biology-subpage-tabs button.active span { color: #fff; }
body.background-all-lives .biology-subpage-tabs button.active::after { background: var(--atlas-red); }
body.background-all-lives .biology-research-ribbon i { background: linear-gradient(90deg,var(--atlas-blue),var(--atlas-red)); }

body.background-black-current .biology-subpage-tabs { border-radius: 20px; background: rgba(5,20,15,.88); }
body.background-black-current .biology-subpage-tabs button { color: #a7c9bf; border-color: rgba(94,211,191,.18); }
body.background-black-current .biology-subpage-tabs button.active { color: #07130e; background: var(--current-cyan); }
body.background-black-current .biology-subpage-tabs button.active span { color: #07130e; }
body.background-black-current .biology-subpage-tabs button.active::after { background: var(--current-purple); }
body.background-black-current .biology-research-ribbon,
body.background-black-current .biology-resource-filters { background: rgba(6,24,18,.8); border-color: rgba(94,211,191,.14); }
body.background-black-current .biology-research-log article { color: #d8e9e2; background: #0a2119; border-color: rgba(94,211,191,.16); }

@media (max-width: 900px) {
    .biology-toolbar-actions { width: 100%; min-width: 0; flex-wrap: wrap; }
    .biology-toolbar-actions .inline-search { max-width: none; }
}

@media (max-width: 700px) {
    .biology-subpage-tabs { grid-template-columns: repeat(4, minmax(84px, 1fr)); overflow-x: auto; border-radius: 14px; }
    .biology-subpage-tabs button { min-height: 48px; padding: 8px 10px; gap: 6px; font-size: 12px; }
    .biology-subpage-tabs button span { font-size: 9px; }
    .biology-table-panel .module-toolbar { align-items: stretch; }
    .biology-toolbar-actions { align-items: stretch; }
    .biology-toolbar-actions .inline-search { flex-basis: 100%; }
    .biology-toolbar-actions .button { flex: 1 1 auto; }
    .biology-research-ribbon { grid-template-columns: 1fr; gap: 7px; padding: 12px 16px; }
    .biology-research-ribbon i { width: 1px; height: 14px; margin-left: 10px; }
    .biology-research-log { grid-template-columns: 1fr; }
}/* Biology workspace refinement 2026-08-24 */
.compact-resource-toolbar,
.resource-only-toolbar { min-height: 58px; justify-content: flex-end; }
.compact-resource-toolbar > :first-child,
.resource-only-toolbar > :first-child { margin-left: auto; }
.resource-only-toolbar .biology-toolbar-actions { margin-left: auto; }
.direct-drag-scroll {
    cursor: grab;
    user-select: none;
    touch-action: pan-y;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
}
.direct-drag-scroll::-webkit-scrollbar { display: none; }
.direct-drag-scroll.is-dragging { cursor: grabbing; }
.direct-drag-scroll.is-dragging * { pointer-events: none; }
.plant-rack-manager { overflow: hidden; }
.plant-rack-toolbar { padding: 12px 18px 10px; }
.plant-rack-actions { display:flex; align-items:center; justify-content:flex-end; }
.plant-rack-tabs {
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:0 18px 13px;
    scroll-snap-type:x proximity;
}
.plant-rack-tab-wrap { position:relative; flex:0 0 250px; scroll-snap-align:start; }
.plant-rack-tab {
    width:100%; min-height:70px; padding:12px 42px 12px 14px;
    text-align:left; color:var(--ink); background:var(--soft);
    border:1px solid var(--line); border-radius:13px; cursor:pointer;
}
.plant-rack-tab strong,.plant-rack-tab small { display:block; }
.plant-rack-tab strong { margin-bottom:5px; font-size:14px; }
.plant-rack-tab small { color:var(--muted); font-size:11px; line-height:1.4; }
.plant-rack-tab.active { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,var(--paper)); box-shadow:inset 3px 0 0 var(--accent); }
.plant-rack-delete {
    position:absolute; top:8px; right:8px; display:grid; place-items:center;
    width:27px; height:27px; padding:0; color:#c65c4c; background:var(--paper);
    border:1px solid color-mix(in srgb,#e96b5a 38%,var(--line)); border-radius:50%; cursor:pointer;
}
.plant-housing-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.72fr); border-top:1px solid var(--line); }
.plant-rack-board { min-width:0; padding:18px; border-right:1px solid var(--line); }
.plant-rack-board > header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:15px; }
.plant-rack-board h3 { margin:3px 0 4px; font-size:18px; }
.plant-rack-board header small { color:var(--muted); font-size:11px; }
.plant-rack-legend { display:flex; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:10px; font-weight:700; }
.plant-rack-legend span { display:flex; align-items:center; gap:5px; }
.plant-rack-legend i { width:10px; height:10px; border:1px dashed var(--line-strong); background:var(--paper); }
.plant-rack-legend i.occupied { border-style:solid; border-color:color-mix(in srgb,var(--accent) 55%,var(--line)); background:color-mix(in srgb,var(--accent) 17%,var(--paper)); }
.plant-rack-legend i.selected { border-style:solid; border-color:var(--accent); background:var(--accent); }
.plant-rack-grid { display:grid; gap:7px; overflow:auto; padding:2px; max-height:460px; }
.plant-rack-position { min-width:70px; min-height:64px; padding:7px; border:1px dashed var(--line-strong); border-radius:10px; color:var(--muted); background:color-mix(in srgb,var(--paper) 90%,transparent); cursor:pointer; }
.plant-rack-position span,.plant-rack-position strong,.plant-rack-position small { display:block; }
.plant-rack-position span { font:800 9px/1 var(--font-latin); letter-spacing:.08em; }
.plant-rack-position strong { margin-top:7px; color:var(--ink); font-size:12px; line-height:1.25; }
.plant-rack-position small { margin-top:4px; font-size:9px; line-height:1.25; }
.plant-rack-position.empty:hover { color:var(--accent-deep); border-color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--paper)); }
.plant-rack-position.occupied { border-style:solid; border-color:color-mix(in srgb,var(--accent) 44%,var(--line)); background:color-mix(in srgb,var(--accent) 9%,var(--soft)); }
.plant-rack-position.active { color:var(--ink); border-color:var(--accent); box-shadow:inset 0 0 0 2px var(--accent); background:color-mix(in srgb,var(--accent) 18%,var(--paper)); }
.plant-position-inspector { min-width:0; padding:18px; background:color-mix(in srgb,var(--soft) 84%,transparent); }
.plant-position-empty { display:grid; place-items:center; min-height:230px; text-align:center; color:var(--muted); }
.plant-position-empty span { font:800 10px var(--font-latin); letter-spacing:.18em; color:var(--accent-deep); }
.plant-position-empty strong { margin-top:8px; color:var(--ink); font-size:17px; }
.plant-position-empty p { max-width:230px; margin:6px auto 0; font-size:11px; line-height:1.6; }
.plant-position-summary header { display:flex; justify-content:space-between; gap:10px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.plant-position-summary header small { color:var(--accent-deep); font:800 10px var(--font-latin); letter-spacing:.08em; }
.plant-position-summary h3 { margin:5px 0 0; font-size:20px; }
.plant-position-summary header > span { font:800 14px var(--font-latin); color:var(--accent-deep); }
.plant-position-meta { display:grid; gap:9px; margin:14px 0; }
.plant-position-meta div { display:grid; grid-template-columns:92px 1fr; gap:10px; align-items:baseline; }
.plant-position-meta small { color:var(--muted); font-size:10px; font-weight:700; }
.plant-position-meta strong { color:var(--ink); font-size:12px; }
.plant-position-notes { padding:11px; color:var(--muted); background:var(--paper); border:1px solid var(--line); border-radius:10px; font-size:11px; line-height:1.55; }
.plant-position-buttons { display:flex; gap:8px; margin-top:14px; }
.plant-position-buttons .button { flex:1; }
.dark-theme .plant-rack-tab,.dark-theme .plant-rack-position,.dark-theme .plant-position-notes { color:var(--ink); background:color-mix(in srgb,var(--paper) 92%,#07100c); }
body.background-all-lives :is(.plant-rack-tab,.plant-rack-position,.plant-position-notes) { border-radius:0; }
body.background-all-lives .plant-rack-tab.active { box-shadow:inset 4px 0 0 var(--atlas-blue); }
@media (max-width:980px){.plant-housing-layout{grid-template-columns:1fr}.plant-rack-board{border-right:0;border-bottom:1px solid var(--line)}}
@media (max-width:700px){.compact-resource-toolbar,.resource-only-toolbar{min-height:52px}.plant-rack-tabs{padding-inline:12px}.plant-rack-tab-wrap{flex-basis:215px}.plant-rack-board,.plant-position-inspector{padding:14px}.plant-rack-grid{max-height:380px}.plant-rack-position{min-width:62px;min-height:58px}.plant-rack-legend{display:none}}
/* Biology bookmark tabs 2026-08-24 */
.biology-subpage-tabs{position:relative;z-index:3;display:flex;grid-template-columns:none;width:max-content;max-width:calc(100% - 24px);margin:0 0 -1px 18px;padding:0 6px;gap:5px;overflow:visible;border:0;border-radius:0;background:transparent}
.biology-subpage-tabs button{position:relative;display:grid;grid-template-columns:28px auto;align-items:center;justify-content:start;gap:9px;min-width:138px;min-height:58px;padding:9px 23px 9px 13px;color:var(--muted);background:color-mix(in srgb,var(--soft) 92%,var(--paper));border:1px solid var(--line);border-bottom-color:var(--line);border-radius:11px 11px 0 0;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%);font:inherit;font-weight:800;cursor:pointer;transition:color .18s ease,background .18s ease,transform .18s ease}
.biology-subpage-tabs button:last-child{border-right:1px solid var(--line)}
.biology-subpage-tabs button::after{content:"";position:absolute;top:0;right:0;bottom:auto;left:auto;width:14px;height:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 48%,var(--paper)) 0 49%,transparent 51%);clip-path:none}
.biology-subpage-tabs button:hover{color:var(--ink);background:color-mix(in srgb,var(--accent) 9%,var(--paper));transform:translateY(-2px)}
.biology-subpage-tabs button.active{z-index:2;color:var(--ink);background:var(--paper);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));border-bottom-color:var(--paper);box-shadow:inset 0 4px 0 var(--accent)}
.biology-tab-icon{width:25px;height:25px;overflow:visible;color:var(--accent-deep);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.biology-tab-copy{display:grid;gap:3px;color:inherit!important}
.biology-tab-copy b{color:var(--accent-deep);font:800 9px/1 var(--font-latin);letter-spacing:.13em}
.biology-tab-copy em{color:inherit;font-style:normal;font-size:14px;line-height:1.15}
.biology-subpage-tabs button.active .biology-tab-icon{color:var(--accent-deep)}
.biology-subpage:first-of-type>.panel:first-child,.biology-subpage>.panel:first-child{position:relative;z-index:1}
.dark-theme .biology-subpage-tabs{background:transparent}
.dark-theme .biology-subpage-tabs button{color:var(--muted);background:color-mix(in srgb,var(--soft) 90%,#07100c);border-color:var(--line)}
.dark-theme .biology-subpage-tabs button.active{color:var(--ink);background:var(--paper);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));border-bottom-color:var(--paper)}
body.background-all-lives .biology-subpage-tabs{background:transparent;border-radius:0}
body.background-all-lives .biology-subpage-tabs button{border-radius:0;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%)}
body.background-all-lives .biology-subpage-tabs button.active{color:#fff;background:var(--atlas-blue);border-bottom-color:var(--atlas-blue);box-shadow:inset 0 4px 0 var(--atlas-red)}
body.background-all-lives .biology-subpage-tabs button.active :is(.biology-tab-icon,.biology-tab-copy,.biology-tab-copy b){color:#fff!important}
body.background-black-current .biology-subpage-tabs{background:transparent;border-radius:0}
body.background-black-current .biology-subpage-tabs button{border-color:rgba(94,211,191,.2)}
body.background-black-current .biology-subpage-tabs button.active{color:#07130e;background:var(--current-cyan);border-bottom-color:var(--current-cyan)}
body.background-black-current .biology-subpage-tabs button.active :is(.biology-tab-icon,.biology-tab-copy,.biology-tab-copy b){color:#07130e!important}
@media(max-width:700px){
  .biology-subpage-tabs{display:flex;grid-template-columns:none;max-width:calc(100% - 12px);margin-left:8px;padding-inline:4px;overflow-x:auto;border-radius:0}
  .biology-subpage-tabs button{flex:0 0 112px;min-width:112px;min-height:52px;padding:7px 16px 7px 10px;gap:6px}
  .biology-tab-icon{width:21px;height:21px}.biology-tab-copy em{font-size:12px}.biology-tab-copy b{font-size:8px}
}

/* Biology bookmark palette 2026-08-24 */
.biology-subpage-tabs button[data-biology-tab="animals"] { --biology-tab-tone: #c3a15d; }
.biology-subpage-tabs button[data-biology-tab="plants"] { --biology-tab-tone: #8fb83f; }
.biology-subpage-tabs button[data-biology-tab="microbes"] { --biology-tab-tone: #4fa39b; }
.biology-subpage-tabs button[data-biology-tab="viruses"] { --biology-tab-tone: #cf8454; }
.biology-subpage-tabs button {
    color: color-mix(in srgb, var(--ink) 88%, var(--biology-tab-tone) 12%);
    background: color-mix(in srgb, var(--surface) 88%, var(--biology-tab-tone) 12%);
    border-color: color-mix(in srgb, var(--line) 68%, var(--biology-tab-tone) 32%);
}
.biology-subpage-tabs button:hover {
    color: var(--ink);
    background: color-mix(in srgb, var(--surface) 82%, var(--biology-tab-tone) 18%);
}
.biology-subpage-tabs button.active {
    color: var(--ink);
    background: color-mix(in srgb, var(--surface) 78%, var(--biology-tab-tone) 22%);
    border-color: color-mix(in srgb, var(--line-dark) 54%, var(--biology-tab-tone) 46%);
    border-bottom-color: var(--surface);
    box-shadow: inset 0 4px 0 var(--biology-tab-tone), 0 -6px 18px color-mix(in srgb, var(--biology-tab-tone) 9%, transparent);
}
.biology-subpage-tabs button .biology-tab-icon {
    color: color-mix(in srgb, var(--ink) 62%, var(--biology-tab-tone) 38%);
}
.dark-theme .biology-subpage-tabs button {
    color: color-mix(in srgb, var(--ink) 86%, var(--biology-tab-tone) 14%);
    background: color-mix(in srgb, var(--surface) 91%, var(--biology-tab-tone) 9%);
    border-color: color-mix(in srgb, var(--line) 70%, var(--biology-tab-tone) 30%);
}
.dark-theme .biology-subpage-tabs button:hover {
    background: color-mix(in srgb, var(--surface) 84%, var(--biology-tab-tone) 16%);
}
.dark-theme .biology-subpage-tabs button.active {
    color: var(--ink);
    background: color-mix(in srgb, var(--surface) 78%, var(--biology-tab-tone) 22%);
    border-bottom-color: var(--surface);
}
body.background-all-lives .biology-subpage-tabs button,
body.dark-theme.background-all-lives .biology-subpage-tabs button {
    color: var(--theme-text);
    background: color-mix(in srgb, var(--theme-paper) 88%, var(--biology-tab-tone) 12%);
    border-color: color-mix(in srgb, var(--theme-rule) 68%, var(--biology-tab-tone) 32%);
}
body.background-all-lives .biology-subpage-tabs button.active,
body.dark-theme.background-all-lives .biology-subpage-tabs button.active {
    color: var(--theme-heading);
    background: color-mix(in srgb, var(--theme-paper) 76%, var(--biology-tab-tone) 24%);
    border-bottom-color: var(--theme-paper);
    box-shadow: inset 0 4px 0 var(--biology-tab-tone), 4px -4px 0 color-mix(in srgb, var(--biology-tab-tone) 16%, transparent);
}body.background-all-lives .biology-subpage-tabs button.active :is(.biology-tab-icon, .biology-tab-copy, .biology-tab-copy b),
body.dark-theme.background-all-lives .biology-subpage-tabs button.active :is(.biology-tab-icon, .biology-tab-copy, .biology-tab-copy b) {
    color: var(--theme-heading) !important;
}

/* Housing room hierarchy 2026-08-26 */
#animalRoomTabs,.animal-room-overview{--room-accent:#c3a15d}#plantRoomTabs,.plant-room-overview{--room-accent:#8fb83f}.animal-rack-actions,.plant-rack-actions{gap:8px;flex-wrap:wrap}.housing-room-tabs{display:flex;gap:9px;min-height:86px;padding:0 18px 14px;overflow-x:auto;border-bottom:1px solid var(--line)}.housing-room-tab{position:relative;flex:0 0 220px;display:grid;gap:4px;min-height:68px;padding:11px 14px;overflow:hidden;text-align:left;color:var(--ink);background:color-mix(in srgb,var(--soft) 92%,var(--room-accent) 8%);border:1px solid color-mix(in srgb,var(--line) 76%,var(--room-accent) 24%);border-radius:11px;cursor:pointer}.housing-room-tab::after{content:"";position:absolute;right:-22px;bottom:-30px;width:76px;height:76px;border:1px solid color-mix(in srgb,var(--room-accent) 42%,transparent);transform:rotate(18deg)}.housing-room-tab>*{position:relative;z-index:1}.housing-room-tab span{color:color-mix(in srgb,var(--ink) 52%,var(--room-accent) 48%);font:800 9px/1 var(--font-latin);letter-spacing:.13em}.housing-room-tab strong{font-size:13px;line-height:1.25}.housing-room-tab small{color:var(--muted);font-size:10px}.housing-room-tab:hover{border-color:color-mix(in srgb,var(--room-accent) 62%,var(--line))}.housing-room-tab.active{background:color-mix(in srgb,var(--paper) 78%,var(--room-accent) 22%);border-color:color-mix(in srgb,var(--room-accent) 72%,var(--line));box-shadow:inset 4px 0 0 var(--room-accent)}.housing-room-empty-tabs{align-self:center;padding:8px 2px;color:var(--muted);font-size:11px}.housing-room-overview{padding:17px 18px 19px;background:color-mix(in srgb,var(--soft) 76%,transparent);border-bottom:1px solid var(--line)}.housing-room-overview>header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.housing-room-overview h3{margin:4px 0;font-size:18px}.housing-room-overview header small{color:var(--muted);font-size:11px}.housing-room-drag-hint{flex:0 0 auto;padding:6px 9px;color:color-mix(in srgb,var(--ink) 72%,var(--room-accent) 28%);background:color-mix(in srgb,var(--paper) 84%,var(--room-accent) 16%);border:1px solid color-mix(in srgb,var(--line) 72%,var(--room-accent) 28%);border-radius:999px;font-size:10px;font-weight:800}.housing-room-map{position:relative;min-height:276px;overflow:hidden;background:linear-gradient(90deg,color-mix(in srgb,var(--line) 58%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--line) 58%,transparent) 1px,transparent 1px),color-mix(in srgb,var(--paper) 91%,var(--room-accent) 9%);background-size:32px 32px;border:1px solid color-mix(in srgb,var(--line) 78%,var(--room-accent) 22%);border-radius:13px;box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--paper) 72%,transparent);touch-action:none}.housing-room-map::before,.housing-room-map::after{content:"";position:absolute;pointer-events:none}.housing-room-map::before{inset:12px;border:1px solid color-mix(in srgb,var(--room-accent) 24%,transparent)}.housing-room-map::after{right:18px;bottom:0;width:58px;height:9px;border:solid color-mix(in srgb,var(--room-accent) 42%,var(--line));border-width:1px 1px 0;background:var(--paper)}.housing-layout-rack{position:absolute;z-index:2;display:grid;gap:3px;width:148px;min-height:66px;padding:10px 33px 9px 11px;color:var(--ink);background:color-mix(in srgb,var(--paper) 84%,var(--room-accent) 16%);border:1px solid color-mix(in srgb,var(--line-dark) 62%,var(--room-accent) 38%);border-radius:9px;box-shadow:0 8px 18px color-mix(in srgb,var(--ink) 10%,transparent);cursor:grab;user-select:none;touch-action:none}.housing-layout-rack::before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--room-accent);border-radius:8px 0 0 8px}.housing-layout-rack>span{color:color-mix(in srgb,var(--ink) 54%,var(--room-accent) 46%);font:800 8px/1 var(--font-latin);letter-spacing:.12em}.housing-layout-rack>strong{overflow:hidden;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.housing-layout-rack>small{overflow:hidden;color:var(--muted);font-size:9px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.housing-layout-rack:hover,.housing-layout-rack.active{border-color:var(--room-accent);box-shadow:0 10px 22px color-mix(in srgb,var(--room-accent) 18%,transparent),inset 0 0 0 1px var(--room-accent)}.housing-layout-rack.is-dragging{z-index:8;cursor:grabbing;box-shadow:0 16px 30px color-mix(in srgb,var(--ink) 20%,transparent)}.housing-layout-rack-delete{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:23px;height:23px;padding:0;color:#c65c4c;background:color-mix(in srgb,var(--paper) 92%,transparent);border:1px solid color-mix(in srgb,#e96b5a 34%,var(--line));border-radius:50%;font:700 14px/1 var(--font-latin);cursor:pointer}.housing-room-empty{position:absolute;z-index:2;inset:50% auto auto 50%;display:grid;gap:5px;min-width:230px;padding:17px 22px;color:var(--ink);background:color-mix(in srgb,var(--paper) 90%,var(--room-accent) 10%);border:1px dashed color-mix(in srgb,var(--room-accent) 58%,var(--line));border-radius:11px;transform:translate(-50%,-50%);cursor:pointer}.housing-room-empty strong{font-size:13px}.housing-room-empty span{color:var(--muted);font-size:10px}:is(.animal-housing-layout,.plant-housing-layout){display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.72fr);border-top:0}:is(.animal-rack-board,.plant-rack-board){min-width:0;padding:18px;border-right:1px solid var(--line)}:is(.animal-rack-grid,.plant-rack-grid){display:grid;gap:7px;max-height:460px;padding:2px;overflow:auto}:is(.animal-rack-position,.plant-rack-position){min-width:60px;min-height:60px}.dark-theme .housing-room-tab,.dark-theme .housing-layout-rack,.dark-theme .housing-room-empty{color:var(--ink);background:color-mix(in srgb,var(--paper) 90%,var(--room-accent) 10%)}.dark-theme .housing-room-map{background:linear-gradient(90deg,color-mix(in srgb,var(--line) 64%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--line) 64%,transparent) 1px,transparent 1px),color-mix(in srgb,var(--paper) 93%,var(--room-accent) 7%);background-size:32px 32px}body.background-all-lives :is(.housing-room-tab,.housing-room-map,.housing-layout-rack,.housing-room-empty){border-radius:0}body.background-all-lives .housing-room-map{box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--theme-paper) 76%,transparent)}body.background-all-lives .housing-layout-rack{background:color-mix(in srgb,var(--theme-paper) 82%,var(--room-accent) 18%)}@media(max-width:980px){:is(.animal-housing-layout,.plant-housing-layout){grid-template-columns:1fr}:is(.animal-rack-board,.plant-rack-board){border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:700px){.housing-room-tabs{min-height:78px;padding-inline:12px}.housing-room-tab{flex-basis:190px;min-height:62px}.housing-room-overview{padding:14px 12px 15px}.housing-room-overview>header{align-items:flex-start;flex-direction:column;gap:7px}.housing-room-drag-hint{align-self:flex-start}.housing-room-map{min-height:240px}.housing-layout-rack{width:132px;min-height:62px;padding-left:10px}.housing-room-empty{min-width:200px}:is(.animal-rack-board,.plant-rack-board){padding:13px;overflow-x:auto}:is(.animal-rack-grid,.plant-rack-grid){min-width:540px;max-height:390px}}
/* Housing room refinement 2026-08-26 */
.housing-room-tabs{min-height:96px;padding:0 22px 16px}
.housing-room-tab{flex-basis:232px;min-height:76px;padding:12px 52px 11px 15px;cursor:grab}
.housing-room-tab:active{cursor:grabbing}
.housing-room-tab.active{background:color-mix(in srgb,var(--paper) 64%,var(--room-accent) 36%);border:2px solid color-mix(in srgb,var(--room-accent) 86%,var(--line));box-shadow:inset 6px 0 0 var(--room-accent),0 8px 22px color-mix(in srgb,var(--room-accent) 20%,transparent)}
.housing-room-tab:not(.active){opacity:.76;filter:saturate(.72)}
.housing-room-tab:hover{opacity:1;filter:none}
.housing-room-tab::after{right:10px;bottom:8px;width:45px;height:42px;border:0;opacity:.2;transform:none;background:repeating-linear-gradient(0deg,transparent 0 7px,var(--room-accent) 7px 9px),linear-gradient(90deg,transparent 43%,var(--room-accent) 43% 50%,transparent 50%)}
#plantRoomTabs .housing-room-tab::after{background:repeating-linear-gradient(0deg,transparent 0 8px,var(--room-accent) 8px 10px),radial-gradient(ellipse at 62% 30%,transparent 0 26%,var(--room-accent) 28% 36%,transparent 38%)}
.housing-room-edit{position:absolute;z-index:3;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;padding:0;color:var(--ink);background:color-mix(in srgb,var(--paper) 86%,var(--room-accent) 14%);border:1px solid color-mix(in srgb,var(--line) 68%,var(--room-accent) 32%);border-radius:50%;font:800 14px/1 var(--font-latin);cursor:pointer}
.housing-room-edit:hover{background:color-mix(in srgb,var(--paper) 68%,var(--room-accent) 32%);border-color:var(--room-accent)}
.housing-room-grip{position:absolute;right:13px;bottom:7px;color:color-mix(in srgb,var(--muted) 58%,var(--room-accent) 42%);font:800 12px/1 var(--font-latin);letter-spacing:-2px}
.housing-room-tab.is-reordering{opacity:.42}
.housing-room-tab.is-drop-target{outline:3px solid var(--room-accent);outline-offset:2px}
.housing-room-overview{padding:24px 26px 28px}
.housing-room-overview>header{margin-bottom:16px}
.housing-room-overview header small,.housing-room-empty-tabs{font-family:var(--font-interface);font-size:12px;font-weight:700;line-height:1.5}
.housing-room-map{min-height:clamp(430px,52vh,620px);border-width:2px;border-radius:14px}
.housing-room-map[data-room-shape="rounded"]{border-radius:72px}
.housing-room-map[data-room-shape="angled"]{border-radius:0;clip-path:polygon(0 0,94% 0,100% 12%,100% 100%,6% 100%,0 88%)}
.housing-room-map[data-room-shape="l-shape"]{border-radius:0;clip-path:polygon(0 0,100% 0,100% 68%,72% 68%,72% 100%,0 100%)}
.housing-room-map::after{z-index:5;background:color-mix(in srgb,var(--paper) 96%,var(--room-accent) 4%);border-color:color-mix(in srgb,var(--room-accent) 72%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--paper) 88%,transparent)}
.housing-room-map[data-entrance-side="right"]::after{right:-2px;left:auto;top:var(--room-entrance-position);bottom:auto;width:11px;height:74px;border-width:1px 0 1px 1px;transform:translateY(-50%)}
.housing-room-map[data-entrance-side="left"]::after{right:auto;left:-2px;top:var(--room-entrance-position);bottom:auto;width:11px;height:74px;border-width:1px 1px 1px 0;transform:translateY(-50%)}
.housing-room-map[data-entrance-side="top"]::after{right:auto;left:var(--room-entrance-position);top:-2px;bottom:auto;width:74px;height:11px;border-width:0 1px 1px;transform:translateX(-50%)}
.housing-room-map[data-entrance-side="bottom"]::after{right:auto;left:var(--room-entrance-position);top:auto;bottom:-2px;width:74px;height:11px;border-width:1px 1px 0;transform:translateX(-50%)}
.housing-layout-rack{width:158px;min-height:74px;padding:11px 36px 10px 13px;transition:border-color .18s ease,box-shadow .18s ease,opacity .18s ease,filter .18s ease}
.housing-layout-rack::after{content:"";position:absolute;z-index:-1;inset:8px 30px 8px 40%;opacity:.12;pointer-events:none;background:repeating-linear-gradient(0deg,var(--room-accent) 0 2px,transparent 2px 8px),linear-gradient(90deg,var(--room-accent) 0 2px,transparent 2px)}
.housing-layout-rack.plant::after{inset:8px 30px 8px 48%;background:repeating-linear-gradient(0deg,var(--room-accent) 0 2px,transparent 2px 10px),radial-gradient(ellipse at 50% 30%,transparent 0 25%,var(--room-accent) 27% 36%,transparent 38%)}
.housing-layout-rack:not(.active){opacity:.62;filter:saturate(.46)}
.housing-layout-rack:not(.active):hover{opacity:.9;filter:saturate(.82)}
.housing-layout-rack.active{z-index:4;opacity:1;filter:none;background:color-mix(in srgb,var(--paper) 67%,var(--room-accent) 33%);border:2px solid var(--room-accent);box-shadow:0 12px 28px color-mix(in srgb,var(--room-accent) 26%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--paper) 70%,transparent)}
.housing-layout-rack.active::before{width:7px}
.housing-layout-rack-state{position:absolute;right:32px;bottom:7px;padding:2px 5px;color:color-mix(in srgb,var(--ink) 72%,var(--room-accent) 28%);background:color-mix(in srgb,var(--paper) 72%,var(--room-accent) 28%);border:1px solid color-mix(in srgb,var(--room-accent) 58%,var(--line));border-radius:999px;font-family:var(--font-interface);font-size:9px;font-style:normal;font-weight:800;line-height:1}
.housing-layout-rack>small{font-family:var(--font-interface);font-size:10px;font-weight:700}
.dark-theme .housing-room-tab.active,.dark-theme .housing-layout-rack.active{background:color-mix(in srgb,var(--paper) 72%,var(--room-accent) 28%)}
@media(max-width:700px){.housing-room-overview{padding:17px 13px 19px}.housing-room-map{min-height:360px}.housing-room-tab{flex-basis:208px}.housing-layout-rack{width:144px}}
/* Housing room simplification and card zoom 2026-08-26 */
.housing-room-tabs{
    min-height:0;
    padding:0 22px 8px;
    border-bottom:0;
}
.housing-room-tab{padding-right:48px;cursor:zoom-in}
.housing-room-tab:active{cursor:grabbing}
.housing-room-tab::after,
#plantRoomTabs .housing-room-tab::after,
.housing-layout-rack::after,
.housing-layout-rack.plant::after{display:none!important}
.housing-room-overview{padding:0 22px 24px;background:transparent}
.housing-room-overview>header{display:none!important}
.housing-room-map{
    min-height:clamp(430px,52vh,620px);
    transition:min-height .28s ease,box-shadow .28s ease;
}
.housing-room-map.is-zoomed{
    min-height:clamp(650px,78vh,900px);
    box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--paper) 72%,transparent),0 16px 38px color-mix(in srgb,var(--ink) 12%,transparent);
}
@media(max-width:700px){
    .housing-room-tabs{padding:0 12px 7px}
    .housing-room-overview{padding:0 12px 18px}
    .housing-room-map.is-zoomed{min-height:70vh}
}

/* Fully collapsible room plans 2026-08-26 */
.animal-rack-manager>.compact-resource-toolbar,
.plant-rack-manager>.compact-resource-toolbar{border-bottom:1px solid var(--line)!important}
.housing-room-tabs{
    padding:14px 22px 14px;
}
.housing-room-tabs.has-expanded-room{padding-bottom:0}
.housing-room-overview{
    display:none;
    padding:0 22px 24px;
}
.housing-room-overview.is-expanded{display:block}
.housing-layout-rack-delete{
    width:25px;
    height:25px;
    padding:0;
    border-width:2px;
    font-size:0;
    line-height:1;
}
@media(max-width:700px){
    .housing-room-tabs{padding:12px 12px 12px}
    .housing-room-tabs.has-expanded-room{padding-bottom:0}
    .housing-room-overview{padding:0 12px 18px}
}

/* Resource detail headers follow the active light/dark workspace palette. */
body #recordDetailDialog :is(.microbe-detail-hero,.plasmid-detail-hero,.virus-detail-hero){
    color:var(--ink)!important;
    background:linear-gradient(110deg,color-mix(in srgb,var(--surface-2) 84%,var(--accent) 16%),var(--surface) 58%,color-mix(in srgb,var(--surface-2) 90%,var(--warning) 10%))!important;
    border-color:var(--line)!important;
}
body #recordDetailDialog :is(.microbe-detail-hero,.plasmid-detail-hero,.virus-detail-hero) :is(h3,p){color:var(--ink)!important}

/* Explicit room-card expansion state and standard pointer interaction */
.housing-room-tab{
    cursor:pointer;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.housing-room-tab:active{cursor:grabbing}
.housing-room-tab.is-expanded{
    background:color-mix(in srgb,var(--paper) 72%,var(--room-accent) 28%);
    border-color:var(--room-accent);
    box-shadow:inset 6px 0 0 var(--room-accent),inset 0 -3px 0 color-mix(in srgb,var(--room-accent) 72%,transparent),0 7px 18px color-mix(in srgb,var(--room-accent) 18%,transparent);
}
.housing-room-toggle{
    position:absolute;
    right:10px;
    bottom:7px;
    display:grid;
    place-items:center;
    width:21px;
    height:21px;
    color:var(--ink);
    background:color-mix(in srgb,var(--paper) 82%,var(--room-accent) 18%);
    border:1.5px solid color-mix(in srgb,var(--line) 54%,var(--room-accent) 46%);
    border-radius:50%;
    font:900 15px/1 var(--font-latin);
    font-style:normal;
    pointer-events:none;
}
.housing-room-tab.is-expanded .housing-room-toggle{
    color:color-mix(in srgb,var(--ink) 76%,var(--room-accent) 24%);
    border-color:var(--room-accent);
}
.housing-room-grip{right:39px}
.dark-theme .housing-room-tab.is-expanded{
    background:color-mix(in srgb,var(--paper) 70%,var(--room-accent) 30%);
}

/* Room-plan scale refinement */
.housing-room-map{
    min-height:clamp(380px,46vh,520px);
}
.housing-room-map.is-zoomed{
    min-height:clamp(560px,68vh,760px);
}
.housing-layout-rack{
    width:190px;
}
@media(max-width:700px){
    .housing-room-map.is-zoomed{min-height:60vh}
    .housing-layout-rack{width:168px}
}

/* Individual organisms and microbial culture equipment share one drag system. */
#microbeIncubatorTabs,.microbe-incubator-overview{--room-accent:#4fa39b}
.microbe-rack-actions{display:flex;gap:8px;flex-wrap:wrap}
.microbe-rack-manager>.compact-resource-toolbar{border-bottom:1px solid var(--line)!important}
.housing-layout-rack.microbe::before{background:#4fa39b}
.microbe-rack-position.occupied{background:color-mix(in srgb,#4fa39b 12%,var(--soft));border-color:color-mix(in srgb,#4fa39b 50%,var(--line))}
[data-biological-drag]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
[data-biological-drag].is-dragging{opacity:.42;cursor:grabbing}
.cage-mouse-tokens{display:flex;flex-wrap:wrap;gap:3px}.cage-mouse-token{display:grid;place-items:center;width:22px;height:22px;color:inherit}.cage-mouse-token svg{width:20px;height:20px;fill:currentColor}
.biology-item-drag-ghost{
    display:grid!important;
    place-items:center;
    width:62px!important;
    min-height:62px!important;
    padding:10px!important;
    color:var(--ink);
    background:color-mix(in srgb,var(--paper) 76%,var(--accent) 24%)!important;
    border:2px solid var(--accent)!important;
    border-radius:50%!important;
}
.biology-item-drag-ghost svg{display:block;width:36px;height:36px;overflow:visible;fill:currentColor}
.biology-item-drag-ghost.mouse{--accent:#c3a15d}.biology-item-drag-ghost.plant{--accent:#8fb83f}.biology-item-drag-ghost.microbe{--accent:#4fa39b}
:is(.animal-rack-position,.plant-rack-position).drop-invalid{border-color:var(--danger)!important;outline:3px solid var(--danger);outline-offset:-3px}
@media(max-width:700px){.biology-item-drag-ghost{width:56px!important;min-height:56px!important}.biology-item-drag-ghost svg{width:32px;height:32px}}
