@font-face{font-family:"Myriad Pro";src:url("../fonts/myriad-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Myriad Pro";src:url("../fonts/myriad-Semibold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Myriad Pro";src:url("../fonts/myriad-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --primary:#1b3162;
  --primary-dark:#0e1e3c;
  --primary-soft:#e3ecfa;
  --accent:#347fbd;
  --accent-dark:#23679f;
  --topbar:#1b3162;
  --topbar-deep:#0a1730;
  --footer:#223d71;
  --canvas:#f1f4f9;
  --surface:#ffffff;
  --surface-soft:#fbfcfe;
  --surface-strong:#e6ebf2;
  --border:#dfe6ef;
  --border-soft:#eff3f8;
  --border-strong:#cbd5e3;
  --ink:#12203a;
  --ink-soft:#47597a;
  --ink-faint:#7b8ca6;
  --ink-mute:#9aa8bd;
  --on-dark:#c3d2e8;
  --on-dark-soft:#7f9bc4;
  --success:#14764d;
  --success-bg:#e2f2ea;
  --warning:#8a5109;
  --warning-bg:#fdf0d8;
  --danger:#982937;
  --danger-dark:#7d2130;
  --danger-bg:#fbeef0;
  --danger-border:#e0b6bd;
  --sidebar-expanded:242px;
  --sidebar-collapsed:76px;
  --topbar-h:56px;
  --footer-h:52px;
  --radius-sm:7px;
  --radius-md:10px;
  --radius-lg:12px;
  --shadow-sm:0 1px 2px rgba(18,32,58,.05);
  --shadow-float:0 16px 40px rgba(6,16,36,.18);
  --shadow-drawer:-20px 0 52px rgba(6,16,36,.3);
  --focus-ring:0 0 0 3px rgba(52,127,189,.22);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-standard:cubic-bezier(.4,0,.2,1);
  --dur-micro:150ms;
  --dur-move:220ms;
  --dur-overlay:200ms;
  --z-sticky:20;
  --z-scrim:40;
  --z-sidebar:50;
  --z-modal:100;
  --z-toast:120;
}

/* Sombreado y textura por tipo de espacio: degradado azul corporativo en los
   tres; la textura distingue sala comun y almacen (el laboratorio va liso). */
.space-drawer-laboratory,.space-drawer-common,.space-drawer-storage,
.case-space-card{--tyc:#223d71;--tybd:#d8e2f0;--tyi:#e6eef8;--wash:rgba(52,127,189,.17);--pat:none;--patsize:auto}
.space-drawer-common{--pat:radial-gradient(rgba(34,61,113,.34) 1.15px,transparent 1.15px);--patsize:10px 10px}
.space-drawer-storage{--pat:repeating-linear-gradient(45deg,rgba(34,61,113,.26) 0 1.7px,transparent 1.7px 9px);--patsize:auto}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html{min-width:320px;scroll-behavior:smooth;scrollbar-color:var(--primary) var(--surface-strong);scrollbar-width:thin}
html::-webkit-scrollbar{width:12px;height:12px}html::-webkit-scrollbar-track{background:var(--surface-strong)}html::-webkit-scrollbar-thumb{border:3px solid var(--surface-strong);border-radius:999px;background:var(--primary)}html::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}
body{min-height:100vh;min-height:100dvh;margin:0;display:flex;flex-direction:column;overflow-x:hidden;background:var(--canvas);color:var(--ink);font:400 16px/1.5 "Myriad Pro",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.app-body{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.nav-open,.dialog-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
select{min-height:40px;padding:8px 40px 8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);appearance:none;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2347597a' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='m3 6 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;color:var(--ink);font-weight:600;cursor:pointer;transition:border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease}
select:hover{border-color:var(--ink-mute);background-color:var(--surface-soft)}
select:focus-visible{border-color:var(--accent);outline:0;box-shadow:var(--focus-ring)}
.custom-select{position:relative;min-width:0}.custom-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important}
.custom-select-trigger{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-weight:600;line-height:1.2;text-align:left;cursor:pointer;transition:border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease}
.custom-select-trigger:hover{border-color:var(--ink-mute);background:var(--surface-soft)}
.custom-select.is-open .custom-select-trigger{border-color:var(--accent);background:var(--surface);box-shadow:var(--focus-ring)}.custom-select-trigger:focus-visible{border-color:var(--accent);outline:0;box-shadow:var(--focus-ring)}
.custom-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-chevron{width:8px;height:8px;flex:none;border-right:1.8px solid var(--ink-faint);border-bottom:1.8px solid var(--ink-faint);transform:rotate(45deg) translateY(-2px);transition:transform 160ms var(--ease-out)}.custom-select.is-open .custom-select-chevron{transform:rotate(225deg) translate(-2px,-2px)}
.custom-select-menu{position:fixed;inset:auto;z-index:var(--z-toast);display:none;max-height:210px;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-float)}.custom-select-menu.is-open,.custom-select-menu:popover-open{display:grid;gap:2px}
.custom-select-option{min-height:38px;display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);font-size:.875rem;font-weight:600;text-align:left;cursor:pointer;transition:background-color 120ms var(--ease-standard)}.custom-select-option:hover,.custom-select-option:focus-visible{background:var(--border-soft);color:var(--ink);outline:none}.custom-select-option.is-selected{background:var(--primary-soft);color:var(--primary);font-weight:700}.custom-select-option.is-selected::after{content:"";width:14px;height:14px;flex:none;margin-left:auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/contain no-repeat}.custom-select-option:disabled{opacity:.45;cursor:not-allowed}
.custom-date{position:relative;min-width:0}.custom-date input{padding-right:44px}.custom-date-trigger{position:absolute;top:0;right:0;width:40px;height:40px;display:grid;place-items:center;padding:0;border:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:transparent;color:var(--ink-soft);cursor:pointer}.custom-date-trigger:hover{background:var(--primary-soft);color:var(--primary)}.custom-date-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.custom-date-trigger svg{width:18px;height:18px}
.custom-date-calendar{position:fixed;inset:auto;z-index:var(--z-toast);width:292px;margin:0;display:none;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-float)}.custom-date.is-open .custom-date-calendar,.custom-date-calendar:popover-open{display:block}.custom-date-header{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;margin-bottom:8px}.custom-date-header strong{text-align:center;color:var(--primary);font-size:.92rem}.custom-date-nav{position:relative;width:40px;height:40px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);cursor:pointer}.custom-date-nav:hover,.custom-date-nav:focus-visible{background:var(--primary-soft);color:var(--primary);outline:none}.custom-date-nav::before{content:"";position:absolute;top:15px;width:9px;height:9px;border-bottom:2px solid currentColor;border-left:2px solid currentColor}.custom-date-nav.previous::before{left:17px;transform:rotate(45deg)}.custom-date-nav.next::before{right:17px;transform:rotate(225deg)}
.custom-date-weekdays,.custom-date-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.custom-date-weekdays{margin-bottom:3px}.custom-date-weekdays span{display:grid;place-items:center;height:28px;color:var(--ink-faint);font-size:.72rem;font-weight:700}.custom-date-empty{height:36px}.custom-date-day{height:36px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ink-soft);font-size:.84rem;font-weight:600;cursor:pointer}.custom-date-day:hover,.custom-date-day:focus-visible{background:var(--border-soft);color:var(--ink);outline:none}.custom-date-day.is-today{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--primary);font-weight:700}.custom-date-day.is-selected{background:var(--primary);box-shadow:none;color:#fff}.custom-date-day:disabled{color:var(--ink-faint);opacity:.4;cursor:not-allowed;background:transparent;text-decoration:line-through}
a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:3px}
button{color:inherit}
img,svg{display:block}
h1,h2,h3,p,dl,dd{margin-top:0}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
h1{margin-bottom:6px;color:var(--primary);font-size:1.688rem;font-weight:700;line-height:1.12;letter-spacing:-.012em}
h2{font-size:1.188rem;line-height:1.25;letter-spacing:-.008em}
h3{font-size:.969rem;line-height:1.3}

.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.skip-link{position:fixed;top:12px;left:12px;z-index:200;transform:translateY(-160%);padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface);color:var(--primary);font-weight:700;box-shadow:var(--shadow-float);transition:transform 180ms var(--ease-out)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Application shell */
.shell{display:grid;grid-template-columns:var(--sidebar-expanded) minmax(0,1fr);flex:1 0 auto;min-height:calc(100vh - var(--footer-h));min-height:calc(100dvh - var(--footer-h));overflow-x:hidden;transition:grid-template-columns var(--dur-move) var(--ease-out)}
.app-body .shell{height:calc(100vh - var(--footer-h));height:calc(100dvh - var(--footer-h));min-height:0;flex:0 0 auto;overflow:hidden}
.sidebar{position:sticky;top:0;z-index:var(--z-sidebar);width:100%;min-height:calc(100vh - var(--footer-h));min-height:calc(100dvh - var(--footer-h));align-self:stretch;display:flex;flex-direction:column;overflow:visible;background:var(--primary-dark);color:#fff;transition:box-shadow 180ms var(--ease-standard)}
.sidebar-brand{position:relative;height:var(--topbar-h);min-height:var(--topbar-h);display:flex;align-items:center;gap:11px;padding:0 16px;background:var(--topbar-deep)}
.sidebar-mark{width:30px;height:30px;flex:none;object-fit:contain;background:#fff;border-radius:6px;padding:4px;transition:width var(--dur-move) var(--ease-out),height var(--dur-move) var(--ease-out)}
.sidebar-brand-copy{min-width:0;display:flex;flex:1;flex-direction:column;line-height:1.15;transition:opacity 160ms var(--ease-standard)}
.sidebar-brand-copy strong{font-size:.875rem;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.sidebar-brand-copy span{margin-top:2px;color:var(--on-dark-soft);font-size:.594rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.icon-btn{width:40px;height:40px;display:inline-grid;place-items:center;flex:none;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--primary);cursor:pointer;text-decoration:none;transition:background-color var(--dur-micro) var(--ease-standard),color var(--dur-micro) var(--ease-standard),transform 120ms var(--ease-standard)}
.icon-btn:hover{background:var(--primary-soft)}
.icon-btn:active{transform:scale(.96)}
.sidebar-nav{display:flex;flex:1;min-height:0;flex-direction:column;gap:1px;padding:10px;overflow-y:auto;overflow-x:hidden}
.sidebar-group{margin:13px 11px 5px;color:#5d7aa8;font-size:.594rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;transition:opacity 160ms var(--ease-standard)}
.sidebar-nav>.sidebar-group:first-child{margin-top:2px}
.sidebar-nav a{position:relative;isolation:isolate;min-height:35px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:6px;color:var(--on-dark);font-size:.844rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-standard),color var(--dur-micro) var(--ease-standard)}
.sidebar-nav a svg{width:17px;height:17px;flex:none}
.sidebar-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar-nav a.is-active{color:#fff}
/* El resaltado del enlace activo es un elemento propio para que la transición
   de vista lo desplace de un enlace a otro sin arrastrar el texto. */
.nav-pill{position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none}
.sidebar-nav a.is-active .nav-pill{background:#1c3563;view-transition-name:app-nav-pill}
.sidebar-nav a.is-active .nav-pill::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:#4f9fd8}
.sidebar-foot{flex:none;display:flex;padding:8px 10px 12px;border-top:1px solid rgba(255,255,255,.09)}
.sidebar-toggle{width:auto;height:38px;flex:1;display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 11px;border-radius:6px;color:var(--on-dark-soft);font-size:.75rem;font-weight:600}
.sidebar-toggle svg{width:16px;height:16px;flex:none}
.sidebar-toggle:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar-scrim{display:none}

.shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr)}
.shell.sidebar-collapsed .sidebar-brand{justify-content:center;padding:0;height:76px;min-height:76px}
.shell.sidebar-collapsed .sidebar-mark{width:46px;height:46px;border-radius:9px;padding:6px}
.shell.sidebar-collapsed .sidebar-brand-copy,.shell.sidebar-collapsed .sidebar-group{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);opacity:0}
.shell.sidebar-collapsed .sidebar-nav{align-items:center;padding:14px 10px;gap:2px}
.shell.sidebar-collapsed .sidebar-nav a{width:48px;height:40px;justify-content:center;padding:0}
.shell.sidebar-collapsed .sidebar-toggle{justify-content:center;padding:0}
.shell.sidebar-collapsed .sidebar-toggle>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.shell.sidebar-collapsed .sidebar-nav a>span{position:absolute;left:calc(100% + 12px);z-index:10;padding:7px 10px;border-radius:7px;background:var(--ink);color:#fff;font-size:.85rem;box-shadow:var(--shadow-float);opacity:0;pointer-events:none;transform:translateX(-5px);transition:opacity 140ms ease,transform 140ms var(--ease-out);clip:auto;width:auto;height:auto;overflow:visible}
.shell.sidebar-collapsed .sidebar-nav a:hover>span,.shell.sidebar-collapsed .sidebar-nav a:focus-visible>span{opacity:1;transform:translateX(0)}

.workspace{position:relative;min-width:0;max-width:100%;flex:1;display:flex;flex-direction:column;isolation:isolate;overflow-x:hidden}
.app-body .workspace{height:100%;min-height:0;overflow:hidden}
.topbar{position:sticky;top:0;z-index:var(--z-sticky);height:var(--topbar-h);display:flex;align-items:center;gap:20px;padding:0 22px;background:var(--topbar);color:#fff}
.mobile-menu{display:none}
.topbar .icon-btn{color:var(--on-dark)}
.topbar .icon-btn:hover{background:rgba(255,255,255,.12);color:#fff}
.topbar-brand{min-width:0;display:flex;align-items:center;gap:14px}
.header-title{min-width:0;display:flex;align-items:baseline;gap:9px;color:#fff}
.header-title strong{font-size:.969rem;font-weight:700;letter-spacing:.02em}
/* Buscador global de la cabecera */
.global-search{position:relative;width:min(360px,34vw);flex:none}
.global-search input{width:100%;height:34px;padding:0 62px 0 34px;border:1px solid transparent;border-radius:6px;background:rgba(255,255,255,.11);color:#fff;font-size:.813rem;transition:background-color var(--dur-micro) var(--ease-standard),border-color var(--dur-micro) var(--ease-standard)}
.global-search input::placeholder{color:#a7bede;opacity:1}
.global-search input:hover{background:rgba(255,255,255,.16)}
.global-search input:focus{outline:0;border-color:#4f9fd8;background:rgba(255,255,255,.18);box-shadow:none}
.global-search-icon{position:absolute;top:50%;left:11px;transform:translateY(-50%);width:15px;height:15px;color:#a7bede;pointer-events:none}
.global-search kbd{position:absolute;top:50%;right:10px;transform:translateY(-50%);padding:1px 5px;border-radius:4px;background:rgba(255,255,255,.14);color:#cfe0f5;font:inherit;font-size:.656rem;pointer-events:none}
.global-search.is-loading .global-search-icon{opacity:.5}
.global-search-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:var(--z-toast);width:min(460px,86vw);max-height:min(520px,70vh);overflow-y:auto;overscroll-behavior:contain;padding:7px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-float);animation:search-enter 160ms var(--ease-out)}
@keyframes search-enter{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.global-search-group{margin:9px 9px 4px;color:var(--ink-faint);font-size:.594rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.global-search-panel>.global-search-group:first-child{margin-top:3px}
.global-search-option{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none;transition:background-color 120ms var(--ease-standard)}
.global-search-option>span:first-child{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.global-search-option strong{font-size:.844rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-option small{color:var(--ink-faint);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-option:hover,.global-search-option.is-active{background:var(--primary-soft)}
.global-search-option .badge{flex:none}
.global-search-empty{margin:0;padding:16px 12px;color:var(--ink-faint);font-size:.813rem;text-align:center}
.user-menu{min-width:0;margin-left:auto;display:flex;align-items:center;gap:12px}
.user-avatar{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:6px;background:#4f9fd8;color:var(--primary-dark);font-size:.719rem;font-weight:700}
.user-copy{min-width:0;display:flex;flex-direction:column;line-height:1.2;padding-left:1px}
.user-copy strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.781rem;font-weight:600}
.user-copy small{margin-top:2px;color:#a7bede;font-size:.656rem}
.logout-link{width:32px;height:32px;min-height:32px;display:flex;padding:0;border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center;flex:none;margin-left:4px;border-radius:6px;color:var(--on-dark);text-decoration:none;transition:background-color var(--dur-micro) ease,color var(--dur-micro) ease}
.logout-link:hover{background:rgba(255,255,255,.12);color:#fff}
.logout-link svg{width:17px;height:17px}
.workspace main{position:relative;z-index:1;width:min(100%,1560px);margin:0 auto;flex:1;padding:24px 26px 22px}
.app-body .workspace main{min-height:0;overflow-y:auto}
.datatable-page-main{display:flex;flex-direction:column;overflow:hidden!important;padding-top:24px!important;padding-bottom:20px!important}
.datatable-page-main>.page-header,.datatable-page-main>.toolbar,.datatable-page-main>.filters{flex:none}
.datatable-page-main>.page-header,.datatable-page-main>.toolbar{margin-bottom:16px}
.datatable-page-main>.filters{margin-bottom:14px;padding-top:12px;padding-bottom:12px}
.datatable-page-content{min-height:0;display:flex;flex:1;flex-direction:column;overflow:hidden}
.datatable-page-content>.page-header,.datatable-page-content>.toolbar,.datatable-page-content>.filters{flex:none}
.page-datatable-wrap{min-height:0;display:flex;flex:1;overflow:hidden}
.page-datatable-wrap .dt-container{width:100%;height:100%;min-height:0}
.page-datatable-wrap .dt-layout-row.dt-layout-table{min-height:0;flex:0 1 auto;overflow:hidden}
.page-datatable-wrap .dt-layout-row.dt-layout-table>.dt-layout-cell.dt-layout-full{min-height:0;width:100%;max-height:100%;overflow:hidden}
.page-datatable-wrap .dt-scroll{width:100%;min-height:0;max-height:100%;display:flex;flex-direction:column}
.page-datatable-wrap .dt-scroll-body{min-height:0;flex:0 1 auto;overflow:auto!important}
.page-datatable-wrap .dt-container>.dt-layout-row:not(.dt-layout-table){align-self:stretch;flex:none}
.page-datatable-wrap .dt-layout-row:has(.dt-length){min-height:52px;padding:5px 10px}
.dashboard-main{min-height:0;display:flex;flex-direction:column;overflow:hidden!important}
.dashboard-main>.toolbar,.dashboard-main>.stats{flex:none}
.dashboard-layout{min-height:0;flex:1}
.dashboard-layout>.panel{min-height:0}
.recent-activity-panel{display:flex;flex-direction:column;overflow:hidden}
.activity-list{min-height:0;overflow-y:auto;padding-right:6px;overscroll-behavior:contain}
.workflow-scroll-mode{overflow:hidden}
.workflow-scroll-mode .shell{height:calc(100vh - var(--footer-h));height:calc(100dvh - var(--footer-h));min-height:0;overflow:hidden}
.case-detail-main.has-workflow-scroll{min-height:0;overflow:hidden;display:flex;flex-direction:column}
.case-detail-main.has-workflow-scroll>.page-header,.case-detail-main.has-workflow-scroll>.case-tabs{flex:none}
.case-detail-main.has-workflow-scroll>.case-tab-content{min-height:0;flex:1;overflow:hidden}
.case-detail-main.has-workflow-scroll #pane-tramitacion{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.case-detail-main.has-workflow-scroll .case-table-pane.is-active{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.case-detail-main.has-workflow-scroll .shared-spaces-pane.is-active{height:100%;min-height:0;display:flex;overflow:hidden}
.case-detail-main.has-workflow-scroll .shared-spaces-grid{width:100%;height:100%;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}
.case-detail-main.has-workflow-scroll .shared-room-section{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.case-detail-main.has-workflow-scroll .shared-space-section{min-height:0;overflow-y:auto}
.case-table-pane>.section-page-heading{flex:none}
.billing-pane>.billing-summary-strip{flex:none}
.case-datatable-wrap{min-height:0;display:flex;flex:1;overflow:hidden}
.case-datatable-wrap .dt-container{width:100%;height:100%;min-height:0}
.case-datatable-wrap .dt-layout-row.dt-layout-table{min-height:0;flex:0 1 auto;overflow:hidden}
.case-datatable-wrap .dt-layout-row.dt-layout-table>.dt-layout-cell.dt-layout-full{min-height:0;width:100%;max-height:100%;overflow:hidden}
.case-datatable-wrap .dt-scroll{min-height:0;max-height:100%;display:flex;flex-direction:column}
.case-datatable-wrap .dt-scroll-body{min-height:0;flex:0 1 auto;overflow:auto!important}
.case-datatable-wrap .dt-container>.dt-layout-row:not(.dt-layout-table){align-self:stretch;flex:none}
.page-datatable-wrap .dt-container.is-scroll-constrained .dt-layout-row.dt-layout-table,
.case-datatable-wrap .dt-container.is-scroll-constrained .dt-layout-row.dt-layout-table,
.page-datatable-wrap .dt-container.is-scroll-constrained .dt-layout-row.dt-layout-table>.dt-layout-cell.dt-layout-full,
.case-datatable-wrap .dt-container.is-scroll-constrained .dt-layout-row.dt-layout-table>.dt-layout-cell.dt-layout-full{height:100%}
.page-datatable-wrap .dt-container.is-scroll-constrained .dt-scroll,
.case-datatable-wrap .dt-container.is-scroll-constrained .dt-scroll{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}
.page-datatable-wrap .dt-container.is-scroll-constrained .dt-scroll-body,
.case-datatable-wrap .dt-container.is-scroll-constrained .dt-scroll-body{height:auto!important;max-height:none!important}
.datatable-wrap .dt-scroll-body.no-horizontal-overflow{overflow-x:hidden!important}
.site-watermark{position:fixed;right:-42px;bottom:calc(var(--footer-h) - 52px);z-index:0;width:min(392px,42vw);max-height:64vh;object-fit:contain;object-position:right bottom;opacity:.5;pointer-events:none;user-select:none}
.site-footer{position:relative;z-index:60;height:var(--footer-h);display:flex;flex:none;align-items:center;padding:7px 20px;background:var(--footer);color:#fff;text-align:center}
.footer-inner{width:min(100%,1480px);margin:0 auto;display:grid;place-items:center;align-content:center}
.site-footer p{margin:0;font-size:.719rem;line-height:1.25}.site-footer p+p{margin-top:2px;color:rgba(255,255,255,.68);font-size:.656rem}

/* Shared page and controls */
.page-header,.toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px}
.page-header>div{min-width:0}
.page-header h1,.toolbar h1{margin:0 0 6px}
.page-header>div>p{max-width:80ch;margin:0;color:var(--ink-soft);font-size:.844rem}
.breadcrumb{display:flex;align-items:center;gap:5px;margin-bottom:11px;color:var(--ink-faint);font-size:.82rem}
.breadcrumb a{color:var(--ink-soft);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb svg{width:14px;height:14px}
.btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 15px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--primary);font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 120ms ease,box-shadow 160ms ease}
.btn:hover{border-color:#91a6c1;background:var(--surface-soft);color:var(--primary-dark)}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px}
.btn.primary{border-color:var(--primary);background:var(--primary);color:#fff}
.btn.primary:hover{border-color:var(--primary-dark);background:var(--primary-dark)}
.btn.danger{border-color:var(--danger);background:var(--danger);color:#fff}
.btn.danger:hover{border-color:var(--danger-dark);background:var(--danger-dark)}
.btn.danger-quiet{border-color:#e4bbc2;background:var(--surface);color:var(--danger)}
.btn.danger-quiet:hover{background:var(--danger-bg);border-color:#d89ca6}
.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-soft)}
.btn.ghost:hover{background:var(--surface-strong)}
.btn.small{min-height:32px;padding:5px 11px;font-size:.844rem}
.btn.text-btn{justify-content:flex-start;padding:8px 0;border:0;background:transparent}
.btn.text-btn:hover{background:transparent;color:var(--accent-dark)}
.btn[disabled],.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.icon-btn[disabled],.icon-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}
.icon-btn[disabled]:hover,.icon-btn:disabled:hover{background:transparent}
.icon-btn.danger-icon[disabled]:hover{background:transparent;color:var(--danger)}
.danger-icon{color:var(--danger)}.danger-icon:hover{background:var(--danger-bg);color:var(--danger-dark)}
.table-actions,.record-actions,.case-header-actions{display:flex;align-items:center;gap:6px}.table-actions{justify-content:flex-end;white-space:nowrap}.table-actions form{display:inline-flex;margin:0}.destructive-icon{border:1px solid #e4bbc2;background:var(--surface)}.destructive-icon:hover{border-color:#d89ca6}

input,select,textarea{width:100%;min-height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);padding:9px 12px;transition:border-color 160ms ease,box-shadow 160ms ease}
input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:1}
input:hover,select:hover,textarea:hover{border-color:var(--ink-mute)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:0;box-shadow:var(--focus-ring)}
textarea{min-height:96px;resize:vertical}
label{font-weight:600}
.muted{color:var(--ink-faint)}
.toast-region{position:fixed;top:16px;right:18px;z-index:var(--z-toast);width:min(330px,calc(100vw - 32px));display:grid;gap:8px;pointer-events:none}
.toast{--toast-duration:4s;position:relative;min-height:50px;display:grid;grid-template-columns:30px minmax(0,1fr) 32px;align-items:center;gap:9px;overflow:hidden;padding:9px 9px 9px 11px;border:1px solid var(--border-strong);border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 4px 8px rgba(15,29,52,.14);pointer-events:auto;animation:toast-enter 220ms var(--ease-out)}
.toast.success{border-color:#b9ddce;background:#f7fcfa}.toast.error{border-color:#e7c1c7;background:#fff9fa}.toast.warning{border-color:#ead4aa;background:#fffaf1}.toast.info{background:#f7faff}
.toast-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.toast.success .toast-icon{background:var(--success-bg);color:var(--success)}.toast.error .toast-icon{background:var(--danger-bg);color:var(--danger)}.toast.warning .toast-icon{background:var(--warning-bg);color:var(--warning)}.toast-icon svg{width:16px;height:16px}
.toast p{margin:0;font-size:.84rem;font-weight:600;line-height:1.3}.toast-close{width:32px;height:32px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ink-faint);cursor:pointer}.toast-close:hover{background:var(--surface-strong);color:var(--ink)}.toast-close svg{width:15px;height:15px}
.toast-timer{position:absolute;right:0;bottom:0;left:0;height:3px;background:var(--primary);transform-origin:left center;animation:toast-countdown var(--toast-duration) linear forwards}.toast.success .toast-timer{background:var(--success)}.toast.error .toast-timer{background:var(--danger)}.toast.warning .toast-timer{background:var(--warning)}.toast.is-paused .toast-timer{animation-play-state:paused}.toast.is-leaving{opacity:0;transform:translateX(-10px);transition:opacity 170ms ease,transform 170ms ease}
@keyframes toast-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes toast-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}

.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.filters>label{min-width:170px;display:flex;flex:1 1 170px;flex-direction:column;gap:5px;color:var(--ink-soft);font-size:.78rem}
.filters>label>span:first-child{font-weight:700}
.filters .filter-search{flex:2 1 300px}
.case-filters{display:grid;grid-template-columns:minmax(280px,1.8fr) repeat(3,minmax(170px,1fr)) auto;align-items:end}.case-filters>label{min-width:0}.case-filter-clear{white-space:nowrap}
.input-with-icon{position:relative;display:block}
.input-with-icon svg{position:absolute;left:12px;top:50%;width:18px;height:18px;color:var(--ink-faint);transform:translateY(-50%)}
.input-with-icon input{padding-left:40px}
.filter-actions{display:flex;gap:8px}
.panel{padding:22px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.panel-link{display:inline-flex;align-items:center;gap:6px;flex:none;color:var(--accent-dark);font-size:.75rem;font-weight:700;text-decoration:none}
.panel-link svg{width:14px;height:14px}
.panel-link:hover{text-decoration:underline}
.panel-heading h2{margin-bottom:3px;font-size:.938rem;font-weight:700;color:var(--primary)}
.panel-heading p{margin:0;color:var(--ink-faint);font-size:.75rem}
.badge{width:max-content;max-width:100%;display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;background:#e9edf3;color:#43546b;font-size:.78rem;font-weight:700;line-height:1.25}
.status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}
.badge.free,.badge.active,.badge.completed,.badge.current,.badge.signed,.badge.validated,.badge.reviewed{background:var(--success-bg);color:var(--success)}
.badge.pending,.badge.preparation,.badge.pending_join,.badge.pending_docs,.badge.signing{background:var(--warning-bg);color:var(--warning)}
.badge.occupied,.badge.in_progress,.badge.leaving{background:#e6eefb;color:#275b99}
.badge.maintenance,.badge.finished,.badge.archived,.badge.expired{background:#e9edf2;color:#4d5c70}
.badge.rejected{background:var(--danger-bg);color:var(--danger)}
.badge.paid{background:var(--success-bg);color:var(--success)}
.badge.unpaid{background:var(--warning-bg);color:var(--warning)}

/* Spaces */
.results-heading{display:flex;align-items:center;gap:20px;margin:0 2px 12px;color:var(--ink-faint);font-size:.813rem}
.results-heading p{margin:0;color:var(--ink-soft)}
.results-heading strong{color:var(--ink);font-weight:700}
.space-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:10px;align-content:start}
.space-row-hitbox{position:absolute;inset:0;z-index:2;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}
.space-row-hitbox:focus-visible{outline:0}
.space-type-icon{width:30px;height:30px;display:grid;place-items:center;flex:none;border:1px solid var(--tybd);border-radius:8px;background:var(--tyi);color:var(--tyc)}
.space-type-icon svg{width:16px;height:16px}
.empty-state{grid-column:1/-1;min-height:300px;display:grid;place-items:center;align-content:center;padding:42px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:rgba(255,255,255,.78)}
.empty-state>span{width:52px;height:52px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;background:var(--primary-soft);color:var(--primary)}
.empty-state h2,.empty-state h3{margin-bottom:6px}
.empty-state p{max-width:46ch;margin-bottom:18px;color:var(--ink-faint)}
.empty-state.compact{min-height:230px}

/* Space drawer */
.space-drawer{width:min(572px,100%);height:100vh;height:100dvh;max-width:none;max-height:none;margin:0 0 0 auto;padding:0;border:0;background:transparent;color:var(--ink);overflow:hidden}
.space-drawer[open]{display:block;animation:drawer-enter 260ms var(--ease-out)}
.space-drawer.is-closing{animation:drawer-exit 170ms ease-in forwards}
.space-drawer::backdrop{background:rgba(9,20,39,.48);animation:backdrop-enter 200ms ease-out}
.space-drawer.is-closing::backdrop{animation:backdrop-exit 170ms ease-in forwards}
.drawer-shell{height:100%;display:flex;flex-direction:column;background:var(--surface);box-shadow:var(--shadow-drawer)}
.drawer-header{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:24px 26px 20px;overflow:hidden;border-bottom:1px solid var(--tybd);background-color:var(--surface);background-image:linear-gradient(152deg,#fff 0%,#fff 34%,var(--wash) 100%)}
.drawer-header::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--pat);background-size:var(--patsize);opacity:.62;-webkit-mask-image:radial-gradient(120% 150% at 100% 100%,#000 0%,rgba(0,0,0,.42) 46%,transparent 76%);mask-image:radial-gradient(120% 150% at 100% 100%,#000 0%,rgba(0,0,0,.42) 46%,transparent 76%)}
.drawer-header>*{position:relative;z-index:1}
.drawer-header .drawer-status-row{grid-column:1/-1;margin:2px 0 0}
.drawer-header .drawer-close{align-self:start;width:34px;height:34px;border:1px solid var(--tybd);background:rgba(255,255,255,.8)}
.drawer-header .badge{background-color:rgba(255,255,255,.85)}
.drawer-title-wrap{min-width:0;display:flex;gap:14px}
.drawer-title-wrap>div{min-width:0}
.drawer-title-wrap>div>span{display:block;color:var(--tyc);font-size:.656rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.drawer-title-wrap h2{margin:3px 0 0;color:var(--ink);font-size:1.625rem;font-weight:700;letter-spacing:-.018em;line-height:1.1}
.drawer-title-wrap p{margin:5px 0 0;color:var(--ink-soft);font-size:.844rem;font-weight:400;overflow-wrap:anywhere}
.drawer-close{color:var(--ink-soft)}
.drawer-content{min-height:0;flex:1;display:flex;flex-direction:column;gap:28px;overflow-y:auto;padding:24px 26px 32px}
.drawer-content>*{flex-shrink:0}
.drawer-status-row{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.drawer-status-row>span:last-child{color:var(--ink-faint);font-size:.75rem}
.drawer-overview{margin-bottom:10px;padding:18px;border-radius:var(--radius-md);background:var(--surface-soft)}
.drawer-overview .drawer-status-row{margin-bottom:16px}
.drawer-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;border:1px solid var(--surface-strong);border-radius:9px;background:var(--surface-strong);overflow:hidden}
.drawer-facts div{min-width:0;padding:8px 12px 9px;background:var(--surface-soft)}
.drawer-facts dt{overflow:hidden;color:var(--ink-faint);font-size:.594rem;font-weight:700;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.drawer-facts dd{margin:2px 0 0;font-size:.938rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3}
.drawer-facts .drawer-fact-wide{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.drawer-facts .drawer-fact-wide dd{margin:0;font-size:.875rem;text-align:right}
.drawer-section{padding:0}
.drawer-section h3{margin-bottom:12px;color:var(--ink-faint);font-size:.688rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.drawer-section>p{margin:0;color:var(--ink-soft);line-height:1.6;white-space:normal}
.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.section-heading-row h3{margin:0}
.section-heading-row>span{font-variant-numeric:tabular-nums}
.section-heading-row>span{min-width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:.78rem;font-weight:700}
.occupancy-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:12px;border-radius:10px;background:var(--surface-soft);color:var(--ink);text-decoration:none;transition:background-color 160ms ease,transform 160ms var(--ease-out)}
.occupancy-row:hover{background:var(--primary-soft);transform:translateX(2px)}
.occupancy-row+.occupancy-row{margin-top:8px}
.occupancy-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--surface);color:var(--primary)}
.occupancy-icon svg{width:18px;height:18px}
.occupancy-row>span:nth-child(2){min-width:0;display:flex;flex-direction:column}
.occupancy-row>span:nth-child(2) strong,.occupancy-row>span:nth-child(2) small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.occupancy-row>span:nth-child(2) small{color:var(--ink-faint)}
.occupancy-row>span:nth-child(3){display:flex;flex-direction:column;font-size:.85rem;font-variant-numeric:tabular-nums}
.occupancy-row>span:nth-child(3) small{color:var(--ink-faint);font-size:.7rem}
.occupancy-row>svg{width:17px;height:17px;color:var(--ink-faint)}
.inline-empty{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:10px;background:var(--success-bg);color:var(--success)}
.inline-empty>svg{width:22px;height:22px;margin-top:1px}
.inline-empty p{margin:1px 0 0;color:#2e6f55}
.drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid var(--border);background:var(--surface)}
.drawer-footer-actions{display:flex;align-items:center;gap:8px}
.space-management-actions{display:flex;align-items:center;gap:7px}
.space-action-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:none;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--primary);text-decoration:none;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 120ms ease}
.space-action-icon:hover{border-color:#91a6c1;background:var(--primary-soft);color:var(--primary-dark)}.space-action-icon:active{transform:scale(.96)}.space-action-icon svg{width:18px;height:18px}
.space-action-icon.danger{border-color:#e4bbc2;color:var(--danger)}.space-action-icon.danger:hover{border-color:#d89ca6;background:var(--danger-bg);color:var(--danger-dark)}

@keyframes drawer-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes drawer-exit{from{transform:translateX(0)}to{transform:translateX(100%)}}
@keyframes backdrop-enter{from{background:rgba(9,20,39,0)}to{background:rgba(9,20,39,.48)}}
@keyframes backdrop-exit{from{background:rgba(9,20,39,.48)}to{background:rgba(9,20,39,0)}}

/* Case detail tabs */
.case-title-row{display:flex;align-items:center;gap:12px}
.case-title-row h1{margin-bottom:0}
.case-tabs{position:sticky;top:0;z-index:10;margin-bottom:16px;border-bottom:1px solid var(--border);background:rgba(241,244,249,.97)}
.case-tab-list{position:relative;display:flex;gap:3px;overflow-x:auto;scrollbar-width:none}
.case-tab-list::-webkit-scrollbar{display:none}
.case-tab{min-height:42px;display:inline-flex;align-items:center;gap:7px;flex:none;padding:0 13px;border:0;background:transparent;color:var(--ink-soft);font-size:.844rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:color var(--dur-micro) ease}
.case-tab:hover{color:var(--primary)}
.case-tab.is-active{color:var(--primary);font-weight:700}
.case-tab>span{min-width:20px;height:18px;display:grid;place-items:center;padding:0 6px;border-radius:999px;background:#eaeff6;color:var(--ink-soft);font-size:.656rem;font-weight:700}
.case-tab.is-active>span{background:var(--primary-soft);color:#22568f}
.case-tab-indicator{position:absolute;left:0;bottom:-1px;width:1px;height:2px;background:var(--accent);transform-origin:left center;transition:transform var(--dur-move) var(--ease-out)}
.case-pane{animation:pane-enter 190ms var(--ease-out)}
.case-pane[hidden]{display:none}
@keyframes pane-enter{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.summary-layout{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(300px,1fr);gap:16px;align-items:start}
.case-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;margin:0}
.case-facts>div{min-width:0;padding:15px 0;border-bottom:1px solid var(--border-soft)}
.case-facts>div:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}
.case-facts dt{display:flex;align-items:center;gap:8px;margin-bottom:5px;color:var(--ink-mute);font-size:.656rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.case-facts dt svg{width:14px;height:14px}
.case-facts dd{margin:0;font-size:.938rem;font-weight:600;overflow-wrap:anywhere}
.case-space-panel{--tyc:#223d71;--tybd:#d8e2f0;--tyi:#e6eef8;--wash:rgba(52,127,189,.17);--pat:none;--patsize:auto}
.case-space-common{--pat:radial-gradient(rgba(34,61,113,.34) 1.15px,transparent 1.15px);--patsize:10px 10px}
.case-space-storage{--pat:repeating-linear-gradient(45deg,rgba(34,61,113,.26) 0 1.7px,transparent 1.7px 9px);--patsize:auto}
.case-space-card{position:relative;display:flex;align-items:flex-start;gap:14px;padding:16px 17px;border:1px solid var(--tybd);border-radius:var(--radius-md);overflow:hidden;background-color:var(--surface);background-image:linear-gradient(152deg,#fff 0%,#fff 36%,var(--wash) 100%)}
.case-space-card::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--pat);background-size:var(--patsize);opacity:.62;-webkit-mask-image:radial-gradient(128% 128% at 100% 100%,#000 0%,rgba(0,0,0,.42) 46%,transparent 74%);mask-image:radial-gradient(128% 128% at 100% 100%,#000 0%,rgba(0,0,0,.42) 46%,transparent 74%)}
.case-space-card>*{position:relative;z-index:1}
.case-space-card .space-type-icon{width:42px;height:42px;border-radius:11px;background:var(--surface)}
.case-space-card .space-type-icon svg{width:20px;height:20px}
.case-space-type{display:block;color:var(--tyc);font-size:.625rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.case-space-card b{display:block;margin-top:3px;color:var(--ink);font-size:1.25rem;font-weight:700;letter-spacing:-.016em;line-height:1.1}
.case-space-name{display:block;margin-top:4px;color:var(--ink-soft);font-size:.781rem;line-height:1.4}
.case-space-facts{margin:14px 0 0}
.case-space-facts>div{display:flex;align-items:center;justify-content:space-between;gap:16px;height:40px;border-bottom:1px solid var(--border-soft)}
.case-space-facts>div:last-child{border-bottom:0}
.case-space-facts dt{color:var(--ink-faint);font-size:.781rem}
.case-space-facts dd{margin:0;font-size:.844rem;font-weight:700;font-variant-numeric:tabular-nums}
.case-space-link{margin-top:12px;padding-top:13px;border-top:1px solid var(--border-soft);font-size:.781rem}
.case-progress-card .progress-track span{background:#fff}
.case-progress-card .text-btn{margin-top:12px;color:#fff}
.progress-track{width:100%;height:7px;overflow:hidden;border-radius:999px;background:var(--surface-strong)}
.progress-track>span{display:block;width:100%;height:100%;border-radius:inherit;background:var(--accent);transform:scaleX(calc(var(--progress) / var(--total)));transform-origin:left center;transition:transform 260ms var(--ease-out)}
.danger-disclosure{margin-top:18px;border:1px solid #e5bdc4;border-radius:var(--radius-md);background:rgba(255,255,255,.9)}
.danger-disclosure summary{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;cursor:pointer;list-style:none}
.danger-disclosure summary::-webkit-details-marker{display:none}
.danger-disclosure summary>span{display:flex;align-items:center;gap:12px}
.danger-disclosure summary>span>svg{width:22px;height:22px;color:var(--danger)}
.danger-disclosure summary>span>span{display:flex;flex-direction:column}
.danger-disclosure summary small{margin-top:2px;color:var(--ink-faint);font-weight:400}
.summary-chevron{transition:transform 180ms var(--ease-out)}
.danger-disclosure[open] .summary-chevron{transform:rotate(90deg)}
.danger-disclosure form{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:18px;border-top:1px solid #eccdd2}
.danger-disclosure form label{grid-column:1/-1;color:var(--ink-soft);font-size:.84rem}
.danger-disclosure form textarea{min-height:76px}
.danger-disclosure form>div{display:flex;align-items:flex-end}
.closed-note{display:flex;gap:13px;margin-top:18px;padding:18px;border-radius:var(--radius-md);background:var(--success-bg);color:var(--success)}
.closed-note>svg{width:24px;height:24px}
.closed-note p{margin:2px 0 0;color:#2e6f55}

.workflow-header,.section-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.workflow-header h2,.section-page-heading h2{margin-bottom:4px}
.workflow-header p,.section-page-heading p{margin:0;color:var(--ink-faint)}
#pane-tramitacion .workflow-header{align-items:center;margin-bottom:14px;padding:16px 18px;border:1px solid #cbd8e8;border-radius:var(--radius-md);background:var(--primary-soft)}
#pane-tramitacion .workflow-header p{color:#52657d}
.has-workflow-scroll #pane-tramitacion .workflow-header,.has-workflow-scroll #pane-tramitacion>.progress-track{flex:none}
.workflow-progress{display:flex;flex-direction:column;align-items:flex-end}
.workflow-progress strong{color:var(--primary);font-size:1.1rem}
.workflow-progress span{color:var(--ink-faint);font-size:.8rem}
.progress-track.wide{height:8px;margin-bottom:22px;background:#dbe5f2}.progress-track.wide>span{background:var(--primary)}
.workflow-list{position:relative;display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:phase}
.has-workflow-scroll .workflow-list{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:2px 10px 18px 2px;scrollbar-color:var(--primary) #dfe7f1;scrollbar-width:thin}
.has-workflow-scroll .workflow-list::-webkit-scrollbar{width:10px}.has-workflow-scroll .workflow-list::-webkit-scrollbar-track{border-radius:999px;background:#dfe7f1}.has-workflow-scroll .workflow-list::-webkit-scrollbar-thumb{border:2px solid #dfe7f1;border-radius:999px;background:var(--primary)}.has-workflow-scroll .workflow-list::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}
.workflow-list::before{content:"";position:absolute;top:32px;bottom:32px;left:22px;width:2px;background:#b9cbe1}
.workflow-phase{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:15px;padding:17px 20px 17px 12px;border:1px solid #cbd8e8;border-radius:var(--radius-md);background:rgba(255,255,255,.94);box-shadow:0 1px 4px rgba(23,45,86,.05);transition:border-color 160ms ease,background-color 160ms ease,transform 160ms var(--ease-out)}
.workflow-phase:hover{border-color:#aebfd4;background:#fff}
.workflow-phase.is-current{border-color:var(--accent);background:#f7fbff;box-shadow:0 0 0 2px rgba(52,127,189,.1)}
.workflow-phase.completed{background:rgba(255,255,255,.88)}
.workflow-phase.pending:not(.is-current){border-color:#c8d6e7;background:#f5f8fc}
.workflow-phase.in_progress{border-color:#9db8d8;background:#f2f7fd}
.phase-marker{position:relative;z-index:1;width:40px;height:40px;display:grid;place-items:center;border:4px solid var(--surface);border-radius:50%;background:var(--surface-strong);color:var(--ink-soft);font-weight:700}
.workflow-phase.completed .phase-marker{background:var(--primary);color:#fff}
.workflow-phase.is-current .phase-marker{background:var(--accent);color:#fff}
.workflow-phase.pending:not(.is-current) .phase-marker{border-color:#f5f8fc;background:#dbe6f4;color:var(--primary)}
.workflow-phase.in_progress .phase-marker{border-color:#f2f7fd;background:var(--accent);color:#fff}
.phase-marker svg{width:18px;height:18px}
.phase-main{min-width:0}
.phase-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.phase-heading>div>span{color:var(--ink-faint);font-size:.72rem;font-weight:600}
.phase-heading h3{margin:1px 0 0;color:var(--ink);font-size:1.08rem}
.phase-status{display:inline-flex;padding:4px 9px;border-radius:999px;background:var(--surface-strong);color:var(--ink-soft);font-size:.72rem;font-weight:700}
.phase-status.completed{background:var(--primary-soft);color:var(--primary)}
.phase-status.in_progress{background:var(--primary-soft);color:var(--primary)}
.phase-status.pending{background:#e8eef7;color:#405c82}
.workflow-phase.is-current .phase-status{background:var(--accent);color:#fff}
.phase-meta{margin:5px 0 0;color:var(--ink-faint);font-size:.86rem}
.phase-meta.locked{display:flex;align-items:center;min-height:30px;color:#58708f}
.phase-note{margin-top:12px;padding:12px;border-radius:var(--radius-sm);background:var(--surface-soft)}
.phase-note strong{color:var(--ink-soft);font-size:.75rem}
.phase-note p{margin:2px 0 0;color:var(--ink-soft)}
.phase-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 12px;margin-top:14px}
.phase-form label{grid-column:1/-1;color:var(--ink-soft);font-size:.82rem}
.phase-form label span{margin-left:4px;color:var(--ink-faint);font-weight:400}
.phase-form textarea{min-height:70px}

/* Tramitación por fases */
.workflow-stepper-scroll{flex:none;min-width:0;margin:2px 0 18px;padding:4px 6px 0;overflow:visible}
.workflow-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none}
.workflow-step{position:relative;min-width:0}
.workflow-step:not(:last-child)::after{content:"";position:absolute;z-index:0;top:21px;left:calc(50% + 18px);width:calc(100% - 36px);height:3px;background:#c7d6e8}
.workflow-step.completed:not(:last-child)::after{background:var(--primary)}
.workflow-step button{position:relative;z-index:1;width:100%;min-height:78px;display:flex;align-items:center;flex-direction:column;gap:7px;padding:0 4px;border:0;background:transparent;color:var(--ink-soft);cursor:pointer;text-align:center}
.workflow-step-marker{width:42px;height:42px;display:grid;flex:none;place-items:center;border:3px solid #d6e2f0;border-radius:50%;background:var(--surface);color:var(--primary);font-weight:800;transition:transform 180ms var(--ease-out),border-color 160ms ease,background-color 160ms ease,color 160ms ease,box-shadow 160ms ease}
.workflow-step-marker svg{width:18px;height:18px}
.workflow-step.completed .workflow-step-marker{border-color:var(--primary);background:var(--primary);color:#fff}
.workflow-step.is-current .workflow-step-marker{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px var(--primary-soft)}
.workflow-step button:hover .workflow-step-marker{border-color:var(--primary-dark);box-shadow:0 0 0 4px var(--primary-soft)}
.workflow-step button[aria-selected=true] .workflow-step-marker{border-color:var(--primary-dark);background:var(--primary-dark);color:#fff;box-shadow:0 0 0 5px var(--primary-soft);transform:scale(1.2)}
.workflow-step button:focus-visible{outline:0}.workflow-step button:focus-visible .workflow-step-marker{outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent);outline-offset:3px}
.workflow-step-label{min-width:0;display:grid;gap:1px}.workflow-step-label small{color:var(--ink-faint);font-size:clamp(.58rem,.72vw,.7rem)}.workflow-step-label strong{max-width:100%;color:var(--primary);font-size:clamp(.64rem,.82vw,.79rem);line-height:1.2;text-wrap:balance;overflow-wrap:anywhere}
.workflow-step button[aria-selected=true] .workflow-step-label strong{color:var(--primary-dark)}
.workflow-details{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:2px 8px 18px 2px;scrollbar-color:var(--primary) #dfe7f1;scrollbar-width:thin}
.workflow-phase-detail{min-height:100%;padding:22px 24px;border:1px solid #c5d5e8;border-radius:var(--radius-md);background:var(--surface)}
.workflow-phase-detail.is-current{border-color:#8eadd1;background:#f8fbff}
.phase-subphases{display:grid;gap:10px;margin-top:18px;padding:16px;border-radius:var(--radius-sm);background:var(--primary-soft)}
.phase-subphases>strong{color:var(--primary-dark);font-size:.82rem}.phase-subphases ol{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.phase-subphases li{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:10px}.phase-subphases li>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #9db6d5;border-radius:50%;background:#fff;color:var(--primary);font-size:.72rem;font-weight:800}.phase-subphases li>span svg{width:14px;height:14px}.phase-subphases li.completed>span{border-color:var(--primary);background:var(--primary);color:#fff}.phase-subphases p{margin:0;color:#405c82;font-size:.88rem}
.dialog-inline-feedback{display:flex;align-items:flex-start;gap:9px;margin:0 0 14px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--danger) 28%,transparent);border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger);font-size:.84rem;font-weight:650}.dialog-inline-feedback svg{width:18px;height:18px;flex:none;margin-top:1px}

.people-list{display:grid;gap:10px;margin-bottom:18px}
.person-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(170px,.6fr) auto auto;align-items:center;gap:16px;padding:16px 18px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}
.person-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:700}
.person-row h3{margin:0 0 2px}
.person-row p{margin:0;color:var(--ink-faint);overflow-wrap:anywhere}
.person-role{display:flex;flex-direction:column}
.person-role span{font-weight:600}
.person-role small{color:var(--ink-faint)}
.person-actions{display:flex;align-items:center;gap:4px}.person-actions form{margin:0}.person-actions .icon-btn{color:var(--ink-soft)}.person-actions .danger-icon{color:var(--danger)}.person-actions .danger-icon:hover{background:var(--danger-bg)}

.person-dialog{width:min(680px,calc(100vw - 32px));max-width:none;max-height:min(760px,calc(100dvh - 32px));margin:auto;padding:0;border:0;border-radius:var(--radius-lg);background:transparent;color:var(--ink);opacity:0;transform:translateY(14px) scale(.985);transition:opacity 180ms ease,transform 220ms var(--ease-out)}
.person-dialog.is-visible{opacity:1;transform:translateY(0) scale(1)}

.person-dialog.is-visible::backdrop{opacity:1}
.person-dialog-shell{max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-float)}
.person-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px 16px;border-bottom:1px solid var(--border)}
.person-dialog-context{display:block;margin-bottom:2px;color:var(--accent-dark);font-size:.72rem;font-weight:700}.person-dialog-header h2{margin:0 0 2px;color:var(--primary);font-size:1.188rem}.person-dialog-header p{margin:0;color:var(--ink-faint);font-size:.88rem}.person-dialog-close{margin:-5px -6px 0 0;color:var(--ink-soft)}
.person-dialog form{min-height:0;flex:1;overflow-y:auto}
.person-data-section{padding:20px 22px 0}.person-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 14px}.person-form-grid label{min-width:0;display:grid;grid-template-rows:20px 44px 16px;gap:4px;color:var(--ink-soft);font-size:.8rem}.person-field-label{display:flex;align-items:center;gap:4px;font-weight:600}.person-field-label b,.person-role-group legend b{color:var(--danger)}
.person-form-grid input{height:40px}.person-nip-control{position:relative;display:block;height:40px}.person-nip-control input{height:44px;padding-right:48px}.identity-search-button{position:absolute;right:2px;bottom:2px;width:36px;height:36px;color:var(--primary)}.identity-search-button .button-spinner{display:none;width:17px;height:17px;border:2px solid rgba(34,61,113,.25);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.identity-search-button.is-loading svg{display:none}.identity-search-button.is-loading .button-spinner{display:block}.person-form-grid label>small{color:var(--ink-faint);font-size:.73rem;line-height:16px}
.person-role-group{margin:12px 0 0;padding:0;border:0}.person-role-group legend{margin-bottom:7px;color:var(--ink-soft);font-size:.8rem;font-weight:700}.role-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.role-options label{position:relative;display:block;cursor:pointer}.role-options input{position:absolute;width:1px;height:1px;opacity:0}.role-options label>span{min-height:58px;display:flex;flex-direction:column;justify-content:center;padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color 160ms ease,background-color 160ms ease,box-shadow 160ms ease}.role-options label:hover>span{border-color:#91a6c1;background:var(--surface-soft)}.role-options input:checked+span{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--focus-ring)}.role-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.role-options strong{color:var(--primary);font-size:.86rem}.role-options small{margin-top:1px;color:var(--ink-faint);font-size:.72rem}
.identity-status{min-height:20px;margin:7px 0 0;color:var(--ink-faint);font-size:.78rem}.identity-status.is-success{color:var(--success)}.identity-status.is-error{color:var(--danger)}.identity-status.is-loading{color:var(--accent-dark)}
.person-dialog-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:14px 24px;border-top:1px solid var(--border);background:var(--surface)}.person-dialog-footer>p{margin:0;color:var(--ink-faint);font-size:.75rem}.person-dialog-footer>p span{color:var(--danger)}.person-dialog-footer>div{display:flex;gap:8px}
.form-dialog.confirm-dialog{width:min(500px,calc(100vw - 32px))}.confirm-dialog-header{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:start;gap:13px;padding:20px 24px 16px}.confirm-dialog-header h2{margin:0 0 4px;color:var(--primary);font-size:1.188rem}.confirm-dialog-header p{margin:0;color:var(--ink-faint);font-size:.844rem}.confirm-dialog-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger)}.confirm-dialog-icon svg{width:20px;height:20px}.confirm-dialog-header .form-dialog-close{margin:-7px -7px 0 0}.confirm-person-summary{display:flex;align-items:center;gap:12px;margin:0 24px 20px;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.confirm-person-summary>div{min-width:0;display:flex;flex-direction:column}.confirm-person-summary small{color:var(--ink-faint)}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--border);background:var(--surface)}
.confirm-space-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 24px 20px;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.confirm-space-summary>div{display:flex;flex-direction:column}.confirm-space-summary span{color:var(--ink-faint);font-size:.74rem}.confirm-space-summary strong{color:var(--primary)}.confirm-space-summary p{grid-column:1/-1;margin:3px 0 0;padding-top:11px;border-top:1px solid var(--border);color:var(--ink-soft);font-size:.84rem}
.confirm-entity-summary{display:flex;flex-direction:column;gap:2px;margin:0 24px 20px;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.confirm-entity-summary strong{font-size:.938rem;color:var(--primary);overflow-wrap:anywhere}.confirm-entity-summary small{color:var(--ink-faint);overflow-wrap:anywhere}.dependency-warning{margin:0 24px 20px;padding:13px 14px;border:1px solid var(--danger-border);border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger-dark);font-size:.844rem}.dependency-warning strong{display:block;margin-bottom:4px;font-size:.875rem}.dependency-warning p{margin:0}.dependency-warning ul{margin:8px 0 0;padding-left:18px;display:grid;gap:3px}.dependency-warning li{overflow-wrap:anywhere}.dependency-warning p{margin:3px 0 0}.dependency-warning ul{display:flex;flex-wrap:wrap;gap:6px 14px;margin:7px 0 0;padding-left:19px}.dependency-warning a{color:var(--danger-dark)}
.form-dialog.case-delete-dialog{width:min(620px,calc(100vw - 32px))}.dependency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 24px 16px}.dependency-grid>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 10px;padding:12px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.dependency-grid span{font-weight:700}.dependency-grid strong{grid-column:2;grid-row:1/3;min-width:30px;text-align:right;color:var(--success);font-size:1.125rem}.dependency-grid small{color:var(--ink-faint)}.dependency-grid .has-dependencies{background:var(--danger-bg)}.dependency-grid .has-dependencies strong{color:var(--danger)}.automatic-dependencies{display:flex;align-items:flex-start;gap:10px;margin:0 24px 20px;padding:12px 13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-soft);color:var(--ink-soft)}.automatic-dependencies svg{width:19px;height:19px;flex:none;margin-top:2px;color:var(--primary)}.automatic-dependencies p{margin:0;font-size:.84rem}.automatic-dependencies strong{display:block;margin-bottom:2px;color:var(--primary)}
@keyframes spin{to{transform:rotate(360deg)}}

.record-group{overflow:hidden;margin-bottom:14px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}
.record-group-heading{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid var(--border)}
.record-group-heading>span{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;background:var(--primary-soft);color:var(--primary)}
.record-group-heading h3{margin:0}
.record-group-heading p{margin:1px 0 0;color:var(--ink-faint);font-size:.8rem}
.record-list{padding:0 20px}
.record-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:15px 0}
.record-list>article+article{border-top:1px solid var(--border)}
.record-list>article>div{min-width:0;display:flex;flex-direction:column}.record-list>article>.record-actions{flex-direction:row;flex-wrap:nowrap}
.record-list>article strong,.record-list>article small{overflow-wrap:anywhere}
.record-list>article small{margin-top:2px;color:var(--ink-faint)}
.record-list>.muted{margin:0;padding:20px 0}

/* Existing shared screens */
.toolbar h1{margin:0}.eyebrow{margin:0 0 7px;color:var(--ink-faint);font-size:.75rem;font-weight:600}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.stats article{position:relative;padding:13px 15px 13px 17px;border:1px solid var(--border);border-radius:9px;background:var(--surface);overflow:hidden}
.stats article::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--k,#8fa2bd)}
.stats .stat-label{display:block;color:var(--ink-faint);font-size:.656rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.stats b{display:block;margin-top:5px;color:var(--ink);font-size:1.688rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.stats .stat-note{display:block;margin-top:5px;color:var(--ink-soft);font-size:.75rem}
.grid2{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(0,1fr);gap:16px}.quick{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick a{min-height:48px;display:flex;align-items:center;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-soft);font-weight:600;text-decoration:none}.quick a:hover{background:var(--primary-soft)}
.occupancy-panel{display:flex;flex-direction:column}.occupancy-panel>header h2,.occupancy-panel>header p{margin:0}.occupancy-panel>header p{margin-top:3px;color:var(--ink-faint);font-size:.84rem}.occupancy-chart-layout{min-height:0;display:flex;align-items:center;justify-content:center;flex:1;gap:32px;padding:18px 0}.occupancy-donut{--occupancy:0;width:190px;aspect-ratio:1;display:grid;place-items:center;flex:none;position:relative;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--occupancy)*1%),var(--surface-strong) 0)}.occupancy-donut::after{content:"";width:118px;aspect-ratio:1;position:absolute;border-radius:50%;background:var(--surface)}.occupancy-donut>span{z-index:1;display:grid;text-align:center}.occupancy-donut strong{color:var(--primary);font-size:2rem;font-variant-numeric:tabular-nums}.occupancy-donut small{color:var(--ink-faint);font-size:.78rem}.occupancy-legend{display:grid;gap:12px;margin:0}.occupancy-legend>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px}.occupancy-legend i{width:10px;height:10px;border-radius:50%;background:var(--primary)}.occupancy-legend .is-available{background:var(--surface-strong)}.occupancy-legend dt{color:var(--ink-soft);font-size:.84rem}.occupancy-legend dd{margin:0;color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}.billing-settings-form input[type=number],.billing-period-dialog input[type=number]{appearance:textfield;-moz-appearance:textfield}.billing-settings-form input[type=number]::-webkit-inner-spin-button,.billing-settings-form input[type=number]::-webkit-outer-spin-button,.billing-period-dialog input[type=number]::-webkit-inner-spin-button,.billing-period-dialog input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}
.kpi-overview-panel{display:flex;flex-direction:column;padding:0;overflow:hidden}.kpi-overview-panel>header{padding:18px 20px 16px;margin-bottom:0}.kpi-overview-panel>header h2,.kpi-overview-panel>header p{margin:0}.kpi-overview-panel>header p{margin-top:3px;color:var(--ink-faint);font-size:.84rem}.kpi-quadrant-grid{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:1;border-top:1px solid var(--border)}.kpi-quadrant{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px}.kpi-quadrant:nth-child(odd){border-right:1px solid var(--border)}.kpi-quadrant:nth-child(-n+2){border-bottom:1px solid var(--border)}.kpi-copy{min-width:0}.kpi-copy h3{margin:0;color:var(--primary);font-size:.875rem;font-weight:700}.kpi-copy p{max-width:22ch;margin:3px 0 12px;color:var(--ink-faint);font-size:.75rem;line-height:1.4}.kpi-copy>strong{color:var(--ink);font-size:1.188rem;font-variant-numeric:tabular-nums}.kpi-copy>strong small{color:var(--ink-faint);font-size:.72rem;font-weight:650}.kpi-ring{--value:0;--metric-color:var(--accent);width:84px;aspect-ratio:1;display:grid;place-items:center;flex:none;position:relative;border-radius:50%;background:conic-gradient(var(--metric-color) calc(var(--value)*1%),var(--surface-strong) 0)}.kpi-ring::after{content:"";width:68px;aspect-ratio:1;position:absolute;border-radius:50%;background:var(--surface)}.kpi-ring span{z-index:1;color:var(--primary);font-size:1.031rem;font-weight:700;font-variant-numeric:tabular-nums}.billing-settings-form input[type=number],.billing-period-dialog input[type=number]{appearance:textfield;-moz-appearance:textfield}.billing-settings-form input[type=number]::-webkit-inner-spin-button,.billing-settings-form input[type=number]::-webkit-outer-spin-button,.billing-period-dialog input[type=number]::-webkit-inner-spin-button,.billing-period-dialog input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}
.activity{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--border-soft)}
.activity:last-child{border-bottom:0}
.activity-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#eef4fb;color:#3a72b8}
.activity-icon svg{width:15px;height:15px}
.activity b{display:block;color:var(--ink);font-size:.813rem;font-weight:700}
.activity>div>span{display:block;margin-top:1px;color:var(--ink-soft);font-size:.781rem}
.activity small{display:block;margin-top:3px;color:var(--ink-mute);font-size:.688rem}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
table{width:100%;border-collapse:collapse}th,td{padding:13px 16px;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle}th{background:var(--surface-soft);color:var(--ink-faint);font-size:.656rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}tbody tr{transition:background-color var(--dur-micro) ease}tbody tr:hover{background:var(--surface-soft)}tbody tr:last-child td{border-bottom:0}
.datatable-wrap{min-width:0}
.datatable-wrap .dt-container{display:flex;min-width:0;flex-direction:column;gap:10px;color:var(--ink-soft);font-size:.813rem}
.datatable-wrap .dt-layout-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0}
.datatable-wrap .dt-layout-row:has(.dt-length){min-height:52px;padding:8px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.datatable-wrap .dt-layout-cell{display:flex;align-items:center;min-width:0}
.datatable-wrap .dt-length{display:flex;align-items:center;gap:9px;white-space:nowrap}.datatable-wrap .dt-length .custom-select{width:78px;flex:none}.datatable-wrap .dt-length label,.datatable-wrap .dt-search label{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;white-space:nowrap}
.datatable-wrap .dt-length select,.datatable-wrap .dt-search input{min-height:34px;margin:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}
.datatable-wrap .dt-length select{width:auto;padding:7px 38px 7px 11px}
.datatable-wrap .dt-search input{width:min(300px,34vw);padding:8px 11px}
.datatable-wrap .dt-length select:focus-visible,.datatable-wrap .dt-search input:focus-visible,.datatable-wrap .dt-paging-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.datatable-wrap .dt-scroll{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
.datatable-wrap .dt-scroll-head th{border-top:0}
.datatable-wrap .dt-scroll-head{background:var(--surface-soft)}
.datatable-wrap .dt-scroll-body{overscroll-behavior:contain;scrollbar-gutter:auto;scrollbar-color:var(--primary) var(--surface-strong);scrollbar-width:thin}
.datatable-wrap .dt-scroll-body::-webkit-scrollbar{width:12px;height:12px}.datatable-wrap .dt-scroll-body::-webkit-scrollbar-track{background:var(--surface-strong);border:3px solid var(--surface);border-radius:999px}.datatable-wrap .dt-scroll-body::-webkit-scrollbar-thumb{border:3px solid var(--surface);border-radius:999px;background:var(--primary)}.datatable-wrap .dt-scroll-body::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}
.datatable-wrap table.dataTable{width:100%!important;margin:0!important;border-spacing:0}
.datatable-wrap table.dataTable thead th{height:42px;padding:0 16px!important;background:var(--surface-soft)!important;border-bottom:1px solid var(--border)!important;color:var(--ink-faint)!important;font-size:.656rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.datatable-wrap table.dataTable thead th .dt-column-order{color:var(--ink-mute)!important;opacity:.9}.datatable-wrap table.dataTable thead th .dt-column-order::before,.datatable-wrap table.dataTable thead th .dt-column-order::after{color:var(--ink-mute)!important;opacity:.85!important}
.datatable-wrap table.dataTable tbody tr>td{height:48px;padding:0 16px!important;border-bottom:1px solid var(--border-soft);background:var(--surface)!important;box-shadow:none!important;font-size:.813rem}
.datatable-wrap table.dataTable tbody tr:hover>td{background:var(--surface-soft)!important}
.datatable-wrap table.dataTable tbody tr:last-child>td{border-bottom:0}
.datatable-wrap table.dataTable th.dt-actions-column,.datatable-wrap table.dataTable td.dt-actions-column{width:1%;min-width:172px;text-align:right!important;white-space:nowrap}
.datatable-wrap table.dataTable th.dt-actions-column .dt-column-header{justify-content:flex-end}
.billing-table-wrap table.dataTable th:not(.dt-actions-column) .dt-column-header{width:100%;justify-content:space-between;gap:10px}
.table-truncate{max-width:42ch;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-person{min-width:0;display:flex;flex-wrap:nowrap;align-items:center;gap:10px;white-space:nowrap}.table-person>strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.table-person .person-avatar{width:30px;height:30px;flex:none;font-size:.656rem}.table-secondary{display:block;margin-top:3px;color:var(--ink-faint)}
.review-toggle{color:var(--warning)}.review-toggle:hover{border-color:#d2a041;background:var(--warning-bg)}.review-toggle.is-reviewed{color:var(--success)}.review-toggle.is-reviewed:hover{border-color:var(--success);background:var(--success-bg)}
.review-toggle.is-loading{opacity:.55;cursor:progress}.datatable-wrap tbody tr.is-removing td{opacity:0;transition:opacity 140ms ease}
.datatable-wrap .dt-info{font-variant-numeric:tabular-nums}
.datatable-wrap .dt-paging{display:flex;align-items:center;gap:6px}.datatable-wrap .dt-paging nav{display:flex;align-items:center;gap:6px}
.datatable-wrap .dt-container .dt-paging .dt-paging-button{min-width:32px;min-height:32px;margin:0;padding:5px 10px!important;border:1px solid transparent!important;border-radius:6px!important;background:transparent!important;color:var(--ink-soft)!important;-webkit-text-fill-color:var(--ink-soft);box-shadow:none!important;font-size:.781rem;font-weight:700;transition:background-color var(--dur-micro) ease,color var(--dur-micro) ease}
.datatable-wrap .dt-container .dt-paging .dt-paging-button:hover:not(.disabled):not(.current){background:var(--primary-soft)!important;color:var(--primary)!important;-webkit-text-fill-color:var(--primary)}
.datatable-wrap .dt-container .dt-paging .dt-paging-button.current,.datatable-wrap .dt-container .dt-paging .dt-paging-button.current:hover{border-color:var(--primary)!important;background:var(--primary)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.datatable-wrap .dt-container .dt-paging .dt-paging-button.disabled,.datatable-wrap .dt-container .dt-paging .dt-paging-button.disabled:hover{opacity:1;border-color:#d9e2ed!important;background:#f4f7fa!important;color:#66778d!important;-webkit-text-fill-color:#66778d!important;cursor:not-allowed;transform:none}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;color:var(--ink-soft);font-size:.88rem}.pagination-summary{font-variant-numeric:tabular-nums}.pagination-actions{display:flex;align-items:center;gap:10px}.pagination-actions>span{white-space:nowrap}
.case-link-list{display:flex;flex-wrap:wrap;gap:5px}.case-link-list a{display:inline-flex;padding:3px 7px;border-radius:6px;background:var(--primary-soft);font-size:.78rem;font-weight:600;text-decoration:none}
.origin-chip{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft);color:var(--ink-soft);font-size:.719rem;font-weight:700;white-space:nowrap}.origin-chip small{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink-faint);font-size:.688rem;font-weight:400}.origin-chip.policy{border-color:#cfe0f2;background:#eff5fc;color:#22568f}.origin-chip.policy small{color:#4a76a8}.origin-chip.stay{border-color:#d5e8dc;background:#f0f8f4;color:#146046}.origin-chip.stay small{color:#3f7d63}.origin-chip+.origin-chip{margin-left:4px}
.case-chip-list{display:flex;flex-wrap:wrap;gap:6px}.case-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.78rem;font-weight:700;white-space:nowrap}.case-chip small{color:#52657d;font-size:.7rem;font-weight:600}.table-access-button{border:1px solid #c7d4e4;background:#fff}.table-access-button:hover{border-color:var(--primary);background:var(--primary-soft)}
.case-picker-dialog{width:min(560px,calc(100vw - 32px))}.case-picker-options{display:grid;gap:9px;padding:20px 24px;overflow-y:auto}.case-picker-options a{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color 160ms ease,background-color 160ms ease,transform 160ms var(--ease-out)}.case-picker-options a:hover{border-color:var(--border-strong);background:var(--primary-soft);transform:translateX(2px)}.case-picker-options a>span{min-width:0;display:flex;flex-direction:column}.case-picker-options a strong{color:var(--primary)}.case-picker-options a small{margin-top:2px;color:var(--ink-faint)}.case-picker-options a>svg{width:18px;height:18px;flex:none;color:var(--primary)}
.history-page{min-height:0}
.history-toolbar{flex:none;margin-bottom:14px}.history-toolbar p{margin:0;color:var(--ink-soft)}
.history-filters{display:grid;grid-template-columns:minmax(180px,1.6fr) repeat(3,minmax(110px,1fr)) repeat(2,minmax(138px,.8fr)) auto;align-items:end;flex:none;gap:10px;margin-bottom:14px;padding:12px}
.history-filters>label{min-width:0}.history-filters .filter-actions{flex-wrap:nowrap}
.filters label>.custom-select{width:100%}
.history-table{min-width:900px}.history-table td:first-child{font-variant-numeric:tabular-nums;white-space:nowrap}.history-table th:nth-child(1){width:170px}.history-table th:nth-child(2){width:130px}.history-table th:nth-child(3){width:190px}.history-table th:nth-child(4){width:190px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 17px}.form-grid label{display:flex;flex-direction:column;gap:5px;color:var(--ink-soft);font-size:.84rem;font-weight:600}
.form-panel{padding:20px 24px}.form-grid .errorlist{margin:0;color:var(--danger)}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.detail-grid div{display:flex;flex-direction:column}.detail-grid small{color:var(--ink-faint)}
.timeline{display:grid;gap:10px}.phase{display:flex;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.phase>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--surface-strong);font-weight:700}.phase.completed>span{background:var(--success);color:#fff}.phase h3,.phase p{margin-bottom:4px}.phase form{display:flex;gap:8px}
.danger-zone{margin-top:24px}.danger-zone form{display:flex;gap:10px}.danger-zone textarea{flex:1}
.login-page{min-height:calc(100vh - var(--footer-h));min-height:calc(100dvh - var(--footer-h));display:flex;flex:1 0 auto}
.login-field{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:clamp(28px,5vw,64px);background:var(--primary-dark);overflow:hidden}
.login-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.login-brand-watermark{position:absolute;right:-70px;bottom:-90px;width:min(520px,70%);object-fit:contain;object-position:right bottom;filter:brightness(3);opacity:.1;pointer-events:none;user-select:none}
.login-wrap{position:relative;z-index:1;width:min(1000px,100%);display:grid;grid-template-columns:minmax(0,452px) minmax(0,428px);gap:clamp(32px,5vw,60px);align-items:center}
.login-brand{min-width:0;color:#fff}
.login-brand-logo{width:auto;height:44px;margin-bottom:32px;filter:brightness(0) invert(1)}
.login-eyebrow{margin:0 0 12px;color:var(--on-dark-soft);font-size:.656rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.login-brand h1{max-width:none;margin:0;color:#fff;font-size:clamp(1.9rem,3.4vw,2.375rem);font-weight:700;line-height:1.14;letter-spacing:-.018em}
.login-brand-lead{max-width:46ch;margin:16px 0 0;color:#adc0dc;font-size:.938rem;line-height:1.6}
.login-benefits{display:grid;gap:11px;margin:30px 0 0;padding:0;list-style:none;color:rgba(255,255,255,.9);font-size:.844rem}
.login-benefits li{display:flex;align-items:center;gap:11px}
.login-benefits svg{width:15px;height:15px;flex:none;color:#82bde7;stroke-width:2.4}
.login-access{min-width:0;display:block}
.login-panel{width:100%;border:0;border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 18px 48px rgba(4,12,28,.42);overflow:hidden}
.login-panel-header{display:flex;align-items:center;gap:12px;height:52px;padding:0 22px;border-bottom:1px solid var(--border);background:var(--surface-soft);text-align:left}
.login-institution-icon{width:26px;height:26px;display:grid;place-items:center;flex:none;margin:0;padding:3px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}
.login-institution-icon img{width:100%;height:100%;object-fit:contain}
.login-panel-header>span{color:var(--ink-soft);font-size:.688rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.login-panel-body{padding:26px 22px 22px}
.login-panel-body h2{margin:0;color:var(--ink);font-size:1.375rem;font-weight:700;letter-spacing:-.012em}
.login-panel-lead{margin:8px 0 24px;color:var(--ink-soft);font-size:.844rem;line-height:1.55}
.saml-login-btn{min-height:52px;display:flex;align-items:center;gap:12px;margin:0;padding:0 16px;border:0;border-radius:var(--radius-sm);background:var(--topbar);color:#fff;font-weight:700;text-decoration:none;transition:background-color var(--dur-micro) var(--ease-standard)}
.saml-login-btn:hover{background:var(--primary-dark);color:#fff}
.saml-login-btn>span:nth-child(2){flex:1;font-size:.906rem}
.saml-login-btn-icon{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:6px;background:rgba(255,255,255,.15);color:#fff}
.saml-login-btn-icon svg{width:17px;height:17px}
.saml-login-btn-arrow{width:17px;height:17px;flex:none;color:rgba(255,255,255,.7)}
.login-security{display:flex;align-items:center;gap:8px;margin:14px 0 0;color:var(--ink-faint);font-size:.75rem}
.login-security svg{width:14px;height:14px;flex:none;color:var(--success)}
.login-divider{display:flex;align-items:center;gap:12px;margin:22px 0}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--border)}
.login-divider span{color:var(--ink-mute);font-size:.656rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.login-local-form{display:grid;gap:14px}
.login-local-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.login-local-form label{display:grid;gap:6px;color:var(--ink-soft);font-size:.656rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.login-local-form input{min-height:38px;font-size:.844rem;text-transform:none}
.login-local-submit{width:100%}
.login-help{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--border-soft);color:var(--ink-faint);font-size:.75rem;line-height:1.6}
details{scroll-margin-top:150px}summary{font-weight:700;cursor:pointer}

@media (max-width:1150px){
  .history-filters{grid-template-columns:minmax(220px,2fr) repeat(3,minmax(125px,1fr))}
  .global-search{width:min(280px,26vw)}
}

@media (max-width:1100px){
  .case-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.case-filters .filter-search{grid-column:1/-1}
  .workspace main{padding:28px 24px 44px}
  .header-title small{display:none}
  .summary-layout{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(3,1fr)}
  .history-filters{grid-template-columns:minmax(220px,2fr) repeat(3,minmax(125px,1fr))}
  .history-filters .filter-actions{grid-column:auto}
}

@media (max-width:850px){
  .login-wrap{grid-template-columns:minmax(0,1fr);gap:28px;width:min(460px,100%)}.login-brand-logo{height:38px;margin-bottom:22px}.login-benefits{display:none}.login-brand-lead{font-size:.875rem}.login-access{padding:28px 20px 84px}
  .shell,.shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr);min-height:calc(100vh - var(--footer-h));min-height:calc(100dvh - var(--footer-h))}
  .sidebar,.shell.sidebar-collapsed .sidebar{position:fixed;left:0;width:min(290px,86vw);height:calc(100vh - 56px);height:calc(100dvh - 56px);min-height:0;transform:translateX(-105%);transition:transform 220ms var(--ease-out),box-shadow 180ms ease}
  .sidebar.open{transform:translateX(0);box-shadow:20px 0 40px rgba(9,20,39,.24)}
  .shell.sidebar-collapsed .sidebar-brand{justify-content:flex-start;padding:0 16px;height:var(--topbar-h);min-height:var(--topbar-h)}
  .shell.sidebar-collapsed .sidebar-mark{width:30px;height:30px;border-radius:6px;padding:4px}
  .shell.sidebar-collapsed .sidebar-brand-copy,.shell.sidebar-collapsed .sidebar-group{position:static;width:auto;height:auto;clip:auto;opacity:1;overflow:visible}
  .shell.sidebar-collapsed .sidebar-brand-copy{display:flex}
  .sidebar-foot{display:none}
  .shell.sidebar-collapsed .sidebar-nav{align-items:stretch;padding:10px}
  .shell.sidebar-collapsed .sidebar-nav a{width:auto;height:auto;justify-content:flex-start;padding:0 11px}
  .shell.sidebar-collapsed .sidebar-nav a>span{position:static;padding:0;background:transparent;color:inherit;font-size:inherit;box-shadow:none;opacity:1;transform:none}
  .sidebar-toggle{display:none}
  .sidebar-scrim{position:fixed;inset:0;z-index:var(--z-scrim);display:block;border:0;background:rgba(9,20,39,.48);opacity:0;pointer-events:none;transition:opacity 180ms ease}
  .sidebar-scrim.is-visible{opacity:1;pointer-events:auto}
  /* Area tactil de 44px en tableta y movil */
  input,select,textarea,.custom-select-trigger{min-height:44px}
  .custom-date input{padding-right:48px}
  .custom-date-trigger,.icon-btn,.mini-icon-btn{width:44px;height:44px}
  .btn{min-height:44px}
  .btn.small{min-height:38px}
  .toast-region{top:10px;right:10px;width:min(330px,calc(100vw - 20px))}
  .mobile-menu{display:inline-grid}
  .topbar{height:var(--topbar-h);padding:0 14px;gap:10px}
  .topbar-brand{gap:10px}
  .topbar-brand img{height:36px}
  .topbar-divider{display:none}
  .topbar-brand{display:none}
  .global-search{flex:1;width:auto;min-width:0}
  .global-search kbd{display:none}
  .global-search input{padding-right:12px}
  .global-search-panel{width:min(420px,calc(100vw - 28px))}
  .user-copy{display:none}
  .logout-link{margin-left:16px}
  .case-tabs{top:0}
  .person-row{grid-template-columns:auto minmax(0,1fr) auto}
  .person-role{grid-column:2}.person-row>.badge{grid-column:2;grid-row:auto}.person-actions{grid-column:3;grid-row:1/3}
  .grid2,.form-grid{grid-template-columns:1fr}.form-actions{grid-column:auto}
  .detail-grid{grid-template-columns:repeat(2,1fr)}
  .history-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .history-filters .filter-search{grid-column:1/-1}
  .datatable-wrap .dt-layout-row{align-items:stretch;flex-direction:column}.datatable-wrap .dt-layout-cell{width:100%}.datatable-wrap .dt-search,.datatable-wrap .dt-search label{width:100%}.datatable-wrap .dt-search input{width:100%}.datatable-wrap .dt-paging{max-width:100%;overflow-x:auto}
  .dashboard-main{overflow-y:auto!important}.dashboard-main>.dashboard-layout{flex:none}.recent-activity-panel,.activity-list{overflow:visible}
}

@media (max-width:620px){
  h1{font-size:1.7rem}
  .workspace main{padding:22px 14px 30px}
  .datatable-page-main{padding:18px 14px!important}
  .datatable-page-content{min-height:0;flex:1;overflow:hidden}
  .page-datatable-wrap{height:auto;min-height:0;flex:1}
  .site-watermark{width:min(440px,86vw);opacity:.4}
  .topbar-brand .header-title{display:none}
  .user-avatar{display:none}
  .page-header,.toolbar,.workflow-header,.section-page-heading{align-items:stretch;flex-direction:column;gap:16px}
  .page-header>.btn,.section-page-heading>.btn{width:100%}
  .filters{padding:14px}.filters>label,.filters .filter-search{flex-basis:100%}.filter-actions{width:100%}.filter-actions .btn{flex:1}
  .case-filters{grid-template-columns:1fr}.case-filters .filter-search{grid-column:auto}.case-filter-clear{width:100%}
  .results-heading{align-items:flex-start;flex-direction:column;gap:3px}
  .login-brand{min-height:270px;padding:30px 22px}.login-brand-logo{height:42px;margin-bottom:28px}.login-brand h1{font-size:2.35rem}.login-brand-lead{font-size:.95rem}.login-panel{padding:26px 20px}
  .drawer-header,.drawer-content,.drawer-footer{padding-left:18px;padding-right:18px}
  .drawer-facts{grid-template-columns:1fr 1fr}.drawer-facts .drawer-fact-wide{flex-direction:column;gap:2px}.drawer-facts .drawer-fact-wide dd{text-align:left}
  .occupancy-row{grid-template-columns:auto minmax(0,1fr) auto}.occupancy-row>span:nth-child(3){grid-column:2}.occupancy-row>svg{grid-column:3;grid-row:1/3}
  .drawer-footer{align-items:stretch;flex-direction:column-reverse}.drawer-footer form,.drawer-footer-actions,.drawer-footer .btn{width:100%}.drawer-footer-actions{flex-direction:column}.space-management-actions{justify-content:flex-end}
  .case-page-header .btn{width:100%}.case-header-actions{width:100%}.case-header-actions .btn{flex:1}.case-header-actions .destructive-icon{width:44px;flex:none}
  .case-tab-list{gap:22px}
  .case-facts{grid-template-columns:1fr;gap:17px}
  .case-progress-card{display:flex}.case-progress-card .progress-orbit{margin-bottom:14px}
  .danger-disclosure form{grid-template-columns:1fr}.danger-disclosure form>div,.danger-disclosure form .btn{width:100%}
  .workflow-progress{align-items:flex-start}
  .workflow-phase{grid-template-columns:40px minmax(0,1fr);padding:16px 14px 16px 8px}
  .workflow-list::before{left:19px}.phase-marker{width:38px;height:38px}
  .phase-heading{align-items:flex-start;flex-direction:column;gap:7px}
  .phase-form{grid-template-columns:1fr}.phase-form .btn{width:100%}
  .person-row{grid-template-columns:auto minmax(0,1fr) auto;gap:11px}.person-role{grid-column:2}.person-row>.badge{grid-column:2;grid-row:auto;margin:0}.person-actions{grid-column:3;grid-row:1/4;flex-direction:column}
  .person-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.person-dialog-header{padding:18px 18px 15px}.person-dialog form{max-height:calc(100dvh - 118px)}.person-data-section{padding:17px 18px 0}.person-form-grid,.role-options{grid-template-columns:1fr}.person-dialog-footer{align-items:stretch;flex-direction:column;padding:13px 18px}.person-dialog-footer>div{display:grid;grid-template-columns:1fr 1fr}.confirm-dialog-header{grid-template-columns:40px minmax(0,1fr) 36px;padding:19px 18px 15px}.confirm-dialog-icon{width:40px;height:40px}.confirm-person-summary,.confirm-entity-summary,.dependency-warning,.automatic-dependencies{margin-right:18px;margin-left:18px}.confirm-space-summary{grid-template-columns:1fr;margin:0 18px 17px}.confirm-space-summary p{grid-column:1}.dependency-grid{grid-template-columns:1fr;margin-right:18px;margin-left:18px}.confirm-dialog-actions{display:grid;grid-template-columns:1fr 1fr;padding:13px 18px}
  .record-list>article{grid-template-columns:minmax(0,1fr) auto}.record-list>article>.btn{grid-column:1/-1;justify-self:start}.record-list>article>.record-actions{grid-column:2;justify-self:end}
  .site-footer{padding:7px 16px}
  .stats{grid-template-columns:1fr 1fr}.quick{grid-template-columns:1fr}.activity{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.danger-zone form,.phase form{flex-direction:column}
  .pagination{align-items:stretch;flex-direction:column}.pagination-actions{justify-content:space-between;width:100%}.pagination-actions .btn{flex:1}
  .history-toolbar{margin-bottom:10px}.history-toolbar p{font-size:.88rem}
  .history-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;padding:10px}.history-filters .filter-search,.history-filters .filter-actions{grid-column:1/-1}.history-filters .filter-actions .btn{flex:1}
  .datatable-wrap .dt-layout-row:has(.dt-length){align-items:flex-start}.datatable-wrap .dt-info{padding-top:2px}
}

/* Ajustes de espacios compartidos y facturación */
.shared-use-table{min-height:280px;overflow:hidden}.shared-use-table table{min-width:540px}.shared-use-table .dt-container{width:100%}
.billing-settings-form{display:flex;flex-direction:column;gap:16px;max-width:1040px}.settings-tabs{display:flex;align-items:center;gap:3px;margin:0;padding:0;border-bottom:1px solid var(--border);background:transparent}.settings-tab{min-width:0;min-height:42px;padding:0 15px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--ink-soft);font-size:.875rem;font-weight:600;cursor:pointer;transition:color var(--dur-micro) var(--ease-standard),border-color var(--dur-micro) var(--ease-standard)}.settings-tab:hover{background:transparent;color:var(--primary)}.settings-tab.is-active{border-bottom-color:var(--accent);background:transparent;color:var(--primary);font-weight:700;box-shadow:none}.settings-tab-pane{display:flex;flex-direction:column;gap:16px}.settings-tab-pane[hidden]{display:none}.settings-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.settings-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 16px;border-bottom:1px solid var(--border)}.settings-panel-head h2{margin:0;color:var(--primary);font-size:.938rem;font-weight:700}.settings-panel-head p{margin:4px 0 0;max-width:76ch;color:var(--ink-faint);font-size:.781rem}.settings-panel-note{display:flex;align-items:center;gap:9px;margin:0;padding:12px 20px;border-top:1px solid var(--border-soft);background:var(--surface-soft);color:var(--ink-faint);font-size:.781rem}.settings-panel-note svg{width:15px;height:15px;flex:none;color:var(--accent)}.settings-rate-table{width:100%;border-collapse:collapse;table-layout:fixed}.settings-rate-table thead th{height:38px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--surface-soft);color:var(--ink-faint);font-size:.656rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:left}.settings-rate-table thead th:first-child{width:170px}.settings-rate-table tbody th{padding:0 20px;border-bottom:1px solid var(--border-soft);color:var(--ink);font-size:.875rem;font-weight:700;text-align:left;white-space:nowrap}.settings-rate-table tbody td{padding:9px 20px 9px 0;border-bottom:1px solid var(--border-soft);vertical-align:middle}.settings-rate-table tbody td:first-of-type{padding-left:0}.settings-rate-table tbody tr:last-child th,.settings-rate-table tbody tr:last-child td{border-bottom:0}.settings-rate-table tbody tr:hover{background:var(--surface-soft)}.rate-field{position:relative;display:block;min-width:0}.rate-field input{width:100%;padding-right:62px;font-variant-numeric:tabular-nums;text-align:right}.rate-field b{position:absolute;top:50%;right:12px;transform:translateY(-50%);color:var(--ink-faint);font-size:.75rem;font-weight:600;pointer-events:none}.rate-field:has(input:focus) b{color:var(--accent)}.settings-company-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(268px,.42fr);align-items:start;gap:16px}.settings-tax-panel .settings-panel-head{min-height:0}.settings-tax-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:18px 20px}.settings-tax-grid>label{display:grid;align-content:start;gap:6px;color:var(--ink-soft);font-size:.84rem;font-weight:600}.settings-tax-grid small{color:var(--ink-faint);font-size:.75rem;font-weight:400}.settings-tax-grid .rate-field input{padding-right:38px}.billing-settings-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.billing-settings-actions p{margin:0;color:var(--ink-faint);font-size:.781rem}.invoice-use-option{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px}.billing-chip-summary{display:flex;align-items:center;gap:5px}.billing-chip-summary .billing-period-chip{margin:0;white-space:nowrap}.billing-more-button{width:30px;height:28px;padding:0;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--primary);font-size:1rem;font-weight:800;line-height:1;cursor:pointer}.billing-more-button:hover{background:var(--primary-soft)}.billing-calculation-button{min-height:36px;padding:6px 8px}.billing-info-list,.billing-calculation-list{display:grid;gap:0;padding:10px 24px 20px}.billing-info-list>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--border)}.billing-info-list span{color:var(--ink-faint)}.billing-calculation-list p{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0;padding:12px 0;border-bottom:1px solid var(--border)}.billing-calculation-list p>span{display:flex;flex-direction:column}.billing-calculation-list small{color:var(--ink-faint)}.billing-calculation-list p>b{white-space:nowrap;color:var(--primary)}.billing-calculation-list footer{display:flex;align-items:center;justify-content:space-between;padding-top:16px;color:var(--primary);font-size:1rem}
@media(max-width:1080px){.settings-company-layout{grid-template-columns:1fr}.settings-tax-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.settings-tab{flex:1}.settings-rate-table{table-layout:auto}.settings-rate-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.settings-rate-table tbody tr{display:grid;grid-template-columns:1fr;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border-soft)}.settings-rate-table tbody th,.settings-rate-table tbody td{padding:0;border:0}.settings-rate-table tbody td::before{display:block;margin-bottom:4px;color:var(--ink-faint);font-size:.688rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.settings-rate-table tbody td:nth-of-type(1)::before{content:"Base general"}.settings-rate-table tbody td:nth-of-type(2)::before{content:"Espacios comunes"}.settings-tax-grid{grid-template-columns:1fr}.billing-settings-actions{align-items:stretch;flex-direction:column}.invoice-use-option{grid-template-columns:1fr}.billing-info-list>div{align-items:flex-start;flex-direction:column;gap:2px}}

/* Espacios compartidos */
.shared-spaces-pane{padding-bottom:24px}.shared-spaces-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr);align-items:start;gap:18px}.shared-room-section,.shared-space-section{min-width:0;padding:20px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.shared-room-section .section-page-heading,.shared-space-section .section-page-heading{margin-bottom:14px}.shared-room-section .section-page-heading h2,.shared-space-section .section-page-heading h2{margin-bottom:3px}.shared-room-section .section-page-heading p,.shared-space-section .section-page-heading p{margin:0;color:var(--ink-faint);font-size:.86rem}.shared-use-table{overflow-x:auto;border:0;border-radius:0;background:transparent}.shared-use-table .dt-scroll{border:0;border-radius:0}.shared-use-table .dt-layout-row:has(.dt-length){min-height:52px;margin-top:8px;padding:8px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none}.shared-use-table table{width:100%;min-width:540px;border-collapse:collapse}.shared-use-table th,.shared-use-table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.shared-use-table th{background:var(--surface-soft);color:var(--ink-faint);font-size:.76rem}.shared-use-table tbody tr:last-child td{border-bottom:0}.shared-use-table td:last-child{width:52px;text-align:right}.quarter-badge{display:inline-grid;place-items:center;min-width:34px;height:28px;margin-right:5px;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:.78rem;font-weight:800}.shared-empty{margin-top:8px;padding:18px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-soft)}.storage-list{display:grid;gap:8px}.storage-row{display:grid;grid-template-columns:38px minmax(90px,1fr) minmax(0,.8fr) auto;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--border)}.storage-row:first-child{border-top:0}.storage-row>div{min-width:0;display:flex;flex-direction:column}.storage-row small{overflow:hidden;color:var(--ink-faint);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.storage-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--surface-strong);color:var(--primary)}.storage-icon svg{width:18px;height:18px}.compact-form-grid{padding-bottom:12px}.quarter-fieldset{margin:4px 0 0;padding:0;border:0}.quarter-fieldset legend{margin-bottom:7px;color:var(--ink-soft);font-size:.84rem;font-weight:700}.quarter-fieldset legend b{color:var(--danger)}.quarter-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.quarter-options label{display:block!important}.quarter-options input{position:absolute;width:1px;height:1px;opacity:0}.quarter-options label>span{min-height:64px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:9px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color 160ms ease,background-color 160ms ease}.quarter-options input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.quarter-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.quarter-options label.is-unavailable>span{border-color:var(--border);background:var(--surface-soft);color:var(--ink-faint);cursor:not-allowed;opacity:.62}.quarter-options small{font-size:.7rem}.quarter-fieldset>p{margin:8px 0 0;color:var(--ink-faint);font-size:.78rem}.storage-use-fields{display:grid;gap:16px;padding:20px 24px}.storage-toggle{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);cursor:pointer}.storage-toggle input{width:20px;height:20px;min-height:20px;flex:none;margin-top:1px;accent-color:var(--primary)}.storage-toggle>span{display:flex;flex-direction:column}.storage-toggle small,.storage-use-fields>label>small{color:var(--ink-faint);font-size:.78rem}.storage-use-fields>label:not(.storage-toggle){display:grid;gap:6px;color:var(--ink-soft);font-size:.84rem}.key-holder-mark{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:3px 7px;border-radius:999px;background:#fff5dc;color:#815b05;font-size:.7rem;font-weight:800}.key-holder-mark svg{width:13px;height:13px}.table-person .person-avatar{flex:none}

.shared-use-table .dt-scroll{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
.shared-use-table .dt-layout-row:has(.dt-length){margin-top:12px}

/* Configuración compacta y facturas por tipo */
.settings-rate-matrix{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.settings-rate-matrix>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:17px 18px;border-bottom:1px solid var(--border)}.settings-rate-matrix h2,.settings-rate-matrix p,.settings-tax-strip h2,.settings-tax-strip p{margin:0}.settings-rate-matrix p,.settings-tax-strip p{margin-top:3px;color:var(--ink-faint);font-size:.82rem}.rate-matrix-head,.rate-matrix-row{display:grid;grid-template-columns:80px repeat(3,minmax(180px,1fr));align-items:center;gap:14px;padding:9px 18px}.rate-matrix-head{background:var(--surface-soft);color:var(--ink-faint);font-size:.74rem;font-weight:800}.rate-matrix-head span:not(:first-child){text-align:center}.rate-matrix-row{border-top:1px solid var(--border)}.rate-matrix-row>strong{color:var(--primary);font-size:.84rem}.rate-matrix-row label{min-width:0}.rate-matrix-row .billing-rate-input{grid-template-columns:minmax(90px,1fr) auto}.rate-matrix-row input{min-height:40px;padding:8px 10px}.rate-matrix-row .errorlist,.settings-tax-strip .errorlist{margin:4px 0 0;padding:0;list-style:none;color:var(--danger);font-size:.75rem}.settings-tax-strip{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(180px,.65fr));align-items:end;gap:18px;margin-top:14px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.settings-tax-strip>label{display:grid;gap:5px;color:var(--ink-soft);font-size:.8rem;font-weight:700}.settings-tax-strip input{min-height:40px;padding:8px 10px}.billing-settings-actions{margin-top:14px}.billing-heading-actions{display:flex;align-items:center;gap:8px}.invoice-type-mark{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-size:.82rem;font-weight:800}.invoice-type-mark svg{width:17px;height:17px}.invoice-type-mark.common_area{color:#246987}.common-invoice-fields{display:grid;gap:18px;padding:20px 24px}.common-invoice-fields>label{display:grid;gap:6px;color:var(--ink-soft);font-size:.84rem}.common-invoice-fields fieldset{margin:0;padding:0;border:0}.common-invoice-fields legend{margin-bottom:8px;color:var(--ink-soft);font-size:.84rem;font-weight:700}.common-invoice-fields b{color:var(--danger)}.invoice-use-options{display:grid;gap:7px}.invoice-use-options label{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.invoice-use-options label:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.invoice-use-options input{width:19px;height:19px;min-height:19px;flex:none;margin-top:1px;accent-color:var(--primary)}.invoice-use-options label>span{display:flex;flex-direction:column}.invoice-use-options small{color:var(--ink-faint);font-size:.76rem}.common-invoice-fields .billing-formula-note{margin:0}

@media(max-width:1080px){.shared-spaces-grid{grid-template-columns:1fr}.storage-row{grid-template-columns:38px minmax(0,1fr) minmax(180px,.8fr) auto}.rate-matrix-head,.rate-matrix-row{grid-template-columns:70px repeat(3,minmax(145px,1fr));gap:10px}.settings-tax-strip{grid-template-columns:1fr 1fr}.settings-tax-strip>div{grid-column:1/-1}}
@media(max-width:760px){.shared-space-section{padding:16px}.storage-row{grid-template-columns:38px minmax(0,1fr) auto}.storage-row>div:nth-child(3){grid-column:2}.storage-row>.btn{grid-column:3;grid-row:1/3}.quarter-options{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-rate-matrix>header{align-items:flex-start;flex-direction:column}.rate-matrix-head{display:none}.rate-matrix-row{grid-template-columns:68px minmax(0,1fr);align-items:start;padding:13px 16px}.rate-matrix-row>strong{grid-row:1/4;padding-top:12px}.rate-matrix-row label{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:8px}.rate-matrix-row label:nth-child(2)::before{content:"Proyecto"}.rate-matrix-row label:nth-child(3)::before{content:"Empresa"}.rate-matrix-row label:nth-child(4)::before{content:"Zonas comunes"}.rate-matrix-row label::before{color:var(--ink-faint);font-size:.74rem;font-weight:700}.settings-tax-strip{grid-template-columns:1fr}.settings-tax-strip>div{grid-column:auto}.billing-settings-actions,.billing-section-heading{align-items:stretch;flex-direction:column}.billing-heading-actions{display:grid;grid-template-columns:1fr 1fr}.billing-heading-actions .btn{padding-right:10px;padding-left:10px}.common-invoice-fields,.storage-use-fields{padding:18px}.key-holder-mark>span{display:none}}
@media(max-width:480px){.rate-matrix-row{grid-template-columns:1fr}.rate-matrix-row>strong{grid-row:auto}.rate-matrix-row label{grid-template-columns:1fr}.billing-heading-actions{grid-template-columns:1fr}.storage-row{grid-template-columns:36px minmax(0,1fr)}.storage-row>.btn{grid-column:1/-1;grid-row:auto;width:100%}.storage-row>div:nth-child(3){grid-column:2}}

/* Facturación */
.billing-settings-heading p{max-width:72ch}.billing-settings-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);align-items:start;gap:18px}.billing-rate-panel,.billing-percentage-panel{min-width:0}.billing-formula-badge{padding:6px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.78rem;font-weight:700;white-space:nowrap}.billing-rate-list{display:grid}.billing-rate-list>label{display:grid;grid-template-columns:minmax(180px,1fr) minmax(230px,.8fr);align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--border)}.billing-rate-list>label:first-child{padding-top:0;border-top:0}.billing-rate-list>label>span:first-child{display:flex;flex-direction:column;gap:2px}.billing-rate-list>label>span:first-child small,.billing-rate-input small,.billing-percentage-panel label>small{color:var(--ink-faint);font-size:.78rem}.billing-rate-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.billing-rate-input b,.percentage-input b{color:var(--ink-soft);font-size:.82rem}.billing-rate-input small{grid-column:1/-1;text-align:right}.billing-rate-list .errorlist,.billing-percentage-panel .errorlist{grid-column:1/-1;margin:0;padding:0;list-style:none;color:var(--danger);font-size:.8rem}.billing-percentage-panel>label{display:grid;gap:6px;margin-bottom:18px;color:var(--ink-soft);font-size:.84rem;font-weight:700}.percentage-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.billing-formula-note,.billing-dialog-note{display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--ink-soft)}.billing-formula-note{margin:6px 0 18px}.billing-formula-note svg,.billing-dialog-note svg{width:19px;height:19px;flex:none;color:var(--primary)}.billing-formula-note p,.billing-dialog-note p{margin:0;font-size:.82rem}.billing-save{width:100%}.billing-section-heading{margin-bottom:12px}.billing-summary-strip{display:flex;flex-wrap:wrap;gap:0;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:rgba(255,255,255,.88)}.billing-summary-strip>span{min-width:180px;display:flex;flex:1;flex-direction:column;gap:2px;padding:11px 16px}.billing-summary-strip>span+span{border-left:1px solid var(--border)}.billing-summary-strip small{color:var(--ink-faint);font-size:.76rem}.billing-summary-strip strong{color:var(--primary);font-size:.96rem}.billing-table-wrap td{vertical-align:top}.billing-total{color:var(--primary);white-space:nowrap}.billing-breakdown{min-width:180px}.billing-breakdown summary{width:max-content;color:var(--primary);font-size:.82rem;font-weight:700;cursor:pointer}.billing-breakdown>div{display:grid;gap:7px;margin-top:8px;padding:9px;border-radius:var(--radius-sm);background:var(--surface-soft)}.billing-breakdown p{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;margin:0;font-size:.76rem}.billing-breakdown p strong{white-space:nowrap}.billing-breakdown p small{grid-column:1/-1;color:var(--ink-faint)}.billing-empty{min-height:250px}.billing-period-dialog{width:min(720px,calc(100vw - 32px))}.billing-period-fields label small{min-height:0}.billing-dialog-note{margin:0 24px 18px}.table-actions .is-paid{background:var(--success-bg);color:var(--success)}
.has-workflow-scroll .billing-pane.is-active:has(.billing-empty){overflow-y:auto;overscroll-behavior:contain;padding-right:4px;padding-bottom:18px}
.billing-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-card{padding:20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.settings-card header{margin-bottom:12px}.settings-card header h2,.settings-card header p{margin:0}.settings-card header p{color:var(--ink-faint);font-size:.84rem}.settings-card>label{display:grid;grid-template-columns:1fr minmax(180px,.75fr);align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--border)}.settings-card>label>span:first-child{display:grid}.billing-tax-card{max-width:680px;margin-top:18px}.billing-settings-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.billing-settings-actions p{margin:0;color:var(--ink-faint);font-size:.82rem}.billing-period-list{display:grid;gap:10px;padding:20px 24px}.billing-period-row{display:grid;grid-template-columns:1fr .7fr 1fr 1fr 44px;align-items:end;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.billing-period-row>label{display:grid;gap:5px;color:var(--ink-soft);font-size:.8rem}.billing-period-delete{align-self:end}.billing-period-delete>input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.billing-add-period{margin:0 24px 12px}.billing-period-chip{display:block;width:max-content;margin:0 0 4px;padding:3px 7px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.74rem;font-weight:700}.billing-invoice-paid{background:var(--success-bg)!important}.billing-locked{color:var(--success);font-size:.76rem;font-weight:800}.form-dialog-footer [data-billing-month-total].is-complete{color:var(--success);font-weight:800}.billing-form-errors{margin:0 24px 18px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 38%,var(--border));border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger-dark);font-size:.82rem;font-weight:650}.billing-period-remove-dialog{width:min(520px,calc(100vw - 32px))}
@media(max-width:800px){.billing-settings-grid{grid-template-columns:1fr}.billing-period-row{grid-template-columns:1fr 1fr}.billing-period-delete{grid-column:1/-1}}

@media(max-width:900px){.billing-settings-layout{grid-template-columns:1fr}.billing-summary-strip>span{min-width:33%}}
@media(max-width:680px){.billing-rate-list>label{grid-template-columns:1fr;gap:9px}.billing-rate-input small{text-align:left}.billing-summary-strip{display:grid;grid-template-columns:1fr}.billing-summary-strip>span+span{border-top:1px solid var(--border);border-left:0}.billing-dialog-note{margin-right:18px;margin-left:18px}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Space and case creation flows */
.form-dialog{width:min(860px,calc(100vw - 32px));max-width:none;max-height:min(920px,calc(100dvh - 32px));margin:auto;padding:0;border:0;border-radius:var(--radius-lg);background:transparent;color:var(--ink);opacity:0;transform:translateY(18px) scale(.985);transition:opacity 180ms ease,transform 220ms var(--ease-out)}
.form-dialog.is-visible{opacity:1;transform:translateY(0) scale(1)}
.form-dialog::backdrop,.person-dialog::backdrop{background:rgba(9,20,44,.42);opacity:0;transition:opacity var(--dur-overlay) ease}.form-dialog.is-visible::backdrop{opacity:1}
.form-dialog-shell{max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-float)}
.form-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px 16px;border-bottom:1px solid var(--border)}
.form-dialog-header h2{margin:0 0 4px;color:var(--primary);font-size:1.188rem;font-weight:700;letter-spacing:-.01em}.form-dialog-header p{max-width:62ch;margin:0;color:var(--ink-faint)}.dialog-context{display:block;margin-bottom:4px;color:var(--accent-dark);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.form-dialog-close{margin:-6px -8px 0 0;color:var(--ink-soft)}
.dialog-form{min-height:0;flex:1;overflow-y:auto}.dialog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 17px;padding:20px 24px}.dialog-form-grid label{min-width:0;display:grid;align-content:start;gap:5px;color:var(--ink-soft);font-size:.84rem}.dialog-form-grid label>span b,.form-dialog-footer b{color:var(--danger)}.dialog-form-grid .field-wide{grid-column:1/-1}.dialog-form-grid textarea{min-height:84px}.dialog-form-grid .errorlist,.quick-create-errors{margin:0;padding:0;list-style:none;color:var(--danger);font-size:.8rem}
.case-entry-dialog{width:min(780px,calc(100vw - 32px))}.case-entry-dialog .dialog-form-grid{align-items:start}.field-label{color:var(--ink-soft);font-size:.84rem;font-weight:600}.upload-field{display:grid;gap:7px}
.file-dropzone{min-height:174px;display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:24px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-soft);color:var(--ink-soft)!important;text-align:center;cursor:pointer;transition:border-color 180ms ease,background 180ms ease,transform 180ms var(--ease-out)}
.file-dropzone:hover,.file-dropzone.is-dragging{border-color:var(--primary);background:var(--primary-soft)}.file-dropzone.is-dragging{transform:scale(.995)}.file-dropzone:focus-within{box-shadow:var(--focus-ring);outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent);outline-offset:2px;border-color:var(--primary)}
.file-dropzone input[type=file]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dropzone-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--primary)}.dropzone-icon svg{width:21px;height:21px}.file-dropzone strong{color:var(--ink);font-size:.95rem}.file-dropzone>span:not(.dropzone-icon){font-size:.83rem}.file-dropzone small{color:var(--ink-faint);font-size:.76rem}.file-dropzone.has-file{border-color:var(--success);background:var(--success-bg)}.selected-file{min-height:20px;margin:0;color:var(--ink-soft);font-size:.82rem;overflow-wrap:anywhere}

/* Documentos y pólizas simplificados */
.document-record{grid-template-columns:minmax(0,1fr) auto!important}.document-record .record-actions{justify-self:end}.mini-icon-btn{width:30px;height:30px;display:inline-grid;place-items:center;flex:0 0 auto;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--primary);cursor:pointer;transition:border-color 160ms ease,background 160ms ease}.mini-icon-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.mini-icon-btn svg{width:15px;height:15px}.policy-files,.policy-file-table{display:flex!important;flex-direction:column!important;align-items:flex-start;gap:6px;margin-top:9px}.policy-files>span,.policy-file-table>span{max-width:100%;display:flex;align-items:center;gap:5px;padding:4px 5px 4px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);font-size:.8rem}.policy-files>span>span,.policy-file-table>span>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policy-record>div:first-child{align-self:start}.policy-file-table{margin:0;min-width:190px}.file-queue{display:grid;gap:7px;min-height:20px}.file-queue>p{margin:0;color:var(--ink-faint);font-size:.82rem}.file-queue-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}.file-queue-item>span{min-width:0;display:flex;flex-direction:column}.file-queue-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.file-queue-item small{color:var(--ink-faint)}.current-policy-files{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}.current-policy-files h2{margin:0;font-size:1rem}.current-policy-files>p{margin:3px 0 12px;color:var(--ink-faint);font-size:.84rem}.current-policy-files article,.current-policy-files article>span,.current-policy-files small,
.policy-file-summary{min-width:210px;display:flex;align-items:center;gap:7px}.policy-primary-file{min-width:0;display:flex;align-items:center;gap:5px;padding:4px 5px 4px 9px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.policy-primary-file>span{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policy-more-button{min-width:42px;height:32px;display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:3px 7px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--primary);font-weight:800;cursor:pointer}.policy-more-button:hover{border-color:var(--primary);background:var(--primary-soft)}.policy-more-button>span{font-size:1.1rem;line-height:1}.policy-more-button small{font-size:.68rem}.policy-remove-toggle{position:relative}.policy-remove-toggle:has(input:checked){border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.editable-policy-file{transition:background-color 160ms ease,opacity 160ms ease}.editable-policy-file:has(input:checked){opacity:.68;background:var(--danger-bg)}.editable-policy-file em{display:none;margin-top:3px;color:var(--danger);font-size:.72rem;font-style:normal;font-weight:700}.editable-policy-file:has(input:checked) em{display:block}.current-policy-files h3{margin:0;font-size:.95rem}.current-policy-files>p{margin:4px 0 12px;color:var(--ink-faint);font-size:.8rem}.details-dialog{width:min(820px,calc(100vw - 32px))}.details-dialog-body{padding:20px 24px;overflow-y:auto}.details-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin:0}.details-facts>div{min-width:0}.details-facts .field-wide{grid-column:1/-1}.details-facts dt{margin-bottom:5px;color:var(--ink-faint);font-size:.76rem;font-weight:700}.details-facts dd{margin:0;color:var(--ink);font-weight:650;overflow-wrap:anywhere}.details-long-copy{font-weight:500!important;line-height:1.55;white-space:pre-wrap}.details-file-list{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.stay-file-list{margin-top:0;padding-top:0;border-top:0}.details-file-list>div>h3{margin:0}.details-file-list>div>p{margin:3px 0 12px;color:var(--ink-faint);font-size:.84rem}.details-file-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--border)}.details-file-list article>span{min-width:0;display:flex;flex-direction:column}.details-file-list article strong,.details-file-list article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-file-list article small{color:var(--ink-faint)}
.current-policy-files{display:grid;gap:8px}.current-policy-files>p{margin:0 0 4px}.current-policy-files article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.current-policy-files article:first-of-type{border-top:1px solid var(--border)}.current-policy-files .table-actions{gap:8px}.current-policy-files .mini-icon-btn{width:40px;height:40px}.current-policy-files .mini-icon-btn svg{width:18px;height:18px}.policy-file-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.policy-file-copy strong,.policy-file-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policy-file-removal-status{display:none;align-items:center;gap:5px;margin-top:5px;color:var(--danger-dark);font-size:.76rem;font-weight:700}.policy-file-removal-status svg{width:15px;height:15px;flex:none}.editable-policy-file{transition:border-color 160ms ease,background-color 160ms ease}.editable-policy-file:has(input:checked){opacity:1;border-color:#d79ca6;background:var(--danger-bg)}.editable-policy-file:has(input:checked) .policy-file-removal-status{display:inline-flex}.policy-remove-toggle:has(input:checked){border-color:var(--danger);background:var(--surface);color:var(--danger-dark)}.policy-remove-toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.dialog-form-grid .policy-remove-toggle{display:inline-grid;place-items:center;align-content:center;justify-content:center;gap:0;padding:0;color:var(--danger)}
.dialog-form-grid .policy-remove-toggle svg{display:block;margin:auto}

/* Visor seguro de documentos */
.document-preview-dialog{width:min(1180px,calc(100vw - 32px));height:min(860px,calc(100dvh - 32px));max-width:none;max-height:none;padding:0;border:0;border-radius:var(--radius-lg);background:transparent;box-shadow:var(--shadow-float);opacity:0;transform:translateY(12px) scale(.985);transition:opacity 180ms ease,transform 180ms var(--ease-out)}.document-preview-dialog[open].is-visible{opacity:1;transform:none}.document-preview-dialog::backdrop{background:rgba(9,20,44,.6);opacity:0;transition:opacity var(--dur-overlay) ease}.document-preview-dialog.is-visible::backdrop{opacity:1}.document-preview-shell{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.document-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--border)}.document-preview-header>div{min-width:0}.document-preview-header span{color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.document-preview-header h2{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:1.063rem}.document-preview-header p{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-faint);font-size:.8rem}.document-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--surface-soft)}.document-preview-toolbar>div{display:flex;align-items:center;gap:5px}.document-preview-toolbar output{min-width:56px;color:var(--ink-soft);font-size:.8rem;font-variant-numeric:tabular-nums;text-align:center}.document-preview-viewport{min-height:0;overflow:auto;display:grid;place-items:center;padding:28px;background:var(--surface-strong);background-image:radial-gradient(rgba(18,32,58,.08) 1px,transparent 1px);background-size:18px 18px}.document-preview-viewport>*{grid-area:1/1}.document-preview-canvas{width:100%;height:100%;display:grid;place-items:center;transform-origin:top center;transition:transform 140ms ease}.document-preview-canvas.is-pdf{height:auto;min-height:100%;align-self:start}.document-preview-canvas img{display:none;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:transform 140ms ease;filter:drop-shadow(0 10px 20px rgba(10,24,45,.22))}.document-preview-pdf-pages{width:100%;display:none;align-items:center;flex-direction:column;gap:20px}.document-preview-pdf-pages figure{position:relative;flex:none;max-width:none;margin:0;line-height:0;transition:width 140ms ease,height 140ms ease}.document-preview-pdf-pages canvas{position:absolute;left:50%;top:50%;max-width:none;border-radius:4px;background:#fff;box-shadow:0 10px 28px rgba(10,24,45,.22);transform-origin:center;transition:transform 140ms ease}.document-preview-pdf-pages figcaption{position:absolute;z-index:1;top:8px;left:8px;padding:5px 8px;border-radius:7px;background:var(--ink-soft);color:#fff;font-size:.72rem;font-weight:700;line-height:1}.document-preview-pdf-pages figure.is-current figcaption{background:var(--primary)}.document-preview-canvas.is-image img{display:block}.document-preview-canvas.is-pdf .document-preview-pdf-pages{display:flex}.document-preview-unsupported,.document-preview-status{position:relative;z-index:2;max-width:420px;text-align:center}.document-preview-unsupported>span{width:60px;height:60px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;background:var(--surface);color:var(--primary)}.document-preview-unsupported>span svg{width:28px;height:28px}.document-preview-unsupported h3,.document-preview-status strong{margin:0}.document-preview-unsupported p,.document-preview-status p{margin:7px 0 18px;color:var(--ink-faint)}.document-preview-status{padding:24px 30px;border:1px solid var(--border);border-radius:var(--radius-md);background:rgba(255,255,255,.94);box-shadow:var(--shadow-sm)}.preview-spinner{width:34px;height:34px;display:block;margin:0 auto 14px;border:3px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;animation:preview-spin .8s linear infinite}@keyframes preview-spin{to{transform:rotate(360deg)}}

@media(max-width:680px){.document-preview-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px)}.document-preview-header{padding:13px}.document-preview-toolbar{align-items:stretch;padding:7px;overflow-x:auto}.document-preview-toolbar>div{flex:0 0 auto}.document-preview-viewport{padding:12px}.policy-record{grid-template-columns:minmax(0,1fr) auto!important}.policy-record>.badge{grid-column:1;justify-self:start}.policy-record>.record-actions{grid-column:2;grid-row:1;align-self:start}.current-policy-files article,.portal-files article{align-items:flex-start}.details-facts{grid-template-columns:1fr}.details-facts .field-wide{grid-column:auto}.details-file-list article{align-items:flex-start}.policy-file-summary{min-width:170px}.policy-primary-file>span{max-width:105px}}

/* Estancias y tarjetas de personas vinculadas */
.person-asset-action{color:var(--primary);background:transparent}.person-asset-action:hover{background:var(--primary-soft)}
.person-assets-dialog{width:min(1080px,calc(100vw - 32px));height:fit-content;max-height:min(720px,calc(100dvh - 32px))}
.person-assets-dialog .form-dialog-shell{height:100%;max-height:none}
.person-assets-body{min-height:0;display:flex;flex:1;flex-direction:column;gap:16px;overflow:hidden;padding:20px 24px}
.person-assets-toolbar{display:flex;flex:none;align-items:center;justify-content:space-between;gap:18px}
.person-assets-toolbar>div:not(.quota-summary){display:grid;gap:2px}.person-assets-toolbar small{color:var(--ink-faint)}
.quota-summary{min-width:0;display:flex;align-items:center;gap:11px}.quota-summary>span{width:46px;height:46px;display:grid;flex:none;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:800}.quota-summary p{display:grid;margin:0}.quota-summary small{font-size:.78rem}.quota-summary.is-exhausted>span{background:var(--warning-bg);color:var(--warning)}
.person-assets-table-wrap{min-height:0;flex:1;overflow:hidden}.person-assets-table-wrap>.dt-container{height:100%;display:flex;flex-direction:column}.person-assets-table-wrap .dt-layout-table{min-height:0;flex:1}.asset-file-name{max-width:210px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-feedback.warning{color:var(--warning);font-weight:700}.field-feedback.error{color:var(--danger);font-weight:700}.form-control[aria-invalid]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}
.pending-state-note{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary)}.pending-state-note svg{width:20px;height:20px;flex:none}.pending-state-note span{display:grid}.pending-state-note small{color:var(--ink-soft)}.activate-card-action{background:var(--success-bg);color:var(--success)}
.confirm-with-check{display:grid!important;gap:12px}.confirm-with-check>div{display:flex;justify-content:flex-end;gap:8px}.destructive-confirm-check{padding:11px 13px;border:1px solid var(--danger-border);border-radius:var(--radius-sm);background:var(--danger-bg);min-height:32px;display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:.84rem;font-weight:600;cursor:pointer}.destructive-confirm-check input{appearance:auto;width:20px;height:20px;min-height:0;flex:0 0 20px;margin:0;padding:0;border:0;border-radius:3px;box-shadow:none;accent-color:var(--danger)}.destructive-confirm-check input:hover,.destructive-confirm-check input:focus{border:0;box-shadow:none}.confirm-dialog:has(.confirm-with-check) .confirm-entity-summary{margin-bottom:14px}.confirm-dialog:has(.confirm-with-check) .confirm-dialog-actions{padding-top:13px}.stay-file-dropzone{min-height:150px}
@media(max-width:680px){.person-assets-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.person-assets-body{padding:16px 18px}.person-assets-toolbar{align-items:stretch;flex-direction:column}.person-assets-toolbar .btn{width:100%}.confirm-with-check>div{display:grid;grid-template-columns:1fr}.confirm-with-check>div .btn{width:100%}}
@media(max-width:480px){.current-policy-files article{grid-template-columns:1fr;gap:10px}.current-policy-files .table-actions{justify-content:flex-start}}
@media(max-width:480px){.kpi-quadrant{padding:14px 12px;gap:8px}.kpi-ring{width:58px}.kpi-ring::after{width:38px}.kpi-copy p{margin-bottom:8px;font-size:.7rem}}
@media(max-width:680px){.workflow-stepper-scroll{margin-right:-18px;margin-left:-18px;padding:5px 18px 8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.workflow-stepper{min-width:690px}.workflow-step-label small{font-size:.62rem}.workflow-step-label strong{font-size:.72rem}.workflow-phase-detail{min-height:0;padding:18px 16px}.workflow-details{padding-right:3px}.phase-subphases{padding:13px}.phase-subphases li{align-items:start}}
.locked-field{display:grid;align-content:center;justify-items:start;gap:5px;padding:12px;border-radius:var(--radius-sm);background:var(--surface-soft)}.locked-field>span:first-child{color:var(--ink-soft);font-size:.84rem;font-weight:600}.locked-field small{color:var(--ink-faint)}
.form-dialog-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--border);background:var(--surface)}.form-dialog-footer>p{margin:0;color:var(--ink-faint);font-size:.78rem}.form-dialog-footer>div{display:flex;gap:8px}
.compact-dialog{width:min(760px,calc(100vw - 32px))}
.managed-user-grid{align-items:start}.managed-user-standard-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 17px}.managed-user-standard-fields>label,.managed-user-credentials>label,.managed-user-pi-fields>label{min-width:0;display:grid;align-content:start;gap:5px;color:var(--ink-soft);font-size:.84rem}.managed-user-pi-fields{display:grid;gap:10px}.managed-user-pi-fields>label small{color:var(--ink-faint);font-size:.75rem;font-weight:400}.managed-user-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:8px 9px 8px 13px;border:1px solid #cfe0f2;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--ink-soft);font-size:.813rem}.managed-user-selection strong{color:var(--primary)}.managed-user-selection .btn{flex:none}.managed-user-person-table{max-height:236px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.managed-user-person-table table{width:100%;border-collapse:collapse;background:var(--surface)}.managed-user-person-table th{position:sticky;top:0;z-index:1;height:36px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--surface-soft);color:var(--ink-faint);font-size:.656rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:left}.managed-user-person-table td{height:44px;padding:0 12px;border-top:1px solid var(--border-soft);color:var(--ink-soft);font-size:.813rem}.managed-user-person-table tbody tr{cursor:pointer;transition:background-color 120ms var(--ease-standard)}.managed-user-person-table tbody tr:hover{background:var(--border-soft)}.managed-user-person-table tbody tr:has(input:checked){background:var(--primary-soft)}.managed-user-person-table tbody tr:has(input:checked) td{color:var(--primary)}.managed-user-person-table tbody tr:has(input:checked) strong{color:var(--primary)}.managed-user-person-table tbody tr:has(input:disabled){cursor:default;opacity:.5}.managed-user-person-table strong{color:var(--ink);font-weight:600}.managed-user-person-table label{display:block;cursor:pointer}.managed-user-person-table input{appearance:auto;width:17px;height:17px;min-height:0;margin:0;accent-color:var(--accent)}.managed-user-radio-column{width:40px;text-align:center!important}.managed-user-no-results{margin:0;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink-faint);font-size:.813rem}.managed-user-credentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:15px 17px}.managed-user-active-field{display:grid;gap:5px}.managed-user-control-label{color:var(--ink-soft);font-size:.84rem;font-weight:600}.managed-user-active-field>.managed-user-active{height:40px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--dur-micro) var(--ease-standard),background-color var(--dur-micro) var(--ease-standard)}.managed-user-active-field>.managed-user-active:hover{border-color:var(--ink-mute);background:var(--surface-soft)}.managed-user-active-field>.managed-user-active:has(input:checked){border-color:#cfe0f2;background:var(--primary-soft)}.managed-user-active-field>.managed-user-active input{appearance:auto;width:17px;height:17px;min-height:0;flex:0 0 17px;margin:0;padding:0;accent-color:var(--accent)}.managed-user-active-field>.managed-user-active strong{color:var(--ink);font-size:.844rem;font-weight:600}.managed-user-active-field>small{color:var(--ink-faint);font-size:.75rem}.managed-user-locked-field{display:grid;align-content:center;gap:3px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.managed-user-locked-field>span{color:var(--ink-faint);font-size:.656rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.managed-user-locked-field>strong{color:var(--ink);font-size:.938rem;font-weight:600}.managed-user-locked-field>small{color:var(--ink-faint);font-size:.75rem}

.case-form-main{padding-top:22px!important;padding-bottom:28px!important}.case-form-main .page-header{margin-bottom:16px}.case-form-main .breadcrumb{margin-bottom:7px}.case-form-heading{max-width:1040px;margin-right:auto;margin-left:auto}.case-create-card{max-width:1040px;margin:0 auto;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);overflow:hidden;animation:case-card-enter 280ms var(--ease-out)}@keyframes case-card-enter{from{opacity:.25;transform:translateY(12px)}to{opacity:1;transform:none}}
.case-create-header{display:flex;align-items:center;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--surface-soft)}.case-create-header>div{min-width:0;flex:1}.case-create-header h2{margin:0 0 2px;color:var(--primary)}.case-create-header p{margin:0;color:var(--ink-faint);font-size:.9rem}.case-create-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:10px;background:var(--primary);color:#fff}.case-create-icon svg{width:20px;height:20px}
.case-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;padding:20px 24px}.case-field[data-case-client-field="company"]{grid-column:1/-1}.case-field{position:relative;min-width:0;display:grid;align-content:start;gap:5px}.case-field label,.case-field>span:first-child{color:var(--ink-soft);font-size:.82rem;font-weight:600}.case-field label b{color:var(--danger)}.case-field .errorlist{margin:0;padding:0;list-style:none;color:var(--danger);font-size:.8rem}.case-field.has-inline-action select{padding-right:42px}.inline-create-button{width:max-content;min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:0;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:.78rem;font-weight:700;cursor:pointer;transition:background-color 160ms ease,transform 120ms ease}.inline-create-button:hover{background:var(--primary-soft)}.inline-create-button:active{transform:translateY(1px)}.inline-create-button svg{width:15px;height:15px}.case-field>small{position:absolute;right:0;top:0;color:var(--ink-faint);font-size:.76rem}.status-preview{align-content:center;padding:11px 13px;border-radius:var(--radius-sm);background:var(--surface-soft)}.status-preview small{position:static}
.case-create-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 24px;border-top:1px solid var(--border);background:var(--surface-soft)}.case-create-footer>p{display:flex;align-items:center;gap:7px;margin:0;color:var(--ink-faint);font-size:.8rem}.case-create-footer>p svg{width:17px;height:17px;flex:none}.case-create-footer>div{display:flex;gap:8px}
.quick-create-errors{margin:20px 24px 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--danger-bg)}

@media (max-width:620px){
  .form-dialog,.compact-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.form-dialog-header{padding:20px 18px 16px}.dialog-form-grid{grid-template-columns:1fr;padding:18px}.dialog-form-grid .field-wide{grid-column:auto}.managed-user-standard-fields,.managed-user-credentials{grid-template-columns:1fr}.managed-user-person-table{max-height:300px}.managed-user-person-table th:nth-child(4),.managed-user-person-table td:nth-child(4),.managed-user-person-table th:nth-child(5),.managed-user-person-table td:nth-child(5){display:none}.form-dialog-footer{align-items:stretch;flex-direction:column;padding:14px 18px}.form-dialog-footer>div{display:grid;grid-template-columns:1fr 1fr}
  .case-create-header{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:start;padding:19px 18px}.case-create-header>.case-create-icon{grid-column:1;grid-row:1}.case-create-header>div{grid-column:2;grid-row:1}.case-create-header>.badge{grid-column:2;grid-row:2;margin:8px 0 0}.case-form-grid{grid-template-columns:1fr;padding:20px 18px}.case-create-footer{align-items:stretch;flex-direction:column;padding:16px 18px}.case-create-footer>div{display:grid;grid-template-columns:1fr 1fr}
}

/* Transiciones de vista
   Entre pantallas el navegador hace la transición por sí solo; el menú lateral,
   la cabecera y el pie llevan nombre propio para quedarse quietos mientras el
   contenido principal se mueve. static/js/view-transitions.js añade al <html>
   la clase de dirección (vt-same, vt-forward, vt-back, vt-up, vt-down, vt-page)
   y, en los cambios dentro de una pantalla, vt-scoped más el tipo (vt-tab,
   vt-phase, vt-settings), que limita la animación a la zona que cambia. */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
:root{--vt-exit:150ms;--vt-enter:290ms;--vt-enter-delay:50ms;--vt-shift:26px}
.app-body .sidebar{view-transition-name:app-sidebar}
.app-body .topbar{view-transition-name:app-topbar}
.app-body .workspace main{view-transition-name:app-main}
.site-footer{view-transition-name:app-footer}
.dashboard-main .stats>article:nth-child(1){view-transition-name:dash-stat-1}
.dashboard-main .stats>article:nth-child(2){view-transition-name:dash-stat-2}
.dashboard-main .stats>article:nth-child(3){view-transition-name:dash-stat-3}
.dashboard-main .stats>article:nth-child(4){view-transition-name:dash-stat-4}
.dashboard-main .stats>article:nth-child(5){view-transition-name:dash-stat-5}
.dashboard-main .stats>article{view-transition-class:dash-stat}
html.vt-tab .case-tab-content{view-transition-name:case-pane}
html.vt-phase .workflow-details{view-transition-name:phase-detail}
html.vt-settings .settings-tab-pane:not([hidden]){view-transition-name:settings-pane}
html.vt-unnamed *{view-transition-name:none!important}
a[data-vt-key]{display:inline-block}
/* La transición sustituye a la animación de entrada propia de cada pestaña. */
@supports (view-transition-name:none){.case-pane{animation:none}}

@keyframes vt-fade-in{from{opacity:0}}
@keyframes vt-fade-out{to{opacity:0}}
@keyframes vt-enter-from-right{from{opacity:0;transform:translateX(var(--vt-shift))}}
@keyframes vt-enter-from-left{from{opacity:0;transform:translateX(calc(var(--vt-shift) * -1))}}
@keyframes vt-exit-to-left{to{opacity:0;transform:translateX(calc(var(--vt-shift) * -.6))}}
@keyframes vt-exit-to-right{to{opacity:0;transform:translateX(calc(var(--vt-shift) * .6))}}
@keyframes vt-enter-from-below{from{opacity:0;transform:translateY(calc(var(--vt-shift) * .8))}}
@keyframes vt-enter-from-above{from{opacity:0;transform:translateY(calc(var(--vt-shift) * -.8))}}
@keyframes vt-exit-up{to{opacity:0;transform:translateY(calc(var(--vt-shift) * -.5))}}
@keyframes vt-exit-down{to{opacity:0;transform:translateY(calc(var(--vt-shift) * .5))}}
@keyframes vt-rise{from{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes vt-pop-in{from{opacity:0;transform:scale(.9)}}
@keyframes vt-pop-out{to{opacity:0;transform:scale(.9)}}
@keyframes vt-page-out{to{opacity:0;transform:scale(.985)}}
@keyframes vt-sidebar-in{from{transform:translateX(-100%)}}
@keyframes vt-sidebar-out{to{transform:translateX(-100%)}}
@keyframes vt-topbar-in{from{transform:translateY(-100%)}}
@keyframes vt-topbar-out{to{transform:translateY(-100%)}}

::view-transition-group(*){animation-duration:var(--vt-enter);animation-timing-function:var(--ease-out)}
::view-transition-group(app-main){overflow:clip}
::view-transition-old(app-main){animation:vt-fade-out var(--vt-exit) var(--ease-standard) both}
::view-transition-new(app-main){animation:vt-fade-in var(--vt-enter) var(--ease-out) var(--vt-enter-delay) both}
html.vt-forward:not(.vt-scoped)::view-transition-old(app-main){animation-name:vt-exit-to-left}
html.vt-forward:not(.vt-scoped)::view-transition-new(app-main){animation-name:vt-enter-from-right}
html.vt-back:not(.vt-scoped)::view-transition-old(app-main){animation-name:vt-exit-to-right}
html.vt-back:not(.vt-scoped)::view-transition-new(app-main){animation-name:vt-enter-from-left}
html.vt-down:not(.vt-scoped)::view-transition-old(app-main){animation-name:vt-exit-up}
html.vt-down:not(.vt-scoped)::view-transition-new(app-main){animation-name:vt-enter-from-below}
html.vt-up:not(.vt-scoped)::view-transition-old(app-main){animation-name:vt-exit-down}
html.vt-up:not(.vt-scoped)::view-transition-new(app-main){animation-name:vt-enter-from-above}
html.vt-page:not(.vt-scoped)::view-transition-new(app-main){animation-name:vt-rise}

/* El resaltado del menú se desliza hasta la nueva sección; con «lighten» el
   texto del enlace sigue viéndose mientras pasa por encima. */
::view-transition-group(app-nav-pill){mix-blend-mode:lighten;animation-duration:340ms}

/* Referencia del expediente: de la fila del listado al título de la ficha. */
::view-transition-group(vt-hero){animation-duration:380ms;z-index:1}
::view-transition-old(vt-hero):only-child{animation:vt-fade-out var(--vt-exit) var(--ease-standard) both}
::view-transition-new(vt-hero):only-child{animation:vt-fade-in var(--vt-enter) var(--ease-out) var(--vt-enter-delay) both}

/* Tarjetas de espacio al filtrar: las que siguen se recolocan, las nuevas aparecen. */
::view-transition-group(*.vt-item){animation-duration:340ms}
::view-transition-old(*.vt-item):only-child{animation:vt-pop-out var(--vt-exit) var(--ease-standard) both}
::view-transition-new(*.vt-item):only-child{animation:vt-pop-in var(--vt-enter) var(--ease-out) 60ms both}

/* Indicadores del panel: entrada escalonada al llegar desde otra pantalla. */
::view-transition-old(*.dash-stat):only-child{animation:vt-fade-out var(--vt-exit) var(--ease-standard) both}
::view-transition-new(*.dash-stat):only-child{animation:vt-rise 360ms var(--ease-out) both}
::view-transition-new(dash-stat-1):only-child{animation-delay:40ms}
::view-transition-new(dash-stat-2):only-child{animation-delay:75ms}
::view-transition-new(dash-stat-3):only-child{animation-delay:110ms}
::view-transition-new(dash-stat-4):only-child{animation-delay:145ms}
::view-transition-new(dash-stat-5):only-child{animation-delay:180ms}

/* Acceso y cierre de sesión: el armazón de la aplicación entra o sale entero. */
html.vt-page::view-transition-old(root){animation:vt-page-out 200ms var(--ease-standard) both}
html.vt-page::view-transition-new(root){animation:vt-fade-in 260ms var(--ease-out) 60ms both}
html.vt-page::view-transition-new(app-sidebar):only-child{animation:vt-sidebar-in 380ms var(--ease-out) both}
html.vt-page::view-transition-old(app-sidebar):only-child{animation:vt-sidebar-out 220ms var(--ease-standard) both}
html.vt-page::view-transition-new(app-topbar):only-child{animation:vt-topbar-in 320ms var(--ease-out) 60ms both}
html.vt-page::view-transition-old(app-topbar):only-child{animation:vt-topbar-out 200ms var(--ease-standard) both}
html.vt-page::view-transition-new(app-nav-pill):only-child{animation:vt-fade-in 200ms var(--ease-out) 300ms both}

/* Navegación desde un modal abierto: la página antigua se funde entera y el
   armazón nuevo aparece sin fundido para no dejar ver el fondo a través. */
html.vt-modal::view-transition-new(app-sidebar),
html.vt-modal::view-transition-new(app-topbar),
html.vt-modal::view-transition-new(app-footer),
html.vt-modal::view-transition-new(app-nav-pill){animation:none}

/* Navegadores sin transiciones entre páginas (Firefox): el contenido central se
   desvanece al salir y entra con la misma dirección; view-transitions.js pone
   las clases. */
html.vt-leaving #main-content{animation:vt-page-out var(--vt-exit) var(--ease-standard) forwards}
html.vt-entering #main-content{opacity:0}
html.vt-enter #main-content{animation:vt-fade-in var(--vt-enter) var(--ease-out) backwards}
html.vt-enter-forward #main-content{animation-name:vt-enter-from-right}
html.vt-enter-back #main-content{animation-name:vt-enter-from-left}
html.vt-enter-down #main-content{animation-name:vt-enter-from-below}
html.vt-enter-up #main-content{animation-name:vt-enter-from-above}
html.vt-enter-page #main-content{animation-name:vt-rise}

/* Cambios dentro de una pantalla: todo queda en su estado final al instante
   salvo la zona nombrada, que se desliza en la dirección de la pestaña o fase. */
html.vt-scoped::view-transition-old(*){animation:none;opacity:0}
html.vt-scoped::view-transition-new(*){animation:none}
html.vt-scoped::view-transition-group(*){animation-duration:0s}
html.vt-scoped.vt-tab::view-transition-group(case-pane),
html.vt-scoped.vt-phase::view-transition-group(phase-detail),
html.vt-scoped.vt-settings::view-transition-group(settings-pane){overflow:clip;animation-duration:var(--vt-enter)}
html.vt-scoped.vt-tab::view-transition-old(case-pane),
html.vt-scoped.vt-phase::view-transition-old(phase-detail),
html.vt-scoped.vt-settings::view-transition-old(settings-pane){opacity:1;animation:vt-exit-to-left var(--vt-exit) var(--ease-standard) both}
html.vt-scoped.vt-tab::view-transition-new(case-pane),
html.vt-scoped.vt-phase::view-transition-new(phase-detail),
html.vt-scoped.vt-settings::view-transition-new(settings-pane){animation:vt-enter-from-right var(--vt-enter) var(--ease-out) var(--vt-enter-delay) both}
html.vt-scoped.vt-back.vt-tab::view-transition-old(case-pane),
html.vt-scoped.vt-back.vt-phase::view-transition-old(phase-detail),
html.vt-scoped.vt-back.vt-settings::view-transition-old(settings-pane){animation-name:vt-exit-to-right}
html.vt-scoped.vt-back.vt-tab::view-transition-new(case-pane),
html.vt-scoped.vt-back.vt-phase::view-transition-new(phase-detail),
html.vt-scoped.vt-back.vt-settings::view-transition-new(settings-pane){animation-name:vt-enter-from-left}

/* Portal del investigador principal: panel, lista y detalle de solo lectura */
.portal-grid{margin-bottom:16px}
.portal-grid>.panel{min-width:0}
.read-only-chip{display:inline-flex;align-items:center;gap:7px;flex:none;height:32px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink-soft);font-size:.75rem;font-weight:700}
.read-only-chip svg{width:15px;height:15px;color:var(--accent)}
.portal-progress{position:relative;display:block;height:6px;overflow:hidden;border-radius:999px;background:var(--surface-strong)}
.portal-progress>i{position:absolute;inset:0 auto 0 0;width:var(--value,0%);border-radius:inherit;background:linear-gradient(90deg,var(--accent),#4f9fd8)}
.portal-progress-inline{width:110px;margin-top:4px}
.portal-case-list{display:flex;flex-direction:column;gap:10px}
.portal-case-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 15px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);color:inherit;text-decoration:none;transition:border-color var(--dur-move) var(--ease-standard),box-shadow var(--dur-move) var(--ease-out),transform var(--dur-move) var(--ease-out)}
.portal-case-card:hover{border-color:#9dbbe0;box-shadow:0 10px 22px -14px rgba(34,61,113,.45);transform:translateY(-2px)}
.portal-case-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.portal-case-card .space-type-icon{width:38px;height:38px;border-radius:10px}
.portal-case-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.portal-case-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.portal-case-title strong{color:var(--ink);font-size:.938rem}
.portal-case-main>small{overflow:hidden;color:var(--ink-soft);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}
.portal-case-main .portal-progress{margin-top:6px}
.portal-case-meta{display:flex;justify-content:space-between;gap:10px;color:var(--ink-faint);font-size:.719rem;font-variant-numeric:tabular-nums}
.portal-case-counts{display:flex;flex-direction:column;gap:5px;color:var(--ink-soft);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums}
.portal-case-counts span{display:inline-flex;align-items:center;gap:5px}
.portal-case-counts svg{width:14px;height:14px;color:var(--ink-faint)}
.deadline-list{margin:0;padding:0;list-style:none}
.deadline-item{--tone:#3a72b8;--tone-bg:#eef4fb;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft)}
.deadline-item:last-child{border-bottom:0}
.deadline-item.warning{--tone:var(--warning);--tone-bg:var(--warning-bg)}
.deadline-item.danger{--tone:var(--danger);--tone-bg:var(--danger-bg)}
.deadline-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--tone-bg);color:var(--tone)}
.deadline-icon svg{width:15px;height:15px}
.deadline-item a{min-width:0;color:inherit;text-decoration:none}
.deadline-item a strong{display:block;overflow:hidden;color:var(--ink);font-size:.813rem;text-overflow:ellipsis;white-space:nowrap}
.deadline-item a:hover strong{color:var(--accent-dark);text-decoration:underline}
.deadline-item a small{display:block;overflow:hidden;color:var(--ink-faint);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}
.deadline-when{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.deadline-when b{padding:1px 8px;border-radius:999px;background:var(--tone-bg);color:var(--tone);font-size:.719rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.deadline-when small{margin-top:3px;color:var(--ink-faint);font-size:.688rem;font-variant-numeric:tabular-nums}
.portal-document-list article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft)}
.portal-document-list article:last-child{border-bottom:0}
.portal-document-list article>span:nth-child(2){min-width:0;display:flex;flex-direction:column}
.portal-document-list strong{overflow:hidden;color:var(--ink);font-size:.813rem;text-overflow:ellipsis;white-space:nowrap}
.portal-document-list small{color:var(--ink-faint);font-size:.75rem}
.portal-case-period{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.portal-case-period>div{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.portal-case-period>div span{color:var(--ink-faint);font-size:.688rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.portal-case-period>div strong{color:var(--primary);font-variant-numeric:tabular-nums}
.portal-case-period>small{display:block;margin-top:7px;color:var(--ink-soft);font-size:.75rem}
.details-file-list article.portal-stay{align-items:flex-start;flex-wrap:wrap}
.portal-stay-files{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.portal-stay-files>span{max-width:100%;display:flex;align-items:center;gap:5px;padding:4px 5px 4px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);font-size:.8rem}
.portal-stay-files>span>span{min-width:0;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.storage-row.portal-storage-row{grid-template-columns:38px minmax(0,1fr) minmax(145px,.8fr)}
@media (max-width:1100px){.portal-stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){
  .portal-stats{grid-template-columns:1fr 1fr}
  .portal-case-card{grid-template-columns:34px minmax(0,1fr)}
  .portal-case-counts{grid-column:2;flex-direction:row;gap:12px}
  .read-only-chip{display:none}
  .storage-row.portal-storage-row{grid-template-columns:36px minmax(0,1fr)}
}

/* Solicitudes de alta de personal */
.case-tab>span.has-attention{background:var(--warning-bg);color:var(--warning)}
.person-row-inactive td{background:var(--surface-soft);color:var(--ink-faint)}.person-row-inactive .person-avatar{background:var(--surface-strong);color:var(--ink-mute)}.person-row-inactive .table-person strong{color:var(--ink-faint)}
.access-request-closed td{color:var(--ink-soft)}
.stay-missing-file{color:var(--warning);font-weight:650}
.access-request-message{margin:0 0 18px;padding:12px 14px;border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--primary-soft);color:var(--ink);font-size:.86rem;line-height:1.5;overflow-wrap:anywhere}.access-request-message>span{display:block;margin-bottom:4px;color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.access-request-email-summary{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.access-request-email-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.access-request-email-heading h3{margin:0;color:var(--primary);font-size:.92rem}.access-request-email-summary dl{display:grid;gap:4px;margin:0 0 10px}.access-request-email-summary dl>div{display:grid;grid-template-columns:60px minmax(0,1fr);gap:8px;font-size:.82rem}.access-request-email-summary dt{color:var(--ink-faint);font-weight:700}.access-request-email-summary dd{margin:0;overflow-wrap:anywhere}
.access-request-email-body{max-height:240px;margin:0 0 12px;padding:12px 14px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink);font:inherit;font-size:.82rem;line-height:1.5;white-space:pre-wrap}
.access-request-attachment{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.access-request-attachment>svg{width:20px;height:20px;flex:none;color:var(--accent)}.access-request-attachment>span{min-width:0;display:grid;flex:1}.access-request-attachment strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.access-request-attachment small{color:var(--ink-faint);font-size:.74rem}
.confirm-dialog-icon.is-positive{background:var(--success-bg);color:var(--success)}
.access-request-outcome{display:grid;gap:9px;margin:0 24px 18px;padding:0;list-style:none}.access-request-outcome li{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink-soft);font-size:.84rem;line-height:1.45}.access-request-outcome svg{width:18px;height:18px;flex:none;margin-top:1px;color:var(--accent)}.access-request-outcome strong{color:var(--ink)}
.access-request-decision-form .access-request-reason{display:grid;gap:5px;margin:0 24px 16px;color:var(--ink-soft);font-size:.84rem}.access-request-reason b{color:var(--danger)}.access-request-reason textarea{resize:vertical}
.access-request-note{display:flex;align-items:flex-start;gap:9px;margin:2px 0 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--ink-soft);font-size:.8rem;line-height:1.45}.access-request-note svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--accent)}
.person-request-dialog .dialog-form-grid label.has-error input,.card-request-dialog .dialog-form-grid label.has-error input,.card-request-dialog .dialog-form-grid label.has-error textarea{border-color:var(--danger)}

/* Asistente de tramitación */
.request-wizard-heading{max-width:1240px;margin-right:auto;margin-left:auto}
.request-stepper{max-width:1240px;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;margin:0 auto 16px;padding:0;list-style:none;counter-reset:none}
.request-stepper li>a,.request-stepper li>span{min-height:52px;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-soft);text-decoration:none;transition:border-color var(--dur-micro) ease,background-color var(--dur-micro) ease}
.request-stepper li>a:hover{border-color:var(--border-strong);background:var(--surface-soft)}
.request-stepper b{width:28px;height:28px;display:grid;flex:none;place-items:center;border-radius:50%;background:var(--surface-strong);color:var(--ink-soft);font-size:.82rem}.request-stepper b svg{width:15px;height:15px}
.request-stepper span>span,.request-stepper a>span{display:grid;font-size:.86rem;font-weight:700}.request-stepper small{color:var(--ink-faint);font-size:.68rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}
.request-stepper .is-current>span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:var(--focus-ring)}.request-stepper .is-current b{background:var(--primary);color:#fff}
.request-stepper .is-done b{background:var(--success-bg);color:var(--success)}
.request-stepper .is-locked>span{opacity:.55}
.request-wizard-layout{max-width:1240px;display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;margin:0 auto}
.request-step-card{max-width:none;margin:0}
.request-step-card .case-create-header .badge{flex:none}
.request-form-section{padding:16px 24px 4px;border-bottom:1px solid var(--border-soft)}.request-form-section:last-of-type{border-bottom:0}.request-form-section h3{margin:0;color:var(--primary);font-size:.86rem;font-weight:800}.request-form-section .case-form-grid{padding:12px 0 14px}
.case-form-grid .field-wide{grid-column:1/-1}
.case-field>small.request-help{position:static;color:var(--ink-faint);font-size:.74rem}
.request-inline-note{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink-faint);font-size:.8rem}.request-inline-note svg{width:16px;height:16px;flex:none;color:var(--accent)}
.request-radio-row{margin:0;padding:0;border:0}.request-radio-row legend{margin-bottom:5px;padding:0;color:var(--ink-soft);font-size:.82rem;font-weight:600}.request-radio-row legend b{color:var(--danger)}.request-radio-row>div{display:flex;flex-wrap:wrap;gap:8px}
.request-radio-row label,.request-access-option{position:relative;display:inline-flex;cursor:pointer}
.request-radio-row input,.request-access-option input,.request-choice input,.request-send-toggle input{position:absolute;width:1px;height:1px;opacity:0}
.request-radio-row label>span,.request-access-option>span{min-height:36px;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-soft);font-size:.84rem;font-weight:650;transition:border-color var(--dur-micro) ease,background-color var(--dur-micro) ease,color var(--dur-micro) ease}
.request-access-option>span::before{content:"";width:15px;height:15px;flex:none;border:1.5px solid var(--border-strong);border-radius:4px;background:var(--surface) no-repeat center/11px}
.request-radio-row label>span::before{content:"";width:15px;height:15px;flex:none;border:1.5px solid var(--border-strong);border-radius:50%;background:var(--surface)}
.request-radio-row label:hover>span,.request-access-option:hover>span{border-color:#91a6c1;background:var(--surface-soft)}
.request-radio-row input:checked+span,.request-access-option input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.request-radio-row input:checked+span::before{border:4.5px solid var(--primary)}
.request-access-option input:checked+span::before{border-color:var(--primary);background-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.request-radio-row input:focus-visible+span,.request-access-option input:focus-visible+span,.request-choice input:focus-visible+span,.request-send-toggle input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.request-access-option small{margin-left:2px;color:var(--ink-faint);font-size:.72rem;font-weight:650}
.request-access-option.is-case-space small{padding:1px 7px;border-radius:999px;background:var(--success-bg);color:var(--success);white-space:nowrap}.request-lab-group .request-access-option.is-case-space{grid-column:span 2}
.request-access-section{padding-bottom:20px}.request-access-section>.errorlist{margin:8px 0 0;padding:0;list-style:none;color:var(--danger);font-size:.8rem}
.request-access-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin-top:12px}
.request-access-groups fieldset{min-width:0;display:flex;flex-wrap:wrap;align-content:flex-start;gap:7px;margin:0;padding:0;border:0}
.request-access-groups legend{margin-bottom:7px;padding:0;color:var(--ink-faint);font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.request-access-groups .request-lab-group{grid-column:1/-1}.request-lab-group>div{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:7px}.request-lab-group .request-access-option>span{width:100%}
.request-choice-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:22px 24px 6px;border:0}
.request-choice{position:relative;display:block;cursor:pointer}
.request-choice>span{height:100%;display:grid;align-content:start;gap:6px;padding:18px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--dur-micro) ease,background-color var(--dur-micro) ease,box-shadow var(--dur-micro) ease}
.request-choice:hover>span{border-color:#91a6c1;background:var(--surface-soft)}
.request-choice input:checked+span{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--focus-ring)}
.request-choice-icon{width:40px;height:40px;display:grid;place-items:center;margin-bottom:4px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary)}.request-choice input:checked+span .request-choice-icon{background:var(--primary);color:#fff}.request-choice-icon svg{width:20px;height:20px}
.request-choice strong{color:var(--primary);font-size:1rem}.request-choice small{color:var(--ink-soft);font-size:.82rem;line-height:1.45}
.request-field-errors{padding:0 24px 14px}.request-field-errors .errorlist{margin:0;padding:0;list-style:none;color:var(--danger);font-size:.8rem}
.request-document-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;border-bottom:1px solid var(--border-soft)}.request-document-toolbar>span{min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden;color:var(--ink-soft);font-size:.84rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.request-document-toolbar>span svg{width:17px;height:17px;flex:none;color:var(--accent)}.request-document-toolbar>div{display:flex;gap:8px}
.request-document-preview{min-height:420px;display:grid;justify-items:center;gap:16px;padding:22px;background:var(--surface-strong)}.request-document-preview canvas{width:min(100%,640px);height:auto;border-radius:3px;background:#fff;box-shadow:0 8px 24px rgba(15,29,52,.16)}
.request-document-status{align-self:center;margin:0;color:var(--ink-faint);font-size:.86rem}.request-document-status.is-error{color:var(--danger)}
.request-email{margin:20px 24px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}
.request-email-row{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;border-bottom:1px solid var(--border)}.request-email-row label{padding-left:14px;color:var(--ink-faint);font-size:.8rem;font-weight:700}.request-email-row input{min-height:42px;border:0;border-radius:0;box-shadow:none;background:transparent}.request-email-row input:focus{box-shadow:inset 0 -2px 0 var(--accent)}.request-email-row .errorlist{grid-column:2;margin:0 0 6px 12px;padding:0;list-style:none;color:var(--danger);font-size:.76rem}
.request-email textarea{width:100%;min-height:330px;display:block;padding:14px;border:0;border-radius:0;box-shadow:none;font-size:.88rem;line-height:1.55;resize:vertical}.request-email textarea:focus{box-shadow:inset 0 0 0 2px rgba(52,127,189,.22)}
.request-email-attachment{display:flex;align-items:center;gap:10px;margin:0 14px 14px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.request-email-attachment>span:nth-child(2){min-width:0;display:grid;flex:1}.request-email-attachment strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.request-email-attachment small{color:var(--ink-faint);font-size:.74rem}
.request-email-attachment-icon{width:34px;height:38px;display:grid;flex:none;place-items:center;border-radius:4px;background:var(--danger-bg);color:var(--danger);font-size:.66rem;font-weight:800}
.request-send-toggle{position:relative;display:block;margin:0 24px 20px;cursor:pointer}.request-send-toggle>span{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}
.request-send-toggle>span::before{content:"";width:34px;height:20px;grid-row:1/3;border-radius:999px;background:var(--border-strong);box-shadow:inset 0 0 0 2px var(--border-strong);transition:background-color var(--dur-micro) ease}
.request-send-toggle>span::after{content:"";position:absolute;top:50%;left:17px;width:16px;height:16px;border-radius:50%;background:#fff;transform:translateY(-50%);transition:transform var(--dur-micro) var(--ease-out)}
.request-send-toggle input:checked+span::before{background:var(--primary);box-shadow:none}.request-send-toggle input:checked+span::after{transform:translate(14px,-50%)}
.request-send-toggle strong{color:var(--ink);font-size:.86rem}.request-send-toggle small{color:var(--ink-faint);font-size:.76rem;line-height:1.4}
.request-step-card .case-create-footer .btn svg{width:16px;height:16px}.request-back-icon{transform:rotate(180deg)}
.request-summary-panel{position:sticky;top:16px;padding:18px}.request-summary-panel .panel-heading{margin-bottom:12px}.request-summary-panel .panel-heading h2{margin:0;font-size:1rem}.request-summary-panel .panel-heading p{margin:2px 0 0;color:var(--ink-faint);font-size:.8rem}
.request-summary-facts{display:grid;gap:11px;margin:0}.request-summary-facts dt{color:var(--ink-faint);font-size:.72rem;font-weight:700}.request-summary-facts dd{margin:1px 0 0;color:var(--ink);font-size:.86rem;font-weight:650;overflow-wrap:anywhere}.request-summary-facts dd small{display:block;color:var(--ink-faint);font-weight:600}
@media (max-width:1100px){.request-wizard-layout{grid-template-columns:1fr}.request-summary-panel{position:static}}
@media (max-width:680px){.request-stepper{grid-template-columns:repeat(2,minmax(0,1fr))}.request-choice-group,.request-access-groups{grid-template-columns:1fr}.request-form-section{padding:14px 18px 2px}.request-choice-group{padding:18px 18px 4px}.request-email,.request-send-toggle{margin-right:18px;margin-left:18px}.request-document-toolbar{flex-direction:column;align-items:stretch;padding:12px 18px}.request-document-preview{padding:14px}.access-request-outcome,.access-request-decision-form .access-request-reason{margin-right:18px;margin-left:18px}}

/* Configuración de correo */
.mail-settings-form{display:flex;flex-direction:column;gap:16px;max-width:1240px}
.mail-settings-form .settings-panel-head .badge,.mail-settings-form .settings-panel-head>.btn{flex:none}
.mail-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:18px 20px}
.mail-settings-grid .field-wide{grid-column:1/-1}
.mail-settings-grid>label:not(.request-send-toggle),.mail-template-fields label{min-width:0;display:grid;align-content:start;gap:5px;color:var(--ink-soft);font-size:.82rem;font-weight:600}
.mail-settings-form label b{color:var(--danger)}.mail-settings-form label small{color:var(--ink-faint);font-size:.74rem;font-weight:500;line-height:1.4}.mail-settings-form code{padding:1px 5px;border-radius:4px;background:var(--surface-strong);color:var(--primary);font-size:.78em}
.mail-settings-form .errorlist{margin:0;padding:0;list-style:none;color:var(--danger);font-size:.78rem}
.mail-sending-toggle{margin:0}
.request-send-toggle.is-disabled{cursor:not-allowed}.request-send-toggle.is-disabled>span{background:var(--surface-strong)}.request-send-toggle.is-disabled strong{color:var(--ink-soft)}
.mail-template-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start}
.mail-template-fields{display:grid;gap:14px;padding:18px 20px}.mail-template-fields textarea{font-size:.86rem;line-height:1.55;resize:vertical}
.mail-template-variables{align-self:stretch;padding:18px 18px 20px;border-left:1px solid var(--border);background:var(--surface-soft)}.mail-template-variables h3{margin:0;color:var(--primary);font-size:.86rem}.mail-template-variables>p{margin:3px 0 10px;color:var(--ink-faint);font-size:.76rem}
.mail-template-variables ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.mail-template-variables button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;cursor:pointer;transition:border-color var(--dur-micro) ease,background-color var(--dur-micro) ease}.mail-template-variables button:hover{border-color:var(--accent);background:var(--primary-soft)}.mail-template-variables button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mail-template-variables button code{justify-self:start}.mail-template-variables button span{overflow:hidden;color:var(--ink-faint);font-size:.72rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.mail-preview-switch{display:inline-flex;flex:none;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.mail-preview-switch button{padding:5px 10px;border:0;border-radius:5px;background:transparent;color:var(--ink-soft);font-size:.78rem;font-weight:700;cursor:pointer}.mail-preview-switch button.is-active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}
.mail-preview{margin:18px 20px 20px;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden}
.mail-preview dl{display:grid;margin:0;border-bottom:1px solid var(--border)}.mail-preview dl>div{display:grid;grid-template-columns:70px minmax(0,1fr);padding:9px 14px;font-size:.84rem}.mail-preview dl>div+div{border-top:1px solid var(--border-soft)}.mail-preview dt{color:var(--ink-faint);font-weight:700}.mail-preview dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.mail-preview pre{margin:0;padding:14px;background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem;line-height:1.55;white-space:pre-wrap}
@media (max-width:980px){.mail-template-layout{grid-template-columns:1fr}.mail-template-variables{border-top:1px solid var(--border);border-left:0}}
@media (max-width:680px){.mail-settings-grid{grid-template-columns:1fr}.mail-settings-form .settings-panel-head{flex-direction:column}}

/* Acceso: SIR3 y contraseña */
.login-notice{display:flex;align-items:flex-start;gap:9px;margin:-8px 0 18px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--ink-soft);font-size:.8rem;line-height:1.5}.login-notice svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--accent)}
.sir3-denied{position:relative;z-index:1;width:min(480px,100%)}
.sir3-denied .login-panel-body{display:grid;justify-items:start;padding:28px 26px 26px}
.sir3-denied h1{margin:0 0 12px;color:var(--primary);font-size:1.45rem}
.sir3-denied p{margin:0 0 12px;color:var(--ink-soft);font-size:.9rem;line-height:1.55}.sir3-denied strong{color:var(--ink)}
.sir3-denied-check{width:44px;height:44px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;background:var(--success-bg);color:var(--success)}.sir3-denied-check svg{width:22px;height:22px}
.sir3-denied-eyebrow{margin-bottom:4px!important;color:var(--success)!important;font-size:.72rem!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.sir3-denied-help{font-size:.82rem!important}
.sir3-denied-logout{width:100%;margin:6px 0 16px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-soft);border:1px solid var(--border)}.sir3-denied-logout p{margin:8px 0 0;font-size:.8rem}
.sir3-denied-progress{display:block;height:5px;border-radius:999px;background:var(--surface-strong);overflow:hidden}.sir3-denied-progress i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;animation:sir3-countdown var(--seconds,8s) linear forwards}
@keyframes sir3-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.sir3-denied-progress i{animation:none}}
.sir3-denied-button{width:100%}.sir3-denied-button svg{width:16px;height:16px}
.access-toggles{display:grid;gap:12px;padding:18px 20px}.access-toggle-row{display:grid;gap:6px}.access-toggle-row .request-send-toggle{margin:0}.access-toggle-row .errorlist{margin:0;padding:0;list-style:none;color:var(--danger);font-size:.8rem}
.access-form-errors .errorlist{margin:0;padding:12px 16px;list-style:none;border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger);font-size:.84rem;font-weight:650}
.access-status-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;margin:0;padding:18px 20px}.access-status-facts .field-wide{grid-column:1/-1}.access-status-facts dt{color:var(--ink-faint);font-size:.74rem;font-weight:700}.access-status-facts dd{margin:3px 0 0;color:var(--ink);font-size:.86rem;font-weight:650;overflow-wrap:anywhere}
.access-warnings{display:grid;gap:8px;margin:0;padding:0 20px 18px;list-style:none}.access-warnings li{display:flex;gap:9px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--warning-bg);color:var(--warning);font-size:.82rem;font-weight:650}.access-warnings svg{width:16px;height:16px;flex:none;margin-top:2px}.access-warnings small{display:block;margin-top:2px;font-weight:500;opacity:.85}
.access-account-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 20px}.access-account-stats>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}.access-account-stats strong{color:var(--primary);font-size:1.3rem;font-variant-numeric:tabular-nums}.access-account-stats span{color:var(--ink-faint);font-size:.78rem;line-height:1.4}
.access-missing-nip{display:flex;gap:9px;margin:0;padding:12px 20px;border-top:1px solid var(--border-soft);color:var(--ink-soft);font-size:.82rem}.access-missing-nip svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--warning)}
@media (max-width:680px){.access-status-facts,.access-account-stats{grid-template-columns:1fr}}

/* Tipos de laboratorio: color propio para TIC, materiales y biotecnología,
   siempre acompañado de su nombre o su sigla. */
.lab-type-tic{--lab:#5b54c9;--lab-soft:#efeefb;--lab-ink:#433ca8}
.lab-type-materials{--lab:#c27a1a;--lab-soft:#fbf1e1;--lab-ink:#85500c}
.lab-type-biotech{--lab:#2b8a64;--lab-soft:#e5f4ed;--lab-ink:#1b6448}
.lab-type-chip{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;max-width:100%;margin-top:8px;padding:2px 8px;border-radius:999px;background:var(--lab-soft);color:var(--lab-ink);font-size:.688rem;font-weight:700;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-type-chip i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--lab)}

.lab-type-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.dashboard-main>.lab-type-stats{flex:none}
.lab-type-stat{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:10px 15px 10px 17px;border:1px solid var(--border);border-radius:9px;background:var(--surface);overflow:hidden}
.lab-type-stat .lab-type-chip{justify-self:start}
.lab-type-stat .lab-type-meter,.lab-type-stat .stat-note{grid-column:1/-1}
.lab-type-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--lab)}
.lab-type-stat .lab-type-chip{margin-top:0}
.lab-type-stat b{color:var(--ink);font-size:1.5rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.lab-type-stat b small{color:var(--ink-faint);font-size:.75rem;font-weight:600}
.lab-type-stat .stat-note{color:var(--ink-soft);font-size:.75rem}
.lab-type-meter{display:block;height:6px;border-radius:999px;background:var(--lab-soft);overflow:hidden}
.lab-type-meter>span{display:block;height:100%;border-radius:inherit;background:var(--lab)}
@media(max-width:800px){.lab-type-stats{grid-template-columns:1fr}}

/* Bandeja de entrada */
.sidebar-nav a .nav-count{min-width:20px;height:20px;margin-left:auto;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;background:#d59320;color:#fff;font-size:.688rem;font-weight:800;font-variant-numeric:tabular-nums}
.shell.sidebar-collapsed .sidebar-nav a .nav-count{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;font-size:.6rem}
@media(max-width:850px){.shell.sidebar-collapsed .sidebar-nav a .nav-count{position:static;min-width:20px;height:20px;padding:0 6px;font-size:.688rem}}
.dashboard-side{min-height:0;display:flex;flex-direction:column;gap:16px}
.dashboard-side>.dashboard-inbox-panel{flex:none;padding:16px 18px}
.dashboard-side>.dashboard-inbox-panel .panel-heading{margin-bottom:12px}
.dashboard-side>.recent-activity-panel{flex:1;min-height:0}
.dashboard-side .inbox-counters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dashboard-side .inbox-counters a{display:flex;align-items:center;gap:9px;padding:7px 11px}
.dashboard-side .inbox-counters a b{font-size:1.05rem}
.dashboard-side .inbox-preview{margin-top:8px}
.dashboard-side .inbox-preview a{padding:7px 2px}
.inbox-counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.inbox-counters a{display:grid;gap:2px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink-soft);font-size:.78rem;font-weight:600;text-decoration:none}
.inbox-counters a b{color:var(--ink-faint);font-size:1.25rem;font-variant-numeric:tabular-nums}
.inbox-counters a.has-items{border-color:#e3c27f;background:var(--warning-bg);color:var(--warning)}
.inbox-counters a.has-items b{color:var(--warning)}
.inbox-counters a:hover{border-color:var(--border-strong)}
.inbox-preview,.inbox-list{list-style:none;margin:14px 0 0;padding:0;display:grid}
.inbox-preview a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 4px;border-top:1px solid var(--border-soft);color:inherit;text-decoration:none}
.inbox-preview a:hover strong{color:var(--accent-dark)}
.inbox-preview strong,.inbox-item-copy strong{display:block;color:var(--ink);font-size:.86rem}
.inbox-preview small,.inbox-item-copy small{display:block;color:var(--ink-faint);font-size:.76rem}
.inbox-groups{display:grid;gap:14px}
.inbox-group.is-waiting{background:var(--surface-soft)}
.inbox-group-count{display:inline-grid;min-width:22px;height:22px;margin-left:6px;padding:0 7px;place-items:center;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.72rem;vertical-align:middle}
.inbox-list{margin-top:0}
.inbox-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--border-soft)}
.inbox-item-copy a{color:var(--accent-dark);font-weight:700}
.inbox-empty{margin:0;font-size:.84rem}
@media(max-width:780px){.inbox-counters{grid-template-columns:1fr 1fr}.inbox-list li{grid-template-columns:auto minmax(0,1fr)}.inbox-item-actions{grid-column:1/-1}.inbox-preview a{grid-template-columns:auto minmax(0,1fr)}.inbox-preview .badge{grid-column:2;justify-self:start}}

/* Solicitudes: altas de persona y tarjetas */
.request-block+.request-block{margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}
.person-request-dialog{width:min(640px,calc(100vw - 32px))}
.person-request-step[hidden]{display:none}
.person-role-choice small,.person-request-dialog .upload-field>.errorlist{display:block;margin-top:6px;color:var(--ink-faint);font-size:.76rem}
.person-request-figure p{display:flex;align-items:flex-start;gap:10px;margin:4px 0 0;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}
.person-request-figure svg{width:18px;height:18px;flex:none;margin-top:1px;color:var(--primary)}
.person-request-figure span{display:grid;gap:2px}
.person-request-figure strong{color:var(--ink);font-size:.88rem}
.person-request-figure small{color:var(--ink-faint);font-size:.76rem}
.card-request-dialog{width:min(640px,calc(100vw - 32px))}
.card-request-person{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:18px 24px 0;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}
.card-request-person strong{display:block;color:var(--ink);font-size:.9rem}
.card-request-person small{display:block;overflow:hidden;color:var(--ink-faint);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}
.card-request-role{padding:3px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.72rem;font-weight:700;white-space:nowrap}
.card-candidates{margin:0 0 14px;padding:12px 14px;border:1px solid #e3c27f;border-radius:var(--radius-md);background:var(--warning-bg)}
.card-candidates>p{display:flex;align-items:center;gap:8px;margin:0 0 8px;color:var(--warning);font-size:.82rem;font-weight:700}
.card-candidates>p svg{width:18px;height:18px}
.card-candidates ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.card-candidates li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface)}
.card-candidates li strong{display:block;overflow:hidden;color:var(--ink);font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}
.card-candidates li small{display:block;color:var(--ink-faint);font-size:.74rem}
@media(max-width:620px){.card-request-person{margin-right:18px;margin-left:18px;grid-template-columns:auto minmax(0,1fr)}.card-request-role{grid-column:2;justify-self:start}}

/* Factura: base por periodo, porcentajes y resumen en vivo */
.billing-period-dialog{width:min(860px,calc(100vw - 32px))}
.billing-period-row{grid-template-columns:.9fr .6fr 1fr 1fr 1fr 44px}
.billing-live-summary{display:grid;gap:9px;margin:0 24px 16px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}
.billing-live-summary header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.billing-live-summary h3{margin:0;color:var(--primary);font-size:.9rem}
.billing-live-summary header p{margin:2px 0 0;color:var(--ink-faint);font-size:.78rem}
.billing-rate-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.billing-rate-fields label{display:grid;gap:5px;color:var(--ink-soft);font-size:.8rem}
.billing-live-summary dl{display:grid;gap:0;margin:0}
.billing-live-summary dl>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--border-soft);font-size:.84rem}
.billing-live-summary dt{color:var(--ink-soft)}
.billing-live-summary dt small{color:var(--ink-faint)}
.billing-live-summary dd{margin:0;color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.billing-live-summary .billing-summary-total{border-top:1px solid var(--border-strong);font-size:.95rem}
.billing-live-summary .billing-summary-total dd{color:var(--primary);font-weight:800}
.billing-live-summary [data-billing-reset]{justify-self:start;display:inline-flex;align-items:center;gap:6px}
.billing-live-summary [data-billing-reset] svg{width:15px;height:15px}
@media(max-width:800px){.billing-period-row{grid-template-columns:1fr 1fr}.billing-rate-fields{grid-template-columns:1fr}.billing-live-summary{margin-right:18px;margin-left:18px}}

/* Listado de espacios: filas con sigla agrupadas por planta. Cada tono da el
   color del tipo (y, en salas comunes y almacenes, su textura) a la sigla, al
   borde y a la sombra del hover. */
.tone-tic{--t:#5b54c9;--t-soft:#efeefb;--t-ink:#433ca8}
.tone-materials{--t:#c27a1a;--t-soft:#fbf1e1;--t-ink:#85500c}
.tone-biotech{--t:#2b8a64;--t-soft:#e5f4ed;--t-ink:#1b6448}
.tone-common{--t:#5f7592;--t-soft:#eef2f7;--t-ink:#40536d;--t-pat:radial-gradient(rgba(64,83,109,.5) 1.1px,transparent 1.35px);--t-patsize:6px 6px}
.tone-storage{--t:#7d8899;--t-soft:#f1f3f6;--t-ink:#4f5a6b;--t-pat:repeating-linear-gradient(135deg,rgba(79,90,107,.42) 0 1.4px,transparent 1.4px 5.5px);--t-patsize:auto}
.st-free{--s:#1a8558}.st-occupied{--s:#3a72b8}.st-pending{--s:#c98512}.st-maintenance{--s:#8492a6}

.space-sigla-legend{list-style:none;margin:0 0 0 auto;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.space-sigla-legend li{display:inline-flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:.719rem;font-weight:600}
.space-sigla-legend .space-sigla{width:28px;height:22px;border-radius:6px;font-size:.5rem}

.space-floors{display:grid;gap:22px;align-content:start}
.space-floor-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.space-floor-heading h2{margin:0;color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.space-floor-heading span{color:var(--ink-faint);font-size:.75rem}

.space-sigla{position:relative;width:38px;height:38px;display:grid;place-items:center;flex:none;overflow:hidden;border-radius:9px;background:var(--t-soft);color:var(--t-ink);font-size:.625rem;font-weight:800;letter-spacing:.05em;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--t) 20%,transparent);transition:transform 380ms cubic-bezier(.34,1.56,.64,1),background-color 220ms ease,color 220ms ease,box-shadow 220ms ease}
.space-sigla::before{content:"";position:absolute;inset:0;background-image:var(--t-pat,none);background-size:var(--t-patsize,auto);transition:opacity 220ms ease}
.space-sigla>span{position:relative}
.tone-common .space-sigla>span,.tone-storage .space-sigla>span{padding:1px 3px;border-radius:4px;background:var(--surface)}

.space-row{position:relative;isolation:isolate;min-width:0;min-height:58px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 14px;align-items:center;gap:12px;padding:9px 12px 9px 10px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface);transition:transform 320ms cubic-bezier(.22,1,.36,1),box-shadow 320ms cubic-bezier(.22,1,.36,1),border-color 220ms ease}
.space-row::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--t-pat,none);background-size:var(--t-patsize,auto);opacity:.42;-webkit-mask-image:linear-gradient(270deg,#000 0%,rgba(0,0,0,.3) 34%,transparent 58%);mask-image:linear-gradient(270deg,#000 0%,rgba(0,0,0,.3) 34%,transparent 58%)}
.space-row::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,color-mix(in srgb,var(--t-soft) 95%,transparent) 0%,color-mix(in srgb,var(--t-soft) 40%,transparent) 45%,transparent 75%);opacity:0;transform:translateX(-35%);transition:opacity 260ms ease,transform 520ms cubic-bezier(.22,1,.36,1)}
.space-row-copy{min-width:0;display:grid;gap:1px}
.space-row-copy b{overflow:hidden;color:var(--ink);font-size:.92rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap;transition:color 220ms ease}
.space-row-copy small{overflow:hidden;color:var(--ink-faint);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}
.space-row-status{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:.72rem;font-weight:650;white-space:nowrap}
.space-row-status i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--s);transition:box-shadow 260ms ease}
.space-row-chevron{width:14px;height:14px;color:var(--t);opacity:0;transform:translateX(-8px);transition:opacity 220ms ease,transform 320ms cubic-bezier(.22,1,.36,1)}

.space-row:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--t) 50%,var(--border));box-shadow:0 18px 30px -18px color-mix(in srgb,var(--t) 75%,transparent),0 6px 12px -6px color-mix(in srgb,var(--t) 35%,transparent)}
.space-row:hover::after{opacity:1;transform:none}
.space-row:hover::before{opacity:.6}
.space-row:hover .space-sigla{transform:scale(1.12) rotate(-6deg);background:var(--t);color:#fff;box-shadow:0 6px 14px -6px color-mix(in srgb,var(--t) 80%,transparent)}
.space-row:hover .space-sigla::before{opacity:.35}
.space-row:hover .space-row-copy b{color:var(--t-ink)}
.space-row:hover .space-row-status i{box-shadow:0 0 0 4px color-mix(in srgb,var(--s) 20%,transparent)}
.space-row:hover .space-row-chevron{opacity:1;transform:none}
/* Salas comunes y almacenes: en hover la textura se intensifica y la sigla pasa a etiqueta oscura. */
.tone-common:hover .space-sigla,.tone-storage:hover .space-sigla{background:var(--t-soft)}
.tone-common:hover .space-sigla::before,.tone-storage:hover .space-sigla::before{opacity:1}
.tone-common:hover .space-sigla>span,.tone-storage:hover .space-sigla>span{background:var(--t-ink);color:#fff}
.space-row:active{transform:translateY(-1px) scale(.985);transition-duration:120ms}
.space-row:has(.space-row-hitbox:focus-visible){outline:2px solid var(--t);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.space-row,.space-row::after,.space-sigla,.space-row-chevron{transition:none}.space-row:hover,.space-row:active,.space-row:hover .space-sigla{transform:none}}
@media(max-width:780px){.space-sigla-legend{margin-left:0}}

/* Ficha lateral del espacio: degradado, franja y textura del tono de su tipo. */
.space-drawer[class*="tone-"]{--tyc:var(--t-ink);--tybd:color-mix(in srgb,var(--t) 24%,var(--border));--wash:color-mix(in srgb,var(--t) 30%,transparent);--pat:var(--t-pat,none);--patsize:var(--t-patsize,auto)}
.space-drawer[class*="tone-"] .drawer-header{padding-top:28px;background-image:linear-gradient(150deg,#fff 0%,#fff 22%,color-mix(in srgb,var(--t-soft) 70%,#fff) 55%,var(--wash) 100%)}
.space-drawer[class*="tone-"] .drawer-header::after{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--t) 0%,color-mix(in srgb,var(--t) 55%,#fff) 100%)}
.drawer-header .space-sigla{width:48px;height:48px;border-radius:12px;background:var(--t);color:#fff;font-size:.78rem;box-shadow:0 10px 20px -10px color-mix(in srgb,var(--t) 85%,transparent)}
.tone-common .drawer-header .space-sigla,.tone-storage .drawer-header .space-sigla{background:var(--t-soft)}
.tone-common .drawer-header .space-sigla>span,.tone-storage .drawer-header .space-sigla>span{padding:2px 5px;background:var(--t-ink);color:#fff}

/* Ajustes de maquetación: contenido inalcanzable y scrolls innecesarios */
.table-person>strong,.table-person>span:not(.person-avatar):not(.key-holder-mark){min-width:0;white-space:normal}
.table-person>span:not(.person-avatar):not(.key-holder-mark)>*{display:block}
.dashboard-main{overflow-y:auto!important}
.dashboard-layout{flex:1 1 0;min-height:470px}
.dashboard-side>.recent-activity-panel{flex:1 1 auto;min-height:220px}
.billing-period-dialog .form-dialog-header p{max-width:none}
.dialog-context [data-person-step-label]{white-space:nowrap}
.case-tab-list.fade-end{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}
.case-tab-list.fade-start{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px);mask-image:linear-gradient(90deg,transparent,#000 44px)}
.case-tab-list.fade-start.fade-end{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent)}
@media (max-width:1320px){.case-tab{padding:0 10px}}
@media (max-width:620px){.form-dialog-header{padding:18px 18px 14px}.dialog-form-grid{gap:12px 14px;padding:16px 18px}}
/* En pantallas estrechas no se encaja nada a la altura de la ventana: la página se desplaza entera. */
@media (max-width:760px){
  .workflow-scroll-mode{overflow:visible}
  .workflow-scroll-mode .shell{height:calc(100vh - var(--footer-h));height:calc(100dvh - var(--footer-h))}
  .case-detail-main.has-workflow-scroll{display:block;overflow-y:auto!important}
  .case-detail-main.has-workflow-scroll>.case-tab-content,.case-detail-main.has-workflow-scroll #pane-tramitacion,.case-detail-main.has-workflow-scroll .case-table-pane.is-active,.case-detail-main.has-workflow-scroll .shared-spaces-pane.is-active,.case-detail-main.has-workflow-scroll .shared-spaces-grid,.case-detail-main.has-workflow-scroll .shared-room-section,.case-detail-main.has-workflow-scroll .shared-space-section{height:auto;overflow:visible}
  .case-detail-main.has-workflow-scroll .shared-spaces-pane.is-active{display:block}
  .datatable-page-main{display:block;overflow-y:auto!important}
  .datatable-page-content,.page-datatable-wrap{display:block;overflow:visible}
  .page-datatable-wrap .dt-container{height:auto}
  .page-datatable-wrap .dt-layout-row.dt-layout-table,.page-datatable-wrap .dt-layout-row.dt-layout-table>.dt-layout-cell.dt-layout-full{max-height:none;overflow:visible}
}
.card-request-dialog textarea{min-height:58px}
.person-assets-body,.person-assets-table-wrap,.person-assets-table-wrap .dt-layout-table{flex:0 1 auto}
.person-assets-table-wrap>.dt-container{height:auto}
@media (max-width:1320px){.shared-spaces-grid{grid-template-columns:1fr}}
.card-request-dialog .dialog-form-grid small{display:block;margin-top:4px;color:var(--ink-faint);font-size:.74rem}
.card-request-dates-hint{margin-top:-8px!important}
.case-chip{flex-direction:column;align-items:flex-start;gap:0;border-radius:9px;line-height:1.25}
.request-building{margin-top:12px}
.request-building+.request-building{margin-top:18px;padding-top:16px;border-top:1px dashed var(--border)}
.request-building>h4{margin:0;color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.request-building .request-access-groups{margin-top:8px}

/* Importación de inventario desde Excel (modal del expediente) */
.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.numeric-column{text-align:right;font-variant-numeric:tabular-nums}
.form-dialog.inventory-import-dialog{width:min(820px,calc(100vw - 32px))}
.form-dialog.inventory-import-dialog.is-reviewing{width:min(980px,calc(100vw - 32px))}
.inventory-import-step{min-height:0;flex:1;display:flex;flex-direction:column}
.inventory-import-step[hidden]{display:none}
.inventory-import-step>.form-dialog-footer form{display:contents}
.inventory-import-hint{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink-soft);font-size:.8rem;line-height:1.45}
.inventory-import-hint svg{width:16px;height:16px;flex:none;margin-top:1px;color:var(--accent-dark)}
.inventory-import-hint a{color:var(--accent-dark);font-weight:700}
.inventory-import-review{display:grid;align-content:start;gap:18px;padding:20px 24px}
.inventory-import-review .dialog-inline-feedback{margin:0}
.inventory-import-file{display:flex;align-items:center;gap:11px;color:var(--ink-soft)}
.inventory-import-file>svg{width:20px;height:20px;flex:none;color:var(--accent-dark)}
.inventory-import-file strong{display:block;color:var(--ink);overflow-wrap:anywhere}
.inventory-import-file small{display:block;color:var(--ink-faint);font-size:.8rem}
.inventory-import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.inventory-import-summary>div{padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}
.inventory-import-summary dt{color:var(--ink-faint);font-size:.66rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.inventory-import-summary dd{margin:3px 0 0;color:var(--primary);font-size:1.45rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.inventory-import-summary .has-errors{border-color:var(--danger-border);background:var(--danger-bg)}.inventory-import-summary .has-errors dd{color:var(--danger)}
.inventory-import-summary .has-warnings{border-color:#ecd3a4;background:var(--warning-bg)}.inventory-import-summary .has-warnings dd{color:var(--warning)}
.inventory-import-section h3,.inventory-import-issues h3{margin:0 0 3px;color:var(--primary);font-size:.92rem;font-weight:700}
.inventory-import-section>p,.inventory-import-issues>p{margin:0 0 10px;color:var(--ink-faint);font-size:.8rem}
.inventory-import-section>h3+table{margin-top:8px}
.inventory-import-issues{padding:13px 15px;border:1px solid var(--border);border-radius:var(--radius-sm)}
.inventory-import-issues.is-error{border-color:var(--danger-border);background:var(--danger-bg)}.inventory-import-issues.is-error h3{color:var(--danger)}
.inventory-import-issues.is-warning{border-color:#ecd3a4;background:var(--warning-bg)}.inventory-import-issues.is-warning h3{color:var(--warning)}
.inventory-import-issues ul{max-height:180px;margin:0;padding:0;overflow:auto;list-style:none}
.inventory-import-issues li{display:flex;gap:12px;padding:6px 0;border-top:1px solid rgba(0,0,0,.06);font-size:.82rem}
.inventory-import-issues li b{flex:none;min-width:56px}
.inventory-import-rows{max-height:min(340px,40vh);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}
.inventory-import-table{width:100%;border-collapse:collapse;font-size:.84rem}
.inventory-import-table th{padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface-soft);color:var(--ink-faint);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase}
.inventory-import-table th.numeric-column{text-align:right}
.inventory-import-rows .inventory-import-table th{position:sticky;top:0;z-index:1}
.inventory-import-table td{padding:8px 10px;border-bottom:1px solid var(--border-soft);vertical-align:top}
.inventory-import-table tr:last-child td{border-bottom:0}
.inventory-table .inventory-code{white-space:nowrap}
.inventory-table .table-truncate{max-width:30ch}
.inventory-table .inventory-owner{max-width:22ch}
.inventory-import-step:not([hidden]){animation:inventory-step-in 180ms var(--ease-out) both}
@keyframes inventory-step-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.inventory-import-step:not([hidden]){animation:none}}
/* Selección múltiple en tablas */
.bulk-check{width:17px;height:17px;margin:0;accent-color:var(--primary);cursor:pointer;vertical-align:middle}
.datatable-wrap table.dataTable th.dt-select-column,.datatable-wrap table.dataTable td.dt-select-column{width:44px;padding-right:0!important;text-align:center}
.datatable-wrap table.dataTable tbody tr.is-selected>td{background:var(--primary-soft)!important}
.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 1px 2px rgba(18,32,58,.05)}
.bulk-bar[hidden]{display:none}
.bulk-bar-count{color:var(--ink-soft);font-size:.86rem;white-space:nowrap}
.bulk-bar-count strong{color:var(--primary);font-variant-numeric:tabular-nums}
.bulk-bar-actions{display:flex;flex-wrap:wrap;gap:8px;flex:1}
.bulk-bar .btn.small{min-height:34px;padding:6px 12px;font-size:.84rem}
.bulk-bar .btn.small svg{width:16px;height:16px}
.bulk-bar .btn:disabled{opacity:.45;cursor:not-allowed}
[data-bulk-toggle][aria-pressed="true"]{border-color:var(--primary);background:var(--primary-soft)}
@media(max-width:760px){.inventory-import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-import-review{padding:16px 18px}.bulk-bar-actions{flex-basis:100%;order:3}}
@media(max-width:620px){.page-header-actions{justify-content:stretch}.page-header-actions .btn{flex:1}}
.case-reference-control{display:flex;align-items:center;gap:8px}.case-reference-control input{flex:1;min-width:0}.case-reference-control input[readonly]{background:var(--canvas);color:var(--ink-soft);cursor:default;pointer-events:none;user-select:none;-webkit-user-select:none;caret-color:transparent}.case-reference-control .inline-create-button{flex:none;min-height:40px}
