.workspace-picker{margin:4px 20px 20px;display:grid;gap:8px}.workspace-picker label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.workspace-picker select{width:100%;padding:10px;border:1px solid #cad8d0;border-radius:7px;background:#fff}.workspace-picker .link-button{text-align:left;font-size:12px}.workspace-demo,.workspace-production{font-size:11px;font-weight:700;letter-spacing:.08em;border-radius:5px;padding:5px 9px;background:#edf3ee;color:#355f50}.workspace-demo{background:#f7edd5;color:#775614}
.filter-builder{margin:12px 0;background:#fff;border:1px solid #d8e1da;border-radius:8px;padding:14px}.filter-builder summary{cursor:pointer;font-weight:600}.filter-mode,.filter-add{display:flex;gap:18px;align-items:center;margin:12px 0}.filter-group{border:1px solid #d4ded6;padding:12px;margin:10px 0;border-radius:6px;background:#f8faf7;min-width:0}.filter-group legend{font-size:12px;padding:0 8px}.filter-group legend select{padding:5px 8px;font-size:12px}.filter-condition{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 32px;gap:8px;margin:10px 0}.filter-condition input,.filter-condition select{width:100%;min-width:0}.filter-builder textarea{width:100%}
.specimen-tools,.schedule-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.specimen-tools .search{flex:1;min-width:160px}.specimen-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.specimen-card{display:flex;align-items:flex-start;gap:14px;border:1px solid #dce4dd;border-radius:10px;background:#fff;padding:20px}.specimen-card>div{flex:1;min-width:0}.specimen-card h2{font-size:17px;margin:8px 0;overflow-wrap:anywhere}.specimen-card h2 a{color:inherit}.specimen-card p{font-size:12px;color:#657469;margin:0}.specimen-symbol{background:#edf2e9;color:#46654e;padding:10px;border-radius:10px}.specimen-card .icon-button{flex-shrink:0}
.cage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}.cage-card{padding:22px;background:#fff;border:1px solid #dce4dd;border-radius:10px}.cage-card header{display:flex;justify-content:space-between;align-items:center;gap:12px}.cage-card header>span{font-size:13px;color:#657469}.cage-occupants{margin:18px 0;display:grid;gap:10px}.cage-occupants a{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid #edf0eb;color:inherit}.cage-occupants small,.animal-picker small{display:block;color:#637064;margin-top:3px}.animal-picker{max-height:45vh;overflow:auto;margin:16px 0}.animal-picker label{padding:10px;border-bottom:1px solid #edf0eb}.cage-card p{font-size:13px}.cage-card .button{width:100%}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-day{min-width:0;background:#eef2ec;border-radius:8px;padding:8px}.calendar-day h2{font-size:12px;margin:6px 3px 14px}.calendar-day.is-today{background:#e1edde;outline:1px solid #8eaa8c}.schedule-task{padding:12px;background:white;border:1px solid #d6dfd4;border-radius:7px;margin-bottom:10px;overflow-wrap:anywhere}.schedule-task h3{font-size:14px;line-height:1.5;margin:8px 0}.schedule-task p,.schedule-task small,.schedule-task time{font-size:11px;line-height:1.5;display:block}.schedule-task .button{font-size:11px;padding:8px 6px;white-space:normal;width:100%;margin-top:8px}.schedule-agenda{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}.resource-card{padding:20px;background:#fff;border:1px solid #d6dfd4;border-radius:10px}.resource-card h2{font-size:18px}.resource-booking{padding:10px 0;border-bottom:1px solid #e6ece4;font-size:13px}.resource-booking small{display:block;margin-top:4px}.resource-absence{padding:10px;background:#f7ecd7;font-size:12px;margin:10px 0;border-radius:5px}.booking-row{display:grid;grid-template-columns:1fr 1fr 36px;gap:8px;margin:12px 0}.booking-row select,.booking-row input{min-width:0;width:100%}
.bench-launch{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 24px}.bench-order{padding-left:22px}.bench-order li{padding:7px 0;display:flex;gap:8px;align-items:center}.bench-order span{flex:1}.bench-progress{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#eaf1e6;border:1px solid #c6d7bf;padding:15px 20px;border-radius:9px;margin-bottom:18px}.bench-progress span{display:block;font-size:10px;letter-spacing:.1em;margin-bottom:7px}.bench-progress strong{font-size:17px}.capture-exceptions{border-top:1px solid #e0e7dc;padding:16px 0}.capture-exceptions summary{cursor:pointer;font-size:13px;font-weight:600}.capture-exceptions .capture-time{border:0;padding-bottom:0}.capture-topline{flex-wrap:wrap}.capture-topline .button{margin-left:auto}.capture-field small:empty{display:none}.job-notes{margin-top:28px}.job-notes article{background:#fff;border-left:3px solid #9ab38c;padding:14px 20px;margin:12px 0}.job-notes article p{white-space:pre-wrap;overflow-wrap:anywhere}.job-notes small{color:#627063}
@media(max-width:1100px){.calendar-week{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-day{min-height:130px}}
@media(max-width:650px){.calendar-week{display:block}.calendar-day{min-height:0;margin-bottom:16px;padding:12px}.calendar-day:has(.schedule-task) h2{font-size:15px}.schedule-task .button{width:auto;padding:10px 14px}.schedule-task h3{font-size:16px}.schedule-task p,.schedule-task small,.schedule-task time{font-size:13px}.filter-condition{grid-template-columns:1fr 1fr 30px;gap:6px}.filter-condition>[data-filter-field]{grid-column:1/3}.filter-condition>[data-filter-remove]{grid-column:3;grid-row:1/3}.filter-condition>[data-filter-value]{grid-column:2}.filter-group{padding:8px}.filter-group legend span{display:none}.filter-add{gap:10px;flex-wrap:wrap}.specimen-tools{gap:10px}.specimen-cards,.cage-grid{grid-template-columns:1fr}.booking-row{grid-template-columns:1fr 32px}.booking-row>select:first-child{grid-column:1}.booking-row>select:nth-child(2){grid-column:1}.booking-row>button{grid-column:2;grid-row:1/3}.capture-buttons .button{min-height:48px}.bench-progress{padding:12px}.capture-topline>span{display:none}.capture-fields input{font-size:20px;min-height:48px}.capture-time{grid-template-columns:1fr 1fr}.capture-time .button{grid-column:1/-1}}
@media print{#capturePrint.print-cages{display:block!important}#capturePrint.print-cages canvas{display:block;width:190mm!important;height:auto!important;max-height:135mm;break-inside:avoid;margin:0 auto 8mm}#capturePrint.print-cages canvas:nth-child(2n){break-after:page}}
.schedule-task.is-overdue{border-left:3px solid #ae6c20}.missing-resource{color:#945915}.calendar-empty{font-size:12px;color:#6b7869;padding:0 3px}.agenda-row{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:start;margin:12px 0}.agenda-row>strong{font-size:13px;margin-top:14px}.schedule-unscheduled{margin-top:28px}.schedule-unscheduled>.schedule-task{max-width:460px}.tutorial-links{display:flex;gap:15px}.tutorial-links .link-button{color:#b8d9c8}.workspace-picker label{color:#b8c8c3}.booking-row label{min-width:0}
@media(max-width:650px){.agenda-row{display:block}.agenda-row>strong{display:block;margin-bottom:10px}.booking-row label{grid-column:1}.booking-row button{grid-column:2;grid-row:1/3}}
.schedule-tools input{width:190px;flex:0 1 190px}.schedule-tools select{width:auto;min-width:155px;flex:0 1 180px}.schedule-tools>.read-note{margin:0;font-size:12px}.resource-grid{align-items:start}.resource-bookings{padding:0;list-style:none}.resource-bookings li{padding:12px 0;border-bottom:1px solid #e1e7df;display:grid;gap:5px}.resource-bookings time,.resource-bookings small{font-size:11px;color:#637464}.resource-bookings a{font-size:14px}.resource-card>p{font-size:13px;margin:10px 0}.schedule-task p{margin:7px 0}.schedule-task p .icon{display:inline-block;vertical-align:middle;margin-right:5px}.specimen-tools select{width:auto;flex:0 1 180px}.specimen-tools .search input{width:100%}.filter-group legend select{width:auto}.filter-condition>select{padding:8px}.schedule-task>.link-button{display:block;margin-top:12px;padding:6px 0;text-align:left}.calendar-day h2{line-height:1.5}
@media(max-width:650px){.schedule-tools{gap:8px}.schedule-tools input{width:calc(100% - 92px);flex:1 1 170px}.schedule-tools select{width:calc(50% - 4px);flex:1 1 130px}.schedule-tools>.read-note{width:100%}}
.production-setup{margin:25px 0;background:#fff;border:1px solid #d5dfd2;border-radius:10px;padding:25px}.production-setup h2{font-size:20px;margin:0 0 10px}.production-setup p{color:#626f62;font-size:14px;margin-bottom:20px}.production-setup>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.production-setup a{padding:14px;background:#f1f5ef;border-radius:6px;display:flex;align-items:center;justify-content:space-between;font-size:13px}
.cage-details{display:block;margin-top:14px}.demo-scenarios{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.demo-scenarios{grid-template-columns:1fr}}
.resource-bookings{max-height:280px;overflow:auto;overscroll-behavior:contain;padding-right:5px}.resource-bookings:focus-visible{outline:2px solid #7b9e85;outline-offset:3px}
/* Keep the workspace selector and tour actions aligned in both languages. */
.workspace-picker{flex:none;min-width:0;margin:0 20px 20px}.tutorial-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tutorial-links .link-button{min-width:0;min-height:40px;line-height:1.4;padding:7px 0;white-space:normal;text-align:left}.sidebar .brand,.sidebar-bottom{flex:none}.sidebar #nav{min-height:0;scrollbar-width:thin}.nav-link>span:not(.nav-count){min-width:0;overflow-wrap:anywhere}.nav-count{flex:none}.brand-mark,.avatar{flex:none}@media(max-height:650px){.sidebar .brand{padding-top:17px;padding-bottom:17px}.workspace-picker{margin-bottom:12px}.sidebar-bottom{padding-top:12px;padding-bottom:12px}}
@media(min-width:701px) and (max-width:1150px){.tutorial-links{grid-template-columns:1fr;gap:0}.tutorial-links .link-button{min-height:34px}}
/* Freeze the page behind the mobile menu while keeping its own list scrollable.
   Large viewport paint covers browser-toolbar transitions; dynamic height keeps
   the account controls inside the currently visible viewport. */
@media(max-width:700px){
 html.mobile-nav-open{overflow:hidden;overscroll-behavior:none}
 body.mobile-nav-open{position:fixed;inset-inline:0;top:var(--navigation-scroll-top,0px);width:100%;overflow:hidden}
 .sidebar{bottom:auto;height:100%;height:100dvh;isolation:isolate;padding-block:env(safe-area-inset-top,0px) env(safe-area-inset-bottom,0px)}
 .sidebar::before{content:'';position:absolute;inset:0 0 auto;height:100vh;height:100lvh;background:var(--green-dark);z-index:-1;pointer-events:none}
 .sidebar #nav{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
}

/* Source evidence remains distinct from current cages and transfer controls. */
.source-housing { margin-block:2rem; }
.source-history-card { min-width:0; padding:1.2rem; border:1px solid var(--line); border-radius:16px; background:var(--white); }
.source-history-card header { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; justify-content:space-between; }
.source-history-card h3 { margin:0; }
.source-memberships { padding:0; list-style:none; }
.source-memberships li { display:grid; gap:.3rem; padding:.8rem 0; border-bottom:1px solid var(--line); }
.source-memberships small,.source-memberships span { color:var(--muted); }
.source-history-card,.specimen-facts dd,.specimen-card p,.material-card .eyebrow,.source-memberships { overflow-wrap:anywhere; }

.material-identifier { min-width:0; font-size:.82rem; line-height:1.5; overflow-wrap:anywhere; }
