@charset "UTF-8";@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #152033;--navy: #1e2a44;--text: #1a2433;--text-muted: #5f7386;--bg: #eef4f8;--bg-elevated: #f5f9fc;--bg-deep: #dceaf2;--surface: #ffffff;--border: #d4e3ed;--border-strong: #b7cddb;--accent: #2b9fd4;--accent-ink: #1878a8;--accent-hover: #248fbf;--accent-soft: rgba(43, 159, 212, .14);--accent-line: rgba(43, 159, 212, .32);--ok: #0d9f6e;--ok-ink: #0a7a55;--ok-soft: rgba(13, 159, 110, .12);--ok-line: rgba(13, 159, 110, .28);--warn: #c47a0a;--danger: #d64545;--info: #2f5aa8;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(21, 32, 51, .04), 0 1px 3px rgba(21, 32, 51, .06);--shadow-md: 0 4px 16px rgba(21, 32, 51, .07);--shadow-lg: 0 16px 40px rgba(21, 32, 51, .14);--danger-soft: rgba(214, 69, 69, .1);--warn-soft: rgba(196, 122, 10, .12);--info-soft: rgba(47, 90, 168, .12);--sidebar-width: 232px;--topbar-height: 56px;--font: "IBM Plex Sans", system-ui, sans-serif;--display: var(--font);--ease: .16s ease}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);font-size:13.5px;line-height:1.45;color:var(--text);background:radial-gradient(ellipse 90% 55% at 0% -10%,rgba(43,159,212,.14),transparent 52%),radial-gradient(ellipse 70% 45% at 100% 110%,rgba(43,159,212,.08),transparent 48%),var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}.btn-primary,.btn-secondary,.btn-ghost,.btn-row,.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--ease),border-color var(--ease),color var(--ease),opacity var(--ease),box-shadow var(--ease)}.btn-primary svg,.btn-secondary svg,.btn-ghost svg,.btn-row svg,.btn-icon svg{width:15px;height:15px;flex-shrink:0}.btn-primary{border:none;border-radius:8px;padding:.5rem .95rem;min-height:36px;background:var(--navy);color:#fff;font-weight:600;font-size:13px;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--ink);text-decoration:none}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-row:focus-visible,.btn-icon:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{border:1px solid var(--border-strong);border-radius:8px;padding:.5rem .95rem;min-height:36px;background:var(--surface);color:var(--ink);font-weight:560;font-size:13px}.btn-secondary:hover:not(:disabled){border-color:var(--navy);background:var(--bg-elevated);text-decoration:none}.btn-split{display:inline-flex;align-items:stretch;border-radius:8px;box-shadow:var(--shadow-sm)}.btn-split>.btn-primary,.btn-split>.btn-secondary,.btn-split>.btn-ghost{box-shadow:none;border-radius:0;position:relative}.btn-split:has(>.btn-ghost){box-shadow:none}.btn-split>:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.btn-split>:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.btn-split>.btn-primary+.btn-primary{min-width:2.7rem;padding-left:.7rem;padding-right:.7rem;font-weight:700;letter-spacing:.04em;border-left:1px solid rgba(255,255,255,.22)}.btn-split>.btn-secondary+.btn-secondary,.btn-split>.btn-ghost+.btn-ghost{min-width:2.7rem;padding-left:.7rem;padding-right:.7rem;font-weight:700;letter-spacing:.04em;margin-left:-1px}.btn-split>.btn-primary:focus-visible,.btn-split>.btn-secondary:focus-visible,.btn-split>.btn-ghost:focus-visible{z-index:1}.btn-ghost{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:.32rem .65rem;min-height:32px;color:var(--text);font-weight:500;font-size:12.5px}.btn-ghost:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-elevated)}.btn-row{border:none;background:transparent;border-radius:6px;padding:.28rem .5rem;color:var(--accent-ink);font-weight:650;font-size:12.5px}.btn-row:hover:not(:disabled){background:var(--accent-soft);text-decoration:none}.btn-icon{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--text-muted)}.btn-icon svg{width:16px;height:16px}.btn-icon:hover:not(:disabled){background:var(--bg);color:var(--ink)}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0;width:100%}.field>span{font-size:12px;color:var(--text-muted);font-weight:600}.field input,.field select,.field textarea{width:100%;min-width:0;min-height:38px;border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;background:var(--surface);color:var(--text);font-size:13.5px;transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.field textarea{min-height:88px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#9aa8b8}.field input:hover:not(:disabled):not(:focus),.field select:hover:not(:disabled):not(:focus),.field textarea:hover:not(:disabled):not(:focus){border-color:var(--border-strong)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#fff}.field input:disabled,.field select:disabled,.field input[readonly],.field textarea[readonly]{background:var(--bg-elevated);color:var(--text);cursor:default}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem .85rem;width:100%}.form-grid .full,.form-grid .field.full{grid-column:1/-1}.form-stack{display:grid;gap:.75rem;width:100%}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.banner{display:flex;align-items:center;gap:.6rem;border-radius:var(--radius);padding:.6rem .8rem;font-size:13px;font-weight:500;border:1px solid transparent}.banner.error{background:var(--danger-soft);color:var(--danger);border-color:#d645452e}.banner.ok{background:var(--ok-soft);color:var(--ok-ink);border-color:var(--ok-line)}.banner.warn{background:var(--warn-soft);color:var(--warn);border-color:#c47a0a33}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.1rem;box-shadow:var(--shadow-sm)}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.14rem .5rem;border-radius:999px;font-size:11.5px;font-weight:650;letter-spacing:.01em;background:var(--bg-deep);color:var(--text-muted);line-height:1.2}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7;flex-shrink:0}.chip.plain:before,.chip[data-plain=true]:before{display:none}.chip.ok,.chip[data-estado=activa]{background:var(--ok-soft);color:var(--ok-ink)}.chip.wait,.chip[data-estado=pendiente_pago]{background:var(--info-soft);color:var(--info)}.chip.warn,.chip[data-estado=suspendida]{background:var(--warn-soft);color:var(--warn)}.chip.danger{background:var(--danger-soft);color:var(--danger)}.chip.off,.chip[data-estado=archivo]{background:var(--bg);color:var(--text-muted)}.chip.role{background:#e2eef6;color:var(--navy)}.chip.role:before{display:none}.chip.role[data-rol="empresa.admin"]{background:#e4eaf4;color:var(--navy)}.chip.role[data-rol="lab.responsable_tecnico"]{background:var(--ok-soft);color:var(--ok-ink)}.chip.role[data-rol="lab.supervisor"]{background:var(--info-soft);color:var(--info)}.chip.role[data-rol="lab.analista"]{background:var(--accent-soft);color:var(--accent-ink)}.chip.role[data-rol="lab.recepcion"]{background:var(--warn-soft);color:var(--warn)}.chip.role[data-rol="lab.calidad"]{background:#ece6f6;color:#5b3d8c}.chip.role[data-rol="lab.administracion"]{background:#e8e4dc;color:#5c5346}.chip.role[data-rol=cliente]{background:var(--bg);color:var(--text-muted)}.switch{position:relative;display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:36px;height:20px;border-radius:999px;background:#c5ced6;position:relative;transition:background var(--ease);flex-shrink:0}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--ease);box-shadow:0 1px 2px #00000026}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{box-shadow:0 0 0 3px var(--accent-soft)}.switch:has(input:disabled){cursor:default}.switch input:disabled+.switch-track{opacity:.7}.switch-label{font-size:13px;font-weight:500;color:var(--text)}.modal-backdrop{position:fixed;inset:0;z-index:40;background:#1520336b;backdrop-filter:blur(3px);display:grid;place-items:center;padding:1rem;animation:fade-in .12s ease both}body:has(.modal-backdrop){overflow:hidden}.modal{width:min(100%,480px);max-height:min(90vh,720px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:fade-up .18s ease both}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1.15rem .9rem;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.modal-sub{margin:.28rem 0 0;font-size:12.5px;color:var(--text-muted);line-height:1.4;font-weight:500}.modal-close{width:32px;height:32px;display:grid;place-items:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:0;border-radius:8px;flex-shrink:0}.modal-close svg{width:16px;height:16px}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-body{padding:1.05rem 1.15rem;display:grid;gap:.9rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.15rem;border-top:1px solid var(--border);background:var(--bg-elevated)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(280px,.95fr) 1.15fr}.auth-brand{position:relative;padding:1.75rem 2rem;display:flex;flex-direction:column;justify-content:space-between;color:#f4f7fa;overflow:hidden;background:radial-gradient(ellipse 70% 50% at 12% 0%,rgba(43,159,212,.45),transparent 55%),radial-gradient(ellipse 40% 35% at 90% 90%,rgba(47,90,168,.2),transparent 50%),linear-gradient(165deg,#121a2b,#163048 52%,#124a5c)}.auth-brand .brand{display:inline-flex;align-items:center;max-width:min(100%,240px);padding:.5rem .75rem .45rem .55rem;border-radius:12px;background:#fff;box-shadow:0 10px 28px #0000002e;text-decoration:none}.auth-brand .brand:hover{text-decoration:none}.auth-brand .brand-body{max-width:22rem}.auth-brand .brand-body h1{margin:0;font-size:clamp(1.45rem,2.4vw,1.75rem);font-weight:650;letter-spacing:-.03em;line-height:1.25}.auth-brand .brand-body p{margin:.7rem 0 0;color:#f4f7fab3;font-size:.95rem;line-height:1.5}.auth-brand .brand-foot{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#f4f7fa6b;font-weight:600}.auth-main{display:grid;place-items:center;padding:1.75rem 1.25rem;background:radial-gradient(ellipse 60% 40% at 100% 0%,rgba(43,159,212,.12),transparent 50%),var(--bg)}.auth-card{width:min(100%,420px);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.35rem 1.25rem;box-shadow:var(--shadow-md)}.auth-card.auth-card-wide{width:min(100%,480px)}.auth-card h2{margin:0;font-size:1.2rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.auth-card .sub{margin:.35rem 0 1.15rem;color:var(--text-muted);font-size:13px;line-height:1.4}.auth-card .form{display:grid;gap:.8rem;width:100%}.auth-card .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%}.auth-card .full{width:100%;margin-top:.15rem;min-height:40px}.auth-card .footer{margin:1rem 0 0;color:var(--text-muted);font-size:12.5px}@media(max-width:860px){.auth-layout{grid-template-columns:1fr}.auth-brand{min-height:auto;padding:1.25rem 1.35rem;gap:1.25rem}.auth-brand .brand-foot{display:none}.auth-card .row{grid-template-columns:1fr}}.page-header{display:flex;align-items:center;justify-content:space-between;gap:.85rem;margin-bottom:1rem}.page-header+.banner{margin-bottom:.85rem}.page-header h1{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1.2}.page-meta{margin:.28rem 0 0;font-size:13px;color:var(--text-muted)}.page-header .btn-primary,.page-header .btn-secondary,.page-header .btn-split{flex-shrink:0}.muted{color:var(--text-muted)}.with-chip{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.lab-inline{display:inline-flex;align-items:baseline;gap:.35rem;min-width:0}.lab-sep{color:var(--border-strong);font-weight:500}.lab-code{font-size:12px;font-weight:650;color:var(--accent-ink);letter-spacing:.02em;font-variant-numeric:tabular-nums;flex-shrink:0}.block h2,.block h3{margin:0 0 .5rem;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.history{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.history li{display:grid;gap:.08rem;padding:0 0 .15rem .8rem;border-left:2px solid var(--border)}.history strong{font-size:13px;font-weight:650;color:var(--ink);display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline}.history-det{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:none;letter-spacing:0}.history-meta{font-size:12px;color:var(--text-muted)}.fields{display:grid;gap:.65rem .75rem}.fields.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.fields .full{grid-column:1/-1}.data-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-scroll{overflow:auto}.data-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.7rem .85rem;border-bottom:1px solid var(--border);background:var(--surface)}.search-field{position:relative;flex:1;min-width:12rem;display:flex;align-items:center}.toolbar-csv{margin-left:auto;flex:0 0 auto}.search-field svg{position:absolute;left:.7rem;width:15px;height:15px;color:var(--text-muted);pointer-events:none}.search-field input{width:100%;min-height:36px;border:1px solid var(--border);border-radius:8px;padding:.4rem .7rem .4rem 2rem;background:var(--bg-elevated);color:var(--text);font-size:13px;transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.search-field input::placeholder{color:#9aa8b8}.search-field input:hover:not(:focus){border-color:var(--border-strong)}.search-field input:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.seg{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--bg);flex-shrink:0}.seg-btn{border:none;background:transparent;border-radius:6px;padding:.32rem .55rem;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:.3rem}.seg-btn:hover{color:var(--ink)}.seg-btn.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.seg-count{font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;color:var(--text-muted)}.seg-btn.on .seg-count{color:var(--accent-ink)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:.48rem .85rem;border-bottom:1px solid var(--border);vertical-align:middle}.data-table th{font-size:11px;color:var(--text-muted);font-weight:650;letter-spacing:.04em;text-transform:uppercase;background:var(--bg-elevated);position:sticky;top:0;z-index:1}.th-sort{display:inline-flex;align-items:center;gap:.28rem;border:none;background:transparent;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.th-sort:hover,.th-sort.on{color:var(--ink)}.sort-ico{width:10px;height:12px;display:grid;place-items:center;opacity:.32}.th-sort.on .sort-ico{opacity:1;color:var(--accent-ink)}.sort-ico svg{width:10px;height:10px;transition:transform var(--ease)}.sort-ico.desc svg{transform:rotate(180deg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.data-table tbody tr{transition:background var(--ease)}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr:hover{background:#f0f7fb}.data-table tbody tr:last-child td{border-bottom:none}.data-table th.col-actions,.data-table td.row-actions{width:3.25rem;text-align:right;padding-left:.35rem;padding-right:.75rem;white-space:nowrap}.count-btn{min-width:1.85rem;height:1.85rem;padding:0 .45rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);color:var(--ink);font-weight:700;font-size:12.5px;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--ease),background var(--ease),color var(--ease)}.count-btn:hover{border-color:var(--navy);background:#fff}.count-btn.zero{color:var(--text-muted);font-weight:560}.modal-sm{width:min(100%,380px)}.peek-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.peek-list li{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)}.peek-list strong{font-size:13px;font-weight:650;color:var(--ink)}.peek-list span{font-size:11.5px;font-weight:650;color:var(--text-muted);font-variant-numeric:tabular-nums}.person{display:flex;align-items:center;gap:.7rem;min-width:0}.person-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.02em;flex-shrink:0;background:#dce4f0;color:var(--navy)}.person-avatar[data-tone="1"]{background:#d7ebe3;color:var(--ok-ink)}.person-avatar[data-tone="2"]{background:#dce6f6;color:var(--info)}.person-avatar[data-tone="3"]{background:#e8e4d8;color:#6b5a32}.person-avatar[data-tone="4"]{background:#e2e6ea;color:#3d4a58}.person-avatar[data-tone="5"]{background:#dceaea;color:#2b5c5c}.person-copy{min-width:0;display:grid;gap:.08rem}.person-name{font-weight:650;color:var(--ink);display:flex;align-items:center;gap:.4rem;min-width:0}.person-name strong{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-sub{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.you{font-size:10px;color:var(--accent-ink);font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--accent-soft);padding:.08rem .35rem;border-radius:999px;flex-shrink:0}.pills{display:flex;flex-wrap:wrap;gap:.28rem}.pill{display:inline-flex;align-items:center;padding:.12rem .42rem;border-radius:6px;font-size:11.5px;font-weight:650;background:var(--bg);border:1px solid var(--border);color:var(--navy);font-variant-numeric:tabular-nums}.pill.muted{font-weight:560;color:var(--text-muted);border-style:dashed}.empty-state{display:grid;justify-items:start;gap:.55rem;padding:2.1rem 1.6rem;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.empty-state .empty-ico{width:40px;height:40px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent-line);display:grid;place-items:center;color:var(--accent-ink)}.empty-state .empty-ico svg{width:20px;height:20px}.empty-state h2{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.empty-state p{margin:0;color:var(--text-muted);font-size:13px;max-width:28rem;line-height:1.45}.empty-state .btn-primary{margin-top:.35rem}.empty-state.nested{border:none;border-radius:0;box-shadow:none;padding:2rem 1.4rem}.skeleton-table{display:grid;padding:.35rem 0}.skeleton-row{display:grid;grid-template-columns:34px minmax(0,1.6fr) 7rem minmax(0,1fr) 5rem 4rem;gap:.85rem;align-items:center;padding:.75rem .9rem}.sk{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--bg-deep) 25%,#eef6fb 50%,var(--bg-deep) 75%);background-size:200% 100%;animation:sk-move 1.15s ease infinite}.sk.av{width:34px;height:34px;border-radius:50%}.sk.w-40{width:40%}.sk.w-70{width:70%}@keyframes sk-move{0%{background-position:100% 0}to{background-position:-100% 0}}.hint,.role-hint{margin:.35rem 0 0;font-size:12.5px;color:var(--text-muted);line-height:1.4}.soft-box{padding:.75rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);display:grid;gap:.55rem}.lab-picks{display:grid;gap:.4rem}.lab-pick{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;transition:border-color var(--ease),background var(--ease)}.lab-pick:hover{border-color:var(--border-strong)}.lab-pick.on{border-color:var(--accent-line);background:#f0f8fc}.lab-pick .switch{flex-shrink:0}.lab-pick-copy{display:grid;min-width:0;line-height:1.25}.lab-pick-copy strong{font-size:13px;font-weight:650;color:var(--ink)}.lab-pick-copy span{font-size:11.5px;color:var(--text-muted);font-weight:560}.link-actions{display:flex;flex-wrap:wrap;gap:.4rem}.section-label{margin:0 0 .55rem;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.section-note{margin:-.25rem 0 .55rem;font-size:12.5px;color:var(--text-muted)}.form-card{max-width:42rem;padding:1.05rem 1.15rem 1.2rem;display:grid;gap:0}.form-card>.banner{margin-top:.9rem}.form-card .block+.block,.modal-body .block+.block{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.form-card .block h2,.form-card .block h3,.modal-body .block h3{margin:0 0 .55rem}.modal-body .block>.btn-secondary{margin-top:.75rem}.id-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:.85rem 1rem;align-items:start}.form-card .field input,.form-card .field select,.modal .field input,.modal .field select{min-height:34px;padding:.35rem .6rem;font-size:13px}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .75rem}.triple{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) 7.25rem;gap:.55rem .75rem}.logo-tile{position:relative;width:112px;height:112px;border-radius:14px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer;overflow:hidden;margin:0;flex-shrink:0}.logo-tile img{width:100%;height:100%;object-fit:contain;background:#fff}.logo-ph{display:grid;justify-items:center;gap:.28rem;color:var(--text-muted);text-align:center;padding:.5rem}.logo-ph small{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.logo-ph svg,.logo-hover svg{width:26px;height:26px}.logo-hover{position:absolute;inset:0;display:grid;place-items:center;gap:.2rem;background:#15203385;color:#fff;opacity:0;transition:opacity var(--ease);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.logo-tile:hover .logo-hover,.logo-tile:focus-within .logo-hover{opacity:1}.logo-tile.busy{opacity:.65;pointer-events:none}.logo-tile.static{cursor:default}.logo-tile.static:hover .logo-hover{opacity:0}.logo-tile input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.fields.address{grid-template-columns:minmax(0,1.3fr) minmax(0,1.1fr) 7.5rem}.link-row{display:flex;align-items:center;gap:.7rem;padding:.52rem .9rem;border-bottom:1px solid var(--border);text-decoration:none;color:var(--ink);transition:background var(--ease)}.link-row:last-child{border-bottom:none}.link-row:hover{background:#f0f7fb;text-decoration:none}.link-row .sc-ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:var(--accent-soft);color:var(--accent-ink)}.link-row .sc-ico svg{width:15px;height:15px}.link-row strong{font-size:13.5px;font-weight:650;letter-spacing:-.015em}.link-row .link-hint{margin-left:auto;font-size:12px;color:var(--text-muted);white-space:nowrap}.link-row .sc-arrow{width:16px;height:16px;color:var(--text-muted);flex-shrink:0;opacity:.65}.link-row .sc-arrow svg{width:16px;height:16px}@media(max-width:860px){.data-toolbar{flex-direction:column;align-items:stretch}.toolbar-csv{margin-left:0;align-self:flex-end}.seg{flex-wrap:wrap}.skeleton-row{grid-template-columns:34px 1fr}.skeleton-row .sk:nth-child(n+3){display:none}}@media(max-width:640px){.page-header{flex-direction:column}.fields.cols-2,.fields.address,.id-row,.pair,.triple{grid-template-columns:1fr}.link-row .link-hint{display:none}}@media print{app-root>*:not(app-sample-label-modal){display:none!important}app-sample-label-modal .modal-backdrop{position:static;inset:auto;display:block;padding:0;background:none;backdrop-filter:none;animation:none}app-sample-label-modal .modal{width:auto;max-height:none;overflow:visible;border:none;border-radius:0;box-shadow:none;background:#fff}app-sample-label-modal .modal-header,app-sample-label-modal .modal-footer,app-sample-label-modal .modal-close{display:none!important}app-sample-label-modal .modal-body{padding:0;overflow:visible}app-sample-label-modal .sticker{break-after:page;border-color:#152033;print-color-adjust:exact;-webkit-print-color-adjust:exact}app-sample-label-modal .sticker:last-child{break-after:auto}@page{margin:8mm}}
